Compare commits

...

8 Commits
test ... 2.8.21

Author SHA1 Message Date
51e4a0749d make "ifdef CALC" also consider SYNAPPS variable
change the ifdefs to the same expression used in CONFIG_STREAM
2021-11-05 11:42:48 +01:00
4cdace3ffe make "stream" in DBD and other file names explicit
The LIBRARY_* variables may specify *multiple* libraries.
(So they can't be used as part of file names.)
2021-11-05 11:42:48 +01:00
d19b16d096 fix strncpy warning 2021-11-05 11:21:21 +01:00
b1e0d63c6b Canonical handling of user include files 2021-11-05 10:14:21 +01:00
d1b43b879c strncasecmp does exist when compiling for Windows on MinGW 2021-11-05 10:13:58 +01:00
6b0ee5e946 Conditionally use tirpc if defined 2021-09-21 13:01:32 +01:00
a0d1b35862 Add preprocessor definition for static PCRE 2021-09-21 12:58:20 +01:00
dfbd308d46 32 bit Windows needs wrapper for calling convention reasons 2021-09-01 10:13:58 +02:00
9 changed files with 114 additions and 61 deletions

View File

@ -1,14 +1,29 @@
#CONFIG
include $(TOP)/configure/CONFIG_APP
# Add any changes to make definitions here
# CONFIG - Load build configuration data
#
# Do not make changes to this file!
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040
#CROSS_COMPILER_TARGET_ARCHS =
# Allow user to override where the build rules come from
RULES = $(EPICS_BASE)
# Use this when your IOC and the host use different paths
# to access the application. Typically this will be
# used with the Microsoft FTP server or with NFS mounts. Use
# is indicated by failure of the cdCommands script on
# vxWorks. You must rebuild in the iocBoot directory
# before this takes effect.
#IOCS_APPL_TOP = <the top of the application as seen by the IOC>
# RELEASE files point to other application tops
include $(TOP)/configure/RELEASE
-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH)
-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).Common
ifdef T_A
-include $(TOP)/configure/RELEASE.Common.$(T_A)
-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
endif
CONFIG = $(RULES)/configure
include $(CONFIG)/CONFIG
# Override the Base definition:
INSTALL_LOCATION = $(TOP)
# CONFIG_SITE files contain other build configuration settings
include $(TOP)/configure/CONFIG_SITE
-include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
ifdef T_A
-include $(TOP)/configure/CONFIG_SITE.Common.$(T_A)
-include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
endif

View File

@ -1,26 +0,0 @@
# CONFIG_APP
include $(TOP)/configure/RELEASE
-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH)
-include $(TOP)/configure/RELEASE.Common.$(T_A)
-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
ifneq ($(wildcard $(EPICS_BASE)/configure),)
CONFIG=$(EPICS_BASE)/configure
else
CONFIG=$(EPICS_BASE)/config
DIRS += config
endif
include $(CONFIG)/CONFIG
INSTALL_LOCATION = $(TOP)
ifdef INSTALL_LOCATION_APP
INSTALL_LOCATION = $(INSTALL_LOCATION_APP)
endif
ifdef T_A
-include $(TOP)/configure/O.$(T_A)/CONFIG_APP_INCLUDE
endif
# dbst based database optimization (default: NO)
DB_OPT = NO

40
configure/CONFIG_SITE Normal file
View File

@ -0,0 +1,40 @@
# CONFIG_SITE
-include $(SUPPORT)/configure/CONFIG_SITE
# Make any application-specific changes to the EPICS build
# configuration variables in this file.
#
# Host/target specific settings can be specified in files named
# CONFIG_SITE.$(EPICS_HOST_ARCH).Common
# CONFIG_SITE.Common.$(T_A)
# CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
# CHECK_RELEASE controls the consistency checking of the support
# applications pointed to by the RELEASE* files.
# Normally CHECK_RELEASE should be set to YES.
# Set CHECK_RELEASE to NO to disable checking completely.
# Set CHECK_RELEASE to WARN to perform consistency checking but
# continue building even if conflicts are found.
CHECK_RELEASE = YES
# Set this when you only want to compile this application
# for a subset of the cross-compiled target architectures
# that Base is built for.
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32
# To install files into a location other than $(TOP) define
# INSTALL_LOCATION here.
#INSTALL_LOCATION=</absolute/path/to/install/top>
# Set this when the IOC and build host use different paths
# to the install location. This may be needed to boot from
# a Microsoft FTP server say, or on some NFS configurations.
#IOCS_APPL_TOP = </IOC's/absolute/path/to/install/top>
# These allow developers to override the CONFIG_SITE variable
# settings without having to modify the configure/CONFIG_SITE
# file itself.
-include $(TOP)/../CONFIG_SITE.local
-include $(TOP)/../configure/CONFIG_SITE.local
-include $(TOP)/configure/CONFIG_SITE.local

View File

@ -2,7 +2,7 @@
TOP=..
include $(TOP)/configure/CONFIG_APP
include $(TOP)/configure/CONFIG
# Set the following to NO to disable consistency checking of
# the support applications defined in $(TOP)/configure/RELEASE

View File

@ -45,14 +45,20 @@
#endif
#include <ctype.h>
#if defined(vxWorks) || defined(_WIN32) || defined(__rtems__)
// These systems have no strncasecmp
static int strncasecmp(const char *s1, const char *s2, size_t n)
#ifdef _MSC_VER
#define strncasecmp _strnicmp
#endif
#if defined(vxWorks) || defined(__rtems__)
// These systems have no strncasecmp at the moment
// But avoid compiler errors in case strncasecmp exists in future versions
static int mystrncasecmp(const char *s1, const char *s2, size_t n)
{
int r=0;
while (n && (r = toupper(*s1)-toupper(*s2)) == 0) { n--; s1++; s2++; };
return r;
}
#define strncasecmp mystrncasecmp
#endif
#include "StreamFormatConverter.h"

View File

@ -27,12 +27,12 @@ include $(TOP)/configure/CONFIG
-include CONFIG_STREAM
-include ../CONFIG_STREAM
LIBRARY_DEFAULT = stream
LIBRARY_IOC = stream
DBD += $(LIBRARY_DEFAULT).dbd
DBD += $(LIBRARY_DEFAULT)-base.dbd
ifdef CALC
DBD += $(LIBRARY_DEFAULT)-scalcout.dbd
DBD += stream.dbd
DBD += stream-base.dbd
ifneq ($(words $(CALC) $(SYNAPPS)), 0)
DBD += stream-scalcout.dbd
endif
ifdef ASYN
@ -42,7 +42,7 @@ $(warning Asyn not included! Didn't you set ASYN in your RELEASE file?)
endif
ifeq ($(LOADABLE_MODULE),YES)
SRCS += $(LIBRARY_DEFAULT)_registerRecordDeviceDriver.cpp
SRCS += stream_registerRecordDeviceDriver.cpp
endif
SRCS += $(BUSSES:%=%Interface.cc)
SRCS += $(FORMATS:%=%Converter.cc)
@ -60,6 +60,9 @@ ifneq ($(words $(PCRE_LIB) $(PCRE_INCLUDE)),0)
LIB_SYS_LIBS_DEFAULT += pcre
LIB_SYS_LIBS_WIN32 += $(PCRE_LIB)\\pcre
SHRLIB_DEPLIB_DIRS += $(PCRE_LIB)
ifdef ENABLE_STATIC
CPPFLAGS += -DPCRE_STATIC
endif
endif
endif
@ -98,28 +101,28 @@ streamReferences: ../CONFIG_STREAM
$(PERL) ../makeref.pl Converter $(FORMATS) >> $@
# create stream-base.dbd from all RECORDTYPES except scalcout record
$(COMMON_DIR)/$(LIBRARY_DEFAULT)-base.dbd: ../CONFIG_STREAM
$(COMMON_DIR)/stream-base.dbd: ../CONFIG_STREAM
$(PERL) ../makedbd.pl $(if $(ASYN),--with-asyn) $(if $(BASE_3_14),,-3.13) $(filter-out scalcout, $(RECORDTYPES)) > $@
$(LIBRARY_DEFAULT)-base.dbd$(DEP): ../CONFIG_STREAM
echo $(LIBRARY_DEFAULT)-base.dbd: $< > $@
stream-base.dbd$(DEP): ../CONFIG_STREAM
echo stream-base.dbd: $< > $@
STREAM_DBD_FILES = $(LIBRARY_DEFAULT)-base.dbd
STREAM_DBD_FILES = stream-base.dbd
ifdef CALC
ifneq ($(words $(CALC) $(SYNAPPS)), 0)
# create stream-scalcout.dbd for scalcout record
$(COMMON_DIR)/$(LIBRARY_DEFAULT)-scalcout.dbd: ../CONFIG_STREAM
$(COMMON_DIR)/stream-scalcout.dbd: ../CONFIG_STREAM
$(PERL) ../makedbd.pl --rec-only scalcout > $@
$(LIBRARY_DEFAULT)-scalcout.dbd$(DEP): ../CONFIG_STREAM
echo $(LIBRARY_DEFAULT)-scalcout.dbd: $< > $@
stream-scalcout.dbd$(DEP): ../CONFIG_STREAM
echo stream-scalcout.dbd: $< > $@
STREAM_DBD_FILES += $(LIBRARY_DEFAULT)-scalcout.dbd
STREAM_DBD_FILES += stream-scalcout.dbd
endif
# create stream.dbd for all record types
$(COMMON_DIR)/$(LIBRARY_DEFAULT).dbd: ../CONFIG_STREAM
$(COMMON_DIR)/stream.dbd: ../CONFIG_STREAM
$(PERL) ../makedbd.pl $(if $(ASYN),--with-asyn) $(if $(BASE_3_14),,-3.13) $(RECORDTYPES) > $@
$(LIBRARY_DEFAULT).dbd$(DEP): ../CONFIG_STREAM
echo $(LIBRARY_DEFAULT).dbd: $< > $@
stream.dbd$(DEP): ../CONFIG_STREAM
echo stream.dbd: $< > $@

View File

@ -435,6 +435,14 @@ long streamReportRecord(const char* recordname)
return OK;
}
#if defined(_WIN32) && !defined(_WIN64)
static const char* epicsThreadGetNameSelfWrapper(void)
{
return epicsThreadGetNameSelf();
}
#define epicsThreadGetNameSelf epicsThreadGetNameSelfWrapper
#endif
long Stream::
drvInit()
{

View File

@ -43,7 +43,7 @@ static long readData(dbCommon *record, format_t *format)
strncmp(so->oval, so->val, sizeof(so->val)))
{
monitor_mask |= DBE_VALUE | DBE_LOG;
strncpy(so->oval, so->val, sizeof(so->val));
strncpy(so->oval, so->val, sizeof(so->oval));
}
if (monitor_mask)
db_post_events(record, so->val, monitor_mask);

View File

@ -78,6 +78,13 @@ endif
PROD_LIBS += $(EPICS_BASE_IOC_LIBS)
# Some linux systems moved RPC related symbols to libtirpc
# Define TIRPC in configure/CONFIG_SITE in this case
ifeq ($(TIRPC),YES)
USR_INCLUDES_Linux += -I/usr/include/tirpc
PROD_SYS_LIBS_DEFAULT += tirpc
endif
# switch off annoying rset warnings in 3.16+
CPPFLAGS += -DUSE_TYPED_RSET