From 6021e84957981633d86ef8e2e6ea6b3608c41646 Mon Sep 17 00:00:00 2001 From: "Janet B. Anderson" Date: Tue, 18 Mar 2003 22:45:03 +0000 Subject: [PATCH] Changes for shared libraries and os consistancy. --- configure/CONFIG.gnuCommon | 13 +++- configure/CONFIG_ADDONS | 42 ++++++++++- configure/CONFIG_BASE | 38 +++++----- configure/CONFIG_BASE_VERSION | 2 +- configure/CONFIG_COMMON | 19 +++-- configure/CONFIG_SITE | 3 +- configure/RULES_BUILD | 4 +- configure/Sample.Makefile | 6 +- configure/os/CONFIG.Common.RTEMS | 2 +- configure/os/CONFIG.Common.UnixCommon | 54 ++++++++++----- configure/os/CONFIG.Common.linux-mpc82xx | 5 ++ configure/os/CONFIG.Common.linux-x86 | 10 +-- configure/os/CONFIG.Common.osf-alpha | 1 - configure/os/CONFIG.Common.solaris-sparc | 20 ++---- configure/os/CONFIG.Common.solaris-x86 | 22 ++---- configure/os/CONFIG.Common.sun4-x86 | 10 ++- configure/os/CONFIG.Common.vxWorksCommon | 22 +++--- configure/os/CONFIG.UnixCommon.Common | 7 -- ...CONFIG.solaris-sparc-gnu.solaris-sparc-gnu | 1 + .../os/CONFIG.solaris-sparc.solaris-sparc | 12 +++- .../os/CONFIG.solaris-x86-gnu.solaris-x86-gnu | 6 ++ configure/os/CONFIG.solaris-x86.solaris-x86 | 10 ++- ...CONFIG.win32-x86-borland.win32-x86-borland | 62 ++++++++++++----- configure/os/CONFIG.win32-x86.win32-x86 | 69 ++++++++++++------- configure/os/CONFIG_SITE.Common.linux-x86 | 1 - configure/tools/convertRelease.pl | 9 ++- configure/tools/makeMakefileInclude.pl | 33 ++++----- src/as/Makefile | 15 ++-- src/ca/Makefile | 15 ++-- src/cas/build/Makefile | 7 +- src/cas/example/directoryService/Makefile | 10 +-- src/cas/example/simple/Makefile | 10 +-- src/db/Makefile | 2 +- src/db/test/Makefile | 3 - src/dbStatic/Makefile | 12 ++-- src/dbtools/Makefile | 6 +- src/gdd/Makefile | 10 +-- src/iocsh/Makefile | 3 +- src/libCom/Makefile | 10 +-- src/libCom/test/Makefile | 1 - src/misc/Makefile | 6 +- src/rsrv/Makefile | 5 +- src/util/Makefile | 4 +- 43 files changed, 349 insertions(+), 253 deletions(-) diff --git a/configure/CONFIG.gnuCommon b/configure/CONFIG.gnuCommon index a390b7952..c2f8cc363 100644 --- a/configure/CONFIG.gnuCommon +++ b/configure/CONFIG.gnuCommon @@ -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 diff --git a/configure/CONFIG_ADDONS b/configure/CONFIG_ADDONS index 3f48c5699..64d152872 100644 --- a/configure/CONFIG_ADDONS +++ b/configure/CONFIG_ADDONS @@ -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 diff --git a/configure/CONFIG_BASE b/configure/CONFIG_BASE index 83c77ed89..20ef2997b 100644 --- a/configure/CONFIG_BASE +++ b/configure/CONFIG_BASE @@ -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) diff --git a/configure/CONFIG_BASE_VERSION b/configure/CONFIG_BASE_VERSION index 73f86b3e9..7f4ccc714 100644 --- a/configure/CONFIG_BASE_VERSION +++ b/configure/CONFIG_BASE_VERSION @@ -18,7 +18,7 @@ EPICS_VERSION=3 EPICS_REVISION=14 -EPICS_MODIFICATION=1 +EPICS_MODIFICATION=2 EPICS_UPDATE_NAME= EPICS_UPDATE_LEVEL=0 diff --git a/configure/CONFIG_COMMON b/configure/CONFIG_COMMON index 35c015ac5..575169728 100644 --- a/configure/CONFIG_COMMON +++ b/configure/CONFIG_COMMON @@ -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)\ diff --git a/configure/CONFIG_SITE b/configure/CONFIG_SITE index 3949db09e..70c4faa7c 100644 --- a/configure/CONFIG_SITE +++ b/configure/CONFIG_SITE @@ -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 diff --git a/configure/RULES_BUILD b/configure/RULES_BUILD index 89789f06d..d233de5d8 100644 --- a/configure/RULES_BUILD +++ b/configure/RULES_BUILD @@ -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) diff --git a/configure/Sample.Makefile b/configure/Sample.Makefile index 07810a91e..80c4e6ec1 100755 --- a/configure/Sample.Makefile +++ b/configure/Sample.Makefile @@ -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 # diff --git a/configure/os/CONFIG.Common.RTEMS b/configure/os/CONFIG.Common.RTEMS index 89808a727..c09b7e8db 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_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) diff --git a/configure/os/CONFIG.Common.UnixCommon b/configure/os/CONFIG.Common.UnixCommon index f4864663e..40ec81014 100644 --- a/configure/os/CONFIG.Common.UnixCommon +++ b/configure/os/CONFIG.Common.UnixCommon @@ -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 diff --git a/configure/os/CONFIG.Common.linux-mpc82xx b/configure/os/CONFIG.Common.linux-mpc82xx index 4b1015916..d5390134b 100644 --- a/configure/os/CONFIG.Common.linux-mpc82xx +++ b/configure/os/CONFIG.Common.linux-mpc82xx @@ -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 + diff --git a/configure/os/CONFIG.Common.linux-x86 b/configure/os/CONFIG.Common.linux-x86 index 6274825b1..bd3e7c198 100644 --- a/configure/os/CONFIG.Common.linux-x86 +++ b/configure/os/CONFIG.Common.linux-x86 @@ -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 - - diff --git a/configure/os/CONFIG.Common.osf-alpha b/configure/os/CONFIG.Common.osf-alpha index b1afe238d..52b1a7c06 100644 --- a/configure/os/CONFIG.Common.osf-alpha +++ b/configure/os/CONFIG.Common.osf-alpha @@ -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 diff --git a/configure/os/CONFIG.Common.solaris-sparc b/configure/os/CONFIG.Common.solaris-sparc index 23be56842..4ab55a6af 100644 --- a/configure/os/CONFIG.Common.solaris-sparc +++ b/configure/os/CONFIG.Common.solaris-sparc @@ -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)) diff --git a/configure/os/CONFIG.Common.solaris-x86 b/configure/os/CONFIG.Common.solaris-x86 index 13be95a7a..c47aa5612 100644 --- a/configure/os/CONFIG.Common.solaris-x86 +++ b/configure/os/CONFIG.Common.solaris-x86 @@ -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)) diff --git a/configure/os/CONFIG.Common.sun4-x86 b/configure/os/CONFIG.Common.sun4-x86 index 75d7b80c5..15d691317 100644 --- a/configure/os/CONFIG.Common.sun4-x86 +++ b/configure/os/CONFIG.Common.sun4-x86 @@ -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 + diff --git a/configure/os/CONFIG.Common.vxWorksCommon b/configure/os/CONFIG.Common.vxWorksCommon index 21ffdca22..912d224af 100644 --- a/configure/os/CONFIG.Common.vxWorksCommon +++ b/configure/os/CONFIG.Common.vxWorksCommon @@ -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 diff --git a/configure/os/CONFIG.UnixCommon.Common b/configure/os/CONFIG.UnixCommon.Common index 341ed3dad..c7114c342 100644 --- a/configure/os/CONFIG.UnixCommon.Common +++ b/configure/os/CONFIG.UnixCommon.Common @@ -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 diff --git a/configure/os/CONFIG.solaris-sparc-gnu.solaris-sparc-gnu b/configure/os/CONFIG.solaris-sparc-gnu.solaris-sparc-gnu index c64b13411..5e8482b9b 100644 --- a/configure/os/CONFIG.solaris-sparc-gnu.solaris-sparc-gnu +++ b/configure/os/CONFIG.solaris-sparc-gnu.solaris-sparc-gnu @@ -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 diff --git a/configure/os/CONFIG.solaris-sparc.solaris-sparc b/configure/os/CONFIG.solaris-sparc.solaris-sparc index d7176d346..bd3425ab9 100644 --- a/configure/os/CONFIG.solaris-sparc.solaris-sparc +++ b/configure/os/CONFIG.solaris-sparc.solaris-sparc @@ -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 diff --git a/configure/os/CONFIG.solaris-x86-gnu.solaris-x86-gnu b/configure/os/CONFIG.solaris-x86-gnu.solaris-x86-gnu index c255a4056..3ea6d9cb7 100644 --- a/configure/os/CONFIG.solaris-x86-gnu.solaris-x86-gnu +++ b/configure/os/CONFIG.solaris-x86-gnu.solaris-x86-gnu @@ -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 + diff --git a/configure/os/CONFIG.solaris-x86.solaris-x86 b/configure/os/CONFIG.solaris-x86.solaris-x86 index 4049bf3fe..3a7a1d792 100644 --- a/configure/os/CONFIG.solaris-x86.solaris-x86 +++ b/configure/os/CONFIG.solaris-x86.solaris-x86 @@ -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 diff --git a/configure/os/CONFIG.win32-x86-borland.win32-x86-borland b/configure/os/CONFIG.win32-x86-borland.win32-x86-borland index f76c52dd2..b77352dae 100644 --- a/configure/os/CONFIG.win32-x86-borland.win32-x86-borland +++ b/configure/os/CONFIG.win32-x86-borland.win32-x86-borland @@ -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) +# _DLL_LIBS _SYS_DLL_LIBS deprecated. +# Use _LIBS and _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))) diff --git a/configure/os/CONFIG.win32-x86.win32-x86 b/configure/os/CONFIG.win32-x86.win32-x86 index fd8a08faa..20c14df89 100644 --- a/configure/os/CONFIG.win32-x86.win32-x86 +++ b/configure/os/CONFIG.win32-x86.win32-x86 @@ -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) +# _DLL_LIBS _SYS_DLL_LIBS deprecated. +# Use _LIBS and _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 diff --git a/configure/os/CONFIG_SITE.Common.linux-x86 b/configure/os/CONFIG_SITE.Common.linux-x86 index b30f2d5f2..e882c91a1 100644 --- a/configure/os/CONFIG_SITE.Common.linux-x86 +++ b/configure/os/CONFIG_SITE.Common.linux-x86 @@ -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 diff --git a/configure/tools/convertRelease.pl b/configure/tools/convertRelease.pl index 902fcb18e..b716d60ea 100755 --- a/configure/tools/convertRelease.pl +++ b/configure/tools/convertRelease.pl @@ -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) = /^\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 " 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"); diff --git a/configure/tools/makeMakefileInclude.pl b/configure/tools/makeMakefileInclude.pl index bbb3f66db..5275952e7 100755 --- a/configure/tools/makeMakefileInclude.pl +++ b/configure/tools/makeMakefileInclude.pl @@ -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"; } diff --git a/src/as/Makefile b/src/as/Makefile index f82f9a7fc..29074b13a 100644 --- a/src/as/Makefile +++ b/src/as/Makefile @@ -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) diff --git a/src/ca/Makefile b/src/ca/Makefile index 3aef5d42b..34de39c61 100644 --- a/src/ca/Makefile +++ b/src/ca/Makefile @@ -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 diff --git a/src/cas/build/Makefile b/src/cas/build/Makefile index d3e102858..f678fe570 100644 --- a/src/cas/build/Makefile +++ b/src/cas/build/Makefile @@ -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:: diff --git a/src/cas/example/directoryService/Makefile b/src/cas/example/directoryService/Makefile index ab7143073..86fc6112f 100644 --- a/src/cas/example/directoryService/Makefile +++ b/src/cas/example/directoryService/Makefile @@ -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 diff --git a/src/cas/example/simple/Makefile b/src/cas/example/simple/Makefile index b0202e5e8..f4d93bec4 100644 --- a/src/cas/example/simple/Makefile +++ b/src/cas/example/simple/Makefile @@ -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 diff --git a/src/db/Makefile b/src/db/Makefile index 5ef38f0e4..ee0e2b1c2 100644 --- a/src/db/Makefile +++ b/src/db/Makefile @@ -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 diff --git a/src/db/test/Makefile b/src/db/test/Makefile index 849ca14e5..71a5b82d1 100644 --- a/src/db/test/Makefile +++ b/src/db/test/Makefile @@ -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 diff --git a/src/dbStatic/Makefile b/src/dbStatic/Makefile index fee7c3550..a737a2e69 100644 --- a/src/dbStatic/Makefile +++ b/src/dbStatic/Makefile @@ -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 diff --git a/src/dbtools/Makefile b/src/dbtools/Makefile index 05a2ed922..805e0ce42 100644 --- a/src/dbtools/Makefile +++ b/src/dbtools/Makefile @@ -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) diff --git a/src/gdd/Makefile b/src/gdd/Makefile index 77bcfb9a2..dde693380 100644 --- a/src/gdd/Makefile +++ b/src/gdd/Makefile @@ -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 diff --git a/src/iocsh/Makefile b/src/iocsh/Makefile index a09701641..cc92a2931 100644 --- a/src/iocsh/Makefile +++ b/src/iocsh/Makefile @@ -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 diff --git a/src/libCom/Makefile b/src/libCom/Makefile index e16723601..8bc8c62a5 100644 --- a/src/libCom/Makefile +++ b/src/libCom/Makefile @@ -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 diff --git a/src/libCom/test/Makefile b/src/libCom/test/Makefile index a4b944c5d..d13fa7b4f 100644 --- a/src/libCom/test/Makefile +++ b/src/libCom/test/Makefile @@ -12,7 +12,6 @@ TOP=../../.. include $(TOP)/configure/CONFIG PROD_LIBS += Com -Com_DIR = $(INSTALL_LIB) #epicsListTest_SRCS += epicsListTest.cpp PROD_HOST += epicsListTest diff --git a/src/misc/Makefile b/src/misc/Makefile index 079b189eb..50281c849 100644 --- a/src/misc/Makefile +++ b/src/misc/Makefile @@ -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 diff --git a/src/rsrv/Makefile b/src/rsrv/Makefile index 93fe5069e..cc9dde419 100644 --- a/src/rsrv/Makefile +++ b/src/rsrv/Makefile @@ -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 diff --git a/src/util/Makefile b/src/util/Makefile index a3ed93d77..a7977f641 100644 --- a/src/util/Makefile +++ b/src/util/Makefile @@ -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