From f6c205dafe9b76f41bd3ce5d0469c9db0b7fcb30 Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Mon, 31 Jul 2017 13:19:02 +0200 Subject: [PATCH] ioc: add module version numbering --- configure/CONFIG | 4 ++++ configure/CONFIG_DATABASE_VERSION | 5 +++++ src/ioc/Makefile | 24 ++++++++++++++++++++++++ src/ioc/databaseVersion.h | 27 +++++++++++++++++++++++++++ src/ioc/databaseVersionNum.h@ | 7 +++++++ 5 files changed, 67 insertions(+) create mode 100644 configure/CONFIG_DATABASE_VERSION create mode 100644 src/ioc/databaseVersion.h create mode 100644 src/ioc/databaseVersionNum.h@ diff --git a/configure/CONFIG b/configure/CONFIG index a34b10e1a..96b237f98 100644 --- a/configure/CONFIG +++ b/configure/CONFIG @@ -15,6 +15,7 @@ endif CONFIG = $(RULES)/configure include $(CONFIG)/CONFIG +include $(TOP)/configure/CONFIG_DATABASE_VERSION # Override the Base definition: INSTALL_LOCATION = $(TOP) @@ -22,6 +23,9 @@ INSTALL_LOCATION = $(TOP) # Use new RSET definition BASE_CPPFLAGS += -DUSE_TYPED_RSET +# Shared library ABI version. +SHRLIB_VERSION = $(EPICS_DATABASE_MAJOR_VERSION).$(EPICS_DATABASE_MINOR_VERSION).$(EPICS_DATABASE_MAINTENANCE_VERSION) + # Set path for local tools MAKEBPT = $(INSTALL_HOST_BIN)/makeBpt$(HOSTEXE) DBEXPAND = $(PERL) $(INSTALL_HOST_BIN)/dbdExpand.pl diff --git a/configure/CONFIG_DATABASE_VERSION b/configure/CONFIG_DATABASE_VERSION new file mode 100644 index 000000000..c3c50efc4 --- /dev/null +++ b/configure/CONFIG_DATABASE_VERSION @@ -0,0 +1,5 @@ +EPICS_DATABASE_MAJOR_VERSION = 3 +EPICS_DATABASE_MINOR_VERSION = 17 +EPICS_DATABASE_MAINTENANCE_VERSION = 0 +EPICS_DATABASE_DEVELOPMENT_FLAG = 1 + diff --git a/src/ioc/Makefile b/src/ioc/Makefile index 646a966c5..0d0a6cda2 100644 --- a/src/ioc/Makefile +++ b/src/ioc/Makefile @@ -20,8 +20,16 @@ dbCore_SYS_LIBS_WIN32 += ws2_32 dbCore_RCS += dbCore.rc dbStaticHost_RCS = dbStaticHost.rc +INC += databaseVersion.h +INC += databaseVersionNum.h + PROD_LIBS = Com +EPICS_DATABASE_MAJOR_VERSION = 3 +EPICS_DATABASE_MINOR_VERSION = 17 +EPICS_DATABASE_MAINTENANCE_VERSION = 0 +EPICS_DATABASE_DEVELOPMENT_FLAG = 1 + include $(IOCDIR)/as/Makefile include $(IOCDIR)/bpt/Makefile include $(IOCDIR)/db/Makefile @@ -31,9 +39,25 @@ include $(IOCDIR)/misc/Makefile include $(IOCDIR)/registry/Makefile include $(IOCDIR)/rsrv/Makefile +EXPANDVARS += EPICS_DATABASE_MAJOR_VERSION +EXPANDVARS += EPICS_DATABASE_MINOR_VERSION +EXPANDVARS += EPICS_DATABASE_MAINTENANCE_VERSION +EXPANDVARS += EPICS_DATABASE_DEVELOPMENT_FLAG + +EXPANDFLAGS += $(foreach var,$(EXPANDVARS),-D$(var)="$(strip $($(var)))") + +# shared library ABI version. +SHRLIB_VERSION = $(EPICS_DATABASE_MAJOR_VERSION).$(EPICS_DATABASE_MINOR_VERSION).$(EPICS_DATABASE_MAINTENANCE_VERSION) + include $(TOP)/configure/RULES include $(IOCDIR)/dbStatic/RULES include $(IOCDIR)/bpt/RULES include $(IOCDIR)/db/RULES include $(IOCDIR)/dbtemplate/RULES + +# Can't use EXPAND as generated headers must appear +# in O.Common, but EXPAND emits rules for O.$(T_A) +../O.Common/databaseVersionNum.h: ../databaseVersionNum.h@ + $(MKDIR) $(COMMON_DIR) + $(EXPAND_TOOL) $(EXPANDFLAGS) $($@_EXPANDFLAGS) $< $@ diff --git a/src/ioc/databaseVersion.h b/src/ioc/databaseVersion.h new file mode 100644 index 000000000..eb5e4d732 --- /dev/null +++ b/src/ioc/databaseVersion.h @@ -0,0 +1,27 @@ +/*************************************************************************\ +* Copyright (c) 2017 UChicago Argonne LLC, as Operator of Argonne +* National Laboratory. +* EPICS BASE is distributed subject to a Software License Agreement found +* in file LICENSE that is included with this distribution. +\*************************************************************************/ + +#ifndef DATABASEVERSION_H +#define DATABASEVERSION_H + +#include + +#ifndef VERSION_INT +# define VERSION_INT(V,R,M,P) ( ((V)<<24) | ((R)<<16) | ((M)<<8) | (P)) +#endif + +/* include generated headers with: + * EPICS_DATABASE_MAJOR_VERSION + * EPICS_DATABASE_MINOR_VERSION + * EPICS_DATABASE_MAINTENANCE_VERSION + * EPICS_DATABASE_DEVELOPMENT_FLAG + */ +#include "databaseVersionNum.h" + +#define DATABASE_VERSION_INT VERSION_INT(EPICS_DATABASE_MAJOR_VERSION, EPICS_DATABASE_MINOR_VERSION, EPICS_DATABASE_MAINTENANCE_VERSION, 0) + +#endif // DATABASEVERSION_H diff --git a/src/ioc/databaseVersionNum.h@ b/src/ioc/databaseVersionNum.h@ new file mode 100644 index 000000000..02184a81b --- /dev/null +++ b/src/ioc/databaseVersionNum.h@ @@ -0,0 +1,7 @@ +#ifndef DATABASEVERSION_H +# error include databaseVersion.h, not this header +#endif +#define EPICS_DATABASE_MAJOR_VERSION @EPICS_DATABASE_MAJOR_VERSION@ +#define EPICS_DATABASE_MINOR_VERSION @EPICS_DATABASE_MINOR_VERSION@ +#define EPICS_DATABASE_MAINTENANCE_VERSION @EPICS_DATABASE_MAINTENANCE_VERSION@ +#define EPICS_DATABASE_DEVELOPMENT_FLAG @EPICS_DATABASE_DEVELOPMENT_FLAG@