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 feedback@opengroupware.org.

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'
make[2]: ***
[shered_debug_obj/ix86/linux-gnu/gnu-gnu-gnu/SaxAttributeList.o] Error 1
make[1]: *** [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[2]: ***
[shared_debug_obj/sparc/solaris2.8/gnu-fd-nil/WECalendarField.o] Error 1
make[1]: *** [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 contribute@opengroupware.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[1]: 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[1]: *** No rule to make target `/aggregate.make'. Stop.
make[1]: 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 section.
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.