This page tries to collect some common newbie build errors, some kind of "error" FAQ ;-) If you know a common build error you would like to see included on this page, please send mail to email@example.com.
- FIRST: Check the Developer FAQ!
- Missing Foundation/NSObject.h ...
- calendar.jsm does not compile ...
- /common.make: No such file or directory ...
Missing Foundation/NSObject.h ...
The compilation error:
sope-xml # make -s debug=yes install
Making all in SaxObjC...
Making all for library libSaxObjC...
In file included from SaxAttributeList.m:23:
SaxAttributeList.h:26:32: warning Foundation/NSObject.h No such file or directory
In file included from SaxAttributeList.m:23
SaxAttributeList.h:45: cannot find protocol declaration for 'NSCopying'
SaxAttributeList.h:50: cannot find interface declaration for 'NSObject', superclass of 'SaxAttributeList'
[shered_debug_obj/ix86/linux-gnu/gnu-gnu-gnu/SaxAttributeList.o] Error 1
make: *** [libSaxObjC.all.library.variables] Error 2
make: *** [internal-all] Error 2
There seem to be two common reasons for that:
A) you didn't source GNUstep.sh. You always need to setup the GNUstep environment prior compilation. This is done by the GNUstep.sh shell file which is contained in the root of you install-tree in Makefiles/GNUstep.sh.
B) you didn't properly configure gstep-make as explained. More exactly you
didn't specify --with-library-combo=gnu-fd-nil to the configure
process. This results in a GNUstep environment setup for the gnu-gnu-gnu
library combo, which is wrong.
If you want to know more about library combos, please look into the DESIGN document contained in gstep-make.
calendar.jsm does not compile ...
The compilation error - apparently specific to Solaris 8:
calendar.jsm:1881:1: missing terminating " character calendar.jsm:1882:5:
missing terminating " character calendar.jsm:1885:1: missing terminating "
character calendar.jsm:1886:5: missing terminating " character
calendar.jsm:1886: error: parse error before '@' token
calendar.jsm:1889:1: missing terminating " character make: ***
[shared_debug_obj/sparc/solaris2.8/gnu-fd-nil/WECalendarField.o] Error 1
make: *** [libWEExtensions.all.library.variables] Error 2 make: ***
[internal-all] Error 2
Apparently "sed" works different on Solaris leading to the above error. Two
things: a) this should not happen anymore with current sources, since we
pregenerate the .jsm files on Linux and check them into the CVS. And b),
in case it happens to you in some other location, the easiest workaround is
to generate the .jsm on some other platform.
If someone would contribute a js2m.sh script which works with any sed, this would be quite cool ;-) (send mail to firstname.lastname@example.org to submit the script).
/common.make: No such file or directory ...
Apparently people often forget to source the GNUstep.sh script, which leads to errors like this:
(cd SOPE/sope-xml && make install)
make: Entering directory `/usr/lib/opengroupware.org/SOPE/sope-xml'
GNUmakefile:3: /common.make: No such file or directory
GNUmakefile:24: /aggregate.make: No such file or directory
make: *** No rule to make target `/aggregate.make'. Stop.
make: Leaving directory `/usr/lib/opengroupware.org/SOPE/sope-xml'
As said above, you need to source the GNUstep.sh script to avoid that
failure. Of course you need to have a proper setup of the GNUstep
make environment, as described here in the
Building Core ThirdParty Modules
In case you are interested: GNUmakefile looks in / for common.make because the GNUSTEP_MAKEFILES environment variable is not set. It usually points to a path like /home/donald/SkyrixRoot/Makefiles.