I cannot redirect stderr via 'command 2> file' on my Mac, so the easy solution was out. I did find that the following command works:
(make > /dev/null) >& make.txt The reason for this can be found at: http://www.faqs.org/faqs/unix-faq/faq/part2/section-9.html I don't know if this will work on bash or other shells, but it might be worth a try. Jonathan Polley On Monday, June 24, 2002, at 06:27 PM, Julian Foad wrote: > Making all in Main > c++ -DHAVE_CONFIG_H -I. -I. -I../../src/Include -I../.. -I../../src > -I/usr/local/include -DPKGLIBDIR=\"/usr/local/lib/FlightGear\" -g -O1 > -finline-limit-6 -finline-functions -Wall -pedantic -Wpointer-arith -c > main.cxx > main.cxx: In function `void fgUpdateTimeDepCalcs()': > main.cxx:766: warning: unused variable `int i' > main.cxx: In function `void fgLoadDCS()': > main.cxx:1742: warning: unused variable `class ssgVertexArray * lights' > main.cxx:1746: warning: `int light_type' might be used uninitialized in > this function > > ... and there are many others in other files. > > I have realised that in order for warnings to be useful, it is no good > for them just to scroll past and then be lost until after the next "make > clean". At work, I capture the compiler output for each file and then > display all the warnings and errors at the end of the build. Not just > those from the files that were compiled during the last run of "make", > but for all source files. I don't want to force everyone to see the > warnings if they don't want to, but I think we should provide a set-up > that makes it easy to do so. > > Three things are needed: > > 1. Enable warnings. e.g. > > GCCFLAGS="-g -O1 -Wall -pedantic -Wpointer-arith" > CFLAGS="$GCCFLAGS" CXXFLAGS="$GCCFLAGS" ./configure > > 2. Save the error output for each C file as (e.g.) ".deps/*.err". E.g. > in each Makefile.in: > > %.o: %.cxx > @echo '$(CXXCOMPILE) -c $<'; \ > - $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< 2> .deps/$(*F).err > + $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< 2> .deps/$(*F).err > @-cp .deps/$(*F).pp .deps/$(*F).P; \ > tr ' ' '\012' < .deps/$(*F).pp \ > | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' > \ >>> .deps/$(*F).P; \ > - rm .deps/$(*F).pp > + rm .deps/$(*F).pp; \ > + cat .deps/$(*F).err > > 3. Display the results (when?). e.g. > > find . -type d -name .deps -exec cat {}/*.err \; > > So, can anyone suggest good ways of doing each of these steps, especially > step 2: how do I get that change into every Makefile.in, or what would be > a better way? > > - Julian > > _______________________________________________ > Flightgear-devel mailing list > [EMAIL PROTECTED] > http://mail.flightgear.org/mailman/listinfo/flightgear-devel _______________________________________________ Flightgear-devel mailing list [EMAIL PROTECTED] http://mail.flightgear.org/mailman/listinfo/flightgear-devel