[complement-svn] SF.net SVN: complement: [1399] trunk/complement/explore/Makefiles
Status: Pre-Alpha
Brought to you by:
complement
From: <com...@us...> - 2006-11-17 07:46:34
|
Revision: 1399 http://svn.sourceforge.net/complement/?rev=1399&view=rev Author: complement Date: 2006-11-16 23:46:32 -0800 (Thu, 16 Nov 2006) Log Message: ----------- ability to build few programs from same Makefile; pure C linkage may not work properly for multiple progrmas yet Modified Paths: -------------- trunk/complement/explore/Makefiles/ChangeLog trunk/complement/explore/Makefiles/clean.mak trunk/complement/explore/Makefiles/gmake/app/clean.mak trunk/complement/explore/Makefiles/gmake/app/macro.mak trunk/complement/explore/Makefiles/gmake/app/rules-install.mak trunk/complement/explore/Makefiles/gmake/app/rules.mak trunk/complement/explore/Makefiles/gmake/lib/clean.mak trunk/complement/explore/Makefiles/gmake/targets.mak trunk/complement/explore/Makefiles/top.mak Modified: trunk/complement/explore/Makefiles/ChangeLog =================================================================== --- trunk/complement/explore/Makefiles/ChangeLog 2006-11-13 18:25:20 UTC (rev 1398) +++ trunk/complement/explore/Makefiles/ChangeLog 2006-11-17 07:46:32 UTC (rev 1399) @@ -1,3 +1,16 @@ +2006-11-17 Petr Ovtchenkov <pt...@is...> + + * gmake/app/rules.mak, rules-install.mak, macro.mak, clean.mak: + ability to build few programs from same Makefile; pure C linkage + may not work properly for multiple progrmas yet. + + * gmake/targets.mak: idem + + * clean.mak, top.mak: idem + + * gmake/lib/clean.mak: idem, but main functionality for libraries + not completed yet. + 2006-11-10 Petr Ovtchenkov <pt...@is...> * gmake/app/rules.mak, gmake/app/gcc.mak: add static tags; Modified: trunk/complement/explore/Makefiles/clean.mak =================================================================== --- trunk/complement/explore/Makefiles/clean.mak 2006-11-13 18:25:20 UTC (rev 1398) +++ trunk/complement/explore/Makefiles/clean.mak 2006-11-17 07:46:32 UTC (rev 1399) @@ -1,4 +1,4 @@ -# -*- Makefile -*- Time-stamp: <06/11/11 01:06:53 ptr> +# -*- Makefile -*- Time-stamp: <06/11/17 00:25:42 ptr> # # Copyright (c) 1997-1999, 2002, 2003, 2005, 2006 # Petr Ovtchenkov @@ -11,13 +11,33 @@ PHONY += clean distclean mostlyclean maintainer-clean uninstall +define obj_clean +clean:: + @-rm -f $$($(1)_OBJ) $$($(1)_DEP) + @-rm -f $$($(1)_OBJ_DBG) $$($(1)_DEP_DBG) + @-rm -f $$($(1)_OBJ_STLDBG) $$($(1)_DEP_STLDBG) +endef + clean:: @-rm -f core core.* +ifdef PRGNAME @-rm -f $(OBJ) $(DEP) @-rm -f $(OBJ_DBG) $(DEP_DBG) @-rm -f $(OBJ_STLDBG) $(DEP_STLDBG) +endif +ifdef LIBNAME + @-rm -f $(OBJ) $(DEP) + @-rm -f $(OBJ_DBG) $(DEP_DBG) + @-rm -f $(OBJ_STLDBG) $(DEP_STLDBG) +endif +$(foreach prg,$(PRGNAMES),$(eval $(call obj_clean,$(prg)))) + +$(foreach prg,$(LIBNAMES),$(eval $(call obj_clean,$(prg)))) + distclean:: clean +# $(DEPENDS_COLLECTION) removed before directory, +# see app/clean.mak and lib/clean.mak mostlyclean: clean @-rm -f $(DEPENDS_COLLECTION) Modified: trunk/complement/explore/Makefiles/gmake/app/clean.mak =================================================================== --- trunk/complement/explore/Makefiles/gmake/app/clean.mak 2006-11-13 18:25:20 UTC (rev 1398) +++ trunk/complement/explore/Makefiles/gmake/app/clean.mak 2006-11-17 07:46:32 UTC (rev 1399) @@ -1,4 +1,4 @@ -# -*- makefile -*- Time-stamp: <06/11/11 00:43:13 ptr> +# -*- makefile -*- Time-stamp: <06/11/17 00:29:39 ptr> # # Copyright (c) 1997-1999, 2002, 2003, 2005, 2006 # Petr Ovtchenkov @@ -9,16 +9,27 @@ # Licensed under the Academic Free License version 3.0 # +define prog_clean clean:: - @-rm -f ${PRG} - @-rm -f ${PRG_DBG} - @-rm -f ${PRG_STLDBG} + @rm -f $${$(1)_PRG} $${$(1)_PRG_DBG} $${$(1)_PRG_STLDBG} +uninstall:: + @rm -f $$(INSTALL_BIN_DIR)/$$($(1)_PRG) $$(INSTALL_BIN_DIR_DBG)/$$($(1)_PRG_DBG) $$(INSTALL_BIN_DIR_STLDBG)/$$($(1)_PRG_STLDBG) +endef + +clean:: +ifdef PRGNAME + @-rm -f ${PRG} ${PRG_DBG} ${PRG_STLDBG} +endif + +$(foreach prg,$(PRGNAMES),$(eval $(call prog_clean,$(prg)))) + distclean:: @-rm -f $(DEPENDS_COLLECTION) - @-rmdir -p ${OUTPUT_DIR} ${OUTPUT_DIR_DBG} ${OUTPUT_DIR_STLDBG} 2>/dev/null || exit 0 + @-rmdir -p ${OUTPUT_DIR} ${OUTPUT_DIR_DBG} ${OUTPUT_DIR_STLDBG} 2>/dev/null -uninstall: - @-rm -f $(INSTALL_BIN_DIR)/$(PRG) - @-rm -f $(INSTALL_BIN_DIR_DBG)/$(PRG_DBG) - @-rm -f $(INSTALL_BIN_DIR_STLDBG)/$(PRG_STLDBG) +uninstall:: +ifdef PRGNAME + @-rm -f $(INSTALL_BIN_DIR)/$(PRG) $(INSTALL_BIN_DIR_DBG)/$(PRG_DBG) $(INSTALL_BIN_DIR_STLDBG)/$(PRG_STLDBG) +endif + @-rmdir -p $(INSTALL_BIN_DIR) $(INSTALL_BIN_DIR_DBG) $(INSTALL_BIN_DIR_STLDBG) 2>/dev/null Modified: trunk/complement/explore/Makefiles/gmake/app/macro.mak =================================================================== --- trunk/complement/explore/Makefiles/gmake/app/macro.mak 2006-11-13 18:25:20 UTC (rev 1398) +++ trunk/complement/explore/Makefiles/gmake/app/macro.mak 2006-11-17 07:46:32 UTC (rev 1399) @@ -1,5 +1,30 @@ -# Time-stamp: <06/11/10 17:27:33 ptr> +# Time-stamp: <06/11/16 23:37:38 ptr> +# +# Copyright (c) 1997-1999, 2002, 2003, 2005, 2006 +# Petr Ovtchenkov +# +# Portion Copyright (c) 1999-2001 +# Parallel Graphics Ltd. +# +# Licensed under the Academic Free License version 3.0 +# +ALLPRGS = +ALLPRGS_DBG = +ALLPRGS_STLDBG = + +define prog_prog +$(1)_PRG := $(OUTPUT_DIR)/$(1)${EXE} +$(1)_PRG_DBG := $(OUTPUT_DIR_DBG)/$(1)${EXE} +$(1)_PRG_STLDBG := $(OUTPUT_DIR_STLDBG)/$(1)${EXE} + +ALLPRGS += $${$(1)_PRG} +ALLPRGS_DBG += $${$(1)_PRG_DBG} +ALLPRGS_STLDBG += $${$(1)_PRG_STLDBG} +endef + +$(foreach prg,$(PRGNAMES),$(eval $(call prog_prog,$(prg)))) + PRG := $(OUTPUT_DIR)/${PRGNAME}${EXE} PRG_DBG := $(OUTPUT_DIR_DBG)/${PRGNAME}${EXE} PRG_STLDBG := $(OUTPUT_DIR_STLDBG)/${PRGNAME}${EXE} Modified: trunk/complement/explore/Makefiles/gmake/app/rules-install.mak =================================================================== --- trunk/complement/explore/Makefiles/gmake/app/rules-install.mak 2006-11-13 18:25:20 UTC (rev 1398) +++ trunk/complement/explore/Makefiles/gmake/app/rules-install.mak 2006-11-17 07:46:32 UTC (rev 1399) @@ -1,4 +1,4 @@ -# -*- makefile -*- Time-stamp: <06/11/02 10:45:53 ptr> +# -*- makefile -*- Time-stamp: <06/11/17 00:21:21 ptr> # # Copyright (c) 1997-1999, 2002, 2003, 2005, 2006 # Petr Ovtchenkov @@ -15,38 +15,49 @@ install: install-release-shared install-dbg-shared endif -# The program name to be installed will be the same as compiled name, -# but it will be a bit altered in case of installation debug and/or -# stlport-debug program in the same catalog as 'release' program. +INSTALL_PRGNAME_CMD = +INSTALL_PRGNAME_CMD_DBG = +INSTALL_PRGNAME_CMD_STLDBG = +define prog_install +INSTALL_$(1)_PRGNAME := $(1)${EXE} +INSTALL_PRGNAME_CMD += $$(INSTALL_EXE) $${$(1)_PRG} $$(INSTALL_BIN_DIR)/$${INSTALL_$(1)_PRGNAME}; \ + +INSTALL_$(1)_PRGNAME_DBG := $${INSTALL_$(1)_PRGNAME} +INSTALL_PRGNAME_CMD_DBG += $$(INSTALL_EXE) $${$(1)_PRG_DBG} $$(INSTALL_BIN_DIR_DBG)/$${INSTALL_$(1)_PRGNAME_DBG}; \ + +ifndef WITHOUT_STLPORT +INSTALL_$(1)_PRGNAME_STLDBG := $${INSTALL_$(1)_PRGNAME} +INSTALL_PRGNAME_CMD_STLDBG += $$(INSTALL_EXE) $${$(1)_PRG_STLDBG} $$(INSTALL_BIN_DIR_STLDBG)/$${INSTALL_$(1)_PRGNAME_STLDBG}; \ + +endif +endef + INSTALL_PRGNAME := ${PRGNAME}${EXE} +$(foreach prg,$(PRGNAMES),$(eval $(call prog_install,$(prg)))) -#ifeq (${INSTALL_BIN_DIR},${INSTALL_BIN_DIR_DBG}) -#INSTALL_PRGNAME_DBG := ${PRGNAME}g${EXE} -#else INSTALL_PRGNAME_DBG := ${INSTALL_PRGNAME} -#endif ifndef WITHOUT_STLPORT -#ifeq (${INSTALL_BIN_DIR},${INSTALL_BIN_DIR_STLDBG}) -#INSTALL_PRGNAME_STLDBG := ${PRGNAME}stlg${EXE} -#else INSTALL_PRGNAME_STLDBG := ${INSTALL_PRGNAME} -#endif endif -#ifeq (${INSTALL_BIN_DIR_DBG},${INSTALL_BIN_DIR_STLDBG}) -#INSTALL_PRGNAME_DBG := ${PRGNAME}g${EXE} -#INSTALL_PRGNAME_STLDBG := ${PRGNAME}stlg${EXE} -#endif - install-release-shared: release-shared $(INSTALL_BIN_DIR) +ifdef PRGNAME $(INSTALL_EXE) ${PRG} $(INSTALL_BIN_DIR)/${INSTALL_PRGNAME} +endif + $(INSTALL_PRGNAME_CMD) install-dbg-shared: dbg-shared $(INSTALL_BIN_DIR_DBG) +ifdef PRGNAME $(INSTALL_EXE) ${PRG_DBG} $(INSTALL_BIN_DIR_DBG)/${INSTALL_PRGNAME_DBG} +endif + $(INSTALL_PRGNAME_CMD_DBG) ifndef WITHOUT_STLPORT install-stldbg-shared: stldbg-shared $(INSTALL_BIN_DIR_STLDBG) +ifdef PRGNAME $(INSTALL_EXE) ${PRG_STLDBG} $(INSTALL_BIN_DIR_STLDBG)/${INSTALL_PRGNAME_STLDBG} endif + $(INSTALL_PRGNAME_CMD_STLDBG) +endif Modified: trunk/complement/explore/Makefiles/gmake/app/rules.mak =================================================================== --- trunk/complement/explore/Makefiles/gmake/app/rules.mak 2006-11-13 18:25:20 UTC (rev 1398) +++ trunk/complement/explore/Makefiles/gmake/app/rules.mak 2006-11-17 07:46:32 UTC (rev 1399) @@ -1,4 +1,4 @@ -# -*- makefile -*- Time-stamp: <06/11/10 17:10:45 ptr> +# -*- makefile -*- Time-stamp: <06/11/17 10:34:26 ptr> # # Copyright (c) 1997-1999, 2002, 2003, 2005, 2006 # Petr Ovtchenkov @@ -9,22 +9,49 @@ # Licensed under the Academic Free License version 3.0 # -dbg-shared: $(EXTRA_PRE_DBG) $(OUTPUT_DIR_DBG) ${PRG_DBG} $(EXTRA_POST_DBG) +dbg-shared: $(EXTRA_PRE_DBG) $(OUTPUT_DIR_DBG) ${PRG_DBG} ${ALLPRGS_DBG} $(EXTRA_POST_DBG) -dbg-static: $(EXTRA_PRE_DBG) $(OUTPUT_DIR_DBG) ${PRG_DBG} $(EXTRA_POST_DBG) +dbg-static: $(EXTRA_PRE_DBG) $(OUTPUT_DIR_DBG) ${PRG_DBG} ${ALLPRGS_DBG} $(EXTRA_POST_DBG) -release-shared: $(EXTRA_PRE) $(OUTPUT_DIR) ${PRG} $(EXTRA_POST) +release-shared: $(EXTRA_PRE) $(OUTPUT_DIR) ${PRG} ${ALLPRGS} $(EXTRA_POST) -release-static: $(EXTRA_PRE) $(OUTPUT_DIR) ${PRG} $(EXTRA_POST) +release-static: $(EXTRA_PRE) $(OUTPUT_DIR) ${PRG} ${ALLPRGS} $(EXTRA_POST) ifndef WITHOUT_STLPORT -stldbg-shared: $(EXTRA_PRE_STLDBG) $(OUTPUT_DIR_STLDBG) ${PRG_STLDBG} $(EXTRA_POST_STLDBG) +stldbg-shared: $(EXTRA_PRE_STLDBG) $(OUTPUT_DIR_STLDBG) ${PRG_STLDBG} ${ALLPRGS_STLDBG} $(EXTRA_POST_STLDBG) -stldbg-static: $(EXTRA_PRE_STLDBG) $(OUTPUT_DIR_STLDBG) ${PRG_STLDBG} $(EXTRA_POST_STLDBG) +stldbg-static: $(EXTRA_PRE_STLDBG) $(OUTPUT_DIR_STLDBG) ${PRG_STLDBG} ${ALLPRGS_STLDBG} $(EXTRA_POST_STLDBG) endif +define prog_lnk +ifeq ($${_$(1)_C_SOURCES_ONLY},) +$${$(1)_PRG}: $$($(1)_OBJ) $$(LIBSDEP) + $$(LINK.cc) $$(LINK_OUTPUT_OPTION) $${START_OBJ} $$($(1)_OBJ) $$(LDLIBS) $${STDLIBS} $${END_OBJ} + +$${$(1)_PRG_DBG}: $$($(1)_OBJ_DBG) $$(LIBSDEP) + $$(LINK.cc) $$(LINK_OUTPUT_OPTION) $${START_OBJ} $$($(1)_OBJ_DBG) $$(LDLIBS) $${STDLIBS} $${END_OBJ} + +ifndef WITHOUT_STLPORT +$${$(1)_PRG_STLDBG}: $$($(1)_OBJ_STLDBG) $$(LIBSDEP) + $$(LINK.cc) $$(LINK_OUTPUT_OPTION) $${START_OBJ} $$($(1)_OBJ_STLDBG) $$(LDLIBS) $${STDLIBS} $${END_OBJ} +endif +else +$${$(1)_PRG}: $$($(1)_OBJ) $$(LIBSDEP) + $$(LINK.c) $$(LINK_OUTPUT_OPTION) $$($(1)_OBJ) $$(LDLIBS) + +$${$(1)_PRG_DBG}: $$(OBJ_DBG) $$(LIBSDEP) + $$(LINK.c) $$(LINK_OUTPUT_OPTION) $$($(1)_OBJ_DBG) $$(LDLIBS) + +ifndef WITHOUT_STLPORT +$${$(1)_PRG_STLDBG}: $$($(1)_OBJ_STLDBG) $$(LIBSDEP) + $$(LINK.c) $$(LINK_OUTPUT_OPTION) $$($(1)_OBJ_STLDBG) $$(LDLIBS) +endif +endif +endef + +$(foreach prg,$(PRGNAMES),$(eval $(call prog_lnk,$(prg)))) + ifeq ("${_C_SOURCES_ONLY}","") - ${PRG}: $(OBJ) $(LIBSDEP) $(LINK.cc) $(LINK_OUTPUT_OPTION) ${START_OBJ} $(OBJ) $(LDLIBS) ${STDLIBS} ${END_OBJ} @@ -35,9 +62,7 @@ ${PRG_STLDBG}: $(OBJ_STLDBG) $(LIBSDEP) $(LINK.cc) $(LINK_OUTPUT_OPTION) ${START_OBJ} $(OBJ_STLDBG) $(LDLIBS) ${STDLIBS} ${END_OBJ} endif - else - ${PRG}: $(OBJ) $(LIBSDEP) $(LINK.c) $(LINK_OUTPUT_OPTION) $(OBJ) $(LDLIBS) @@ -48,5 +73,4 @@ ${PRG_STLDBG}: $(OBJ_STLDBG) $(LIBSDEP) $(LINK.c) $(LINK_OUTPUT_OPTION) $(OBJ_STLDBG) $(LDLIBS) endif - endif Modified: trunk/complement/explore/Makefiles/gmake/lib/clean.mak =================================================================== --- trunk/complement/explore/Makefiles/gmake/lib/clean.mak 2006-11-13 18:25:20 UTC (rev 1398) +++ trunk/complement/explore/Makefiles/gmake/lib/clean.mak 2006-11-17 07:46:32 UTC (rev 1399) @@ -1,4 +1,4 @@ -# -*- makefile -*- Time-stamp: <06/11/11 00:43:08 ptr> +# -*- makefile -*- Time-stamp: <06/11/17 00:39:31 ptr> # # Copyright (c) 1997-1999, 2002, 2003, 2005, 2006 # Petr Ovtchenkov @@ -9,7 +9,55 @@ # Licensed under the Academic Free License version 3.0 # +define lib_clean clean:: + @-rm -f $${$(1)_SO_NAME_OUT} + @-rm -f $${$(1)_SO_NAME_OUTx} + @-rm -f $${$(1)_SO_NAME_OUTxx} + @-rm -f $${$(1)_SO_NAME_OUTxxx} + @-rm -f $${$(1)_SO_NAME_OUT_DBG} + @-rm -f $${$(1)_SO_NAME_OUT_DBGx} + @-rm -f $${$(1)_SO_NAME_OUT_DBGxx} + @-rm -f $${$(1)_SO_NAME_OUT_DBGxxx} + @-rm -f $${$(1)_SO_NAME_OUT_STLDBG} + @-rm -f $${$(1)_SO_NAME_OUT_STLDBGx} + @-rm -f $${$(1)_SO_NAME_OUT_STLDBGxx} + @-rm -f $${$(1)_SO_NAME_OUT_STLDBGxxx} + @-rm -f $${$(1)_A_NAME_OUT} + @-rm -f $${$(1)_A_NAME_OUT_DBG} + @-rm -f $${$(1)_A_NAME_OUT_STLDBG} +ifeq ($(OSNAME), cygming) + @-rm -f $${$(1)_LIB_NAME_OUT} + @-rm -f $${$(1)_LIB_NAME_OUT_DBG} + @-rm -f $${$(1)_LIB_NAME_OUT_STLDBG} + @-rm -f $${$(1)_RES} + @-rm -f $${$(1)_RES_DBG} + @-rm -f $${$(1)_RES_STLDBG} +endif + +uninstall:: + @-rm -f $$(INSTALL_LIB_DIR)/$$($(1)_SO_NAME) + @-rm -f $$(INSTALL_LIB_DIR)/$$($(1)_SO_NAMEx) + @-rm -f $$(INSTALL_LIB_DIR)/$$($(1)_SO_NAMExx) + @-rm -f $$(INSTALL_LIB_DIR)/$$($(1)_SO_NAMExxx) + @-rm -f $$(INSTALL_LIB_DIR_DBG)/$$($(1)_SO_NAME_DBG) + @-rm -f $$(INSTALL_LIB_DIR_DBG)/$$($(1)_SO_NAME_DBGx) + @-rm -f $$(INSTALL_LIB_DIR_DBG)/$$($(1)_SO_NAME_DBGxx) + @-rm -f $$(INSTALL_LIB_DIR_DBG)/$$($(1)_SO_NAME_DBGxxx) + @-rm -f $$(INSTALL_LIB_DIR_STLDBG)/$$($(1)_SO_NAME_STLDBG) + @-rm -f $$(INSTALL_LIB_DIR_STLDBG)/$$($(1)_SO_NAME_STLDBGx) + @-rm -f $$(INSTALL_LIB_DIR_STLDBG)/$$($(1)_SO_NAME_STLDBGxx) + @-rm -f $$(INSTALL_LIB_DIR_STLDBG)/$$($(1)_SO_NAME_STLDBGxxx) + @-rm -f $$(INSTALL_LIB_DIR)/$${$(1)_A_NAME_OUT} + @-rm -f $$(INSTALL_LIB_DIR_DBG)/$${$(1)_A_NAME_OUT_DBG} + @-rm -f $$(INSTALL_LIB_DIR_STLDBG)/$${$(1)_A_NAME_OUT_STLDBG} + @-rmdir -p $$(INSTALL_LIB_DIR) $$(INSTALL_LIB_DIR_DBG) $$(INSTALL_LIB_DIR_STLDBG) 2>/dev/null +endef + +$(foreach nm,$(LIBNAMES),$(eval $(call lib_clean,$(nm)))) + +clean:: +ifdef LIBNAME @-rm -f ${SO_NAME_OUT} @-rm -f ${SO_NAME_OUTx} @-rm -f ${SO_NAME_OUTxx} @@ -33,12 +81,14 @@ @-rm -f ${RES_DBG} @-rm -f ${RES_STLDBG} endif +endif distclean:: @-rm -f $(DEPENDS_COLLECTION) - @-rmdir -p ${OUTPUT_DIR} ${OUTPUT_DIR_DBG} ${OUTPUT_DIR_STLDBG} 2>/dev/null || exit 0 + @-rmdir -p ${OUTPUT_DIR} ${OUTPUT_DIR_DBG} ${OUTPUT_DIR_STLDBG} 2>/dev/null -uninstall: +uninstall:: +ifdef LIBNAME @-rm -f $(INSTALL_LIB_DIR)/$(SO_NAME) @-rm -f $(INSTALL_LIB_DIR)/$(SO_NAMEx) @-rm -f $(INSTALL_LIB_DIR)/$(SO_NAMExx) @@ -54,5 +104,6 @@ @-rm -f $(INSTALL_LIB_DIR)/${A_NAME_OUT} @-rm -f $(INSTALL_LIB_DIR_DBG)/${A_NAME_OUT_DBG} @-rm -f $(INSTALL_LIB_DIR_STLDBG)/${A_NAME_OUT_STLDBG} - @-rmdir -p $(INSTALL_LIB_DIR) $(INSTALL_LIB_DIR_DBG) $(INSTALL_LIB_DIR_STLDBG) 2>/dev/null || exit 0 +endif + @-rmdir -p $(INSTALL_LIB_DIR) $(INSTALL_LIB_DIR_DBG) $(INSTALL_LIB_DIR_STLDBG) 2>/dev/null Modified: trunk/complement/explore/Makefiles/gmake/targets.mak =================================================================== --- trunk/complement/explore/Makefiles/gmake/targets.mak 2006-11-13 18:25:20 UTC (rev 1398) +++ trunk/complement/explore/Makefiles/gmake/targets.mak 2006-11-17 07:46:32 UTC (rev 1399) @@ -1,4 +1,4 @@ -# Time-stamp: <06/11/03 12:09:39 ptr> +# Time-stamp: <06/11/17 10:29:59 ptr> # # Copyright (c) 1997-1999, 2002, 2003, 2005, 2006 # Petr Ovtchenkov @@ -9,6 +9,34 @@ # Licensed under the Academic Free License version 3.0 # +PRGS_DIR_SRC = +define prog_ +PRGS_DIR_SRC += $$(dir $${$(1)_SRC_CPP} $${$(1)_SRC_CC} $${$(1)_SRC_CXX} $${$(1)_SRC_C} $${$(1)_SRC_S} ) +$(1)_ALLBASE := $$(basename $$(notdir $${$(1)_SRC_CC} $${$(1)_SRC_CPP} $${$(1)_SRC_CXX} $${$(1)_SRC_C} $${$(1)_SRC_S} ) ) +$(1)_ALLOBJS := $$(addsuffix .o,$${$(1)_ALLBASE}) +$(1)_ALLDEPS := $$(addsuffix .d,$${$(1)_ALLBASE}) + +$(1)_OBJ := $$(addprefix $$(OUTPUT_DIR)/,$${$(1)_ALLOBJS}) +$(1)_OBJ_DBG := $$(addprefix $$(OUTPUT_DIR_DBG)/,$${$(1)_ALLOBJS}) +$(1)_OBJ_STLDBG := $$(addprefix $$(OUTPUT_DIR_STLDBG)/,$${$(1)_ALLOBJS}) + +$(1)_DEP := $$(addprefix $$(OUTPUT_DIR)/,$${$(1)_ALLDEPS}) +$(1)_DEP_DBG := $$(addprefix $$(OUTPUT_DIR_DBG)/,$${$(1)_ALLDEPS}) +$(1)_DEP_STLDBG := $$(addprefix $$(OUTPUT_DIR_STLDBG)/,$${$(1)_ALLDEPS}) + +$(1)_RES := $$(addprefix $$(OUTPUT_DIR)/,$${$(1)_ALLRESS}) +$(1)_RES_DBG := $$(addprefix $$(OUTPUT_DIR_DBG)/,$${$(1)_ALLRESS}) +$(1)_RES_STLDBG := $$(addprefix $$(OUTPUT_DIR_STLDBG)/,$${$(1)_ALLRESS}) + +ifeq ("$$(sort $${$(1)_SRC_CC} $${$(1)_SRC_CPP} $${$(1)_SRC_CXX})","") +$(1)_NOT_USE_NOSTDLIB := 1 +_$(1)_C_SOURCES_ONLY := true +endif + +endef + +$(foreach prg,$(PRGNAMES),$(eval $(call prog_,$(prg)))) + # If we have no C++ sources, let's use C compiler for linkage instead of C++. ifeq ("$(sort ${SRC_CC} ${SRC_CPP} ${SRC_CXX})","") NOT_USE_NOSTDLIB := 1 @@ -21,7 +49,7 @@ ifeq (${OSNAME},cygming) DIRS_UNIQUE_SRC := ${DIRS_UNIQUE_SRC} $(dir $(SRC_RC) ) endif -DIRS_UNIQUE_SRC := $(sort $(DIRS_UNIQUE_SRC) ) +DIRS_UNIQUE_SRC := $(sort $(DIRS_UNIQUE_SRC) $(PRGS_DIR_SRC)) # The rules below may be even simpler (i.e. define macro that generate # rules for COMPILE.xx), but this GNU make 3.80 unhappy with it; @@ -139,4 +167,3 @@ DEP_A_STLDBG := $(addprefix $(OUTPUT_DIR_A_STLDBG)/,$(ALLDEPS)) endif - Modified: trunk/complement/explore/Makefiles/top.mak =================================================================== --- trunk/complement/explore/Makefiles/top.mak 2006-11-13 18:25:20 UTC (rev 1398) +++ trunk/complement/explore/Makefiles/top.mak 2006-11-17 07:46:32 UTC (rev 1399) @@ -111,4 +111,8 @@ include ${RULESBASE}/$(USE_MAKE)/app/top.mak endif +ifdef PRGNAMES +# include ${RULESBASE}/$(USE_MAKE)/app/top.mak +endif + .PHONY: $(PHONY) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |