From a4888634b67866e570a460c43e4510046016bc75 Mon Sep 17 00:00:00 2001 From: Dirk Zimoch Date: Thu, 19 Jan 2017 16:55:28 +0100 Subject: [PATCH] make compatible to standard EPICS build system --- GNUmakefile | 7 ++++++- configure/CONFIG | 14 ++++++++++++++ configure/CONFIG_APP | 22 ++++++++++++++++++++++ configure/Makefile | 15 +++++++++++++++ configure/RELEASE | 18 ++++++++++++++++++ configure/RULES | 5 +++++ 6 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 configure/CONFIG create mode 100644 configure/CONFIG_APP create mode 100644 configure/Makefile create mode 100644 configure/RELEASE create mode 100644 configure/RULES diff --git a/GNUmakefile b/GNUmakefile index 0afdb73..4becc63 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,4 +1,7 @@ -# Remove this file if not using the PSI build system +ifeq ($(wildcard /ioc/tools/driver.makefile),) +$(warning It seems you do not have the PSI build environment. Remove GNUmakefile.) +include Makefile +else include /ioc/tools/driver.makefile EXCLUDE_VERSIONS = 3.13.2 PROJECT=stream @@ -54,3 +57,5 @@ export DBDFILES = streamSup.dbd streamSup.dbd: @echo Creating $@ perl ../src/makedbd.pl $(RECORDTYPES) > $@ +endif + diff --git a/configure/CONFIG b/configure/CONFIG new file mode 100644 index 0000000..b46d386 --- /dev/null +++ b/configure/CONFIG @@ -0,0 +1,14 @@ +#CONFIG +include $(TOP)/configure/CONFIG_APP +# Add any changes to make definitions here + +#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040 +#CROSS_COMPILER_TARGET_ARCHS = + +# 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 = diff --git a/configure/CONFIG_APP b/configure/CONFIG_APP new file mode 100644 index 0000000..96eb2d5 --- /dev/null +++ b/configure/CONFIG_APP @@ -0,0 +1,22 @@ +# 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) + +CONFIG=$(EPICS_BASE)/configure +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 +HOST_OPT=NO diff --git a/configure/Makefile b/configure/Makefile new file mode 100644 index 0000000..0317746 --- /dev/null +++ b/configure/Makefile @@ -0,0 +1,15 @@ +# Makefile + +TOP=.. + +include $(TOP)/configure/CONFIG + +# Set the following to NO to disable consistency checking of +# the support applications defined in $(TOP)/configure/RELEASE +CHECK_RELEASE = YES + +TARGETS = $(CONFIG_TARGETS) +CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS))) + +include $(TOP)/configure/RULES + diff --git a/configure/RELEASE b/configure/RELEASE new file mode 100644 index 0000000..62951a3 --- /dev/null +++ b/configure/RELEASE @@ -0,0 +1,18 @@ +#RELEASE Location of external products +# Run "gnumake clean uninstall install" in the application +# top directory each time this file is changed. +# +# NOTE: The build does not check dependancies on files +# external to this application. Thus you should run +# "gnumake clean uninstall install" in the top directory +# each time EPICS_BASE, SNCSEQ, or any other external +# module defined in the RELEASE file is rebuilt. + +TEMPLATE_TOP=$(EPICS_BASE)/templates/makeBaseApp/top + +# If you don't want to install into $(TOP) then +# define INSTALL_LOCATION_APP here +#INSTALL_LOCATION_APP= + +# EPICS_BASE usually appears last so other apps can override stuff: +EPICS_BASE=/usr/local/epics/base-3.14.12 diff --git a/configure/RULES b/configure/RULES new file mode 100644 index 0000000..ffee54a --- /dev/null +++ b/configure/RULES @@ -0,0 +1,5 @@ +#CONFIG +include $(EPICS_BASE)/configure/RULES + +# Library should be rebuilt because LIBOBJS may have changed. +$(LIBNAME): ../Makefile