EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  <20032004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  <20032004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: configure/RELEASE contents
From: Benjamin Franksen <[email protected]>
To: [email protected]
Date: Tue, 11 Nov 2003 15:16:27 +0100
On Monday 10 November 2003 17:51, you wrote:
> Benjamin Franksen wrote:
> > Including other makefiles doesn't work because convertRelease.pl
> > just looks at definitions (of the form NAME=VALUE), not at
> > everything (gnu-)make understands (include, etc...).
>
> The configure/RELEASE file was designed to contain only filesystem
> location information for the build system to use, and the syntax must
> be reasonably simple because we don't want to make the parser too
> complicated

I was not proposing to make convertRelease.pl more intelligent. I was 
proposing the exact opposite i.e. use the existing gnumake we already 
have and make the script simpler. The only defect is: With what I 
proposed environment variables are not easily ruled out of the picture, 
since EPICS build process depends on one or two env vars to work 
correctly.

Also note that RELEASE is included in EPICS makefiles, which suggests to 
the unsuspecting non-epert that other make variables may be used in 
RELEASE.

> (we can't do everything with just gnumake which is why we
> have to parse it ourselves).

Yes (to the first statement) and no (to the second). As i already 
demonstrated, expanding the right hand side to the final values is 
easily possible from inside gnumake.

Another solution would be start an independent make run (one more will 
hardly slow things down) with dedicated makefile and appropriate 
options set (no environment, none of the other standard EPICS make 
variables defined).

> Any other build configuration
> information should probably be in the configure/CONFIG or
> configure/CONFIG_APP files instead.
>
> The convertRelease.pl parser understands include statements that
> point to other RELEASE files, causing it to read and parse them in
> turn.

Yes, if their filename starts with "RELEASE", which i discovered just 
now. Note that parsing RELEASE file is around since approx. 3.13.2, 
when it was called makeConfigAppInclude.pl and could neither expand 
variables in definitions nor include other files.

Ben

P.S. Have you ever read "Recursive Make Considered Harmful" (http://
www.tip.net.au/~millerp/rmch/recu-make-cons-harm.html)? If not, do. 
Then let us discuss how the EPICS build system should be redesigned so 
that things like parsing configure/RELEASE files (in order to partly 
re-implement make) won't any longer be necessary. Discussions like the 
above are IMO just another symptom for the general recursive make 
disease.


References:
configure/RELEASE contents Geoff Savage
Re: configure/RELEASE contents Benjamin Franksen
Re: configure/RELEASE contents Andrew Johnson

Navigate by Date:
Prev: Re: syncronisation bettween records kuner
Next: Re: Help about building a example under cygwin Geoff Savage
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  <20032004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: configure/RELEASE contents Andrew Johnson
Next: building et_wish on HP-UX Bill Cruise
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  <20032004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·