Changes for shared libraries and os consistancy.

This commit is contained in:
Janet B. Anderson
2003-03-18 22:45:03 +00:00
parent 1693b492f8
commit 6021e84957
43 changed files with 349 additions and 253 deletions

View File

@ -22,26 +22,33 @@ LD = $(GNU_BIN)/$(CMPLR_PREFIX)ld$(CMPLR_SUFFIX) -r
CPP = $(CC) -x c -E
RANLIB = $(GNU_BIN)/$(CMPLR_PREFIX)ranlib$(CMPLR_SUFFIX)
CODE_CFLAGS = -fPIC
CONFORM_CFLAGS_ANSI = -ansi
CONFORM_CFLAGS_STRICT = -ansi -pedantic
CONFORM_CFLAGS_TRAD = -traditional
PROF_CFLAGS_YES = -p
GPROF_CFLAGS_YES = -pg
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
WARN_CFLAGS_YES = -Wall
WARN_CFLAGS_NO = -w
OPT_CFLAGS_YES = -O3
OPT_CFLAGS_NO = -g
CODE_CXXFLAGS = -fPIC
CONFORM_CXXFLAGS_NORMAL = -ansi -pedantic
CONFORM_CXXFLAGS_STRICT = -ansi -pedantic
PROF_CXXFLAGS_YES = -p
GPROF_CXXFLAGS_YES = -pg
CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
#WARN_CXXFLAGS_YES = -Wall -Weffc++
WARN_CXXFLAGS_YES = -Wall
WARN_CXXFLAGS_NO = -w
OPT_CXXFLAGS_YES = -O3
OPT_CXXFLAGS_NO = -g
CODE_LDFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
STATIC_LDFLAGS_YES = -static
STATIC_LDFLAGS_NO =
SHRLIB_LDFLAGS += -shared -fPIC
SHRLIB_CFLAGS = -fPIC
SHRLIB_LDFLAGS += -shared

View File

@ -44,11 +44,12 @@
# USR_SRCS source files for building library and prod
# LIBSRCS source files for building library
# LIB_SRCS source files for building library
# SHRLIB_LIBS libs needed by shared LIBRARY
# LIB_LIBS libs needed by shared LIBRARY
# PROD_LIBS libs needed by PROD and TESTPROD
# USR_LIBS libs needed by PROD and TESTPROD
# USR_LIBS libs needed by PROD and TESTPROD and LIBRARY
# LIB_SYS_LIBS system libs needed by LIBRARY
# PROD_SYS_LIBS system libs needed by PROD and TESTPROD
# USR_LDFLAGS ld flags
# SYS_PROD_LIBS system libs needed by PROD and TESTPROD
# PROD products to build and install
# SCRIPTS scripts to install
# USR_INCLUDES include directories
@ -305,6 +306,7 @@ PROD_LIBS += $(PROD_LIBS_DEFAULT)
endif
endif
# SHRLIB_LIBS deprecated
ifneq ($(strip $(SHRLIB_LIBS_$(OS_CLASS))),)
SHRLIB_LIBS += $(subst -nil-,,$(SHRLIB_LIBS_$(OS_CLASS)))
else
@ -313,6 +315,14 @@ SHRLIB_LIBS += $(SHRLIB_LIBS_DEFAULT)
endif
endif
ifneq ($(strip $(LIB_LIBS_$(OS_CLASS))),)
LIB_LIBS += $(subst -nil-,,$(LIB_LIBS_$(OS_CLASS)))
else
ifdef LIB_LIBS_DEFAULT
LIB_LIBS += $(LIB_LIBS_DEFAULT)
endif
endif
ifneq ($(strip $(USR_LIBS_$(OS_CLASS))),)
USR_LIBS += $(subst -nil-,,$(USR_LIBS_$(OS_CLASS)))
else
@ -324,6 +334,7 @@ endif
#
# concat specific library contents (if defined) to SYS_PROD_LIBS
#
# SYS_PROD_LIBS deprecated
ifneq ($(strip $(SYS_PROD_LIBS_$(OS_CLASS))),)
SYS_PROD_LIBS += $(subst -nil-,,$(SYS_PROD_LIBS_$(OS_CLASS)))
else
@ -331,6 +342,31 @@ ifdef SYS_PROD_LIBS_DEFAULT
SYS_PROD_LIBS += $(SYS_PROD_LIBS_DEFAULT)
endif
endif
PROD_SYS_LIBS+=$(SYS_PROD_LIBS)
ifneq ($(strip $(PROD_SYS_LIBS_$(OS_CLASS))),)
PROD_SYS_LIBS += $(subst -nil-,,$(PROD_SYS_LIBS_$(OS_CLASS)))
else
ifdef PROD_SYS_LIBS_DEFAULT
PROD_SYS_LIBS += $(PROD_SYS_LIBS_DEFAULT)
endif
endif
ifneq ($(strip $(LIB_SYS_LIBS_$(OS_CLASS))),)
LIB_SYS_LIBS += $(subst -nil-,,$(LIB_SYS_LIBS_$(OS_CLASS)))
else
ifdef LIB_SYS_LIBS_DEFAULT
LIB_SYS_LIBS += $(LIB_SYS_LIBS_DEFAULT)
endif
endif
ifneq ($(strip $(USR_SYS_LIBS_$(OS_CLASS))),)
USR_SYS_LIBS += $(subst -nil-,,$(USR_SYS_LIBS_$(OS_CLASS)))
else
ifdef USR_SYS_LIBS_DEFAULT
USR_SYS_LIBS += $(USR_SYS_LIBS_DEFAULT)
endif
endif
#
# concat specific products

View File

@ -21,28 +21,22 @@ ifdef T_A
EPICS_BASE_LIB = $(EPICS_BASE)/lib/$(T_A)
endif
#Definitions for extensions convenience
Com_DIR = $(EPICS_BASE_LIB)
asHost_DIR = $(EPICS_BASE_LIB)
asIoc_DIR = $(EPICS_BASE_LIB)
ca_DIR = $(EPICS_BASE_LIB)
cas_DIR = $(EPICS_BASE_LIB)
dbIoc_DIR = $(EPICS_BASE_LIB)
dbStaticHost_DIR = $(EPICS_BASE_LIB)
dbStaticIoc_DIR = $(EPICS_BASE_LIB)
dbtoolsIoc_DIR = $(EPICS_BASE_LIB)
gdd_DIR = $(EPICS_BASE_LIB)
iocsh_DIR = $(EPICS_BASE_LIB)
miscIoc_DIR = $(EPICS_BASE_LIB)
registryIoc_DIR = $(EPICS_BASE_LIB)
rsrvIoc_DIR = $(EPICS_BASE_LIB)
recIoc_DIR = $(EPICS_BASE_LIB)
softDevIoc_DIR = $(EPICS_BASE_LIB)
testDevIoc_DIR = $(EPICS_BASE_LIB)
recIocObj_DIR = $(EPICS_BASE_LIB)
softDevIocObj_DIR = $(EPICS_BASE_LIB)
testDevIocObj_DIR = $(EPICS_BASE_LIB)
iocCore_DIR = $(EPICS_BASE_LIB)
#---------------------------------------------------------------
# Epics base Ioc libraries
EPICS_BASE_IOC_LIBRARIES += recIoc
EPICS_BASE_IOC_LIBRARIES += softDevIoc
EPICS_BASE_IOC_LIBRARIES += testDevIoc
EPICS_BASE_IOC_LIBRARIES += iocsh
EPICS_BASE_IOC_LIBRARIES += miscIoc
EPICS_BASE_IOC_LIBRARIES += rsrvIoc
EPICS_BASE_IOC_LIBRARIES += dbtoolsIoc
EPICS_BASE_IOC_LIBRARIES += asIoc
EPICS_BASE_IOC_LIBRARIES += dbIoc
EPICS_BASE_IOC_LIBRARIES += registryIoc
EPICS_BASE_IOC_LIBRARIES += dbStaticIoc
EPICS_BASE_IOC_LIBRARIES += ca
EPICS_BASE_IOC_LIBRARIES += Com
#---------------------------------------------------------------
# Version number for base shared libraries (and win32 products)

View File

@ -18,7 +18,7 @@
EPICS_VERSION=3
EPICS_REVISION=14
EPICS_MODIFICATION=1
EPICS_MODIFICATION=2
EPICS_UPDATE_NAME=
EPICS_UPDATE_LEVEL=0

View File

@ -87,7 +87,7 @@ BUILD_CLASS = HOST
CMPLR=STRICT
CXXCMPLR=STRICT
STATIC_BUILD=NO
SHARED_LIBRARIES=NO
SHARED_LIBRARIES=YES
HDEPENDS=YES
HOST_OPT=YES
CROSS_OPT=YES
@ -180,7 +180,6 @@ OP_SYS_CFLAGS =
OP_SYS_CXXFLAGS = $(OP_SYS_CFLAGS)
OP_SYS_LDFLAGS =
OP_SYS_INCLUDES =
OP_SYS_LDLIBS =
# SOURCE* used by WIN32 only
SOURCE_CFLAG =
@ -239,7 +238,12 @@ STATIC_LDFLAGS = $(STATIC_LDFLAGS_$(STATIC_BUILD))
STATIC_LDLIBS = $(STATIC_LDLIBS_$(STATIC_BUILD))
#--------------------------------------------------
# Command-line input support default
# cflags for library src file
LIBRARY_SRCS=$(basename $(foreach lib,$(LIBRARY),$($(lib)_OBJS) $(LIBRARY_OBJS)))
LIBRARY_SRC_CFLAGS=$($(patsubst $*,SHRLIB,$(findstring $*,$(LIBRARY_SRCS)))_CFLAGS)
#--------------------------------------------------
# Command-line input support default
COMMANDLINE_LIBRARY = EPICS
OP_SYS_LDLIBS += $(LDLIBS_$(COMMANDLINE_LIBRARY))
@ -251,16 +255,17 @@ INCLUDES = -I. $(GENERIC_SRC_INCLUDES) $(INSTALL_INCLUDES) $(RELEASE_INCLUDES)\
CFLAGS = $(CONFORM_CFLAGS) $(CROSS_CFLAGS) $(OPT_CFLAGS) $(DEBUG_CFLAGS)\
$(WARN_CFLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS)\
$(CODE_CFLAGS) $(STATIC_CFLAGS) $(OP_SYS_CFLAGS)
$(CODE_CFLAGS) $(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS)
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)
$(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS) $(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS)
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) \
$(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS) $(DIR_LDFLAGS)
$(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS)\
$(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
LDLIBS = $(PROD_LDLIBS) $(STATIC_LDLIBS)\
LDLIBS = $(STATIC_LDLIBS)\
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)
CPPFLAGS += $(CONFORM_CPPFLAGS) $(CROSS_CPPFLAGS) $(POSIX_CPPFLAGS)\

View File

@ -61,6 +61,7 @@
# override
#
CROSS_COMPILER_TARGET_ARCHS=
#CROSS_COMPILER_TARGET_ARCHS= vxWorks-68040
# If only a subset of the host architectures perform
@ -94,7 +95,7 @@ CXXCMPLR=STRICT
# NOTE solaris,Linux, and sun4: If YES then LD_LIBRARY_PATH must
# include fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH)
# for both the base build and when invoking base executables
SHARED_LIBRARIES=NO
SHARED_LIBRARIES=YES
# Build client objects statically ?
# must be either YES or NO

View File

@ -295,11 +295,11 @@ ifneq ($(strip $(RANLIB)),)
$(RANLIB) $@
endif # RANLIB
$(DLL_LINK_LIBNAME):$(LIB_PREFIX)%.lib: $(LIBRARY_OBJS) $(LIBRARY_RESS)
$(DLL_LINK_LIBNAME):$(LIB_PREFIX)%.lib: $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
@$(RM) $@
$(LINK.shrlib)
$(SHRLIBNAME):$(LIB_PREFIX)%$(SHRLIB_SUFFIX): $(LIBRARY_OBJS) $(LIBRARY_RESS)
$(SHRLIBNAME):$(LIB_PREFIX)%$(SHRLIB_SUFFIX): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
@$(RM) $@
$(LINK.shrlib)

View File

@ -152,10 +152,10 @@ PROD_LIBS_WIN32 = -nil-
# system libs needed to link PROD, TESTPROD and sharable library
#
# for all systems:
SYS_PROD_LIBS = m
PROD_SYS_LIBS = m
# for most systems:
SYS_PROD_LIBS_DEFAULT = foolib
SYS_PROD_LIBS_WIN32 = -nil-
PROD_SYS_LIBS_DEFAULT = foolib
PROD_SYS_LIBS_WIN32 = -nil-
# other libs needed to link PROD, TESTPROD and sharable library
#

View File

@ -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_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS)
LINK.cpp = $(CCC) -o $@ $(RTEMS_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS)
RANLIB := $(RTEMS_BASE)/bin/$(RANLIB)

View File

@ -34,35 +34,55 @@ SHRLIBNAME_YES = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(SHRLIB_SUFFIX))
#-------------------------------------------------------
# shrlib: DEPLIBS, LDFLAGS, and LDLIBS definitions
SHRLIB_DEPLIBS = $(foreach lib,$(SHRLIB_LIBS),$(firstword $(wildcard \
$($(lib)_DIR)/$(LIB_PREFIX)$(lib).*)))
SHRLIB_LDLIBS = $($*_LDLIBS:%=-l%) $(SHRLIB_LIBS:%=-l%) \
$($*_SYS_LIBS:%=-l%) $(SYS_SHRLIB_LIBS:%=-l%)
LIB_EXT = $(LIB_SUFFIX)
# SHRLIB_LIBS deprecated
LIB_LIBS += $(SHRLIB_LIBS)
SHRLIB_DEPLIBS=$(foreach lib, $(LIB_LIBS) $(USR_LIBS), \
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).*, \
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
SHRLIB_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(LIB_LIBS) $(USR_LIBS) \
$($*_SYS_LIBS) $(LIB_SYS_LIBS) $(USR_SYS_LIBS)) $(LDLIBS)
SHRLIB_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(SHRLIB_DEPLIBS))
SHRLIB_LDFLAGS += $(sort $(SHRLIB_DEPLIB_DIRS:%=-L%))
SHRLIBDIR_LDFLAGS += $(sort $(SHRLIB_DEPLIB_DIRS:%=-L%))
#--------------------------------------------------
#-------------------------------------------------------
# Prod: DEPLIBS, LDFLAGS, and LDLIBS definitions
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword $(wildcard \
$($(lib)_DIR)/$(LIB_PREFIX)$(lib).*)))
PROD_LDLIBS = $($*_LDLIBS:%=-l%) $(PROD_LIBS:%=-l%) $(USR_LIBS:%=-l%)\
$($*_SYS_LIBS:%=-l%) $(SYS_PROD_LIBS:%=-l%)
PROD_DEPLIBS=$(foreach lib,$(PROD_LIBS) $(USR_LIBS), \
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).*, \
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
PROD_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(PROD_LIBS) $(USR_LIBS)\
$($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS))
LDLIBS_STATIC_YES = LDLIBS
LDLIBS_SHARED_NO = LDLIBS
PROD_LDLIBS += $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
$(LDLIBS_SHARED_$(SHARED_LIBRARIES))))
PROD_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS))
DIR_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%))
PRODDIR_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%))
#--------------------------------------------------
# Link definitions
LINK.cpp = $(CCC) -o $@ $(STATIC_LDFLAGS) $(PRODDIR_LDFLAGS) $(LDFLAGS)
LINK.cpp += $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS)
LINK.shrlib = $(CCC) -o $@ $(SHRLIB_LDFLAGS) $(SHRLIBDIR_LDFLAGS) $(LDFLAGS)
LINK.shrlib += $(LIB_LDFLAGS) $(LIBRARY_LD_OBJS) $(LIBRARY_LD_RESS) $(SHRLIB_LDLIBS)
#--------------------------------------------------
# Operating system definitions
OP_SYS_CPPFLAGS += -DUNIX
#OP_SYS_LDLIBS += -lm
#--------------------------------------------------
# Link definitions
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)
OP_SYS_LDLIBS += -lm
#--------------------------------------------------
# Allow site overrides

View File

@ -26,9 +26,14 @@ OP_SYS_LDLIBS = -lrt
#ARCH_DEP_CPPFLAGS += -D_X86_
# Set runtime path for shared libraries
RUNTIME_LDFLAGS_YES = $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath,%)
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
ifdef CROSS
GNU_TARGET=ppc_82xx
CMPLR_SUFFIX=
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
endif

View File

@ -18,20 +18,18 @@ CODE_CPPFLAGS = -D_REENTRANT
POSIX_CPPFLAGS_YES = -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500
POSIX_CPPFLAGS_NO =
POSIX_LDLIBS_YES = -lpthread
POSIX_LDLIBS_NO =
# -D_BSD_SOURCE for gethostname() in unistd.h as needed by cacChannelIO.cpp.
OP_SYS_CPPFLAGS += -D_BSD_SOURCE
OP_SYS_CPPFLAGS += -Dlinux
OP_SYS_LDFLAGS +=
OP_SYS_LDLIBS += -lrt
ARCH_DEP_CPPFLAGS += -D_X86_
ARCH_DEP_CFLAGS += -mcpu=pentium
# Set runtime path for shared libraries
DIR_LDFLAGS_YES = $(sort $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath,%))
DIR_LDFLAGS += $(DIR_LDFLAGS_$(SHARED_LIBRARIES))
RUNTIME_LDFLAGS_YES = $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath,%)
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
ifdef CROSS
GNU_TARGET=i586-pc-linux-gnu
@ -39,7 +37,3 @@ ifdef CROSS
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
endif
#Allow R3.13 built extensions to load R3.14 shared libs
SYS_SHRLIB_LIBS += pthread rt

View File

@ -21,7 +21,6 @@ POSIX_CPPFLAGS_NO =
POSIX_LDLIBS_NO +=
OP_SYS_CPPFLAGS = -D_OSF_SOURCE
OP_SYS_LDLIBS +=
ifdef CROSS
GNU_TARGET=alpha-osf

View File

@ -19,22 +19,17 @@ SOLARIS_VERSION = $(subst 5.,,$(shell uname -r))
# Flags for solaris 6
POSIX_CPPFLAGS_YES_6 += -D_REENTRANT
POSIX_LDLIBS_YES_6 += -lthread
POSIX_CPPFLAGS_YES += -D_POSIX_C_SOURCE=199506L $(POSIX_CPPFLAGS_YES_$(SOLARIS_VERSION))
POSIX_CPPFLAGS_YES += -D_XOPEN_SOURCE=500
POSIX_LDLIBS_YES_6 += -lthread
POSIX_LDLIBS_YES += -lposix4 -lpthread $(POSIX_LDLIBS_YES_$(SOLARIS_VERSION))
POSIX_CPPFLAGS_NO +=
POSIX_LDLIBS_NO +=
OP_SYS_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION)
# socket and nsl needed by libca.a
OP_SYS_LDLIBS += -lsocket -lnsl
# Set runtime path for shared libraries
DIR_LDFLAGS_YES = $(sort $(SHRLIB_SEARCH_DIRS:%=-R%))
DIR_LDFLAGS += $(DIR_LDFLAGS_$(SHARED_LIBRARIES))
RUNTIME_LDFLAGS_YES = $(SHRLIB_SEARCH_DIRS:%=-R%)
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
ifdef CROSS
GNU_TARGET=sparc-sun-solaris2
@ -42,9 +37,6 @@ ifdef CROSS
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
endif
# Lib for solaris 8
SYS_SHRLIB_LIBS_8 += Crun
#Allow R3.13 built extensions to load R3.14 shared libs
SYS_SHRLIB_LIBS += posix4 pthread $(SYS_SHRLIB_LIBS_$(SOLARIS_VERSION))
OP_SYS_LDLIBS += -lsocket -lnsl
OP_SYS_LDLIBS_8 += -lCrun -lc -lCstd
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(SOLARIS_VERSION))

View File

@ -19,23 +19,18 @@ SOLARIS_VERSION = $(subst 5.,,$(shell uname -r))
# Flags for solaris 6
POSIX_CPPFLAGS_YES_6 += -D_REENTRANT
POSIX_LDLIBS_YES_6 += -lthread
POSIX_CPPFLAGS_YES += -D_POSIX_C_SOURCE=199506L $(POSIX_CPPFLAGS_YES_$(SOLARIS_VERSION))
POSIX_CPPFLAGS_YES += -D_XOPEN_SOURCE=500
POSIX_LDLIBS_YES_6 += -lthread
POSIX_LDLIBS_YES += -lposix4 -lpthread $(POSIX_LDLIBS_YES_$(SOLARIS_VERSION))
POSIX_CPPFLAGS_NO +=
POSIX_LDLIBS_NO +=
OP_SYS_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION)
ARCH_DEP_CPPFLAGS = -D_X86_
# socket and nsl needed by libca.a
OP_SYS_LDLIBS += -lsocket -lnsl
# -R does not work unless full path names are specified
# use loader's -R option
#DIR_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-R%))
# Set runtime path for shared libraries
RUNTIME_LDFLAGS_YES = $(SHRLIB_SEARCH_DIRS:%=-R%)
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
ifdef CROSS
GNU_TARGET=x86-sun-solaris2
@ -43,9 +38,6 @@ ifdef CROSS
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
endif
# Lib for solaris 8
SYS_SHRLIB_LIBS_8 += Crun
#Allow R3.13 built extensions to load R3.14 shared libs
SYS_SHRLIB_LIBS += posix4 pthread $(SYS_SHRLIB_LIBS_$(SOLARIS_VERSION))
OP_SYS_LDLIBS += -lsocket -lnsl
OP_SYS_LDLIBS_8 += -lCrun -lc -lCstd
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(SOLARIS_VERSION))

View File

@ -16,18 +16,22 @@ ARCH_CLASS = x86
CODE_CPPFLAGS = -D__EXTENSIONS__
POSIX_CPPFLAGS_YES = -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500
POSIX_LDLIBS_YES += -lpthread -lthread
POSIX_CPPFLAGS_NO =
POSIX_LDLIBS_NO +=
POSIX_LDLIBS_YES += -lpthread -lthread
OP_SYS_CPPFLAGS = -DSUNOS4
OP_SYS_LDLIBS += -lsocket -lnsl
ARCH_DEP_CPPFLAGS += -D_X86_
# Set runtime path for shared libraries
RUNTIME_LDFLAGS_YES = $(SHRLIB_SEARCH_DIRS:%=-R%)
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
ifdef CROSS
GNU_TARGET=x86-sun-sunos4
CMPLR_SUFFIX=
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
endif
OP_SYS_LDLIBS += -lsocket -lnsl

View File

@ -29,14 +29,19 @@ LIBNAME = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
#--------------------------------------------------
# Prod: DEPLIBS, LDFLAGS, and LDLIBS definitions
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword $(wildcard \
$($(lib)_DIR)/$(LIB_PREFIX)$(lib).*)))
PROD_LDLIBS = $($*_LDLIBS:%=-l%) $(PROD_LIBS:%=-l%) $(USR_LIBS:%=-l%)\
$($*_SYS_LIBS:%=-l%) $(SYS_PROD_LIBS:%=-l%)
PROD_DEPLIBS=$(foreach lib,$(PROD_LIBS) $(USR_LIBS), \
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).*, \
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
PROD_LDLIBS = $(addprefix -l,$($*_LDLIBS) $(PROD_LIBS) $(USR_LIBS)\
$($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS))
PROD_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS))
DIR_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%))
PRODDIR_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%))
#-------------------------------------------------------
# Prod definitions
@ -47,10 +52,10 @@ NMS = $(PRODNAME:%$(EXE)=%.nm)
#-------------------------------------------------------
# R3.13 compatability object library definitions
# Does not allow $*_SRCS or $*_OBJS. Allows only OBJLIB_SRCS and OBJLIB_OBJS.
OBJLIB += $(OBJLIB_$(OS_CLASS))
OBJLIB_SUFFIX = Library.o
OBJLIBNAME = $(addsuffix $(OBJLIB_SUFFIX),$(basename $(OBJLIB)))
OBJLIB_LD_OBJS = $(USR_OBJLIBS) $(TARGET_OBJS)
OBJLIB_LD_OBJS += $(addsuffix $(OBJ),$(basename $(OBJLIB_SRCS) $(OBJLIB_OBJS)))
PRODTARGETS += $(OBJLIBNAME)
INSTALL_PROD += $(OBJLIBNAME:%=$(INSTALL_BIN)/%)
@ -61,7 +66,6 @@ CTDT_SRCS += $(OBJLIBNAME:%$(OBJ)=%_ctdt.c)
CTDT_OBJS += $(OBJLIBNAME:%$(OBJ)=%_ctdt$(OBJ))
NMS += $(OBJLIBNAME:%$(OBJ)=%.nm)
OBJLIB_LINK.cpp = $(LD) -o $@ $(OBJLIB_LD_OBJS)
TARGET_SRCS += $(foreach name, $(OBJLIB), $($(name)_SRCS))
SRC_FILES += $(OBJLIB_SRCS)
#--------------------------------------------------
@ -91,7 +95,6 @@ OP_SYS_CPPFLAGS += -DvxWorks
OP_SYS_CFLAGS += -fno-builtin
#OP_SYS_CFLAGS += -fno-builtin -fdollars-in-identifiers
OP_SYS_LDFLAGS +=
OP_SYS_LDLIBS +=
# Fix for vxWorks headers using macros defined in
# vxWorks.h but not including vxWorks.h
@ -118,7 +121,8 @@ OSITHREAD_USE_DEFAULT_STACK = NO
#--------------------------------------------------
# Link definitions
LINK.cpp = $(LD) -o $@ $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS)
LINK.cpp = $(LD) -o $@ $(STATIC_LDFLAGS) $(PRODDIR_LDFLAGS) $(LDFLAGS)
LINK.cpp += $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS)
#--------------------------------------------------
# Definitions for compile of *_ctdt.c file

View File

@ -14,12 +14,5 @@ RM = rm -f
MKDIR = mkdir
RMDIR = rm -rf
# Set LD_LIBRARY_PATH for shared library builds
ifneq ($(EPICS_BASE),$(INSTALL_LOCATION))
export LD_LIBRARY_PATH := $(INSTALL_HOST_LIB):$(EPICS_BASE_HOST_LIB):$(LD_LIBRARY_PATH)
else
export LD_LIBRARY_PATH := $(INSTALL_HOST_LIB):$(LD_LIBRARY_PATH)
endif
# Allow site overrides
-include $(CONFIG)/os/CONFIG_SITE.UnixCommon.Common

View File

@ -24,4 +24,5 @@ STATIC_LDLIBS_YES= -Bdynamic
STATIC_LDLIBS_NO=
SHRLIB_LDFLAGS = -G -h $@ -z ignore -z combreloc -z lazyload
SHRLIB_LDFLAGS += -z defs

View File

@ -28,7 +28,7 @@ CONFORM_CFLAGS_STRICT = -Xc -v
CONFORM_CFLAGS_TRAD = -Xs
PROF_CFLAGS_YES = -p
GPROF_CFLAGS_YES = -xpg
CODE_CFLAGS = -KPIC $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
WARN_CFLAGS_YES =
WARN_CFLAGS_NO = -w
OPT_CFLAGS_YES = -xO4
@ -39,16 +39,22 @@ CONFORM_CXXFLAGS_NORMAL =
CONFORM_CXXFLAGS_STRICT =
PROF_CXXFLAGS_YES = -p
GPROF_CXXFLAGS_YES = -xpg
CODE_CXXFLAGS = -KPIC $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
WARN_CXXFLAGS_YES = +w
WARN_CXXFLAGS_NO =
OPT_CXXFLAGS_YES = -O
OPT_CXXFLAGS_NO = -g
CODE_LDFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
STATIC_LDFLAGS_YES= -Bstatic
STATIC_LDFLAGS_NO=
STATIC_LDLIBS_YES= -Bdynamic
STATIC_LDLIBS_NO=
SHRLIB_LDFLAGS = -G -h $@ -z ignore -z combreloc -z lazyload
SHRLIB_CFLAGS += -KPIC
SHRLIB_LDFLAGS += -G -h $@
SHRLIB_LDFLAGS += -z defs
OP_SYS_LDFLAGS += -z ignore -z combreloc -z lazyload

View File

@ -17,3 +17,9 @@ CCC = $(GNU_BIN)/g++
AR = ar -rc
RANLIB=
LD = ld -r
SHRLIB_LDFLAGS = -G -h $@
SHRLIB_LDFLAGS += -z defs
OP_SYS_LDFLAGS = -z ignore -z combreloc -z lazyload

View File

@ -29,7 +29,7 @@ CONFORM_CFLAGS_STRICT = -Xc -v
CONFORM_CFLAGS_TRAD = -Xs
PROF_CFLAGS_YES = -p
GPROF_CFLAGS_YES = -xpg
CODE_CFLAGS = -KPIC $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
WARN_CFLAGS_YES =
WARN_CFLAGS_NO = -w
OPT_CFLAGS_YES = -xO4
@ -40,7 +40,7 @@ CONFORM_CXXFLAGS_NORMAL =
CONFORM_CXXFLAGS_STRICT =
PROF_CXXFLAGS_YES = -p
GPROF_CXXFLAGS_YES = -xpg
CODE_CXXFLAGS = -KPIC $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
WARN_CXXFLAGS_YES = +w
WARN_CXXFLAGS_NO =
OPT_CXXFLAGS_YES = -O
@ -51,5 +51,9 @@ STATIC_LDFLAGS_NO=
STATIC_LDLIBS_YES= -Bdynamic
STATIC_LDLIBS_NO=
SHRLIB_LDFLAGS = -G -h $@ -z ignore -z combreloc -z lazyload
SHRLIB_CFLAGS += -KPIC
SHRLIB_LDFLAGS = -G -h $@
SHRLIB_LDFLAGS += -z defs
OP_SYS_LDFLAGS = -z ignore -z combreloc -z lazyload

View File

@ -136,8 +136,7 @@ OPT_CXXFLAGS_NO =
#
# no special libs for static link
#
STATIC_LDLIBS_YES=
STATIC_LDLIBS_NO=
LDLIBSws2_32.lib advapi32.lib user32.lib kernel32.lib winmm.lib
# -c case sensitive linking
# -C clear state before linking
@ -181,7 +180,6 @@ OP_SYS_CFLAGS =
#
OP_SYS_INCLUDES = -I$(BORLAND_INC)
#
OP_SYS_LDLIBS =
#
# specify dll .def file only if it exists
@ -228,26 +226,55 @@ INSTALL_SHRLIB = $(INSTALL_BIN)
#--------------------------------------------------
# Object lib name suffix
OBJECT_LIB_EXT_YES = Obj.lib # object library extension for static build
OBJECT_LIB_EXT_NO = .lib # object library extension for dynamic build
OBJECT_LIB_EXT = $(OBJECT_LIB_EXT_$(STATIC_BUILD))
LIB_EXT_YES = Obj.lib # object library extension for static build
LIB_EXT_NO = .lib # library extension for dynamic build
LIB_EXT = $(LIB_EXT_$(STATIC_BUILD))
#--------------------------------------------------
# Products dependancy definitions
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword \
$($(lib)_DIR)/$(lib)$(OBJECT_LIB_EXT)))
PROD_LDLIBS = $($*_DEPLIBS) $(PROD_DEPLIBS) \
$($*_SYS_LIBS:%=%.lib) $(SYS_PROD_LIBS:%=%.lib)
# SYS_PROD_LIBS deprecated
# Use PROD_SYS_LIBS
PROD_DEPLIBS=$(foreach lib, $(PROD_LIBS) $(USR_LIBS), \
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
PROD_LDLIBS += $($*_DEPLIBS) $(PROD_DEPLIBS)
PROD_LDLIBS += $(addsuffix .lib, \
$($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS) )
LDLIBS_STATIC_YES = LDLIBS
LDLIBS_SHARED_NO = LDLIBS
PROD_LDLIBS += $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
$(LDLIBS_SHARED_$(SHARED_LIBRARIES))))
#--------------------------------------------------
#Libraries dependancy definitions
# EPICS libs that we need to link the DLL with
# (it isnt necessary to rebuild the dll if these change)
DLL_DEPLIBS = $(foreach lib,$($*_DLL_LIBS) $(DLL_LIBS),$($(lib)_DIR)/$(lib).lib)
# <name>_DLL_LIBS <name>_SYS_DLL_LIBS deprecated.
# Use <name>_LIBS and <name>_SYS_LIBS.
# DLL_LIBS, and SYS_DLL_LIBS deprecated
# Use LIB_LIBS and LIB_SYS_LIBS
LIB_LIBS += $(DLL_LIBS)
LIB_SYS_LIBS += $(SYS_DLL_LIBS)
# libs that we need to link the DLL with
# (it isnt necessary to rebuild the dll if these change)
SHRLIB_DEPLIBS += $(foreach lib, $(LIB_LIBS) $(USR_LIBS), \
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
SHRLIB_LDLIBS += $($*_DLL_DEPLIBS) $($*_DEPLIBS) $(SHRLIB_DEPLIBS)
SHRLIB_LDLIBS += $(addsuffix .lib, \
$($*_SYS_DLL_LIBS) \
$($*_SYS_LIBS) $(LIB_SYS_LIBS) $(USR_SYS_LIBS) )
SHRLIB_LDLIBS = $(DLL_DEPLIBS) $($*_SYS_DLL_LIBS:%=%.lib) \
$(SYS_DLL_LIBS:%=%.lib) $(OP_SYS_LDLIBS)
#--------------------------------------------------
@ -264,13 +291,10 @@ LINKSTARTUP = c0x32.obj
LINKLIBS=import32.lib cw32$(LIBSUF).lib
LINK.cpp = $(WINLINK) $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) $(LINKSTARTUP) $(subst /,\\,$(PROD_LD_OBJS))
LINK.cpp += , $@ ,,$(LINKLIBS) $(subst /,\\,$(LDLIBS))
LINK.cpp += , $@ ,,$(LINKLIBS) $(subst /,\\,$(PROD_LDLIBS))
#--------------------------------------------------
# override of CONFIG_SITE default
SHARED_LIBRARIES = YES
# override of CONFIG_COMMON
HDEPENDS_INCLUDES_MKMF = $(filter-out $(BORLAND_INC),$(subst -I,,$(INCLUDES)))

View File

@ -144,8 +144,7 @@ STATIC_CXXFLAGS_NO= /MD$(VISC_STATIC_CFLAGS_DEBUG) $(VISC_DLL)
#
# no special libs for static link
#
STATIC_LDLIBS_YES=ws2_32.lib advapi32.lib user32.lib kernel32.lib winmm.lib
STATIC_LDLIBS_NO=
LDLIBS=ws2_32.lib advapi32.lib user32.lib kernel32.lib winmm.lib
# add /profile here to run the ms profiler
# /LTCG - whole program optimization
@ -183,13 +182,6 @@ OP_SYS_CFLAGS =
#
#OP_SYS_INCLUDES = -I$(INSTALL_INCLUDE)\\os\\WIN32
#
# These are now added to the individual makefiles that use them in order to
# speed up the build
#
#OP_SYS_LDLIBS = user32.lib kernel32.lib advapi32.lib winmm.lib
OP_SYS_LDLIBS =
# Files and flags needed to link DLLs (used in RULES_BUILD)
#
# Strange but seems to work without: WIN32_DLLFLAGS should contain
@ -242,34 +234,59 @@ INSTALL_SHRLIB = $(INSTALL_BIN)
#--------------------------------------------------
# Object lib name suffix
OBJECT_LIB_EXT_YES = Obj.lib # object library extension for static build
OBJECT_LIB_EXT_NO = .lib # object library extension for dynamic build
OBJECT_LIB_EXT = $(OBJECT_LIB_EXT_$(STATIC_BUILD))
LIB_EXT_YES = Obj.lib # object library extension for static build
LIB_EXT_NO = .lib # object library extension for dynamic build
LIB_EXT = $(LIB_EXT_$(STATIC_BUILD))
#--------------------------------------------------
# Products dependancy definitions
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword \
$($(lib)_DIR)/$(lib)$(OBJECT_LIB_EXT)))
PROD_LDLIBS = $($*_DEPLIBS) $(PROD_DEPLIBS) \
$($*_SYS_LIBS:%=%.lib) $(SYS_PROD_LIBS:%=%.lib)
# SYS_PROD_LIBS deprecated
# Use PROD_SYS_LIBS
PROD_DEPLIBS=$(foreach lib, $(PROD_LIBS) $(USR_LIBS), \
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
PROD_LDLIBS += $($*_DEPLIBS) $(PROD_DEPLIBS)
PROD_LDLIBS += $(addsuffix .lib, \
$($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS) )
LDLIBS_STATIC_YES = LDLIBS
LDLIBS_SHARED_NO = LDLIBS
PROD_LDLIBS += $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
$(LDLIBS_SHARED_$(SHARED_LIBRARIES))))
#--------------------------------------------------
# Libraries dependancy definitions
#Libraries dependancy definitions
# EPICS libs that we need to link the DLL with
# (it isnt necessary to rebuild the dll if these change)
DLL_DEPLIBS = $(foreach lib,$($*_DLL_LIBS) $(DLL_LIBS),$($(lib)_DIR)/$(lib).lib)
# <name>_DLL_LIBS <name>_SYS_DLL_LIBS deprecated.
# Use <name>_LIBS and <name>_SYS_LIBS.
# DLL_LIBS, and SYS_DLL_LIBS deprecated
# Use LIB_LIBS and LIB_SYS_LIBS
LIB_LIBS += $(DLL_LIBS)
LIB_SYS_LIBS += $(SYS_DLL_LIBS)
SHRLIB_LDLIBS = $(DLL_DEPLIBS) $($*_SYS_DLL_LIBS:%=%.lib) \
$(SYS_DLL_LIBS:%=%.lib) $(OP_SYS_LDLIBS)
# libs that we need to link the DLL with
# (it isnt necessary to rebuild the dll if these change)
SHRLIB_DEPLIBS += $(foreach lib, $(LIB_LIBS) $(USR_LIBS), \
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
SHRLIB_LDLIBS += $($*_DLL_DEPLIBS) $($*_DEPLIBS) $(SHRLIB_DEPLIBS)
SHRLIB_LDLIBS += $(addsuffix .lib, \
$($*_SYS_DLL_LIBS) \
$($*_SYS_LIBS) $(LIB_SYS_LIBS) $(USR_SYS_LIBS) )
#--------------------------------------------------
# Linker definition
LINK.cpp = $(WINLINK) -nologo $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) -out:$@ \
$(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS)
$(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS)
#--------------------------------------------------
# override of CONFIG_SITE
SHARED_LIBRARIES = YES

View File

@ -16,7 +16,6 @@
# the named directory to the list contained in the executables.
# c) Add the runtime path to /etc/ld.so.conf and run ldconfig
# to inform the system of the shared library location.
SHARED_LIBRARIES=YES
# If readline is installed uncomment the following line
# to get command-line editing and history support

View File

@ -39,6 +39,7 @@ $hostarch = $opt_h if ($opt_h);
# Find $top from current path; NB only works under iocBoot/* and configure/*
$top = $cwd;
$top =~ s/^\/cygdrive\/(\w)\//$1:\//;
$top =~ s/\/iocBoot.*$//;
$top =~ s/\/configure.*$//;
@ -117,8 +118,12 @@ sub readRelease {
# Handle "<macro> = <path>"
($macro, $path) = /^\s*(\w+)\s*=\s*(.*)/;
if ($macro ne "") {
if (exists $Rmacros->{$macro}) {
delete $Rmacros->{$macro};
} else {
push @$Rapps, $macro;
}
$Rmacros->{$macro} = $path;
push @$Rapps, $macro;
next;
}
# Handle "include <path>" syntax
@ -172,7 +177,7 @@ sub configAppInclude {
# 1. The lib directory probably doesn't exist yet, and
# 2. We need an abolute path but $(TOP_LIB) is relative
$path = $macros{"TOP"};
print OUT "SHRLIB_SEARCH_DIRS += $path/lib/$arch\n";
print OUT "SHRLIB_SEARCH_DIRS = $path/lib/$arch\n";
foreach $app (@includes) {
$path = $macros{$app};
next unless (-d "$path/lib/$arch");

View File

@ -92,25 +92,17 @@ foreach $name ( @nameList ) {
print OUT "endif\n";
print OUT "${name}_OBJS+=\$(addsuffix \$(OBJ),\$(basename \$(${name}_SRCS)))\n";
print OUT "\n";
print OUT "ifeq (\$(filter ${name},\$(TESTPROD)),${name})\n";
print OUT "ifeq (\$(filter ${name},\$(TESTPROD) \$(PROD)),${name})\n";
print OUT "ifeq (,\$(strip \$(${name}_OBJS) \$(PRODUCT_OBJS)))\n";
print OUT "${name}_OBJS+=${name}\$(OBJ)\n";
print OUT "endif\n";
print OUT "${name}_RESS+=\$(addsuffix \$(RES),\$(basename \$(${name}_RCS)))\n";
print OUT "${name}_OBJSNAME+=\$(addsuffix \$(OBJ),\$(basename \$(${name}_OBJS)))\n";
print OUT "${name}_DEPLIBS=\$(foreach lib, \$(${name}_LDLIBS),\$(firstword \$(wildcard \\\n";
print OUT " \$(\$(lib)_DIR)/\$(LIB_PREFIX)\$(lib)\*)))\n";
print OUT "${name}\$(EXE): \$(${name}_OBJSNAME) \$(${name}_RESS) \$(${name}_DEPLIBS)\n";
print OUT "endif\n";
print OUT "\n";
print OUT "ifeq (\$(filter ${name},\$(PROD)),${name})\n";
print OUT "ifeq (,\$(strip \$(${name}_OBJS) \$(PRODUCT_OBJS)))\n";
print OUT "${name}_OBJS+=${name}\$(OBJ)\n";
print OUT "endif\n";
print OUT "${name}_RESS+=\$(addsuffix \$(RES),\$(basename \$(${name}_RCS)))\n";
print OUT "${name}_OBJSNAME+=\$(addsuffix \$(OBJ),\$(basename \$(${name}_OBJS)))\n";
print OUT "${name}_DEPLIBS=\$(foreach lib, \$(${name}_LDLIBS),\$(firstword \$(wildcard \\\n";
print OUT " \$(\$(lib)_DIR)/\$(LIB_PREFIX)\$(lib)\*)))\n";
print OUT "${name}_DEPLIBS=\$(foreach lib, \$(${name}_LDLIBS),\\\n";
print OUT " \$(firstword \$(wildcard \$(addsuffix /\$(LIB_PREFIX)\$(lib)\*,\\\n";
print OUT " \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS)))\\\n";
print OUT " \$(addsuffix /\$(LIB_PREFIX)\$(lib)\$(LIB_EXT),\\\n";
print OUT " \$(firstword \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS))\/)))\n";
print OUT "${name}\$(EXE): \$(${name}_OBJSNAME) \$(${name}_RESS) \$(${name}_DEPLIBS)\n";
print OUT "endif\n";
print OUT "\n";
@ -120,12 +112,21 @@ foreach $name ( @nameList ) {
print OUT "endif\n";
print OUT "${name}_RESS+=\$(addsuffix \$(RES),\$(basename \$(${name}_RCS)))\n";
print OUT "${name}_OBJSNAME+=\$(addsuffix \$(OBJ),\$(basename \$(${name}_OBJS)))\n";
print OUT "${name}_DEPLIBS=\$(foreach lib, \$(${name}_LDLIBS),\$(firstword \$(wildcard \\\n";
print OUT " \$(\$(lib)_DIR)/\$(LIB_PREFIX)\$(lib)\*)))\n";
print OUT "${name}_DEPLIBS=\$(foreach lib, \$(${name}_LDLIBS),\\\n";
print OUT " \$(firstword \$(wildcard \$(addsuffix /\$(LIB_PREFIX)\$(lib)\*,\\\n";
print OUT " \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS)))\\\n";
print OUT " \$(addsuffix /\$(LIB_PREFIX)\$(lib)\$(LIB_SUFFIX),\\\n";
print OUT " \$(firstword \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS))\/)))\n";
print OUT "${name}_DLL_DEPLIBS=\$(foreach lib, \$(${name}_DLL_LIBS),\\\n";
print OUT " \$(firstword \$(wildcard \$(addsuffix /\$(LIB_PREFIX)\$(lib)\*,\\\n";
print OUT " \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS)))\\\n";
print OUT " \$(addsuffix /\$(LIB_PREFIX)\$(lib)\$(LIB_EXT),\\\n";
print OUT " \$(firstword \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS))\/)))\n";
print OUT "\$(LIB_PREFIX)${name}\$(LIB_SUFFIX):\$(${name}_OBJSNAME) \$(${name}_RESS)\n";
print OUT "\$(LIB_PREFIX)${name}\$(LIB_SUFFIX):\$(${name}_DEPLIBS)\n";
print OUT "\$(LIB_PREFIX)${name}\$(SHRLIB_SUFFIX):\$(${name}_OBJSNAME) \$(${name}_RESS)\n";
print OUT "\$(LIB_PREFIX)${name}\$(SHRLIB_SUFFIX):\$(${name}_DEPLIBS)\n";
print OUT "\$(LIB_PREFIX)${name}\$(SHRLIB_SUFFIX):\$(${name}_DLL_DEPLIBS)\n";
print OUT "endif\n";
print OUT "\n";
}

View File

@ -15,7 +15,7 @@ INC += asDbLib.h
INC += asCa.h
INC += asTrapWrite.h
LIBSRCS += asLib.c
LIB_SRCS += asLib.c
asIoc_SRCS += asDbLib.c
asIoc_SRCS += asCa.c
@ -24,17 +24,16 @@ asIoc_SRCS += asTrapWrite.c
LIBRARY_HOST = asHost
LIBRARY_IOC = asIoc
asHost_DLL_LIBS = dbStaticHost ca Com
asIoc_DLL_LIBS = dbIoc dbStaticIoc ca Com
asHost_DIR=.
PROD_LIBS = asHost dbStaticHost Com
PROD_HOST = ascheck
ascheck_SRCS = ascheck.c
asHost_LIBS = dbStaticHost ca Com
asIoc_LIBS = dbIoc dbStaticIoc ca Com
asHost_RCS_WIN32 = asHost.rc
asIoc_RCS_WIN32 = asIoc.rc
PROD_HOST = ascheck
ascheck_SRCS = ascheck.c
PROD_LIBS = asHost dbStaticHost Com
# For R3.13 compatibility only
OBJLIB_vxWorks=asIoc
OBJLIB_SRCS = $(LIBSRCS) $(asIoc_SRCS)

View File

@ -79,19 +79,14 @@ ca_RCS_WIN32 = ca.rc
OBJLIB_vxWorks=ca
OBJLIB_SRCS = $(LIBSRCS)
# only for WIN32:
SYS_DLL_LIBS = ws2_32
DLL_LIBS = Com
ca_LIBS = Com
ca_SYS_LIBS_WIN32 = ws2_32 advapi32 user32
# libs needed for PROD and TESTPRODUCT
PROD_LIBS = ca Com
# needed when its an object library build
SYS_PROD_LIBS_WIN32 = ws2_32 advapi32 user32
# libs needed to build [TEST]PRODUCT
ca_DIR = .
Com_DIR = $(INSTALL_LIB)
PROD_SYS_LIBS_WIN32 = ws2_32 advapi32 user32
PROD_HOST += caRepeater catime acctst caConnTest casw caEventRate
OBJS_IOC += catime acctst caConnTest casw caEventRate
@ -102,5 +97,7 @@ caEventRate_SRCS = caEventRateMain.cpp caEventRate.cpp
casw_SRCS = casw.cpp
caConnTest_SRCS = caConnTestMain.cpp caConnTest.cpp
casw_SYS_LIBS_solaris = socket
include $(TOP)/configure/RULES

View File

@ -74,13 +74,10 @@ LIBSRCS += casStreamIO.cc
LIBSRCS += ipIgnoreEntry.cc
LIBRARY = cas
DLL_LIBS = ca gdd Com
SYS_DLL_LIBS = ws2_32
cas_LIBS = ca gdd Com
cas_SYS_LIBS_WIN32 = ws2_32
cas_RCS_WIN32 = cas.rc
#PROD_LIBS := cas ca gdd Com
#SYS_PROD_LIBS_WIN32 := ws2_32
include $(TOP)/configure/RULES
clean::

View File

@ -13,15 +13,15 @@ TOP=../../../..
include $(TOP)/configure/CONFIG
PROD_LIBS := cas ca gdd Com
cas_DIR = $(INSTALL_LIB)
ca_DIR = $(INSTALL_LIB)
gdd_DIR = $(INSTALL_LIB)
Com_DIR = $(INSTALL_LIB)
#cas_DIR = $(INSTALL_LIB)
#ca_DIR = $(INSTALL_LIB)
#gdd_DIR = $(INSTALL_LIB)
#Com_DIR = $(INSTALL_LIB)
#
# Added winmm user32 for the non-dll build
#
SYS_PROD_LIBS_WIN32 := ws2_32 advapi32 user32
PROD_SYS_LIBS_WIN32 := ws2_32 advapi32 user32
SRCS += main.cc
SRCS += directoryServer.cc

View File

@ -13,15 +13,15 @@ TOP=../../../..
include $(TOP)/configure/CONFIG
PROD_LIBS := cas ca gdd Com
cas_DIR = $(INSTALL_LIB)
ca_DIR = $(INSTALL_LIB)
gdd_DIR = $(INSTALL_LIB)
Com_DIR = $(INSTALL_LIB)
#cas_DIR = $(INSTALL_LIB)
#ca_DIR = $(INSTALL_LIB)
#gdd_DIR = $(INSTALL_LIB)
#Com_DIR = $(INSTALL_LIB)
#
# Added ws2_32 winmm user32 for the non-dll build
#
SYS_PROD_LIBS_WIN32 := ws2_32 advapi32 user32
PROD_SYS_LIBS_WIN32 := ws2_32 advapi32 user32
SRCS += main.cc
SRCS += exServer.cc

View File

@ -75,7 +75,7 @@ LIBSRCS += dbServiceIOReadNotifyCache.cpp
LIBSRCS += templateInstances.cpp
LIBRARY_IOC = dbIoc
DLL_LIBS = dbStaticIoc ca Com
dbIoc_LIBS = dbStaticIoc ca Com
dbIoc_RCS_WIN32 = dbIoc.rc

View File

@ -12,13 +12,10 @@ TOP=../../..
include $(TOP)/configure/CONFIG
PROD_LIBS += dbIoc dbStaticHost ca Com
dbIoc_DIR=$(INSTALL_LIB)
dbStaticHost_DIR=$(INSTALL_LIB)
callbackTestHost_SRCS += callbackTestMain.c callbackTest.c
PROD_HOST += callbackTestHost
OBJS_IOC += callbackTest
include $(TOP)/configure/RULES

View File

@ -37,20 +37,20 @@ LIBRARY_IOC += dbStaticIoc
OBJLIB_vxWorks=dbStaticIoc
OBJLIB_SRCS = $(LIBSRCS) $(dbStaticIoc_SRCS)
dbStaticHost_DLL_LIBS = Com
dbStaticIoc_DLL_LIBS = Com
dbStaticHost_LIBS = Com
dbStaticIoc_LIBS = Com
dbStaticHost_RCS_WIN32 = dbStaticHost.rc
dbStaticIoc_RCS_WIN32 = dbStaticIoc.rc
PROD_LIBS := dbStaticHost Com
dbStaticHost_DIR=.
#dbStaticHost_DIR=.
PROD_HOST = dbReadTest dbExpand dbToMenuH dbToRecordtypeH
dbReadTest_SRCS = dbReadTest.c
dbExpand_SRCS = dbExpand.c
dbToMenuH_SRCS = dbToMenuH.c
dbToRecordtypeH_SRCS = dbToRecordtypeH.c
dbStaticHost_RCS_WIN32 = dbStaticHost.rc
dbStaticIoc_RCS_WIN32 = dbStaticIoc.rc
include $(TOP)/configure/RULES
# Extra rule since dbLexRoutines.c is included in dbYacc.c

View File

@ -20,12 +20,12 @@ LIBSRCS += dbLoadTemplate.c
LIBRARY_IOC = dbtoolsIoc
dbtoolsIoc_DLL_LIBS = dbIoc Com
HTMLS += dbLoadTemplate.html
dbtoolsIoc_LIBS = dbIoc Com
dbtoolsIoc_RCS_WIN32 = dbtoolsIoc.rc
HTMLS += dbLoadTemplate.html
# For R3.13 compatibility only
OBJLIB_vxWorks=dbtoolsIoc
OBJLIB_SRCS = $(LIBSRCS)

View File

@ -51,12 +51,14 @@ gdd_SRCS := gdd.cc gddTest.cc gddAppTable.cc gddNewDel.cc \
LIBRARY = gdd
DLL_LIBS = Com
PROD_LIBS = Com
gdd_LIBS = Com
gdd_RCS_WIN32 = gdd.rc
PROD_HOST = aitGen genApps
genApps_SRCS = genApps.cc $(AITGENSRCS)
aitGen_SRCS = aitTypes.c aitGen.c
PROD_HOST = aitGen genApps
PROD_LIBS = Com
# i386-rtems-gcc version 2.95.2 can't compile this with optimization.
# Remove the following line once a better version of gcc is available.
@ -69,8 +71,6 @@ aitConvert_OPT_RTEMS-pc386 = NO
HPWARNFLAGS_NO = +W361 +W392 +W655 +W749 +W818 +W930
USR_CXXFLAGS_hpux = $(HPWARNFLAGS_$(GNU))
gdd_RCS_WIN32 = gdd.rc
include $(TOP)/configure/RULES
# cannot generate these dependencies automatically

View File

@ -53,8 +53,7 @@ LIBSRCS += registryRegister.c
LIBRARY_IOC = iocsh
iocsh_DLL_LIBS = miscIoc rsrvIoc dbtoolsIoc asIoc dbIoc registryIoc dbStaticIoc Com
iocsh_LIBS = miscIoc rsrvIoc dbtoolsIoc asIoc dbIoc registryIoc dbStaticIoc Com
iocsh_RCS_WIN32 = iocsh.rc
# For R3.13 compatibility only

View File

@ -227,18 +227,18 @@ SRCS_vxWorks += iocClock.c
# lib$(LIBRARY).a or ..dll/..exp/..lib
#
LIBRARY=Com
SYS_DLL_LIBS := ws2_32 advapi32 user32
Com_SYS_LIBS_WIN32 = ws2_32 advapi32 user32
Com_RCS_WIN32 = Com.rc
# For R3.13 compatibility only
OBJLIB_vxWorks=Com
OBJLIB_SRCS = $(SRCS)
#Com_RCS_WIN32 = Com.rc
# libs needed for PROD and TESTPRODUCT
PROD_LIBS := Com
SYS_PROD_LIBS_WIN32 := ws2_32 advapi32
PROD_LIBS = Com
PROD_SYS_LIBS_WIN32 = ws2_32 advapi32
#USR_CFLAGS += -DTS_TEST
#TESTPROD_SRCS=tsSubr.c

View File

@ -12,7 +12,6 @@ TOP=../../..
include $(TOP)/configure/CONFIG
PROD_LIBS += Com
Com_DIR = $(INSTALL_LIB)
#epicsListTest_SRCS += epicsListTest.cpp
PROD_HOST += epicsListTest

View File

@ -20,13 +20,11 @@ INC += asSubRecordFunctions.h
LIBSRCS += epicsRelease.c
LIBSRCS += iocInit.c
LIBSRCS += asSubRecordFunctions.c
DLL_LIBS = Com dbStaticIoc dbIoc asIoc rsrvIoc registryIoc
LIBRARY_IOC = miscIoc
miscIoc_RCS_WIN32 = miscIoc.rc
miscIoc_DLL_LIBS = rsrvIoc asIoc dbIoc registryIoc dbStaticIoc Com
misc_RCS_WIN32 = misc.rc
miscIoc_LIBS = dbStaticIoc dbIoc asIoc rsrvIoc registryIoc Com
# For R3.13 compatibility only
OBJLIB_vxWorks=miscIoc

View File

@ -24,9 +24,8 @@ LIBSRCS += cast_server.c
LIBSRCS += online_notify.c
LIBRARY_IOC = rsrvIoc
rsrvIoc_DLL_LIBS = asIoc dbIoc ca Com
SYS_DLL_LIBS := ws2_32
rsrvIoc_LIBS = asIoc dbIoc ca Com
rsrvIoc_SYS_LIBS_WIN32 := ws2_32
rsrvIoc_RCS_WIN32 = rsrvIoc.rc
# For R3.13 compatibility only

View File

@ -18,7 +18,9 @@ PROD_LIBS = ca Com
#
PROD_HOST_DEFAULT = ca_test iocLogServer startCArepeater
PROD_HOST_WIN32 = ca_test iocLogServer
SYS_PROD_LIBS_WIN32 = ws2_32 advapi32 user32
PROD_SYS_LIBS_WIN32 = ws2_32 advapi32 user32
iocLogServer_SYS_LIBS_solaris = socket
ca_test_SRCS = ca_test_main.c ca_test.c
iocLogServer_SRCS = iocLogServer.c