EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: Build system EXPAND not working with INC
From: "J. Lewis Muir" <[email protected]>
To: EPICS Tech-Talk <[email protected]>
Date: Thu, 11 Dec 2014 11:54:43 -0600
Hello, Tech-Talkers.

On Darwin, with EPICS Base 3.14.12.4, I'd like to create and install a C
header file that has some @VAR@ macros expanded using the INC, EXPAND,
and EXPAND_VARS build system variables as described in the EPICS Base
3.14 release notes, but the build fails with the following error:

===
make[3]: *** No rule to make target `../O.Common/favorites.h', needed by `inc'.  Stop.
===

Here's how to reproduce the problem:

1. $ mkdir example

2. $ cd example

3. $ makeBaseApp.pl -t example example

4. Create the file exampleApp/src/favorites.h@ containing the line:

     #define FAVCOLOR @FAVCOLOR@

5. Add the lines

     EXPAND_VARS += FAVCOLOR=red
     EXPAND += favorites.h@
     INC += favorites.h

   below the line "#  ADD MACRO DEFINITIONS AFTER THIS LINE" in
   exampleApp/src/Makefile:

   $ vi exampleApp/src/Makefile

6. make

This produces the following output:

===
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ./configure install 
perl /opt/epics-3.14.12.4/bin/darwin-x86/makeMakefile.pl O.darwin-x86 ../..
mkdir O.Common
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C O.darwin-x86 -f ../Makefile TOP=../.. T_A=darwin-x86 install
perl /opt/epics-3.14.12.4/bin/darwin-x86/convertRelease.pl checkRelease
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ./exampleApp install 
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C ./src install 
perl /opt/epics-3.14.12.4/bin/darwin-x86/makeMakefile.pl O.darwin-x86 ../../..
mkdir O.Common
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C O.darwin-x86 -f ../Makefile TOP=../../.. T_A=darwin-x86 install
perl /opt/epics-3.14.12.4/bin/darwin-x86/makeIncludeDbd.pl base.dbd xxxSupport.dbd dbSubExample.dbd exampleHello.dbd initTrace.dbd exampleInclude.dbd
echo "../O.Common/exampleInclude.dbd : ../Makefile" >> example.dbd.d
Expanding dbd
Installing dbd file ../../../dbd/xxxSupport.dbd
mkdir ../../../dbd
Installing created dbd file ../../../dbd/example.dbd
Installing dbd file ../../../dbd/xxxRecord.dbd
make[3]: *** No rule to make target `../O.Common/favorites.h', needed by `inc'.  Stop.
make[2]: *** [install.darwin-x86] Error 2
make[1]: *** [src.install] Error 2
make: *** [exampleApp.install] Error 2
===

Am I doing something wrong, or is this broken?

I can achieve what I want by renaming favorites.h@ to favorites.h.in
and writing my own rule with the following four lines in
exampleApp/src/Makefile instead of the three listed above:

  ../O.Common/favorites.h: ../favorites.h.in
  	$(PERL) $(TOOLS)/expandVars.pl -t $(INSTALL_LOCATION) \
  	    -D FAVCOLOR=red $< $@
  INC += favorites.h

But it would be nice if I didn't need to do this.

Environment:
* Processor: 2.3 GHz Intel Core i7 (4 cores)
* Memory: 8 GB
* OS: Mac OS X 10.10.1
* EPICS Base 3.14.12.4 + Known Problems patches up to 2014-04-07
  Architecture: darwin-x86
  Architecture Class: x86_64

Thank you!

Lewis

Replies:
Re: Build system EXPAND not working with INC Andrew Johnson

Navigate by Date:
Prev: Re: read status nin "" 0 error with Ana Malagon
Next: Re: Changing the Timeout for drvAsynSerialPort? Franklin Fuller
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: about signal generator's control Mark Rivers
Next: Re: Build system EXPAND not working with INC Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·