o added CMPL_CLASD definition to CONFIG.gnuCommon, CONFIG.solarisCommon.solarisCommon, configure/os/CONFIG.win32-x86.win32-x86
o added CMPLR_SRC_DIRS to ALL_SRC_DIRS, and added compiler/$CMPLR_CLASS) to INSTALL_INCLUDES in CONFIG_COMMON o added additional compiler specific rule deciding where things are installed to in CONFIG_COMMON o added compiler specific include install to RULES_BUILD o changed configure/os/CONFIG.linux-x86.linux-x86 to specify minimum arch is 586 (pentium circa 1995) o changed configure/os/CONFIG.win32-x86-cygwin.win32-x86-cygwin to specify minimum arch is 586 (pentium circa 1995) o added epicsAtoimic facility to libCom/Makefile o added testing and performance measurement to libCom/test/Makefile
This commit is contained in:
@@ -12,6 +12,8 @@
|
||||
|
||||
GNU = YES
|
||||
|
||||
CMPLR_CLASS = gcc
|
||||
|
||||
GNU_BIN = $(GNU_DIR)/bin
|
||||
GNU_LIB = $(GNU_DIR)/lib
|
||||
|
||||
|
||||
@@ -133,11 +133,14 @@ POSIX_YES = os/posix
|
||||
GENERIC_SRC_DIRS = .. $(SRC_DIRS)
|
||||
OS_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
|
||||
$(addprefix $(dir)/, os/$(OS_CLASS) $(POSIX_$(POSIX)) os/default ))
|
||||
ALL_SRC_DIRS = $(OS_SRC_DIRS) $(GENERIC_SRC_DIRS)
|
||||
CMPLR_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
|
||||
$(addprefix $(dir)/, compiler/$(CMPLR_CLASS) compiler/default ))
|
||||
ALL_SRC_DIRS = $(CMPLR_SRC_DIRS) $(OS_SRC_DIRS) $(GENERIC_SRC_DIRS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# compile line include directories
|
||||
INSTALL_INCLUDES += \
|
||||
-I$(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS) \
|
||||
-I$(INSTALL_INCLUDE)/os/$(OS_CLASS) \
|
||||
-I$(INSTALL_INCLUDE)
|
||||
SRC_INCLUDES = -I$(COMMON_DIR) $(addprefix -I, $(wildcard $(ALL_SRC_DIRS)))
|
||||
@@ -379,24 +382,35 @@ INSTALL_PERMISSIONS = 444
|
||||
#
|
||||
# auto determine the directory paths that things are installed to
|
||||
# RULES:
|
||||
# 1) found in any one of several os specific area
|
||||
# 0) found in any one of several compiler specific area
|
||||
# => install to $(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)
|
||||
# 1) not found in (0) and found in any one of several os specific area
|
||||
# => install to $(INSTALL_INCLUDE)/os/$(OS_CLASS)
|
||||
# 2) not foundin (1) and found in generic area
|
||||
# 2) not found in (1) and found in generic area
|
||||
# => install to $(INSTALL_INCLUDE)
|
||||
# 3) not found in (1) or (2) then may be (not yet) computer generated
|
||||
# => install into $(INSTALL_INCLUDE)/os/$(OS_CLASS) and let
|
||||
# build rules work on vpath
|
||||
#
|
||||
# These rules guarantee that the users include from
|
||||
# no more than two directories
|
||||
# no more than three directories
|
||||
#
|
||||
INSTALL_INC += $(foreach inc, $(INC), \
|
||||
$(firstword \
|
||||
$(CMPLR_INSTALL_INC) \
|
||||
$(OS_INSTALL_INC) \
|
||||
$(GENERIC_INSTALL_INC) \
|
||||
$(GENERATED_INSTALL_INC) ) )
|
||||
INSTALL_INC += $(addprefix $(INSTALL_INCLUDE)/os/$(OS_CLASS)/, $(INC_$(OS_CLASS)) )
|
||||
|
||||
#
|
||||
# Rule 0
|
||||
#
|
||||
CMPLR_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)/, $(INSTALL_INC_jjj) )
|
||||
INSTALL_INC_jjj = $(foreach dir, $(CMPLR_SRC_DIRS), $(INSTALL_INC_iii) )
|
||||
INSTALL_INC_iii = $(subst $(dir)/, , $(INSTALL_INC_hhh) )
|
||||
INSTALL_INC_hhh = $(wildcard $(addsuffix /$(inc), $(dir)) )
|
||||
|
||||
#
|
||||
# Rule 1
|
||||
#
|
||||
|
||||
@@ -417,6 +417,10 @@ $(INSTALL_INCLUDE)/% : %
|
||||
$(INSTALL_INCLUDE)/os/$(OS_CLASS)/% : %
|
||||
$(ECHO) "Installing os dependent include file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)/% : %
|
||||
$(ECHO) "Installing compiler dependent include file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DOC)/%: %
|
||||
$(ECHO) "Installing doc $@"
|
||||
|
||||
@@ -16,3 +16,8 @@ STATIC_LDLIBS_NO=
|
||||
|
||||
SHRLIB_LDFLAGS += -Wl,-h$@
|
||||
LOADABLE_SHRLIB_LDFLAGS += -Wl,-h$@
|
||||
|
||||
# this means that atomic instrnsics are available, but that
|
||||
# users with 486 processors and earlier will need specialized
|
||||
# configure files
|
||||
ARCH_DEP_CFLAGS += -march=i586
|
||||
@@ -7,6 +7,8 @@
|
||||
# Sites may override these definitions in CONFIG_SITE.solaris-sparc.solaris-sparc
|
||||
#-------------------------------------------------------
|
||||
|
||||
CMPLR_CLASS = solStudio
|
||||
|
||||
SPARCWORKS = /opt/SUNWspro
|
||||
GNU = NO
|
||||
|
||||
|
||||
@@ -23,6 +23,11 @@ SHRLIB_CFLAGS =
|
||||
SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
|
||||
LOADABLE_SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
|
||||
|
||||
# this means that atomic instrnsics are available, but that
|
||||
# users with 486 processors and earlier will need specialized
|
||||
# configure files
|
||||
ARCH_DEP_CFLAGS += -march=i586
|
||||
|
||||
# Override linking with gcc library from CONFIG.gnuCommon
|
||||
GNU_LDLIBS_YES =
|
||||
|
||||
|
||||
@@ -18,6 +18,11 @@ RANLIB = ranlib
|
||||
RES=.coff
|
||||
RCCMD = windres $(INCLUDES) $< $@
|
||||
|
||||
# this means that atomic instrnsics are available, but that
|
||||
# users with 486 processors and earlier will need specialized
|
||||
# configure files
|
||||
ARCH_DEP_CFLAGS += -march=i586
|
||||
|
||||
# No -fPIC avoids "-fPIC ignored for target (all code is position independent)"
|
||||
SHRLIB_CFLAGS =
|
||||
SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
|
||||
VALID_BUILDS = Host Ioc
|
||||
|
||||
CMPLR_CLASS = msvc
|
||||
|
||||
# convert UNIX path to native path
|
||||
PATH_FILTER = $(subst /,\\,$(1))
|
||||
|
||||
@@ -120,7 +122,7 @@ OPT_CXXFLAGS_YES = /Ox /GL
|
||||
# /D_CRTDBG_MAP_ALLOC
|
||||
# /RTCsu catch bugs occurring only in optimized code
|
||||
# /DEPICS_FREELIST_DEBUG good for detecting mem mrg bugs
|
||||
OPT_CXXFLAGS_NO = /RTCsu /Zi
|
||||
OPT_CXXFLAGS_NO = /RTCsu /Zi
|
||||
|
||||
# specify object file name and location
|
||||
OBJ_CXXFLAG = /Fo
|
||||
|
||||
@@ -184,6 +184,10 @@ INC += osiUnistd.h
|
||||
INC += osiWireFormat.h
|
||||
INC += osdWireFormat.h
|
||||
INC += osdWireConfig.h
|
||||
INC += epicsAtomic.h
|
||||
INC += epicsAtomicLocked.h
|
||||
INC += epicsAtomicOSD.h
|
||||
INC += epicsAtomicCD.h
|
||||
INC += epicsEndian.h
|
||||
INC += epicsReadline.h
|
||||
INC += epicsMessageQueue.h
|
||||
@@ -202,6 +206,8 @@ SRCS += epicsEvent.cpp
|
||||
SRCS += epicsTime.cpp
|
||||
SRCS += epicsMessageQueue.cpp
|
||||
SRCS += epicsMath.cpp
|
||||
SRCS += epicsAtomicLocked.cpp
|
||||
SRCS += epicsAtomicOSD.cpp
|
||||
|
||||
SRCS += epicsGeneralTime.c
|
||||
SRCS += osiClockTime.c
|
||||
@@ -222,6 +228,7 @@ SRCS += epicsTempFile.cpp
|
||||
SRCS += epicsStdio.c
|
||||
SRCS += osdStdio.c
|
||||
|
||||
|
||||
osdEnv_CFLAGS_WIN32= -U__STDC__
|
||||
|
||||
SRCS += osdThread.c
|
||||
|
||||
@@ -107,6 +107,11 @@ epicsMutexTest_SRCS += epicsMutexTest.cpp
|
||||
testHarness_SRCS += epicsMutexTest.cpp
|
||||
TESTS += epicsMutexTest
|
||||
|
||||
TESTPROD_HOST += epicsAtomicTest
|
||||
epicsAtomicTest_SRCS += epicsAtomicTest.c
|
||||
testHarness_SRCS += epicsAtomicTest.c
|
||||
TESTS += epicsAtomicTest
|
||||
|
||||
TESTPROD_HOST += epicsExceptionTest
|
||||
epicsExceptionTest_SRCS += epicsExceptionTest.cpp
|
||||
testHarness_SRCS += epicsExceptionTest.cpp
|
||||
@@ -177,6 +182,10 @@ fdmgrTest_SRCS += fdmgrTest.c
|
||||
fdmgrTest_LIBS += ca
|
||||
# FIXME: program never exits.
|
||||
|
||||
TESTPROD_HOST += epicsAtomicPerform
|
||||
epicsAtomicPerform_SRCS += epicsAtomicPerform.cpp
|
||||
testHarness_SRCS += epicsAtomicPerform.cpp
|
||||
|
||||
TESTPROD_HOST += cvtFastPerform
|
||||
cvtFastPerform_SRCS += cvtFastPerform.cpp
|
||||
testHarness_SRCS += cvtFastPerform.cpp
|
||||
|
||||
Reference in New Issue
Block a user