summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2014-12-30 23:29:33 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2014-12-30 23:50:55 -0800
commit25346768fac53687c97c213fb99ff18fa805b073 (patch)
tree5168d7ec57e9961515483f3c49ed66a25dcba7d2 /src
parent6654a4ce49b9eb76a1e5b911516a8d1b247b7c30 (diff)
downloademacs-25346768fac53687c97c213fb99ff18fa805b073.tar.gz
Simplify setfattr use by assuming GNU make
* Makefile.in (PAXCTL_if_present, SETFATTR_if_present): New macros. (emacs$(EXEEXT), temacs$(EXEEXT), bootstrap-emacs$(EXEEXT)): Use them. Simplify by using GNU make rather than shell conditionals, by using ln -f rather than rm -f followed by ln, and by preferring $@ to spelling out the destination.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog9
-rw-r--r--src/Makefile.in43
2 files changed, 29 insertions, 23 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 51e8d112c9d..85eb113db82 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,12 @@
+2014-12-31 Paul Eggert <eggert@cs.ucla.edu>
+
+ Simplify setfattr use by assuming GNU make
+ * Makefile.in (PAXCTL_if_present, SETFATTR_if_present): New macros.
+ (emacs$(EXEEXT), temacs$(EXEEXT), bootstrap-emacs$(EXEEXT)): Use them.
+ Simplify by using GNU make rather than shell conditionals,
+ by using ln -f rather than rm -f followed by ln,
+ and by preferring $@ to spelling out the destination.
+
2014-12-29 Eli Zaretskii <eliz@gnu.org>
* sysdep.c [WINDOWSNT]: Include sys/socket.h, without which this
diff --git a/src/Makefile.in b/src/Makefile.in
index 00ac04aa836..812f3e22143 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -114,6 +114,8 @@ TEMACS_LDFLAGS = $(LD_SWITCH_SYSTEM) $(LD_SWITCH_SYSTEM_TEMACS)
## around this, newer ones setfattr. See Bug#11398 and Bug#16343.
PAXCTL = @PAXCTL@
SETFATTR = @SETFATTR@
+PAXCTL_if_present = $(or $(PAXCTL),: paxctl)
+SETFATTR_if_present = $(or $(SETFATTR),: setfattr)
## Some systems define this to request special libraries.
LIBS_SYSTEM=@LIBS_SYSTEM@
@@ -449,17 +451,13 @@ $(srcdir)/macuvs.h $(lispsource)/international/charprop.el: \
emacs$(EXEEXT): temacs$(EXEEXT) \
$(etc)/DOC $(lisp) $(leimdir)/leim-list.el \
$(lispsource)/international/charprop.el
- if test "$(CANNOT_DUMP)" = "yes"; then \
- rm -f emacs$(EXEEXT); \
- ln temacs$(EXEEXT) emacs$(EXEEXT); \
- else \
- LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump || exit 1; \
- test "X$(PAXCTL)" = X || $(PAXCTL) -zex emacs$(EXEEXT); \
- while test -f bootstrap-emacs$(EXEEXT); do \
- rm -f bootstrap-emacs$(EXEEXT); \
- done; \
- ln emacs$(EXEEXT) bootstrap-emacs$(EXEEXT); \
- fi
+ifeq ($(CANNOT_DUMP),yes)
+ ln -f temacs$(EXEEXT) $@
+else
+ LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
+ $(PAXCTL_if_present) -zex $@
+ ln -f $@ bootstrap-emacs$(EXEEXT)
+endif
## We run make-docfile twice because the command line may get too long
## on some systems. The sed command operating on lisp.mk also reduces
@@ -517,10 +515,10 @@ temacs$(EXEEXT): $(LIBXMENU) $(ALLOBJS) \
$(AM_V_CCLD)$(CC) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \
-o temacs $(ALLOBJS) $(lib)/libgnu.a $(W32_RES_LINK) $(LIBES)
$(MKDIR_P) $(etc)
- test "$(CANNOT_DUMP)" = "yes" || \
- test "X$(PAXCTL)" = X || $(PAXCTL) -r temacs$(EXEEXT)
- test "$(CANNOT_DUMP)" = "yes" || test -z "$(SETFATTR)" || \
- $(SETFATTR) -n user.pax.flags -v er $@
+ifneq ($(CANNOT_DUMP),yes)
+ $(PAXCTL_if_present) -r $@
+ $(SETFATTR_if_present) -n user.pax.flags -v er $@
+endif
## The following oldxmenu-related rules are only (possibly) used if
## HAVE_X11 && !USE_GTK, but there is no harm in always defining them.
@@ -652,14 +650,13 @@ $(lispsource)/loaddefs.el: $(VCSWITNESS) | bootstrap-emacs$(EXEEXT)
## files from loadup.el in source form.
bootstrap-emacs$(EXEEXT): temacs$(EXEEXT)
$(MAKE) -C ../lisp update-subdirs
- if test "$(CANNOT_DUMP)" = "yes"; then \
- rm -f bootstrap-emacs$(EXEEXT); \
- ln 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
+ifeq ($(CANNOT_DUMP),yes)
+ ln -f temacs$(EXEEXT) $@
+else
+ $(RUN_TEMACS) --batch --load loadup bootstrap
+ $(PAXCTL_if_present) -zex emacs$(EXEEXT)
+ mv -f emacs$(EXEEXT) $@
+endif
@: Compile some files earlier to speed up further compilation.
$(MAKE) -C ../lisp compile-first EMACS="$(bootstrap_exe)"