We have some complex makefiles which rely on "echo blah | make -f -" to do some internal tasks. These are not easily rewritten as some come from open source packages. I was disappointed to discover when trying to switch to emake that it doesn't support makefiles on stdin:
% echo all: | emake -f - make: -: No such file or directory make: *** No rule to make target `-'. Stop.
Is this just an oversight? Any chance it's addressed in 7.0? We're using 6.0.1.40766.
Answer by eric melski · May 18, 2013 at 04:58 PM
Starting with Accelerator 11.0, Electric Make will automatically detect when it's been invoked to read a makefile from stdin and handle that in a manner compatible with gmake-based builds. However, be aware that in those cases emake will execute the submake in "local mode", meaning it will be a single threaded, monolithic job -- not handled using the submake stub as submakes usually are. For every case we've seen in practice, this is fine -- usually this construct is used for trivial activities. If you're trying to pipe some huge submake to emake, you'd be better off restructuring that to better take advantage of emake's capabilities.
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.