Skip to content

Commit

Permalink
Applied patch to update Makefiles, RELEASE and CONFIG_SITE files
Browse files Browse the repository at this point in the history
  • Loading branch information
kmpeters committed Apr 9, 2019
1 parent fd5058b commit 87819e6
Show file tree
Hide file tree
Showing 11 changed files with 96 additions and 87 deletions.
15 changes: 14 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ DIRS += $(wildcard *App)
DIRS += $(wildcard *Top)
DIRS += $(wildcard iocBoot)

ifeq ($(BUILD_IOCS), YES)
DIRS += $(wildcard iocs)
endif

# The build order is controlled by these dependency rules:

# All dirs except configure depend on configure
Expand All @@ -28,4 +32,13 @@ iocBoot_DEPEND_DIRS += $(filter %App,$(DIRS))

# 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
7 changes: 7 additions & 0 deletions configure/EXAMPLE_CONFIG_SITE.local
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions configure/EXAMPLE_RELEASE.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
MOTOR=
-include $(MOTOR)/configure/RELEASE
# path to motorNewFocus is needed to build the IOC inside motorNewFocus, but outside motor
MOTOR_NEWFOCUS=
6 changes: 5 additions & 1 deletion configure/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@ TOP=..

include $(TOP)/configure/CONFIG

ifeq ($(INSTALL_CONFIG),$(MOTOR)/configure)
# Don't overwrite Motor's configure files
INSTALL_CONFIG =
endif

TARGETS = $(CONFIG_TARGETS)
CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS)))

include $(TOP)/configure/RULES
42 changes: 3 additions & 39 deletions configure/RELEASE
Original file line number Diff line number Diff line change
@@ -1,43 +1,7 @@
# 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:
#MODULES = /path/to/modules
#MYMODULE = $(MODULES)/my-module

# 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
# Use motor/module's generated release file when buidling inside motor
-include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local
# Use motorNewFocus's RELEASE.local when building outside motor
-include $(TOP)/configure/RELEASE.local

25 changes: 25 additions & 0 deletions iocs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
TOP = ..
include $(TOP)/configure/CONFIG

DIRS += newFocusIOC

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)

9 changes: 5 additions & 4 deletions iocs/newFocusIOC/configure/CONFIG_SITE
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,10 @@ CHECK_RELEASE = YES
#HOST_OPT = NO
#CROSS_OPT = NO

# 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 motor's CONFIG_SITE.local when building inside motor
-include $(TOP)/../../../../configure/CONFIG_SITE.local
# Include motorNewFocus's CONFIG_SITE.local when building inside motorNewFocus
-include $(TOP)/../../configure/CONFIG_SITE.local
# Use newFocusIOC's CONFIG_SITE.local
-include $(TOP)/configure/CONFIG_SITE.local

6 changes: 6 additions & 0 deletions iocs/newFocusIOC/configure/EXAMPLE_CONFIG_SITE.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Use settings from motor's CONFIG_SITE unless they are overridden below
-include $(MOTOR)/configure/CONFIG_SITE

#
CHECK_RELEASE = WARN

6 changes: 6 additions & 0 deletions iocs/newFocusIOC/configure/EXAMPLE_RELEASE.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Use the following lines if motorNewFocus was built inside motor
MOTOR=
-include $(MOTOR)/configure/RELEASE
# Use the following lines if motorNewFocus was built outside motor
#!MOTOR_NEWFOCUS=
#!-include $(MOTOR_NEWFOCUS)/configure/RELEASE.local
45 changes: 5 additions & 40 deletions iocs/newFocusIOC/configure/RELEASE
Original file line number Diff line number Diff line change
@@ -1,43 +1,8 @@
# 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:
#MODULES = /path/to/modules
#MYMODULE = $(MODULES)/my-module

# 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
# Use motor/module's generated release file when buidling inside motor
-include $(TOP)/../../../RELEASE.$(EPICS_HOST_ARCH).local
# Use motorNewFocus's release file when building inside motorNewFocus, but outside motor
-include $(TOP)/../../configure/RELEASE.local
# Use newFocusIOC's RELEASE.local when building outside motorNewFocus
-include $(TOP)/configure/RELEASE.local

18 changes: 16 additions & 2 deletions iocs/newFocusIOC/newFocusApp/src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ include $(TOP)/configure/CONFIG
# ADD MACRO DEFINITIONS AFTER THIS LINE
#=============================

# The following are used for debugging messages.
#!USR_CXXFLAGS += -DDEBUG

#=============================
# Build the IOC application

Expand All @@ -16,10 +19,21 @@ DBD += newFocus.dbd
newFocus_DBD += base.dbd

# Include dbd files from all support applications:
#newFocus_DBD += xxx.dbd
#ifdef ASYN
newFocus_DBD += asyn.dbd
#endif
newFocus_DBD += motorSupport.dbd
newFocus_DBD += devNewFocus.dbd

# Add all the support libraries needed by this IOC
#newFocus_LIBS += xxx
newFocus_LIBS += newFocus
newFocus_LIBS += motor
#ifdef ASYN
newFocus_LIBS += asyn
#endif
#ifdef SNCSEQ
newFocus_LIBS += seq pv
#endif

# newFocus_registerRecordDeviceDriver.cpp derives from newFocus.dbd
newFocus_SRCS += newFocus_registerRecordDeviceDriver.cpp
Expand Down

0 comments on commit 87819e6

Please sign in to comment.