Merged changes from 3.14 branch up to revno 12564
This commit is contained in:
@@ -56,6 +56,8 @@ include $(CONFIG)/CONFIG_BASE_VERSION
|
||||
include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).Common
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
|
||||
|
||||
RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)
|
||||
|
||||
ifdef T_A
|
||||
|
||||
# Cross compile specific definitions
|
||||
@@ -86,8 +88,10 @@ endif
|
||||
# Include <top>/cfg/CONFIG* definitions from tops defined in RELEASE* files
|
||||
#
|
||||
ifneq ($(CONFIG),$(TOP)/configure)
|
||||
RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)
|
||||
RELEASE_CFG_CONFIGS = $(foreach top, $(RELEASE_TOPS), $(wildcard $($(top))/cfg/CONFIG*))
|
||||
RELEASE_TOPS_REVERSE := $(shell \
|
||||
$(PERL) -e '$$,=" ";print reverse @ARGV' $(RELEASE_TOPS))
|
||||
RELEASE_CFG_CONFIGS = $(foreach top, $(RELEASE_TOPS_REVERSE), \
|
||||
$(wildcard $($(top))/cfg/CONFIG*))
|
||||
ifneq ($(RELEASE_CFG_CONFIGS),)
|
||||
include $(RELEASE_CFG_CONFIGS)
|
||||
endif
|
||||
|
||||
@@ -1,25 +1,35 @@
|
||||
export TOP
|
||||
export IOCAPPS
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2013 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Revision-Id$
|
||||
#
|
||||
|
||||
RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)
|
||||
export TOP
|
||||
|
||||
ifneq ($(RELEASE_TOPS),)
|
||||
|
||||
define RELEASE_FLAGS_template
|
||||
export $(1)
|
||||
$(1)_HOST_BIN = $$(strip $$($(1)))/bin/$$(EPICS_HOST_ARCH)
|
||||
$(1)_HOST_LIB = $$(strip $$($(1)))/lib/$$(EPICS_HOST_ARCH)
|
||||
$(1)_BIN = $$(wildcard $$(strip $$($(1)))/bin/$$(T_A))
|
||||
$(1)_LIB = $$(wildcard $$(strip $$($(1)))/lib/$$(T_A))
|
||||
$(1)_HOST_BIN = $$(strip $$($(1)))/bin/$(EPICS_HOST_ARCH)
|
||||
$(1)_HOST_LIB = $$(strip $$($(1)))/lib/$(EPICS_HOST_ARCH)
|
||||
$(1)_BIN = $$(wildcard $$(strip $$($(1)))/bin/$(T_A))
|
||||
$(1)_LIB = $$(wildcard $$(strip $$($(1)))/lib/$(T_A))
|
||||
SHRLIB_SEARCH_DIRS += $$($(1)_LIB)
|
||||
RELEASE_INCLUDES += $$(addprefix -I,$$(wildcard $$(strip $$($(1)))/include/compiler/$$(CMPLR_CLASS)))
|
||||
RELEASE_INCLUDES += $$(addprefix -I,$$(wildcard $$(strip $$($(1)))/include/os/$$(OS_CLASS)))
|
||||
RELEASE_INCLUDES += $$(addprefix -I,$$(wildcard $$(strip $$($(1)))/include/compiler/$(CMPLR_CLASS)))
|
||||
RELEASE_INCLUDES += $$(addprefix -I,$$(wildcard $$(strip $$($(1)))/include/os/$(OS_CLASS)))
|
||||
RELEASE_INCLUDES += $$(addprefix -I,$$(wildcard $$(strip $$($(1)))/include))
|
||||
RELEASE_DBD_DIRS += $$(wildcard $$(strip $$($(1)))/dbd)
|
||||
RELEASE_DB_DIRS += $$(wildcard $$(strip $$($(1)))/db)
|
||||
RELEASE_PERL_MODULE_DIRS += $$(wildcard $$(strip $$($(1)))/lib/perl)
|
||||
endef
|
||||
$(foreach top, $(RELEASE_TOPS), $(eval $(call RELEASE_FLAGS_template,$(top)) ))
|
||||
$(foreach top, $(RELEASE_TOPS), \
|
||||
$(eval $(call RELEASE_FLAGS_template,$(top))))
|
||||
|
||||
endif
|
||||
|
||||
|
||||
@@ -53,8 +53,10 @@ BASE_CPPFLAGS += $(OSITHREAD_DEFAULT_STACK_FLAGS_$(OSITHREAD_USE_DEFAULT_STACK))
|
||||
#---------------------------------------------------------------
|
||||
# Where to find the installed build tools
|
||||
# Windows does not like commands with relative paths starting ../
|
||||
# but the Perl scripts in TOP/src/tools are OK
|
||||
|
||||
TOOLS = $(abspath $(EPICS_BASE_HOST_BIN))
|
||||
FIND_TOOL = $(firstword $(wildcard $(TOOLS)/$(1) $(TOP)/src/tools/$(1)))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Epics base build tools and tool flags
|
||||
@@ -64,7 +66,7 @@ DBEXPAND = $(PERL) $(TOOLS)/dbdExpand.pl
|
||||
DBTORECORDTYPEH = $(PERL) $(TOOLS)/dbdToRecordtypeH.pl
|
||||
DBTOMENUH = $(PERL) $(TOOLS)/dbdToMenuH.pl
|
||||
REGISTERRECORDDEVICEDRIVER = $(PERL) $(TOOLS)/registerRecordDeviceDriver.pl
|
||||
CONVERTRELEASE = $(PERL) $(TOOLS)/convertRelease.pl
|
||||
CONVERTRELEASE = $(PERL) $(call FIND_TOOL,convertRelease.pl)
|
||||
FULLPATHNAME = $(PERL) $(TOOLS)/fullPathName.pl
|
||||
|
||||
#-------------------------------------------------------
|
||||
|
||||
@@ -19,9 +19,6 @@ ACTIONS += install
|
||||
ACTIONS += buildInstall
|
||||
ACTIONS += runtests tapfiles
|
||||
|
||||
actionPart = $(word 1, $(subst $(DIVIDER), ,$@))
|
||||
archPart = $(word 2, $(subst $(DIVIDER), ,$@))
|
||||
|
||||
actionArchTargets = $(foreach action, $(ACTIONS), \
|
||||
$(addprefix $(action)$(DIVIDER), $(BUILD_ARCHS)))
|
||||
|
||||
@@ -29,9 +26,17 @@ cleanArchTargets = $(addprefix clean$(DIVIDER), $(BUILD_ARCHS))
|
||||
|
||||
buildDirs = $(addprefix O., $(BUILD_ARCHS))
|
||||
|
||||
#*************************************************************************
|
||||
# Create EPICS_HOST_ARCH dependancies for GNU make -j option
|
||||
# Needed in dirs where EPICS_HOST_ARCH builds a tool used by
|
||||
# Include <top>/cfg/DIR_RULES* files from tops defined in RELEASE* files
|
||||
# Do this here so they can add ACTIONS
|
||||
#
|
||||
RELEASE_CFG_DIR_RULES = $(foreach top, $(RELEASE_TOPS), \
|
||||
$(wildcard $($(top))/cfg/DIR_RULES*))
|
||||
ifneq ($(RELEASE_CFG_DIR_RULES),)
|
||||
include $(RELEASE_CFG_DIR_RULES)
|
||||
endif
|
||||
|
||||
# Create EPICS_HOST_ARCH dependancies for GNU make -j option.
|
||||
# Needed in dirs where EPICS_HOST_ARCH build creates a tool used in
|
||||
# cross arch builds
|
||||
|
||||
CROSS_ARCHS += $(CROSS1) $(CROSS2)
|
||||
@@ -40,11 +45,9 @@ define DEP_template
|
||||
$(2) : $(EPICS_HOST_ARCH)
|
||||
$(1)$(DIVIDER)$(2) : $(1)$(DIVIDER)$(EPICS_HOST_ARCH) O.$(2)
|
||||
endef
|
||||
|
||||
$(foreach action, $(ACTIONS), $(foreach arch, $(CROSS_ARCHS), \
|
||||
$(eval $(call DEP_template,$(action),$(arch)))))
|
||||
|
||||
#*************************************************************************
|
||||
$(foreach action, $(ACTIONS), \
|
||||
$(foreach arch, $(CROSS_ARCHS), \
|
||||
$(eval $(call DEP_template,$(action),$(arch)))))
|
||||
|
||||
# Allows rebuild to work with parallel builds option, -j.
|
||||
ifeq (rebuild,$(filter rebuild,$(MAKECMDGOALS)))
|
||||
@@ -52,8 +55,11 @@ ifeq (rebuild,$(filter rebuild,$(MAKECMDGOALS)))
|
||||
rebuild : install
|
||||
endif
|
||||
|
||||
archPart = $(word 2, $(subst $(DIVIDER), ,$@))
|
||||
actionPart = $(word 1, $(subst $(DIVIDER), ,$@))
|
||||
$(actionArchTargets) : $(buildDirs) O.Common
|
||||
$(MAKE) -C O.$(archPart) -f ../Makefile TOP=$(TOP)/.. T_A=$(archPart) $(actionPart)
|
||||
$(MAKE) -C O.$(archPart) -f ../Makefile TOP=$(TOP)/.. \
|
||||
T_A=$(archPart) $(actionPart)
|
||||
|
||||
$(BUILD_ARCHS) : % : O.% O.Common
|
||||
$(MAKE) -C O.$@ -f ../Makefile TOP=$(TOP)/.. T_A=$@
|
||||
@@ -66,8 +72,7 @@ $(buildDirs):
|
||||
O.Common:
|
||||
$(MKDIR) O.Common
|
||||
|
||||
#
|
||||
# special clean rule
|
||||
# Clean rules
|
||||
#
|
||||
clean: archsCommonClean
|
||||
|
||||
@@ -87,3 +92,7 @@ realclean:
|
||||
.PHONY : $(cleanArchTargets)
|
||||
.PHONY : $(BUILD_ARCHS) rebuild archsCommonClean
|
||||
.PHONY : $(ACTIONS) clean realclean archclean host all
|
||||
|
||||
# User specific rules
|
||||
#
|
||||
-include $(HOME)/configure/RULES_USER
|
||||
|
||||
@@ -15,28 +15,32 @@ ARCHS += $(BUILD_ARCHS)
|
||||
ACTIONS += inc build install buildInstall clean realclean archclean
|
||||
ACTIONS += runtests tapfiles
|
||||
|
||||
dirPart = $(join $(dir $@), $(word 1, $(subst $(DIVIDER), ,$(notdir $@))))
|
||||
|
||||
actionArchPart = $(join $(word 2, $(subst $(DIVIDER), ,$(notdir $@))), \
|
||||
$(addprefix $(DIVIDER),$(word 3, $(subst $(DIVIDER), ,$(notdir $@)))))
|
||||
|
||||
dirActionArchTargets = $(foreach dir, $(DIRS), \
|
||||
$(foreach action, $(ACTIONS),\
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(dir)$(DIVIDER)$(action)$(DIVIDER)$(arch))))
|
||||
$(foreach action, $(ACTIONS), \
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(dir)$(DIVIDER)$(action)$(DIVIDER)$(arch))))
|
||||
dirArchTargets += $(foreach dir, $(DIRS), \
|
||||
$(foreach arch, $(ARCHS),\
|
||||
$(dir)$(DIVIDER)$(arch)))
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(dir)$(DIVIDER)$(arch)))
|
||||
dirActionTargets += $(foreach dir, $(DIRS), \
|
||||
$(foreach action, $(ACTIONS),\
|
||||
$(dir)$(DIVIDER)$(action)))
|
||||
actionArchTargets = $(foreach action, $(ACTIONS),\
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(action)$(DIVIDER)$(arch)))
|
||||
$(foreach action, $(ACTIONS), \
|
||||
$(dir)$(DIVIDER)$(action)))
|
||||
actionArchTargets = $(foreach action, $(ACTIONS), \
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(action)$(DIVIDER)$(arch)))
|
||||
|
||||
all: install
|
||||
host: install$(DIVIDER)$(EPICS_HOST_ARCH)
|
||||
|
||||
# Include <top>/cfg/DIR_RULES* files from tops defined in RELEASE* files
|
||||
# Do this here so they can add ACTIONS
|
||||
#
|
||||
RELEASE_CFG_DIR_RULES = $(foreach top, $(RELEASE_TOPS), \
|
||||
$(wildcard $($(top))/cfg/DIR_RULES*))
|
||||
ifneq ($(RELEASE_CFG_DIR_RULES),)
|
||||
include $(RELEASE_CFG_DIR_RULES)
|
||||
endif
|
||||
|
||||
# Allows rebuild to work with parallel builds option, -j.
|
||||
ifeq (rebuild,$(filter rebuild,$(MAKECMDGOALS)))
|
||||
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)install): \
|
||||
@@ -49,30 +53,42 @@ endif
|
||||
define DEP_template1
|
||||
$(1): $$($(1)_DEPEND_DIRS)
|
||||
endef
|
||||
$(foreach dir, $(DIRS),$(eval $(call DEP_template1,$(dir))))
|
||||
$(foreach dir, $(DIRS), \
|
||||
$(eval $(call DEP_template1,$(dir))))
|
||||
|
||||
define DEP_template2
|
||||
$(1)$$(DIVIDER)$(2) : $$(foreach ddir, $$($(1)_DEPEND_DIRS),$$(addsuffix $$(DIVIDER)$(2),$$(ddir)))
|
||||
$(1)$$(DIVIDER)$(2) : $$(foreach ddir, $$($(1)_DEPEND_DIRS), \
|
||||
$$(addsuffix $$(DIVIDER)$(2),$$(ddir)))
|
||||
endef
|
||||
$(foreach action, $(ACTIONS), $(foreach dir, $(DIRS),$(eval $(call DEP_template2,$(dir),$(action)))))
|
||||
$(foreach action, $(ACTIONS), \
|
||||
$(foreach dir, $(DIRS), \
|
||||
$(eval $(call DEP_template2,$(dir),$(action)))))
|
||||
|
||||
define DEP_template3
|
||||
$(1)$$(DIVIDER)$(2) : $$(foreach ddir, $$($(1)_DEPEND_DIRS),$$(addsuffix $$(DIVIDER)$(2),$$(ddir)))
|
||||
$(1)$$(DIVIDER)$(2) : $$(foreach ddir, $$($(1)_DEPEND_DIRS), \
|
||||
$$(addsuffix $$(DIVIDER)$(2),$$(ddir)))
|
||||
endef
|
||||
$(foreach arch, $(ARCHS), $(foreach dir, $(DIRS),$(eval $(call DEP_template3,$(dir),$(arch)))))
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(foreach dir, $(DIRS), \
|
||||
$(eval $(call DEP_template3,$(dir),$(arch)))))
|
||||
|
||||
define DEP_template4
|
||||
$(1)$$(DIVIDER)$(2)$$(DIVIDER)$(3) : $$(foreach ddir, $$($(1)_DEPEND_DIRS),$$(addsuffix $$(DIVIDER)$(2)$$(DIVIDER)$(3),$$(ddir)))
|
||||
$(1)$$(DIVIDER)$(2)$$(DIVIDER)$(3) : $$(foreach ddir, $$($(1)_DEPEND_DIRS), \
|
||||
$$(addsuffix $$(DIVIDER)$(2)$$(DIVIDER)$(3),$$(ddir)))
|
||||
endef
|
||||
$(foreach arch, $(ARCHS), $(foreach action, $(ACTIONS), $(foreach dir, $(DIRS), \
|
||||
$(eval $(call DEP_template4,$(dir),$(action),$(arch))))))
|
||||
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(foreach action, $(ACTIONS), \
|
||||
$(foreach dir, $(DIRS), \
|
||||
$(eval $(call DEP_template4,$(dir),$(action),$(arch))))))
|
||||
|
||||
dirPart = $(join $(dir $@), $(word 1, $(subst $(DIVIDER), ,$(notdir $@))))
|
||||
actionArchPart = $(join $(word 2, $(subst $(DIVIDER), ,$(notdir $@))), \
|
||||
$(addprefix $(DIVIDER),$(word 3, $(subst $(DIVIDER), ,$(notdir $@)))))
|
||||
$(DIRS) $(dirActionTargets) $(dirArchTargets) $(dirActionArchTargets) :
|
||||
$(MAKE) -C $(dirPart) $(actionArchPart)
|
||||
|
||||
$(ARCHS) $(ACTIONS) $(actionArchTargets) :%: \
|
||||
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)%)
|
||||
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)%)
|
||||
|
||||
.PHONY : $(DIRS) all host rebuild
|
||||
.PHONY : $(ARCHS) $(ACTIONS)
|
||||
@@ -80,3 +96,7 @@ $(ARCHS) $(ACTIONS) $(actionArchTargets) :%: \
|
||||
.PHONY : $(dirActionArchTargets)
|
||||
.PHONY : $(actionArchTargets)
|
||||
|
||||
|
||||
# User specific rules
|
||||
#
|
||||
-include $(HOME)/configure/RULES_USER
|
||||
|
||||
@@ -6,27 +6,27 @@
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Revision-Id$
|
||||
#
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Include <top>/configure/RULES_BUILD definitions from tops defined in RELEASE* files
|
||||
# Include <top>/configure/RULES_BUILD from tops defined in RELEASE* files
|
||||
#
|
||||
RELEASE_RULES_BUILDS = $(foreach top, $(RELEASE_TOPS), $(wildcard $($(top))/configure/RULES_BUILD))
|
||||
RELEASE_RULES_BUILDS = $(foreach top, $(RELEASE_TOPS), \
|
||||
$(wildcard $($(top))/configure/RULES_BUILD))
|
||||
ifneq ($(RELEASE_RULES_BUILDS),)
|
||||
include $(RELEASE_RULES_BUILDS)
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Include <top>/cfg/RULES* definitions from tops defined in RELEASE* files
|
||||
# Include <top>/cfg/RULES* files from tops defined in RELEASE* files
|
||||
#
|
||||
RELEASE_CFG_RULES = $(foreach top, $(RELEASE_TOPS), $(wildcard $($(top))/cfg/RULES*))
|
||||
RELEASE_CFG_RULES = $(foreach top, $(RELEASE_TOPS), \
|
||||
$(wildcard $($(top))/cfg/RULES*))
|
||||
ifneq ($(RELEASE_CFG_RULES),)
|
||||
include $(RELEASE_CFG_RULES)
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# If this is not BASE then include TOP/configure/RULES_BUILD definitions
|
||||
# If this is not BASE then include <TOP>/configure/RULES_BUILD
|
||||
#
|
||||
ifeq ($(wildcard $(TOP)/configure/CONFIG_BASE_VERSION),)
|
||||
TOP_RULES_BUILDS = $(wildcard $(TOP)/configure/RULES_BUILD)
|
||||
@@ -35,40 +35,42 @@ ifneq ($(TOP_RULES_BUILDS),)
|
||||
endif
|
||||
endif
|
||||
|
||||
#---------------------------------------------
|
||||
# Include our own $(INSTALL_CFG)/RULES* definitions
|
||||
# Include our own $(INSTALL_CFG)/RULES* files
|
||||
#
|
||||
TOP_CFG_RULES = $(wildcard $(INSTALL_CFG)/RULES*)
|
||||
ifneq ($(TOP_CFG_RULES),)
|
||||
include $(TOP_CFG_RULES)
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
|
||||
# Rules to install each FILE_TYPE
|
||||
#
|
||||
define FILE_TYPE_template
|
||||
|
||||
$(1) += $$(if $$(strip $$($(1)_$$(OS_CLASS))),$$(subst -nil-,,$$($(1)_$$(OS_CLASS))), $$($(1)_DEFAULT))
|
||||
|
||||
$(1) += $$(if $$(strip $$($(1)_$(OS_CLASS))), \
|
||||
$$(subst -nil-,,$$($(1)_$(OS_CLASS))), \
|
||||
$$($(1)_DEFAULT))
|
||||
INSTALLS_$(1) = $$($(1):%=$$(INSTALL_$(1))/%)
|
||||
|
||||
$$(INSTALL_$(1))/%: ../%
|
||||
$(ECHO) "Installing $(1) file $$@"
|
||||
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$< $$(dir $$@)
|
||||
|
||||
$$(INSTALL_$(1))/%: %
|
||||
$(ECHO) "Installing $(1) file $$@"
|
||||
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$< $$(dir $$@)
|
||||
|
||||
buildInstall : $$(INSTALLS_$(1))
|
||||
|
||||
buildInstall: $$(INSTALLS_$(1))
|
||||
endef
|
||||
$(foreach type, $(FILE_TYPE), \
|
||||
$(eval $(call FILE_TYPE_template,$(strip $(type)))))
|
||||
|
||||
$(foreach type, $(FILE_TYPE),$(eval $(call FILE_TYPE_template,$(strip $(type)))))
|
||||
#---------------------------------------------
|
||||
|
||||
# Cleaning FILE_TYPE files
|
||||
#
|
||||
clean: file_type_clean
|
||||
|
||||
file_type_clean:
|
||||
@$(RM) $(foreach type, $(FILE_TYPE), $($(type)))
|
||||
|
||||
.PHONY : file_type_clean
|
||||
|
||||
# User specific rules
|
||||
#
|
||||
-include $(HOME)/configure/RULES_USER
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Revision-Id$
|
||||
# $Revision-Id$
|
||||
#
|
||||
|
||||
include $(CONFIG)/RULES_DIRS
|
||||
|
||||
distclean: realclean cvsclean realuninstall
|
||||
|
||||
CVSCLEAN=$(firstword $(wildcard $(TOOLS)/cvsclean.pl $(TOP)/src/tools/cvsclean.pl))
|
||||
CVSCLEAN = $(call FIND_TOOL,cvsclean.pl)
|
||||
cvsclean:
|
||||
$(PERL) $(CVSCLEAN)
|
||||
|
||||
@@ -22,16 +22,14 @@ realuninstall: uninstallDirs
|
||||
$(RMDIR) $(INSTALL_LOCATION_BIN)
|
||||
$(RMDIR) $(INSTALL_LOCATION_LIB)
|
||||
|
||||
UNINSTALL_DIRS += $(INSTALL_DBD) $(INSTALL_INCLUDE) $(INSTALL_DOC)
|
||||
UNINSTALL_DIRS += $(INSTALL_HTML) $(INSTALL_TEMPLATES) $(INSTALL_DB)
|
||||
UNINSTALL_DIRS += $(DIRECTORY_TARGETS)
|
||||
UNINSTALL_DIRS += $(INSTALL_DBD) $(INSTALL_INCLUDE) $(INSTALL_DOC) \
|
||||
$(INSTALL_HTML) $(INSTALL_TEMPLATES) $(INSTALL_DB) $(DIRECTORY_TARGETS)
|
||||
uninstallDirs:
|
||||
$(RMDIR) $(UNINSTALL_DIRS)
|
||||
|
||||
uninstall: archuninstall uninstallDirs
|
||||
|
||||
archuninstall: $(addprefix uninstall$(DIVIDER),$(BUILD_ARCHS))
|
||||
@$(MAKE) -f Makefile cleandirs
|
||||
archuninstall: $(addprefix uninstall$(DIVIDER),$(BUILD_ARCHS)) | cleandirs
|
||||
|
||||
archPart = $(word 2, $(subst $(DIVIDER), ,$@))
|
||||
uninstall$(DIVIDER)%:
|
||||
@@ -39,14 +37,14 @@ uninstall$(DIVIDER)%:
|
||||
$(RMDIR) $(INSTALL_LOCATION_LIB)/$(archPart)
|
||||
|
||||
cleandirs:
|
||||
@$(NOP)
|
||||
ifeq ($(wildcard $(INSTALL_LOCATION_BIN)/*),)
|
||||
$(RMDIR) $(INSTALL_LOCATION_BIN)
|
||||
endif
|
||||
ifeq ($(wildcard $(INSTALL_LOCATION_LIB)/*),)
|
||||
$(RMDIR) $(INSTALL_LOCATION_LIB)
|
||||
endif
|
||||
@echo
|
||||
# The echo above stops a "nothing to be done for cleandirs" message
|
||||
|
||||
|
||||
help:
|
||||
@echo "Usage: gnumake [options] [target] ..."
|
||||
@@ -82,3 +80,10 @@ help:
|
||||
.PHONY: cleandirs distclean cvsclean realuninstall archuninstall uninstallDirs
|
||||
.PHONY: uninstall help
|
||||
|
||||
# Include <top>/cfg/TOP_RULES* files from tops defined in RELEASE* files
|
||||
#
|
||||
RELEASE_CFG_TOP_RULES = $(foreach top, $(RELEASE_TOPS), \
|
||||
$(wildcard $($(top))/cfg/TOP_RULES*))
|
||||
ifneq ($(RELEASE_CFG_TOP_RULES),)
|
||||
include $(RELEASE_CFG_TOP_RULES)
|
||||
endif
|
||||
|
||||
@@ -14,6 +14,31 @@
|
||||
<h2 align="center">Changes between 3.15.1 and 3.15.2</h2>
|
||||
<!-- Insert new items immediately below here ... -->
|
||||
|
||||
<h3>Changes to <top>/cfg/* files</h3>
|
||||
|
||||
<p>The order in which cfg/CONFIG* and cfg/RULES* files are included from support
|
||||
applications listed in the configure/RELEASE* files has been changed. Previously
|
||||
these files were included in the order in which the top areas are listed in the
|
||||
RELEASE file, but it makes more sense to load them in reverse order since later
|
||||
entries override earlier ones in Makefiles but the release file order is
|
||||
supposed to allow earlier entries to take precedence over later ones. The same
|
||||
change has been made to the inclusion of the <top>/configure/RULES_BUILD
|
||||
files.</p>
|
||||
|
||||
<p>Two new file types can also be provided in a module's cfg directory. Files
|
||||
named TOP_RULES* will be included by the top-level Makefile of other modules
|
||||
that refer to this module; files name DIR_RULES* will be included by all
|
||||
Makefiles that merely descend into lower-level directories. The cfg/RULES* files
|
||||
are only included when make is building code inside the O.<arch>
|
||||
directories.</p>
|
||||
|
||||
<p>The new cfg/DIR_RULES* file inclusion was designed to permit new recursive
|
||||
make actions to be implemented by appending the name of the new action to the
|
||||
ACTIONS variable. There must be a matching rule in one of the cfg/RULES* files
|
||||
when doing this. Similar rules may also be defined in the cfg/TOP_RULES* and/or
|
||||
cfg/DIR_RULES* files, but these should only state prerequisites and not directly
|
||||
provide commands to be executed.</p>
|
||||
|
||||
<h3>Build rules for RTEMS GESYS modules</h3>
|
||||
|
||||
<p>RTEMS target builds can now be configured to make GESYS modules by changing
|
||||
|
||||
Reference in New Issue
Block a user