### @configure_input@ # Copyright 2017-2024 Free Software Foundation, Inc. # This file is part of GNU Emacs. # GNU Emacs is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # GNU Emacs is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . srcdir = @srcdir@ VPATH = @srcdir@ # This is not empty if this is a Makefile that will be copied to # cross/lib. XCONFIGURE = @XCONFIGURE@ # This is required to make sure symbol visibility is correct and # functions like readlinkat do not end up replacing their OS # counterparts. ANDROID_BUILD_CFLAGS = @ANDROID_BUILD_CFLAGS@ # Variables substituted by 'configure', and not autogenerated in gnulib.mk, # or needed before gnulib.mk is included. abs_top_srcdir = @abs_top_srcdir@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: .PHONY: all -include ${top_builddir}/src/verbose.mk HAVE_NATIVE_COMP = @HAVE_NATIVE_COMP@ ALL_CFLAGS = \ $(C_SWITCH_SYSTEM) $(C_SWITCH_MACHINE) $(DEPFLAGS) \ $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS) $(PROFILING_CFLAGS) $(CFLAGS) \ -I. -I../src -I$(srcdir) -I$(top_srcdir)/src \ $(if $(patsubst e-%,,$(notdir $<)),,-Demacs) $(ANDROID_BUILD_CFLAGS) ifeq ($(HAVE_NATIVE_COMP),yes) ALL_CFLAGS += -DGL_COMPILE_CRYPTO_STREAM endif SYSTEM_TYPE = @SYSTEM_TYPE@ ifeq ($(SYSTEM_TYPE),windows-nt) include $(srcdir)/../nt/gnulib-cfg.mk endif include gnulib.mk ifneq ($(SYSTEM_TYPE),windows-nt) libgnu_a_SOURCES += openat-die.c save-cwd.c endif ifeq ($(XCONFIGURE),android) # The next line is necessary to override -I$(srcdir), which will end # up pulling in lots of headers from the host. ALL_CFLAGS += -I$(top_srcdir)/cross -I. endif DEPDIR = deps ifeq ($(AUTO_DEPEND),yes) DEPFLAGS = -MMD -MF $(DEPDIR)/$*.d -MP -include $(ALLOBJS:%.o=$(DEPDIR)/%.d) else DEPFLAGS = endif # This piece of code interferes with cross compilation ifeq ($(XCONFIGURE),) .PRECIOUS: ../config.status Makefile ../config.status: $(top_srcdir)/configure.ac $(top_srcdir)/m4/*.m4 $(MAKE) -C .. $(notdir $@) Makefile: ../config.status $(srcdir)/Makefile.in $(MAKE) -C .. lib/$@ endif # Object modules that need not be built for Emacs. # Emacs does not need e-regex.o (it has its own regex-emacs.c), # and building it would just waste time. # Emacs also doesn't need the dynarray-related files in malloc/ and # the replacement 'free'. not_emacs_OBJECTS = regex.o malloc/%.o free.o libgnu_a_OBJECTS = fingerprint.o $(gl_LIBOBJS) \ $(patsubst %.c,%.o,$(filter %.c,$(libgnu_a_SOURCES))) for_emacs_OBJECTS = $(filter-out $(not_emacs_OBJECTS),$(libgnu_a_OBJECTS)) libegnu_a_OBJECTS = $(patsubst %.o,e-%.o,$(for_emacs_OBJECTS)) $(libegnu_a_OBJECTS) $(libgnu_a_OBJECTS): $(BUILT_SOURCES) .SUFFIXES: .c .c.o: $(AM_V_CC)$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -o $@ $< e-%.o: %.c $(AM_V_CC)$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) -Demacs -o $@ $< all: libgnu.a $(if $(HYBRID_MALLOC),libegnu.a) libgnu.a: $(libgnu_a_OBJECTS) $(AM_V_AR)rm -f $@ $(AM_V_at)$(AR) $(ARFLAGS) $@ $(libgnu_a_OBJECTS) $(AM_V_at)$(RANLIB) $@ libegnu.a: $(libegnu_a_OBJECTS) $(AM_V_AR)rm -f $@ $(AM_V_at)$(AR) $(ARFLAGS) $@ $(libegnu_a_OBJECTS) $(AM_V_at)$(RANLIB) $@ ETAGS = ../lib-src/etags$(EXEEXT) $(ETAGS): $(MAKE) -C $(dir $@) $(notdir $@) tagsfiles= $(wildcard $(srcdir)/*.[ch]) tags: TAGS TAGS: $(ETAGS) $(tagsfiles) $(ETAGS) $(tagsfiles) .PHONY: $(ETAGS) tags clean: rm -f ./*.[ao] ./*/*.o ./*-t \#* $(DEPDIR)/*.d $(DEPDIR)/*/*.d mostlyclean: clean rm -f $(filter-out %-t,$(MOSTLYCLEANFILES)) distclean bootstrap-clean: mostlyclean rm -f Makefile Makefile.android rm -fr $(DEPDIR) maintainer-clean: distclean rm -f TAGS gnulib.mk gnulib.mk.android -rmdir malloc sys 2>/dev/null || true .PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: