about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBart Schaefer <barts@users.sourceforge.net>2000-04-25 04:30:31 +0000
committerBart Schaefer <barts@users.sourceforge.net>2000-04-25 04:30:31 +0000
commit3c4ca6d37d1d4bfa93eadb27b17342e225413d3a (patch)
tree9a8650b017f646f38c302043b3cc8601cd29a1be
parent1f00aac0be24a5fb5438e63a2f4f3bf21ba47dfc (diff)
downloadzsh-3c4ca6d37d1d4bfa93eadb27b17342e225413d3a.tar.gz
zsh-3c4ca6d37d1d4bfa93eadb27b17342e225413d3a.tar.xz
zsh-3c4ca6d37d1d4bfa93eadb27b17342e225413d3a.zip
10900: Depend modules-bltin upon config.status rather than upon Makefile.
-rw-r--r--ChangeLog5
-rw-r--r--Src/Makefile.in121
2 files changed, 94 insertions, 32 deletions
diff --git a/ChangeLog b/ChangeLog
index 5a17b3387..e0b1047ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-04-24  Bart Schaefer  <schaefer@zsh.org>
+
+	* 10900: Src/Makefile.in: Replace a dependency on Makefile with a
+	more accurate dependency on config.status.
+
 2000-04-20  Sven Wischnowsky  <wischnow@informatik.hu-berlin.de>
 
 	* 10881: Functions/Misc/zrecompile: don't remove *all* .zwc files,
diff --git a/Src/Makefile.in b/Src/Makefile.in
index 453159e17..22b983c1b 100644
--- a/Src/Makefile.in
+++ b/Src/Makefile.in
@@ -28,8 +28,16 @@ subdir = Src
 dir_top = ..
 SUBDIRS =
 
-@@version.mk@@
-@@defs.mk@@
+@VERSION_MK@
+
+# source/build directories
+VPATH           = @srcdir@
+sdir            = @srcdir@
+sdir_top        = @top_srcdir@
+INSTALL         = @INSTALL@
+LN		= @LN@
+
+@DEFS_MK@
 
 sdir_src      = $(sdir)
 dir_src       = .
@@ -40,10 +48,13 @@ LINK        = $(CC) $(LDFLAGS) $(EXELDFLAGS) $(EXTRA_LDFLAGS) -o $@
 DLLINK      = $(DLLD) $(LDFLAGS) $(LIBLDFLAGS) $(DLLDFLAGS) -o $@
 
 all: bin modules
+.PHONY: all
 
 bin: zsh
+.PHONY: bin
 
 modules: headers
+.PHONY: modules
 
 MAIN_OBJS = main.o
 
@@ -55,12 +66,17 @@ NLIST = `cat stamp-modobjs`
 LIBZSH = libzsh-$(VERSION).$(DL_EXT)
 NIBZSH =
 
-LDRUNPATH = LD_RUN_PATH=$(libdir)/zsh
+ZSH_EXPORT = $(EXPOPT)zsh.export
+ZSH_NXPORT =
+ENTRYOBJ   = modentry..o
+NNTRYOBJ   =
+
+LDRUNPATH = LD_RUN_PATH=$(libdir)/$(tzsh)
 NDRUNPATH =
 
-zsh: $(@L@IBZSH) $(@L@STMP) $(MAIN_OBJS)
+zsh: $(@L@IBZSH) $(@L@STMP) $(MAIN_OBJS) zsh.export
 	rm -f $@
-	$(@L@DRUNPATH) $(LINK) $(MAIN_OBJS) $(@L@LIST) $(@L@IBZSH) $(LIBS)
+	$(@L@DRUNPATH) $(LINK) $(MAIN_OBJS) $(@L@LIST) $(ZSH_@E@XPORT) $(@L@IBZSH) $(LIBS)
 
 $(LIBZSH): $(LIBOBJS) $(NSTMP)
 	rm -f $@
@@ -76,12 +92,17 @@ stamp-modobjs: modobjs
 	fi
 
 modobjs: headers rm-modobjs-tmp
+.PHONY: modobjs
 
 rm-modobjs-tmp:
 	rm -f stamp-modobjs.tmp
+.PHONY: rm-modobjs-tmp
 
-Makemod modules.index prep: modules-bltin
-	( cd $(sdir_top) && $(SHELL) $(subdir)/mkmodindex.sh $(subdir) ) \
+@CONFIG_MK@
+
+Makemod modules.index prep: modules-bltin $(CONFIG_INCS)
+	( cd $(sdir_top) && OMIT_MODULES="$(OMIT_MODULES)" \
+	$(SHELL) $(subdir)/mkmodindex.sh $(subdir) ) \
 	    > modules.index.tmp
 	@if cmp -s modules.index.tmp modules.index; then \
 	    rm -f modules.index.tmp; \
@@ -100,20 +121,36 @@ Makemod modules.index prep: modules-bltin
 	cd $(dir_top) && \
 	    $(SHELL) $$top_srcdir/$(subdir)/mkmakemod.sh $(subdir) Makemod
 	@$(MAKE) -f Makemod $(MAKEDEFS) prep || rm -f Makemod
+.PHONY: prep
 
 FORCE:
+.PHONY: FORCE
 
 # ========== LINKING IN MODULES ==========
 
-modules-bltin:
-	if test @D@ = N; then \
-	    cat $(sdir)/xmods.conf > $@; \
-	elif test @RTLD_GLOBAL_OK@ != yes; then \
-	    echo comp1 > $@; \
+mymods.conf:
+	@echo Linking with the standard modules.
+
+modules-bltin:: mymods.conf
+	@if test -f mymods.conf; then \
+	    echo cat mymods.conf \> $@; \
+	    cat mymods.conf > $@; \
+	fi
+
+modules-bltin:: $(dir_top)/config.status $(sdir)/xmods.conf
+	if test -f mymods.conf; then \
+	    cat mymods.conf > $@; \
+	elif test @D@ = N; then \
+	    sed -n '/L.* /{s/^.* //;p;}' < $(sdir)/xmods.conf > $@; \
 	else \
 	    echo > $@; \
 	fi
 
+modules: $(@E@NTRYOBJ)
+
+$(ENTRYOBJ): FORCE
+	@$(MAKE) -f Makemod $(MAKEDEFS) $@
+
 # ========== ANSI TO K&R CONVERSION ==========
 
 ANSI_KNR = ansi2knr
@@ -132,64 +169,84 @@ ansi2knr: ansi2knr.o
 
 install: install.bin install.modules
 uninstall: uninstall.bin uninstall.modules
+.PHONY: install uninstall
 
 install.bin: install.bin-here
 uninstall.bin: uninstall.bin-here
+.PHONY: install.bin uninstall.bin
 
 # install binary, creating install directory if necessary
 install.bin-here: zsh install.bin-@L@
-	$(sdir_top)/mkinstalldirs $(bindir)
-	$(INSTALL_PROGRAM) zsh $(bindir)/zsh-$(VERSION)
-	if test -f $(bindir)/zsh; then \
-	    rm -f $(bindir)/zsh.old; \
-	    ln $(bindir)/zsh $(bindir)/zsh.old; \
+	$(sdir_top)/mkinstalldirs $(DESTDIR)$(bindir)
+	$(INSTALL_PROGRAM) $(STRIPFLAGS) zsh $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION)
+	if test -f $(DESTDIR)$(bindir)/$(tzsh); then \
+	    rm -f $(DESTDIR)$(bindir)/$(tzsh).old; \
+	    $(LN) $(DESTDIR)$(bindir)/$(tzsh) $(DESTDIR)$(bindir)/$(tzsh).old; \
 	else :; fi
-	rm -f $(bindir)/zsh.new
-	ln $(bindir)/zsh-$(VERSION) $(bindir)/zsh.new
-	mv $(bindir)/zsh.new $(bindir)/zsh
+	rm -f $(DESTDIR)$(bindir)/$(tzsh).new
+	$(LN) $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION) $(DESTDIR)$(bindir)/$(tzsh).new
+	mv $(DESTDIR)$(bindir)/$(tzsh).new $(DESTDIR)$(bindir)/$(tzsh)
+.PHONY: install.bin-here
 
 install.bin-N:
 install.bin-L: $(LIBZSH)
-	$(sdir_top)/mkinstalldirs $(libdir)/zsh
-	$(INSTALL_PROGRAM) $(LIBZSH) $(libdir)/zsh/$(LIBZSH)
+	$(sdir_top)/mkinstalldirs $(DESTDIR)$(libdir)/$(tzsh)
+	$(INSTALL_PROGRAM) $(LIBZSH) $(DESTDIR)$(libdir)/$(tzsh)/$(LIBZSH)
+.PHONY: install.bin-N install.bin-L
 
 # uninstall binary
 uninstall.bin-here: uninstall.bin-@L@
-	rm -f $(bindir)/zsh-$(VERSION) $(bindir)/zsh
+	rm -f $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION) $(DESTDIR)$(bindir)/$(tzsh)
+.PHONY: uninstall.bin-here uninstall.bin-@L@
 
 uninstall.bin-N:
 uninstall.bin-L:
-	rm -f $(libdir)/zsh/$(LIBZSH)
+	rm -f $(DESTDIR)$(libdir)/$(tzsh)/$(LIBZSH)
+.PHONY: uninstall.bin-N uninstall.bin-L
 
 # ========== DEPENDENCIES FOR CLEANUP ==========
 
-@@clean.mk@@
+# Since module cleanup rules depend on Makemod, they come first.  This
+# forces module stuff to get cleaned before Makemod itself gets
+# deleted.
 
 mostlyclean-here:
 	rm -f stamp-modobjs stamp-modobjs.tmp
+.PHONY: mostlyclean-here
 
 clean-here:
 	rm -f modules.index.tmp modules.stamp zsh ansi2knr.o ansi2knr
+	rm -f modules.index modules-bltin
 	rm -f libzsh-*.$(DL_EXT)
+.PHONY: clean-here
 
 distclean-here:
 	rm -f TAGS tags
-	rm -f modules.index modules-bltin Makefile
+	rm -f Makefile mymods.conf
+.PHONY: distclean-here
 
 mostlyclean: mostlyclean-modules
 clean: clean-modules
 distclean: distclean-modules
 realclean: realclean-modules
+.PHONY: mostlyclean clean distclean realclean
+
+# Don't remake Makemod just to delete things, even if it doesn't exist.
+mostlyclean-modules clean-modules distclean-modules realclean-modules: modules.index
+	if test -f Makemod; then \
+	  $(MAKE) -f Makemod $(MAKEDEFS) `echo $@ | sed 's/-modules//'`; \
+	fi; \
+	exit 0
+.PHONY: mostlyclean-modules clean-modules distclean-modules \
+	realclean-modules
 
-mostlyclean-modules clean-modules distclean-modules realclean-modules: Makemod
-	@$(MAKE) -f Makemod $(MAKEDEFS) `echo $@ | sed 's/-modules//'`
+@CLEAN_MK@
 
 # ========== RECURSIVE MAKES ==========
 
 install.modules uninstall.modules \
-modobjs modules headers proto $(MAIN_OBJS): Makemod
+modobjs modules headers proto $(MAIN_OBJS) zsh.export: Makemod
 	@$(MAKE) -f Makemod $(MAKEDEFS) $@
+.PHONY: install.modules uninstall.modules
 
-# ========== DEPENDENCIES FOR MAINTENANCE ==========
-
-@@config.mk@@
+$(MAIN_OBJS): $(sdir)/zsh.h