mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-23 22:33:28 +00:00
README.Darwin updated
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@18709 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
d4ae9b1e98
commit
e89ea4d83c
2 changed files with 187 additions and 76 deletions
|
@ -1,3 +1,7 @@
|
|||
2004-02-28 Quentin MathŽ <qmathe@club-internet.fr>
|
||||
|
||||
* Documentation/README.Darwin: Update with the detailed and complete installation process on Mac OS X and Darwin (with the help of Nicolas Roard).
|
||||
|
||||
2004-02-23 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
* user_home.c (main): Fix check for space in home dir, issue
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
Date: 15-Jan-2004 (tested under i686-apple-darwin7.0.0,
|
||||
powerpc-apple-darwin6.8 )
|
||||
Author: Adam Fedor <fedor@gnu.org>
|
||||
Date : 15-Jan-2004
|
||||
Last update: 26-Feb-2004 (tested under Mac OS X 10.3 / Darwin 7)
|
||||
--> must be verified on x86-darwin-7, powerpc-apple-darwin-6
|
||||
Authors: Adam Fedor <fedor@gnu.org>
|
||||
Quentin MathŽ <qmathe@club-internet.fr>
|
||||
|
||||
PURPOSE
|
||||
-------
|
||||
|
||||
This document is intended to provide a step by step instruction on how
|
||||
to get the GNUstep installed on Darwin and Mac OS X.
|
||||
This document is intended to provide a step by step instruction on how to get the GNUstep installed on Mac OS X and Darwin.
|
||||
|
||||
Note: GNUstep seems to install on Mac OS X 10.2 / Darwin 6, but the bundles support seems to be broken, then applications based on GNUstep-gui will not work. (Must be verified)
|
||||
|
||||
COMMONLY USED SYMBOLS
|
||||
---------------------
|
||||
|
||||
<> denotes a variable depending on your preferences. To be replaced
|
||||
with the actual values from your system. For instance, if you
|
||||
installed gcc in /opt/local
|
||||
<> denotes a variable depending on your preferences. To be replaced with the actual values from your system. For instance, if you installed gcc in /opt/local
|
||||
|
||||
./configure CC='<gcc install dir>/bin/gcc'
|
||||
|
||||
|
@ -33,29 +34,48 @@ COMMONLY USED SYMBOLS
|
|||
|
||||
./configure --enable-graphics=art
|
||||
|
||||
POTENTIAL ERRORS WHEN RUNNING MAKE ESPECIALLY WITH BACK AND GUI
|
||||
---------------------------------------------------------------
|
||||
|
||||
If you get errors like below, just do:
|
||||
make clean
|
||||
make
|
||||
The second or the third time, the errors should disappear.
|
||||
It's probably due to some potential issues between FSF GCC and the libtool/ld Mac OS X / Darwin versions.
|
||||
|
||||
Linking subproject x11 ...
|
||||
/usr/bin/ld: shared_obj/xdnd.o bad magic number (not a Mach-O file)
|
||||
collect2: ld returned 1 exit status
|
||||
make[3]: *** [shared_obj/subproject.o] Error 1
|
||||
make[2]: *** [x11.all.subproject.variables] Error 2
|
||||
make[1]: *** [libgnustep-back.all.bundle.variables] Error 2
|
||||
make: *** [internal-all] Error 2
|
||||
|
||||
|
||||
PRELIMINAIRES
|
||||
-------------
|
||||
|
||||
For all targets, get the following software:
|
||||
|
||||
libxml2 (Optional, highly recommended, already in Darwin 7/Mac OS X 10.3)
|
||||
libtiff (Required)
|
||||
libjpeg (Optional, highly recommended)
|
||||
libpng (Optional, highly recommended)
|
||||
libxml2 (Optional, highly recommended, already in Mac OS X 10.3 / Darwin 7)
|
||||
libtiff (Required)
|
||||
libjpeg (Optional, highly recommended)
|
||||
libpng (Optional, highly recommended)
|
||||
|
||||
libffi (Only contained in the gcc distributions)
|
||||
ffcall (On Darwin/ix86 - use instead of libffi)
|
||||
libffi (Required, only contained in the gcc distributions and pyobjc)
|
||||
ffcall (On Darwin x86 - use instead of libffi)
|
||||
|
||||
Xfree86 (Required, already in Darwin/OpenDarwin/Mac OS X 10.3, needed
|
||||
for 10.2 and earlier)
|
||||
Xfree86 (Required, already in Mac OS X 10.3/Darwin 7, to know more read below, needed for 10.2 / Darwin 6 and earlier)
|
||||
|
||||
libart2 (Optional, but required in the case you choose to use the art backend)
|
||||
freetype2 (Optional, but required in the case you choose to use the art backend)
|
||||
|
||||
dlcompat (Required, to be able to load bundles, included with Fink installation)
|
||||
|
||||
Obtaining GNUstep
|
||||
-----------------
|
||||
|
||||
The main GNUstep project pages tell you how to get hold of this. You can get
|
||||
the latest release of the following libraries. However, since Mac OS X support
|
||||
is currently evolving, we recommend that you get the latest snapshot
|
||||
or code from CVS.
|
||||
The main GNUstep project pages tell you how to get hold of this. You can get the latest release of the following libraries. However, since Mac OS X support is currently evolving, we recommend that you get the latest snapshot or code from CVS.
|
||||
|
||||
You need these gnustep packages:
|
||||
|
||||
|
@ -66,8 +86,7 @@ GNUstep-back
|
|||
|
||||
Targets
|
||||
-------
|
||||
For GNUstep, there are several combinations of Objective-C runtime, Foundation
|
||||
library and Application Kit library possible, called library combos.
|
||||
For GNUstep, there are several combinations of Objective-C runtime, Foundation library and Application Kit library possible, called library combos.
|
||||
The usual notation is:
|
||||
|
||||
objcruntime-foundation-applicationkit
|
||||
|
@ -79,7 +98,7 @@ apple-gnu-gnu # apple-objc runtime with gnustep libraries. Does currently n
|
|||
apple-apple-gnu # Apple Foundation with gnustep-gui on the top. Only of academically interest.
|
||||
apple-apple-apple # Cocoa with GNUstep additions. For porting GNUstep apps to Cocoa.
|
||||
|
||||
all gnu-*-apple library combos are purely theoretical and only available to the
|
||||
All gnu-*-apple library combos are purely theoretical and only available to the
|
||||
folks inside Apple since no mortal person ever saw the Cocoa source code. ;-)
|
||||
|
||||
You can use either the Apple compiler or compile your own FSF compiler. This
|
||||
|
@ -88,54 +107,50 @@ potentially gives two different targets:
|
|||
Apple GCC, gnu-gnu-gnu
|
||||
FSF GCC, gnu-gnu-gnu
|
||||
|
||||
Unfortunately, Using Apple GCC with gnu-gnu-gnu doesn't appear to work
|
||||
currently (see below for more info), so this option really isn't open
|
||||
now. In addition, if you are on Mac OS X, you can also use the Apple
|
||||
Foundation and AppKit frameworks, but this only works with the Apple
|
||||
compiler:
|
||||
Unfortunately, using Apple GCC with gnu-gnu-gnu doesn't appear to work currently
|
||||
(see below for more info), so this option really isn't open now.
|
||||
In addition, if you are on Mac OS X, you can also use the Apple Foundation and AppKit
|
||||
frameworks to do GNUstep development with Cocoa, but this only works with the Apple compiler:
|
||||
|
||||
Apple GCC, apple-apple-apple
|
||||
|
||||
GNUstep on Darwin ix86
|
||||
----------------------
|
||||
GNUstep on Darwin x86
|
||||
---------------------
|
||||
|
||||
For GNUstep on Darwin/ix86, Apple GCC compiles GNUstep-base, but causes strange
|
||||
problems when running programs (e.g. the program hangs while allocating
|
||||
memory or executes methods multiple times). So we have to use FSF GCC.
|
||||
For GNUstep on Darwin x86, Apple GCC compiles GNUstep-base, but causes strange problems when running programs (e.g. the program hangs while allocating memory or executes methods multiple times). So we have to use FSF GCC.
|
||||
|
||||
Additionally, libffi has not been ported to Darwin/ix86, so you will
|
||||
need to install ffcall instead.
|
||||
Additionally, libffi has not been ported to Darwin x86, so you will need to install ffcall instead.
|
||||
|
||||
ffcall (ftp://ftp.gnustep.org/pub/gnustep/libs or ftp://ftp.santafe.edu/pub/gnu/ffcall-1.9.tar.gz)
|
||||
|
||||
See instructions below for building ffcall
|
||||
See instructions below for building ffcall.
|
||||
|
||||
GNUstep on Darwin PowerPC
|
||||
-------------------------
|
||||
|
||||
Haven't been able to get Darwin 6/Mac OS X 10.2 compiler to compile GNUstep-base.
|
||||
Haven't been able to get Apple GCC on Mac OS X 10.2 / Darwin 6 to compile GNUstep-base.
|
||||
The compiler crashes with various errors.
|
||||
You need the FSF GCC compiler, at least version 3.3.2. (While version
|
||||
You need the FSF GCC compiler here. You need at least version 3.3.2. (While version
|
||||
3.3.2 works, it will not install libffi)
|
||||
|
||||
Building FSF-GCC
|
||||
----------------
|
||||
|
||||
Darwin ix86:
|
||||
Darwin x86:
|
||||
|
||||
FSF GCC is difficult to compile here. The only way I could do it was like this:
|
||||
|
||||
ln -s /usr/bin/c++filt /usr/bin/c++filt3 # missing on Darwin/ix86?
|
||||
ln -s /usr/bin/c++filt /usr/bin/c++filt3 # missing on Darwin x86 ?
|
||||
|
||||
and then configure gcc with:
|
||||
|
||||
mkdir build # create a sibling to the toplevel source dir
|
||||
mkdir build # create a sibling to the toplevel source dir
|
||||
cd build
|
||||
../gcc-X.X.X/configure --enable-languages=c,objc # don't try to build c++
|
||||
<dir>/gcc-X.X.X/configure --enable-languages=c,objc # don't try to build c++
|
||||
make bootstrap
|
||||
make install
|
||||
cd /usr/local/lib
|
||||
ln -s libobjc.a libobjc.dylib # So the linker sees us
|
||||
ln -s libobjc.a libobjc.dylib # So the linker sees us
|
||||
|
||||
(Replace X.X.X with the actual distribution you have).
|
||||
|
||||
|
@ -143,58 +158,81 @@ gcc on Darwin doesn't appear to support threads.
|
|||
|
||||
Darwin PowerPC:
|
||||
|
||||
configure and build as follows (tested using gcc-3.3.2 on Mac OS X 10.2.8):
|
||||
configure and build as follows (tested using gcc-3.3.2 on Mac OS X 10.2 and 10.3):
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
../gcc-x.x.x/configure [ --prefix=<gcc install dir>] # by default gcc installs in /usr/local
|
||||
<dir>/gcc-x.x.x/configure [ --prefix=<gcc install dir>] # by default gcc installs in /usr/local
|
||||
make bootstrap
|
||||
make install
|
||||
cd <gcc install dir>/lib
|
||||
ln -s libobjc.a libobjc.dylib # So the linker sees us
|
||||
ln -s libobjc.a libobjc.dylib # So the linker sees us
|
||||
|
||||
Setting up the GNUstep make environment
|
||||
---------------------------------------
|
||||
|
||||
In the GNUstep-make (core/make) package, do
|
||||
|
||||
./configure --with-library-combo=gnu-gnu-gnu [--prefix=<GNUstep install dir>] CC='<gcc install dir>/bin/gcc'
|
||||
with bourne shell like bash (Mac OS X 10.3):
|
||||
|
||||
echo 'export CC=<gcc install dir>/bin/gcc' >> ~/.profile
|
||||
|
||||
with c shell like tcsh (Mac OS X 10.2):
|
||||
|
||||
echo 'setenv CC <gcc install dir>/bin/gcc' >> ~/.tcshrc
|
||||
|
||||
else use [CC='<gcc install dir>/bin/gcc'] when running configure.
|
||||
|
||||
then:
|
||||
|
||||
./configure --with-library-combo=gnu-gnu-gnu [--prefix=<GNUstep install dir>] [CC='<gcc install dir>/bin/gcc']
|
||||
|
||||
(apple-apple-apple is the default if you don't specify gnu-gnu-gnu). If you
|
||||
want to try different targets together. Do this:
|
||||
want to be able to compile for different targets/platforms together. Do this:
|
||||
|
||||
./configure --with-library-combo=gnu-gnu-gnu -disable-flattened --enable-multi-platform
|
||||
./configure --with-library-combo=gnu-gnu-gnu -disable-flattened --enable-multi-platform [--prefix=<GNUstep install dir>] [CC='<gcc install dir>/bin/gcc']
|
||||
|
||||
Now:
|
||||
|
||||
make
|
||||
make install
|
||||
|
||||
Building and installing libobjc (Target Apple GCC, gnu-gnu-gnu Only!!!)
|
||||
Building and installing libobjc (target Apple GCC, gnu-gnu-gnu only !!!)
|
||||
-------------------------------
|
||||
|
||||
Warning ! Don't compile libobjc if you are using FSF GCC.
|
||||
|
||||
Go to gnustep-objc (or from CVS, into dev-libs/libobjc), and type
|
||||
|
||||
make install
|
||||
|
||||
This should build and install the GNU Objective-C runtime and headers for you.
|
||||
|
||||
Building and installing libffi (On Darwin/PowerPC Only!!!)
|
||||
Building and installing libffi (on Darwin PowerPC only !!!)
|
||||
------------------------------
|
||||
|
||||
Untar the GNU gcc distribution, at least a version 3.4 series snapshot
|
||||
(even if you are not compiling the compiler) and:
|
||||
Untar the GNU gcc distribution, at least a version 3.4 series snapshot (even if you are not compiling the compiler) and:
|
||||
|
||||
mkdir libffi-build
|
||||
cd libffi-build
|
||||
../gcc-X.X.X/libffi/configure
|
||||
<gcc-3.4 install dir>/libffi/configure
|
||||
make
|
||||
make install
|
||||
|
||||
Note: the lastest 3.4 snapshot doesn't seem to have a working libffi on Mac OS X / Darwin.
|
||||
|
||||
(Replace X.X.X with the actual distribution you have).
|
||||
Use PyObjC libffi from http://pyobjc.sourceforge.net, in the case GNUstep-base install doesn't work with the 3.4 snapshot.
|
||||
|
||||
Building and installing ffcall (On Darwin/ix86 Only!!!)
|
||||
mkdir libffi-build
|
||||
cd libffi-build
|
||||
<pyobjc dir>/libffi-src/configure
|
||||
make
|
||||
make install
|
||||
|
||||
Warning !
|
||||
Don't install libffi in <gcc install dir>, let it just install in /usr/local.
|
||||
|
||||
Building and installing ffcall (on Darwin x86 only !!!)
|
||||
------------------------------
|
||||
|
||||
./configure --prefix=$GNUSTEP_SYSTEM_ROOT \
|
||||
|
@ -210,25 +248,31 @@ Additional libraries
|
|||
--------------------
|
||||
|
||||
Build and install and additional libraries listed above. You can also
|
||||
get them via fink or DarwinPorts (http://darwinports.opendarwin.org/)
|
||||
and sometimes they are already present on Mac OS X.
|
||||
get them via Fink (http://fink.sourceforge.net) or DarwinPorts (http://darwinports.opendarwin.org/) and sometimes they are already present on Mac OS X.
|
||||
|
||||
And to have the additional libraries taken in account by the Mac OS X / Darwin linker with bourne shell like bash (Mac OS X 10.3), here is an example with Fink obtained libraries:
|
||||
|
||||
echo 'export DYLD_LIBRARY_PATH=<gcc install dir>/lib:/sw/lib:$DYLD_LIBRARY_PATH' >> ~/.profile
|
||||
|
||||
with c shell like tcsh (Mac OS X 10.2):
|
||||
|
||||
echo 'setenv DYLD_LIBRARY_PATH <gcc install dir>/lib:/sw/lib:$DYLD_LIBRARY_PATH' >> ~/.tcshrc
|
||||
|
||||
Source GNUstep.sh
|
||||
-----------------
|
||||
|
||||
If you are using Bourne Shell (/bin/sh), Korn Shell (/bin/ksh),
|
||||
or the Bourne Again Shell (/bin/bash), type:
|
||||
If you are using bourne shell like bash, type:
|
||||
|
||||
. <GNUstep install dir>/System/Makefiles/GNUstep.sh
|
||||
|
||||
If you are using C-Shell (/bin/csh), the T-C-Shell (/bin/tcsh), type:
|
||||
If you are using c shell like tcsh, type:
|
||||
|
||||
source <GNUstep install dir>/System/Makefiles/GNUstep.csh
|
||||
|
||||
Building and installing GNUstep-base
|
||||
------------------------------------
|
||||
|
||||
Go to gnustep-base (or from CVS into the core/base directory)
|
||||
Go to GNUstep-base (or from CVS into the core/base directory)
|
||||
|
||||
If you are using the default gcc (Apple GCC) type:
|
||||
|
||||
|
@ -240,7 +284,7 @@ system resources).
|
|||
|
||||
Otherwise (if you installed FSF GCC) type:
|
||||
|
||||
./configure CC='<gcc install dir>/bin/gcc'
|
||||
./configure [CC='<gcc install dir>/bin/gcc']
|
||||
|
||||
or if you decided not to build libffi or ffcall:
|
||||
|
||||
|
@ -259,39 +303,102 @@ go on and compile GNUstep-gui.
|
|||
Building and installing GNUstep-gui
|
||||
-----------------------------------
|
||||
|
||||
Go to gnustep-gui (or from CVS into the core/gui directory), and type
|
||||
Go to GNUstep-gui (or from CVS into the core/gui directory), and type
|
||||
|
||||
If you are using the default gcc (Apple GCC) type:
|
||||
If you are using the Apple GCC or the FSF GCC type:
|
||||
|
||||
./configure --disable-gsnd
|
||||
|
||||
otherwise (if you installed FSF GCC) type:
|
||||
|
||||
./configure --disable-gsnd CC='<gcc install dir>/bin/gcc'
|
||||
./configure --disable-gsnd [CC='<gcc install dir>/bin/gcc']
|
||||
|
||||
followed by
|
||||
|
||||
make
|
||||
make install
|
||||
|
||||
Note: The gsnd server hasn't been ported to Darwin yet.
|
||||
Note: The gsnd server hasn't been ported to Mac OS X / Darwin yet.
|
||||
|
||||
In the case configure didn't found libjpeg, use --with-jpeg-library=<jpeg lib dir> --with-jpeg-include=<jpeg include dir> to have the libjpeg detected.
|
||||
|
||||
Example with Fink:
|
||||
|
||||
./configure --disable-gsnd --with-jpeg-library=/sw/lib --with-jpeg-include=/sw/include
|
||||
|
||||
|
||||
Building and installing GNUstep-back
|
||||
------------------------------------
|
||||
|
||||
In the back directory, type
|
||||
Warning !
|
||||
You must have installed X11User.pkg from the Panther install disc and also X11SDK.pkg from the xCode Tools install disc to be able to compile GNUstep-back.
|
||||
|
||||
In the back directory, type:
|
||||
|
||||
./configure [CC='<gcc install dir>/bin/gcc']
|
||||
make
|
||||
make install
|
||||
|
||||
or if you have the freetype and libart libraries installed and want to use
|
||||
the art backend:
|
||||
In the case, you choose to use the art backend, you will need to have the freetype2 and libart2 libraries installed, first be sure to have libart2 in your path, for example, with Fink installation type:
|
||||
|
||||
export DYLD_LIBRARY_PATH=/sw/lib:$DYLD_LIBRARY_PATH
|
||||
|
||||
Then you should be able to configure back and install it.
|
||||
|
||||
./configure --enable-graphics=art [CC='<gcc install dir>/bin/gcc']
|
||||
make
|
||||
make install
|
||||
|
||||
GNUstep only runs within X-Windows, so you need to start up an X Server to
|
||||
run and GUI applications.
|
||||
You also need to have /sw/lib in your library path before running
|
||||
GNUstep apps with the art backend, as it needs to find libart2, so put the
|
||||
above export DYLD_LIBRARY_PATH somewhere in your .profile (or do the export
|
||||
before launching an application) [see the above "Additional Libraries" section].
|
||||
|
||||
The backend architecture which GNUstep-gui is built upon, has been written to be used within X Windows, then you need to start up an X Server (like Apple X11) to run the GNUstep-gui applications.
|
||||
|
||||
Warning !
|
||||
With the art backend, before to launch applications based on GNUstep-gui, in the shell, don't forget to edit the defaults (no need it to redo it later) :
|
||||
|
||||
defaults write NSGlobalDomain XWindowBufferUseXShm NO
|
||||
|
||||
because Apple X11 doesn't support well shared memory for buffering (wich libart2 uses by default).
|
||||
|
||||
More informations on the art backend
|
||||
------------------------------------
|
||||
|
||||
To have a working art backend... You will also need to download and install fonts, as it uses a specific font format. Use for example the file http://w1.423.telia.com/~u42308495/alex/backart/ArtResources-0.1.2.tar.bz2 and put the .nfont directories somewhere in $(GNUSTEP_SYSTEM_ROOT)/Library/Fonts
|
||||
|
||||
Other fonts are available on http://www.knuddel.org/Downloads/Fonts/
|
||||
|
||||
Window Maker
|
||||
------------
|
||||
|
||||
Window Maker is the standard window manager for GNUstep.
|
||||
|
||||
In the case, you choose to use it, don't forget to execute wmaker.inst else Window Maker will crash with signal 10.
|
||||
|
||||
Example with Fink, do:
|
||||
/sw/bin/wmaker.inst
|
||||
|
||||
GNUstep daemons
|
||||
---------------
|
||||
|
||||
Refer to GNUstep-HOWTO to know how to launch GNUstep daemons.
|
||||
|
||||
Note: If you try to start GNUstep daemons by hand with 'sudo opentool dameon', it won't work, because when you become root on Mac OS X / Darwin with sudo or su, DYLD_LIBRARY_PATH environment variable is erased, then to start them in the shell, do:
|
||||
|
||||
sudo opentool gdomap (gdomap doesn't rely on the GNUstep libraries or other special librairies)
|
||||
su root
|
||||
|
||||
then with bourne shell like bash (Mac OS X 10.3):
|
||||
|
||||
. /GNUSTEP_SYSTEM_ROOT/Library/Makesfiles/GNUstep.sh
|
||||
|
||||
or with c shell like tcsh (Mac OS X 10.2):
|
||||
|
||||
source /GNUSTEP_SYSTEM_ROOT/Library/Makesfiles/GNUstep.csh
|
||||
|
||||
and just do:
|
||||
|
||||
opentool gdnc
|
||||
opentool gpbs
|
||||
|
||||
---
|
||||
|
||||
That's all.
|
Loading…
Reference in a new issue