Changes to create vxWorks archive libraries and prods.

This commit is contained in:
Janet B. Anderson
2001-06-07 14:26:06 +00:00
parent 06bec39aa7
commit 7874d35daf
52 changed files with 881 additions and 239 deletions

View File

@@ -9,16 +9,22 @@ eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*-
while ($line = <STDIN>)
{
next if ($line =~ /__?GLOBAL_.F.+/);
next if ($line =~ /__?GLOBAL_.I._GLOBAL_.D.+/);
if ($line =~ /__?GLOBAL_.D.+/) {
($adr,$type,$name) = split ' ',$line,3;
chop $name;
$name =~ s/^__/_/;
next if ( $name =~ /^__?GLOBAL_.D.*.\.cpp/ );
next if ( $name =~ /^__?GLOBAL_.D.\.\./ );
@dtorlist = (@dtorlist,$name);
};
if ($line =~ /__?GLOBAL_.I.+/) {
($adr,$type,$name) = split ' ',$line,3;
chop $name;
$name =~ s/^__/_/;
next if ( $name =~ /^__?GLOBAL_.I.*.\.cpp/ );
next if ( $name =~ /^__?GLOBAL_.I.\.\./ );
@ctorlist = (@ctorlist,$name);
};
}

View File

@@ -203,12 +203,13 @@ endif
endif
ifneq ($(strip $(PROD_LIBS_$(OS_CLASS))),)
PROD_LIBS += $(subst -nil-,,$(PROD_LIBS_$(OS_CLASS)))
PROD_LDLIBS += $(subst -nil-,,$(PROD_LIBS_$(OS_CLASS)))
else
ifdef PROD_LIBS_DEFAULT
PROD_LIBS += $(PROD_LIBS_DEFAULT)
PROD_LDLIBS += $(PROD_LIBS_DEFAULT)
endif
endif
PROD_LDLIBS += $(PROD_LIBS)
ifneq ($(strip $(SHRLIB_LIBS_$(OS_CLASS))),)
SHRLIB_LIBS += $(subst -nil-,,$(SHRLIB_LIBS_$(OS_CLASS)))
@@ -219,12 +220,13 @@ endif
endif
ifneq ($(strip $(USR_LIBS_$(OS_CLASS))),)
USR_LIBS += $(subst -nil-,,$(USR_LIBS_$(OS_CLASS)))
USR_LDLIBS += $(subst -nil-,,$(USR_LIBS_$(OS_CLASS)))
else
ifdef USR_LIBS_DEFAULT
USR_LIBS += $(USR_LIBS_DEFAULT)
USR_LDLIBS += $(USR_LIBS_DEFAULT)
endif
endif
USR_LDLIBS += $(USR_LIBS)
#
# concat specific library contents (if defined) to SYS_PROD_LIBS
@@ -241,10 +243,26 @@ endif
# concat specific products
#
ifneq ($(strip $(PROD_$(OS_CLASS))),)
PROD += $(subst -nil-,,$(PROD_$(OS_CLASS)))
PROD+=$(subst -nil-,,$(PROD_$(OS_CLASS)))
else
ifdef PROD_DEFAULT
PROD += $(PROD_DEFAULT)
ifneq (,$(strip $(PROD_DEFAULT)))
PROD+=$(PROD_DEFAULT)
endif
endif
ifneq ($(strip $(PROD_IOC_$(OS_CLASS))),)
PROD_IOC+=$(subst -nil-,,$(PROD_IOC_$(OS_CLASS)))
else
ifneq (,$(strip $(PROD_IOC_DEFAULT)))
PROD_IOC+=$(PROD_IOC_DEFAULT)
endif
endif
ifneq ($(strip $(PROD_HOST_$(OS_CLASS))),)
PROD_HOST+=$(subst -nil-,,$(PROD_HOST_$(OS_CLASS)))
else
ifneq (,$(strip $(PROD_HOST_DEFAULT)))
PROD_HOST+=$(PROD_HOST_DEFAULT)
endif
endif
@@ -252,10 +270,26 @@ endif
# concat specific products
#
ifneq ($(strip $(TESTPROD_$(OS_CLASS))),)
TESTPROD += $(subst -nil-,,$(TESTPROD_$(OS_CLASS)))
TESTPROD+=$(subst -nil-,,$(TESTPROD_$(OS_CLASS)))
else
ifdef TESTPROD_DEFAULT
TESTPROD += $(TESTPROD_DEFAULT)
ifneq (,$(strip $(TESTPROD_DEFAULT)))
TESTPROD+=$(TESTPROD_DEFAULT)
endif
endif
ifneq ($(strip $(TESTPROD_IOC_$(OS_CLASS))),)
TESTPROD_IOC+=$(subst -nil-,,$(TESTPROD_IOC_$(OS_CLASS)))
else
ifneq (,$(strip $(TESTPROD_IOC_DEFAULT)))
TESTPROD_IOC+=$(TESTPROD_IOC_DEFAULT)
endif
endif
ifneq ($(strip $(TESTPROD_HOST_$(OS_CLASS))),)
TESTPROD_HOST+=$(subst -nil-,,$(TESTPROD_HOST_$(OS_CLASS)))
else
ifneq (,$(strip $(TESTPROD_HOST_DEFAULT)))
TESTPROD_HOST+=$(TESTPROD_HOST_DEFAULT)
endif
endif

View File

@@ -31,6 +31,13 @@ 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)
#---------------------------------------------------------------
# For applications and extensions

View File

@@ -150,18 +150,17 @@ USR_INCLUDES =
USR_CFLAGS =
USR_CXXFLAGS =
USR_LDFLAGS =
USR_LDLIBS =
USR_LIBS =
USR_CPPFLAGS =
USR_DBDFLAGS =
USR_ARFLAGS =
# Target specific options
TARGET_INCLUDES = $($(basename $@)_INCLUDES) $($(basename $@)_INCLUDES_$(OS_CLASS))
TARGET_CFLAGS = $($(basename $@)_CFLAGS) $($(basename $@)_CFLAGS_$(OS_CLASS))
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS) $($(basename $@)_CXXFLAGS_$(OS_CLASS))
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS) $($(basename $@)_LDFLAGS_$(OS_CLASS))
TARGET_LDLIBS = $($(basename $@)_LDLIBS) $($(basename $@)_LDLIBS_$(OS_CLASS))
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS) $($(basename $@)_CPPFLAGS_$(OS_CLASS))
TARGET_INCLUDES = $($(basename $@)_INCLUDES_$(OS_CLASS)) $($(basename $@)_INCLUDES)
TARGET_CFLAGS = $($(basename $@)_CFLAGS_$(OS_CLASS)) $($(basename $@)_CFLAGS)
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS_$(OS_CLASS)) $($(basename $@)_CXXFLAGS)
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS_$(OS_CLASS)) $($(basename $@)_LDFLAGS)
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS_$(OS_CLASS)) $($(basename $@)_CPPFLAGS)
# Level of ansi conformance flags
CONFORM_CFLAGS = $(CONFORM_CFLAGS_$(CMPLR))
@@ -204,7 +203,7 @@ CXXFLAGS = $(CONFORM_CXXFLAGS) $(CROSS_CXXFLAGS) $(OPT_CXXFLAGS)\
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(DEPLIB_LDFLAGS)\
$(ARCH_DEP_LDFLAGS) $(STATIC_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS)
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(DEPLIB_LDLIBS) $(STATIC_LDLIBS)\
LDLIBS = $(DEPLIB_LDLIBS) $(STATIC_LDLIBS)\
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(OP_SYS_LDLIBS)
CPPFLAGS += $(CROSS_CPPFLAGS) $(POSIX_CPPFLAGS) $(EPICS_BASE_CPPFLAGS)\
@@ -248,7 +247,7 @@ DEPENDS_SRC_FILES = $(SRC_FILES)
INSTALL_PROD= $(PRODNAME:%= $(INSTALL_BIN)/%)
INSTALL_LIBS= $(LIBNAME:%=$(INSTALL_LIB)/%)
INSTALL_MUNCHS= $(MUNCHNAME:%=$(INSTALL_LIB)/%)
INSTALL_MUNCHS= $(MUNCHNAME:%=$(INSTALL_BIN)/%)
INSTALL_SHRLIBS= $(SHRLIBNAME:%=$(INSTALL_SHRLIB)/%)
INSTALL_DLL_LINK_LIBS=$(DLL_LINK_LIBNAME:%=$(INSTALL_LIB)/%)
INSTALL_TCLLIBS=$(TCLLIBNAME:%=$(INSTALL_TCLLIB)/%)

View File

@@ -49,7 +49,7 @@
# override
#
#CROSS_COMPILER_TARGET_ARCHS=
CROSS_COMPILER_TARGET_ARCHS=vxWorks-68040
CROSS_COMPILER_TARGET_ARCHS=vxWorks-68040 vxWorks-ppc604
# If only a subset of the host architectures perform

View File

@@ -48,18 +48,15 @@ include $(CONFIG)/CONFIG_ADDONS
ifeq ($(findstring Host,$(VALID_BUILDS)),Host)
LIBRARY += $(LIBRARY_HOST)
OBJS += $(OBJS_HOST)
else
PROD = $(PROD_$(OS_CLASS))
TESTPROD = $(TESTPROD_$(OS_CLASS))
ifneq ($(findstring Ioc,$(VALID_BUILDS)),Ioc)
LIBRARY = $(LIBRARY_$(OS_CLASS))
OBJS = $(OBJS_$(OS_CLASS))
endif
PROD += $(PROD_HOST)
TESTPROD += $(TESTPROD_HOST)
endif
ifeq ($(findstring Ioc,$(VALID_BUILDS)),Ioc)
LIBRARY += $(LIBRARY_IOC)
OBJS += $(OBJS_IOC)
PROD += $(PROD_IOC)
TESTPROD += $(TESTPROD_IOC)
endif
#---------------------------------------------------------------
@@ -88,14 +85,18 @@ MakefileInclude: ../Makefile
endif # PROD, TESTPROD, or LIBRARY defined
#---------------------------------------------------------------
# Products and Object libraries
#
PRODTARGETS += $(PRODNAME) $(MUNCHNAME) $(CTDT_SRCS) $(CTDT_OBJS) $(NMS)
#---------------------------------------------------------------
# Libraries
#
LIBTARGETS += $(LIBNAME)
LIBTARGETS += $(MUNCHNAME) $(LIBRARY_CTDT_SRCS) $(LIBRARY_CTDT_OBJS) $(LIBRARY_NM)
ifneq (,$(strip $(LIBTARGETS)))
LIBTARGETS += $(INSTALL_LIBS) $(INSTALL_MUNCHS)
LIBTARGETS += $(INSTALL_LIBS)
ifeq ($(strip $(SHARED_LIBRARIES)),YES)
LIBTARGETS += $(SHRLIBNAME) $(INSTALL_SHRLIBS) $(INSTALL_DLL_LINK_LIBS)
endif # SHARED_LIBRARIES=YES
@@ -120,11 +121,11 @@ install: buildInstall
rebuild: clean install
build: $(OBJSNAME) $(LIBTARGETS) $(PRODNAME) $(TESTPRODNAME) \
build: $(OBJSNAME) $(LIBTARGETS) $(PRODTARGETS) $(TESTPRODNAME) \
$(TARGETS)
buildInstall : \
$(INSTALL_SCRIPTS) $(INSTALL_PROD) \
$(INSTALL_SCRIPTS) $(INSTALL_PROD) $(INSTALL_MUNCHS) \
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX) \
$(INSTALL_OBJS) \
$(INSTALL_DOCS) \
@@ -143,7 +144,7 @@ clean::
*.out MakefileInclude \
$(COMMON_INC)
ifdef MUNCHNAME
@$(RM) $(MUNCHNAME) $(LIBRARY_CTDT_SRCS) $(LIBRARY_CTDT_OBJS) $(LIBRARY_NM)
@$(RM) $(MUNCHNAME) $(CTDT_SRCS) $(CTDT_OBJS) $(NMS)
endif
ifdef BAF
@$(RM) $(PROD_BAF) $(LIB_BAF) *$(BOF)
@@ -184,6 +185,11 @@ $(TESTPRODNAME) $(PRODNAME):%$(EXE): $(PRODUCT_OBJS) $(PROD_RESS) $(PROD_DEPLIBS
@$(RM) $@
$(LINK.cpp)
# object libs for R3.13 vxWorks compatibility only
$(OBJLIBNAME):%$(OBJ): $(OBJLIB_LD_OBJS)
@$(RM) $@
$(OBJLIB_LINK.cpp)
%_ctdt$(OBJ) : %_ctdt.c
@$(RM) $@
$(COMPILE.c) -traditional $<
@@ -282,6 +288,10 @@ $(SHRLIBNAME):$(LIB_PREFIX)%$(SHRLIB_SUFFIX): $(LIBRARY_OBJS) $(LIBRARY_RESS)
$(LINK.shrlib)
# C++ munching for VxWorks
%.nm : %$(EXE)
@$(RM) $@
$(NM) $< > $@
%.nm : %$(OBJ)
@$(RM) $@
$(NM) $< > $@
@@ -290,10 +300,13 @@ $(SHRLIBNAME):$(LIB_PREFIX)%$(SHRLIB_SUFFIX): $(LIBRARY_OBJS) $(LIBRARY_RESS)
@$(RM) $@
$(PERL) $(TOOLS)/munch.pl < $< > $@
$(MUNCHNAME):%.munch : %_ctdt$(OBJ) %.o
$(MUNCHNAME):%.munch : %_ctdt$(OBJ) %$(EXE)
@$(RM) $@
$(LDCMD)
$(OBJLIB_MUNCHNAME):%.munch : %_ctdt$(OBJ) %$(OBJ)
@$(RM) $@
$(LDCMD)
# Ext, app and module rules
CONFIG_APP_INCLUDE: $(wildcard $(TOP)/configure/RELEASE*)

View File

@@ -56,7 +56,7 @@ CXXFLAGS = $(CONFORM_CXXFLAGS) $(CROSS_CXXFLAGS) $(OPT_CXXFLAGS)\
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(DEPLIB_LDFLAGS)\
$(ARCH_DEP_LDFLAGS) $(STATIC_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS)
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(DEPLIB_LDLIBS) $(STATIC_LDLIBS)\
LDLIBS = $(DEPLIB_LDLIBS) $(STATIC_LDLIBS)\
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(OP_SYS_LDLIBS)
CPPFLAGS += $(CROSS_CPPFLAGS) $(POSIX_CPPFLAGS) $(EPICS_BASE_CPPFLAGS)\

View File

@@ -46,7 +46,7 @@ SHRLIB_LDFLAGS += $(sort $(SHRLIB_DEPLIB_DIRS:%=-L%))
#--------------------------------------------------
# Prod: dependancy definitions
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword $(wildcard \
PROD_DEPLIBS = $(foreach lib,$(PROD_LDLIBS) $(USR_LDLIBS),$(firstword $(wildcard \
$($(lib)_DIR)/$(LIB_PREFIX)$(lib).*)))
#--------------------------------------------------
@@ -54,7 +54,7 @@ $($(lib)_DIR)/$(LIB_PREFIX)$(lib).*)))
DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS))
DEPLIB_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-L%))
DEPLIB_LDLIBS = $($*_LIBS:%=-l%) $(PROD_LIBS:%=-l%) $(USR_LIBS:%=-l%)\
DEPLIB_LDLIBS = $($*_LDLIBS:%=-l%) $(PROD_LDLIBS:%=-l%) $(USR_LDLIBS:%=-l%)\
$($*_SYS_LIBS:%=-l%) $(SYS_PROD_LIBS:%=-l%)
#--------------------------------------------------

View File

@@ -19,22 +19,51 @@ OS_CLASS = vxWorks
# Prefix and suffix definitions
EXE =
OBJ = .o
LIB_PREFIX =
LIB_SUFFIX = Library.o
LIB_PREFIX =lib
LIB_SUFFIX = .a
SHRLIB_SUFFIX = .so$(addprefix .,$(SHRLIB_VERSION))
MUNCH_SUFFIX = .munch
#-------------------------------------------------------
# Library definition
# Build both *.o and *.munch libraries
# Library definitions
LIBNAME = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
MUNCHNAME = $(LIBNAME:%$(OBJ)=%$(MUNCH_SUFFIX))
LIBRARY_CTDT_SRCS = $(LIBNAME:%$(OBJ)=%_ctdt.c)
LIBRARY_CTDT_OBJS = $(LIBNAME:%$(OBJ)=%_ctdt$(OBJ))
LIBRARY_NM = $(LIBNAME:%$(OBJ)=%.nm)
#--------------------------------------------------
# Library install location override
INSTALL_LOCATION_LIB=$(INSTALL_LOCATION)/bin
# Prod: dependancy definitions
PROD_DEPLIBS = $(foreach lib,$(PROD_LDLIBS) $(USR_LDLIBS),$(firstword $(wildcard \
$($(lib)_DIR)/$(LIB_PREFIX)$(lib).*)))
#--------------------------------------------------
# Prod: LDFLAGS and LDLIBS definitions
DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS))
DEPLIB_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-L%))
DEPLIB_LDLIBS = $($*_LDLIBS:%=-l%) $(PROD_LDLIBS:%=-l%) $(USR_LDLIBS:%=-l%)\
$($*_SYS_LIBS:%=-l%) $(SYS_PROD_LIBS:%=-l%)
#-------------------------------------------------------
# Prod definitions
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
CTDT_SRCS = $(PRODNAME:%$(EXE)=%_ctdt.c)
CTDT_OBJS = $(PRODNAME:%$(EXE)=%_ctdt$(OBJ))
NMS = $(PRODNAME:%$(EXE)=%.nm)
#-------------------------------------------------------
# R3.13 compatability object library definitions
OBJLIB += $(OBJLIB_$(OS_CLASS))
OBJLIB_SUFFIX = Library.o
OBJLIBNAME = $(addsuffix $(OBJLIB_SUFFIX),$(basename $(OBJLIB)))
OBJLIB_LD_OBJS = $(addsuffix $(OBJ),$(basename $(OBJLIB_SRCS) $(OBJLIB_OBJS)))
PRODTARGETS += $(OBJLIBNAME)
INSTALL_PROD += $(OBJLIBNAME:%=$(INSTALL_BIN)/%)
OBJLIB_MUNCHNAME += $(OBJLIBNAME:%$(OBJ)=%$(MUNCH_SUFFIX))
INSTALL_MUNCHS += $(OBJLIB_MUNCHNAME:%=$(INSTALL_BIN)/%)
PRODTARGETS += $(OBJLIB_MUNCHNAME)
CTDT_SRCS += $(OBJLIBNAME:%$(OBJ)=%_ctdt.c)
CTDT_OBJS += $(OBJLIBNAME:%$(OBJ)=%_ctdt$(OBJ))
NMS += $(OBJLIBNAME:%$(OBJ)=%.nm)
OBJLIB_LINK.cpp = $(LD) -o $@ $(OBJLIB_LD_OBJS)
#--------------------------------------------------
# vxWorks directory definitions
@@ -42,14 +71,6 @@ INSTALL_LOCATION_LIB=$(INSTALL_LOCATION)/bin
GNU_TARGET_INCLUDE_DIR = $(VX_DIR)/target/h
GNU_DIR = $(VX_DIR)/host/$(WIND_HOST_TYPE)
#-------------------------------------------------------
# Command definition overrides
# use ld partial linking not ar to create libraries)
AR = $(LD)
ARFLAGS = -o
RANLIB =
#--------------------------------------------------
# C++ host processing
NM = $(GNU_BIN)/$(CMPLR_PREFIX)nm$(CMPLR_SUFFIX)$(HOSTEXE)
@@ -98,9 +119,10 @@ OSITHREAD_USE_DEFAULT_STACK = NO
#--------------------------------------------------
# Link definitions
LINK.cpp = $(LD) -o $@ $(LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RES) $(LDLIBS)
LINK.cpp = $(LD) -o $@ $(LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS)
#--------------------------------------------------
# Allow site overrides
-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorksCommon
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).vxWorksCommon

View File

@@ -11,6 +11,8 @@ SPARCWORKS = /opt/SUNWspro
CC = $(SPARCWORKS)/bin/cc
CCC = $(SPARCWORKS)/bin/CC
#CC = purify -max-threads=100 $(SPARCWORKS)/bin/cc
#CCC = purify -max-threads=100 $(SPARCWORKS)/bin/CC
# required by sun's C++ compiler
AR = $(CCC) -xar -o
LD = ld -r

View File

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

View File

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

View File

@@ -53,12 +53,13 @@ foreach $name ( @nameList ) {
print OUT "endif\n";
print OUT "endif\n";
print OUT "ifneq (\$(strip \$(${name}_LIBS_\$(OS_CLASS))),)\n";
print OUT "${name}_LIBS+=\$(subst -nil-,,\$(${name}_LIBS_\$(OS_CLASS)))\n";
print OUT "${name}_LDLIBS+=\$(subst -nil-,,\$(${name}_LIBS_\$(OS_CLASS)))\n";
print OUT "else\n";
print OUT "ifdef ${name}_LIBS_DEFAULT\n";
print OUT "${name}_LIBS+=\$(${name}_LIBS_DEFAULT)\n";
print OUT "${name}_LDLIBS+=\$(${name}_LIBS_DEFAULT)\n";
print OUT "endif\n";
print OUT "endif\n";
print OUT "${name}_LDLIBS+=\$(${name}_LIBS)\n";
print OUT "ifneq (\$(strip \$(${name}_SYS_LIBS_\$(OS_CLASS))),)\n";
print OUT "${name}_SYS_LIBS+=\$(subst -nil-,,\$(${name}_SYS_LIBS_\$(OS_CLASS)))\n";
print OUT "else\n";
@@ -76,7 +77,7 @@ 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}_LIBS),\$(firstword \$(wildcard \\\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";
@@ -87,7 +88,7 @@ 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}_LIBS),\$(firstword \$(wildcard \\\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";
@@ -98,7 +99,7 @@ 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}_LIBS),\$(firstword \$(wildcard \\\n";
print OUT "${name}_DEPLIBS=\$(foreach lib, \$(${name}_LDLIBS),\$(firstword \$(wildcard \\\n";
print OUT " \$(\$(lib)_DIR)/\$(LIB_PREFIX)\$(lib)\*)))\n";
print OUT "\$(LIB_PREFIX)${name}\$(LIB_SUFFIX):\$(${name}_OBJSNAME) \$(${name}_RESS)\n";
print OUT "\$(LIB_PREFIX)${name}\$(LIB_SUFFIX):\$(${name}_DEPLIBS)\n";

View File

@@ -15,7 +15,7 @@ while ($line = <STDIN>)
($adr,$type,$name) = split ' ',$line,3;
chop $name;
$name =~ s/^__/_/;
next if ( $name =~ /^__?GLOBAL_.D.*\.cpp/ );
next if ( $name =~ /^__?GLOBAL_.D.*.\.cpp/ );
next if ( $name =~ /^__?GLOBAL_.D.\.\./ );
@dtorlist = (@dtorlist,$name);
};
@@ -23,7 +23,7 @@ while ($line = <STDIN>)
($adr,$type,$name) = split ' ',$line,3;
chop $name;
$name =~ s/^__/_/;
next if ( $name =~ /^__?GLOBAL_.I.*\.cpp/ );
next if ( $name =~ /^__?GLOBAL_.I.*.\.cpp/ );
next if ( $name =~ /^__?GLOBAL_.I.\.\./ );
@ctorlist = (@ctorlist,$name);
};

View File

@@ -20,11 +20,15 @@ asIoc_DLL_LIBS = dbIoc dbStaticIoc ca Com
asHost_DIR=.
PROD_LIBS = asHost dbStaticHost Com
PROD = ascheck
PROD_HOST = ascheck
asHost_RCS_WIN32 = asHost.rc
asIoc_RCS_WIN32 = asIoc.rc
# For R3.13 compatibility only
OBJLIB_vxWorks=asIoc
OBJLIB_SRCS = $(LIBSRCS) $(asIoc_SRCS)
include $(TOP)/configure/RULES
# Extra rule since asLib_lex.c is included in asLib.c

View File

@@ -12,7 +12,7 @@ DBD += bptTypeKdegC.dbd
DBD += bptTypeKdegF.dbd
PROD_LIBS = dbStaticHost Com
PROD += makeBpt
PROD_HOST += makeBpt
include $(TOP)/configure/RULES

View File

@@ -63,9 +63,11 @@ LIBSRCS += limboiiu.cpp
LIBRARY=ca
# For R3.13 compatibility only
OBJLIB_vxWorks=ca
OBJLIB_SRCS = $(LIBSRCS)
# only for WIN32:
# build LIBRARY as a DLL, use the specified def file
LIBTYPE := SHARED
SYS_DLL_LIBS = ws2_32
DLL_LIBS = Com
@@ -80,9 +82,9 @@ ca_DIR = .
Com_DIR = $(INSTALL_LIB)
caRepeater_SRCS = caRepeater.cpp
PROD += caRepeater
PROD_HOST += caRepeater
PROD_DEFAULT += catime acctst caConnTest casw caEventRate
PROD_HOST += catime acctst caConnTest casw caEventRate
OBJS_IOC += catime acctst caConnTest casw caEventRate
catime_SRCS = catimeMain.c catime.c
acctst_SRCS = acctstMain.c acctst.c
@@ -90,8 +92,5 @@ caEventRate_SRCS = caEventRateMain.cpp caEventRate.cpp
casw_SRCS = casw.cpp
caConnTest_SRCS = caConnTestMain.cpp caConnTest.cpp
PROD_vxWorks = catime acctst caConnTest caEventRate
include $(TOP)/configure/RULES

View File

@@ -17,7 +17,7 @@ SYS_PROD_LIBS_WIN32 := ws2_32 advapi32 user32
SRCS += main.cc
SRCS += directoryServer.cc
PROD = caDirServ
PROD_HOST = caDirServ
include $(TOP)/configure/RULES

View File

@@ -22,7 +22,7 @@ SRCS += exScalarPV.cc
SRCS += exAsyncPV.cc
SRCS += exChannel.cc
PROD = excas
PROD_HOST = excas
include $(TOP)/configure/RULES

View File

@@ -69,6 +69,10 @@ DLL_LIBS = dbStaticIoc ca Com
dbIoc_RCS_WIN32 = dbIoc.rc
# For R3.13 compatibility only
OBJLIB_vxWorks=dbIoc
OBJLIB_SRCS = $(LIBSRCS)
include $(TOP)/configure/RULES
$(COMMON_DIR)/dbCommon.h: ../dbCommonRecord.dbd ../dbCommon.dbd $(COMMON_DIR)

View File

@@ -7,7 +7,7 @@ dbIoc_DIR=$(INSTALL_LIB)
dbStaticHost_DIR=$(INSTALL_LIB)
callbackTestHost_SRCS += callbackTestMain.c callbackTest.c
PROD += callbackTestHost
PROD_HOST += callbackTestHost
OBJS_IOC += callbackTest

View File

@@ -23,13 +23,17 @@ dbStaticIoc_SRCS += dbStaticRun.c
LIBRARY_HOST += dbStaticHost
LIBRARY_IOC += dbStaticIoc
# For R3.13 compatibility only
OBJLIB_vxWorks=dbStaticIoc
OBJLIB_SRCS = $(LIBSRCS) $(dbStaticIoc_SRCS)
dbStaticHost_DLL_LIBS = Com
dbStaticIoc_DLL_LIBS = Com
PROD_LIBS := dbStaticHost Com
dbStaticHost_DIR=.
PROD = dbReadTest dbExpand dbToMenuH dbToRecordtypeH
PROD += dbMakeDBDDepends
PROD_HOST = dbReadTest dbExpand dbToMenuH dbToRecordtypeH
PROD_HOST += dbMakeDBDDepends
dbStaticHost_RCS_WIN32 = dbStaticHost.rc
dbStaticIoc_RCS_WIN32 = dbStaticIoc.rc

View File

@@ -17,6 +17,10 @@ HTMLS += dbLoadTemplate.html
dbtoolsIoc_RCS_WIN32 = dbtoolsIoc.rc
# For R3.13 compatibility only
OBJLIB_vxWorks=dbtoolsIoc
OBJLIB_SRCS = $(LIBSRCS)
include $(TOP)/configure/RULES
#

View File

@@ -2,6 +2,8 @@ TOP=../../..
include $(TOP)/configure/CONFIG
SHARED_LIBRARIES = NO
SRCS += devAiSoft.c
SRCS += devAiSoftRaw.c
SRCS += devAoSoft.c
@@ -27,7 +29,10 @@ SRCS += devSiSoft.c
SRCS += devSoSoft.c
SRCS += devWfSoft.c
OBJS_IOC = $(SRCS:%.c=%)
LIBRARY_IOC += softDevIoc
# For R3.13 compatability
OBJS_vxWorks = $(SRCS:%.c=%)
include $(TOP)/configure/RULES

View File

@@ -2,6 +2,8 @@ TOP=../../..
include $(TOP)/configure/CONFIG
SHARED_LIBRARIES = NO
SRCS += devAiTestAsyn.c
SRCS += devAoTestAsyn.c
SRCS += devBiTestAsyn.c
@@ -14,6 +16,9 @@ SRCS += devSiTestAsyn.c
SRCS += devSoTestAsyn.c
SRCS += devWfTestAsyn.c
OBJS_IOC = $(SRCS:%.c=%)
LIBRARY_IOC = testDevIoc
# For R3.13 compatability
OBJS_vxWorks = $(SRCS:%.c=%)
include $(TOP)/configure/RULES

View File

@@ -38,14 +38,13 @@ gdd_SRCS := gdd.cc gddTest.cc gddAppTable.cc gddNewDel.cc \
gddArray.cc gddContainer.cc gddErrorCodes.cc gddUtils.cc \
smartGDDPointer.cc
LIBRARY_HOST = gdd
LIBRARY = gdd
DLL_LIBS = Com
genApps_SRCS = genApps.cc $(AITGENSRCS)
aitGen_SRCS = aitTypes.c aitGen.c
PROD = aitGen genApps
PROD_vxWorks = genApps
PROD_HOST = aitGen genApps
gdd_RCS_WIN32 = gdd.rc

View File

@@ -48,5 +48,9 @@ rsrvIoc_DIR=$(EPICS_BASE_LIB)
iocsh_RCS_WIN32 = iocsh.rc
# For R3.13 compatibility only
OBJLIB_vxWorks=iocsh
OBJLIB_SRCS = $(LIBSRCS)
include $(TOP)/configure/RULES

518
src/iocsh/ioccrf.cpp Normal file
View File

@@ -0,0 +1,518 @@
/* ioccrf.cpp */
/* Author: Marty Kraimer Date: 27APR2000 */
/* Heavily modified by Eric Norum Date: 03MAY2000 */
/* Adapted to C++ by Eric Norum Date: 18DEC2000 */
/********************COPYRIGHT NOTIFICATION**********************************
This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
****************************************************************************/
#include <stddef.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <errno.h>
#include "errlog.h"
#include "dbAccess.h"
#include "epicsThread.h"
#include "epicsMutex.h"
#include "registry.h"
#define epicsExportSharedSymbols
#include "ioccrf.h"
#include "epicsReadline.h"
/*
* File-local information
*/
struct ioccrfCommand {
ioccrfFuncDef const *pFuncDef;
ioccrfCallFunc func;
struct ioccrfCommand *next;
};
static struct ioccrfCommand *ioccrfCommandHead;
static char ioccrfID[] = "ioccrf";
static epicsMutexId commandTableMutex;
static epicsThreadOnceId commandTableOnceId = EPICS_THREAD_ONCE_INIT;
/*
* Set up command table mutex
*/
static void commandTableOnce (void *)
{
commandTableMutex = epicsMutexMustCreate ();
}
/*
* Lock command table mutex
*/
static void
commandTableLock (void)
{
epicsThreadOnce (&commandTableOnceId, commandTableOnce, NULL);
epicsMutexMustLock (commandTableMutex);
}
/*
* Unlock the command table mutex
*/
static void
commandTableUnlock (void)
{
epicsThreadOnce (&commandTableOnceId, commandTableOnce, NULL);
epicsMutexUnlock (commandTableMutex);
}
/*
* Register a command
*/
epicsShareFunc void ioccrfRegister (const ioccrfFuncDef *pioccrfFuncDef, ioccrfCallFunc func)
{
struct ioccrfCommand *l, *p, *n;
int i;
commandTableLock ();
for (l = NULL, p = ioccrfCommandHead ; p != NULL ; l = p, p = p->next) {
i = strcmp (pioccrfFuncDef->name, p->pFuncDef->name);
if (i == 0) {
p->pFuncDef = pioccrfFuncDef;
p->func = func;
commandTableUnlock ();
return;
}
if (i < 0)
break;
}
n = (struct ioccrfCommand *)callocMustSucceed (1, sizeof *n, "ioccrfRegister");
if (!registryAdd(ioccrfID, pioccrfFuncDef->name, (void *)n)) {
free (n);
commandTableUnlock ();
errlogPrintf ("ioccrfRegister failed to add %s\n", pioccrfFuncDef->name);
return;
}
if (l == NULL) {
n->next = ioccrfCommandHead;
ioccrfCommandHead = n;
}
else {
n->next = l->next;
l->next = n;
}
n->pFuncDef = pioccrfFuncDef;
n->func = func;
commandTableUnlock ();
}
/*
* Free storage created by ioccrfRegister
*/
void epicsShareAPI ioccrfFree(void)
{
struct ioccrfCommand *p, *n;
commandTableLock ();
for (p = ioccrfCommandHead ; p != NULL ; ) {
n = p->next;
free (p);
p = n;
}
commandTableUnlock ();
}
/*
* Report an error
*/
static void
showError (const char *filename, int lineno, const char *msg, ...)
{
va_list ap;
va_start (ap, msg);
if (filename)
fprintf (stderr, "%s -- Line %d -- ", filename, lineno);
vfprintf (stderr, msg, ap);
fputc ('\n', stderr);
va_end (ap);
}
static int
cvtArg (const char *filename, int lineno, char *arg, ioccrfArgBuf *argBuf, const ioccrfArg *pioccrfArg)
{
char *endp;
switch (pioccrfArg->type) {
case ioccrfArgInt:
if (arg && *arg) {
argBuf->ival = strtol (arg, &endp, 0);
if (*endp) {
showError (filename, lineno, "Illegal integer `%s'", arg);
return 0;
}
}
else {
argBuf->ival = 0;
}
break;
case ioccrfArgDouble:
if (arg && *arg) {
argBuf->dval = strtod (arg, &endp);
if (*endp) {
showError (filename, lineno, "Illegal double `%s'", arg);
return 0;
}
}
else {
argBuf->dval = 0.0;
}
break;
case ioccrfArgString:
argBuf->sval = arg;
break;
case ioccrfArgPdbbase:
/* Argument must be missing or 0 or pdbbase */
if(!arg || !*arg || (*arg == '0') || (strcmp(arg, "pdbbase") == 0)) {
argBuf->vval = pdbbase;
break;
}
showError (filename, lineno, "Expecting `pdbbase' got `%s'", arg);
return 0;
default:
showError (filename, lineno, "Illegal argument type %d", pioccrfArg->type);
return 0;
}
return 1;
}
/*
* The body of the command interpreter
*/
int epicsShareAPI
ioccrf (const char *pathname)
{
FILE *fp = NULL;
const char *filename = NULL;
int icin, icout;
int c, quote, inword, backslash;
char *line = NULL;
int lineno = 0;
int argc;
char **argv = NULL;
int argvCapacity = 0;
int sep;
const char *prompt;
const char *ifs = " \t(),";
ioccrfArgBuf *argBuf = NULL;
int argBufCapacity = 0;
struct ioccrfCommand *found;
struct ioccrfFuncDef const *pioccrfFuncDef;
/*
* See if command interpreter is interactive
*/
if ((pathname == NULL) || (strcmp (pathname, "<telnet>") == 0)) {
const char *historySize;
if ((prompt = getenv ("IOCSH_PS1")) == NULL)
prompt = "epics> ";
if (((historySize = getenv ("IOCSH_HISTSIZE")) == NULL)
&& ((historySize = getenv ("HISTSIZE")) == NULL))
historySize = "20";
if (pathname == NULL) {
epicsStifleHistory (atoi (historySize));
/*
* FIXME: Could enable tab-completion of commands here
*/
epicsBindKeys();
}
else {
fp = stdin;
}
}
else {
fp = fopen (pathname, "r");
if (fp == NULL) {
fprintf (stderr, "Can't open %s: %s\n", pathname, strerror (errno));
return -1;
}
if ((filename = strrchr (pathname, '/')) == NULL)
filename = pathname;
else
filename++;
prompt = NULL;
}
/*
* Read commands till EOF or exit
*/
for (;;) {
/*
* Get a line
*/
lineno++;
free (line);
line = epicsReadline (fp, prompt);
if (line == NULL)
break;
/*
* If using readline, add non-blank lines to history
*/
if ((fp == NULL) && *line)
epicsAddHistory (line);
/*
* Ignore comment lines
*/
if (*line == '#')
continue;
/*
* Break line into words
*/
icout = icin = 0;
inword = 0;
quote = EOF;
backslash = 0;
argc = 0;
for (;;) {
if (argc >= argvCapacity) {
char **av;
argvCapacity += 50;
av = (char **)realloc (argv, argvCapacity * sizeof *argv);
if (av == NULL) {
printf ("Out of memory!\n");
argc = -1;
break;
}
argv = av;
}
c = line[icin++];
if (c == '\0')
break;
if ((quote == EOF) && !backslash && (strchr (ifs, c)))
sep = 1;
else
sep = 0;
if ((quote == EOF) && (c == '\\') && !backslash) {
backslash = 1;
continue;
}
if (inword) {
if (c == quote) {
quote = EOF;
}
else {
if ((quote == EOF) && !backslash) {
if (sep) {
inword = 0;
line[icout++] = '\0';
}
else if ((c == '"') || (c == '\'')) {
quote = c;
}
else {
line[icout++] = c;
}
}
else {
line[icout++] = c;
}
}
}
else {
if (!sep) {
if (((c == '"') || (c == '\'')) && !backslash)
quote = c;
argv[argc++] = line + icout;
if (quote == EOF)
line[icout++] = c;
inword = 1;
}
}
backslash = 0;
}
if (argc < 0)
break;
if (quote != EOF) {
showError (filename, lineno, "Unbalanced quote.");
continue;
}
if (backslash) {
showError (filename, lineno, "Trailing backslash.");
continue;
}
if (inword)
line[icout++] = '\0';
argv[argc] = NULL;
/*
* Look up command
*/
if (argc) {
/*
* Special command?
*/
if (strncmp (argv[0], "exit", 4) == 0)
break;
if ((strcmp (argv[0], "?") == 0)
|| (strncmp (argv[0], "help", 4) == 0)) {
if (argc == 1) {
int l, col = 0;
printf ("Type `help command_name' to get more information about a particular command.\n");
commandTableLock ();
for (found = ioccrfCommandHead ; found != NULL ; found = found->next) {
pioccrfFuncDef = found->pFuncDef;
l = strlen (pioccrfFuncDef->name);
if ((l + col) >= 79) {
putchar ('\n');
col = 0;
}
fputs (pioccrfFuncDef->name, stdout);
col += l;
if (col >= 64) {
putchar ('\n');
col = 0;
}
else {
do {
putchar (' ');
col++;
} while ((col % 16) != 0);
}
}
if (col)
putchar ('\n');
commandTableUnlock ();
}
else {
for (int i = 1 ; i < argc ; i++) {
found = (ioccrfCommand *)registryFind (ioccrfID, argv[i]);
if (found == NULL) {
printf ("%s -- no such command.\n", argv[i]);
}
else {
pioccrfFuncDef = found->pFuncDef;
fputs (pioccrfFuncDef->name, stdout);
for (int a = 0 ; a < pioccrfFuncDef->nargs ; a++) {
const char *cp = pioccrfFuncDef->arg[a]->name;
if ((pioccrfFuncDef->arg[a]->type == ioccrfArgArgv)
|| (strchr (cp, ' ') == NULL)) {
printf (" %s", cp);
}
else {
printf (" '%s'", cp);
}
}
putchar ('\n');
}
}
}
continue;
}
/*
* Look up command
*/
found = (ioccrfCommand *)registryFind (ioccrfID, argv[0]);
if (!found) {
showError (filename, lineno, "Command %s not found.", argv[0]);
continue;
}
pioccrfFuncDef = found->pFuncDef;
/*
* Process arguments and call function
*/
for (int arg = 0 ; ; arg++) {
if (arg == pioccrfFuncDef->nargs) {
(*found->func)(argBuf);
break;
}
if (arg >= argBufCapacity) {
void *np;
argBufCapacity += 20;
np = realloc (argBuf, argBufCapacity * sizeof *argBuf);
if (np == NULL) {
fprintf (stderr, "Out of memory!\n");
argBufCapacity -= 20;
break;
}
argBuf = (ioccrfArgBuf *)np;
}
if (pioccrfFuncDef->arg[arg]->type == ioccrfArgArgv) {
argBuf[arg].aval.ac = argc-arg;
argBuf[arg].aval.av = argv+arg;
(*found->func)(argBuf);
break;
}
if (!cvtArg (filename, lineno,
((arg < argc) ? argv[arg+1] : NULL),
&argBuf[arg], pioccrfFuncDef->arg[arg]))
break;
}
}
}
if (fp && (fp != stdin))
fclose (fp);
free (line);
free (argv);
free (argBuf);
return 0;
}
/*
* Dummy internal commands -- register and install in command table
* so they show up in the help display
*/
extern "C" {
/* help */
static const ioccrfArg helpArg0 = { "command",ioccrfArgInt};
static const ioccrfArg *helpArgs[1] = {&helpArg0};
static const ioccrfFuncDef helpFuncDef =
{"help",1,helpArgs};
static void helpCallFunc(const ioccrfArgBuf *)
{
}
/* comment */
static const ioccrfArg commentArg0 = { "newline-terminated comment",ioccrfArgArgv};
static const ioccrfArg *commentArgs[1] = {&commentArg0};
static const ioccrfFuncDef commentFuncDef = {"#",1,commentArgs};
static void commentCallFunc(const ioccrfArgBuf *)
{
}
/* exit */
static const ioccrfFuncDef exitFuncDef =
{"exit",0,0};
static void exitCallFunc(const ioccrfArgBuf *)
{
}
static void localRegister (void)
{
ioccrfRegister(&helpFuncDef,helpCallFunc);
ioccrfRegister(&commentFuncDef,helpCallFunc);
ioccrfRegister(&exitFuncDef,exitCallFunc);
}
} /* extern "C" */
/*
* Register commands on application startup
*/
#include "ioccrfRegisterCommon.h"
class IoccrfRegister {
public:
IoccrfRegister() { localRegister(); ioccrfRegisterCommon(); }
};
static IoccrfRegister ioccrfRegisterObj;

View File

@@ -0,0 +1,37 @@
/* registerRecordDeviceDriverRegister.c */
/* Author: Marty Kraimer Date: 04MAY2000 */
/********************COPYRIGHT NOTIFICATION**********************************
This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
****************************************************************************/
#include <stddef.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include "dbAccess.h"
#define epicsExportSharedSymbols
#include "ioccrf.h"
#include "registerRecordDeviceDriverRegister.h"
/* registerRecordDeviceDriver */
static const ioccrfArg registerRecordDeviceDriverArg0 =
{ "pdbbase",ioccrfArgPdbbase};
static const ioccrfArg *registerRecordDeviceDriverArgs[1] =
{&registerRecordDeviceDriverArg0};
static const ioccrfFuncDef registerRecordDeviceDriverFuncDef =
{"registerRecordDeviceDriver",1,registerRecordDeviceDriverArgs};
static void registerRecordDeviceDriverCallFunc(const ioccrfArgBuf *args)
{
registerRecordDeviceDriver(pdbbase);
}
epicsShareFunc void epicsShareAPI registerRecordDeviceDriverRegister(void)
{
printf("registerRecordDeviceDriverRegister entered\n");
ioccrfRegister(
&registerRecordDeviceDriverFuncDef,registerRecordDeviceDriverCallFunc);
}

View File

@@ -211,6 +211,10 @@ SRCS_vxWorks += iocClock.c
LIBRARY=Com
SYS_DLL_LIBS := ws2_32 advapi32 user32
# For R3.13 compatibility only
OBJLIB_vxWorks=Com
OBJLIB_SRCS = $(SRCS)
#Com_RCS_WIN32 = Com.rc
# libs needed for PROD and TESTPRODUCT
@@ -219,9 +223,9 @@ SYS_PROD_LIBS_WIN32 := ws2_32 advapi32
#USR_CFLAGS += -DTS_TEST
#TESTPROD_SRCS=tsSubr.c
#TESTPROD=testtsLib
#TESTPROD=envtest
#TESTPROD=osiTimeTest fdManagerTest
#TESTPROD_HOST=testtsLib
#TESTPROD_HOST=envtest
#TESTPROD_HOST=osiTimeTest fdManagerTest
# for bldErrSymTbl:
#

View File

@@ -4,35 +4,35 @@ TOP=../../../..
include $(TOP)/configure/CONFIG
resourceLibTest_SRCS += resourceLibTest.cc
PROD += resourceLibTest
PROD_HOST += resourceLibTest
OBJS_IOC += resourceLibTest
tsDLListBench_SRCS += tsDLListBench.cc
PROD += tsDLListBench
PROD_HOST += tsDLListBench
OBJS_IOC += tsDLListBench
tsDLListTest_SRCS += tsDLListTest.cc
PROD += tsDLListTest
PROD_HOST += tsDLListTest
OBJS_IOC += tsDLListTest
tsSLListBench_SRCS += tsSLListBench.cc
PROD += tsSLListBench
PROD_HOST += tsSLListBench
OBJS_IOC += tsSLListBench
tsSLListTest_SRCS += tsSLListTest.cc
PROD += tsSLListTest
PROD_HOST += tsSLListTest
OBJS_IOC += tsSLListTest
minmaxTest_SRCS += minmaxTest.cc
PROD += minmaxTest
PROD_HOST += minmaxTest
OBJS_IOC += minmaxTest
tsBTreeTest_SRCS += tsBTreeTest.cc
PROD += tsBTreeTest
PROD_HOST += tsBTreeTest
OBJS_IOC += tsBTreeTest
tsBTreeBench_SRCS += tsBTreeBench.cc
PROD += tsBTreeBench
PROD_HOST += tsBTreeBench
OBJS_IOC += tsBTreeBench
PROD_LIBS = Com

View File

@@ -14,4 +14,4 @@
* 505 665 1831
*/
#include <unistd.h>
#include <unistd.h>

View File

@@ -7,43 +7,43 @@ PROD_LIBS += Com
USR_LIBS_hpux += cma
#epicsListTest_SRCS += epicsListTest.cpp
#PROD += epicsListTest
#PROD_HOST += epicsListTest
#OBJS_IOC += epicsListTest
epicsAlgorithmTest_SRCS += epicsAlgorithmTest.cpp
PROD += epicsAlgorithmTest
PROD_HOST += epicsAlgorithmTest
OBJS_IOC += epicsAlgorithmTest
epicsTimeTestHost_SRCS += epicsTimeTestMain.cpp epicsTimeTest.cpp
PROD += epicsTimeTestHost
PROD_HOST += epicsTimeTestHost
OBJS_IOC += epicsTimeTest
epicsThreadTestHost_SRCS += epicsThreadTestMain.cpp epicsThreadTest.cpp
PROD += epicsThreadTestHost
PROD_HOST += epicsThreadTestHost
OBJS_IOC += epicsThreadTest
epicsThreadPrivateTestHost_SRCS += epicsThreadPrivateTestMain.cpp epicsThreadPrivateTest.cpp
PROD += epicsThreadPrivateTestHost
PROD_HOST += epicsThreadPrivateTestHost
OBJS_IOC += epicsThreadPrivateTest
epicsTimerTestHost_SRCS += epicsTimerTestMain.cpp epicsTimerTest.cpp
PROD += epicsTimerTestHost
PROD_HOST += epicsTimerTestHost
OBJS_IOC += epicsTimerTest
ringPointerTestHost_SRCS += ringPointerTestMain.c ringPointerTest.c
PROD += ringPointerTestHost
PROD_HOST += ringPointerTestHost
OBJS_IOC += ringPointerTest
epicsEventTestHost_SRCS += epicsEventTestMain.cpp epicsEventTest.cpp
PROD += epicsEventTestHost
PROD_HOST += epicsEventTestHost
OBJS_IOC += epicsEventTest
epicsMutexTestHost_SRCS += epicsMutexTestMain.cpp epicsMutexTest.cpp
PROD += epicsMutexTestHost
PROD_HOST += epicsMutexTestHost
OBJS_IOC += epicsMutexTest
#fdmgrTest_SRCS += fdmgrTest.c
#PROD += fdmgrTest
#PROD_HOST += fdmgrTest
include $(TOP)/configure/RULES

View File

@@ -21,7 +21,6 @@ TEMPLATES += top/exampleApp/Db/dbExample1.db
TEMPLATES += top/exampleApp/Db/dbExample2.db
TEMPLATES += top/exampleApp/src/Makefile
TEMPLATES += top/exampleApp/src/base.dbd
TEMPLATES += top/exampleApp/src/baseLIBOBJS
TEMPLATES += top/exampleApp/src/devXxxSoft.c
TEMPLATES += top/exampleApp/src/xxxRecord.c
TEMPLATES += top/exampleApp/src/caExample.c

View File

@@ -6,5 +6,7 @@
EPICS_BASE=_EPICS_BASE_
TEMPLATE_TOP=_TEMPLATE_TOP_
MSI=/home/epics/CLS/epics/extensions/bin/$(EPICS_HOST_ARCH)/msi
#SNCSEQ=<full path to sequencer>
#SNCSEQ=$(EPICS_BASE)/../modules/soft/seq
# If msi is in extensions bin define EPICS_EXTENSIONS
# else define MSI = <full path to msi executable>
#EPICS_EXTENSIONS=$(EPICS_BASE)/../extensions

View File

@@ -7,7 +7,7 @@ include $(TOP)/configure/CONFIG
#USR_CFLAGS +=
PROD += caExample
PROD_HOST += caExample
caExample_LIBS += ca
caExample_LIBS += Com
@@ -25,31 +25,17 @@ DBD += example.dbd
#=============================
LIBRARY_vxWorks = example
PROD_RTEMS = example
PROD += example
example_LIBS += iocsh
example_LIBS += miscIoc
example_LIBS += rsrvIoc
example_LIBS += dbtoolsIoc
example_LIBS += asIoc
example_LIBS += dbIoc
example_LIBS += registryIoc
example_LIBS += dbStaticIoc
example_LIBS += ca
example_LIBS += Com
PROD_IOC = example
example_SRCS += xxxRecord.c
example_SRCS += devXxxSoft.c
example_SRCS += caMonitor.c
# <name>_registerRecordDeviceDriver.cpp will be created from <name>.dbd
example_SRCS_DEFAULT += example_registerRecordDeviceDriver.cpp
example_SRCS += example_registerRecordDeviceDriver.cpp
example_SRCS_DEFAULT += exampleMain.c
example_SRCS_vxWorks += -nil-
example_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary
example_LDFLAGS_vxWorks += -u _iocInit
#The following adds drvTS support for vxWorks
#example_OBJS_vxWorks += $(EPICS_BASE_BIN)/drvTS
@@ -61,15 +47,13 @@ example_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary
#The following builds sncExample as a component of example
#example_SRCS += sncExample.stt
#example_OBJS_vxWorks += $(SNCSEQ_BIN)/seqLibrary
#example_OBJS_vxWorks += $(SNCSEQ_BIN)/pvLibrary
#seq_DIR = $(SNCSEQ_LIB)
#pv_DIR = $(SNCSEQ_LIB)
#example_LIBS += seq
#example_LIBS += pv
#seq_DIR = $(SNCSEQ_LIB)
#pv_DIR = $(SNCSEQ_LIB)
#The following builds sncExample as a standalone application
#PROD += sncExample
#PROD_HOST += sncExample
#sncExample_SNCFLAGS += +m
#sncExample_SRCS += sncExample.stt
#seq_DIR = $(SNCSEQ_LIB)
@@ -87,6 +71,25 @@ example_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary
#sncExample_LIBS += ca
#sncExample_LIBS += Com
# Use win32 object libs for registered support
example_LIBS_win32 += recIocObj
example_LIBS_win32 += softDevIocObj
example_LIBS_win32 += testDevIocObj
example_LIBS_DEFAULT += recIoc
example_LIBS_DEFAULT += softDevIoc
example_LIBS_DEFAULT += testDevIoc
example_LIBS += iocsh
example_LIBS += miscIoc
example_LIBS += rsrvIoc
example_LIBS += dbtoolsIoc
example_LIBS += asIoc
example_LIBS += dbIoc
example_LIBS += registryIoc
example_LIBS += dbStaticIoc
example_LIBS += ca
example_LIBS += Com
-include ../baseLIBOBJS
example_OBJS += $(LIBOBJS)

View File

@@ -1,63 +0,0 @@
LIBOBJS += $(EPICS_BASE_BIN)/aiRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/aoRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/biRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/boRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/calcRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/calcoutRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/compressRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/dfanoutRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/eventRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/fanoutRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/longinRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/longoutRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/mbbiRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/mbbiDirectRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/mbboRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/mbboDirectRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/permissiveRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/selRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/seqRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/stateRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/stringinRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/stringoutRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/subRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/subArrayRecord.o
LIBOBJS += $(EPICS_BASE_BIN)/waveformRecord.o
#
# Device Support
#
LIBOBJS += $(EPICS_BASE_BIN)/devAiSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devAiSoftRaw.o
LIBOBJS += $(EPICS_BASE_BIN)/devAiTestAsyn.o
LIBOBJS += $(EPICS_BASE_BIN)/devAoSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devAoSoftRaw.o
LIBOBJS += $(EPICS_BASE_BIN)/devAoTestAsyn.o
LIBOBJS += $(EPICS_BASE_BIN)/devBiSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devBiSoftRaw.o
LIBOBJS += $(EPICS_BASE_BIN)/devBiTestAsyn.o
LIBOBJS += $(EPICS_BASE_BIN)/devBoSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devBoSoftRaw.o
LIBOBJS += $(EPICS_BASE_BIN)/devBoTestAsyn.o
LIBOBJS += $(EPICS_BASE_BIN)/devEventSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devEventTestIoEvent.o
LIBOBJS += $(EPICS_BASE_BIN)/devHistogramSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devHistogramTestAsyn.o
LIBOBJS += $(EPICS_BASE_BIN)/devLiSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devLoSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devMbbiDirectSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devMbbiDirectSoftRaw.o
LIBOBJS += $(EPICS_BASE_BIN)/devMbbiSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devMbbiSoftRaw.o
LIBOBJS += $(EPICS_BASE_BIN)/devMbbiTestAsyn.o
LIBOBJS += $(EPICS_BASE_BIN)/devMbboDirectSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devMbboDirectSoftRaw.o
LIBOBJS += $(EPICS_BASE_BIN)/devMbboSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devMbboSoftRaw.o
LIBOBJS += $(EPICS_BASE_BIN)/devMbboTestAsyn.o
LIBOBJS += $(EPICS_BASE_BIN)/devSASoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devSiSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devSiTestAsyn.o
LIBOBJS += $(EPICS_BASE_BIN)/devSoSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devSoTestAsyn.o
LIBOBJS += $(EPICS_BASE_BIN)/devWfSoft.o
LIBOBJS += $(EPICS_BASE_BIN)/devWfTestAsyn.o

View File

@@ -14,7 +14,7 @@
#putenv("TIMEZONE=US/Central::360:040102:100102")
cd topbin
ld < exampleLibrary.munch
ld < example.munch
#The following uses drvTS for vxWorks IF it was included in src/Makefile
#TSinit

View File

@@ -9,7 +9,7 @@ PROD_LIBS += ca
PROD_LIBS += Db
PROD_LIBS += Com
#PROD =
#PROD_HOST =
include $(TOP)/configure/RULES
#----------------------------------------

View File

@@ -1,7 +1,7 @@
TOP=../..
include $(TOP)/configure/CONFIG
PROD = caExample
PROD_HOST = caExample
caExample_SRCS += caExample.cc
#caExample_CFLAGS +=
#caExample_LDFLAGS +=

View File

@@ -19,5 +19,9 @@ registryIoc_DIR=$(EPICS_BASE_LIB)
misc_RCS_WIN32 = misc.rc
# For R3.13 compatibility only
OBJLIB_vxWorks=miscIoc
OBJLIB_SRCS = $(LIBSRCS)
include $(TOP)/configure/RULES

View File

@@ -1,6 +1,8 @@
TOP=../..
include $(TOP)/configure/CONFIG
SHARED_LIBRARIES = NO
INC += egDefs.h
INC += erDefs.h
INC += ereventDefs.h
@@ -38,38 +40,43 @@ DBDINC += subRecord
DBDINC += subArrayRecord
DBDINC += waveformRecord
OBJS_IOC += aaiRecord
OBJS_IOC += aaoRecord
OBJS_IOC += aiRecord
OBJS_IOC += aoRecord
OBJS_IOC += biRecord
OBJS_IOC += boRecord
OBJS_IOC += calcRecord
OBJS_IOC += calcoutRecord
OBJS_IOC += compressRecord
OBJS_IOC += dfanoutRecord
OBJS_IOC += egRecord
OBJS_IOC += egeventRecord
OBJS_IOC += erRecord
OBJS_IOC += ereventRecord
OBJS_IOC += eventRecord
OBJS_IOC += fanoutRecord
OBJS_IOC += histogramRecord
OBJS_IOC += longinRecord
OBJS_IOC += longoutRecord
OBJS_IOC += mbbiRecord
OBJS_IOC += mbbiDirectRecord
OBJS_IOC += mbboRecord
OBJS_IOC += mbboDirectRecord
OBJS_IOC += permissiveRecord
OBJS_IOC += selRecord
OBJS_IOC += seqRecord
OBJS_IOC += stateRecord
OBJS_IOC += stringinRecord
OBJS_IOC += stringoutRecord
OBJS_IOC += subRecord
OBJS_IOC += subArrayRecord
OBJS_IOC += waveformRecord
LIBSRCS += aaiRecord.c
LIBSRCS += aaoRecord.c
LIBSRCS += aiRecord.c
LIBSRCS += aoRecord.c
LIBSRCS += biRecord.c
LIBSRCS += boRecord.c
LIBSRCS += calcRecord.c
LIBSRCS += calcoutRecord.c
LIBSRCS += compressRecord.c
LIBSRCS += dfanoutRecord.c
LIBSRCS += egRecord.c
LIBSRCS += egeventRecord.c
LIBSRCS += erRecord.c
LIBSRCS += ereventRecord.c
LIBSRCS += eventRecord.c
LIBSRCS += fanoutRecord.c
LIBSRCS += histogramRecord.c
LIBSRCS += longinRecord.c
LIBSRCS += longoutRecord.c
LIBSRCS += mbbiRecord.c
LIBSRCS += mbbiDirectRecord.c
LIBSRCS += mbboRecord.c
LIBSRCS += mbboDirectRecord.c
LIBSRCS += permissiveRecord.c
LIBSRCS += selRecord.c
LIBSRCS += seqRecord.c
LIBSRCS += stateRecord.c
LIBSRCS += stringinRecord.c
LIBSRCS += stringoutRecord.c
LIBSRCS += subRecord.c
LIBSRCS += subArrayRecord.c
LIBSRCS += waveformRecord.c
LIBRARY_IOC += recIoc
# For R3.13 compatability
OBJS_vxWorks = $(LIBSRCS:%.c=%)
include $(TOP)/configure/RULES

View File

@@ -32,5 +32,8 @@ registryIoc_DLL_LIBS = Com
registryIoc_RCS_WIN32 = registryIoc.rc
OBJLIB_vxWorks = registryIoc
OBJLIB_SRCS = $(LIBSRCS)
include $(TOP)/configure/RULES

View File

@@ -199,5 +199,7 @@ class IoccrfReg {
public:
IoccrfReg() { iocshRegister(&registerRecordDeviceDriverFuncDef,registerRecordDeviceDriverCallFunc);}
};
#if !defined(__GNUC__) || !(__GNUC__<2 || (__GNUC__==2 && __GNUC_MINOR__<=95))
namespace { IoccrfReg iocshReg; }
#endif
END

View File

@@ -20,4 +20,8 @@ SYS_DLL_LIBS := ws2_32
rsrvIoc_RCS_WIN32 = rsrvIoc.rc
# For R3.13 compatibility only
OBJLIB_vxWorks=rsrvIoc
OBJLIB_SRCS = $(LIBSRCS)
include $(TOP)/configure/RULES

View File

@@ -16,7 +16,7 @@ SRCS += symtab.c
SRCS += verbose.c
SRCS += warshall.c
PROD = antelope
PROD_HOST = antelope
include $(TOP)/configure/RULES

View File

@@ -35,7 +35,7 @@ SRCS += sym.c
SRCS += tblcmp.c
SRCS += parse.c
PROD = e_flex
PROD_HOST = e_flex
include $(TOP)/configure/RULES

View File

@@ -7,8 +7,8 @@ PROD_LIBS = ca Com
#
# Added winmm user32 for the non-dll build
#
PROD_DEFAULT = ca_test iocLogServer startCArepeater
PROD_WIN32 = ca_test iocLogServer
PROD_HOST_DEFAULT = ca_test iocLogServer startCArepeater
PROD_HOST_WIN32 = ca_test iocLogServer
SYS_PROD_LIBS_WIN32 = ws2_32 advapi32 user32
ca_test_SRCS = ca_test_main.c ca_test.c

View File

@@ -5,12 +5,15 @@ include $(TOP)/configure/CONFIG
INC += drvTS.h
INC += devLib.h
vxDb_SRCS += devLib.c
vxDb_SRCS += devLibVxWorks.c
SRCS += devLib.c
SRCS += devLibVxWorks.c
OBJS_vxWorks += drvTS
LIBRARY_vxWorks = vxDb
OBJLIB_vxWorks = vxDb
OBJLIB_SRCS = $(SRCS)
include $(TOP)/configure/RULES

View File

@@ -16,5 +16,8 @@ OBJS_vxWorks += $(SRCS:%.c=%)
LIBRARY_vxWorks += devLibOpt
OBJLIB_vxWorks += devLibOpt
OBJLIB_SRCS = $(SRCS)
include $(TOP)/configure/RULES

View File

@@ -2,8 +2,6 @@ TOP=../../..
include $(TOP)/configure/CONFIG
LIBRARY_vxWorks = iocCore
iocCore_OBJS += $(INSTALL_BIN)/ComLibrary.o
iocCore_OBJS += $(INSTALL_BIN)/caLibrary.o
iocCore_OBJS += $(INSTALL_BIN)/dbStaticIocLibrary.o
@@ -18,5 +16,8 @@ iocCore_OBJS += $(INSTALL_BIN)/vxDbLibrary.o
iocCore_OBJS += $(INSTALL_BIN)/iocshLibrary.o
iocCore_SRCS += registerRecordDeviceDriver.c
OBJLIB_vxWorks = iocCore
OBJLIB_OBJS += $(iocCore_OBJS)
include $(TOP)/configure/RULES

View File

@@ -4,9 +4,12 @@ include $(TOP)/configure/CONFIG
INC += epicsDynLink.h
vxCom_SRCS += veclist.c
vxCom_SRCS += epicsDynLink.c
SRCS += veclist.c
SRCS += epicsDynLink.c
LIBRARY_vxWorks += vxCom
OBJLIB_vxWorks += vxCom
OBJLIB_SRCS += $(SRCS)
include $(TOP)/configure/RULES