diff --git a/build/rules/compile b/build/rules/compile index 839193138..556ae2281 100644 --- a/build/rules/compile +++ b/build/rules/compile @@ -1,5 +1,5 @@ # -# $Id: //poco/Main/build/rules/compile#7 $ +# $Id: //poco/Main/build/rules/compile#8 $ # # compiile # diff --git a/build/rules/dylib b/build/rules/dylib index 3b718db9f..d00d8cbb2 100644 --- a/build/rules/dylib +++ b/build/rules/dylib @@ -1,5 +1,5 @@ # -# $Id: //poco/Main/build/rules/dylib#9 $ +# $Id: //poco/Main/build/rules/dylib#10 $ # # dylib # @@ -54,18 +54,22 @@ shared_release: bindirs $(DYLIB_RELEASE) $(DYLIB_DEBUG): $(foreach o,$(objects),$(OBJPATH_DEBUG_SHARED)/$(o).o) @echo "** Building dynamic library (debug)" $@ $(DYLIB) $^ $(LIBRARY) $(TARGET_LIBS_DEBUG) $(SYSLIBS) + $(postbuild) $(DYLIB_RELEASE): $(foreach o,$(objects),$(OBJPATH_RELEASE_SHARED)/$(o).o) @echo "** Building dynamic library (release)" $@ $(DYLIB) $^ $(LIBRARY) $(TARGET_LIBS_RELEASE) $(SYSLIBS) + $(postbuild) $(DYLIB_S_DEBUG): $(foreach o,$(objects),$(OBJPATH_DEBUG_SHARED)/$(o).o) @echo "** Building dynamic library (debug)" $@ $(DYLIB) $^ $(LIBRARY) $(TARGET_LIBS_DEBUG) $(SYSLIBS) + $(postbuild) $(DYLIB_S_RELEASE): $(foreach o,$(objects),$(OBJPATH_RELEASE_SHARED)/$(o).o) @echo "** Building dynamic library (release)" $@ $(DYLIB) $^ $(LIBRARY) $(TARGET_LIBS_RELEASE) $(SYSLIBS) + $(postbuild) # # Include the automatically generated dependency files diff --git a/build/rules/exec b/build/rules/exec index a36c09f80..5b8c42bfb 100644 --- a/build/rules/exec +++ b/build/rules/exec @@ -1,5 +1,5 @@ # -# $Id: //poco/Main/build/rules/exec#9 $ +# $Id: //poco/Main/build/rules/exec#10 $ # # exec # @@ -39,20 +39,24 @@ $(EXEC_DEBUG_STATIC): $(foreach o,$(objects),$(OBJPATH_DEBUG_STATIC)/$(o).o) $(LINK) $(LINKFLAGS) $(DEBUGOPT_LINK) $(STATICOPT_LINK) -o $@ $^ $(LIBRARY) $(TARGET_LIBS_DEBUG) $(SYSLIBS) $(CPYDBG) $(STRIPDBGCMD) - + $(postbuild) + $(EXEC_RELEASE_STATIC): $(foreach o,$(objects),$(OBJPATH_RELEASE_STATIC)/$(o).o) @echo "** Building executable (release)" $@ $(LINK) $(LINKFLAGS) $(RELEASEOPT_LINK) $(STATICOPT_LINK) -o $@ $^ $(LIBRARY) $(TARGET_LIBS_RELEASE) $(SYSLIBS) $(STRIPCMD) + $(postbuild) $(EXEC_DEBUG_SHARED): $(foreach o,$(objects),$(OBJPATH_DEBUG_SHARED)/$(o).o) @echo "** Building shared executable (debug)" $@ $(LINK) $(LINKFLAGS) $(DEBUGOPT_LINK) $(SHAREDOPT_LINK) -o $@ $^ $(LIBRARY) $(TARGET_LIBS_DEBUG) $(SYSLIBS) + $(postbuild) $(EXEC_RELEASE_SHARED): $(foreach o,$(objects),$(OBJPATH_RELEASE_SHARED)/$(o).o) @echo "** Building shared executable (release)" $@ $(LINK) $(LINKFLAGS) $(RELEASEOPT_LINK) $(SHAREDOPT_LINK) -o $@ $^ $(LIBRARY) $(TARGET_LIBS_RELEASE) $(SYSLIBS) $(STRIPCMD) + $(postbuild) # # Include the automatically generated dependency files diff --git a/build/rules/global b/build/rules/global index 564149101..a4bc4ace0 100644 --- a/build/rules/global +++ b/build/rules/global @@ -1,5 +1,5 @@ # -# $Id: //poco/Main/build/rules/global#18 $ +# $Id: //poco/Main/build/rules/global#20 $ # # global # @@ -27,12 +27,21 @@ endif # sinclude $(POCO_BASE)/config.build +# +# Check for PROJECT_BASE +# +ifndef PROJECT_BASE +PROJECT_BASE = $(POCO_BASE) +endif +export PROJECT_BASE + # # Check for POCO_BUILD # ifndef POCO_BUILD -POCO_BUILD = $(POCO_BASE) +POCO_BUILD = $(PROJECT_BASE) endif +export POCO_BUILD # # Determine OS @@ -85,7 +94,7 @@ HOSTNAME := $(shell hostname) # # Find out current component # -COMPONENT := $(shell $(POCO_BASE)/build/script/projname) +COMPONENT := $(shell $(POCO_BASE)/build/script/projname "$(PROJECT_BASE)") # # Define standard directories @@ -101,6 +110,12 @@ BINPATH = $(POCO_BUILD)/$(COMPONENT)/$(BINDIR) OBJPATH = $(POCO_BUILD)/$(COMPONENT)/$(OBJDIR) DEPPATH = $(POCO_BUILD)/$(COMPONENT)/$(DEPDIR) +ifeq ($(POCO_BASE),$(PROJECT_BASE)) +POCO_LIBRARY = +else +POCO_LIBRARY = -L$(POCO_BASE)/$(LIBDIR) +endif + ifndef LIBPREFIX LIBPREFIX = lib endif @@ -166,7 +181,7 @@ INCLUDE = -Iinclude $(foreach p,$(COMPONENTS),-I$(POCO_BASE)/$(p)/$(INCDIR)) # # Build Library Directory List # -LIBRARY = -L$(LIBPATH) +LIBRARY = -L$(LIBPATH) $(POCO_LIBRARY) # # Strip Command definition diff --git a/build/rules/lib b/build/rules/lib index ba82e40b4..1ccab9a6b 100644 --- a/build/rules/lib +++ b/build/rules/lib @@ -1,5 +1,5 @@ # -# $Id: //poco/Main/build/rules/lib#10 $ +# $Id: //poco/Main/build/rules/lib#11 $ # # lib # @@ -50,22 +50,26 @@ $(LIB_DEBUG_STATIC): $(foreach o,$(objects),$(OBJPATH_DEBUG_STATIC)/$(o).o) @echo "** Building library (debug)" $@ $(LIB) $@ $^ $(RANLIB) $@ + $(postbuild) $(LIB_RELEASE_STATIC): $(foreach o,$(objects),$(OBJPATH_RELEASE_STATIC)/$(o).o) @echo "** Building library (release)" $@ $(LIB) $@ $^ $(RANLIB) $@ + $(postbuild) $(LIB_DEBUG_SHARED): $(foreach o,$(objects),$(OBJPATH_DEBUG_SHARED)/$(o).o) @echo "** Building shared library (debug)" $@ $(SHLIB) $^ $(LIBRARY) $(TARGET_LIBS_DEBUG) $(SYSLIBS) $(SHLIBLN) $(LIB_DEBUG_SHARED) $(LIB_DEBUG_SHARED_LINK) + $(postbuild) $(LIB_RELEASE_SHARED): $(foreach o,$(objects),$(OBJPATH_RELEASE_SHARED)/$(o).o) @echo "** Building shared library (release)" $@ $(SHLIB) $^ $(LIBRARY) $(TARGET_LIBS_RELEASE) $(SYSLIBS) $(SHLIBLN) $(LIB_RELEASE_SHARED) $(LIB_RELEASE_SHARED_LINK) $(STRIPCMD) + $(postbuild) # # Include the automatically generated dependency files diff --git a/build/script/projname b/build/script/projname index e4881ebdc..e9e8fa86a 100755 --- a/build/script/projname +++ b/build/script/projname @@ -1,16 +1,19 @@ #! /bin/sh # -# $Id: //poco/Main/build/script/projname#7 $ +# $Id: //poco/Main/build/script/projname#8 $ # # projname # +# Usage: projname PROJECT_BASE +# # Extract the project name from the current path -# NOTE: the cd $POCO_BASE is necessary to resolve symbolic links, +# NOTE: the cd $PROJECT_BASE is necessary to resolve symbolic links, # ditto is the kinda strange sh -c pwd # +PROJECT_BASE=$1 cdir=`sh -c pwd` -cd $POCO_BASE -pocobase=`sh -c pwd` +cd $PROJECT_BASE +projbase=`sh -c pwd` cd "$cdir" -sh -c pwd | sed "s:^$pocobase::" | sed "s:^/::" +sh -c pwd | sed "s:^$projbase::" | sed "s:^/::"