mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 13:33:52 +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
192 lines
5.2 KiB
Plaintext
192 lines
5.2 KiB
Plaintext
#
|
|
# Makemod.in.in
|
|
#
|
|
# 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.
|
|
#
|
|
|
|
# ========== OVERRIDABLE VARIABLES ==========
|
|
|
|
# subdir is done by mkmakemod.sh
|
|
# dir_top is done by mkmakemod.sh
|
|
# SUBDIRS is done by mkmakemod.sh
|
|
|
|
@VERSION_MK@
|
|
|
|
# source/build directories
|
|
VPATH = @srcdir@
|
|
sdir = @srcdir@
|
|
sdir_top = @top_srcdir@
|
|
INSTALL = @INSTALL@
|
|
|
|
@DEFS_MK@
|
|
|
|
sdir_src = $(sdir_top)/Src
|
|
dir_src = $(dir_top)/Src
|
|
|
|
# ========== COMPILATION RULES ==========
|
|
|
|
DNCFLAGS =
|
|
|
|
COMPILE = $(CC) -c -I. $(CPPFLAGS) $(DEFS) $(CFLAGS) $(D@L@CFLAGS)
|
|
DLCOMPILE = $(CC) -c -I. $(CPPFLAGS) $(DEFS) -DMODULE $(CFLAGS) $(DLCFLAGS)
|
|
LINK = $(CC) $(LDFLAGS) $(EXELDFLAGS) $(EXTRA_LDFLAGS) -o $@
|
|
DLLINK = $(DLLD) $(LDFLAGS) $(LIBLDFLAGS) $(DLLDFLAGS) -o $@
|
|
|
|
KNR_OBJ=.o
|
|
KNROBJ=._foo_
|
|
|
|
ANSIOBJ=.o
|
|
ANSI_OBJ=._foo_
|
|
|
|
.SUFFIXES: .c .$(DL_EXT) ..o .._foo_ .o ._foo_ .syms .pro .epro
|
|
|
|
.c$(ANSI@U@OBJ):
|
|
$(COMPILE) -o $@ $<
|
|
@rm -f $(dir_src)/stamp-modobjs
|
|
|
|
.c$(KNR@U@OBJ):
|
|
@ANSI2KNR@ $< > $@.c
|
|
$(COMPILE) -o $@ $@.c
|
|
rm -f $@.c
|
|
@rm -f $(dir_src)/stamp-modobjs
|
|
|
|
.c.$(ANSI@U@OBJ):
|
|
$(DLCOMPILE) -o $@ $<
|
|
|
|
.c.$(KNR@U@OBJ):
|
|
@ANSI2KNR@ $< > $@.c
|
|
$(DLCOMPILE) -o $@ $@.c
|
|
rm -f $@.c
|
|
|
|
.c.syms:
|
|
$(AWK) -f $(sdir_src)/makepro.awk $< $(subdir) > $@
|
|
|
|
.syms.epro:
|
|
(echo '/* Generated automatically */'; sed -n '/^E/{s/^E//;p;}' < $<) \
|
|
> $@
|
|
(echo '/* Generated automatically */'; sed -n '/^L/{s/^L//;p;}' < $<) \
|
|
> `echo $@ | sed 's/\.epro$$/.pro/'`
|
|
|
|
PROTODEPS = $(sdir_src)/makepro.awk
|
|
|
|
# ========== DEPENDENCIES FOR BUILDING ==========
|
|
|
|
all: modobjs modules
|
|
.PHONY: all
|
|
|
|
modobjs: $(MODOBJS)
|
|
modules: $(MODULES)
|
|
headers: $(MDHS)
|
|
proto: $(PROTOS)
|
|
.PHONY: modobjs modules headers proto
|
|
|
|
prep:
|
|
@case $(sdir_top) in \
|
|
/*) top_srcdir=$(sdir_top) ;; \
|
|
*) top_srcdir=$(subdir)/$(sdir_top) ;; \
|
|
esac; \
|
|
export top_srcdir; \
|
|
cd $(dir_top) || exit 1; \
|
|
subdirs='$(SUBDIRS)'; \
|
|
for subdir in $$subdirs; do \
|
|
dir=$(subdir)/$$subdir; \
|
|
test -d $$dir || mkdir $$dir; \
|
|
$(SHELL) $$top_srcdir/Src/mkmakemod.sh $$dir Makefile || exit 1; \
|
|
( cd $$dir && $(MAKE) $(MAKEDEFS) $@ ) || exit 1; \
|
|
done
|
|
.PHONY: prep
|
|
|
|
headers prep: $(dir_src)/modules.stamp
|
|
$(dir_src)/modules.stamp: $(MDDS)
|
|
echo 'timestamp for *.mdd files' > $@
|
|
.PHONY: headers
|
|
|
|
FORCE:
|
|
.PHONY: FORCE
|
|
|
|
# ========== 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
|
|
install.modules: install.modules-here
|
|
uninstall.modules: uninstall.modules-here
|
|
.PHONY: install.bin uninstall.bin install.modules uninstall.modules
|
|
|
|
install.bin-here uninstall.bin-here:
|
|
install.modules-here uninstall.modules-here:
|
|
.PHONY: install.bin-here install.modules-here
|
|
|
|
# ========== DEPENDENCIES FOR CLEANUP ==========
|
|
|
|
@CLEAN_MK@
|
|
|
|
mostlyclean-here:
|
|
rm -f *.o *.export *.$(DL_EXT)
|
|
.PHONY: mostlyclean-here
|
|
|
|
clean-here:
|
|
rm -f *.o.c *.syms *.pro *.epro *.mdh *.mdhi *.mdhs *.mdh.tmp
|
|
.PHONY: clean-here
|
|
|
|
distclean-here:
|
|
rm -f $(makefile) $(makefile).in
|
|
.PHONY: distclean-here
|
|
|
|
# ========== RECURSIVE MAKES ==========
|
|
|
|
install.bin uninstall.bin install.modules uninstall.modules \
|
|
modobjs modules headers proto:
|
|
@subdirs='$(SUBDIRS)'; for subdir in $$subdirs; do \
|
|
( cd $$subdir && $(MAKE) $(MAKEDEFS) $@ ) || exit 1; \
|
|
done
|
|
|
|
# ========== DEPENDENCIES FOR MAINTENANCE ==========
|
|
|
|
$(makefile): $(makefile).in $(dir_top)/config.status
|
|
@case $(sdir_top) in \
|
|
/*) top_srcdir=$(sdir_top) ;; \
|
|
*) top_srcdir=$(subdir)/$(sdir_top) ;; \
|
|
esac; \
|
|
export top_srcdir; \
|
|
echo 'cd $(dir_top) && $(SHELL)' \
|
|
'$$top_srcdir/Src/mkmakemod.sh -m $(subdir) $(makefile)'; \
|
|
cd $(dir_top) && \
|
|
$(SHELL) $$top_srcdir/Src/mkmakemod.sh -m $(subdir) $(makefile)
|
|
|
|
$(makefile).in: $(sdir_src)/mkmakemod.sh $(sdir_src)/Makemod.in.in $(MDDS) \
|
|
$(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/Src/mkmakemod.sh -i $(subdir) $(makefile)'; \
|
|
cd $(dir_top) && \
|
|
$(SHELL) $$top_srcdir/Src/mkmakemod.sh -i $(subdir) $(makefile)
|
|
|