Changed definitions for creation of shared libraries.

This commit is contained in:
Janet B. Anderson
2002-01-17 19:55:27 +00:00
parent 74418146a6
commit 171efd1291
16 changed files with 66 additions and 55 deletions

View File

@@ -60,7 +60,10 @@ G++_STRICT = $(G++) -Wtraditional
#ARCH_DEP_CFLAGS = -D_X86_ -Dlinux -D_USE_BSD
ARCH_DEP_CFLAGS = -D_X86_ -Dlinux
ARCH_DEP_LDFLAGS += -lpthread -lreadline -lcurses -lrt
ARCH_DEP_LDLIBS += -lpthread -lreadline -lcurses -lrt
#Allows R3.13 built extensions to load R3.14 shared libs
SYS_DLL_LIBS_Linux += pthread readline curses rt
#glibc FAQ
# "_GNU_SOURCE: glibc does not make the GNU extensions available

View File

@@ -20,12 +20,12 @@ SHRLIB_SUFFIX = .so
SHRLIBNAME = lib$(LIBRARY)$(SHRLIB_SUFFIX)$(SHRLIB_VERSION:%=.%)
DLL_LIBS = $(patsubst $(LIBRARY),, $(PROD_LIBS) $(USR_LIBS))
DLL_LDLIBS = $(PRODNAME_LIBS:%=-l%) $(DLL_LIBS:%=-l%)
SYS_DLL_LIBS += $(SYS_DLL_LIBS_$(OS_CLASS))
DLL_LIBS = $(patsubst $(LIBRARY),, $(PROD_LIBS) $(USR_LIBS)) $(SYS_DLL_LIBS)
INSTALL_SHRLIB = $(INSTALL_LIB)
LINK.shrlib= $(SHRLIB_LINKER) -o $@ $(CFLAGS) $(CPPFLAGS) $(SHRLIB_LDFLAGS) $(LDFLAGS)
LINK.shrlib= $(SHRLIB_LINKER) -o $@ $(CFLAGS) $(CPPFLAGS) $(SHRLIB_LDFLAGS) $(DLL_LDFLAGS) $(LDFLAGS)
#-------------------------------------------------------
# Unix command definitions
@@ -48,16 +48,19 @@ COND_PROD_DEPLIBS = $(foreach prod,$(PROD), $(foreach lib, $($(basename $(prod))
PRODNAME_DEPLIBS = $(foreach lib,$(PRODNAME_LIBS),$(firstword $(wildcard $($(lib)_DIR)/lib$(lib).* $(EPICS_BASE_LIB)/lib$(lib).*)))
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS),$(firstword $(wildcard $($(lib)_DIR)/lib$(lib).* $(EPICS_BASE_LIB)/lib$(lib).*)))
USR_DEPLIBS = $(foreach lib,$(USR_LIBS),$(firstword $(wildcard $($(lib)_DIR)/lib$(lib).* $(EPICS_BASE_LIB)/lib$(lib).*)))
DLL_DEPLIBS = $(foreach lib,$(DLL_LIBS),$(firstword $(wildcard $($(lib)_DIR)/lib$(lib).* $(EPICS_BASE_LIB)/lib$(lib).*)))
#--------------------------------------------------
# Determine ld flags
USR_DIRS = $(dir $(PRODNAME_DEPLIBS)) $(dir $(PROD_DEPLIBS))\
$(dir $(USR_DEPLIBS))
USR_LDFLAGS += $(sort $(USR_DIRS:%=-L%))
DLL_DIRS = $(dir $(DLL_DEPLIBS))
DLL_LDFLAGS = $(sort $(DLL_DIRS:%=-L%))
# Determine ld libs
USR_LDLIBS = $(PRODNAME_LIBS:%=-l%) $(PROD_LIBS:%=-l%) $(USR_LIBS:%=-l%)\
$(SYS_PROD_LIBS:%=-l%)
DLL_LDLIBS = $(DLL_LIBS:%=-l%)
#--------------------------------------------------
# Operating system definitions

View File

@@ -236,8 +236,8 @@ USR_DEPLIBS = $(foreach lib,$(USR_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_L
# by default the libraries used when linking the DLL are just
# PROD_LIBS ans SYS_PROD_LIBS minus the DLL name
DLL_LIBS = $(subst $(LIBRARY),, $(PROD_LIBS))
DLL_LIBS = $(patsubst $(LIBRARY),, $(PROD_LIBS))
#
# EPICS libs that we need to link the DLL with
# (it isnt necessary to rebuild the dll if these change)

View File

@@ -26,7 +26,8 @@ ACC = $(SPARCWORKS)/bin/cc
ACC_ANSI = $(ACC) -Xa -v
ACC_STRICT = $(ACC) -Xc -v
ACC_TRAD = $(ACC) -Xs
ACC_DEP_CFLAGS = -KPIC -D_REENTRANT
ACC_DEP_CFLAGS = -KPIC -D_REENTRANT
ACC_DEP_CFLAGS = -KPIC -D_POSIX_C_SOURCE=199506L -D__EXTENSIONS__
ACC_WARN_YES =
ACC_WARN_NO = -w
ACC_OPT_YES = -O
@@ -36,13 +37,14 @@ ACC_SFLAGS_NO=
ACC_SLIBS_YES= -lw -lintl -Bdynamic -ldl -Bstatic -lXext -lX
ACC_SLIBS_NO=
ACC_SHRLIB_CFLAGS_YES =
ACC_SHRLIB_LDFLAGS_YES = -G -h $@
ACC_SHRLIB_LDFLAGS_YES = -G -h $@ -z ignore -z combreloc -z lazyload
# Configure OS vendor C++ compiler
CCC = $(SPARCWORKS)/bin/CC
CCC_NORMAL = $(CCC) +p
CCC_STRICT = $(CCC) +p
CCC_DEP_CFLAGS = -KPIC -D_REENTRANT
#CCC_DEP_CFLAGS = -KPIC -D_REENTRANT
CCC_DEP_CFLAGS = -KPIC -D_POSIX_C_SOURCE=199506L -D__EXTENSIONS__
CCC_TEMPL_INST_FLAG =
CCC_WARN_YES = +w
CCC_WARN_NO =
@@ -54,11 +56,14 @@ CCC_SLIBS_YES= -lw -lintl -Bdynamic -ldl -Bstatic -lXext -lX
CCC_SLIBS_NO=
CCC_DEPENDS_FLAG = -xM1
CCC_SHRLIB_CFLAGS_YES =
CCC_SHRLIB_LDFLAGS_YES = -G -h $@
CCC_SHRLIB_LDFLAGS_YES = -G -h $@ -z ignore -z combreloc -z lazyload
ARCH_DEP_CFLAGS = -DSOLARIS
ARCH_DEP_CFLAGS = -DSOLARIS
# socket and nsl needed by libca.a
ARCH_DEP_LDLIBS = -lsocket -lnsl
ARCH_DEP_LDLIBS += -lposix4 -lpthread -lthread
ARCH_DEP_LDLIBS += -lposix4 -lpthread
#Allows R3.13 built extensions to load R3.14 shared libs
SYS_DLL_LIBS_solaris += posix4 pthread Crun

View File

@@ -203,13 +203,12 @@ endif
endif
ifneq ($(strip $(PROD_LIBS_$(OS_CLASS))),)
PROD_LDLIBS += $(subst -nil-,,$(PROD_LIBS_$(OS_CLASS)))
PROD_LIBS += $(subst -nil-,,$(PROD_LIBS_$(OS_CLASS)))
else
ifdef PROD_LIBS_DEFAULT
PROD_LDLIBS += $(PROD_LIBS_DEFAULT)
PROD_LIBS += $(PROD_LIBS_DEFAULT)
endif
endif
PROD_LDLIBS += $(PROD_LIBS)
ifneq ($(strip $(SHRLIB_LIBS_$(OS_CLASS))),)
SHRLIB_LIBS += $(subst -nil-,,$(SHRLIB_LIBS_$(OS_CLASS)))
@@ -220,13 +219,12 @@ endif
endif
ifneq ($(strip $(USR_LIBS_$(OS_CLASS))),)
USR_LDLIBS += $(subst -nil-,,$(USR_LIBS_$(OS_CLASS)))
USR_LIBS += $(subst -nil-,,$(USR_LIBS_$(OS_CLASS)))
else
ifdef USR_LIBS_DEFAULT
USR_LDLIBS += $(USR_LIBS_DEFAULT)
USR_LIBS += $(USR_LIBS_DEFAULT)
endif
endif
USR_LDLIBS += $(USR_LIBS)
#
# concat specific library contents (if defined) to SYS_PROD_LIBS

View File

@@ -221,10 +221,10 @@ 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) $(DEPLIB_LDFLAGS)\
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(PROD_LDFLAGS)\
$(ARCH_DEP_LDFLAGS) $(STATIC_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS)
LDLIBS = $(DEPLIB_LDLIBS) $(STATIC_LDLIBS)\
LDLIBS = $(PROD_LDLIBS) $(STATIC_LDLIBS)\
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(OP_SYS_LDLIBS)
CPPFLAGS += $(CONFORM_CPPFLAGS) $(CROSS_CPPFLAGS) $(POSIX_CPPFLAGS)\

View File

@@ -54,10 +54,10 @@ 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) $(DEPLIB_LDFLAGS)\
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(PROD_LDFLAGS)\
$(ARCH_DEP_LDFLAGS) $(STATIC_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS)
LDLIBS = $(DEPLIB_LDLIBS) $(STATIC_LDLIBS)\
LDLIBS = $(PROD_LDLIBS) $(STATIC_LDLIBS)\
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(OP_SYS_LDLIBS)
CPPFLAGS += $(CROSS_CPPFLAGS) $(POSIX_CPPFLAGS) $(EPICS_BASE_CPPFLAGS)\

View File

@@ -33,30 +33,28 @@ LIBNAME = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
SHRLIBNAME_YES = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(SHRLIB_SUFFIX))
#-------------------------------------------------------
# shrlib: dependancy definitions
# shrlib: DEPLIBS, LDFLAGS, and LDLIBS definitions
SHRLIB_DEPLIBS = $(foreach lib,$(SHRLIB_LIBS),$(firstword $(wildcard \
$($(lib)_DIR)/$(LIB_PREFIX)$(lib).*)))
# Shared library definitions
SHRLIB_LDFLAGS = $(SHRLIB_LDFLAGS_$(strip $(SHARED_LIBRARIES)))
SHRLIB_LDLIBS = $($*_LIBS:%=-l%)
SHRLIB_LDLIBS = $($*_LIBS:%=-l%) $(SHRLIB_LIBS:%=-l%) \
$($*_SYS_LIBS:%=-l%) $(SYS_SHRLIB_LIBS:%=-l%)
SHRLIB_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(SHRLIB_DEPLIBS))
SHRLIB_LDFLAGS += $(sort $(SHRLIB_DEPLIB_DIRS:%=-L%))
#--------------------------------------------------
# Prod: dependancy definitions
PROD_DEPLIBS = $(foreach lib,$(PROD_LDLIBS) $(USR_LDLIBS),$(firstword $(wildcard \
# Prod: DEPLIBS, LDFLAGS, and LDLIBS definitions
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword $(wildcard \
$($(lib)_DIR)/$(LIB_PREFIX)$(lib).*)))
#--------------------------------------------------
# Prod: LDFLAGS and LDLIBS definitions
DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS))
DEPLIB_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-L%))
DEPLIB_LDLIBS = $($*_LDLIBS:%=-l%) $(PROD_LDLIBS:%=-l%) $(USR_LDLIBS:%=-l%)\
PROD_LDLIBS = $($*_LIBS:%=-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%))
#--------------------------------------------------
# Operating system definitions
OP_SYS_CPPFLAGS += -DUNIX

View File

@@ -35,3 +35,5 @@ ifdef CROSS
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
endif
#Allow R3.13 built extensions to load R3.14 shared libs
SYS_SHRLIB_LIBS += pthread

View File

@@ -32,7 +32,7 @@ OP_SYS_LDLIBS += -lsocket -lnsl
# -R does not work unless full path names are specified
# use loader's -R option
DEPLIB_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-R%))
PROD_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-R%))
ifdef CROSS
GNU_TARGET=sparc-sun-solaris2
@@ -40,3 +40,6 @@ ifdef CROSS
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
endif
#Allow R3.13 built extensions to load R3.14 shared libs
SYS_SHRLIB_LIBS += posix4 pthread Crun

View File

@@ -37,3 +37,6 @@ ifdef CROSS
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
endif
#Allow R3.13 built extensions to load R3.14 shared libs
SYS_SHRLIB_LIBS += posix4 pthread Crun

View File

@@ -28,18 +28,16 @@ MUNCH_SUFFIX = .munch
LIBNAME = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
#--------------------------------------------------
# Prod: dependancy definitions
PROD_DEPLIBS = $(foreach lib,$(PROD_LDLIBS) $(USR_LDLIBS),$(firstword $(wildcard \
# Prod: DEPLIBS, LDFLAGS, and LDLIBS definitions
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword $(wildcard \
$($(lib)_DIR)/$(LIB_PREFIX)$(lib).*)))
#--------------------------------------------------
# Prod: LDFLAGS and LDLIBS definitions
DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS))
DEPLIB_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-L%))
DEPLIB_LDLIBS = $($*_LDLIBS:%=-l%) $(PROD_LDLIBS:%=-l%) $(USR_LDLIBS:%=-l%)\
PROD_LDLIBS = $($*_LIBS:%=-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%))
#-------------------------------------------------------
# Prod definitions
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
@@ -84,7 +82,8 @@ export WIND_HOST_TYPE
#--------------------------------------------------
# Operating system flags
OP_SYS_CPPFLAGS = -DvxWorks
OP_SYS_CFLAGS = -fno-builtin
OP_SYS_CFLAGS = -fno-builtin
#OP_SYS_CFLAGS = -fno-builtin -fdollars-in-identifiers
OP_SYS_LDFLAGS =
OP_SYS_LDLIBS =

View File

@@ -26,7 +26,7 @@ PROFILE=YES
CONFORM_CFLAGS_ANSI = -Xa -v
CONFORM_CFLAGS_STRICT = -Xc -v
CONFORM_CFLAGS_TRAD = -Xs
PROF_CFLAGS_YES = +p
PROF_CFLAGS_YES =
PROF_CFLAGS_NO =
CODE_CFLAGS = -KPIC $(PROF_CFLAGS_$(PROFILE))
WARN_CFLAGS_YES =
@@ -50,7 +50,7 @@ STATIC_LDFLAGS_NO=
STATIC_LDLIBS_YES= -Bdynamic
STATIC_LDLIBS_NO=
SHRLIB_LDFLAGS_YES = -G -h $@
SHRLIB_LDFLAGS_YES = -G -h $@ -z ignore -z combreloc -z lazyload
HDEPENDS_FLAGS_CMPLR = -xM1

View File

@@ -27,7 +27,7 @@ PROFILE=YES
CONFORM_CFLAGS_ANSI = -Xa -v
CONFORM_CFLAGS_STRICT = -Xc -v
CONFORM_CFLAGS_TRAD = -Xs
PROF_CFLAGS_YES = +p
PROF_CFLAGS_YES =
PROF_CFLAGS_NO =
CODE_CFLAGS = -KPIC $(PROF_CFLAGS_$(PROFILE))
WARN_CFLAGS_YES =
@@ -51,7 +51,7 @@ STATIC_LDFLAGS_NO=
STATIC_LDLIBS_YES= -Bdynamic
STATIC_LDLIBS_NO=
SHRLIB_LDFLAGS_YES = -G -h $@
SHRLIB_LDFLAGS_YES = -G -h $@ -z ignore -z combreloc -z lazyload
HDEPENDS_FLAGS_CMPLR = -xM1

View File

@@ -237,9 +237,9 @@ OBJECT_LIB_EXT = $(OBJECT_LIB_EXT_$(STATIC_BUILD))
#--------------------------------------------------
# Products dependancy definitions
PROD_DEPLIBS = $(foreach lib,$(PROD_LDLIBS) $(USR_LDLIBS),$(firstword \
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword \
$($(lib)_DIR)/$(lib)$(OBJECT_LIB_EXT)))
DEPLIB_LDLIBS = $($*_DEPLIBS) $(PROD_DEPLIBS) \
PROD_LDLIBS = $($*_DEPLIBS) $(PROD_DEPLIBS) \
$($*_SYS_LIBS:%=%.lib) $(SYS_PROD_LIBS:%=%.lib)
#--------------------------------------------------

View File

@@ -247,9 +247,9 @@ OBJECT_LIB_EXT = $(OBJECT_LIB_EXT_$(STATIC_BUILD))
#--------------------------------------------------
# Products dependancy definitions
PROD_DEPLIBS = $(foreach lib,$(PROD_LDLIBS) $(USR_LDLIBS),$(firstword \
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword \
$($(lib)_DIR)/$(lib)$(OBJECT_LIB_EXT)))
DEPLIB_LDLIBS = $($*_DEPLIBS) $(PROD_DEPLIBS) \
PROD_LDLIBS = $($*_DEPLIBS) $(PROD_DEPLIBS) \
$($*_SYS_LIBS:%=%.lib) $(SYS_PROD_LIBS:%=%.lib)
#--------------------------------------------------
@@ -269,9 +269,6 @@ LINK.cpp = $(WINLINK) -nologo $(LDFLAGS) -out:$@ $(PROD_LD_OBJS) $(PROD_LD_RESS)
#--------------------------------------------------
# Use std path variables from ms
HOME = $(HOMEDRIVE)$(HOMEPATH)
# override of CONFIG_SITE
SHARED_LIBRARIES = YES