mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 21:44:11 +01:00
6ed0f4c4e9
differences. Adjust the build process accordingly. configure will now abort if the user requests ansi2knr but no ansi2knr is available. ansi2knr is available from the main distribution site and most mirrors
226 lines
6.2 KiB
Makefile
226 lines
6.2 KiB
Makefile
#
|
|
# Makefile for Src subdirectory
|
|
#
|
|
# Copyright (c) 1995-1997 Richard Coleman
|
|
# All rights reserved.
|
|
#
|
|
# Permission is hereby granted, without written agreement and without
|
|
# license or royalty fees, to use, copy, modify, and distribute this
|
|
# software and to distribute modified versions of this software for any
|
|
# purpose, provided that the above copyright notice and the following
|
|
# two paragraphs appear in all copies of this software.
|
|
#
|
|
# In no event shall Richard Coleman or the Zsh Development Group be liable
|
|
# to any party for direct, indirect, special, incidental, or consequential
|
|
# damages arising out of the use of this software and its documentation,
|
|
# even if Richard Coleman and the Zsh Development Group have been advised of
|
|
# the possibility of such damage.
|
|
#
|
|
# Richard Coleman and the Zsh Development Group specifically disclaim any
|
|
# warranties, including, but not limited to, the implied warranties of
|
|
# merchantability and fitness for a particular purpose. The software
|
|
# provided hereunder is on an "as is" basis, and Richard Coleman and the
|
|
# Zsh Development Group have no obligation to provide maintenance,
|
|
# support, updates, enhancements, or modifications.
|
|
#
|
|
|
|
subdir = Src
|
|
dir_top = ..
|
|
SUBDIRS =
|
|
|
|
@VERSION_MK@
|
|
|
|
# source/build directories
|
|
VPATH = @srcdir@
|
|
sdir = @srcdir@
|
|
sdir_top = @top_srcdir@
|
|
INSTALL = @INSTALL@
|
|
LN = @LN@
|
|
|
|
@DEFS_MK@
|
|
|
|
sdir_src = $(sdir)
|
|
dir_src = .
|
|
|
|
# ========= DEPENDENCIES FOR BUILDING ==========
|
|
|
|
LINK = $(CC) $(LDFLAGS) $(EXELDFLAGS) $(EXTRA_LDFLAGS) -o $@
|
|
DLLINK = $(DLLD) $(LDFLAGS) $(LIBLDFLAGS) $(DLLDFLAGS) -o $@
|
|
|
|
all: bin modules
|
|
.PHONY: all
|
|
|
|
bin: zsh$(EXEEXT)
|
|
.PHONY: bin
|
|
|
|
modules: headers
|
|
.PHONY: modules
|
|
|
|
MAIN_OBJS = main.o
|
|
|
|
L = @L@
|
|
|
|
LSTMP =
|
|
LLIST =
|
|
NSTMP = stamp-modobjs
|
|
NLIST = `cat stamp-modobjs`
|
|
|
|
LIBZSH = libzsh-$(VERSION).$(DL_EXT)
|
|
NIBZSH =
|
|
INSTLIB = @INSTLIB@
|
|
UNINSTLIB = @UNINSTLIB@
|
|
|
|
ZSH_EXPORT = $(EXPOPT)zsh.export
|
|
ZSH_NXPORT =
|
|
ENTRYOBJ = modentry..o
|
|
NNTRYOBJ =
|
|
|
|
LDRUNPATH = LD_RUN_PATH=$(libdir)/$(tzsh)
|
|
NDRUNPATH =
|
|
|
|
EXTRAZSHOBJS = @EXTRAZSHOBJS@
|
|
|
|
zsh$(EXEEXT): $(@L@IBZSH) $(@L@STMP) $(MAIN_OBJS) zsh.export $(EXTRAZSHOBJS)
|
|
rm -f $@
|
|
$(@L@DRUNPATH) $(LINK) $(MAIN_OBJS) $(EXTRAZSHOBJS) $(@L@LIST) $(ZSH_@E@XPORT) $(@L@IBZSH) $(LIBS)
|
|
|
|
$(LIBZSH): $(LIBOBJS) $(NSTMP)
|
|
rm -f $@
|
|
$(DLLINK) $(LIBOBJS) $(NLIST) $(LIBS)
|
|
|
|
zsh.res.o: $(sdir)/zsh.rc $(sdir)/zsh.ico
|
|
windres -O coff --include-dir $(sdir) -i $(sdir)/zsh.rc -o zsh.res.o
|
|
|
|
stamp-modobjs: modobjs
|
|
@if cmp -s stamp-modobjs.tmp stamp-modobjs; then \
|
|
rm -f stamp-modobjs.tmp; \
|
|
echo "\`stamp-modobjs' is up to date."; \
|
|
else \
|
|
mv -f stamp-modobjs.tmp stamp-modobjs; \
|
|
echo "Updated \`stamp-modobjs'."; \
|
|
fi
|
|
|
|
modobjs: headers rm-modobjs-tmp
|
|
.PHONY: modobjs
|
|
|
|
rm-modobjs-tmp:
|
|
rm -f stamp-modobjs.tmp
|
|
.PHONY: rm-modobjs-tmp
|
|
|
|
@CONFIG_MK@
|
|
|
|
Makemod prep: $(CONFIG_INCS) $(dir_top)/config.modules
|
|
@case $(sdir_top) in \
|
|
/*) top_srcdir=$(sdir_top) ;; \
|
|
*) top_srcdir=$(subdir)/$(sdir_top) ;; \
|
|
esac; \
|
|
export top_srcdir; \
|
|
echo 'cd $(dir_top) && $(SHELL)' \
|
|
'$$top_srcdir/$(subdir)/mkmakemod.sh $(subdir) Makemod'; \
|
|
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 ==========
|
|
|
|
mymods.conf:
|
|
@echo Linking with the standard modules.
|
|
|
|
modules: $(@E@NTRYOBJ)
|
|
|
|
$(ENTRYOBJ): FORCE
|
|
@$(MAKE) -f Makemod $(MAKEDEFS) $@
|
|
|
|
# ========== DEPENDENCIES FOR INSTALLING ==========
|
|
|
|
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$(EXEEXT) $(INSTLIB)
|
|
${SHELL} $(sdir_top)/mkinstalldirs $(DESTDIR)$(bindir)
|
|
$(INSTALL_PROGRAM) $(STRIPFLAGS) zsh$(EXEEXT) $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION)$(EXEEXT)
|
|
if test -f $(DESTDIR)$(bindir)/$(tzsh)$(EXEEXT); then \
|
|
rm -f $(DESTDIR)$(bindir)/$(tzsh).old; \
|
|
$(LN) $(DESTDIR)$(bindir)/$(tzsh)$(EXEEXT) $(DESTDIR)$(bindir)/$(tzsh).old; \
|
|
else :; fi
|
|
rm -f $(DESTDIR)$(bindir)/$(tzsh).new
|
|
$(LN) $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION)$(EXEEXT) $(DESTDIR)$(bindir)/$(tzsh).new
|
|
mv $(DESTDIR)$(bindir)/$(tzsh).new $(DESTDIR)$(bindir)/$(tzsh)$(EXEEXT)
|
|
.PHONY: install.bin-here
|
|
|
|
install.bin-N:
|
|
install.bin-L: $(LIBZSH)
|
|
${SHELL} $(sdir_top)/mkinstalldirs $(DESTDIR)$(libdir)/$(tzsh)
|
|
$(INSTALL_PROGRAM) $(LIBZSH) $(DESTDIR)$(libdir)/$(tzsh)/$(LIBZSH)
|
|
install.cygwin-lib: $(LIBZSH)
|
|
$(INSTALL_PROGRAM) $(LIBZSH) $(DESTDIR)$(bindir)/$(LIBZSH)
|
|
.PHONY: install.bin-N install.bin-L install.cygwin-lib
|
|
|
|
# uninstall binary
|
|
uninstall.bin-here: $(UNINSTLIB)
|
|
rm -f $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION) $(DESTDIR)$(bindir)/$(tzsh)$(EXEEXT)
|
|
.PHONY: uninstall.bin-here uninstall.bin-@L@
|
|
|
|
uninstall.bin-N:
|
|
uninstall.bin-L:
|
|
rm -f $(DESTDIR)$(libdir)/$(tzsh)/$(LIBZSH)
|
|
uninstall.cygwin-lib:
|
|
rm -f $(DESTDIR)$(bindir)/$(LIBZSH)
|
|
.PHONY: uninstall.bin-N uninstall.bin-L uninstall.cygwin-lib
|
|
|
|
# ========== DEPENDENCIES FOR CLEANUP ==========
|
|
|
|
# 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.stamp zsh$(EXEEXT)
|
|
rm -f libzsh-*.$(DL_EXT)
|
|
.PHONY: clean-here
|
|
|
|
distclean-here:
|
|
rm -f TAGS tags
|
|
rm -f Makefile
|
|
.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:
|
|
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
|
|
|
|
@CLEAN_MK@
|
|
|
|
# ========== RECURSIVE MAKES ==========
|
|
|
|
install.modules uninstall.modules \
|
|
modobjs modules headers proto $(MAIN_OBJS) zsh.export: Makemod
|
|
@$(MAKE) -f Makemod $(MAKEDEFS) $@
|
|
.PHONY: install.modules uninstall.modules
|
|
|
|
$(MAIN_OBJS): $(sdir)/zsh.h
|