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
<2006>
2007
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
<2006>
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|