Update of /cvsroot/libfunutil/libfunutil/toc/make In directory sc8-pr-cvs1:/tmp/cvs-serv19869/toc/make Modified Files: cpp_bins.make cpp_dynamic_libs.make cpp_static_libs.make deps.make install.make makerules.BIN_PROGRAMS makerules.INSTALL_XXX Log Message: made some changes to the generic rules generation approach. Index: cpp_bins.make =================================================================== RCS file: /cvsroot/libfunutil/libfunutil/toc/make/cpp_bins.make,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- cpp_bins.make 31 Aug 2003 00:46:33 -0000 1.6 +++ cpp_bins.make 31 Aug 2003 20:23:01 -0000 1.7 @@ -39,14 +39,20 @@ CLEAN_FILES += $(wildcard $(BIN_PROGRAMS)) endif -BIN_PROGRAMS_DEPSFILE = .toc.BIN_PROGRAMS.deps +BIN_PROGRAMS_DEPSFILE = .toc.BIN_PROGRAMS.make BIN_PROGRAMS_RULES_GENERATOR = $(dir $(BIN_PROGRAMS_MAKEFILE))makerules.BIN_PROGRAMS +BIN_PROGRAMS_COMMON_DEPS += Makefile $(BIN_PROGRAMS_MAKEFILE) $(BIN_PROGRAMS_OBJECTS) $(BIN_PROGRAMS_DEPSFILE): Makefile $(BIN_PROGRAMS_RULES_GENERATOR) $(BIN_PROGRAMS_MAKEFILE) +ifneq (,$(strip $(filter distclean clean,$(MAKECMDGOALS)))) + @echo "$(MAKECMDGOALS): skipping BIN_PROGRAMS rules generation." +else @echo "Generating BIN_PROGRAMS rules."; \ - $(BIN_PROGRAMS_RULES_GENERATOR) $(BIN_PROGRAMS) > $@ + $(call toc_generate_rules,BIN_PROGRAMS,$(BIN_PROGRAMS)) > $@ + -include $(BIN_PROGRAMS_DEPSFILE) +endif deps: $(BIN_PROGRAMS_DEPSFILE) Index: cpp_dynamic_libs.make =================================================================== RCS file: /cvsroot/libfunutil/libfunutil/toc/make/cpp_dynamic_libs.make,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- cpp_dynamic_libs.make 26 Aug 2003 00:58:54 -0000 1.8 +++ cpp_dynamic_libs.make 31 Aug 2003 20:23:01 -0000 1.9 @@ -67,8 +67,12 @@ SHARED_LIBS_DEPSFILE = .toc.deps.SHARED_LIBS.make deps: $(SHARED_LIBS_INSTALL_RULES) $(SHARED_LIBS_DEPSFILE): Makefile $(SHARED_LIBS_MAKEFILE) $(SHARED_LIBS_RULES_GENERATOR) +ifneq (,$(strip $(filter distclean clean,$(MAKECMDGOALS)))) + @echo "$(MAKECMDGOALS): skipping SHARED_LIBS rules generation." +else @echo "Generating rules for SHARED_LIBS."; \ - $(SHARED_LIBS_RULES_GENERATOR) $(SHARED_LIBS) > $@ + $(call toc_generate_rules,SHARED_LIBS,$(SHARED_LIBS)) > $@ +endif -include $(SHARED_LIBS_DEPSFILE) CLEAN_FILES += $(SHARED_LIBS_SOFILES) $(wildcard $(patsubst %,%.*,$(SHARED_LIBS_SOFILES))) Index: cpp_static_libs.make =================================================================== RCS file: /cvsroot/libfunutil/libfunutil/toc/make/cpp_static_libs.make,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- cpp_static_libs.make 26 Aug 2003 00:58:54 -0000 1.5 +++ cpp_static_libs.make 31 Aug 2003 20:23:02 -0000 1.6 @@ -24,12 +24,16 @@ ifneq (,$(STATIC_LIBS_A)) -STATIC_LIBS_DEPSFILE = .toc.deps.STATIC_LIBS.make +STATIC_LIBS_DEPSFILE = .toc.STATIC_LIBS.make STATIC_LIBS_RULES_GENERATOR = $(dir $(STATIC_LIBS_MAKEFILE))makerules.STATIC_LIBS $(STATIC_LIBS_DEPSFILE): Makefile $(STATIC_LIBS_MAKEFILE) $(STATIC_LIBS_RULES_GENERATOR) +ifneq (,$(strip $(filter distclean clean,$(MAKECMDGOALS)))) + @echo "$(MAKECMDGOALS): skipping STATIC_LIBS rules generation." +else @echo "Generating rules for STATIC_LIBS."; \ - $(STATIC_LIBS_RULES_GENERATOR) $(STATIC_LIBS) > $@ + $(call toc_generate_rules,STATIC_LIBS,$(STATIC_LIBS)) > $@ +endif -include $(STATIC_LIBS_DEPSFILE) deps: $(STATIC_LIBS_DEPSFILE) Index: deps.make =================================================================== RCS file: /cvsroot/libfunutil/libfunutil/toc/make/deps.make,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- deps.make 30 Aug 2003 19:20:30 -0000 1.8 +++ deps.make 31 Aug 2003 20:23:02 -0000 1.9 @@ -2,14 +2,12 @@ # Usage: # include path/to/this/file # -# That will set up a 'deps' target which deps all .cpp files and updates +# That will set up a 'deps' target which deps all C/C++ files and updates # the deps when any of those files, or the Makefile, changes. # That's normally all there is to it. -# You will often see ".toc.deps.c.make not found" warnings, but make takes -# care of generating and including it, so it's nothing to be concerned about. -DEPS_C_SOURCES_GLOB = *.cpp *.c *.c++ *.C *.cc *.moc -SOURCE_FILES_TO_DEP = $(sort $(wildcard $(DEPS_C_SOURCES_GLOB))) +DEPS_C_SOURCES_GLOB ?= *.cpp *.c *.c++ *.C *.cc *.moc +SOURCE_FILES_TO_DEP ?= $(sort $(wildcard $(DEPS_C_SOURCES_GLOB))) TOC_C_DEPS_MAKEFILE = $(toc_makesdir)/deps.make @@ -31,16 +29,20 @@ TOC_C_DEPSFILE = .toc.deps.c.make $(TOC_C_DEPSFILE): $(DEPSGEN_BIN) $(SOURCE_FILES_TO_DEP) Makefile $(TOC_C_DEPS_MAKEFILE) +ifneq (,$(strip $(filter clean distclean,$(MAKECMDGOALS)))) + @echo "$(MAKECMDGOALS): skipping source code dependencies generation." +else @test -n "$(SOURCE_FILES_TO_DEP)" || exit 0; \ echo "Generating source file dependencies for $(DEPS_C_SOURCES_GLOB)"; \ $(call toc_make_c_deps,$(SOURCE_FILES_TO_DEP),) > $@ +-include $(TOC_C_DEPSFILE) +endif deps-c: $(TOC_C_DEPSFILE) deps: deps-c CLEAN_FILES += $(TOC_C_DEPSFILE) all: deps-c --include $(TOC_C_DEPSFILE) endif Index: install.make =================================================================== RCS file: /cvsroot/libfunutil/libfunutil/toc/make/install.make,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- install.make 31 Aug 2003 00:44:12 -0000 1.21 +++ install.make 31 Aug 2003 20:23:02 -0000 1.22 @@ -41,6 +41,10 @@ $(error install.make requires that the variable INSTALLER_BIN point to a version of install which is vaguely compatible with GNU install.) endif +#INSTALL_BINS_SUFFIX ?= +#ifeq (1,$(configure_with_CYGWIN)) +#INSTALL_BINS_SUFFIX = .exe +#endif # This whole echo/grep thing is to force it to work on some of my # older machines where more sane approaches don't seem to work. @@ -146,8 +150,11 @@ # Make 3.79 is very common, but doesn't support $(eval). # todo? move this into the configure process? $(INSTALL_DEPS_FILE): $(INSTALL_MAKEFILE) $(INSTALL_XXX_GENERATOR) - @echo "Creating generic installation rules..."; \ - $(INSTALL_XXX_GENERATOR) \ +ifneq (,$(strip $(filter clean distclean,$(MAKECMDGOALS)))) + @echo "$(MAKECMDGOALS): skipping INSTALL_XXX rules generation." +else + @echo "Generating rules for INSTALL_XXX."; \ + $(call toc_generate_rules,INSTALL_XXX,\ BINS=bin \ SBINS=sbin \ LIBS=lib \ @@ -157,7 +164,9 @@ PACKAGE_HEADERS='include/$$(PACKAGE_NAME)' \ PACKAGE_DATA='share/$$(PACKAGE_NAME)' \ DOCS='share/doc/$$(PACKAGE_NAME)' \ - > $@ + ) > $@ +endif + -include $(INSTALL_DEPS_FILE) install: $(INSTALL_DEPS_FILE) .PHONY: install-. uninstall-. Index: makerules.BIN_PROGRAMS =================================================================== RCS file: /cvsroot/libfunutil/libfunutil/toc/make/makerules.BIN_PROGRAMS,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- makerules.BIN_PROGRAMS 28 Aug 2003 09:16:56 -0000 1.1 +++ makerules.BIN_PROGRAMS 31 Aug 2003 20:23:02 -0000 1.2 @@ -5,7 +5,7 @@ echo "usage: $0 appone [apptwo ...]" exit 1 } -echo "BIN_PROGRAMS_COMMON_DEPS = $0 Makefile \$(BIN_PROGRAMS_MAKEFILE) \$(BIN_PROGRAMS_OBJECTS)" +echo "BIN_PROGRAMS_COMMON_DEPS += $0" for t in $@; do cat <<EOF $t: \$(BIN_PROGRAMS_COMMON_DEPS) \$(${t}_bin_OBJECTS) Index: makerules.INSTALL_XXX =================================================================== RCS file: /cvsroot/libfunutil/libfunutil/toc/make/makerules.INSTALL_XXX,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- makerules.INSTALL_XXX 28 Aug 2003 09:26:25 -0000 1.2 +++ makerules.INSTALL_XXX 31 Aug 2003 20:23:02 -0000 1.3 @@ -12,17 +12,20 @@ tgt=${kvp%%=*} dest='$(prefix)/'${kvp##*=} cat <<EOF +# rules for INSTALL_${tgt}: INSTALL_${tgt}_DEST ?= $dest install-${tgt}: FORCE @\$(call toc_make_install,\$(INSTALL_${tgt}),\$(INSTALL_${tgt}_DEST),\$(INSTALL_${tgt}_INSTALL_FLAGS)) install-${tgt}-update: FORCE @\$(call toc_make_install_update,\$(INSTALL_${tgt}),\$(INSTALL_${tgt}_DEST),\$(INSTALL_${tgt}_INSTALL_FLAGS)) uninstall-${tgt}: - @\$(call toc_make_uninstall,\$(INSTALL_${tgt}),\$(INSTALL_${tgt}_DEST),\$(INSTALL_${tgt}_INSTALL_FLAGS)) + @\$(call toc_make_uninstall,\$(INSTALL_${tgt}),\$(INSTALL_${tgt}_DEST)) install-${tgt}-symlink: @\$(call toc_make_install_symlink,\$(INSTALL_${tgt}),\$(INSTALL_${tgt}_DEST)) install: install-${tgt} uninstall: uninstall-${tgt} install-update: install-${tgt}-update +# end INSTALL_${tgt} rules + EOF done |