Add RULES_COMMON
This adds new make targets 'PRINT.<var-name>' and 'show-makefiles' which are useful for debugging build problems.
This commit is contained in:
@ -90,6 +90,4 @@ realclean:
|
|||||||
.PHONY : $(BUILD_ARCHS) rebuild archsCommonClean
|
.PHONY : $(BUILD_ARCHS) rebuild archsCommonClean
|
||||||
.PHONY : $(ACTIONS) clean realclean archclean host all
|
.PHONY : $(ACTIONS) clean realclean archclean host all
|
||||||
|
|
||||||
# User specific rules
|
include $(CONFIG)/RULES_COMMON
|
||||||
#
|
|
||||||
-include $(HOME)/configure/RULES_USER
|
|
||||||
|
@ -530,5 +530,7 @@ $(INSTALL_TEMPLATES_SUBDIR)/%: %
|
|||||||
.PHONY: runtests tapfiles clean-tests test-results junitfiles
|
.PHONY: runtests tapfiles clean-tests test-results junitfiles
|
||||||
.PHONY: checkRelease warnRelease noCheckRelease FORCE
|
.PHONY: checkRelease warnRelease noCheckRelease FORCE
|
||||||
|
|
||||||
|
include $(CONFIG)/RULES_COMMON
|
||||||
|
|
||||||
endif # BASE_RULES_BUILD
|
endif # BASE_RULES_BUILD
|
||||||
# EOF RULES_BUILD
|
# EOF RULES_BUILD
|
||||||
|
33
configure/RULES_COMMON
Normal file
33
configure/RULES_COMMON
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#*************************************************************************
|
||||||
|
# Copyright (c) 2018 UChicago Argonne LLC, as Operator of Argonne
|
||||||
|
# National Laboratory.
|
||||||
|
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||||
|
# in the file LICENSE that is included with this distribution.
|
||||||
|
#*************************************************************************
|
||||||
|
|
||||||
|
# These rules show the set of Makefiles, config files and
|
||||||
|
# rules files loaded by GNUmake.
|
||||||
|
|
||||||
|
SHOW_MAKEFILES = $(MAKEFILE_LIST:%=show-makefile.%)
|
||||||
|
show-makefiles: $(SHOW_MAKEFILES)
|
||||||
|
|
||||||
|
# The sort prevents warnings about duplicate targets:
|
||||||
|
$(sort $(SHOW_MAKEFILES)): show-makefile.%:
|
||||||
|
@echo " $(@:show-makefile.%=%)"
|
||||||
|
|
||||||
|
.PHONY: show-makefiles show-makefile.%
|
||||||
|
|
||||||
|
# These rules support printing a Makefile variable values.
|
||||||
|
# Many variables are only set inside an O.<arch> build directory.
|
||||||
|
# make PRINT.T_A
|
||||||
|
|
||||||
|
PRINT_Var = $(@:PRINT.%=%)
|
||||||
|
PRINT.%:
|
||||||
|
@echo "$(PRINT_Var) = '$($(PRINT_Var))'"
|
||||||
|
|
||||||
|
.PHONY: PRINT PRINT.%
|
||||||
|
|
||||||
|
|
||||||
|
# User specific rules
|
||||||
|
#
|
||||||
|
-include $(HOME)/configure/RULES_USER
|
@ -92,7 +92,4 @@ $(ARCHS) $(ACTIONS) $(actionArchTargets) :%: \
|
|||||||
.PHONY : $(dirActionArchTargets)
|
.PHONY : $(dirActionArchTargets)
|
||||||
.PHONY : $(actionArchTargets)
|
.PHONY : $(actionArchTargets)
|
||||||
|
|
||||||
|
include $(CONFIG)/RULES_COMMON
|
||||||
# User specific rules
|
|
||||||
#
|
|
||||||
-include $(HOME)/configure/RULES_USER
|
|
||||||
|
@ -67,7 +67,3 @@ file_type_clean:
|
|||||||
@$(RM) $(foreach type, $(FILE_TYPE), $($(type)))
|
@$(RM) $(foreach type, $(FILE_TYPE), $($(type)))
|
||||||
|
|
||||||
.PHONY : file_type_clean
|
.PHONY : file_type_clean
|
||||||
|
|
||||||
# User specific rules
|
|
||||||
#
|
|
||||||
-include $(HOME)/configure/RULES_USER
|
|
||||||
|
@ -19,6 +19,22 @@
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
<h3>GNUmake targets for debugging</h3>
|
||||||
|
|
||||||
|
<p>Some additional build rules have been added to help debug configuration
|
||||||
|
problems with the build system. Run <tt>make show-makefiles</tt> to get a sorted
|
||||||
|
list of all the files that the build system includes when building in the
|
||||||
|
current directory.</p>
|
||||||
|
|
||||||
|
<p>A new pattern rule for <tt>PRINT.%</tt> can be used to show the value of any
|
||||||
|
GNUmake variable for the current build directory (make sure you are in the right
|
||||||
|
directory though, many variables are only set when inside the
|
||||||
|
<tt>O.<i>arch</i></tt> build directory). For example <tt>make PRINT.T_A</tt>
|
||||||
|
will display the build target architecture name from inside a
|
||||||
|
<tt>O.<i>arch</i></tt> directory but the variable will be empty from an
|
||||||
|
application top or src directory. <tt>make PRINT.EPICS_BASE</tt> will show the
|
||||||
|
path to Base from any EPICS application directory though.</p>
|
||||||
|
|
||||||
<h3>Propagate PUTF across Asynchronous record processing</h3>
|
<h3>Propagate PUTF across Asynchronous record processing</h3>
|
||||||
|
|
||||||
<p>The IOC contains a mechanism involving the PUTF and RPRO fields of each
|
<p>The IOC contains a mechanism involving the PUTF and RPRO fields of each
|
||||||
|
Reference in New Issue
Block a user