g+
g+ Communities
Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014 
<== Date ==> <== Thread ==>

Subject: Proposal to add site-specific TOP_RULES
From: Benjamin Franksen <benjamin.franksen@helmholtz-berlin.de>
To: <core-talk@aps.anl.gov>
Date: Thu, 28 Feb 2013 15:42:10 +0100
Hi All

I propose an enhancement to the EPICS build system, for both 3.14 and 3.15 
branches.

Since (at least) 3.14.12 users have the possibility to add build rules and 
configuration by installing RULES* and CONFIG* files into the <top>/cfg (using 
CFG += <filename>). This is supported by base/configure/RULES_BUILD including 
(through base/configure/RULES_FILE_TYPE) all cfg/RULES* files found in any of 
the support modules (as defined in configure/RELEASE). This is very nice, but 
works only on the level of xyzApp directories, not in TOP, because RULES_TOP 
deliberately does not include RULES_BUILD.

However, adding site specific rules at the top level is very useful, for 
instance in order to standardize deployment mechanisms across a site. Another 
application is to add rules that automatically generate top-level indexes e.g. 
for generated documentation.

The proposal is therefore to add an analogous mechanism to 
base/configure/RULES_TOP, so users can add site-specific rules that are 
included only by the top level Makefile. The wildcard pattern I am proposing 
for this case is "TOP_RULES*" (which avoids overlap with the "RULES*" 
pattern). Effectively, cfg/TOP_RULES* files found in any support modules 
mention in configure/RELEASE will be included by base/configure/RULES_TOP.

I attached a patch file that implements the proposal (a 7 lines addition to 
base/configure/RULES_TOP).

The proposal is backwards compatible: existing applications should continue to 
work (build) as before, which is why I propose it for the 3.14 branch, too.

Cheers
-- 
Ben Franksen
()  ascii ribbon campaign - against html e-mail 
/\  www.asciiribbon.org   - against proprietary attachments
Thu Feb 28 15:14:56 CET 2013  benjamin.franksen@helmholtz-berlin.de
  * extend the cfg mechanism to RULES_TOP
diff -rN -u old-3-14-12-2-1/configure/RULES_TOP new-3-14-12-2-1/configure/RULES_TOP
--- old-3-14-12-2-1/configure/RULES_TOP	2013-02-28 15:18:58.884000662 +0100
+++ new-3-14-12-2-1/configure/RULES_TOP	2013-02-28 15:18:59.043993605 +0100
@@ -82,3 +82,10 @@
 .PHONY: cleandirs distclean cvsclean realuninstall archuninstall uninstallDirs
 .PHONY: uninstall help
 
+#---------------------------------------------------------------
+# Include <top>/cfg/TOP_RULES* definitions 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

Attachment: signature.asc
Description: This is a digitally signed message part.


Navigate by Date:
Prev: New API for batched dbGet/dbPut Michael Davidsaver
Next: gethostbyname and getaddrinfo - multiple DNS entries for a hostname matthew.pearson
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014 
Navigate by Thread:
Prev: Re: New API for batched dbGet/dbPut Michael Davidsaver
Next: gethostbyname and getaddrinfo - multiple DNS entries for a hostname matthew.pearson
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICSv4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·