Merged in 1.6.0 changes

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@16227 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-Macdonald 2003-03-23 06:53:16 +00:00
parent 6ebe587b8c
commit a272af9aee
19 changed files with 241 additions and 291 deletions

View file

@ -1,7 +1,7 @@
Announcement
************
The GNUstep Makefile Package version 1.5.2 is now available.
The GNUstep Makefile Package version 1.6.0 is now available.
What is the GNUstep makefile package?
=====================================
@ -12,11 +12,11 @@ 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.
Note that versions that have a odd minor release number are unstable
releases (like 1.5.2), which even release numbers (1.4.1) are stable
releases.
Note that versions that have a odd minor release number (the second
number, y, in x.y.z) are unstable releases (like 1.5.2), which even
minor release numbers (1.4.1) are stable releases.
Changes in version `1.5.2'
Changes in version `1.6.0'
==========================
Make now configures by default for only one system. To compile and
@ -33,8 +33,10 @@ configure argument -enable-multi-platform.
Obtaining gnustep-make
======================
You can get the gstep-make-1.5.2.tar.gz distribution file at
You can get the gstep-make-1.6.0.tar.gz distribution file at
<ftp://ftp.gnustep.org/pub/gnustep/core>
Please send bug reports to <bug-gnustep@gnu.org>.
Please log bug reports on the GNUstep project page
<http://savannah.gnu.org/support/?group=gnustep> or send bug reports to
<bug-gnustep@gnu.org>.

View file

@ -1,3 +1,7 @@
2003-03-23 Richard Frith-Macdonald <rfm@gnu.org>
* Merged 1.6.0 branch changes in
Mon Mar 10 12:51:20 2003 Nicola Pero <n.pero@mi.flashnet.it>
* rules.make: Disable all built-in SUFFIXES and all built-in rules
@ -10,6 +14,50 @@ Wed Feb 26 18:34:37 2003 Nicola Pero <n.pero@mi.flashnet.it>
CFBundleIconFile, and not NSIcon, on Apple. Quote full path of
xxxInfo.plist file.
2003-03-17 Adam Fedor <fedor@gnu.org>
* Version: 1.6.0
2003-03-14 Adam Fedor <fedor@gnu.org>
* configure.ac: Check for -lpthread on unknown hosts (e.g. irix)
* target.make (darwin): Add -read_only_reolcs warning.
(darwin5): Remove
* Documentation/machines.texi: Update Darwin.
(suggestions from Carl Eugen Hoyos)
2003-03-13 Adam Fedor <fedor@gnu.org>
* clean_cpu.sh: Make all hppa variants the same.
(suggestion from Matthias Klose)
2003-03-04 Adam Fedor <fedor@gnu.org>
* configure.ac: Change sense of --disable-import help line
* configure: Regen.
* Documentation/install.texi: Update import section
* Documentation/userfaq.texi: Add import section.
Tue Mar 4 17:13:46 2003 Nicola Pero <n.pero@mi.flashnet.it>
* configure.ac: Enable GCC deprecation warnings for #import.
* configure: Regenerated.
2003-03-03 iMartin Brecher <martin@mb-itconsulting.com>
* Documentation/README.MinGW: Tidied
Some modifiecations by rfm@gnu.org also ... mainly to change the
order of build/install of libobjc and ffcall
2003-02-23 Richard Frith-Macdonald <rfm@gnu.org>
* user_home.c: fix HOMEPATH and HOMEDRIVE handling for mingw to
only use the drive if there isn't one in the path.
2003-02-17 Tom Koelman <tkoelman@xs4all.nl>
* Documentation/README.MingW: Update URLs.
2003-02-16 Adam Fedor <fedor@gnu.org>
* Version: 1.5.2

View file

@ -1,11 +1,12 @@
Date: 09-Jan-2003 (tested under windoze-xp)
Date: 09-Jan-2003 (tested under Windows XP)
Update: 23-Feb-2003 (also tested under Windows 2000)
Author: Richard Frith-Macdonald <rfm@gnu.org>
PURPOSE
-------
This document is intended to provide a step by step instruction on how
to get the GNUstep base library into a usable state on a recent windows
to get the GNUstep base library into a usable state on a recent Windows
operating system (XP, 2000, and probably NT).
MinGW is a collection of header files and import libraries that allow
@ -34,10 +35,10 @@ than developing user applications.
PRELIMINARIES
-------------
Before we start, we need to get some preliminary windoze software -
Before we start, we need to get some preliminary Windows software -
a tool for fetching source code via CVS.
If you don't want to use windows tools for this, you can get the
If you don't want to use Windows tools for this, you can get the
latest cygwin distribution and use the cvs client in that. The following is
for people who don't want to download all that cygwin stuff.
@ -46,7 +47,7 @@ you can find at http://sourceforge.net/projects/cvsgui You will need
to be a system administrator on your machine to install this software.
You should be able to use it without changing/setting any special
configuration options. The one thing to remember is that the checkbox
to select whether to use unix line terminators instead of windows/DOS
to select whether to use UNIX line terminators instead of Windows/DOS
line terminators should be set to the unix option.
@ -72,7 +73,7 @@ somewhere else.
You may need to edit /mingw/include/winsock2.h to change the size of the
sa_data field in the sockaddr structure from 14 to 22 ... this is because
newer versions of windoze have changed the layout of this structure.
newer versions of Windows have changed the layout of this structure.
This modification is needed to be able to correctly determine the
network interface details for your machine.
@ -87,8 +88,8 @@ At this point you may want to set the HOMEDRIVE and HOMEPATH environment
variables to point to the home directory you wish to work from (though
the defaults may be ok for you).
NB. This home directory for building software must *not* contain spaces.
(aside - MSYS uses the unix-style HOME environment variable, but windows
programs, including GNUstep programs under windows, use the HOMEDRIVE and
(aside - MSYS uses the UNIX-style HOME environment variable, but Windows
programs, including GNUstep programs under Windows, use the HOMEDRIVE and
HOMEPATH environment variables to build a windows-style path for the home
directory. eg. if HOMEDRIVE is C: and HOMEPATH is \MyHome then the path
to the home directory is C:\MyHome).
@ -156,6 +157,27 @@ export HOME=/C/home/myname
export GNUSTEP_SYSTEM_ROOT=/C/GNUstep/System
. $GNUSTEP_SYSTEM_ROOT/Makefiles/GNUstep.sh
NOTE: Sometimes the HOME variable may already be set by Windows to be
%USERPROFILE% (which is the Windows variable that contains the path of
your home folder). MSYS has problems with that as it doesn't recognise
that %USERPROFILE% is a variable name. Be sure to check that if you run
into errors.
Building and installing libobjc
-------------------------------
Despite the statement in the GNUstep-HOWTO, even if you have a 3.x
compiler, you still need to install gnustep-objc as it properly
exports symbols for DLLs.
Go to gnustep-objc (or from CVS, into dev-apps/libobjc), and type
make install
This should build and install the ObjectiveC runtime and headers for you.
Building and installing FFCALL
@ -175,31 +197,13 @@ environment, type
--libdir=$GNUSTEP_SYSTEM_ROOT/Libraries/ix86/mingw32 \
--includedir=$GNUSTEP_SYSTEM_ROOT/Headers
Having configured the ffcall library, you can now build and install
it simply by typing:
Now you can now build and install it simply by typing:
make
make install
Building and installing libobjc
-------------------------------
Despite the statement in the GNUstep-HOWTO, even if you have a 3.x
compiler, you still need to install gnustep-objc as it properly
exports symbols for DLLs.
Go to gnustep-objc (or from CVS, into dev-apps/libobjc), and type
make install
This should build and install the ObjectiveC runtime and headers for you.
Additional libraries
--------------------
@ -212,7 +216,7 @@ libiconv
Needed for multilingual character support (unicode etc)
Get the binary package from
http://www.fh-frankfurt.de/~igor/projects/libxml
http://www.zlatkovic.com/projects/libxml/index.html
Unpack this and
cp include/iconv.h $GNUSTEP_SYSTEM_ROOT/Headers
cp lib/iconv.lib $GNUSTEP_SYSTEM_ROOT/Libraries/ix86/mingw32/libiconv.a
@ -224,14 +228,19 @@ libtiff, libjpeg, and zlib
Get the binary packages from -
http://prdownloads.sourceforge.net/gnuwin32/tiff-3.5.7-lib.zip
http://prdownloads.sourceforge.net/gnuwin32/tiff-3.5.7-bin.zip
http://prdownloads.sourceforge.net/gnuwin32/libjpeg-6b-lib.zip
http://prdownloads.sourceforge.net/gnuwin32/libjpeg-6b-bin.zip
http://prdownloads.sourceforge.net/gnuwin32/zlib-1.1.4-lib.zip
http://prdownloads.sourceforge.net/gnuwin32/zlib-1.1.4-bin.zip
Unpack and install
the header (.h) files in $GNUSTEP_SYSTEM_ROOT/Headers
the library (.lib) files in $GNUSTEP_SYSTEM_ROOT/Libraries/ix86/mingw32
the dll files in $GNUSTEP_SYSTEM_ROOT/Tools/ix86/mingw32
Be sure to rename the .lib files to .a!
The following are libraries which are not currently used, but which will
@ -241,10 +250,10 @@ libxml2
Needed for XML parsing support, for MacOS-X compatible
property lists, and for documentation processing.
NB. at the time of writing, XML support in GNUstep base has *not*
been ported to windows - but when it is, you will need this package.
been ported to Windows - but when it is, you will need this package.
Get the binary package from
http://www.fh-frankfurt.de/~igor/projects/libxml
http://www.zlatkovic.com/projects/libxml/binaries.html
Unpack this and
cd include
tar -cf - libxml | (cd $GNUSTEP_SYSTEM_ROOT/Headers; tar -xvf -)
@ -255,7 +264,7 @@ libxml2
openssl
Needed for the SSL bundle, providing HTTPS support for NSURL.
NB. at the time of writing, SSL support in GNUstep base has *not*
been ported to windows - but when it is, you will need this package.
been ported to Windows - but when it is, you will need this package.
Get the binary package from
http://www.kix.or.jp/~fujino/openssl
Unpack this and
@ -293,8 +302,8 @@ Go to gnustep-gui (or from CVS into the core/gui directory), and type
Building and installing GNUstep-back
------------------------------------
This software is PRE-ALPHA ... it is present in CVS for people who which to
help porting the GNUstep backend to windows!
This software is PRE-ALPHA ... it is present in CVS for people who wish to
help porting the GNUstep backend to Windows!
In the back directory, type
@ -307,6 +316,13 @@ In the back directory, type
Troubleshooting
---------------
Issues with updating:
Before attempting to update your GNUstep installation, be sure to stop/kill
all running GNUstep programs or services (i.e. gdomap, gdnc, gpbs) since
Windows cannot overwrite files that are currently in use.
Good Sites for Pre-Compiled Binaries
------------------------------------

View file

@ -12,7 +12,8 @@ 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.
Note that versions that have a odd minor release number are unstable
Note that versions that have a odd minor release number (the second number,
y, in x.y.z) are unstable
releases (like 1.5.2), which even minor release numbers (1.4.1) are stable
releases.

View file

@ -81,7 +81,7 @@ In order to compile the libraries, you need to compile and install
the following packages first (if you don't already have them):
@itemize @bullet
@item gcc (Version 2.9.5 or greater, 3.0.4 or greater recommended)
@item gcc (Version 2.95 or greater, 3.0.4 or greater recommended)
@item GNU make (Version 3.75 or greater)
@item gdb, if you plan to do any debugging
@end itemize
@ -117,6 +117,9 @@ The libxml library (Version 2) is used to translate some of the
documentation for GNUstep and to provide suport for MacOS-X compatible
XML-based property-lists. It is recommended but not currently required.
@item The TIFF library (libtiff) (Version 3.4beta36 or greater) (REQUIRED)
The GUI library uses this to handle loading and saving TIFF images.
@item openssl (OPTIONAL)
The openssl library is used to provide support for https connections by
the NSURL and HSURLHandle classes. This functionality is
@ -126,8 +129,9 @@ replacement, it can quickly be used by creating another bundle.
@item libiconv (OPTIONAL)
Unicode support functions (iconv) come with glibc version 2.1 or greater. If
you don't have this, you can get the separate libiconv library
from @url{http://clisp.cons.org/~haible/packages-libiconv.html}. However,
you don't have glibc (try iconv --version), you can get the separate
libiconv library from
@url{http://clisp.cons.org/~haible/packages-libiconv.html}. However,
neither one is required to use GNUstep.
@item gnustep-objc package (for gcc version < 3.0 ONLY) (RECOMMENDED)
@ -141,9 +145,6 @@ just copy to the place where the gcc libobjc library is (type gcc -v to
get this location). Note you have to install gnustep-make (below) before
installing this library.
@item The TIFF library (libtiff) (Version 3.4beta36 or greater) (REQUIRED)
The GUI library uses this to handle loading and saving TIFF images.
@item GDB and Objective-C patch (OPTIONAL)
GDB can be obtained from @url{ftp://ftp.gnu.org/gnu/gdb}. The patch to
make it work better with GNUstep can be obtained from

View file

@ -137,12 +137,10 @@ possible, and even if you use #import, you should protect all your
headers against multiple inclusions. The GCC compiler automatically
emits a warning whenever you use #import. Because many users are
annoyed by these warnings and want to use #import (usually for
compatibility with other systems), gnustep-make automatically disables
these warnings. But if you want to make sure your Objective-C code is
not using any deprecated feature, you can configure gnustep-make with
--disable-import:
compatibility with other systems), gnustep-make can disable
these warnings:
@example
./configure --disable-import
./configure --enable-import
@end example
If you are a legacy or MacOS X user, and wonder why #import is
deprecated, please search the web and the GCC and GNUstep mailing list

View file

@ -13,7 +13,6 @@ more popular operating systems. Some machines marked with
@menu
* Darwin 6.x/PowerPC::
* Darwin 5.x/PowerPC::
* Debian/DEC-Alpha::
* FreeBSD 4.x::
* FreeBSD 3.x::
@ -74,29 +73,37 @@ optimization can break some code. The easiest way to do this is when
configuring, @samp{CFLAGS="" ./configure}. Or when building,
@samp{make OPTFLAG=""}.
Also if you manually upgraded gcc and/or make, we recommend reading the
documentation at @url{http://www.LinuxFromScratch.org} for tips on compiling
and installing gcc and make. If you had GNUstep previously installed, make sure
you completely remove all of it, including installed init scripts.
@c -----------------------------------------
@node Darwin 6.x/PowerPC, Darwin 5.x/PowerPC, Machine Specific, Machine Specific
@node Darwin 6.x/PowerPC, Debian/DEC-Alpha, Machine Specific, Machine Specific
@section Darwin 6.x/PowerPC (@emph{Unstable!})
@table @samp
@item Recommended compiler
gcc 3.2.1
gcc 3.2.2
Default compiler has some odd memory(?) related problems.
Use the GNU runtime. Download the gcc3.2.1 compiler and configure it with
Use the GNU runtime. Download the gcc compiler and configure it with
--enable-threads=posix. Usually the installed compiler will produce object
files for the NeXT runtime if you don't say gcc -fgnu-runtime. To change
this behaviour, edit src-dir/gcc/config/darwin.h: You have to change the
word #define in line 73 to #undef. Then the runtime default is gnu. When
bootstrapping the compiler a nice working objective C gnu-runtime library
(which is a little bit faster than apples NeXT-runtime) will be compiled
(which is a little bit faster than Apple's runtime) will be compiled
and installed when make install. To use it, there is one (important) thing
left: After installing the compiler, you have to go (probably as root) to
left: After installing the compiler, you have to go to
install-dir/lib and produce the following dynamic link:
ln -s libobjc.a libobjc.dylib
This might seem senseless, but it forces the linker to use this library
instead of the NeXT-runtime!
Make sure to configure gnustep-make with ./configure
--with-library-combo=gnu-gnu-gnu if you want to use all the GNUstep libraries.
@item Extra libs needed
Use libffi (not ffcall). This should be enabled by default in gnustep-base
so you don't have to type --enable-libffi
@ -107,50 +114,7 @@ so you don't have to type --enable-libffi
@end table
@c -----------------------------------------
@node Darwin 5.x/PowerPC, Debian/DEC-Alpha, Darwin 6.x/PowerPC, Machine Specific
@section Darwin 5.x/PowerPC (@emph{Unstable!})
@table @samp
@item Recommended compiler
gcc 3.1 (See Darwin 6.x for other instructions).
@item Extra libs needed
Probably should use libffi as with Darwin 6.x.
Instructions for compiling ffcall are provided below if that doesn't work.
@item Special Instructions
@end table
Compiling ffcall:
@example
tar xf ffcall-1.8d.tar
cd ffcall-1.8d
configure
cd avcall
rm avcall-rs6000-sysv4.s
gcc avcall-rs6000.c -S -o avcall-rs6000-sysv4.s
make
make install-lib
cd ../callback/trampoline_r
ln -s trampoline_r.h.in trampoline_r.h
rm cache-rs6000-sysv4.s tramp-rs6000-sysv4.s
gcc cache.c -S -o cache-rs6000-sysv4.s
gcc trampoline.c -S -o tramp-rs6000-sysv4.s
cd ../vacall_r
rm vacall-rs6000-sysv4.s
gcc vacall-rs6000.c -S -o vacall-rs6000-sysv4.s -DREENTRANT
make
gcc -c misc.c -fno-common
ar cru .libs/libvacall.a vacall.o misc.o structcpy.o
cd ..
make
make install-lib
@end example
@c -----------------------------------------
@node Debian/DEC-Alpha, FreeBSD 4.x, Darwin 5.x/PowerPC, Machine Specific
@node Debian/DEC-Alpha, FreeBSD 4.x, Darwin 6.x/PowerPC, Machine Specific
@section Debian/DEC-Alpha
@table @samp
@ -492,6 +456,9 @@ will not work without it.
@end table
Some people have reported problems when using binutils assembler and linker.
Using the native Solaris assmebler and linker should work fine.
Older Instructions:
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

View file

@ -9,7 +9,7 @@
The currently released version is @samp{@value{GNUSTEP-MAKE-VERSION}}.
@end ifclear
@section Changes in version @samp{1.5.2}
@section Changes in version @samp{1.6.0}
Make now configures by default for only one system. To compile and run
GNUstep for multiple platforms from the same directory, use the

View file

@ -189,6 +189,7 @@ not.
* How do I compile GNUstep on my machine? ::
* Are there any precompiled packages available?::
* What are these type and size warnings?::
* What are these import warnings?::
@end menu
@node How do I compile GNUstep on my machine? , Are there any precompiled packages available?, Compiling and Installing, Compiling and Installing
@ -206,7 +207,7 @@ RPMS. Debian packages are also available. You can check the debian
site(s) for preconfigured GNUstep packages. Also check the BSD sites for
GNUstep ports.
@node What are these type and size warnings?, , Are there any precompiled packages available?, Compiling and Installing
@node What are these type and size warnings?, What are these import warnings?, Are there any precompiled packages available?, Compiling and Installing
@subsection What are these type and size warnings?
These warnings:
@ -219,6 +220,34 @@ are a common occurence and are due to a mismatch between gcc and
ld. They don't do any harm so they can be safely ignored. They have been
fixed in GCC version 3.1.
@node What are these import warnings?, , What are these type and size warnings?, Compiling and Installing
@subsection What are these import warnings?
Do you get these obnoxious warning whenever you compile an application, tool,
or Objective-C program:
@example
warning: using `#import' is not recommended
[...]
@end example
This is quite annoying for many people, particularly since almost any
book on Objective-C you read recommends using #import instead of
#include. If you are wondering why #import is deprecated, please
search the web and the GCC and GNUstep mailing list archives - there
are very precise and sound technical reasons.
Due to these problems, the gcc maintainers are seriously considering
removing support for #import altogether in the next release.
If you still like to use #import, you can get rid of these warnings when
you configure gnustep-make, with
@example
./configure --enable-import
@end example
But beware, this may not even work on future versions of the gcc compiler.
@c ****************************************************************
@node Compatibility and Layout, Troubleshooting, Compiling and Installing, Top

2
FAQ
View file

@ -1,7 +1,7 @@
GNUstep Frequently Asked Questions with Answers
***********************************************
Last updated 16 February 2003. Please send corrections to
Last updated 17 March 2003. Please send corrections to
<gnustep-maintainer@gnu.org>. Also look at the user FAQ for more user
oriented questions.

View file

@ -1,7 +1,7 @@
GNUstep HOWTO
*************
Last Update: 16 February 2003
Last Update: 17 March 2003
This document explains how to build the different components of the
GNUstep core libraries and GNUstep Launchpad.
@ -32,7 +32,7 @@ Summary
In order to compile the libraries, you need to compile and install
the following packages first (if you don't already have them):
* gcc (Version 2.9.5 or greater, 3.0.4 or greater recommended)
* gcc (Version 2.95 or greater, 3.0.4 or greater recommended)
* GNU make (Version 3.75 or greater)
@ -71,6 +71,9 @@ are required.
compatible XML-based property-lists. It is recommended but not
currently required.
`The TIFF library (libtiff) (Version 3.4beta36 or greater) (REQUIRED)'
The GUI library uses this to handle loading and saving TIFF images.
`openssl (OPTIONAL)'
The openssl library is used to provide support for https
connections by the NSURL and HSURLHandle classes. This
@ -81,8 +84,8 @@ are required.
`libiconv (OPTIONAL)'
Unicode support functions (iconv) come with glibc version 2.1 or
greater. If you don't have this, you can get the separate libiconv
library from
greater. If you don't have glibc (try iconv -version), you can get
the separate libiconv library from
<http://clisp.cons.org/~haible/packages-libiconv.html>. However,
neither one is required to use GNUstep.
@ -98,9 +101,6 @@ are required.
-v to get this location). Note you have to install gnustep-make
(below) before installing this library.
`The TIFF library (libtiff) (Version 3.4beta36 or greater) (REQUIRED)'
The GUI library uses this to handle loading and saving TIFF images.
`GDB and Objective-C patch (OPTIONAL)'
GDB can be obtained from <ftp://ftp.gnu.org/gnu/gdb>. The patch to
make it work better with GNUstep can be obtained from
@ -350,68 +350,43 @@ optimization can break some code. The easiest way to do this is when
configuring, `CFLAGS="" ./configure'. Or when building, `make
OPTFLAG=""'.
Also if you manually upgraded gcc and/or make, we recommend reading
the documentation at <http://www.LinuxFromScratch.org> for tips on
compiling and installing gcc and make. If you had GNUstep previously
installed, make sure you completely remove all of it, including
installed init scripts.
Darwin 6.x/PowerPC (_Unstable!_)
================================
`Recommended compiler'
gcc 3.2.1
gcc 3.2.2
Default compiler has some odd memory(?) related problems. Use the
GNU runtime. Download the gcc3.2.1 compiler and configure it with
GNU runtime. Download the gcc compiler and configure it with
-enable-threads=posix. Usually the installed compiler will produce
object files for the NeXT runtime if you don't say gcc
-fgnu-runtime. To change this behaviour, edit
src-dir/gcc/config/darwin.h: You have to change the word #define
in line 73 to #undef. Then the runtime default is gnu. When
bootstrapping the compiler a nice working objective C gnu-runtime
library (which is a little bit faster than apples NeXT-runtime)
will be compiled and installed when make install. To use it, there
is one (important) thing left: After installing the compiler, you
have to go (probably as root) to install-dir/lib and produce the
following dynamic link: ln -s libobjc.a libobjc.dylib This might
seem senseless, but it forces the linker to use this library
instead of the NeXT-runtime!
library (which is a little bit faster than Apple's runtime) will
be compiled and installed when make install. To use it, there is
one (important) thing left: After installing the compiler, you
have to go to install-dir/lib and produce the following dynamic
link: ln -s libobjc.a libobjc.dylib This might seem senseless, but
it forces the linker to use this library instead of the
NeXT-runtime!
Make sure to configure gnustep-make with ./configure
-with-library-combo=gnu-gnu-gnu if you want to use all the GNUstep
libraries.
`Extra libs needed'
Use libffi (not ffcall). This should be enabled by default in
gnustep-base so you don't have to type -enable-libffi
`Special Instructions'
Darwin 5.x/PowerPC (_Unstable!_)
================================
`Recommended compiler'
gcc 3.1 (See Darwin 6.x for other instructions).
`Extra libs needed'
Probably should use libffi as with Darwin 6.x. Instructions for
compiling ffcall are provided below if that doesn't work.
`Special Instructions'
Compiling ffcall:
tar xf ffcall-1.8d.tar
cd ffcall-1.8d
configure
cd avcall
rm avcall-rs6000-sysv4.s
gcc avcall-rs6000.c -S -o avcall-rs6000-sysv4.s
make
make install-lib
cd ../callback/trampoline_r
ln -s trampoline_r.h.in trampoline_r.h
rm cache-rs6000-sysv4.s tramp-rs6000-sysv4.s
gcc cache.c -S -o cache-rs6000-sysv4.s
gcc trampoline.c -S -o tramp-rs6000-sysv4.s
cd ../vacall_r
rm vacall-rs6000-sysv4.s
gcc vacall-rs6000.c -S -o vacall-rs6000-sysv4.s -DREENTRANT
make
gcc -c misc.c -fno-common
ar cru .libs/libvacall.a vacall.o misc.o structcpy.o
cd ..
make
make install-lib
Debian/DEC-Alpha
================
@ -692,6 +667,9 @@ Solaris 2.[67]/Sparc
is highly recommended. In fact, some functions, such as compiling
frameworks, will not work without it.
Some people have reported problems when using binutils assembler and
linker. Using the native Solaris assmebler and linker should work fine.
Older Instructions: 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

View file

@ -110,11 +110,9 @@ whenever possible, and even if you use #import, you should protect all
your headers against multiple inclusions. The GCC compiler
automatically emits a warning whenever you use #import. Because many
users are annoyed by these warnings and want to use #import (usually for
compatibility with other systems), gnustep-make automatically disables
these warnings. But if you want to make sure your Objective-C code is
not using any deprecated feature, you can configure gnustep-make with
-disable-import:
./configure --disable-import
compatibility with other systems), gnustep-make can disable these
warnings:
./configure --enable-import
If you are a legacy or MacOS X user, and wonder why #import is
deprecated, please search the web and the GCC and GNUstep mailing list
archives - there are very precise and sound technical reasons.

4
NEWS
View file

@ -1,9 +1,9 @@
NEWS
****
The currently released version is `1.5.2'.
The currently released version is `1.6.0'.
Changes in version `1.5.2'
Changes in version `1.6.0'
==========================
Make now configures by default for only one system. To compile and

View file

@ -3,7 +3,7 @@
# The version number of this release.
GNUSTEP_MAKE_MAJOR_VERSION=1
GNUSTEP_MAKE_MINOR_VERSION=5
GNUSTEP_MAKE_SUBMINOR_VERSION=2
GNUSTEP_MAKE_MINOR_VERSION=6
GNUSTEP_MAKE_SUBMINOR_VERSION=0
GNUSTEP_MAKE_VERSION=${GNUSTEP_MAKE_MAJOR_VERSION}.${GNUSTEP_MAKE_MINOR_VERSION}.${GNUSTEP_MAKE_SUBMINOR_VERSION}

View file

@ -31,6 +31,11 @@ case "$1" in
echo alpha
exit 0
;;
# Make all hppa variants the same
hppa*)
echo hppa
exit 0
;;
*)
echo $1
exit 0

7
configure vendored
View file

@ -840,7 +840,7 @@ Optional Features:
--enable-multi-platform Use run time multi-platform support
--disable-backend-bundle Compile gui backend as a library
--disable-import Warn about usage of deprecated import directive
--enable-import Don't warn about usage of deprecated import directive
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@ -2987,6 +2987,9 @@ fi
# which was returning the wrong platform because the development
# tools needed/used to determine the platform were not available).
#
# Unless you know what you are doing, stick with the default, which is
# also much faster when sourcing GNUstep.sh.
#
# Check whether --enable-multi-platform or --disable-multi-platform was given.
if test "${enable_multi_platform+set}" = set; then
enableval="$enable_multi_platform"
@ -4089,7 +4092,7 @@ if test "${enable_import+set}" = set; then
enableval="$enable_import"
ac_cv_import=$enableval
else
ac_cv_import="yes"
ac_cv_import="no"
fi;
echo "$as_me:$LINENO: result: $ac_cv_import" >&5

View file

@ -412,6 +412,12 @@ else
AC_TRY_RUN([#include "config_thread.m"],
objc_threaded="-lthread $extra_LIBS",
objc_threaded="", objc_threaded="")
if test x"$objc_threaded" = x""; then
LIBS="-lobjc $saved_LIBS -lpthread $extra_LIBS""
AC_TRY_RUN([#include "config_thread.m"],
objc_threaded="-lpthread $extra_LIBS",
objc_threaded="", objc_threaded="")
fi
fi
LIBS="$saved_LIBS"
CFLAGS="$saved_CFLAGS"
@ -471,9 +477,9 @@ AC_MSG_CHECKING(whether to disable compiler warnings about deprecated import)
# is seriously deprecated. If you are unsure, please use --disable-import.
#
AC_ARG_ENABLE(import,
[--disable-import Warn about usage of deprecated import directive],
[--enable-import Don't warn about usage of deprecated import directive],
ac_cv_import=$enableval,
ac_cv_import="yes")
ac_cv_import="no")
AC_MSG_RESULT($ac_cv_import)

View file

@ -305,9 +305,10 @@ endif
ifneq ($(OBJC_COMPILER), NeXT)
# GNU compiler
SHARED_LD_PREFLAGS += -arch_only ppc -noall_load
SHARED_LD_PREFLAGS += -arch_only ppc -noall_load -read_only_relocs warning \
-flat_namespace -undefined warning
SHARED_LIB_LINK_CMD = \
/usr/bin/libtool -flat_namespace -undefined warning \
/usr/bin/libtool \
$(SHARED_LD_PREFLAGS) \
$(ARCH_FLAGS) -dynamic \
$(DYLIB_COMPATIBILITY_VERSION) \
@ -378,115 +379,6 @@ endif
#
####################################################
####################################################
#
# MacOSX 10.1.1, darwin5.1
#
ifeq ($(findstring darwin5, $(GNUSTEP_TARGET_OS)), darwin5)
ifeq ($(OBJC_RUNTIME_LIB), apple)
HAVE_BUNDLES = yes
OBJC_COMPILER = NeXT
# Set flags to ignore the MacOSX headers
ifneq ($(FOUNDATION_LIB), apple)
INTERNAL_OBJCFLAGS += -no-cpp-precomp -nostdinc -I/usr/include
endif
endif
HAVE_SHARED_LIBS = yes
SHARED_LIBEXT = .dylib
ifeq ($(FOUNDATION_LIB), apple)
# Use the NeXT compiler
CC = cc
INTERNAL_OBJCFLAGS += -traditional-cpp
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 = $(FINAL_LIBRARY_INSTALL_DIR)/$(LIB_LINK_FILE)
# Remove empty dirs from the compiler/linker flags (ie, remove -Idir and
# -Ldir flags where dir is empty).
REMOVE_EMPTY_DIRS = yes
ifeq ($(FOUNDATION_LIB), apple)
DYLIB_DEF_FRAMEWORKS += -framework Foundation
endif
ifneq ($(OBJC_COMPILER), NeXT)
# GNU compiler
SHARED_LD_PREFLAGS += -arch_only ppc -noall_load
SHARED_LIB_LINK_CMD = \
/usr/bin/libtool -flat_namespace -undefined warning \
$(SHARED_LD_PREFLAGS) \
$(ARCH_FLAGS) -dynamic \
$(DYLIB_COMPATIBILITY_VERSION) \
$(DYLIB_CURRENT_VERSION) \
-install_name $(DYLIB_INSTALL_NAME) \
-o $@ \
$(DYLIB_DEF_FRAMEWORKS) \
$(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
$^ $(SHARED_LD_POSTFLAGS); \
(cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
HAVE_BUNDLES = no
BUNDLE_LD = /usr/bin/ld
BUNDLE_LDFLAGS += -dynamic -flat_namespace -undefined warning $(ARCH_FLAGS)
else
# NeXT Compiler
#DYLIB_EXTRA_FLAGS = -read_only_relocs warning -undefined warning -fno-common
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 $@ \
$(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
$^ $(SHARED_LD_POSTFLAGS); \
(cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
$(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
SHARED_CFLAGS += -dynamic
BUNDLE_LD = $(CC)
BUNDLE_LDFLAGS += -bundle -undefined error $(ARCH_FLAGS)
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)
AFTER_INSTALL_STATIC_LIB_CMD = \
(cd $(LIB_LINK_INSTALL_DIR); \
$(RANLIB) $(LIB_LINK_VERSION_FILE))
SHARED_CFLAGS += -fno-common
endif
#
# end MacOSX 10.1.1, darwin5.1
#
####################################################
####################################################
#
# OpenStep 4.x

View file

@ -207,25 +207,31 @@ int main (int argc, char** argv)
{
/* The environment variable HOMEPATH holds the home directory
for the user on Windows NT; Win95 has no concept of home. */
len0 = GetEnvironmentVariable("HOMEDRIVE", buf0, 1024);
len0 = GetEnvironmentVariable("HOMEPATH", buf0, 1024);
if (len0 > 0 && len0 < 1024)
{
buf0[len0] = '\0';
len1 = GetEnvironmentVariable("HOMEPATH", buf1, 128);
if (len1 > 0 && len1 < 128)
/*
* Only use HOMEDRIVE is HOMEPATH does not already contain drive.
*/
if (len0 < 2 || buf0[1] != ':')
{
buf1[len1] = '\0';
sprintf(home, "%s%s", buf0, buf1);
}
else
{
fprintf(stderr, "Unable to determine HOMEPATH\n");
return 1;
len1 = GetEnvironmentVariable("HOMEDRIVE", buf1, 128);
if (len1 > 0 && len1 < 128)
{
buf1[len1] = '\0';
sprintf(home, "%s%s", buf1, buf0);
}
else
{
fprintf(stderr, "Unable to determine HOMEDRIVE\n");
return 1;
}
}
}
else
{
fprintf(stderr, "Unable to determine HOMEDRIVE\n");
fprintf(stderr, "Unable to determine HOMEPATH\n");
return 1;
}
}