diff options
author | Bart Schaefer <barts@users.sourceforge.net> | 2000-04-25 04:30:31 +0000 |
---|---|---|
committer | Bart Schaefer <barts@users.sourceforge.net> | 2000-04-25 04:30:31 +0000 |
commit | 3c4ca6d37d1d4bfa93eadb27b17342e225413d3a (patch) | |
tree | 9a8650b017f646f38c302043b3cc8601cd29a1be | |
parent | 1f00aac0be24a5fb5438e63a2f4f3bf21ba47dfc (diff) | |
download | zsh-3c4ca6d37d1d4bfa93eadb27b17342e225413d3a.tar.gz zsh-3c4ca6d37d1d4bfa93eadb27b17342e225413d3a.tar.xz zsh-3c4ca6d37d1d4bfa93eadb27b17342e225413d3a.zip |
10900: Depend modules-bltin upon config.status rather than upon Makefile.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/Makefile.in | 121 |
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 |