mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-04 07:21:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			191 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			191 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
#
 | 
						|
# 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)
 | 
						|
 |