From: <ak...@po...> - 2000-01-21 19:24:05
|
On Fri, Jan 21, 2000 at 11:09:07AM -0800, Adam Haberlach wrote: | When I do makes, I get a lot of the following error: | | /bin/sh: -c: line 1: syntax error near unexpected token `;' | /bin/sh: -c: line 1: `for d in ; do (cd $d; /bin/make all); done ' | make: *** [all_dirs] Error 2 | | In fact, I seem to get it for every directory--am I the only one (it could | be a BeOS thing)? I don't seem to be enough of a makefile wizard to fix this | myself. Are you using GNU make? The Linux Makefiles depend on several features of GNU make, so that might be the cause of some of your problems. Otherwise, the only thing that occurs to me is that the GLEAN_ROOT environment variable might not be set correctly. | While we are on the subject of makefiles, how should I handle BeOS vs. Linux | in the build process? There are several differences (mainly in the libraries | included) that need to be addressed... There's no organized approach to this at the moment, so the best solution might be to supply separate Makefiles for BeOS. That's what we did for Windows. (See $GLEAN_ROOT/make/common.win and the makefile.win files in all the subdirectories.) You can put common stuff for all compilations in common.beos, and individual changes in various makefile.beos files. There is some risk to using separate Makefiles -- the Makefiles can get out of sync with the source if someone who contributes a test forgets to update the Makefiles for all the operating systems other than the one s/he is using. (On the flip side, changing the other Makefiles might introduce syntax errors, but I think that's a risk we'll have to take.) This is not a problem for the original Linux Makefiles, because they scan the directory for .cpp files and set up all the dependencies automatically. Allen |