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
|