A user has an existing complex build script that recursively generates makefile fragments and then uses them in subbuild operations later in the script. These fragments are stored as temporary files (that are certainly visible in the filesystem) but when the submake comes to use them, it complains that the file cannot be found. Is there a solution or workaround?
EDIT
For example, emake on build server sends job to agent.
On the agent, the job runs:
echo {makefile lines} > ex2.mk emake -f ex2.mk
This recursive emake invocation gets stubbed back to the build server, then it complains that it can't find ex2.mk even though it can be listed in the filesystem.
Answer by eric melski · Apr 24, 2012 at 06:31 PM
The simple example you describe works correctly:
ericm@chester:/tmp/ask$ cat Makefile all: echo "all: ; @echo done" > sub.mk $(MAKE) -f sub.mk
ericm@chester:/tmp/ask$ emake --emake-root=`pwd` --emake-cm=linbuild-cm Starting build: 86454 echo "all: ; @echo done" > sub.mk emake -f sub.mk make[1]: Entering directory `/tmp/ask' done make[1]: Leaving directory `/tmp/ask' Finished build: 86454 Duration: 0:00 (m:s) Cluster availability: 100%
So there must be more to your scenario. One possibility that comes to mind is that the sub-makefile is created outside the emake root. An emake annotation file with `lookup` level annotation would be pretty helpful in this situation.
Electric Cloud powers Continuous Delivery, helping organizations developing deliver better software faster by automating and accelerating build, test, and deployment processes at scale. Industry leaders like Qualcomm, SpaceX, Cisco, GE, Gap, and E*TRADE use Electric Cloud solutions to boost DevOps productivity and Agile throughput.