EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Bug in generated MakefileInclude?
From: Janet Anderson <[email protected]>
To: [email protected]
Cc: EPICS core-talk <[email protected]>
Date: Thu, 14 Dec 2006 09:33:10 -0600
I don't see the build problem. The file exampleApp/src/sncProgram.st is not part
of  the product example, it is part of  the host product sncProgram.

The file sncExample.stt is part of the product example and when I define
SNCSEQ in the RELEASE file, build the ioc application, and then touch
src/sncExample.stt and do a make the example (from PROD_IOC_vxWorks = example)
is rebuilt.

Libraries outside the ioc application  will not be dependancies. The
ioc application RELEASE file contains the following lines:

# NOTE: The build does not check dependencies against files
# that are outside this application, thus you should run
# "gnumake distclean install" in the top directory each time
# EPICS_BASE, SNCSEQ, or any other external module defined
# in the RELEASE file is rebuilt.
#

Janet

Benjamin Franksen wrote:
When, in the makeBaseApp-generated example, in exampleApp/src/Makefile I change

PROD_IOC = example

to

PROD_IOC_vxWorks = example

then the product no longer depends on neither sources nor libraries. I can do e.g.

aragon: .../work/test > make -s
[...make builds everything...]
aragon: .../work/test > touch exampleApp/src/sncProgram.st aragon: .../work/test > make -s
[...silence, nothing is done...]
aragon: .../work/test > I suspect that the problem is in the generated MakefileInclude. Here is a snippet:

ifeq ($(filter example,$(TESTPROD) $(PROD)),example)
ifeq (,$(strip $(example_OBJS) $(PRODUCT_OBJS)))
example_OBJS+=example$(OBJ)
endif
example_RESS+=$(addsuffix $(RES),$(basename $(example_RCS)))
example_OBJSNAME+=$(addsuffix $(OBJ),$(basename $(example_OBJS)))
example_DEPLIBS=$(foreach lib, $(example_LDLIBS),\
 $(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).*,\
 $($(lib)_DIR) $(SHRLIB_SEARCH_DIRS)))\
 $(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_SUFFIX),\
 $(firstword $($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))/)))
example$(EXE): $(example_OBJSNAME) $(example_RESS) $(example_DEPLIBS)
endif

So example will depend on its libraries only if mentioned in either PROD or TESTPROD, but not if mentioned only in e.g. PROD_IOC_vxWorks.

I have no idea what the outer ifeq...endif is good for; maybe it could be removed?

Would be nice if this could be fixed before 3.14.9 comes out.

Cheers
Ben


Replies:
[solved:] no bug in build system (though questions remain) Benjamin Franksen
References:
Bug in generated MakefileInclude? Benjamin Franksen

Navigate by Date:
Prev: Bug in generated MakefileInclude? Benjamin Franksen
Next: Re: [Fwd: EPICS Base @ HP-UX: Volunteers wanted] Andrew Johnson
Index: 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Bug in generated MakefileInclude? Benjamin Franksen
Next: [solved:] no bug in build system (though questions remain) Benjamin Franksen
Index: 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·