Hi, I've discovered some odd behaviour with make v3.79.1 as included with the CygWin development tools package.
When calling ccppc (a PowerPC cross-compiler) via make, any error messages generated by ccppc do not get printed. It seems like make is somehow redirecting the STDERR stream so that anything printed to STDERR does not get printed on-screen. I have tried calling gcc instead of ccppc and saw all expected error messages. I also tried using a different version of make (v3.74 as shipped with Tornado 2.2) with both ccppc and gcc. In both cases I saw the expected error messages. It is only the combination of make 3.79.1 (from Cygwin) and ccppc that appears to suffer from this issue. Naturally, this is the combination of tools I require. ;-) The make file I am using contains the following: --------------------------------------------------------------------------- MY_PPC_COMPILER = ccppc MY_GNU_COMPILER = gcc ifeq ($(FOR_PPC), 1) COMPILE = $(MY_PPC_COMPILER) else COMPILE = $(MY_GNU_COMPILER) endif all : $(COMPILE) -c -o client.o client.cpp --------------------------------------------------------------------------- Note that the file being compiled does not exist. This should thus produce a file not found error. The script I am using to call make uses the following commands: --------------------------------------------------------------------------- echo ====================================== echo Test Cygwin make with GCC echo ====================================== c:/cygwin/bin/make --debug=v echo ====================================== echo echo ====================================== echo Test Cygwin make with CCPPC echo ====================================== c:/cygwin/bin/make FOR_PPC=1 --debug=v echo ====================================== echo echo ====================================== echo Test Tornado make with GCC echo ====================================== $WIND_BASE/host/x86-win32/bin/make -v $WIND_BASE/host/x86-win32/bin/make echo ====================================== echo echo ====================================== echo Test Tornado make with CCPPC echo ====================================== $WIND_BASE/host/x86-win32/bin/make FOR_PPC=1 -v $WIND_BASE/host/x86-win32/bin/make FOR_PPC=1 echo ====================================== echo echo ====================================== echo Just calling CCPPC without make echo ====================================== ccppc -c -o client.o client.cpp echo ====================================== echo --------------------------------------------------------------------------- I am calling the script via a batch file whose contents are as follows: --------------------------------------------------------------------------- bash test_make.sh > test_make.log 2>&1 --------------------------------------------------------------------------- The results as captured in test_make.log are: --------------------------------------------------------------------------- ====================================== Test Cygwin make with GCC ====================================== GNU Make version 3.79.1, by Richard Stallman and Roland McGrath. Built for i686-pc-cygwin Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Report bugs to <[EMAIL PROTECTED]>. Reading makefiles... Reading makefile `makefile'... Updating goal targets.... Considering target file `all'. File `all' does not exist. Finished prerequisites of target file `all'. Must remake target `all'. gcc -c -o client.o client.cpp gcc: client.cpp: No such file or directory gcc: no input files make: *** [all] Error 1 ====================================== ====================================== Test Cygwin make with CCPPC ====================================== GNU Make version 3.79.1, by Richard Stallman and Roland McGrath. Built for i686-pc-cygwin Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Report bugs to <[EMAIL PROTECTED]>. Reading makefiles... Reading makefile `makefile'... Updating goal targets.... Considering target file `all'. File `all' does not exist. Finished prerequisites of target file `all'. Must remake target `all'. ccppc -c -o client.o client.cpp make: *** [all] Error 1 ====================================== ====================================== Test Tornado make with GCC ====================================== GNU Make version 3.74 (vpath+), by Richard Stallman and Roland McGrath. Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. gcc -c -o client.o client.cpp gcc: client.cpp: No such file or directory gcc: no input files make.exe: *** [all] Error 0x1 ====================================== ====================================== Test Tornado make with CCPPC ====================================== GNU Make version 3.74 (vpath+), by Richard Stallman and Roland McGrath. Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ccppc -c -o client.o client.cpp ccppc: client.cpp: No such file or directory ccppc: No input files make.exe: *** [all] Error 0x1 ====================================== ====================================== Just calling CCPPC without make ====================================== ccppc: client.cpp: No such file or directory ccppc: No input files ====================================== --------------------------------------------------------------------------- As shown by the log file, the expected errors are not printed when ccppc is called from make 3.79.1. My suspicion is that this a problem with make, though it's quite possible that this is a ccppc issue, or perhaps a problem with both make and ccppc. I have verified that the error output from ccppc is printed via STDERR. Interestingly, the output from gcc is also printed via STDERR. Any assistance you could provide would be most appreciated. Thanks, Chris Whitehead [ Wireless Software Development Engineer ] Spectrum Signal Processing Inc. 604.421.5422 ext. 211 [EMAIL PROTECTED] http://www.spectrumsignal.com Confidential information may be contained in this message. If you are not the addressee indicated in this message, then please delete this message and kindly notify the sender by reply e-mail. _______________________________________________ Bug-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-make