mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-23 22:33:28 +00:00
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:
parent
83a4e0b0ae
commit
cf6bff31f5
6 changed files with 125 additions and 66 deletions
|
@ -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
|
||||
|
|
|
@ -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
2
FAQ
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -32,6 +32,10 @@ case "$1" in
|
|||
exit 0
|
||||
;;
|
||||
# Remove version number for Darwin
|
||||
darwin6*)
|
||||
echo darwin6
|
||||
exit 0
|
||||
;;
|
||||
darwin5*)
|
||||
echo darwin5
|
||||
exit 0
|
||||
|
|
39
target.make
39
target.make
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue