Merge 1.0 branch into main.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@9547 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 2001-04-10 03:19:42 +00:00
parent 8fd79d79b1
commit a7692a5617
20 changed files with 1261 additions and 745 deletions

View file

@ -1,8 +1,54 @@
2001-04-09 Adam Fedor <fedor@gnu.org>
* Merge 1.0 branch back into main.
2001-03-23 Jonathan Gapen <jagapen@home.com>
* configure.in: Also look for 'gnutar' tar program.
* configure: Re-generate.
2001-04-05 Adam Fedor <fedor@gnu.org>
* Version: 1.0.0
* GNUstep-HOWTO, NEWS: Regenerated.
* Documentation/machines.texi: Update
2001-04-04 Adam Fedor <fedor@gnu.org>
* config.guess: Update to latest version
* config.sub: Likewise.
* configure.in: Quote $host_os
* Documentation/*texi: Update
2001-03-31 Adam Fedor <fedor@gnu.org>
* target.make (TARGET_SYSTEM_LIBS): Set default libs.
2001-03-30 Adam Fedor <fedor@gnu.org>
* target.make: Define TARGET_SYSTEM_LIBS for cygwin.
2001-03-29 Adam Fedor <fedor@gnu.org>
* Documentation/GNUmakefile.in: Use standard rules for documentation.
* Documentation/*texi: Update
* GNUstep-HOWTO, INSTALL, README: Regen.
2001-03-28 Adam Fedor <fedor@gnu.org>
* configure.in: Remove spurious ','.
* which_lib.c (search_for_library_in_directory): Translate Windows
//c paths to c: so MingW functions can find them.
2001-03-27 Adam Fedor <fedor@gnu.org>
* target.make: Add darwin target.
* Documentation/machines.texi: Update.
* Documentation/faq.texi: Likewise.
* Documentation/gnustep-howto.texi: Likewise
Mon Mar 19 14:30:01 2001 Nicola Pero <nicola@brainstorm.co.uk>
* rules.make (install): Depend on internal-after-install after all

View file

@ -22,8 +22,9 @@
prefix = @prefix@
GNUSTEP_INSTALLATION_DIR=$(prefix)
GNUSTEP_PREFIX = @GNUSTEP_PREFIX@
srcdir = @srcdir@
datadir = @datadir@
MAKEFILE_NAME = GNUmakefile
include ../Version
GNUSTEP_MAKEINFO = makeinfo
GNUSTEP_MAKEINFO_FLAGS = -D NO-TEXI2HTML --no-header
@ -36,67 +37,52 @@ GNUSTEP_TEXI2HTML_FLAGS = -split_chapter -expandinfo
GNUSTEP_DVIPS = dvips
GNUSTEP_DVIPS_FLAGS =
include ../Version
# The documents to be generated
DOCUMENT_NAME = make
DOCUMENT_NAME = make gnustep-howto machines faq
# The text documents to be generated
DOCUMENT_TEXT_NAME = \
INSTALL README
DOCUMENT_TEXT_NAME = INSTALL README NEWS GNUstep-HOWTO
TOP_DOC_FILES = INSTALL README
TOP_DOC_FILES = INSTALL README NEWS GNUstep-HOWTO
INSTALL_TEXI_FILES =
INSTALL_TEXT_MAIN = install.texi
INSTALL_DOC_INSTALL_DIR = Developer/Makefiles/ReleaseNotes/$(VERSION)
GNUstep-HOWTO_TEXI_FILES = version.texi
GNUstep-HOWTO_TEXT_MAIN = gnustep-howto.texi
NEWS_TEXI_FILES =
NEWS_TEXT_MAIN = news.texi
NEWS_DOC_INSTALL_DIR = Developer/Makefiles/ReleaseNotes/$(VERSION)
README_TEXI_FILES =
README_TEXT_MAIN = readme.texi
README_DOC_INSTALL_DIR = Developer/Makefiles/ReleaseNotes/$(VERSION)
ANNOUNCE_TEXI_FILES =
ANNOUNCE_TEXT_MAIN = announce.texi
ANNOUNCE_DOC_INSTALL_DIR = Developer/Makefiles/ReleaseNotes/$(VERSION)
FAQ_TEXI_FILES = version.texi
FAQ_TEXT_MAIN = faq.texi
make_TEXI_FILES = \
make.texi
all: $(DOCUMENT_TEXT_NAME)
for file in $(DOCUMENT_NAME); do \
$(MAKE) INTERNAL_doc_NAME=$$file TEXI_FILES=$$file.texi internal-doc-all; \
done
faq_TEXI_FILES = \
faq.texi \
version.texi
INSTALL: install.texi
$(GNUSTEP_MAKETEXT) $(GNUSTEP_MAKETEXT_FLAGS) \
-o $@ $^
machines_TEXI_FILES = \
machines.texi
README: readme.texi
$(GNUSTEP_MAKETEXT) $(GNUSTEP_MAKETEXT_FLAGS) \
-o $@ $^
gnustep-howto_TEXI_FILES = \
gnustep-howto.texi \
version.texi
internal-doc-all:: $(INTERNAL_doc_NAME).info \
$(INTERNAL_doc_NAME).ps \
$(INTERNAL_doc_NAME)_toc.html
INSTALL_TEXI_FILES = version.texi
INSTALL_TEXT_MAIN = install.texi
INSTALL_DOC_INSTALL_DIR = Developer/Makefiles/ReleaseNotes/$(VERSION)
$(INTERNAL_doc_NAME).info: $(TEXI_FILES)
$(GNUSTEP_MAKEINFO) $(GNUSTEP_MAKEINFO_FLAGS) \
-o $@ $(INTERNAL_doc_NAME).texi
NEWS_TEXI_FILES = version.texi
NEWS_TEXT_MAIN = news.texi
NEWS_DOC_INSTALL_DIR = Developer/Makefiles/ReleaseNotes/$(VERSION)
$(INTERNAL_doc_NAME).dvi: $(TEXI_FILES)
$(GNUSTEP_TEXI2DVI) $(GNUSTEP_TEXI2DVI_FLAGS) $(INTERNAL_doc_NAME).texi
README_TEXI_FILES = version.texi
README_TEXT_MAIN = readme.texi
README_DOC_INSTALL_DIR = Developer/Makefiles/ReleaseNotes/$(VERSION)
$(INTERNAL_doc_NAME).ps: $(INTERNAL_doc_NAME).dvi
$(GNUSTEP_DVIPS) $(GNUSTEP_DVIPS_FLAGS) \
$(INTERNAL_doc_NAME).dvi -o $@
ANNOUNCE_TEXI_FILES = version.texi
ANNOUNCE_TEXT_MAIN = announce.texi
ANNOUNCE_DOC_INSTALL_DIR = Developer/Makefiles/ReleaseNotes/$(VERSION)
$(INTERNAL_doc_NAME)_toc.html: $(TEXI_FILES)
$(GNUSTEP_TEXI2HTML) $(GNUSTEP_TEXI2HTML_FLAGS) \
$(INTERNAL_doc_NAME).texi
include makerules.make
include makedoc.make
regenerate: $(DOCUMENT_TEXT_NAME)
mv -f $(TOP_DOC_FILES) ..

View file

@ -20,15 +20,15 @@ Cygwin DLL 1.1.4 and MingW gcc 2.95.2-1. If you have more experience
with MinGW than me, please help improve these instructions!
I assume you have installed Cygwin and MinGW, and dowloaded and
unpacked the GNUstep core package. You also need to download a version
of the Objective-C runtime that compiles as a shared library
(DLL). See the GNUstep-HOWTO file for more information on where to get
various files.
unpacked the GNUstep packages. You also need to download a version of
the Objective-C runtime (e.g. gnustep-objc) that compiles as a shared
library (DLL). See the GNUstep-HOWTO file for more information on
where to get various files.
1. First, start up a Cygwin BASH shell and make sure the MinGW tools
are in your path:
export PATH=//c/gcc-2.95.2-1/bin:$PATH
export PATH=//c/mingw/bin:$PATH
(Put in whatever path you have for the mingw tools).
@ -37,22 +37,22 @@ there is no default for Windows machines, so you need to set that up
first with the GNUSTEP_SYSTEM_ROOT environment variable. To put it in
a similar location, you might try:
export GNUSTEP_SYSTEM_ROOT=//c/cygwin/usr/GNUstep/System
export GNUSTEP_SYSTEM_ROOT=//c/mingw/GNUstep/System
But you can put it anywhere you like (as long as you specify the full
path with the disk label so MinGW can find it). You can also specify this
with configure, using the --prefix=//c/cygwin/usr/GNUstep/System option.
with configure, using the --prefix=//c/mingw/GNUstep/System option.
3. For various reasons, we need to configure and build each
sub-package separately. So first, go to the 'make' subdirectory of the
core package and configure:
3. You need to build and install each sub-package separately. So
first, go to the 'gnustep-make' package and configure:
cd make
cd gnustep-make
./configure --target=i386-mingw32
4. Now build the Makefile package. For some reason, the make that comes
4. Now build the gnustep-make package. Occationally, the make that comes
with MinGW doesn't like the way GNUstep makefiles are setup (or perhaps
it's that MingW make doesn't work with bash), so use Cygwin's make:
it's that MingW make doesn't work with bash), so you can try
using Cygwin's make instead:
/usr/bin/make target=i386-mingw32
/usr/bin/make target=i386-mingw32 install
@ -63,21 +63,23 @@ compile correctly:
. $GNUSTEP_SYSTEM_ROOT/Makefiles/GNUstep.sh
6. Now you can compile the Objective-C runtime DLL (unless you already
have one installed):
have one installed). First edit the GNUmakefile and set the THREADING
variable to 'win32'. Then:
cd location_of_the_libobjc_library
/usr/bin/make target=i386-mingw32 BUILD_DLL=yes WITH_DLL=yes
/usr/bin/make target=i386-mingw32 BUILD_DLL=yes WITH_DLL=yes install
cd gnustep-objc
/usr/bin/make target=i386-mingw32 shared=yes
/usr/bin/make target=i386-mingw32 shared=yes install
7. Now we can configure and make the base library.
7. Now we can configure and build the gnustep-base library.
cd location_of_the_core_package/base
cd gnustep-base
./configure --target=i386-mingw32
/usr/bin/make target=i386-mingw32 BUILD_DLL=yes WITH_DLL=yes
/usr/bin/make target=i386-mingw32 BUILD_DLL=yes WITH_DLL=yes install
/usr/bin/make target=i386-mingw32 shared=yes
/usr/bin/make target=i386-mingw32 shared=yes install
Note that the base library is not completely ported to run on MinGW yet.
In particular, the gstep-base DLL doesn't seem to be set up correctly.
In particular, anything using sockets, RunLoops and FileHandles.
Alos, the gnustep-base DLL doesn't seem to be set up correctly.
To compile the gstep-base as a static library, use:
/usr/bin/make shared=no target=i386-mingw32

View file

@ -78,7 +78,7 @@ OpenStep's @samp{AppKit}.)
@item GNUstep DisplayGhostscript Server - A server that draws PostScript
graphics to the screen, and receives events from the keyboard and
mouse. It is based on GhostScript. There is also an DPS extension to
mouse. It is based on GNU GhostScript. There is also an DPS extension to
Xfree*6 that is usable.
@item Various Tools and applications, including GORM, The GNUstep
@ -846,18 +846,22 @@ It works, but is slow and buggy. A lot of work could be done.
@subsection What is the Display Ghostscript Server?
It is a free implementation of a Display PostScript server based on the
ghostscript program by Aladdin software.
GNU Ghostscript program developed by Aladdin Enterprises and now owned by artofcode LLC.
@node What is DGSs current state of development?, What is the relationship between the Display Ghostscript Server and X Windows?, What is the Display Ghostscript Server?, GNUstep DisplayGhostScript Server
@subsection What is its current state of development?
GNU contracted with Aladdin software to add some key features to
ghostscript so it could be used as a DPS server. This work has mostly
been done, althought Aladdin did not completely finish the work that they
were contracted for. DGS works fairly well with a single context and
will soon work with multiple contexts. Alpha channel and compositing
GNU contracted with Aladdin Enterprises to add some key features to
GNU Ghostscript so it could be used as a DPS server. This work has mostly
been done, although Aladdin did not completely
finish the work that they were contracted for. (Because the work took
longer than specified and was not completed, Aladdin agreed to waive
approximately $10,000 in promised fees for the work that was actually
done and delivered.)
DGS works fairly well with a single context.
Alpha channel and compositing
currently doesn't work, but should before the end of 2000 (It's already
been fixed in Ghostscript, just not released).
been fixed in GNU Ghostscript 6.0, just not released).
@node What is the relationship between the Display Ghostscript Server and X Windows?, , What is DGSs current state of development?, GNUstep DisplayGhostScript Server
@subsection What is the relationship between the Display Ghostscript Server and X Windows?

View file

@ -36,7 +36,7 @@ any later version published by the Free Software Foundation.
Last Update: @today{}
This document explains how to build the different components of the
GNUstep core libraries.
GNUstep core libraries and GNUstep Launchpad.
Copyright (C) 1996 - 2001 Free Software Foundation, Inc.
@ -59,15 +59,16 @@ any later version published by the Free Software Foundation.
* Tools and Applications::
* Machine Specific::
* Anonymous CVS::
* Other::
@end menu
@node Introduction, Summary, Top, Top
@chapter Introduction
This document explains how to build the GNUstep core libraries. The core
This document explains how to build the GNUstep core libraries or
GNUstep Launchpad. The core
libraries, along with associated tools and other files provide
everything necessary for a working GNUstep system.
everything necessary for a working GNUstep system. GNUstep Launchpad
consists of the non-graphical libraries of GNUstep.
In order to easily compile and debug GNUstep projects, you will need the
GNU Objective-C compiler @samp{GCC} as well as various other GNU packages.
@ -97,6 +98,9 @@ After installing these packages, get the following individual packages:
@item gnustep-xgps
@end itemize
For GNUstep Launchpad, substitue @file{gnustep-guile} and @file{jigs} for
@file{gnustep-gui} and @file{gnustep-xgps/xdps}.
See @url{http://www.gnustep.org} for information on where to get these
packages. Only one of gnustep-xgps or gnustep-xdps is required. We
currently recommend gnustep-xgps. Other packages you may need to get
@ -155,13 +159,13 @@ and NSConnection. This library is highly recommended. The previous
builtin method for stack frame handling is no longer supported and
may be removed in the future.
@item libobjc library snapshot (for gcc version <= 2.95.2)
@item gnustep-objc package (for gcc version <= 3.0)
This is a special version of the Objective-C runtime that include several
bug fixes and features that have not been officially released yet.
It is available at @url{ftp://ftp.gnustep.org/pub/gnustep/libs} which
compiles using the GNUstep Makefile package (so you don't have to get the
entire gcc dist). Make sure to set the THREADING variable in the GNUmakefile.
It might also be best to compile the library static (make shared=no) and
It's possible to compile the library static (make shared=no) and
just copy to the place where the gcc libobjc library is (type gcc -v to
get this location).
@end table
@ -171,15 +175,15 @@ get this location).
Make sure you install all the previously mentioned libraries first
before configuring and building GNUstep (Except you need to install
libobjc after installing gnustep-make, unless your installing it as part
gnustep-objc after installing gnustep-make, unless your installing it as part
of gcc).
Note: you will need to be able to install packages as root (at least
the base library) for applications to work correctly.
For installation on MinGW systems, read the README.MinGW file in the
Documentation directory. For other systems, see the machines documentation
or appropriate README files in the Documentation directory.
For installation on specific systems, read the machine specific
instructions at the end of this document or appropriate README files in
the gnustep-make Documentation directory (such as README.MingW for Windows).
@menu
* DPS System::
@ -218,12 +222,12 @@ directory when you run configure with the prefix paramter; the
following command makes /usr/local/GNUstep the root directory:
@example
./configure --prefix=/usr/local/GNUstep
./configure --prefix=/usr/local/GNUstep/System
@end example
If you do not have the GNUSTEP_SYSTEM_ROOT environment variable set
and you do not specify a root directory when running configure, then
configure will use /usr/GNUstep as the default root directory.
configure will use /usr/GNUstep/System as the default root directory.
@menu
* Alternate Library Setup::
@ -251,8 +255,8 @@ configuration options when configuring each GNUstep library.
@node Individual Packages, , Alternate Library Setup, Core Package
@subsection Building the Package
To build the individual packages, use the familiar set of commands for
each pacakge:
To build the individual packages, use this familiar set of commands for
each pacakge (add any additional options you decide upon):
@example
./configure
@ -260,8 +264,7 @@ make
make install
@end example
Start with the Makefile Pacakge (gnustep-make), then do gnustep-base,
gnustep-gui and finally gnustep-xgps (or gnustep-xdps). After installing
Start with the Makefile Pacakge (gnustep-make). After installing
gnustep-make you need to execute GNUstep's shell configuration
script, as follows:
@ -269,7 +272,16 @@ script, as follows:
. /usr/GNUstep/System/Makefiles/GNUstep.sh
@end example
before proceeding any further.
before proceeding any further. Then do gnustep-objc. Before building
gnustep-objc, edit @file{GNUmakefile} and set the @var{THREADING}
variable to the thread library used on your system (usually its posix,
but you can leave it at single if you don't need threads). At this point
you should probably re-configure, make and install gnustep-make, so it
can pick up on any threading information that gnustep-objc provides.
Now do gnustep-base, gnustep-gui and finally gnustep-xgps (or
gnustep-xdps). For GNUstep Launchpad, do gnustep-guile and jigs
(although both of these are optional).
NOTE: If you are trying to install the packages without root permission,
you need to change one thing in the base library. Edit the file
@ -278,6 +290,16 @@ gnustep-base/Tools/gdomap.h and uncomment the last line.
@node Additional Installation, Tools and Applications, Compiling and Installing, Top
@chapter Additional Installation
@menu
* Environment Setup::
* GNUstep Home::
* Time Zone::
* DPS Information::
* GNUstep deamons::
@end menu
@node Environment Setup, GNUstep Home, Additional Installation, Additional Installation
@section Environment Setup
Add the shell script @file{GNUstep.sh} located in the Makefile
package to your shell startup file (such as @file{.profile}). For instance:
@ -301,6 +323,9 @@ setenv GNUSTEP_SYSTEM_ROOT /usr/GNUstep
source $GNUSTEP_SYSTEM_ROOT/Makefiles/GNUstep.csh
@end example
@node GNUstep Home, Time Zone, Environment Setup, Additional Installation
@section GNUstep Home
Set up your home GNUstep directory. This is where user defaults are
kept, and in the future, other files may be kept there.
@ -309,6 +334,9 @@ cd
mkdir GNUstep
@end example
@node Time Zone, DPS Information, GNUstep Home, Additional Installation
@section Time Zone
Next, set your local time zone. There are four ways to do this, pick
one (see @file{$GNUSTEP_SYSTEM_ROOT/Libraries/Resources/NSTimeZones/zones} for typical time zones):
@ -325,9 +353,15 @@ something like ``defaults write NSGlobalDomain "Local Time Zone" GB''.
software on your system though).
@end enumerate
@node DPS Information, GNUstep deamons, Time Zone, Additional Installation
@section DPS Information
If you are using a built-in DPS server, you may need to set the PSRESOURCEPATH
environment variable (on Solaris, it's set to @file{/usr/openwin/lib/X11}).
@node GNUstep deamons, , DPS Information, Additional Installation
@section GNUstep deamons
Set up your system to execute some GNUstep deamons. If you don't do this, they will be started automatically when you run your first GNUstep app:
@itemize @bullet
@ -357,7 +391,7 @@ fi
Test programs for the base library are in @file{base/Testing}. Example
applications are located in the gstep-examples package. To make these,
just uncompress and untar this package, cd to the appropriate
directory, and type make. Generally you will need to install GNUstep
directory, and type make. You will need to install the GNUstep core libraries
first before doing this.
To run the examples. Use the openapp utility that is part of the GNUstep
@ -376,50 +410,28 @@ Good Luck!
@include machines.texi
@node Anonymous CVS, Other, Machine Specific, Top
@node Anonymous CVS, , Machine Specific, Top
@chapter Getting Libraries via Anonymous CVS
If you didn't get one of the snapshots, or if you want to be sure
to stay on the bleading edge, then you should get the core via CVS:
If you didn't get one of the snapshots, or if you want to be sure to
stay on the bleading edge, then you should get the libraries via CVS. Go
to @url{http://savannah.gnu.org/cvs/?group_id=99} for information on how
to get anonymous CVS access.
The quick and painless CVS tutorial (by michael hanni (slightly modified)
First, set the CVSROOT environment variable. If you are using
bash/sh you can do something like this at the prompt:
If you haven't already done so, change to the directory, where you
want the source to reside. To get a list of potential modules to check out,
type
@example
export CVSROOT=":pserver:anoncvs@@cvs.net-community.com:/gnustep"
cvs -z3 checkout -c
@end example
Second, if this is the first time loging into the CVS server:
@example
cvs login <press enter>
@end example
You should get a password prompt soon after:
@example
(Logging in to anoncvs@@cvs.net-community.com)
CVS password:
@end example
Enter the password @samp{anoncvs}. This should return you to your
prompt. From here you can checkout any module in the CVS server you
like. To checkout a module you do this:
@example
cvs -z3 checkout modulename <press enter>
@end example
The -z3 merely tells the cvs server to compess everything to a
certain compression level before it sends it to you.
If you haven't already done so, change to the directory, where you
want the source to reside.
Next, you want to get the whole core, so you do:
For instance, to check our @file{core}, which contains all the GNUstep
code libraries:
@example
cvs -z3 checkout core
@end example
After you have checked out the source you can compile it as
After you have checked out the source you can compile it as
usual. To update the source, go into the directory of the source tree
you want to update, for example, go into 'xgps', and type:
@ -427,35 +439,7 @@ you want to update, for example, go into 'xgps', and type:
cvs -z3 update -Pd
@end example
You don't have to re-checkout after you have the source, just update!
Also try @samp{cvs checkout -c} to get a list of available modules.
@node Other, , Anonymous CVS, Top
@chapter Other Instructions
@menu
* Better Debugging::
@end menu
@node Better Debugging, , Other, Other
@section Better debugging with Objective-C runtime
Normally, the Objective-C runtime is compiled with debugging information,
which actually makes debugging of user apps frustrating because stepping
into a method call will actually cause gdb to step into the internal
Objective-C method call mechanism, which you don't want most of the time.
The way to avoid this is to compile the Objective-C runtime library without
debugging information. Here's how:
@example
cd egcs-build-directory/gcc
rm -f objc/*.o
make CFLAGS=-O2 libobjc.a
cp libobjc.a your-egcs-installation-dir
@end example
You don't have to re-checkout after you have the source, just update!
@chapter Acknowledgements

View file

@ -15,8 +15,7 @@
If you are installing this package as part of the GNUstep core
libraries, read the file GNUstep-HOWTO for more complete instructions on
how to install the entire GNUstep package (including this package).
GNUstep-HOWTO comes with the core distribution and also is located at the
same ftp sites as this library.
GNUstep-HOWTO comes with this distribution.
When you configure additional libraries, make sure you use the same
configuration options as with gstep-make.
@ -58,14 +57,13 @@ To see more options you can use with configure, type
@end example
Look particularly at the end of the list that configure gives, as these
options are specific to GNUstep. For instance, if you installed the tiff
library in other than a normal directory, you can use the
@samp{--with-tiff-include} option to tell configure where it is.
options are specific to GNUstep. Some of these are described below.
With the various GNUstep libraries you can use the various
switches, shared and debug. As in ``make shared=no debug=yes'' (Make sure
you use the same switches for every package you compile, and also when
you install).
With the GNUstep packages you can use various switches, such as shared
and debug, to control compilation. for example, ``make shared=no
debug=yes'' compiles using static libraries with debugging
information. (Make sure you use the same switches for every package you
compile, and also when you install).
@menu
* Alternate Libraries::
@ -77,7 +75,7 @@ you install).
@subsection Alternate Library Setup
You can specify compilation of alternate libraries by using the
--with-library-combo option. You need to have these libraries unpacked in a
with-library-combo option. You need to have these libraries unpacked in a
subdirectory under the gstep directory, then you can say
@example
@ -173,8 +171,8 @@ contains all of the environment variable settings required, so you want
to call that shell. Some systems, like GNU/Linux have an
@file{/etc/profile.d} directory where scripts can be executed
automatically. Just copy GNUstep.sh to this directory for it to
work. For other UNIX systems, the easiest way to do that is to modify
the system rc.local file which is executed upon system startup; add
work. For other UNIX systems, there might be a system wide script that
everyone uses, such as @file{/etc/bashrc}, where you could add
lines similar to these:
@example
@ -186,7 +184,7 @@ This will source in the GNUstep.sh file and set the environment
variables; thus making them available for all users. Before executing
this script, you can setup a default path for searching for tools
and apps by defining the variable GNUSTEP_PATHPREFIX_LIST (and exporting
it). By defualt, it's set to
it). By default, it's set to
@example
$GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_SYSTEM_ROOT
@ -214,7 +212,9 @@ shell reads the .bash_profile file in the user's home directory. So
you can add the following lines to that file:
# Setup for the GNUstep environment
. /usr/GNUstep/Makefiles/GNUstep.sh
if [ -f $GNUSTEP_SYSTEM_ROOT/Makefiles/GNUstep.sh ]; then
. $GNUSTEP_SYSTEM_ROOT/Makefiles/GNUstep.sh
fi
This will source in the GNUstep.sh file and set the environment
variables; thus making them available for the user.

View file

@ -1,8 +1,8 @@
@c \input texinfo @c -*-texinfo-*-
@setfilename machines.info
@ifclear HOWTO
@c Machine Specific, Debian/DEC-Alpha, , (DIR)
@node Machine Specific, Debian/DEC-Alpha, , (DIR)
@c Machine Specific, Darwin 1.0/PowerPC, , (DIR)
@node Machine Specific, Darwin 1.0/PowerPC, , (DIR)
@chapter Machines
@end ifclear
@ -12,11 +12,11 @@ more popular operating systems. Some machines marked with
@emph{Unstable} may have some trouble or may not work at all.
@menu
* Darwin 1.0/PowerPC::
* Debian/DEC-Alpha::
* FreeBSD 3.x::
* FreeBSD 2.x::
* GNU-Linux/Intel::
* GNU-Linux/PowerPC 4::
* GNU-Linux/PowerPC 5::
* Irix 6.4/MIPS::
* MkLinux/PowerPC::
@ -31,6 +31,7 @@ more popular operating systems. Some machines marked with
* Suse 7.x/Intel::
* Unixware-2.1.3/Intel::
* Windows with CYGWIN::
* Windows with MinGW::
@end menu
A recommended compiler is listed for each machine, if known. You should try
@ -43,12 +44,38 @@ 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}.
If your having mysterious trouble with a machine, try compiling GNUstep without optimization. Particularly in the newer GCC compilers, optimization can break
some code. The easiest way to do this is when
configuring: @samp{CFLAGS="" ./configure}. Or @samp{make OPTFLAG=""}.
If your having mysterious trouble with a machine, try compiling GNUstep
without optimization. Particularly in the newer GCC compilers,
optimization can break some code. The easiest way to do this is when
configuring, @samp{CFLAGS="" ./configure}. Or when building,
@samp{make OPTFLAG=""}.
@c -----------------------------------------
@node Debian/DEC-Alpha, FreeBSD 3.x, Machine Specific, Machine Specific
@node Darwin 1.0/PowerPC, Debian/DEC-Alpha, Machine Specific, Machine Specific
@section Darwin 1.0/PowerPC (@emph{Unstable!})
@table @samp
@item Recommended compiler
Unknown
@item Extra libs needed
Don't use gnustep-objc or ffcall.
@item Special Instructions
@end table
GNUstep has not been ported to Darwin. Expect some minor irritations and
possibly one or two major ones if your trying to do this. Darwin doesn't
have a GCC ObjC Compiler, so you need to use the ObjC runtime that comes with
Darwin. To do this configure (gnustep-make) like this:
@example
./configure --with-library-combo=nx-gnu-gnu-xgps
@end example
@c -----------------------------------------
@node Debian/DEC-Alpha, FreeBSD 3.x, Darwin 1.0/PowerPC, Machine Specific
@section Debian/DEC-Alpha
@table @samp
@ -135,7 +162,7 @@ You need to use gmake not make to compile the GNUstep packages.
@end table
@c -----------------------------------------
@node GNU-Linux/Intel, GNU-Linux/PowerPC 4, FreeBSD 2.x, Machine Specific
@node GNU-Linux/Intel, GNU-Linux/PowerPC 5, FreeBSD 2.x, Machine Specific
@section GNU-Linux/Intel (RedHat 5.x, 6.x, and 7.0)
@table @samp
@ -169,24 +196,7 @@ CC=egcs LDFLAGS="-u shmctl@@GLIBC_2.2 -L/lib -lc -u getpwuid_r@@GLIBC_2.1.2
@end table
@c -----------------------------------------
@node GNU-Linux/PowerPC 4, GNU-Linux/PowerPC 5, GNU-Linux/Intel, Machine Specific
@section GNU-Linux/PowerPC (LinuxPPC 4.x)
@table @samp
@item Recommended compiler
egcs-2.90.25 980302 (egcs-1.0.2 prerelease).
glibc-0.961212-1h.
gdb: 4.16.97.
@item Extra libs needed
None.
@item Special Instructions
egcs-1.1.2 does NOT work.
@end table
@c -----------------------------------------
@node GNU-Linux/PowerPC 5, Irix 6.4/MIPS, GNU-Linux/PowerPC 4, Machine Specific
@node GNU-Linux/PowerPC 5, Irix 6.4/MIPS, GNU-Linux/Intel, Machine Specific
@section GNU-Linux/PowerPC (LinuxPPC 5.x)
@table @samp
@ -198,18 +208,18 @@ gcc-2.95
None.
@item Special Instructions
You need to compile without optimization or the compiler will not
be able to compile several files (CFLAGS="" ./configure). Compiling
with CFLAGS="-O" also works. The gcc-2.95 compiler fixes this problem.
There may be a problem with the X server that causes programs to crash with a X_QueryColors error. If so, get a newer X server
at @url{ftp://ftp.linuxppc.org/linuxppc/contrib/linuxppc-1999/software/XFree86-FBDev-3.3.3.1-49b.ppc.rpm}.
You need to compile without optimization or the compiler will not be
able to compile several files (CFLAGS="" ./configure). Compiling with
CFLAGS="-O" also works. The gcc-2.95 compiler fixes this problem. There
may be a problem with the X server that causes programs to crash with a
X_QueryColors error. If so, get a newer X server at
@url{ftp://ftp.linuxppc.org/linuxppc/contrib/linuxppc-1999/software/XFree86-FBDev-3.3.3.1-49b.ppc.rpm}.
@end table
Invocations (and DO) do not work well. The major problem is sending data
with data sizes less than 4 bytes (chars, shorts, etc). To fix this, we
recommend using the ffcall libraries via the @code{--enable-ffcall}
option when configuring (Read the instructions on this in the
recommend using the ffcall libraries (Read the instructions on this in the
configuration section).
@c -----------------------------------------
@ -299,10 +309,6 @@ Unknown
@item Special Instructions
Can only compile with static libraries. Gives a lot of warnings
GNUstep 0.6.0 uses code to access the /proc filesystem, which may be broken
on BSD machines. To avoid this configure with the argument --enable-fake-main.
Later versions of GNUstep should check for a broken /proc filesystem.
@end table
@c -----------------------------------------
@ -346,19 +352,19 @@ See the Solaris 2.6 section for more instructions.
@c -----------------------------------------
@node Solaris 2.6/Sparc, Solaris 2.7/Intel, Solaris 2.5.1/Sparc, Machine Specific
@section Solaris 2.6/Sparc
@c Contact?: Benhur Stein <Benhur-de-Oliveira.Stein@imag.fr>
@section Solaris 2.[67]/Sparc
@table @samp
@item Recommended compiler
egcs-2.91.60 (1.1.2?), egcs-1.0.1, gcc 2.8.1, gcc 2.95.2
gcc 2.95.3. Version 2.95.2 has several bugs that GNUstep tickles.
@item Extra libs needed
tiff, Don't use the one in /usr/openwin
@item Special Instructions
GCC 2.8.0 induced a problem on Solaris/Sparc
systems; however, there is a patch to fix this in the contrib directory
There is no need to patch the compiler for the builtin_apply problem unless
you are not using the ffcall libraries.
There is a patch to fix this in the contrib directory
on the ftp sites (This is also true for all versions of gcc/egcs up
through 2.95.2 (possibly fixed in later versions)).
@ -369,15 +375,15 @@ LIBS=-L/usr/local/lib ./configure
if, for instance, you have put a newer tiff library in /usr/local/lib
@end table
Even with the about patch, invocations (and DO) still don't
Even with the above patch, invocations (and DO) still don't
work well. The major problem is sending messages with more than four arguments.
We recommend using the ffcall libraries via the @code{--enable-ffcall} option
We recommend using the ffcall libraries
when configuring (Read the instructions on this in the configuration section).
If you are using threads, make sure the Objective-C runtime (libobjc that comes
with gcc) is compiled with threads enabled (This is true by default) AND that
it is compiled with the _REENTRANT flag defined (This does not seem to be
true by default).
true by default). Or use the gnustep-objc package.
@c -----------------------------------------
@node Solaris 2.7/Intel, Suse 6.x/Intel, Solaris 2.6/Sparc, Machine Specific
@ -547,32 +553,37 @@ If you don't set gdomap up correctly, Distributed Objects will not
work.
@c -----------------------------------------
@node Windows with CYGWIN, , Unixware-2.1.3/Intel, Machine Specific
@node Windows with CYGWIN, Windows with MinGW, Unixware-2.1.3/Intel, Machine Specific
@section Windows with CYGWIN (@emph{Unstable!})
@table @samp
@item Recommended compiler
gcc 2.95.2 (Cygwin release 1.1.2 or later)
gcc 2.95.3 (Cygwin release 1.1.8)
@item Extra libs needed
Objective-C library DLL (@url{ftp://ftp.gnustep.org/pub/gnustep/libs})
for shared libs.
for shared libs. ffcall is not ported to cygwin so don't try to use it (some
invocation and DO stuff will not work).
@item Special Instructions
Static libs require no extra effort (just make shared=no), however, DLLs
(shared=yes) are compiled by default, and for this you need a special
version of the Objective-C library that also compiles as a DLL. Make sure
files and compilation done in Unix mode (no ^M in files). For shared libs
you have to type @samp{make BUILD_DLL=yes WITH_DLL=yes} for all packages,
despite the fact that this should be set automatically.
Gdomap services
not set up correctly. Must add services lines to @file{C:\WINDOWS\services}
(on Windows 98) or xxx (on Windows NT).
Base library only. No native GUI backend.
@end table
For shared libs, make sure to specify @var{shared=yes} explicitly when
building:
@example
make shared=yes
@end example
For static libs, use @var{shared=no}, Make sure files and compilation
done in Unix mode (no ^M in files, @var{export CYGWIN=binmode} usually
works if cygwin is not buggy). Gdomap services not set up
correctly. Must add services lines to @file{C:\WINDOWS\services} (on
Windows 98) or xxx (on Windows NT). Base library only. No native GUI
backend.
@c -----------------------------------------
@node Windows with MinGW, , Unixware-2.1.3/Intel, Machine Specific
@node Windows with MinGW, , Windows with CYGWIN, Machine Specific
@section Windows with MinGW (@emph{Unstable!})
@table @samp
@ -581,7 +592,7 @@ gcc 2.95.2 (MingW release 1999-11-07)
@item Extra libs needed
Objective-C library DLL (@url{ftp://ftp.gnustep.org/pub/gnustep/libs})
for shared libs.
for shared libs. ffcall is not ported to Mingw32 so don't try to use it.
@item Special Instructions
See the @file{README.MinGW} file located in the gnustep-make Documentation

View file

@ -9,6 +9,16 @@
The currently released version is @samp{@value{GNUSTEP-MAKE-VERSION}}.
@section Changes in version @samp{1.0.0}
@itemize @bullet
@item Optimizations that in many cases more than double the speed.
@item Added preliminary darwin support.
@item rpm packeing improvements.
@item Better checking for mingw and cygwin
@end itemize
@ifclear ANNOUNCE-ONLY
@section Changes in version @samp{0.9.2}
@itemize @bullet
@ -29,7 +39,6 @@ add extra package information can do so by installing a make stub in the
@item RPM support rewritten from scratch.
@end itemize
@ifclear ANNOUNCE-ONLY
@section Changes in version @samp{0.9.0}
ffcall library is highly recommended for use with the GNUstep base

View file

@ -4,19 +4,18 @@ Here is some introductory info to get you started:
@section What is the GNUstep makefile package?
The makefile package is a simplistic, powerful and extensible way to
The makefile package is a simple, powerful and extensible way to
write makefiles for a GNUstep-based project. It allows the user to
write a GNUstep-based project without having to deal with the complex
issues associated with the configuration and installation of the core
GNUstep libraries. It also allows the user to easily create
cross-compiled binaries.
write a project without having to deal with the complex issues
associated with configuration, building, installation, and packaging.
It also allows the user to easily create cross-compiled binaries.
@section Information
The file @samp{NEWS} has the library's feature history.
The files @samp{INSTALL} or @samp{GNUstep-HOWTO}
give instructions for installing the library. Also see the machines.texi
give instructions for installing the library. Also see the @file{machines}
documentation and various machine specific READMEs in the Documentation
directory.

View file

@ -1,10 +1,10 @@
GNUstep HOWTO
*************
Last Update: 26 February 2001
Last Update: 5 April 2001
This document explains how to build the different components of the
GNUstep core libraries.
GNUstep core libraries and GNUstep Launchpad.
Copyright (C) 1996 - 2001 Free Software Foundation, Inc.
@ -15,9 +15,10 @@
Introduction
************
This document explains how to build the GNUstep core libraries. The
core libraries, along with associated tools and other files provide
everything necessary for a working GNUstep system.
This document explains how to build the GNUstep core libraries or
GNUstep Launchpad. The core libraries, along with associated tools and
other files provide everything necessary for a working GNUstep system.
GNUstep Launchpad consists of the non-graphical libraries of GNUstep.
In order to easily compile and debug GNUstep projects, you will need
the GNU Objective-C compiler `GCC' as well as various other GNU
@ -51,6 +52,9 @@ packages:
* gnustep-xgps
For GNUstep Launchpad, substitue `gnustep-guile' and `jigs' for
`gnustep-gui' and `gnustep-xgps/xdps'.
See <http://www.gnustep.org> for information on where to get these
packages. Only one of gnustep-xgps or gnustep-xdps is required. We
currently recommend gnustep-xgps. Other packages you may need to get
@ -111,30 +115,32 @@ depending on the type of system you are using, include:
The previous builtin method for stack frame handling is no longer
supported and may be removed in the future.
`libobjc library snapshot (for gcc version <= 2.95.2)'
`gnustep-objc package (for gcc version <= 3.0)'
This is a special version of the Objective-C runtime that include
several bug fixes and features that have not been officially
released yet. It is available at
<ftp://ftp.gnustep.org/pub/gnustep/libs> which compiles using the
GNUstep Makefile package (so you don't have to get the entire gcc
dist). Make sure to set the THREADING variable in the GNUmakefile.
It might also be best to compile the library static (make
shared=no) and just copy to the place where the gcc libobjc
library is (type gcc -v to get this location).
It's possible to compile the library static (make shared=no) and
just copy to the place where the gcc libobjc library is (type gcc
-v to get this location).
Compiling and Installing the packages
*************************************
Make sure you install all the previously mentioned libraries first
before configuring and building GNUstep (Except you need to install
libobjc after installing gnustep-make, unless your installing it as part
of gcc).
gnustep-objc after installing gnustep-make, unless your installing it
as part of gcc).
Note: you will need to be able to install packages as root (at least
the base library) for applications to work correctly.
For installation on MinGW systems, read the README.MinGW file in the
make package.
For installation on specific systems, read the machine specific
instructions at the end of this document or appropriate README files in
the gnustep-make Documentation directory (such as README.MingW for
Windows).
Using a Display Postscript System
=================================
@ -165,11 +171,11 @@ its value as the root directory. You can also specify the root
directory when you run configure with the prefix paramter; the
following command makes /usr/local/GNUstep the root directory:
./configure --prefix=/usr/local/GNUstep
./configure --prefix=/usr/local/GNUstep/System
If you do not have the GNUSTEP_SYSTEM_ROOT environment variable set
and you do not specify a root directory when running configure, then
configure will use /usr/GNUstep as the default root directory.
configure will use /usr/GNUstep/System as the default root directory.
Alternate Library Setup
-----------------------
@ -191,21 +197,29 @@ options when configuring each GNUstep library.
Building the Package
--------------------
To build the individual packages, use the familiar set of commands
for each pacakge:
To build the individual packages, use this familiar set of commands
for each pacakge (add any additional options you decide upon):
./configure
make
make install
Start with the Makefile Pacakge (gnustep-make), then do gnustep-base,
gnustep-gui and finally gnustep-xgps (or gnustep-xdps). After installing
Start with the Makefile Pacakge (gnustep-make). After installing
gnustep-make you need to execute GNUstep's shell configuration script,
as follows:
. /usr/GNUstep/System/Makefiles/GNUstep.sh
before proceeding any further.
before proceeding any further. Then do gnustep-objc. Before building
gnustep-objc, edit `GNUmakefile' and set the THREADING variable to the
thread library used on your system (usually its posix, but you can
leave it at single if you don't need threads). At this point you should
probably re-configure, make and install gnustep-make, so it can pick up
on any threading information that gnustep-objc provides.
Now do gnustep-base, gnustep-gui and finally gnustep-xgps (or
gnustep-xdps). For GNUstep Launchpad, do gnustep-guile and jigs
(although both of these are optional).
NOTE: If you are trying to install the packages without root
permission, you need to change one thing in the base library. Edit the
@ -214,6 +228,9 @@ file gnustep-base/Tools/gdomap.h and uncomment the last line.
Additional Installation
***********************
Environment Setup
=================
Add the shell script `GNUstep.sh' located in the Makefile package to
your shell startup file (such as `.profile'). For instance:
@ -233,12 +250,18 @@ for every user on your system, you can try copying/linking the
setenv GNUSTEP_SYSTEM_ROOT /usr/GNUstep
source $GNUSTEP_SYSTEM_ROOT/Makefiles/GNUstep.csh
GNUstep Home
============
Set up your home GNUstep directory. This is where user defaults are
kept, and in the future, other files may be kept there.
cd
mkdir GNUstep
Time Zone
=========
Next, set your local time zone. There are four ways to do this, pick
one (see `$GNUSTEP_SYSTEM_ROOT/Libraries/Resources/NSTimeZones/zones'
for typical time zones):
@ -257,10 +280,16 @@ for typical time zones):
4. Set the TZ environment variable (this may conflict with other
software on your system though).
DPS Information
===============
If you are using a built-in DPS server, you may need to set the
PSRESOURCEPATH environment variable (on Solaris, it's set to
`/usr/openwin/lib/X11').
GNUstep deamons
===============
Set up your system to execute some GNUstep deamons. If you don't do
this, they will be started automatically when you run your first
GNUstep app:
@ -288,8 +317,8 @@ Test Tools and Applications
Test programs for the base library are in `base/Testing'. Example
applications are located in the gstep-examples package. To make these,
just uncompress and untar this package, cd to the appropriate
directory, and type make. Generally you will need to install GNUstep
first before doing this.
directory, and type make. You will need to install the GNUstep core
libraries first before doing this.
To run the examples. Use the openapp utility that is part of the
GNUstep makefile package (and stored in `$GNUSTEP_SYSTEM_ROOT/Tools').
@ -321,7 +350,25 @@ to the GNUstep maintainer <gnustep-maintainers@gnu.org>.
If your having mysterious trouble with a machine, try compiling
GNUstep without optimization. Particularly in the newer GCC compilers,
optimization can break some code. The easiest way to do this is when
configuring: `CFLAGS="" ./configure'. Or `make OPTFLAG=""'.
configuring, `CFLAGS="" ./configure'. Or when building, `make
OPTFLAG=""'.
Darwin 1.0/PowerPC (_Unstable!_)
================================
`Recommended compiler'
Unknown
`Extra libs needed'
Don't use gnustep-objc or ffcall.
`Special Instructions'
GNUstep has not been ported to Darwin. Expect some minor irritations
and possibly one or two major ones if your trying to do this. Darwin
doesn't have a GCC ObjC Compiler, so you need to use the ObjC runtime
that comes with Darwin. To do this configure (gnustep-make) like this:
./configure --with-library-combo=nx-gnu-gnu-xgps
Debian/DEC-Alpha
================
@ -424,19 +471,6 @@ GNU-Linux/Intel (RedHat 5.x, 6.x, and 7.0)
CC=egcs LDFLAGS="-u shmctl@GLIBC_2.2 -L/lib -lc -u getpwuid_r@GLIBC_2.1.2
-L/lib -lc -u getpwnam_r@GLIBC_2.1.2 -L/lib -lc" ./configure
GNU-Linux/PowerPC (LinuxPPC 4.x)
================================
`Recommended compiler'
egcs-2.90.25 980302 (egcs-1.0.2 prerelease). glibc-0.961212-1h.
gdb: 4.16.97.
`Extra libs needed'
None.
`Special Instructions'
egcs-1.1.2 does NOT work.
GNU-Linux/PowerPC (LinuxPPC 5.x)
================================
@ -448,18 +482,17 @@ GNU-Linux/PowerPC (LinuxPPC 5.x)
`Special Instructions'
You need to compile without optimization or the compiler will not
be able to compile several files (CFLAGS="" ./configure). Compiling
with CFLAGS="-O" also works. The gcc-2.95 compiler fixes this
problem. There may be a problem with the X server that causes
programs to crash with a X_QueryColors error. If so, get a newer X
server at
be able to compile several files (CFLAGS="" ./configure).
Compiling with CFLAGS="-O" also works. The gcc-2.95 compiler fixes
this problem. There may be a problem with the X server that
causes programs to crash with a X_QueryColors error. If so, get a
newer X server at
<ftp://ftp.linuxppc.org/linuxppc/contrib/linuxppc-1999/software/XFree86-FBDev-3.3.3.1-49b.ppc.rpm>.
Invocations (and DO) do not work well. The major problem is sending
data with data sizes less than 4 bytes (chars, shorts, etc). To fix
this, we recommend using the ffcall libraries via the `--enable-ffcall'
option when configuring (Read the instructions on this in the
configuration section).
this, we recommend using the ffcall libraries (Read the instructions on
this in the configuration section).
Irix 6.4/MIPS (_Unstable!_)
===========================
@ -503,20 +536,10 @@ NetBSD
Unknown
`Extra libs needed'
Unknown
libiconv
`Special Instructions'
Can compile with shared libraries on elf architectures, although
problems persist with the NXConstantString class. Currently, to
avoid this you can redefine NXConstantString to NXConstantString2
in the libobjc library. Or you could do the following (works on
NetBSD 1.4Z)
cd /usr/lib
ar -dv libobjc_p.a NXConstStr.po
ar -dv libobjc_pic.a NXConstStr.so
ar -dv libobjc.a NXConstStr.o
rm /usr/lib/libobjc.so.0.0
See the README.NetBSD file located in the gnustep-make package.
Netwinder (_Unstable!_)
=======================
@ -542,11 +565,6 @@ OpenBSD 2.x (_Unstable!_)
`Special Instructions'
Can only compile with static libraries. Gives a lot of warnings
GNUstep 0.6.0 uses code to access the /proc filesystem, which may
be broken on BSD machines. To avoid this configure with the
argument -enable-fake-main. Later versions of GNUstep should
check for a broken /proc filesystem.
OSF Alpha (_Unstable!_)
========================
@ -579,20 +597,21 @@ Solaris 2.5.1/Sparc
`Special Instructions'
See the Solaris 2.6 section for more instructions.
Solaris 2.6/Sparc
=================
Solaris 2.[67]/Sparc
====================
`Recommended compiler'
egcs-2.91.60 (1.1.2?), egcs-1.0.1, gcc 2.8.1, gcc 2.95.2
gcc 2.95.3. Version 2.95.2 has several bugs that GNUstep tickles.
`Extra libs needed'
tiff, Don't use the one in /usr/openwin
`Special Instructions'
GCC 2.8.0 induced a problem on Solaris/Sparc systems; however,
there is a patch to fix this in the contrib directory on the ftp
sites (This is also true for all versions of gcc/egcs up through
2.95.2 (possibly fixed in later versions)).
There is no need to patch the compiler for the builtin_apply
problem unless you are not using the ffcall libraries. There is a
patch to fix this in the contrib directory on the ftp sites (This
is also true for all versions of gcc/egcs up through 2.95.2
(possibly fixed in later versions)).
To avoid using the tiff library in /usr/openwin, configure like
this:
@ -600,16 +619,15 @@ Solaris 2.6/Sparc
if, for instance, you have put a newer tiff library in
/usr/local/lib
Even with the about patch, invocations (and DO) still don't work
Even with the above patch, invocations (and DO) still don't work
well. The major problem is sending messages with more than four
arguments. We recommend using the ffcall libraries via the
`--enable-ffcall' option when configuring (Read the instructions on
this in the configuration section).
arguments. We recommend using the ffcall libraries when configuring
(Read the instructions on this in the configuration section).
If you are using threads, make sure the Objective-C runtime (libobjc
that comes with gcc) is compiled with threads enabled (This is true by
default) AND that it is compiled with the _REENTRANT flag defined (This
does not seem to be true by default).
does not seem to be true by default). Or use the gnustep-objc package.
Solaris 2.7/Intel
=================
@ -752,55 +770,56 @@ Windows with CYGWIN (_Unstable!_)
=================================
`Recommended compiler'
gcc 2.95.2 (Cygwin release 1.1.2 or later)
gcc 2.95.3 (Cygwin release 1.1.8)
`Extra libs needed'
Objective-C library DLL
(<ftp://ftp.gnustep.org/pub/gnustep/contrib>) for shared libs.
Objective-C library DLL (<ftp://ftp.gnustep.org/pub/gnustep/libs>)
for shared libs. ffcall is not ported to cygwin so don't try to
use it (some invocation and DO stuff will not work).
`Special Instructions'
Static libs require no extra effort (just make shared=no),
however, DLLs (shared=yes) are compiled by default, and for this
you need a special version of the Objective-C library that also
compiles as a DLL. Make sure files and compilation done in Unix
mode (no ^M in files). Due to some interesting dependancies, it is
recommended that you compile and install each sub-package (make,
base, etc) independantly. Gdomap services not set up correctly.
Must add services lines to `C:\WINDOWS\services' (on Windows 98)
or xxx (on Windows NT). Base library only. No native GUI backend.
For shared libs, make sure to specify SHARED=YES explicitly when
building:
make shared=yes
For static libs, use SHARED=NO, Make sure files and compilation done
in Unix mode (no ^M in files, EXPORT CYGWIN=BINMODE usually works if
cygwin is not buggy). Gdomap services not set up correctly. Must add
services lines to `C:\WINDOWS\services' (on Windows 98) or xxx (on
Windows NT). Base library only. No native GUI backend.
Windows with MinGW (_Unstable!_)
================================
`Recommended compiler'
gcc 2.95.2 (MingW release 1999-11-07)
`Extra libs needed'
Objective-C library DLL (<ftp://ftp.gnustep.org/pub/gnustep/libs>)
for shared libs. ffcall is not ported to Mingw32 so don't try to
use it.
`Special Instructions'
See the `README.MinGW' file located in the gnustep-make
Documentation directory for instructions. Base library only. No
native GUI backend.
Getting Libraries via Anonymous CVS
***********************************
If you didn't get one of the snapshots, or if you want to be sure to
stay on the bleading edge, then you should get the core via CVS:
The quick and painless CVS tutorial (by michael hanni (slightly
modified)
First, set the CVSROOT environment variable. If you are using
bash/sh you can do something like this at the prompt:
export CVSROOT=":pserver:anoncvs@cvs.net-community.com:/gnustep"
Second, if this is the first time loging into the CVS server:
cvs login <press enter>
You should get a password prompt soon after:
(Logging in to anoncvs@cvs.net-community.com)
CVS password:
Enter the password `anoncvs'. This should return you to your prompt.
From here you can checkout any module in the CVS server you like. To
checkout a module you do this:
cvs -z3 checkout modulename <press enter>
The -z3 merely tells the cvs server to compess everything to a
certain compression level before it sends it to you.
stay on the bleading edge, then you should get the libraries via CVS. Go
to <http://savannah.gnu.org/cvs/?group_id=99> for information on how to
get anonymous CVS access.
If you haven't already done so, change to the directory, where you
want the source to reside.
want the source to reside. To get a list of potential modules to check
out, type
cvs -z3 checkout -c
Next, you want to get the whole core, so you do:
For instance, to check our `core', which contains all the GNUstep
code libraries:
cvs -z3 checkout core
After you have checked out the source you can compile it as usual.
@ -810,27 +829,6 @@ to update, for example, go into 'xgps', and type:
cvs -z3 update -Pd
You don't have to re-checkout after you have the source, just update!
Also try `cvs checkout -c' to get a list of available modules.
Other Instructions
******************
Better debugging with Objective-C runtime
=========================================
Normally, the Objective-C runtime is compiled with debugging
information, which actually makes debugging of user apps frustrating
because stepping into a method call will actually cause gdb to step
into the internal Objective-C method call mechanism, which you don't
want most of the time.
The way to avoid this is to compile the Objective-C runtime library
without debugging information. Here's how:
cd egcs-build-directory/gcc
rm -f objc/*.o
make CFLAGS=-O2 libobjc.a
cp libobjc.a your-egcs-installation-dir
Acknowledgements
****************

32
INSTALL
View file

@ -7,8 +7,7 @@ Introduction
If you are installing this package as part of the GNUstep core
libraries, read the file GNUstep-HOWTO for more complete instructions on
how to install the entire GNUstep package (including this package).
GNUstep-HOWTO comes with the core distribution and also is located at
the same ftp sites as this library.
GNUstep-HOWTO comes with this distribution.
When you configure additional libraries, make sure you use the same
configuration options as with gstep-make.
@ -44,21 +43,21 @@ configure will use /usr/GNUstep as the default root directory.
./configure --help
Look particularly at the end of the list that configure gives, as
these options are specific to GNUstep. For instance, if you installed
the tiff library in other than a normal directory, you can use the
`--with-tiff-include' option to tell configure where it is.
these options are specific to GNUstep. Some of these are described
below.
With the various GNUstep libraries you can use the various switches,
shared and debug. As in "make shared=no debug=yes" (Make sure you use
the same switches for every package you compile, and also when you
install).
With the GNUstep packages you can use various switches, such as
shared and debug, to control compilation. for example, "make shared=no
debug=yes" compiles using static libraries with debugging information.
(Make sure you use the same switches for every package you compile, and
also when you install).
Alternate Library Setup
-----------------------
You can specify compilation of alternate libraries by using the
-with-library-combo option. You need to have these libraries unpacked
in a subdirectory under the gstep directory, then you can say
with-library-combo option. You need to have these libraries unpacked in
a subdirectory under the gstep directory, then you can say
./configure --with-library-combo=gnu-gnu-gnu-xdps
@ -140,8 +139,8 @@ contains all of the environment variable settings required, so you want
to call that shell. Some systems, like GNU/Linux have an
`/etc/profile.d' directory where scripts can be executed automatically.
Just copy GNUstep.sh to this directory for it to work. For other UNIX
systems, the easiest way to do that is to modify the system rc.local
file which is executed upon system startup; add lines similar to these:
systems, there might be a system wide script that everyone uses, such
as `/etc/bashrc', where you could add lines similar to these:
# Setup for the GNUstep environment
. /usr/GNUstep/System/Makefiles/GNUstep.sh
@ -150,7 +149,7 @@ file which is executed upon system startup; add lines similar to these:
variables; thus making them available for all users. Before executing
this script, you can setup a default path for searching for tools and
apps by defining the variable GNUSTEP_PATHPREFIX_LIST (and exporting
it). By defualt, it's set to
it). By default, it's set to
$GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_SYSTEM_ROOT
@ -173,8 +172,9 @@ have some file that you read upon login, for example the BASH shell
reads the .bash_profile file in the user's home directory. So you can
add the following lines to that file:
# Setup for the GNUstep environment .
/usr/GNUstep/Makefiles/GNUstep.sh
# Setup for the GNUstep environment if [ -f
$GNUSTEP_SYSTEM_ROOT/Makefiles/GNUstep.sh ]; then .
$GNUSTEP_SYSTEM_ROOT/Makefiles/GNUstep.sh fi
This will source in the GNUstep.sh file and set the environment
variables; thus making them available for the user.

20
NEWS
View file

@ -1,7 +1,25 @@
NEWS
****
The currently released version is `0.9.1'.
The currently released version is `1.0.0'.
Changes in version `1.0.0'
==========================
* Optimizations that in many cases more than double the speed.
* Added preliminary darwin support.
* rpm packeing improvements.
* Better checking for mingw and cygwin
Changes in version `0.9.2'
==========================
* HOWTO and faq files moved from core package to here
* Configurable GNUSTEP_LOCAL_ROOT and GNUSTEP_NETWORK_ROOT
Changes in version `0.9.1'
==========================

11
README
View file

@ -6,12 +6,11 @@ Here is some introductory info to get you started:
What is the GNUstep makefile package?
=====================================
The makefile package is a simplistic, powerful and extensible way to
The makefile package is a simple, powerful and extensible way to
write makefiles for a GNUstep-based project. It allows the user to
write a GNUstep-based project without having to deal with the complex
issues associated with the configuration and installation of the core
GNUstep libraries. It also allows the user to easily create
cross-compiled binaries.
write a project without having to deal with the complex issues
associated with configuration, building, installation, and packaging.
It also allows the user to easily create cross-compiled binaries.
Information
===========
@ -19,7 +18,7 @@ Information
The file `NEWS' has the library's feature history.
The files `INSTALL' or `GNUstep-HOWTO' give instructions for
installing the library. Also see the machines.texi documentation and
installing the library. Also see the `machines' documentation and
various machine specific READMEs in the Documentation directory.
Files in the `Documentation' directory have information on the

View file

@ -2,8 +2,8 @@
# Compatible with Bourne shell syntax, so it can included there too.
# The version number of this release.
MAKE_MAJOR_VERSION=0
MAKE_MINOR_VERSION=9
MAKE_SUBMINOR_VERSION=2
MAKE_MAJOR_VERSION=1
MAKE_MINOR_VERSION=0
MAKE_SUBMINOR_VERSION=0
GNUSTEP_MAKE_VERSION=${MAKE_MAJOR_VERSION}.${MAKE_MINOR_VERSION}.${MAKE_SUBMINOR_VERSION}

762
config.guess vendored

File diff suppressed because it is too large Load diff

257
config.sub vendored
View file

@ -1,8 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script, version 1.1.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
# Free Software Foundation, Inc.
#
timestamp='2001-03-30'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
# can handle that machine. It does not imply ALL GNU software can.
@ -27,7 +29,6 @@
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Written by Per Bothner <bothner@cygnus.com>.
# Please send patches to <config-patches@gnu.org>.
#
# Configuration subroutine to validate and canonicalize a configuration type.
@ -50,30 +51,73 @@
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
if [ x$1 = x ]
then
echo Configuration name missing. 1>&2
echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
echo "or $0 ALIAS" 1>&2
echo where ALIAS is a recognized configuration type. 1>&2
exit 1
fi
me=`echo "$0" | sed -e 's,.*/,,'`
# First pass through any local machine types.
case $1 in
*local*)
echo $1
exit 0
;;
*)
;;
usage="\
Usage: $0 [OPTION] CPU-MFR-OPSYS
$0 [OPTION] ALIAS
Canonicalize a configuration name.
Operation modes:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit 0 ;;
--version | -v )
echo "$version" ; exit 0 ;;
--help | --h* | -h )
echo "$usage"; exit 0 ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help"
exit 1 ;;
*local*)
# First pass through any local machine types.
echo $1
exit 0;;
* )
break ;;
esac
done
case $# in
0) echo "$me: missing argument$help" >&2
exit 1;;
1) ;;
*) echo "$me: too many arguments$help" >&2
exit 1;;
esac
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
linux-gnu*)
nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
@ -99,7 +143,7 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-apple)
-apple | -axis)
os=
basic_machine=$1
;;
@ -171,27 +215,39 @@ esac
case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \
| arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \
| pyramid | mn10200 | mn10300 | tron | a29k \
| 580 | i960 | h8300 \
| x86 | ppcbe | mipsbe | mipsle | shbe | shle \
| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
| alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \
| we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
| 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
| hppa64 \
| alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
| alphaev6[78] \
| we32k | ns16k | clipper | i370 | sh | sh[34] \
| powerpc | powerpcle \
| 1750a | dsp16xx | pdp10 | pdp11 \
| mips16 | mips64 | mipsel | mips64el \
| mips64orion | mips64orionel | mipstx39 | mipstx39el \
| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
| mips64vr5000 | miprs64vr5000el | mcore \
| mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \
| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
| thumb | d10v | fr30)
| thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \
| pj | pjl | h8500)
basic_machine=$basic_machine-unknown
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
m6811 | m68hc11 | m6812 | m68hc12)
# Motorola 68HC11/12.
basic_machine=$basic_machine-unknown
os=-none
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | w65)
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i[34567]86)
i[234567]86 | x86_64)
basic_machine=$basic_machine-pc
;;
# Object if more than one company name word.
@ -201,23 +257,29 @@ case $basic_machine in
;;
# Recognize the basic CPU types with company name.
# FIXME: clean up the formatting here.
vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
vax-* | tahoe-* | i[234567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \
| arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
| power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
| xmp-* | ymp-* \
| hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \
| alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67]-* \
| x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \
| hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
| hppa2.0n-* | hppa64-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
| alphaev6[78]-* \
| we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
| clipper-* | orion-* \
| sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
| sparclite-* | pdp10-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
| sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* \
| mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
| mipstx39-* | mipstx39el-* | mcore-* \
| f301-* | armv*-* | t3e-* \
| f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \
| [cjt]90-* \
| m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
| thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* )
| thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \
| bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*)
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
@ -254,14 +316,14 @@ case $basic_machine in
os=-sysv
;;
amiga | amiga-*)
basic_machine=m68k-cbm
basic_machine=m68k-unknown
;;
amigaos | amigados)
basic_machine=m68k-cbm
basic_machine=m68k-unknown
os=-amigaos
;;
amigaunix | amix)
basic_machine=m68k-cbm
basic_machine=m68k-unknown
os=-sysv4
;;
apollo68)
@ -308,13 +370,16 @@ case $basic_machine in
basic_machine=cray2-cray
os=-unicos
;;
[ctj]90-cray)
basic_machine=c90-cray
[cjt]90)
basic_machine=${basic_machine}-cray
os=-unicos
;;
crds | unos)
basic_machine=m68k-crds
;;
cris | cris-* | etrax*)
basic_machine=cris-axis
;;
da30 | da30-*)
basic_machine=m68k-da30
;;
@ -362,6 +427,10 @@ case $basic_machine in
basic_machine=tron-gmicro
os=-sysv
;;
go32)
basic_machine=i386-pc
os=-go32
;;
h3050r* | hiux*)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
@ -461,17 +530,6 @@ case $basic_machine in
basic_machine=i386-unknown
os=-vsta
;;
i386-go32 | go32)
basic_machine=i386-unknown
os=-go32
;;
i386-mingw32 | mingw32)
basic_machine=i386-unknown
os=-mingw32
;;
i386-qnx | qnx)
basic_machine=i386-qnx
;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
@ -497,6 +555,10 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
mingw32)
basic_machine=i386-pc
os=-mingw32
;;
miniframe)
basic_machine=m68000-convergent
;;
@ -527,7 +589,7 @@ case $basic_machine in
os=-coff
;;
msdos)
basic_machine=i386-unknown
basic_machine=i386-pc
os=-msdos
;;
mvs)
@ -591,9 +653,16 @@ case $basic_machine in
basic_machine=i960-intel
os=-mon960
;;
nonstopux)
basic_machine=mips-compaq
os=-nonstopux
;;
np1)
basic_machine=np1-gould
;;
nsr-tandem)
basic_machine=nsr-tandem
;;
op50n-* | op60c-*)
basic_machine=hppa1.1-oki
os=-proelf
@ -623,28 +692,28 @@ case $basic_machine in
pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
pentium | p5 | k5 | k6 | nexen)
pentium | p5 | k5 | k6 | nexgen)
basic_machine=i586-pc
;;
pentiumpro | p6 | 6x86)
pentiumpro | p6 | 6x86 | athlon)
basic_machine=i686-pc
;;
pentiumii | pentium2)
basic_machine=i786-pc
basic_machine=i686-pc
;;
pentium-* | p5-* | k5-* | k6-* | nexen-*)
pentium-* | p5-* | k5-* | k6-* | nexgen-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | 6x86-*)
pentiumpro-* | p6-* | 6x86-* | athlon-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumii-* | pentium2-*)
basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pn)
basic_machine=pn-gould
;;
power) basic_machine=rs6000-ibm
power) basic_machine=power-ibm
;;
ppc) basic_machine=powerpc-unknown
;;
@ -659,6 +728,10 @@ case $basic_machine in
ps2)
basic_machine=i386-ibm
;;
pw32)
basic_machine=i586-unknown
os=-pw32
;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
@ -738,6 +811,10 @@ case $basic_machine in
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
;;
sv1)
basic_machine=sv1-cray
os=-unicos
;;
symmetry)
basic_machine=i386-sequent
os=-dynix
@ -746,6 +823,10 @@ case $basic_machine in
basic_machine=t3e-cray
os=-unicos
;;
tic54x | c54x*)
basic_machine=tic54x-unknown
os=-coff
;;
tx39)
basic_machine=mipstx39-unknown
;;
@ -841,12 +922,19 @@ case $basic_machine in
vax)
basic_machine=vax-dec
;;
pdp10)
# there are many clones, so DEC is not a safe bet
basic_machine=pdp10-unknown
;;
pdp11)
basic_machine=pdp11-dec
;;
we32k)
basic_machine=we32k-att
;;
sh3 | sh4)
basic_machine=sh-unknown
;;
sparc | sparcv9)
basic_machine=sparc-sun
;;
@ -869,6 +957,9 @@ case $basic_machine in
basic_machine=c4x-none
os=-coff
;;
*-unknown)
# Make sure to match an already-canonicalized machine name.
;;
*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
@ -927,9 +1018,23 @@ case $os in
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*)
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
case $basic_machine in
x86-* | i[34567]86-*)
;;
*)
os=-nto$os
;;
esac
;;
-nto*)
os=-nto-qnx
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
@ -949,6 +1054,9 @@ case $os in
-opened*)
os=-openedition
;;
-wince*)
os=-wince
;;
-osfrose*)
os=-osfrose
;;
@ -973,6 +1081,9 @@ case $os in
-ns2 )
os=-nextstep2
;;
-nsk*)
os=-nsk
;;
# Preserve the version number of sinix5.
-sinix5.*)
os=`echo $os | sed -e 's|sinix|sysv|'`
@ -986,9 +1097,6 @@ case $os in
-oss*)
os=-sysv3
;;
-qnx)
os=-qnx4
;;
-svr4)
os=-sysv4
;;
@ -1010,7 +1118,7 @@ case $os in
-xenix)
os=-xenix
;;
-*mint | -*MiNT)
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
os=-mint
;;
-none)
@ -1044,6 +1152,9 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
pdp10-*)
os=-tops20
;;
pdp11-*)
os=-none
;;
@ -1152,7 +1263,7 @@ case $basic_machine in
*-masscomp)
os=-rtu
;;
f301-fujitsu)
f30[01]-fujitsu | f700-fujitsu)
os=-uxpv
;;
*-rom68k)
@ -1230,7 +1341,7 @@ case $basic_machine in
-mpw* | -macos*)
vendor=apple
;;
-*mint | -*MiNT)
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
vendor=atari
;;
esac
@ -1239,3 +1350,11 @@ case $basic_machine in
esac
echo $basic_machine$os
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:

4
configure vendored
View file

@ -1878,7 +1878,7 @@ esac
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -x objective-c"
saved_LIBS="$LIBS"
if test $host_os = linux-gnu; then
if test "$host_os" = linux-gnu; then
LIBS="-lobjc -lpthread"
if test "$cross_compiling" = yes; then
objc_threaded="-lpthread"
@ -2021,7 +2021,7 @@ if test x"$objc_threaded" = x""; then
else
echo "$ac_t""yes" 1>&6
if test x"$objc_threaded" = x"works"; then
objc_threaded="",
objc_threaded=""
fi
fi
ac_cv_objc_threaded="$objc_threaded"

View file

@ -284,7 +284,7 @@ esac
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -x objective-c"
saved_LIBS="$LIBS"
if test $host_os = linux-gnu; then
if test "$host_os" = linux-gnu; then
LIBS="-lobjc -lpthread"
AC_TRY_RUN([#include "config_thread.m"], objc_threaded="-lpthread",
objc_threaded="", objc_threaded="-lpthread")
@ -321,7 +321,7 @@ if test x"$objc_threaded" = x""; then
else
AC_MSG_RESULT(yes)
if test x"$objc_threaded" = x"works"; then
objc_threaded="",
objc_threaded=""
fi
fi
ac_cv_objc_threaded="$objc_threaded"

View file

@ -35,11 +35,15 @@ endif
#
# Target specific libraries
#
TARGET_SYSTEM_LIBS = $(CONFIG_SYSTEM_LIBS) -lm
ifeq ($(findstring mingw32, $(GNUSTEP_TARGET_OS)), mingw32)
TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) \
-lwsock32 -ladvapi32 -lcomctl32 -luser32 -lcomdlg32 \
-lmpr -lnetapi32 -lm -I. # the -I is a dummy to avoid -lm^M
EXEEXT := .exe
endif
ifeq ($(findstring cygwin, $(GNUSTEP_TARGET_OS)), cygwin)
TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) -lm -I.
endif
ifeq ($(GNUSTEP_TARGET_OS),linux-gnu)
ifeq ("$(objc_threaded)","")
@ -200,6 +204,111 @@ endif
#
####################################################
####################################################
#
# MacOSX public beta, darwin1.2
#
ifeq ($(findstring darwin1.2, $(GNUSTEP_TARGET_OS)), darwin1.2)
ifeq ($(OBJC_RUNTIME), NeXT)
HAVE_BUNDLES = yes
endif
HAVE_SHARED_LIBS = yes
SHARED_LIBEXT = .dylib
ifeq ($(FOUNDATION_LIB),nx)
# Use the NeXT compiler
CC = cc -traditional-cpp
OBJC_COMPILER = NeXT
ifneq ($(arch),)
ARCH_FLAGS = $(foreach a, $(arch), -arch $(a))
INTERNAL_OBJCFLAGS += $(ARCH_FLAGS)
INTERNAL_CFLAGS += $(ARCH_FLAGS)
INTERNAL_LDFLAGS += $(ARCH_FLAGS)
endif
endif
TARGET_LIB_DIR = \
Libraries/$(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)/$(LIBRARY_COMBO)
DYLIB_COMPATIBILITY_VERSION = -compatibility_version 1
DYLIB_CURRENT_VERSION = -current_version 1
DYLIB_INSTALL_NAME = \
$(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIBRARY_FILE)
ifeq ($(FOUNDATION_LIB),nx)
DYLIB_DEF_FRAMEWORKS += -framework Foundation
endif
ifneq ($(OBJC_COMPILER), NeXT)
# GNU compiler
DYLIB_DEF_FRAMEWORKS += -framework System
SHARED_LIB_LINK_CMD = \
$(CC) $(SHARED_LD_PREFLAGS) \
-dynamiclib $(ARCH_FLAGS) -dynamic \
$(DYLIB_COMPATIBILITY_VERSION) \
$(DYLIB_CURRENT_VERSION) \
-install_name $(DYLIB_INSTALL_NAME) \
-o $@ \
$(DYLIB_DEF_FRAMEWORKS) \
$(LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
-lobjc -lgcc $^ $(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
else # OBJC_COMPILER=NeXT
DYLIB_EXTRA_FLAGS = -read_only_relocs warning -undefined warning
-fno-common
DYLIB_DEF_FRAMEWORKS += #-framework Foundation
DYLIB_DEF_LIBS = -lobjc
SHARED_LIB_LINK_CMD = \
$(CC) $(SHARED_LD_PREFLAGS) \
-dynamiclib $(ARCH_FLAGS) -dynamic \
$(DYLIB_COMPATIBILITY_VERSION) \
$(DYLIB_CURRENT_VERSION) \
$(DYLIB_EXTRA_FLAGS) \
-install_name $(DYLIB_INSTALL_NAME) \
-o $@ \
$(LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
$(DYLIB_DEF_FRAMEWORKS) \
$(DYLIB_DEF_LIBS) \
$^ $(SHARED_LD_POSTFLAGS); \
(cd $(GNUSTEP_OBJ_DIR); rm -f $(LIBRARY_FILE); \
$(LN_S) $(VERSION_LIBRARY_FILE) $(LIBRARY_FILE))
endif # OBJC_COMPILER
OBJ_MERGE_CMD = \
$(CC) -nostdlib -r -d -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
STATIC_LIB_LINK_CMD = \
/usr/bin/libtool $(STATIC_LD_PREFLAGS) -static $(ARCH_FLAGS) -o $@ $^ \
$(STATIC_LD_POSTFLAGS)
# This doesn't work with 4.1, what about others?
#ADDITIONAL_LDFLAGS += -Wl,-read_only_relocs,suppress
AFTER_INSTALL_STATIC_LIB_COMMAND =
SHARED_CFLAGS += -dynamic -fno-common
SHARED_LIBEXT = .dylib
ifneq ($(OBJC_COMPILER), NeXT)
TARGET_SYSTEM_LIBS += $(CONFIG_SYSTEM_LIBS) -lgcc
endif
BUNDLE_LD = $(CC)
BUNDLE_CFLAGS +=
BUNDLE_LDFLAGS += -bundle -undefined suppress $(ARCH_FLAGS)
endif
#
# end MacOSX public beta, darwin1.2
#
####################################################
####################################################
#
# OpenStep 4.x

View file

@ -369,14 +369,32 @@ int search_for_library_with_type_in_directory(char type, char* path, char* ext)
int search_for_library_in_directory (char* path)
{
struct stat statbuf;
char path_rep[PATH_MAX + 1];
char full_filename[PATH_MAX + 1];
if (stat (path, &statbuf) < 0) /* An error occured or the dir doesn't exist */
#ifdef __MINGW32__
if (path[0] == '/' && path[1] == '/')
{
/* Convert //server/ to a format Windows functions understand */
char *s;
strcpy(path_rep, &(path[2]));
s = strchr(path_rep, '/');
if (s)
{
*s = ':';
strcpy((s+1), &(path[(int)(s-path_rep+2)]));
}
}
else
#endif
strcpy(path_rep, path);
if (stat (path_rep, &statbuf) < 0) /* Error occured or dir doesn't exist */
return 0;
else if ((statbuf.st_mode & S_IFMT) != S_IFDIR) /* Not a directory */
return 0;
strcpy (full_filename, path);
strcpy (full_filename, path_rep);
strcat (full_filename, PATH_SEP);
strcat (full_filename, "lib");
strcat (full_filename, library_name);