Updates for darwin

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@15276 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 2002-12-10 16:48:02 +00:00
parent 83a4e0b0ae
commit cf6bff31f5
6 changed files with 125 additions and 66 deletions

View file

@ -1,3 +1,11 @@
2002-12-10 Adam Fedor <fedor@gnu.org>
* clean_os.sh: Filter version from darwin6.
* target.make (darwin): Was darwin6
(irix): Updated for shared libraries (from Carl Eugen Hoyos).
* Documentation/machines.texi: Updated.
Mon Dec 9 12:04:49 2002 Nicola Pero <n.pero@mi.flashnet.it>
* Instance/framework.make (internal-framework-install_): Fixed

View file

@ -1,8 +1,8 @@
\input texinfo @c -*-texinfo-*-
@setfilename machines.info
@ifclear HOWTO
@c Machine Specific, Darwin 5.x/PowerPC, , (DIR)
@node Machine Specific, Darwin 5.x/PowerPC, , (DIR)
@c Machine Specific, Darwin 6.x/PowerPC, , (DIR)
@node Machine Specific, Darwin 6.x/PowerPC, , (DIR)
@chapter Machines
@end ifclear
@ -12,6 +12,7 @@ more popular operating systems. Some machines marked with
@emph{Unstable} may have some trouble or may not work at all.
@menu
* Darwin 6.x/PowerPC::
* Darwin 5.x/PowerPC::
* Debian/DEC-Alpha::
* FreeBSD 4.x::
@ -59,15 +60,13 @@ A fairly good compiler. Recommended.
@item gcc 3.1
Several bugs where introduced in the version. It's probably better to
avoid this one, although it might work fine.
@item gcc 3.2
Pretty good, although at the time of this writing it hasn't been
fully tested on many platforms. Recommended.
@item gcc 3.2.x
Pretty good. Recommended.
@end table
If you have compiled GNUstep on a specific machine, please send information
about what you needed and any special instructions needed to the
GNUstep maintainer @email{gnustep-maintainers@@gnu.org}.
about what you needed and any special instructions needed to
GNUstep @email{bug-gnustep@@gnu.org}.
If your having mysterious trouble with a machine, try compiling GNUstep
without optimization. Particularly in the newer GCC compilers,
@ -76,13 +75,15 @@ configuring, @samp{CFLAGS="" ./configure}. Or when building,
@samp{make OPTFLAG=""}.
@c -----------------------------------------
@node Darwin 5.x/PowerPC, Debian/DEC-Alpha, Machine Specific, Machine Specific
@section Darwin 5.x/PowerPC (@emph{Unstable!})
@node Darwin 6.x/PowerPC, Darwin 5.x/PowerPC, Machine Specific, Machine Specific
@section Darwin 6.x/PowerPC (@emph{Unstable!})
@table @samp
@item Recommended compiler
gcc 3.2.1
Default compiler has some odd memory(?) related problems.
Use the GNU runtime. Download the gcc3.1 compiler and configure it with
Use the GNU runtime. Download the gcc3.2.1 compiler and configure it with
--enable-threads=posix. Usually the installed compiler will produce object
files for the NeXT runtime if you don't say gcc -fgnu-runtime. To change
this behaviour, edit src-dir/gcc/config/darwin.h: You have to change the
@ -97,8 +98,25 @@ This might seem senseless, but it forces the linker to use this library
instead of the NeXT-runtime!
@item Extra libs needed
Compile ffcall if you want to use Distributed Ojects: See instructions
below. Some test (e.g. in callback) simply wont't work.
Use libffi (not ffcall). This should be enabled by default in gnustep-base
so you don't have to type --enable-libffi
@item Special Instructions
@end table
@c -----------------------------------------
@node Darwin 5.x/PowerPC, Debian/DEC-Alpha, Darwin 6.x/PowerPC, Machine Specific
@section Darwin 5.x/PowerPC (@emph{Unstable!})
@table @samp
@item Recommended compiler
gcc 3.1 (See Darwin 6.x for other instructions).
@item Extra libs needed
Probably should use libffi as with Darwin 6.x.
Instructions for compiling ffcall are provided below if that doesn't work.
@item Special Instructions
@ -300,18 +318,23 @@ with data sizes less than 4 bytes (chars, shorts, etc).
@table @samp
@item Recommended compiler
You can't compile the base library with gcc2.95.x, and 3.1 compiles more
of the Testing programs (nsarray) than 3.0.4 so 3.1 should be the
recommended compiler. To use threads, it's necessary to bootstrap a
compiler yourself: configure with --enable-threads=posix, that will work
as long as you link EVERY objective C executable with -lpthread, no matter
what warnings the irix linker produces!
gcc 3.2.1
To use threads, it's necessary to bootstrap a compiler yourself:
configure with --enable-threads=posix, that will work as long as you
link EVERY objective C executable with -lpthread, no matter what
warnings the irix linker produces!
@item Extra libs needed
Unknown
@item Special Instructions
Static libs only (make shared=no).
If you cannot link the library because of the very low default limit
(20480) for the command line length, then you should either use systune
ncargs to increase the value (maximum is 262144) or link the library by
hand.
No libffi-support: Use ffcall
@end table
@ -450,6 +473,7 @@ See the Solaris 2.6 section for more instructions.
@table @samp
@item Recommended compiler
gcc 3.2.1
gcc 2.95.3. Version 2.95.2 has several bugs that GNUstep tickles.
gcc 3.04. Not 3.1 - does not compile parts of GNUstep.
@ -457,12 +481,10 @@ gcc 3.04. Not 3.1 - does not compile parts of GNUstep.
tiff, Don't use the one in /usr/openwin
@item Special Instructions
I think gcc provides posix threads on
this system even if not configured whith --enable-threads, but to use
them, you have to tell the gnumake configure script: The libraries you
have to link with are -lpthread -lrt (read man libposix4 for more
details). You have to call configure --with-thread-lib=-lpthread to avoid
using -lthread which doesn't work!
No libffi-support unless you use the patch
@url{http://gcc.gnu.org/ml/java-patches/2002-q3/msg00036.html} (not
particularly recommended).
Using a POSIX shell (zsh or bash, which should come with Solaris) is
highly recommended. In fact, some functions, such as compiling frameworks,

2
FAQ
View file

@ -1,7 +1,7 @@
GNUstep Frequently Asked Questions with Answers
***********************************************
Last updated 19 November 2002. Please send corrections to
Last updated 10 December 2002. Please send corrections to
<gnustep-maintainer@gnu.org>. Also look at the user FAQ for more user
oriented questions.

View file

@ -1,7 +1,7 @@
GNUstep HOWTO
*************
Last Update: 19 November 2002
Last Update: 10 December 2002
This document explains how to build the different components of the
GNUstep core libraries and GNUstep Launchpad.
@ -379,13 +379,12 @@ of the following information before choosing the compiler you use.
Several bugs where introduced in the version. It's probably better
to avoid this one, although it might work fine.
`gcc 3.2'
Pretty good, although at the time of this writing it hasn't been
fully tested on many platforms. Recommended.
`gcc 3.2.x'
Pretty good. Recommended.
If you have compiled GNUstep on a specific machine, please send
information about what you needed and any special instructions needed
to the GNUstep maintainer <gnustep-maintainers@gnu.org>.
information about what you needed and any special instructions needed to
GNUstep <bug-gnustep@gnu.org>.
If your having mysterious trouble with a machine, try compiling
GNUstep without optimization. Particularly in the newer GCC compilers,
@ -393,12 +392,14 @@ optimization can break some code. The easiest way to do this is when
configuring, `CFLAGS="" ./configure'. Or when building, `make
OPTFLAG=""'.
Darwin 5.x/PowerPC (_Unstable!_)
Darwin 6.x/PowerPC (_Unstable!_)
================================
`Recommended compiler'
gcc 3.2.1
Default compiler has some odd memory(?) related problems. Use the
GNU runtime. Download the gcc3.1 compiler and configure it with
GNU runtime. Download the gcc3.2.1 compiler and configure it with
-enable-threads=posix. Usually the installed compiler will produce
object files for the NeXT runtime if you don't say gcc
-fgnu-runtime. To change this behaviour, edit
@ -414,9 +415,19 @@ Darwin 5.x/PowerPC (_Unstable!_)
instead of the NeXT-runtime!
`Extra libs needed'
Compile ffcall if you want to use Distributed Ojects: See
instructions below. Some test (e.g. in callback) simply wont't
work.
Use libffi (not ffcall). This should be enabled by default in
gnustep-base so you don't have to type -enable-libffi
`Special Instructions'
Darwin 5.x/PowerPC (_Unstable!_)
================================
`Recommended compiler'
gcc 3.1 (See Darwin 6.x for other instructions).
`Extra libs needed'
Probably should use libffi as with Darwin 6.x. Instructions for
compiling ffcall are provided below if that doesn't work.
`Special Instructions'
Compiling ffcall:
@ -582,19 +593,21 @@ Irix 6.5/MIPS
=============
`Recommended compiler'
You can't compile the base library with gcc2.95.x, and 3.1
compiles more of the Testing programs (nsarray) than 3.0.4 so 3.1
should be the recommended compiler. To use threads, it's necessary
to bootstrap a compiler yourself: configure with
-enable-threads=posix, that will work as long as you link EVERY
objective C executable with -lpthread, no matter what warnings the
irix linker produces!
gcc 3.2.1
To use threads, it's necessary to bootstrap a compiler yourself:
configure with -enable-threads=posix, that will work as long as you
link EVERY objective C executable with -lpthread, no matter what
warnings the irix linker produces!
`Extra libs needed'
Unknown
`Special Instructions'
Static libs only (make shared=no).
If you cannot link the library because of the very low default
limit (20480) for the command line length, then you should either
use systune ncargs to increase the value (maximum is 262144) or
link the library by hand. No libffi-support: Use ffcall
MkLinux/PowerPC (_Obsolete_)
============================
@ -706,19 +719,16 @@ Solaris 2.[67]/Sparc
====================
`Recommended compiler'
gcc 2.95.3. Version 2.95.2 has several bugs that GNUstep tickles.
gcc 3.04. Not 3.1 - does not compile parts of GNUstep.
gcc 3.2.1 gcc 2.95.3. Version 2.95.2 has several bugs that GNUstep
tickles. gcc 3.04. Not 3.1 - does not compile parts of GNUstep.
`Extra libs needed'
tiff, Don't use the one in /usr/openwin
`Special Instructions'
I think gcc provides posix threads on this system even if not
configured whith -enable-threads, but to use them, you have to
tell the gnumake configure script: The libraries you have to link
with are -lpthread -lrt (read man libposix4 for more details). You
have to call configure -with-thread-lib=-lpthread to avoid using
-lthread which doesn't work!
No libffi-support unless you use the patch
<http://gcc.gnu.org/ml/java-patches/2002-q3/msg00036.html> (not
particularly recommended).
Using a POSIX shell (zsh or bash, which should come with Solaris)
is highly recommended. In fact, some functions, such as compiling

View file

@ -32,6 +32,10 @@ case "$1" in
exit 0
;;
# Remove version number for Darwin
darwin6*)
echo darwin6
exit 0
;;
darwin5*)
echo darwin5
exit 0

View file

@ -258,9 +258,9 @@ endif
####################################################
#
# MacOSX 10.6, darwin6
# MacOSX 10.[12], darwin[56]
#
ifeq ($(findstring darwin6, $(GNUSTEP_TARGET_OS)), darwin6)
ifeq ($(findstring darwin, $(GNUSTEP_TARGET_OS)), darwin)
ifeq ($(OBJC_RUNTIME), NeXT)
HAVE_BUNDLES = yes
OBJC_COMPILER = NeXT
@ -861,22 +861,37 @@ endif
#
ifeq ($(findstring irix, $(GNUSTEP_TARGET_OS)), irix)
HAVE_SHARED_LIBS = yes
STATIC_LIB_LINK_CMD = \
(cd $(LIB_LINK_OBJ_DIR); $(AR) $(ARFLAGS) \
$(LIB_LINK_VERSION_FILE) `ls -1 *\.o */*\.o`);\
$(RANLIB) $(LIB_LINK_VERSION_FILE)
SHARED_LIB_LINK_CMD = \
(cd $(LIB_LINK_OBJ_DIR); $(CC) -v $(SHARED_LD_PREFLAGS) \
$(SHARED_CFLAGS) -shared -o $(LIB_LINK_VERSION_FILE) `ls -1 *\.o` \
$(INTERNAL_LIBRARIES_DEPEND_UPON) $(SHARED_LD_POSTFLAGS);\
rm -f $(LIB_LINK_FILE); \
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
$(CC) $(SHARED_LD_PREFLAGS) -shared -Wl,-soname,$(LIB_LINK_SONAME_FILE) \
-o $(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE) $^ \
-Wl,-rpath,$(LIB_LINK_INSTALL_DIR) \
$(INTERNAL_LIBRARIES_DEPEND_UPON) \
$(SHARED_LD_POSTFLAGS);\
(cd $(LIB_LINK_OBJ_DIR); \
rm -f $(LIB_LINK_FILE) $(LIB_LINK_SONAME_FILE); \
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
$(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
)
AFTER_INSTALL_SHARED_LIB_CMD = \
(cd $(LIB_LINK_INSTALL_DIR); \
rm -f $(LIB_LINK_FILE) $(LIB_LINK_SONAME_FILE); \
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
$(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
)
AFTER_INSTALL_SHARED_LIB_CHOWN = \
(cd $(LIB_LINK_INSTALL_DIR); \
chown $(CHOWN_TO) $(LIB_LINK_SONAME_FILE); \
chown $(CHOWN_TO) $(LIB_LINK_FILE))
SHARED_CFLAGS += -fPIC
SHARED_LIBEXT = .so
OBJ_MERGE_CMD = \
$(CC) -nostdlib -r -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
/usr/bin/ld -r -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
ADDITIONAL_LDFLAGS +=
STATIC_LDFLAGS +=
HAVE_BUNDLES = yes
BUNDLE_LD = $(CC)