From: <sg...@us...> - 2003-09-01 05:09:53
|
Update of /cvsroot/libfunutil/libfunutil/toc/make In directory sc8-pr-cvs1:/tmp/cvs-serv2514/toc/make Added Files: c_bins.make makerules.C_BINS_FROM_SOURCES Log Message: egg --- NEW FILE: c_bins.make --- #!make # usage: # set: # C_BINS_FROM_SOURCES = foo bar # foo_bin_SOURCES = foo.c foo2.c # bar_bin_SOURCES = bar.c bar2.c foobar.c # optional: foo_bin_OBJECTS = somethingdifferent.o # optional: foo_bin_CFLAGS = -DCOMPILING_FOO=1 -I/somewhere/different # # all: bins # # This compiles, all in one go, 'bar' from $(bar_bin_SOURCES) C_BINS_FROM_SOURCES_MAKEFILE = $(toc_makesdir)/c_bins.make ifneq (,$(C_BINS_FROM_SOURCES)) C_BINS_FROM_SOURCES_RULES_GENERATOR = $(toc_makesdir)/makerules.C_BINS_FROM_SOURCES C_BINS_FROM_SOURCES_COMMON_DEPS += Makefile $(C_BINS_FROM_SOURCES_MAKEFILE) C_BINS_FROM_SOURCES_DEPSFILE = .toc.C_BINS_FROM_SOURCES.make CLEAN_FILES += $(C_BINS_FROM_SOURCES_DEPSFILE) $(C_BINS_FROM_SOURCES_DEPSFILE): $(C_BINS_FROM_SOURCES_COMMON_DEPS) $(C_BINS_FROM_SOURCES_RULES_GENERATOR) ifneq (,$(strip $(filter distclean clean,$(MAKECMDGOALS)))) @echo "$(MAKECMDGOALS): skipping C_BINS_FROM_SOURCES rules generation." else @echo "Generating C_BINS_FROM_SOURCES rules."; \ $(call toc_generate_rules,C_BINS_FROM_SOURCES,$(C_BINS_FROM_SOURCES)) > $@ endif # ^^^ making clean? -include $(C_BINS_FROM_SOURCES_DEPSFILE) deps: $(C_BINS_FROM_SOURCES_DEPSFILE) endif # ^^^ got $(C_BINS_FROM_SOURCES)? --- NEW FILE: makerules.C_BINS_FROM_SOURCES --- #!/bin/sh # creates some makefile code for the $(C_BINS_FROM_SOURCES) var test -z "$1" && { echo "usage: $0 appone [apptwo ...]" exit 1 } echo "C_BINS_FROM_SOURCES_COMMON_DEPS += $0" for t in $@; do cat <<EOF $t: \$(C_BINS_FROM_SOURCES_COMMON_DEPS) \$(${t}_bin_SOURCES) \$(${t}_bin_OBJECTS) @echo "Building C[++] binary [$t]."; set -x; \$(call toc_compile_c_binary,${t},) CLEAN_FILES += $t bin-$t: $t bins: bin-$t EOF done |