poco/build/rules/dylib
2007-02-23 14:50:42 +00:00

74 lines
2.3 KiB
Plaintext

#
# $Id: //poco/Main/build/rules/dylib#9 $
#
# dylib
#
# Rule definitions for building dynamically loadable shared libraries
#
#
# Target names
#
SHL_EXT = $(SHAREDLIBLINKEXT)
# Some systems (e.g. Mac OS X) make a difference between
# shared libraries (as used by the linker/loader) and
# dynamic libraries, as used for dynamically loadable modules.
# If no specific instructions for making dynamic libraries
# are given, use the instructions for making shared libraries.
ifndef DYLIB
DYLIB = $(SHLIB)
endif
DYLIB_DEBUG = $(BINPATH)/$(target)d$(OSARCH_POSTFIX)$(SHL_EXT)
DYLIB_RELEASE = $(BINPATH)/$(target)$(OSARCH_POSTFIX)$(SHL_EXT)
DYLIB_S_DEBUG = $(BINPATH)/$(target)d$(OSARCH_POSTFIX)_s$(SHL_EXT)
DYLIB_S_RELEASE = $(BINPATH)/$(target)$(OSARCH_POSTFIX)_s$(SHL_EXT)
TARGET_LIBS_DEBUG = $(foreach l,$(target_libs),-l$(l)d$(OSARCH_POSTFIX))
TARGET_LIBS_RELEASE = $(foreach l,$(target_libs),-l$(l)$(OSARCH_POSTFIX))
#
# Include the compile rules
#
include $(POCO_BASE)/build/rules/compile
#
# Rules for creating a dynamically loadable shared library
#
clean:
$(RM) $(OBJPATH)
$(RM) $(DYLIB_DEBUG) $(DYLIB_RELEASE) $(DYLIB_S_DEBUG) $(DYLIB_S_RELEASE)
ifeq ($(LINKMODE),BOTH)
static_debug: bindirs $(DYLIB_S_DEBUG)
static_release: bindirs $(DYLIB_S_RELEASE)
else
static_debug: bindirs $(DYLIB_DEBUG)
static_release: bindirs $(DYLIB_RELEASE)
endif
shared_debug: bindirs $(DYLIB_DEBUG)
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)
$(DYLIB_RELEASE): $(foreach o,$(objects),$(OBJPATH_RELEASE_SHARED)/$(o).o)
@echo "** Building dynamic library (release)" $@
$(DYLIB) $^ $(LIBRARY) $(TARGET_LIBS_RELEASE) $(SYSLIBS)
$(DYLIB_S_DEBUG): $(foreach o,$(objects),$(OBJPATH_DEBUG_SHARED)/$(o).o)
@echo "** Building dynamic library (debug)" $@
$(DYLIB) $^ $(LIBRARY) $(TARGET_LIBS_DEBUG) $(SYSLIBS)
$(DYLIB_S_RELEASE): $(foreach o,$(objects),$(OBJPATH_RELEASE_SHARED)/$(o).o)
@echo "** Building dynamic library (release)" $@
$(DYLIB) $^ $(LIBRARY) $(TARGET_LIBS_RELEASE) $(SYSLIBS)
#
# Include the automatically generated dependency files
#
sinclude $(addprefix $(DEPPATH)/,$(addsuffix .d,$(objects)))