Applied patch to update Makefiles, RELEASE and CONFIG_SITE files

This commit is contained in:
kpetersn
2019-04-09 11:26:32 -05:00
parent 2846bfa018
commit 57b6582e69
11 changed files with 96 additions and 87 deletions

View File

@@ -9,6 +9,10 @@ DIRS += $(wildcard *App)
DIRS += $(wildcard *Top) DIRS += $(wildcard *Top)
DIRS += $(wildcard iocBoot) DIRS += $(wildcard iocBoot)
ifeq ($(BUILD_IOCS), YES)
DIRS += $(wildcard iocs)
endif
# The build order is controlled by these dependency rules: # The build order is controlled by these dependency rules:
# All dirs except configure depend on configure # All dirs except configure depend on configure
@@ -28,4 +32,13 @@ iocBoot_DEPEND_DIRS += $(filter %App,$(DIRS))
# Add any additional dependency rules here: # Add any additional dependency rules here:
include $(TOP)/configure/RULES_TOP # iocs depend on all *Sup and *App dirs
$(foreach dir, $(filter %iocs, $(DIRS)), \
$(eval $(dir)_DEPEND_DIRS += $(filter %Sup %App, $(DIRS))))
# Only support top-level targets when submodule is built stand-alone
ifeq ($(INSTALL_LOCATION),$(MOTOR))
include $(TOP)/configure/RULES_DIRS
else
include $(TOP)/configure/RULES_TOP
endif

View File

@@ -0,0 +1,7 @@
# Use settings from motor's CONFIG_SITE unless they are overridden below
-include $(MOTOR)/configure/CONFIG_SITE
#
CHECK_RELEASE = WARN
#
#BUILD_IOCS = YES

View File

@@ -0,0 +1,4 @@
MOTOR=
-include $(MOTOR)/configure/RELEASE
# path to motorAcs is needed to build the IOC inside motorAcs, but outside motor
MOTOR_ACS=

View File

@@ -2,7 +2,11 @@ TOP=..
include $(TOP)/configure/CONFIG include $(TOP)/configure/CONFIG
ifeq ($(INSTALL_CONFIG),$(MOTOR)/configure)
# Don't overwrite Motor's configure files
INSTALL_CONFIG =
endif
TARGETS = $(CONFIG_TARGETS) TARGETS = $(CONFIG_TARGETS)
CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS)))
include $(TOP)/configure/RULES include $(TOP)/configure/RULES

View File

@@ -1,43 +1,7 @@
# RELEASE - Location of external support modules # RELEASE - Location of external support modules
#
# IF YOU MAKE ANY CHANGES to this file you must subsequently
# do a "gnumake rebuild" in this application's top level
# directory.
#
# The build process does not check dependencies against files
# that are outside this application, thus you should do a
# "gnumake rebuild" in the top level directory after EPICS_BASE
# or any other external module pointed to below is rebuilt.
#
# Host- or target-specific settings can be given in files named
# RELEASE.$(EPICS_HOST_ARCH).Common
# RELEASE.Common.$(T_A)
# RELEASE.$(EPICS_HOST_ARCH).$(T_A)
#
# This file is parsed by both GNUmake and an EPICS Perl script,
# so it can ONLY contain definititions of paths to other support
# modules, variable definitions that are used in module paths,
# and include statements that pull in other RELEASE files.
# Variables may be used before their values have been set.
# Build variables that are NOT used in paths should be set in
# the CONFIG_SITE file.
# Variables and paths to dependent modules: # Use motor/module's generated release file when buidling inside motor
#MODULES = /path/to/modules -include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local
#MYMODULE = $(MODULES)/my-module # Use motorAcs's RELEASE.local when building outside motor
# If using the sequencer, point SNCSEQ at its top directory:
#SNCSEQ = $(MODULES)/seq-ver
# EPICS_BASE should appear last so earlier modules can override stuff:
EPICS_BASE = /APSshare/epics/base-3.15.6
# Set RULES here if you want to use build rules from somewhere
# other than EPICS_BASE:
#RULES = $(MODULES)/build-rules
# These allow developers to override the RELEASE variable settings
# without having to modify the configure/RELEASE file itself.
-include $(TOP)/../RELEASE.local
-include $(TOP)/configure/RELEASE.local -include $(TOP)/configure/RELEASE.local

25
iocs/Makefile Normal file
View File

@@ -0,0 +1,25 @@
TOP = ..
include $(TOP)/configure/CONFIG
DIRS += acsIOC
include $(TOP)/configure/RULES_TOP
uninstallTargets = $(foreach dir, $(DIRS), $(dir)$(DIVIDER)uninstall)
uninstall: $(uninstallTargets)
define UNINSTALL_template
$(1)$(DIVIDER)uninstall:
$(MAKE) -C $(1) uninstall
endef
$(foreach dir, $(DIRS), $(eval $(call UNINSTALL_template,$(dir))))
.PHONY: uninstall $(uninstallTargets)
realuninstallTargets = $(foreach dir, $(DIRS), $(dir)$(DIVIDER)realuninstall)
realuninstall: $(realuninstallTargets)
define REALUNINSTALL_template
$(1)$(DIVIDER)realuninstall:
$(MAKE) -C $(1) realuninstall
endef
$(foreach dir, $(DIRS), $(eval $(call REALUNINSTALL_template,$(dir))))
.PHONY: realuninstall $(realuninstallTargets)

View File

@@ -5,6 +5,9 @@ include $(TOP)/configure/CONFIG
# ADD MACRO DEFINITIONS AFTER THIS LINE # ADD MACRO DEFINITIONS AFTER THIS LINE
#============================= #=============================
# The following are used for debugging messages.
#!USR_CXXFLAGS += -DDEBUG
#============================= #=============================
# Build the IOC application # Build the IOC application
@@ -16,10 +19,21 @@ DBD += acs.dbd
acs_DBD += base.dbd acs_DBD += base.dbd
# Include dbd files from all support applications: # Include dbd files from all support applications:
#acs_DBD += xxx.dbd #ifdef ASYN
acs_DBD += asyn.dbd
#endif
acs_DBD += motorSupport.dbd
acs_DBD += devAcs.dbd
# Add all the support libraries needed by this IOC # Add all the support libraries needed by this IOC
#acs_LIBS += xxx acs_LIBS += acs
acs_LIBS += motor
#ifdef ASYN
acs_LIBS += asyn
#endif
#ifdef SNCSEQ
acs_LIBS += seq pv
#endif
# acs_registerRecordDeviceDriver.cpp derives from acs.dbd # acs_registerRecordDeviceDriver.cpp derives from acs.dbd
acs_SRCS += acs_registerRecordDeviceDriver.cpp acs_SRCS += acs_registerRecordDeviceDriver.cpp

View File

@@ -35,9 +35,10 @@ CHECK_RELEASE = YES
#HOST_OPT = NO #HOST_OPT = NO
#CROSS_OPT = NO #CROSS_OPT = NO
# These allow developers to override the CONFIG_SITE variable # Include motor's CONFIG_SITE.local when building inside motor
# settings without having to modify the configure/CONFIG_SITE -include $(TOP)/../../../../configure/CONFIG_SITE.local
# file itself. # Include motorAcs's CONFIG_SITE.local when building inside motorAcs
-include $(TOP)/../CONFIG_SITE.local -include $(TOP)/../../configure/CONFIG_SITE.local
# Use acsIOC's CONFIG_SITE.local
-include $(TOP)/configure/CONFIG_SITE.local -include $(TOP)/configure/CONFIG_SITE.local

View File

@@ -0,0 +1,6 @@
# Use settings from motor's CONFIG_SITE unless they are overridden below
-include $(MOTOR)/configure/CONFIG_SITE
#
CHECK_RELEASE = WARN

View File

@@ -0,0 +1,6 @@
# Use the following lines if motorAcs was built inside motor
MOTOR=
-include $(MOTOR)/configure/RELEASE
# Use the following lines if motorAcs was built outside motor
#!MOTOR_ACS=
#!-include $(MOTOR_ACS)/configure/RELEASE.local

View File

@@ -1,43 +1,8 @@
# RELEASE - Location of external support modules # RELEASE - Location of external support modules
#
# IF YOU MAKE ANY CHANGES to this file you must subsequently
# do a "gnumake rebuild" in this application's top level
# directory.
#
# The build process does not check dependencies against files
# that are outside this application, thus you should do a
# "gnumake rebuild" in the top level directory after EPICS_BASE
# or any other external module pointed to below is rebuilt.
#
# Host- or target-specific settings can be given in files named
# RELEASE.$(EPICS_HOST_ARCH).Common
# RELEASE.Common.$(T_A)
# RELEASE.$(EPICS_HOST_ARCH).$(T_A)
#
# This file is parsed by both GNUmake and an EPICS Perl script,
# so it can ONLY contain definititions of paths to other support
# modules, variable definitions that are used in module paths,
# and include statements that pull in other RELEASE files.
# Variables may be used before their values have been set.
# Build variables that are NOT used in paths should be set in
# the CONFIG_SITE file.
# Variables and paths to dependent modules: # Use motor/module's generated release file when buidling inside motor
#MODULES = /path/to/modules -include $(TOP)/../../../RELEASE.$(EPICS_HOST_ARCH).local
#MYMODULE = $(MODULES)/my-module # Use motorAcs's release file when building inside motorAcs, but outside motor
-include $(TOP)/../../configure/RELEASE.local
# If using the sequencer, point SNCSEQ at its top directory: # Use acsIOC's RELEASE.local when building outside motorAcs
#SNCSEQ = $(MODULES)/seq-ver
# EPICS_BASE should appear last so earlier modules can override stuff:
EPICS_BASE = /APSshare/epics/base-3.15.6
# Set RULES here if you want to use build rules from somewhere
# other than EPICS_BASE:
#RULES = $(MODULES)/build-rules
# These allow developers to override the RELEASE variable settings
# without having to modify the configure/RELEASE file itself.
-include $(TOP)/../RELEASE.local
-include $(TOP)/configure/RELEASE.local -include $(TOP)/configure/RELEASE.local