diff --git a/configure/CONFIG_ADDONS b/configure/CONFIG_ADDONS index 652412cb0..0abc2c2ce 100644 --- a/configure/CONFIG_ADDONS +++ b/configure/CONFIG_ADDONS @@ -57,7 +57,7 @@ # If you define INC, e.g. INC = getopt.h, the source # (getopt.h) must be in the source directory (..) and/or # in one or more ../os/ directories. -# The INC source files cannot be created by the build. + # ifneq ($(strip $(USR_CFLAGS_$(T_A))),) @@ -124,6 +124,22 @@ USR_LDFLAGS+=$(USR_LDFLAGS_DEFAULT) endif endif +ifneq ($(strip $(PROD_LDFLAGS_$(OS_CLASS))),) +PROD_LDFLAGS+=$(subst -nil-,,$(PROD_LDFLAGS_$(OS_CLASS))) +else +ifdef PROD_LDFLAGS_DEFAULT +PROD_LDFLAGS+=$(PROD_LDFLAGS_DEFAULT) +endif +endif + +ifneq ($(strip $(LIB_LDFLAGS_$(OS_CLASS))),) +LIB_LDFLAGS+=$(subst -nil-,,$(LIB_LDFLAGS_$(OS_CLASS))) +else +ifdef LIB_LDFLAGS_DEFAULT +LIB_LDFLAGS+=$(LIB_LDFLAGS_DEFAULT) +endif +endif + # check for special includes: # ifneq ($(strip $(INC_$(OS_CLASS))),) @@ -225,11 +241,27 @@ OBJS_HOST+=$(OBJS_HOST_DEFAULT) endif endif -ifneq ($(strip $(LDOBJS_$(OS_CLASS))),) -LDOBJS+=$(subst -nil-,,$(LDOBJS_$(OS_CLASS))) +ifneq ($(strip $(PROD_OBJLIBS_$(OS_CLASS))),) +PROD_OBJLIBS+=$(subst -nil-,,$(PROD_OBJLIBS_$(OS_CLASS))) else -ifneq (,$(strip $(LDOBJS_DEFAULT))) -LDOBJS+=$(LDOBJS_DEFAULT) +ifdef PROD_OBJLIBS_DEFAULT +PROD_OBJLIBS+=$(PROD_OBJLIBS_DEFAULT) +endif +endif + +ifneq ($(strip $(LIB_OBJLIBS_$(OS_CLASS))),) +LIB_OBJLIBS+=$(subst -nil-,,$(LIB_OBJLIBS_$(OS_CLASS))) +else +ifdef LIB_OBJLIBS_DEFAULT +LIB_OBJLIBS+=$(LIB_OBJLIBS_DEFAULT) +endif +endif + +ifneq ($(strip $(USR_OBJLIBS_$(OS_CLASS))),) +USR_OBJLIBS+=$(subst -nil-,,$(USR_OBJLIBS_$(OS_CLASS))) +else +ifdef USR_OBJLIBS_DEFAULT +USR_OBJLIBS+=$(USR_OBJLIBS_DEFAULT) endif endif diff --git a/configure/CONFIG_COMMON b/configure/CONFIG_COMMON index 357dc8a9d..e86ac1acb 100644 --- a/configure/CONFIG_COMMON +++ b/configure/CONFIG_COMMON @@ -140,13 +140,13 @@ JAR = #-------------------------------------------------- # obj files -TARGET_OBJS = $($*_LDOBJS) $(addsuffix $(OBJ),$(basename $($*_OBJS))) +TARGET_OBJS = $($*_OBJLIBS) $($*_LDOBJS) $(addsuffix $(OBJ),$(basename $($*_OBJS))) PRODUCT_OBJS = $(addsuffix $(OBJ),$(basename $(SRCS) $(USR_SRCS) $(PROD_SRCS) $(USR_OBJS) $(PROD_OBJS))) -PROD_LD_OBJS = $(LDOBJS) $(TARGET_OBJS) $(PRODUCT_OBJS) +PROD_LD_OBJS = $(USR_OBJLIBS) $(PROD_OBJLIBS) $(TARGET_OBJS) $(PRODUCT_OBJS) LIBRARY_OBJS = $(addsuffix $(OBJ),$(basename $(SRCS) $(USR_SRCS) $(LIB_SRCS) $(LIBSRCS) $(USR_OBJS) $(LIB_OBJS))) -LIBRARY_LD_OBJS = $(LDOBJS) $(TARGET_OBJS) $(LIBRARY_OBJS) +LIBRARY_LD_OBJS = $(USR_OBJLIBS) $(LIB_OBJLIBS) $(TARGET_OBJS) $(LIBRARY_OBJS) #-------------------------------------------------- # WIN95/NT resource files @@ -259,8 +259,8 @@ CXXFLAGS = $(CONFORM_CXXFLAGS) $(CROSS_CXXFLAGS) $(OPT_CXXFLAGS)\ $(DEBUG_CXXFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS)\ $(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS) $(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS) -LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(PROD_LDFLAGS)\ - $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS) +LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) \ + $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS) $(DIR_LDFLAGS) LDLIBS = $(PROD_LDLIBS) $(STATIC_LDLIBS)\ $(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS) diff --git a/configure/os/CONFIG.Common.RTEMS b/configure/os/CONFIG.Common.RTEMS index ac4ebbdb2..28c8b3a10 100644 --- a/configure/os/CONFIG.Common.RTEMS +++ b/configure/os/CONFIG.Common.RTEMS @@ -35,7 +35,7 @@ CPP = $(RTEMS_BASE)/bin/$(CC_FOR_TARGET) -x c -E AR = $(RTEMS_BASE)/bin/$(AR_FOR_TARGET) LD = $(RTEMS_BASE)/bin/$(LD_FOR_TARGET) -r RTEMS_LDFLAGS := $(STATIC_LDFLAGS) $(LDFLAGS) -LINK.cpp = $(CCC) -o $@ $(RTEMS_LDFLAGS) $(LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS) +LINK.cpp = $(CCC) -o $@ $(RTEMS_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS) RANLIB := $(RTEMS_BASE)/bin/$(RANLIB) @@ -55,8 +55,8 @@ CXXFLAGS = $(CONFORM_CXXFLAGS) $(CROSS_CXXFLAGS) $(OPT_CXXFLAGS)\ $(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS) $(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS)\ $(CROSS_CXXFLAGS) -LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(PROD_LDFLAGS)\ - $(ARCH_DEP_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS) +LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) \ + $(ARCH_DEP_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS) $(DIR_LDFLAGS) LDLIBS = $(PROD_LDLIBS) $(STATIC_LDLIBS)\ $(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(OP_SYS_LDLIBS) diff --git a/configure/os/CONFIG.Common.UnixCommon b/configure/os/CONFIG.Common.UnixCommon index bede9e57f..f4864663e 100644 --- a/configure/os/CONFIG.Common.UnixCommon +++ b/configure/os/CONFIG.Common.UnixCommon @@ -52,17 +52,17 @@ PROD_LDLIBS = $($*_LDLIBS:%=-l%) $(PROD_LIBS:%=-l%) $(USR_LIBS:%=-l%)\ $($*_SYS_LIBS:%=-l%) $(SYS_PROD_LIBS:%=-l%) PROD_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS)) -PROD_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%)) +DIR_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%)) #-------------------------------------------------- # Operating system definitions OP_SYS_CPPFLAGS += -DUNIX -OP_SYS_LDLIBS += -lm +#OP_SYS_LDLIBS += -lm #-------------------------------------------------- # Link definitions -LINK.cpp = $(CCC) -o $@ $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS) -LINK.shrlib = $(CCC) -o $@ $(SHRLIB_LDFLAGS) $(LDFLAGS) $(LIBRARY_LD_OBJS) $(LIBRARY_LD_RESS) $(SHRLIB_LDLIBS) +LINK.cpp = $(CCC) -o $@ $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS) +LINK.shrlib = $(CCC) -o $@ $(SHRLIB_LDFLAGS) $(LDFLAGS) $(LIB_LDFLAGS) $(LIBRARY_LD_OBJS) $(LIBRARY_LD_RESS) $(SHRLIB_LDLIBS) #-------------------------------------------------- # Allow site overrides diff --git a/configure/os/CONFIG.Common.linux-x86 b/configure/os/CONFIG.Common.linux-x86 index 6a6a32e1d..d6f711da8 100644 --- a/configure/os/CONFIG.Common.linux-x86 +++ b/configure/os/CONFIG.Common.linux-x86 @@ -30,9 +30,9 @@ ARCH_DEP_CPPFLAGS += -D_X86_ ARCH_DEP_CFLAGS += -mcpu=pentium # Set runtime path for shared libraries -PROD_LDFLAGS_YES += $(sort $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath,%/lib/$(T_A))) +DIR_LDFLAGS_YES += $(sort $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath,%/lib/$(T_A))) SHRLIB_LDFLAGS += $(sort $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath,%/lib/$(T_A))) -PROD_LDFLAGS += $(PROD_LDFLAGS_$(SHARED_LIBRARIES)) +DIR_LDFLAGS += $(DIR_LDFLAGS_$(SHARED_LIBRARIES)) ifdef CROSS GNU_TARGET=i586-pc-linux-gnu diff --git a/configure/os/CONFIG.Common.solaris-sparc b/configure/os/CONFIG.Common.solaris-sparc index b11e2566a..844d818e0 100644 --- a/configure/os/CONFIG.Common.solaris-sparc +++ b/configure/os/CONFIG.Common.solaris-sparc @@ -34,7 +34,7 @@ OP_SYS_LDLIBS += -lsocket -lnsl # -R does not work unless full path names are specified # use loader's -R option -PROD_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-R%)) +DIR_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-R%)) ifdef CROSS GNU_TARGET=sparc-sun-solaris2 diff --git a/configure/os/CONFIG.Common.solaris-x86 b/configure/os/CONFIG.Common.solaris-x86 index 614a4b686..13be95a7a 100644 --- a/configure/os/CONFIG.Common.solaris-x86 +++ b/configure/os/CONFIG.Common.solaris-x86 @@ -35,7 +35,7 @@ OP_SYS_LDLIBS += -lsocket -lnsl # -R does not work unless full path names are specified # use loader's -R option -#PROD_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-R%)) +#DIR_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-R%)) ifdef CROSS GNU_TARGET=x86-sun-solaris2 diff --git a/configure/os/CONFIG.Common.vxWorksCommon b/configure/os/CONFIG.Common.vxWorksCommon index 42b2ea3b3..21ffdca22 100644 --- a/configure/os/CONFIG.Common.vxWorksCommon +++ b/configure/os/CONFIG.Common.vxWorksCommon @@ -36,7 +36,7 @@ PROD_LDLIBS = $($*_LDLIBS:%=-l%) $(PROD_LIBS:%=-l%) $(USR_LIBS:%=-l%)\ $($*_SYS_LIBS:%=-l%) $(SYS_PROD_LIBS:%=-l%) PROD_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS)) -PROD_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%)) +DIR_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%)) #------------------------------------------------------- # Prod definitions @@ -50,7 +50,7 @@ NMS = $(PRODNAME:%$(EXE)=%.nm) OBJLIB += $(OBJLIB_$(OS_CLASS)) OBJLIB_SUFFIX = Library.o OBJLIBNAME = $(addsuffix $(OBJLIB_SUFFIX),$(basename $(OBJLIB))) -OBJLIB_LD_OBJS = $(LDOBJS) $(TARGET_OBJS) +OBJLIB_LD_OBJS = $(USR_OBJLIBS) $(TARGET_OBJS) OBJLIB_LD_OBJS += $(addsuffix $(OBJ),$(basename $(OBJLIB_SRCS) $(OBJLIB_OBJS))) PRODTARGETS += $(OBJLIBNAME) INSTALL_PROD += $(OBJLIBNAME:%=$(INSTALL_BIN)/%) @@ -118,7 +118,7 @@ OSITHREAD_USE_DEFAULT_STACK = NO #-------------------------------------------------- # Link definitions -LINK.cpp = $(LD) -o $@ $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS) +LINK.cpp = $(LD) -o $@ $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS) #-------------------------------------------------- # Definitions for compile of *_ctdt.c file diff --git a/configure/os/CONFIG.win32-x86-borland.win32-x86-borland b/configure/os/CONFIG.win32-x86-borland.win32-x86-borland index 7f893e588..dca01b187 100644 --- a/configure/os/CONFIG.win32-x86-borland.win32-x86-borland +++ b/configure/os/CONFIG.win32-x86-borland.win32-x86-borland @@ -148,7 +148,7 @@ STATIC_LDLIBS_NO= # -w display warnings on LINK_OPT_FLAGS_YES = -c -C -Gi -Gn -Tpd -x -w LINK_OPT_FLAGS_NO = -c -C -Gi -Gn -Tpd -x -w- -WIN32_DLLFLAGS = $(LINK_OPT_FLAGS_$(HOST_OPT)) +WIN32_DLLFLAGS = $(LINK_OPT_FLAGS_$(HOST_OPT)) $(LIB_LDFLAGS) OPT_LDFLAGS = ARCH_DEP_CFLAGS= @@ -263,7 +263,7 @@ LDFLAGS += -c -C -Gn -Tpe -x -w -L$(BORLAND_LIB) -L$(BORLAND_LIB)\\Psdk LINKSTARTUP = c0x32.obj LINKLIBS=import32.lib cw32$(LIBSUF).lib -LINK.cpp = $(WINLINK) $(STATIC_LDFLAGS) $(LDFLAGS) $(LINKSTARTUP) $(subst /,\\,$(PROD_LD_OBJS)) +LINK.cpp = $(WINLINK) $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) $(LINKSTARTUP) $(subst /,\\,$(PROD_LD_OBJS)) LINK.cpp += , $@ ,,$(LINKLIBS) $(subst /,\\,$(LDLIBS)) #-------------------------------------------------- diff --git a/configure/os/CONFIG.win32-x86.win32-x86 b/configure/os/CONFIG.win32-x86.win32-x86 index 39db1df89..9bcbbd701 100644 --- a/configure/os/CONFIG.win32-x86.win32-x86 +++ b/configure/os/CONFIG.win32-x86.win32-x86 @@ -197,7 +197,7 @@ OP_SYS_LDLIBS = # '-entry:_DllMainCRTStartup$(DLLENTRY)' DLLENTRY = @12 -WIN32_DLLFLAGS = /subsystem:windows /dll $(OPT_LDFLAGS) +WIN32_DLLFLAGS = /subsystem:windows /dll $(OPT_LDFLAGS) $(LIB_LDFLAGS) # # specify dll .def file only if it exists @@ -265,7 +265,7 @@ SHRLIB_LDLIBS = $(DLL_DEPLIBS) $($*_SYS_DLL_LIBS:%=%.lib) \ #-------------------------------------------------- # Linker definition -LINK.cpp = $(WINLINK) -nologo $(STATIC_LDFLAGS) $(LDFLAGS) -out:$@ \ +LINK.cpp = $(WINLINK) -nologo $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) -out:$@ \ $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS)