No subject
Fri Feb 29 13:31:58 UTC 2008
the include directory in two different ways, and things go wrong because
the two different ways create two different results.
I would suggest to try doing something like:
,----
| UNAME_MACHINE = $(shell uname -m)
| libNGStreams_INCLUDE_DIRS += \
| -I$(UNAME_MACHINE)/$(GNUSTEP_TARGET_OS) \
`----
NOTE: big hack and completely untested!
Or else get configure to write out where it puts the headers.
--
Hubert Chathi <uhoreg at debian.org> -- Jabber: hubert at uhoreg.ca
PGP/GnuPG key: 1024D/124B61FA http://www.uhoreg.ca/
Fingerprint: 96C5 012F 5F74 A5F7 1FF7 5291 AF29 C719 124B 61FA
From: "Sebastian Reitenbach" <sebastia at l00-bugdead-prods.de>
To: sogo at opengroupware.org
subject: Re: [SOGo] SOGO on Debian Lenny
Date: Thu, 15 May 2008 20:09:37 +0200
sogo at opengroupware.org wrote:
> Mark Pavlichuk wrote:
> > I hadn't applied the gsmake-2 patches. The compile works now.
> > Doh! I spent DAYS looking over the same stuff and missing that.
> > I guess I was still in gsmake-1-mode after spending a lot of time
> > trying to get things working under Debian Etch
> ...
>
> I've been experimenting again with builds under Debian Lenny so I can
> write documentation, but I'm having make problems again. GNUSTEP_HOST
> in config.make is i486-pc-linux-gnu even though I'm running an AMD64
> kernel (with a 32bit i386 userspace). If I switch to an i686 kernel the
> compile works.
>
> I've applied the required patches to SOPE this time, so I'm unsure how
> this seemed to fix the problem the first time.
after a bit of digging, I think the problem is the following:
Your GNUstep environment is set like this:
GNUSTEP_FLATTENED=yes
GNUSTEP_HOST=i486-pc-linux-gnu
GNUSTEP_HOST_CPU=ix86
GNUSTEP_HOST_OS=linux-gnu
GNUSTEP_HOST_VENDOR=pc
GNUSTEP_IS_FLATTENED=yes
...
note the GNUSTEP_HOST_CPU
your GNUstep.sh contains the following, where I think, it gets set:
# If multi-platform support is disabled, just use the hardcoded cpu,
# vendor and os determined when gnustep-make was configured. The
# reason using the hardcoded ones might be better is that config.guess
# and similar scripts might even require compiling test files to
# determine the platform - but then you can't source GNUstep.sh
# without having gcc, binutils, libc6-dev installed. Which can be a
# problem for end-users who are not developers and have no development
# tools installed. To prevent this problem, unless we were configured
# to determine the platform at run time, by default we use the
# hardcoded values of GNUSTEP_HOST*.
if [ -z "" ]; then
GNUSTEP_HOST=i486-pc-linux-gnu
GNUSTEP_HOST_CPU=ix86
GNUSTEP_HOST_VENDOR=pc
GNUSTEP_HOST_OS=linux-gnu
fi
how is GNUstep installed, I ran dpkg search gnustep, so it seems to be
installed as package, but do you have any idea, with which parameteter the
gnustep-make was configured. I don't know much about debian package
management.
In the config.guess script, in SOPE/sope-core/NGStreams, when there
configure is run, the following subdir
i?86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
# problems with other programs or directories called `ld' in the
path.
ld_supported_emulations=`cd /; ld --help 2>&1 \
| sed -ne '/supported emulations:/!d
s/[ ][ ]*/ /g
s/.*supported emulations: *//
s/ .*//
p'`
case "$ld_supported_emulations" in
i?86linux)
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
exit 0
;;
elf_i?86)
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
;;
i?86coff)
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
exit 0
;;
esac
but UNAME_MACHINE is set earlier:
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
which is x86_64, and then configure creates the x86_64/linux-gnu to create
the config.h in it.
then, when you run make messages=yes in SOPE/sope-core/NGStreams, you will
see, it will try to set the include dir: -Iix86/linux-gnu, instead of
x86_64/linux-gnu.
This is done in the GNUmakefile.preamble:
libNGStreams_INCLUDE_DIRS += \
-I$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS) \
...
the quick solution is,
cd SOPE
./configure --with-gnustep --enable-debug --disable-strip
cd sope-core/NGStreams
ln -s x86_64 ix86
cd -
make && make install
I also tried to run ./configure --target=ix86, but that ended up even
funnier, the path was set to ""/"" so that the config.h file ended up
in /config.h.
cheers
Sebastian
More information about the pkg-GNUstep-maintainers
mailing list