Hi
I tried to fix the INC_<osclass> problem "by hand" like this:
ifeq ($(OS_CLASS),vxWorks)
inc: $(INSTALL_INCLUDE)/os/$(OS_CLASS)/bla.h
endif
instead of defining INC_vxWorks. This seems to work.
Now, in my real application the build was still broken, but only when
using parallel make i.e. make -j. I reproduced this in my cut-down
example with the following Makefile:
"""
TOP = ..
include $(TOP)/configure/CONFIG
#-----------------------------------------------
# ADD MACRO DEFINITIONS AFTER THIS LINE
inc: $(INSTALL_INCLUDE)/os/$(OS_CLASS)/bla.h
LIBRARY_IOC += bla
bla_SRCS += bla.c
include $(TOP)/configure/RULES
#-----------------------------------------------
# ADD RULES AFTER THIS LINE
bla.h:
sleep 1
echo "struct x {int y; };" > bla.h
"""
(The bla.c is trivial and includes bla.h).
This fails with
franksen@tiber: ~/tmp/inc-bug > make -sj distclean && make -sj
../bla.c:1:17: fatal error: bla.h: No such file or directory
compilation terminated.
make[2]: *** [bla.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [install.linux-x86] Error 2
make: *** [bugApp.install] Error 2
However, it works if I add an explicit dependency in the Makefile:
bla.o: bla.h
Inspecting the generated dependency makefile snippets shows why the
parallel build fails: they are empty:
franksen@tiber: ~/tmp/inc-bug > find -name *.d
./bugApp/O.RTEMS-mvme2100/bla.d
./bugApp/O.RTEMS-mvme5500/bla.d
franksen@tiber: ~/tmp/inc-bug > cat ./bugApp/O.RTEMS-mvme2100/bla.d
franksen@tiber: ~/tmp/inc-bug > cat ./bugApp/O.RTEMS-mvme5500/bla.d
Cheers
Ben
--
"Make it so they have to reboot after every typo." ― Scott Adams
Attachment:
signature.asc
Description: This is a digitally signed message part.
- Replies:
- RE: Another build-system bug in 3.14.12 Mark Rivers
- Navigate by Date:
- Prev:
Re: Problem with generating and installing OS specific header Benjamin Franksen
- Next:
RE: Another build-system bug in 3.14.12 Mark Rivers
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
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:
Re: Problem with generating and installing OS specific header Andrew Johnson
- Next:
RE: Another build-system bug in 3.14.12 Mark Rivers
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
<2014>
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|