[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Compiling GNUstep under Debian
From: |
Ivan Vučica |
Subject: |
Compiling GNUstep under Debian |
Date: |
Fri, 15 Apr 2011 12:56:17 +0200 |
Hi!
I currently have GNUstep installed, but I don't think there's a conflict at the moment. I have GCC 4.4.5 installed, and clang 1.1.
Here's what I'm doing. I am forcing use of clang as a compiler, I am telling GNUstep where to find the runtime (using beautiful trick that Jason Felice added to Zcode's configure) and I'm telling gnustep-base where to find libffi.
cd gnustep/modules/core/make
CFLAGS=-I`gcc -E - <<< '#include <objc/objc.h>' | grep objc/objc.h | sed -n -e '1{
s/^# [0-9]* "//
s/".*//
s/\/objc\/objc\.h//
p
}'` ./configure CC=clang
make
sudo make install
cd ../base
CFLAGS=-I`gcc -E - <<< '#include <objc/objc.h>' | grep objc/objc.h | sed -n -e '1{
s/^# [0-9]* "//
s/".*//
s/\/objc\/objc\.h//
p
}'` ./configure CC=clang --with-ffi-include=/usr/include/i486-linux-gnu
make
(I have hardcoded location of libffi.)
This is where the thing falls apart:
ivucica@theevilmacbook:~/Programs/gnustep/modules/core/base$ make
This is gnustep-make 2.6.0. Type 'make print-gnustep-make-help' for help.
Making all in Source ...
Making all in ObjectiveC2 ...
Making all for subproject ObjectiveC2...
Compiling file runtime.c ...
In file included from runtime.c:34:
/usr/lib/gcc/i486-linux-gnu/4.4.5/include/objc/objc.h:42:24: error:
redefinition of typedef 'BOOL' is invalid in C [-Wtypedef-redefinition]
typedef unsigned char BOOL;
^
In file included from runtime.c:1:
../../Headers/ObjectiveC2/runtime.h:71:23: note: previous definition is here
typedef unsigned char BOOL;
^
2 diagnostics generated.
make[4]: *** [obj/ObjectiveC2.obj/runtime.c.o] Error 1
make[3]: *** [internal-subproject-all_] Error 2
make[2]: *** [ObjectiveC2.all.subproject.variables] Error 2
make[1]: *** [internal-all] Error 2
make: *** [internal-all] Error 2
As you can see, GCC 4.4's runtime, which is required to compile base, conflicts with ObjectiveC2 subproject. (I presume objectivec2 is libobjc2?)
It is required because, if I run with ./configure CC=clang, objc/objc.h cannot be found:
....
....
checking the Objective-C runtime... GNU
checking for custom shared objc library... NONE
checking objc/runtime.h usability... no
checking objc/runtime.h presence... no
checking for objc/runtime.h... no
checking objc/objc.h usability... no
checking objc/objc.h presence... no
checking for objc/objc.h... no
Check to make sure you have a full installation of the GCC
compiler that includes the Objective-C headers and libraries
configure: error: Could not find Objective-C headers
How do I get out of this dependency loop?
- Compiling GNUstep under Debian,
Ivan Vučica <=