X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/2f097256b95314f85f7c4ce5dfff9e41e1cfaeb3..8c536f15bf95916d56bb50495d22b7da7e09fff9:/src/Makefile.in diff --git a/src/Makefile.in b/src/Makefile.in index bb9afa866a..47c7d5cfbc 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -40,6 +40,7 @@ version = @version@ # Substitute an assignment for the MAKE variable, because # BSD doesn't have it as a default. @SET_MAKE@ +MKDIR_P = @MKDIR_P@ # Don't use LIBS. configure puts stuff in it that either shouldn't be # linked with Emacs or is duplicated by the other stuff below. # LIBS = @LIBS@ @@ -55,9 +56,8 @@ lwlibdir = ../lwlib lispdir = ../lisp # Configuration files for .o files to depend on. -M_FILE = @M_FILE@ S_FILE = @S_FILE@ -config_h = config.h $(M_FILE) $(S_FILE) +config_h = config.h $(S_FILE) bootstrap_exe = $(abs_builddir)/bootstrap-emacs$(EXEEXT) @@ -68,7 +68,8 @@ OTHER_FILES = @OTHER_FILES@ PROFILING_CFLAGS = @PROFILING_CFLAGS@ ## Flags to pass to the compiler to enable build warnings -C_WARNINGS_SWITCH = @C_WARNINGS_SWITCH@ +WARN_CFLAGS = @WARN_CFLAGS@ +WERROR_CFLAGS = @WERROR_CFLAGS@ ## Machine-specific CFLAGS. C_SWITCH_MACHINE=@C_SWITCH_MACHINE@ @@ -93,11 +94,9 @@ C_SWITCH_X_SITE=@C_SWITCH_X_SITE@ ## substituted in this or any other Makefile. Cf C_SWITCH_X_SITE. LD_SWITCH_X_SITE= -## Next two must come before LD_SWITCH_SYSTEM. -## If needed, a -R option that says where to find X windows at run time. -LD_SWITCH_X_SITE_AUX=@LD_SWITCH_X_SITE_AUX@ -## As above, but using -rpath instead. -LD_SWITCH_X_SITE_AUX_RPATH=@LD_SWITCH_X_SITE_AUX_RPATH@ +## This must come before LD_SWITCH_SYSTEM. +## If needed, a -rpath option that says where to find X windows at run time. +LD_SWITCH_X_SITE_RPATH=@LD_SWITCH_X_SITE_RPATH@ ## System-specific LDFLAGS. LD_SWITCH_SYSTEM=@LD_SWITCH_SYSTEM@ @@ -114,6 +113,12 @@ TEMACS_LDFLAGS = $(LD_SWITCH_SYSTEM) $(LD_SWITCH_SYSTEM_TEMACS) ## $LDFLAGS or empty if NS_IMPL_GNUSTEP (for some reason). TEMACS_LDFLAGS2 = @TEMACS_LDFLAGS2@ +## If available, the full path to the paxctl program. +## On grsecurity/PaX systems, unexec will fail due to a gap between +## the bss section and the heap. This can be prevented by disabling +## memory randomization in temacs with "paxctl -r". See bug#11398. +PAXCTL = @PAXCTL@ + ## Some systems define this to request special libraries. LIBS_SYSTEM=@LIBS_SYSTEM@ @@ -285,7 +290,7 @@ CANNOT_DUMP=@CANNOT_DUMP@ DEPDIR=deps ## -MMD -MF $(DEPDIR)/$*.d if AUTO_DEPEND; else empty. DEPFLAGS=@DEPFLAGS@ -## test -d $(DEPDIR) || mkdir $(DEPDIR) (if AUTO_DEPEND); else ':'. +## ${MKDIR_P} ${DEPDIR} (if AUTO_DEPEND); else ':'. MKDEPDIR=@MKDEPDIR@ ## DO NOT use -R. There is a special hack described in lastfile.c @@ -308,7 +313,7 @@ ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I$(srcdir) \ $(SETTINGS_CFLAGS) $(FREETYPE_CFLAGS) $(FONTCONFIG_CFLAGS) \ $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) $(PROFILING_CFLAGS) \ $(LIBGNUTLS_CFLAGS) \ - $(C_WARNINGS_SWITCH) $(CFLAGS) + $(WARN_CFLAGS) $(WERROR_CFLAGS) $(CFLAGS) ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS) .SUFFIXES: .m @@ -404,6 +409,7 @@ emacs$(EXEEXT): temacs$(EXEEXT) $(etc)/DOC $(lisp) $(leimdir)/leim-list.el -f list-load-path-shadows || true; \ else \ LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump || exit 1; \ + test "X$(PAXCTL)" = X || $(PAXCTL) -zex emacs$(EXEEXT); \ ln -f emacs$(EXEEXT) bootstrap-emacs$(EXEEXT); \ ./emacs -batch -f list-load-path-shadows || true; \ fi @@ -451,6 +457,8 @@ $(lib)/libgnu.a: $(config_h) temacs$(EXEEXT): $(START_FILES) stamp-oldxmenu $(obj) $(otherobj) $(lib)/libgnu.a $(CC) $(LD_FIRSTFLAG) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(TEMACS_LDFLAGS2) \ -o temacs $(START_FILES) $(obj) $(otherobj) $(lib)/libgnu.a $(LIBES) + test "$(CANNOT_DUMP)" = "yes" || \ + test "X$(PAXCTL)" = X || $(PAXCTL) -r temacs$(EXEEXT) ## The following oldxmenu-related rules are only (possibly) used if ## HAVE_X11 && !USE_GTK, but there is no harm in always defining them @@ -534,10 +542,10 @@ extraclean: distclean ctagsfiles1 = [xyzXYZ]*.[hcm] ctagsfiles2 = [a-wA-W]*.[hcm] -TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) $(M_FILE) $(S_FILE) +TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) $(S_FILE) ../lib-src/etags --include=TAGS-LISP --include=$(lwlibdir)/TAGS \ --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \ - $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) $(M_FILE) $(S_FILE) + $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) $(S_FILE) frc: TAGS-LISP: frc $(MAKE) -f $(lispdir)/Makefile TAGS-LISP ETAGS=../lib-src/etags @@ -598,6 +606,7 @@ bootstrap-emacs$(EXEEXT): temacs$(EXEEXT) ln -f temacs$(EXEEXT) bootstrap-emacs$(EXEEXT); \ else \ $(RUN_TEMACS) --batch --load loadup bootstrap || exit 1; \ + test "X$(PAXCTL)" = X || $(PAXCTL) -zex emacs$(EXEEXT); \ mv -f emacs$(EXEEXT) bootstrap-emacs$(EXEEXT); \ fi @: Compile some files earlier to speed up further compilation.