Backports from trunk

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/branches/stable@25809 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 2007-12-31 02:57:28 +00:00
parent 5da19ef8c8
commit e9d2c268bc
17 changed files with 3569 additions and 2684 deletions

110
ChangeLog
View file

@ -1,3 +1,111 @@
2007-12-30 Adam Fedor <fedor@gnu.org>
* Documentation/README.Darwin: Update for compiling with
Apple gcc.
2007-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
* Documentation/debugapp.1: Minor updates.
* Documentation/gnustep-config.1: Same.
* Documentation/openapp.1: Same.
* Documentation/opentool.1: Same.
* Documentation/library-combo.7: Same.
2007-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
* GNUmakefile.in (install): Install the new debugapp.1,
gnustep-config.1, opentool.1 and library-combo.7 manpages.
(uninstall): Uninstall them.
(uninstall): Remove mandir, mandir/man1, mandir/man7, tooldir and
GNUSTEP_CONFIG_FILE_DIR if empty.
2007-12-26 Dennis Leeuw <dleeuw@made-it.com>
* Documentation/debugapp.1: New file.
* Documentation/gnustep-config.1: New file.
* Documentation/opentool.1: New file.
* Documentation/library-combo.7: New file.
* Documentation/openapp.1: Rewritten.
* Documentation/GNUstep.7: Rewritten.
2007-12-20 Adam Fedor <fedor@gnu.org>
* Master/nsis.make: Generalize to install in other than Applications.
* Master/rules.make: Remove nsis include for now
* nsi-app.template, Documentation/make.texi: updates.
2007-12-20 Nicola Pero <nicola.pero@meta-innovation.com>
* configure.ac: Emit a warning if GNUSTEP_MAKEFILES contains a
space.
* configure: Regenerated.
2007-12-20 Nicola Pero <nicola.pero@meta-innovation.com>
* configure.ac (GNUSTEP_PREFIX): Removed double-quoting around
`...` expression on the right-hand side of assignment. It is
unnecessary and seems to be adding additional unwanted quotes on
netbsd.
* openapp.in: Similar changes.
* opentool.in: Similar changes.
* GNUstep.sh.in: Similar changes.
* configure: Regenerated.
* GNUmakefile.in: Quote most paths in shell expressions.
* openapp.in: Similar changes.
2007-12-17 Adam Fedor <fedor@gnu.org>
* nsi-app.template, Master/nsis.make, Documenation/make.texi,
GNUmakefile.in: Add automatic NSIS Windows installer script generator.
2007-12-17 Nicola Pero <nicola.pero@meta-innovation.com>
* GNUmakefile.in (uninstall): Remove filesystem.make
and GNUstep.conf.
2007-12-17 Nicola Pero <nicola.pero@meta-innovation.com>
* GNUmakefile.in (install): Always install the manpages included
in the Documentation directory; they don't need building.
(uninstall): Uninstall them.
* Documentation/GNUmakefile (after-install): Do not install
the manpages.
(after-uninstall): Do not uninstall them.
2007-12-15 Nicola Pero <nicola.pero@meta-innovation.com>
Rewritten config-precomp-test to work when the build directory is
separate from the source directory.
* config-precomp-test/run-test.sh: Updated to allow a separate
build directory; more pervasive quoting of paths and filenames.
* config-precomp-test/config-precomp-test.h: Renamed from
gs_precomp_test.h.
* config-precomp-test/config-precomp-test.m: Renamed from
gs_precomp_test.m. Updated include for header filename change.
* GNUmakefile.in (distclean): Updated deleting config-precomp-test
files.
* configure.ac: Updated the way config-precomp-test/run-test.sh is
executed.
* configure: Regenerated.
2007-12-15 Nicola Pero <nicola.pero@meta-innovation.com>
* GNUmakefile.in (distclean): Remove
config-precomp-test/gs_precomp_test.h.gch and
config-precomp-test/a.out.
2007-12-12 Hubert Chathi <uhoreg@debian.org>
* relative_path.sh: Fixed check for start of string so that we
output '../xxx' instead of the clumsy './../xxx'.
2007-12-12 Nicola Pero <nicola.pero@meta-innovation.com>
* GNUmakefile.in (install): Fixed installation when a separate
source dir is used. (Patch by Hubert Chathi <uhoreg@debian.org>
with modifications).
2007-10-30 Adam Fedor <fedor@gnu.org>
* Version 2.0.2
@ -9,7 +117,7 @@
2007-10-30 Adam Fedor <fedor@gnu.org>
* Update licesnse to GPL 3
* Update license to GPL 3
* gnustep-make.spec.in: Change Copyright to License.
2007-09-13 Fred Kiefer <FredKiefer@gmx.de>

View file

@ -141,9 +141,7 @@ ANNOUNCE_TEXI_FILES = version.texi
ANNOUNCE_TEXT_MAIN = announce.texi
ANNOUNCE_DOC_INSTALL_DIR = Developer/Make/ReleaseNotes/$(GNUSTEP_MAKE_VERSION)
# Manual pages to install
MAN1_PAGES = openapp.1
MAN7_PAGES = GNUstep.7
# The manpages are now installed when gnustep-make itself is installed.
include $(GNUSTEP_MAKEFILES)/documentation.make
@ -162,49 +160,15 @@ version.texi: ../Version
echo '@set GNUSTEP-MAKE-VERSION' $(GNUSTEP_MAKE_VERSION) \
> version.texi
# Install manually man pages
after-install:: $(GNUSTEP_DOC)/Developer/Make/Manual $(GNUSTEP_DOC)/User/GNUstep
$(INSTALL_DATA) DESIGN $(GNUSTEP_DOC)/Developer/Make/Manual
for file in $(README_FILES); do \
$(INSTALL_DATA) $$file $(GNUSTEP_DOC)/User/GNUstep/$$file; \
done;
if [ ! -f $(GNUSTEP_DOC_MAN) ]; then \
$(MKDIRS) $(GNUSTEP_DOC_MAN); \
fi; \
if [ ! -f $(GNUSTEP_DOC_MAN)/man1 ]; then \
$(MKDIRS) $(GNUSTEP_DOC_MAN)/man1; \
fi; \
for file in $(MAN1_PAGES) __done; do \
if [ $$file != __done ]; then \
$(INSTALL_DATA) $$file $(GNUSTEP_DOC_MAN)/man1/$$file; \
which gzip && rm -f $(GNUSTEP_DOC_MAN)/man1/$$file.gz \
&& gzip -9 $(GNUSTEP_DOC_MAN)/man1/$$file; \
fi; \
done;
if [ ! -f $(GNUSTEP_DOC_MAN)/man7 ]; then \
$(MKDIRS) $(GNUSTEP_DOC_MAN)/man7; \
fi; \
for file in $(MAN7_PAGES) __done; do \
if [ $$file != __done ]; then \
$(INSTALL_DATA) $$file $(GNUSTEP_DOC_MAN)/man7/$$file; \
which gzip && rm -f $(GNUSTEP_DOC_MAN)/man7/$$file.gz \
&& gzip -9 $(GNUSTEP_DOC_MAN)/man7/$$file; \
fi; \
done;
done
# Uninstall manually man pages
after-uninstall::
rm -f $(GNUSTEP_DOC)/Developer/Make/Manual/DESIGN
for file in $(MAN1_PAGES) __done; do \
if [ $$file != __done ]; then \
rm -f $(GNUSTEP_DOC_MAN)/man1/$$file; \
fi; \
done;
for file in $(MAN7_PAGES) __done; do \
if [ $$file != __done ]; then \
rm -f $(GNUSTEP_DOC_MAN)/man7/$$file; \
fi; \
done;
after-distclean::
rm -f version.texi

View file

@ -1,66 +1,74 @@
.\"GNUstep(7) man page
.\"put together by Martin Brecher <martin@gnustep.de>
.\"
.\"Process this file with
.\"groff -man -Tascii GNUstep.7
.\"
.TH GNUSTEP 7 "August 2003" GNUstep "GNUstep System Manual"
.\" Process this file with
.\" groff -man -Tascii GNUstep.7
.\"
.TH GNUstep 7 "15/12/2007" gnustep-core "GNUstep System Manual"
.SH NAME
GNUstep \- A free implementation of the OpenStep standard
.SH DESCRIPTION
GNUstep provides an Object-Oriented application development framework
and toolset for use on a wide variety of computer platforms.
GNUstep is based on the original OpenStep specification provided by
NeXT, Inc. (now Apple).
.B GNUstep
provides an Object-Oriented application development framework and toolset for use on a wide variety of computer platforms.
.B GNUstep
is based on the original OpenStep specification provided by NeXT, Inc. (now Apple).
.P
GNUstep is written in Objective-C, an object-oriented superset of the C
programming language, similar to SmallTalk. However there exist a number
of brigdes and interfaces to develop GNUstep programs using other languages
like JAVA or Ruby.
.B GNUstep
is written in Objective-C, an object-oriented superset of the C programming language, similar to SmallTalk. However there exist a number of brigdes and interfaces to develop
.B GNUstep
programs using other languages like JAVA or Ruby.
.P
.B The GNUstep Core System
.P
The GNUstep core system consists of the following parts:
.IP gnustep-make
A set of scripts and makefiles that heavily ease the
creation and maintenance of software projects.
.IP gnustep-base
The FoundationKit libraries for non-GUI tools providing
everything from string
and array classes, filemanager classes to distributed objects.
.IP gnustep-gui
The ApplicationKit containing widgets, workspace classes and
means for
applications to interact with the user. This is the frontend of
GNUstep's GUI part.
.IP gnustep-back
This is the backend of GNUstep's GUI part which does the actual
rendering and event handling. It acts as a layer between
gnustep-gui and the operating/drawing system. Backends exist
for X11 (one using libart, one using xlib drawing) and win32.
Apart from the above, there exist a number of addon libraries, like Renaissance
which allows developers to specify an application's user interface in xml.
For database access, there is gdl2 - the GNUstep Database Library.
Please refer to the GNUstep website for more information.
GNUstep is self-containing. That means that all GNUstep applications, tools,
libraries and add-ons are installed into the GNUstep directory hierarchy.
The
.B GNUstep
core system consists of the following parts, which are jointly refered to as
.I gnustep-core
:
.TP
.I gnustep-make
A set of scripts and makefiles that heavily ease the creation and maintenance of software projects.
.TP
.I gnustep-base
The FoundationKit libraries for non-GUI tools providing everything from string and array classes, filemanager classes to distributed objects.
.TP
.I gnustep-gui
The ApplicationKit containing widgets, workspace classes and means for applications to interact with the user. This is the frontend of \fBGNUstep\fR's GUI part.
.TP
.I gnustep-back
This is the backend of
.BR GNUstep 's
GUI part which does the actual rendering and event handling. It acts as a layer between gnustep-gui and the operating/drawing system. Backends exist for X11 (one using cairo, one using libart, one using xlib drawing) and win32.
.PP
Apart from the above, there exist a number of addon libraries, like
.B Renaissance
which allows developers to specify an application's user interface in xml. For database access, there is
.B GDL2
\- the GNUstep Database Library. Please refer to the
.B GNUstep
website for more information.
.PP
.B GNUstep
per default is self-contained. That means that all
.B GNUstep
applications, tools, libraries and add-ons are installed into the
.B GNUstep
directory hierarchy. However as of
.I gnustep-make-2.0.0
it is also possible to install everything in compliance with other filesystem hierarchies. See the
.I FilesystemLayouts
directory in the source package of
.I gnustep-make
for more information.
.PP
There are four domains which are searched for files: the System domain, which
should only contain the core system files, the Local domain which stores all
that has later been installed on the system, the Network domain which should
be used for importing data from a remote system, and the User domain which resides in the user's home directory (mostly ~/GNUstep).
See the filesystem.texi document for more information.
be used for importing data from a remote system, and the User domain which resides in the user's home directory (mostly
.IR ~/GNUstep ).
.PP
A complete description of the default
.B GNUstep
layout can be found in the
.IR filesystem.pdf .
.P
.B Some Basic Terms:
.P
.B Tools and Applications
.P
.SS TOOLS AND APPLICATIONS
In the world of GNUstep the term
.I tool
refers to command line programs whereas
@ -73,26 +81,37 @@ reside in the domains' Tools folder,
can be
found in the domains' Applications folder.
Applications are either launched using the openapp command or from the
Workspace.
Applications are either launched using the
.B openapp
command or from the Workspace.
.P
.B Services
.P
In GNUstep applications globally offer functionality to other applications
through
.I services
. They can be reached through the Services menu entry in an
application's main menu.
Apart from
.SS SERVICES
.RB "In " GNUstep
applications globally offer functionality to other applications through
.IR services .
They can be reached through the Services menu entry in an
application's main menu. Apart from
.I services
offered by applications, there may
be programs whose sole purpose is the offering of services. They can be found
in the domains' Libary/Services folders.
.PP
The
.B make_services
tool makes sure the services are known to other applications when a application is newly installed.
.SS BUNDLES
A bundle is a collection of resources making up a discrete package for use. There are currently three types of bundles: applications, frameworks and loadable bundles.
.P
.B The Workspace
A loadable bundle is a kind of plug-in. There are two types of loadable bundles, namely plug-ins and palettes. The plug-in is noramlly refered to as a bundle, which can make it a bit confusing. A plug-in is a bundle that can be loaded by an application to provide additional functionality, while a palette is a plug-in for
.BR GORM ,
the interface builder. A palette is used to extend
.B GORM
with custom UI objects. Palettes have a
.I .palette
extension.
.SS THE WORKSPACE
.P
The central place of the user interface is the
.I Workspace
@ -102,46 +121,66 @@ which acts as an interface between the user and parts of the system like
files, processes, etc. The GWorkspace application provides this functionality
in GNUstep. See the GWorkspace website for more details.
.SS DEVELOPER APPLICATIONS
.P
.P
.B Getting More Help
.P
Most discussion and support is taking place on the GNUstep mailinglists
<http://www.gnustep.org/information/gethelp.html>. Additionally, most larger
projects have their own mailing lists. Consult the appropriate websites for
details.
.P
Alternatively you are invited to join the #GNUstep IRC channel on
FreeNode (irc.freenode.net).
.P
What would a development environment be without the applications to create applications? The applications provided by GNUstep for Rapid Application Developement are:
.TP
GORM
.B GORM
is the interface modeler. With
.B GORM
you can quickly create the graphical interface of your application.
.TP
Project Center
.B Project Center
is the program where you can develop your program. It offers you automatic generation of
.I GNUmakefiles
, project maintenance and of course a code editor.
.SH SEE ALSO
gcc(1), gdnc(1), gdomap(8), gopen(1), gpbs(1), make(1), openapp(1)
.PP
.B GNUstep Websites:
.PP
Official GNUstep website <http://www.gnustep.org/> -
GNUstep Wiki (lots of useful information) <http://wiki.gnustep.org/> -
GNUstep Project Page <http://savannah.gnu.org/projects/gnustep/> -
GNUstep Community Page <http://www.gnustep.net/> -
GNUstep Documentation Library <http://gnustep.made-it.com/> -
GNUstep Build Guide <http://gnustep.made-it.com/BuildGuide/>
.PP
Collaboration World <http://www.collaboration-world.com/> -
GNUstep.de <http://www.gnustep.de/> -
GNUstep.it <http://www.gnustep.it/> -
GNUstep.us <http://www.gnustep.us/> -
GWorkspace Website <http://www.gnustep.it/enrico/gworkspace/>
.PP
.B Mailinglists:
.PP
<http://www.gnu.org/software/gnustep/information/gethelp.html> -
Archives can be found at <http://mail.gnu.org/archive/html/>
.TP
http://www.gnustep.org/
Official GNUstep website
.TP
http://wiki.gnustep.org/
GNUstep Wiki (lots of useful information)
.TP
http://savannah.gnu.org/projects/gnustep/
GNUstep Project Page
.TP
http://gnustep.made-it.com/
GNUstep Documentation Library
.TP
http://www.collaboration-world.com
Collaboration World, the home of GNUmail
.TP
http://www.gnustep.it/
The home of GWorkspace, JIGS, Renaissance and programming tutorials.
.P
.SH AUTHORS
.B Mailinglists
.TP
http://www.gnustep.org/information/gethelp.html
Mailing lists and mailing list archives.
.P
.B IRC
.TP
#GNUstep on FreeNode
You are invited to join the #GNUstep IRC channel on FreeNode (irc.freenode.net).
.SH HISTORY
.B GNUstep
was at first a collaboration of two projects that wanted to create a single
.B GNUstep
project that complied to the OpenStep specification provided by NeXT Computer, Inc. and SunSoft, Inc. Development of this joint effort started around 1993-1994. For a more detailed history description see the GNUstep Documentation Library referenced in the
.B SEE ALSO
section.
.PP
GNUstep is developed and maintained by a large number of people. Please
see <http://www.gnustep.org/developers/whoiswho.html> for a list.
.SH AUTHORS
This man-page was first written by Martin Brecher <martin@mb-itconsulting.com> in august of 2003.
.PP
GWorkspace is developed by Enrico Sersale. Please see the GWorkspace Website
for details.
.PP
This man page was written by Martin Brecher <martin@mb-itconsulting.com>.
In December 2007 it was expanded by Dennis Leeuw <dleeuw@made-it.com> and made to comply with the gnustep-make-2.0.x releases.

View file

@ -1,5 +1,5 @@
Date : 15-Jan-2004
Last update: 20070507
Last update: 20071229
Authors: Adam Fedor <fedor@gnu.org>
Quentin Mathé <qmathe@club-internet.fr>
Lars S.-Helldorf <lars.sonchocky-helldorf@hamburg.de>
@ -37,10 +37,15 @@ or:
PRELIMINAIRES
-------------
For all targets, get the following software. I'd recommend installing Fink (and
FinkCommander on Mac OS X) or MacPorts to get all this software. Make sure that
Fink or MacPorts is in your path; newer versions do a good job of doing this for
you.
For all targets, get the following software. I'd recommend installing
Fink (and FinkCommander on Mac OS X) or MacPorts to get all this
software. Make sure that Fink or MacPorts is in your path; newer
versions do a good job of doing this for you. It's quite possible for
libraries installed via Fink/Macports to conflict with Apple
libraries, which cause strange errors running GNUstep apps (like odd
crashes and seg faults). In that cause you might want to hand-compile
the libraries you need (only the tiff and libffi libraries are REALLY needed,
everything else is basically optional).
Remember you usually need root access to install software. That means when you
see an instruction like 'make install', you usually need to use sudo
@ -53,7 +58,7 @@ see an instruction like 'make install', you usually need to use sudo
libjpeg (Optional, highly recommended - don't get from fink!)
libpng (Optional, highly recommended)
libffi (Required, only contained in the GCC distributions and pyobjc)
libffi (Required, from ftp.gnustep.org/pub/gnustep/libs)
ffcall (On Darwin x86 - use instead of libffi)
Xfree86 (Required, already in Mac OS X 10.3/Darwin 7 and later)
@ -66,9 +71,9 @@ see an instruction like 'make install', you usually need to use sudo
Obtaining GNUstep
-----------------
The main GNUstep project pages tell you how to get hold of this. You can get the
latest release of the following libraries.
You need these gnustep packages:
The main GNUstep project pages tell you how to get hold of this. You
can get the latest release of the following libraries. You need these
gnustep packages:
GNUstep-make
GNUstep-base
@ -89,7 +94,7 @@ Theoretically possible are:
gnu-gnu-gnu # gnu-objc runtime with gnustep-base and gnustep-gui.
# Most widely tested.
apple-gnu-gnu # apple-objc runtime with gnustep libraries. Does
# currently not work.
# not work.
apple-apple-gnu # Apple Foundation with gnustep-gui on the top. Only of
# academic interest.
apple-apple-apple # Cocoa with GNUstep additions. For porting GNUstep apps
@ -103,11 +108,9 @@ potentially gives two different targets:
Apple GCC, gnu-gnu-gnu
FSF GCC, gnu-gnu-gnu
Unfortunately, using Apple GCC with gnu-gnu-gnu doesn't appear to work currently
(see below for more info), so this option really isn't open now. In addition,
if you are on Mac OS X, you can also use the Apple Foundation and AppKit
frameworks to do GNUstep development with Cocoa, but this only works with the
Apple compiler:
In addition, if you are on Mac OS X, you can also use the Apple
Foundation and AppKit frameworks to do GNUstep development with Cocoa,
but this only works with the Apple compiler:
Apple GCC, apple-apple-apple
@ -118,16 +121,19 @@ For GNUstep on Darwin x86, Apple GCC compiles GNUstep-base, but causes strange
problems when running programs (e.g. the program hangs while allocating memory
or executes methods multiple times). So we have to use FSF GCC. Additionally,
libffi has not been ported to Darwin x86, so you will need to install ffcall
instead.
instead. NOTE: Has not been tested in a long time...
GNUstep on Darwin PowerPC
-------------------------
You can use either the Apple compiler of the FSF compiler. For the Apple
compiler, you need at least Mac OS X 10.4 with XCode 2.5 release.
Building FSF-GCC
----------------
The easiest way to get FSF GCC is through Fink or MacPorts. If you would like to
compile by hand, follow these directions:
The easiest way to get FSF GCC is through Fink or MacPorts. If you
would like to compile by hand, follow these directions:
Darwin x86:
@ -197,8 +203,9 @@ then:
./configure --with-library-combo=gnu-gnu-gnu \
[--prefix=<GNUstep install dir>] [CC=<gcc install dir>/bin/gcc]
(apple-apple-apple is the default if you don't specify gnu-gnu-gnu). If you want
to be able to compile for different targets/platforms together. Do this:
(apple-apple-apple is the default if you don't specify
gnu-gnu-gnu). If you want to be able to compile for different
targets/platforms together. Do this:
./configure --with-library-combo=gnu-gnu-gnu --disable-flattened \
--enable-multi-platform [--prefix=<GNUstep install dir>] \
@ -209,54 +216,6 @@ Now:
make
make install
Building and installing libobjc (target Apple GCC, gnu-gnu-gnu only !!!)
-------------------------------
Warning ! Don't compile libobjc if you are using FSF GCC. Go to gnustep-objc
(or from CVS, into dev-libs/libobjc), and type:
make install
This should build and install the GNU Objective-C runtime and headers for you.
Building and installing libffi (on Darwin PowerPC only !!!)
------------------------------
Untar the GNU GCC distribution, at least a version 3.4.x (even if you are not
compiling the compiler) and:
mkdir libffi-build
cd libffi-build
<gcc-3.4.x install dir>/libffi/configure [CC=<gcc install dir>/bin/gcc]
make
make install
Note: some 3.4.x versions doesn't have a working libffi on Mac OS X / Darwin.
Use PyObjC libffi from http://pyobjc.sourceforge.net, in the case libffi
install doesn't work with the 3.4.x version.
(This libffi issue needs to be tested with the various GCC 3.4.x versions)
mkdir libffi-build
cd libffi-build
<pyobjc dir>/libffi-src/configure [CC=<gcc install dir>/bin/gcc]
make
make install
Warning ! Don't install libffi in <gcc install dir>, let it just install in
/usr/local
Building and installing ffcall (on Darwin x86 only !!!)
------------------------------
./configure --prefix=$GNUSTEP_SYSTEM_ROOT \
--libdir=$GNUSTEP_SYSTEM_ROOT/Library/Libraries \
--includedir=$GNUSTEP_SYSTEM_ROOT/Library/Headers
Now you can now build and install it simply by typing:
make
make install
Source GNUstep.sh
-----------------
@ -268,21 +227,48 @@ If you are using c shell like tcsh, type:
source <GNUstep install dir>/System/Library/Makefiles/GNUstep.csh
Building and installing libobjc (target Apple GCC, gnu-gnu-gnu only !!!)
-------------------------------
Warning ! Don't compile libobjc if you are using FSF GCC. Go to gnustep-objc
(or from CVS, into dev-libs/libobjc), and type:
make install
cd $GNUSTEP_SYSTEM_ROOT/Library/Libraries
ln -s libobjc.dylib libobjc-gnu.dylib
This should build and install the GNU Objective-C runtime and headers for you.
Building and installing libffi (on Darwin PowerPC only !!!)
------------------------------
There's no official libffi release. Get the one from the GNUstep ftp site
./configure --prefix=$GNUSTEP_SYSTEM_ROOT \
--libdir=$GNUSTEP_SYSTEM_ROOT/Library/Libraries \
--includedir=$GNUSTEP_SYSTEM_ROOT/Library/Headers
make
make install
Building and installing ffcall (on Darwin x86 only (may work on PPC))
------------------------------
./configure --prefix=$GNUSTEP_SYSTEM_ROOT \
--libdir=$GNUSTEP_SYSTEM_ROOT/Library/Libraries \
--includedir=$GNUSTEP_SYSTEM_ROOT/Library/Headers
make
make install
Building and installing GNUstep-base
------------------------------------
Go to GNUstep-base (or from CVS into the core/base directory).
If you are using the FSF GCC (with the Apple GCC which only works currently
with the apple-apple-apple library combo, you don't need to run the configure
yourself unless you need special options), type:
./configure [--with-xml-prefix=/usr] [--disable-xmltest] [--disable-do] \
[LDFLAGS=-L/sw/lib] [CPPFLAGS=-I/sw/include] [CC=<gcc install dir>/bin/gcc]
[LDFLAGS=-L/sw/lib] [CPPFLAGS=-I/sw/include] [CC=<gcc install dir>/bin/gcc] \
[CPPFLAGS=-fnested-functions]
To know which options you need to use with your environment:
--disable-xmltest is needed with the latest Mac OS X 10.3 / Darwin 7
--disable-xmltest is needed with Mac OS X 10.3 / Darwin 7
versions xml2-config tool and libxml2 headers reports differents versions,
because of this versions conflict the GNUstep xmltest fails.
@ -302,15 +288,9 @@ To know which options you need to use with your environment:
CPPFLAGS=-I/sw/include is needed when you installed libxslt with Fink and
you want to compile the base library with libxslt support.
followed when you are using the Apple GCC by:
CPPFLAGS=-fnested-functions is required when using Apple gcc
make install
Note: this should automatically run the configure script for you (in the case
you haven't done it).
otherwise (with the FSF GCC) followed by:
followed by:
make
make install
@ -325,9 +305,7 @@ Building and installing GNUstep-gui
Go to GNUstep-gui (or from CVS into the core/gui directory).
If you are using the Apple GCC (doesn't work currently) or the FSF GCC type:
./configure [CC=<gcc install dir>/bin/gcc]
./configure --disable-gsnd
followed by:
@ -336,22 +314,18 @@ followed by:
Note: The gsnd server hasn't been ported to Mac OS X / Darwin yet.
In the case configure didn't found libjpeg, use
--with-jpeg-library=<jpeg libdir> --with-jpeg-include=<jpeg include dir> to have
the libjpeg detected.
Example:
./configure --with-jpeg-library=/usr/local/lib
--with-jpeg-include=/usr/local/include
Some other configure options:
--with-jpeg-library=<jpeg libdir>
--with-jpeg-include=<jpeg include dir>
to have the libjpeg detected.
--disable-jpeg
Building and installing GNUstep-back
------------------------------------
Warning ! You must have installed X11User.pkg from the Panther install disc and
also X11SDK.pkg from the xCode Tools install disc to be able to compile
GNUstep-back under Mac OS X 10.3.
Warning ! You must have installed X11User.pkg from the Panther
install disc and also X11SDK.pkg from the xCode Tools install disc to
be able to compile GNUstep-back under Mac OS X 10.3.
If you aren't installing GNUstep under Mac OS X 10.3 / Darwin 7, you can use
XDarwin (ftp://ftp.xfree86.org/pub/XFree86/4.3.0/binaries/Darwin-ppc-6.x/) for
@ -359,7 +333,7 @@ the X server, take a look at http://www.xdarwin.org
In the back directory, type:
./configure [CC=<gcc install dir>/bin/gcc]
./configure
make
make install
@ -376,12 +350,6 @@ so that it could be found:
PATH=/sw/lib/freetype/bin:$PATH
make sure in config.make that -L/sw/lib/freetype2/lib is included before -L/usr/X11R6/lib (Adam Fedor <fedor@gnu.org>) Mac OS X 10.4 doesn't have this problem.
Then you should be able to configure back and install it:
./configure --enable-graphics=art [CC='<gcc install dir>/bin/gcc']
make
make install
You also need to have /sw/lib in your library path before running GNUstep apps
with the art backend, as it needs to find libart2, so put the above export
DYLD_LIBRARY_PATH somewhere in your .profile (or do the export before launching

View file

@ -43,9 +43,9 @@ any later version published by the Free Software Foundation.
* Makefile Introduction::
* Makefile Structure::
* Running Make::
* Project Types::
* GNUmakefile.preamble::
* GNUmakefile.postamble::
* Project Types::
* Common Variables::
@end menu
@ -89,7 +89,7 @@ include $(GNUSTEP_MAKEFILES)/tool.make
This is all that is necessary to define the project.
@node Running Make, GNUmakefile.preamble, Makefile Structure, Top
@node Running Make, Project Types, Makefile Structure, Top
@section Running Make
@menu
* Debug Information::
@ -148,7 +148,7 @@ libraries (DLL) which are a form of shared libraries; on these systems,
DLLs will be built by default unless the Makefile Package is told to
build using static libraries instead, as in the above command.
@node Project Types, Common Variables, GNUmakefile.postamble, Top
@node Project Types, GNUmakefile.preamble, Running Make, Top
@section Project Types
@menu
* aggregate.make::
@ -159,7 +159,8 @@ build using static libraries instead, as in the above command.
* framework.make::
* java.make::
* library.make::
* native-library.make::
* native-library.make::
* nsis.make::
* objc.make::
* palette.make::
* rpm.make::
@ -170,7 +171,7 @@ build using static libraries instead, as in the above command.
Projects are divided into different types described below. To create a
project of a specific type, just include the particular makefile. For
example, to create an application, include this line in your make make
example, to create an application, include this line in your main make
file:
@example
@ -454,7 +455,7 @@ library reside in the @file{two} subdirectory from where the sources are
located, and the header files will be installed into the @file{two}
subdirectory within @code{GNUSTEP_HEADERS}.
@node native-library.make, objc.make, library.make, Project Types
@node native-library.make, nsis.make, library.make, Project Types
@subsection Native Library (@file{native-library.make})
A "native library" is a project which is to be built as a shared
@ -481,7 +482,58 @@ To add the corresponding flags, you can use
This will be converted into -L../MyPath/$(GNUSTEP_OBJ_DIR) flag
on for most targets and into -F../MyPath flag for apple-apple-apple.
@node objc.make, palette.make, native-library.make, Project Types
@node nsis.make, objc.make, native-library.make, Project Types
@subsection NSIS Installer (@file{nsis.make})
The NSIS make project provides rules for automatically generating NSIS
installers for Windows operating systems. In order to get this functionality,
include @file{Master/nsis.make} from the Makefiles directory in your
GNUmakefile.
@example
include $(GNUSTEP_MAKEFILES)/Master/nsis.make
@end example
To create an installer file by itself, run @code{make nsifile}. To
create the full installer executable, run @code{make nsis}. Note that in
order to do this, you must be either running on a Windows computer with
a release of the NSIS compiler (from @url{http://nsis.sourceforge.net}) or you
need to be using a cross-compiler and cross-compiled NSIS script compiler.
(NOTE: This does not currently work - you need to use the GUI NSIS compiler
to compile the installer scripts).
Currently the nsis make package only makes installers for
Applications. It will use the @file{nsi-app.template} file in the
GNUstep Makefiles directory. If you want, you can provide your own
template with customized script instructions by creating a file called
@file{PACKAGE_NAME.nsi.in}, where @code{PACKAGE_NAME} is the same as the
name of your package (see below).
You also need to define several variables in your main make file.
Except for @code{PACKAGE_NAME}, which is required, all the following
variables are optional.
@defvr {NSIS} PACKAGE_NAME
@code{PACKAGE_NAME} defines the name of the NSIS installer. In most
cases this will be the same as the name of your project type. For
instance, if you are creating a application, and have set
@code{APP_NAME} to @samp{MyApplication}, Then set @code{PACKAGE_NAME} to
the same thing, or just use @code{PACKAGE_NAME=$(APP_NAME)}. if
@code{PACKAGE_NAME} is not set, it defaults to @code{unnamed-package}
@end defvr
@defvr {NSIS} PACKAGE_VERSION
Set @code{PACKAGE_VERSION} to the release version number of your package. If not
set, it defaults to 0.0.1
@end defvr
@defvr {NSIS} GNUSTEP_INSTALLATION_DOMAIN
Set @code{GNUSTEP_INSTALLATION_DOMAIN} to the domain where you want to install
the software. This should be either @code{SYSTEM}), @code{LOCAL}, or @code{USER}.
If not set it defaults to @code{LOCAL}.
@end defvr
@node objc.make, palette.make, nsis.make, Project Types
@subsection Objective-C Programs (@file{objc.make})
@menu
* objc.make variables::
@ -647,7 +699,7 @@ or application.
A tool is an ObjC project that by default links in the GNUstep base
library. Otherwise it is similar to the ObjC project type.
@node GNUmakefile.preamble, GNUmakefile.postamble, Running Make, Top
@node GNUmakefile.preamble, GNUmakefile.postamble, Project Types, Top
@section Global Variables (@file{GNUmakefile.preamble})
@file{GNUmakefile.preamble} is an optional file that may be put within the
@ -865,7 +917,7 @@ directories can be created during installation.
ADDITIONAL_INSTALL_DIRS = $(GNUSTEP_RESOURCES)/MyProject
@end smallexample
@node GNUmakefile.postamble, Project Types, GNUmakefile.preamble, Top
@node GNUmakefile.postamble, Common Variables, GNUmakefile.preamble, Top
@section Global Rules (@file{GNUmakefile.postamble})
The @file{GNUmakefile.postamble} file is an optional file you may
@ -881,7 +933,7 @@ define things that should happen after a process is complete.
You can even define additional rules such as ones that a particular to
your specific package or that are to be used by developers only.
@node Common Variables, , Project Types, Top
@node Common Variables, , GNUmakefile.postamble, Top
@section Common Variables (@file{common.make})
@menu
* Directory Paths::

View file

@ -1,106 +1,113 @@
.\"openapp(1) man page
.\"put together by Martin Brecher <martin@gnustep.de>
.\" Process this file with
.\" groff -man -Tascii openpp.1
.\"
.\"Process this file with
.\"groff -man -Tascii openpp.1
.\"
.TH OPENAPP 1 "August 2003" GNUstep "GNUstep System Manual"
.TH openapp 1 "12/12/2007" gnustep-make "GNUstep System Manual"
.SH NAME
openapp \- launch applications from the command line
.SH SYNOPSIS
.B openapp
.RB [ --find ]
.IR application
.RB [ "\fIarguments..." ]
.P
.RB [ \-\-find ]
.RB [ \-\-debug " [" \-\-gdb=
.IR debuger "]] ["
.BI \-\-library-combo= library-combo
]
.I application
.RI [ arguments... ]
.SH DESCRIPTION
The
.B openapp
command allows you launch graphical GNUstep applications from the command
line.a
command allows you to launch graphical GNUstep applications from the command line.
.PP
.I application
is the complete or relative name of the application program with or
without the .app extension, like Ink.app.
is the complete or relative name of the application program with or without the .app extension, like
.B Ink.app.
.PP
.I arguments
are the arguments passed to the application.
.PP
.B openapp
first checks whether the application is in the current working directory.
If not then searches the GNUstep domains' Applications folders in the
following order:
User (i.e. ~/GNUstep/Applications), Local, Network, System. First match wins.
.PP
If
.I application
is given without extension (i.e. Ink instead of Ink.app),
.B openapp
searches for
.I application.app
,
.I application.debug
,
.I application.profile
(in that order).
.PP
If
.I --find
is used as first argument,
.B openapp
prints out
the full path of the application executable which would be
executed, without actually executing it as it would normally do.
.PP
first checks whether the application is in the current working directory. If not then searches the GNUstep domains' Applications folders in the following order:
User
.RI "(i.e. " ~/GNUstep/Applications ),
Local, Network, System. First match wins.
.SH OPTIONS
.IP "\fB--find"
print complete path of the executable which would be launched.
.IP "\fB--help"
.TP
.BI \-\-find " application"
will print out the full path of the application executable which would be executed, without actually executing it. It will also list all paths that are attempted.
.TP
.BI \-\-debug " application"
starts the application in the debugger. By default
.BR gdb ,
but this can be changed with the
.B \-\-gdb=
argument or through the
.B GDB
shell variable.
.TP
.BI \-\-library-combo= library-combo
Starts the application with the specified library combo. This is a rarely used option in a non-flattened setup. See the
.BR library-combo (7)
man-page for more information about the different library combinations.
.TP
.B \-\-help
print above usage description.
.PP
.SH EXAMPLES
Start Ink.app without additional parameters:
Start
.B Ink.app
without additional parameters:
.PP
.I openapp Ink.app
.B openapp Ink.app
.PP
Launch Ink.app and pass it the --GNU-Debug argument:
Launch
.B Ink.app
and pass it the
.B \-\-debug
argument:
.PP
.I openapp Ink.app --GNU-Debug=NSTextView
.B openapp \-\-debug Ink.app
.PP
To determine which executable is launched by openapp, type:
.PP
.I openapp --find Ink.app
.B openapp \-\-find Ink.app
.PP
The output of the abovecommand might be something like:
The output of the above command might be something like:
.I /usr/GNUstep/Local/Applications/Ink.app/Ink
.PP
.SH BUGS
.B openapp
does currently not handle library combos.
.PP
.SH ENVIRONMENT
.IP "\fBGNUSTEP_PATHLIST"
This variable contains the paths of the domains in which
.B gopen
tries to find applications to open the files with. Entries are
separated by a colon.
.IP
.IP Example:
.I /home/foo/GNUstep:/usr/GNUstep/Local:/usr/GNUstep/Network:/usr/GNUstep/System
.PP
.TP
.B GNUSTEP_CONFIG_FILE
is used to determine where the
.B GNUstep.sh
configuration file is located. If the variable is not set
.B openapp
tries to locate it in the folder where
.B openapp
was started, then in the user domain, and as a last resort in the system domain (or actually the place you configured
.RI ( \-\-with-config-file= )
during building).
.TP
.B GDB
Sets the debugger to use when
.B \-\-debug
is used.
.SH SEE ALSO
GNUstep(7), gopen(1)
.P
debugapp(1), GNUstep(7), gopen(1), library-combo(7), opentool(1)
.SH HISTORY
Work on
.B openapp
started October 1997.
.P
This manual page was first written July 2003.
.P
.PP
.B openapp
was originally written by Ovidiu Predescu <ovidiu@net-community.com>
and is now maintained by Nicola Pero <nicola.pero@meta-innovation.com>
.SH AUTHORS
openapp was originally written by Ovidiu Predescu <ovidiu@net-community.com>
and is now maintained by Nicola Pero <n.pero@mi.flashnet.it>.
.P
This man page was written by Martin Brecher <martin@mb-itconsulting.com>.
This manual page was first written July 2003 by Martin Brecher <martin@mb-itconsulting.com>.
.PP
Updated with notes from Hubert Chathi <uhoreg@debian.org> and Dennis Leeuw <dleeuw@made-it.com>, December 2007 by Dennis Leeuw.

View file

@ -44,6 +44,7 @@ override GNUSTEP_CONFIG_FILE = $(DESTDIR)@GNUSTEP_CONFIG_FILE@
override GNUSTEP_CONFIG_FILE_DIR = $(dir $(GNUSTEP_CONFIG_FILE))
tooldir = $(DESTDIR)@GNUSTEP_SYSTEM_TOOLS@
makedir = $(DESTDIR)@GNUSTEP_MAKEFILES@
mandir = $(DESTDIR)@GNUSTEP_SYSTEM_DOC_MAN@
srcdir = @srcdir@
VPATH = @srcdir@
@ -77,7 +78,7 @@ VERTAG = $(subst .,_,$(GNUSTEP_MAKE_VERSION))
SVNPREFIX=svn+ssh://svn.gna.org/svn/gnustep/tools/make
MAKE_FILES = aggregate.make application.make bundle.make service.make \
common.make empty.make filesystem.make library-combo.make java.make jni.make library.make \
common.make empty.make library-combo.make java.make jni.make library.make \
messages.make rules.make target.make names.make resource-set.make \
tool.make ctool.make test-library.make \
objc.make test-application.make test-tool.make subproject.make \
@ -91,7 +92,7 @@ MASTER_MAKE_FILES = \
aggregate.make source-distribution.make rpm.make rules.make \
application.make bundle.make clibrary.make ctool.make \
documentation.make framework.make gswapp.make gswbundle.make \
library.make objc.make java.make java-tool.make palette.make \
library.make nsis.make objc.make java.make java-tool.make palette.make \
resource-set.make service.make subproject.make test-application.make \
test-library.make test-tool.make tool.make
@ -120,21 +121,21 @@ all: generated-files
install: generated-files
$(EC)(echo "Creating system tools directory: $(tooldir)"; \
$(srcdir)/mkinstalldirs $(tooldir); \
"$(srcdir)/mkinstalldirs" "$(tooldir)"; \
echo "Creating makefile directories in: $(makedir)"; \
$(srcdir)/mkinstalldirs \
$(makedir) \
$(makedir)/$(GNUSTEP_TARGET_CPU) \
$(makedir)/$(GNUSTEP_TARGET_DIR) \
$(makedir)/$(GNUSTEP_TARGET_LDIR) \
$(makedir)/Additional \
$(makedir)/Auxiliary \
$(makedir)/Master \
$(makedir)/Instance \
$(makedir)/Instance/Shared \
$(makedir)/Instance/Documentation)
"$(srcdir)/mkinstalldirs" \
"$(makedir)" \
"$(makedir)/$(GNUSTEP_TARGET_CPU)" \
"$(makedir)/$(GNUSTEP_TARGET_DIR)" \
"$(makedir)/$(GNUSTEP_TARGET_LDIR)" \
"$(makedir)/Additional" \
"$(makedir)/Auxiliary" \
"$(makedir)/Master" \
"$(makedir)/Instance" \
"$(makedir)/Instance/Shared" \
"$(makedir)/Instance/Documentation")
$(EC)(echo "Installing GNUstep configuration file in $(GNUSTEP_CONFIG_FILE)"; \
$(srcdir)/mkinstalldirs "$(GNUSTEP_CONFIG_FILE_DIR)"; \
"$(srcdir)/mkinstalldirs" "$(GNUSTEP_CONFIG_FILE_DIR)"; \
$(INSTALL_DATA) GNUstep.conf "$(GNUSTEP_CONFIG_FILE)")
$(EC)(echo "Installing gnustep-make support software")
$(EC)(for f in config.guess config.sub install-sh mkinstalldirs \
@ -142,45 +143,62 @@ install: generated-files
clean_vendor.sh cpu.sh os.sh vendor.sh \
print_unique_pathlist.sh \
relative_path.sh strip_makefiles.sh; do \
$(INSTALL_PROGRAM) -m 755 $(srcdir)/$$f $(makedir); \
$(INSTALL_PROGRAM) -m 755 "$(srcdir)/$$f" "$(makedir)"; \
done)
$(EC)($(INSTALL_DATA) GNUstep.sh $(makedir); \
$(INSTALL_DATA) GNUstep.csh $(makedir); \
$(INSTALL_DATA) filesystem.sh $(makedir); \
$(INSTALL_DATA) filesystem.csh $(makedir); \
$(INSTALL_DATA) $(srcdir)/ld_lib_path.sh $(makedir); \
$(INSTALL_DATA) $(srcdir)/ld_lib_path.csh $(makedir); \
$(INSTALL_DATA) $(srcdir)/GNUstep-reset.sh $(makedir); \
$(INSTALL_PROGRAM) -m 755 fixpath.sh $(makedir); \
$(INSTALL_PROGRAM) -m 755 openapp $(tooldir); \
$(INSTALL_PROGRAM) -m 755 debugapp $(tooldir); \
$(INSTALL_PROGRAM) -m 755 opentool $(tooldir); \
$(INSTALL_PROGRAM) -m 755 gnustep-config $(tooldir))
$(EC)($(INSTALL_DATA) GNUstep.sh "$(makedir)"; \
$(INSTALL_DATA) GNUstep.csh "$(makedir)"; \
$(INSTALL_DATA) filesystem.sh "$(makedir)"; \
$(INSTALL_DATA) filesystem.csh "$(makedir)"; \
$(INSTALL_DATA) "$(srcdir)/ld_lib_path.sh" "$(makedir)"; \
$(INSTALL_DATA) "$(srcdir)/ld_lib_path.csh" "$(makedir)"; \
$(INSTALL_DATA) "$(srcdir)/GNUstep-reset.sh" "$(makedir)"; \
$(INSTALL_PROGRAM) -m 755 fixpath.sh "$(makedir)"; \
$(INSTALL_PROGRAM) -m 755 openapp "$(tooldir)"; \
$(INSTALL_PROGRAM) -m 755 "$(srcdir)/debugapp" "$(tooldir)"; \
$(INSTALL_PROGRAM) -m 755 opentool "$(tooldir)"; \
$(INSTALL_PROGRAM) -m 755 gnustep-config "$(tooldir)")
$(EC)(echo "Installing makefiles"; \
for f in $(MAKE_FILES); do \
$(INSTALL_DATA) $(srcdir)/$$f $(makedir); \
$(INSTALL_DATA) "$(srcdir)/$$f" "$(makedir)"; \
done; \
for f in $(MASTER_MAKE_FILES); do \
$(INSTALL_DATA) $(srcdir)/Master/$$f $(makedir)/Master; \
$(INSTALL_DATA) "$(srcdir)/Master/$$f" "$(makedir)/Master"; \
done; \
for f in $(INSTANCE_MAKE_FILES); do \
$(INSTALL_DATA) $(srcdir)/Instance/$$f $(makedir)/Instance; \
$(INSTALL_DATA) "$(srcdir)/Instance/$$f" "$(makedir)/Instance"; \
done; \
for f in $(INSTANCE_SHARED_MAKE_FILES); do \
$(INSTALL_DATA) $(srcdir)/Instance/Shared/$$f \
$(makedir)/Instance/Shared; \
$(INSTALL_DATA) "$(srcdir)/Instance/Shared/$$f" \
"$(makedir)/Instance/Shared"; \
done; \
for f in $(INSTANCE_DOC_MAKE_FILES); do \
$(INSTALL_DATA) $(srcdir)/Instance/Documentation/$$f \
$(makedir)/Instance/Documentation; \
$(INSTALL_DATA) "$(srcdir)/Instance/Documentation/$$f" \
"$(makedir)/Instance/Documentation"; \
done; \
$(INSTALL_DATA) app-wrapper.template $(makedir); \
$(INSTALL_DATA) executable.template $(makedir); \
$(INSTALL_DATA) config-noarch.make $(makedir); \
$(INSTALL_DATA) config.make $(makedir)/$(GNUSTEP_TARGET_LDIR))
$(INSTALL_DATA) "$(srcdir)/app-wrapper.template" "$(makedir)"; \
$(INSTALL_DATA) "$(srcdir)/nsi-app.template" "$(makedir)"; \
$(INSTALL_DATA) executable.template "$(makedir)"; \
$(INSTALL_DATA) config-noarch.make "$(makedir)"; \
$(INSTALL_DATA) filesystem.make "$(makedir)"; \
$(INSTALL_DATA) config.make "$(makedir)/$(GNUSTEP_TARGET_LDIR)")
$(EC)(echo "Installing manpages"; \
"$(srcdir)/mkinstalldirs" "$(mandir)/man1" \
"$(mandir)/man7"; \
$(INSTALL_DATA) "$(srcdir)/Documentation/debugapp.1" "$(mandir)/man1"; \
which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man1/debugapp.1.gz" && gzip -9 "$(mandir)/man1/debugapp.1"; \
$(INSTALL_DATA) "$(srcdir)/Documentation/gnustep-config.1" "$(mandir)/man1"; \
which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man1/gnustep-config.1.gz" && gzip -9 "$(mandir)/man1/gnustep-config.1"; \
$(INSTALL_DATA) "$(srcdir)/Documentation/openapp.1" "$(mandir)/man1"; \
which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man1/openapp.1.gz" && gzip -9 "$(mandir)/man1/openapp.1"; \
$(INSTALL_DATA) "$(srcdir)/Documentation/opentool.1" "$(mandir)/man1"; \
which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man1/opentool.1.gz" && gzip -9 "$(mandir)/man1/opentool.1"; \
$(INSTALL_DATA) "$(srcdir)/Documentation/GNUstep.7" "$(mandir)/man7"; \
which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man7/GNUstep.7.gz" && gzip -9 "$(mandir)/man7/GNUstep.7"; \
$(INSTALL_DATA) "$(srcdir)/Documentation/library-combo.7" "$(mandir)/man7"; \
which gzip > /dev/null 2>&1 && rm -f "$(mandir)/man7/library-combo.7.gz" && gzip -9 "$(mandir)/man7/library-combo.7")
$(EC)(if [ "@GNUSTEP_STRIP_MAKEFILES@" = "strip" ]; then \
echo "Stripping makefiles and shell scripts..."; \
cd $(makedir); ./strip_makefiles.sh; \
cd "$(makedir)"; ./strip_makefiles.sh; \
fi)
# FIXME - review the issue of this config.site. What is it used for ?
@ -188,6 +206,15 @@ install: generated-files
# $(INSTALL_DATA) $(srcdir)/config.site $(GNUSTEP_SYSTEM_ROOT)/share)
uninstall:
rm -f "$(mandir)/man1/debugapp.1" "$(mandir)/man1/debugapp.1.gz"; \
rm -f "$(mandir)/man1/gnustep-config.1" "$(mandir)/man1/gnustep-config.1.gz"; \
rm -f "$(mandir)/man1/openapp.1" "$(mandir)/man1/openapp.1.gz"; \
rm -f "$(mandir)/man1/opentool.1" "$(mandir)/man1/opentool.1.gz"; \
rm -f "$(mandir)/man7/GNUstep.7" "$(mandir)/man7/GNUstep.7.gz"; \
rm -f "$(mandir)/man7/library-combo.7" "$(mandir)/man7/library-combo.7.gz"
-rmdir "$(mandir)/man1"
-rmdir "$(mandir)/man7"
-rmdir "$(mandir)"
for f in config.guess config.sub install-sh mkinstalldirs \
clean_cpu.sh clean_os.sh \
clean_vendor.sh cpu.sh ld_lib_path.sh os.sh \
@ -197,43 +224,48 @@ uninstall:
filesystem.sh filesystem.csh \
GNUstep.sh GNUstep.csh GNUstep-reset.sh \
relative_path.sh strip_makefiles.sh; do \
rm -f $(makedir)/$$f; \
rm -f "$(makedir)/$$f"; \
done
rm -f $(tooldir)/openapp; \
rm -f $(tooldir)/debugapp; \
rm -f $(tooldir)/opentool; \
rm -f $(tooldir)/gnustep-config; \
rm -f "$(tooldir)/openapp"; \
rm -f "$(tooldir)/debugapp"; \
rm -f "$(tooldir)/opentool"; \
rm -f "$(tooldir)/gnustep-config"; \
for f in $(MAKE_FILES); do \
rm -f $(makedir)/$$f; \
rm -f "$(makedir)/$$f"; \
done
for f in $(MASTER_MAKE_FILES); do \
rm -f $(makedir)/Master/$$f; \
rm -f "$(makedir)/Master/$$f"; \
done
for f in $(INSTANCE_MAKE_FILES); do \
rm -f $(makedir)/Instance/$$f; \
rm -f "$(makedir)/Instance/$$f"; \
done
for f in $(INSTANCE_SHARED_MAKE_FILES); do \
rm -f $(makedir)/Instance/Shared/$$f; \
rm -f "$(makedir)/Instance/Shared/$$f"; \
done
for f in $(INSTANCE_DOC_MAKE_FILES); do \
rm -f $(makedir)/Instance/Documentation/$$f; \
rm -f "$(makedir)/Instance/Documentation/$$f"; \
done
rm -f $(makedir)/executable.template
rm -f $(makedir)/app-wrapper.template
rm -f $(GNUSTEP_SYSTEM_ROOT)/share/config.site
rm -f $(makedir)/config-noarch.make
rm -f $(makedir)/$(GNUSTEP_TARGET_LDIR)/config.make
-for f in $(makedir)/Instance/Documentation \
$(makedir)/Instance/Shared \
$(makedir)/Instance \
$(makedir)/Master \
$(makedir)/Auxiliary \
$(makedir)/Additional \
$(makedir)/$(GNUSTEP_TARGET_LDIR) \
$(makedir)/$(GNUSTEP_TARGET_DIR) \
$(makedir)/$(GNUSTEP_TARGET_CPU) \
$(makedir); do \
test -d $$f && rmdir $$f; \
rm -f "$(makedir)/executable.template"
rm -f "$(makedir)/app-wrapper.template"
rm -f "$(makedir)/nsi-app.template"
rm -f "$(GNUSTEP_SYSTEM_ROOT)/share/config.site"
rm -f "$(makedir)/config-noarch.make"
rm -f "$(makedir)/filesystem.make"
rm -f "$(makedir)/$(GNUSTEP_TARGET_LDIR)/config.make"
rm -f "$(GNUSTEP_CONFIG_FILE)"
-rmdir "$(GNUSTEP_CONFIG_FILE_DIR)"
-for f in "$(makedir)/Instance/Documentation" \
"$(makedir)/Instance/Shared" \
"$(makedir)/Instance" \
"$(makedir)/Master" \
"$(makedir)/Auxiliary" \
"$(makedir)/Additional" \
"$(makedir)/$(GNUSTEP_TARGET_LDIR)" \
"$(makedir)/$(GNUSTEP_TARGET_DIR)" \
"$(makedir)/$(GNUSTEP_TARGET_CPU)" \
"$(makedir)" \
"$(tooldir)"; do \
test -d "$$f" && rmdir "$$f"; \
done
clean:
@ -246,12 +278,16 @@ distclean: clean
rm -f GNUstep.sh GNUstep.csh fixpath.sh gnustep-config
rm -f filesystem.make filesystem.sh filesystem.csh
rm -f gnustep-make.spec GNUstep.conf
rm -f config-precomp-test.log
rm -f config-precomp-test.out config-precomp-test.h.gch config-precomp-test.log
svn-tag:
svn copy $(SVNPREFIX)/trunk $(SVNPREFIX)/tags/make-$(VERTAG) \
-m "Tag version $(VERTAG)"
svn-tag-stable:
svn copy $(SVNPREFIX)/branches/stable $(SVNPREFIX)/tags/make-$(VERTAG) \
-m "Tag version $(VERTAG)"
svn-dist:
svn export $(SVNPREFIX)/tags/make-$(VERTAG) \
gnustep-make-$(GNUSTEP_MAKE_VERSION)

View file

@ -214,9 +214,15 @@ unset GNUSTEP_HOME
# Determine if the paths look like Windows paths that need fixing
fixup_paths=no
if [ -z "`echo $GNUSTEP_MAKEFILES | sed 's|^[a-zA-Z]:/.*$||'`" ]; then
# Here we want to use `...` but the only portable way to use it when
# there are "..." inside the expression (ie, it's actually
# `..."..."...`) seems to be to use it in variable assignments. So we
# use a temporary variable and assign the result of `...` to it
path_check=`echo "$GNUSTEP_MAKEFILES" | sed 's|^[a-zA-Z]:/.*$||'`
if [ -z "$path_check" ]; then
fixup_paths=yes
fi
unset path_check
# GNUSTEP_PATHLIST is deprecated and will be removed.
#

View file

@ -434,3 +434,4 @@ include $(GNUSTEP_MAKEFILES)/Master/rpm.make
# Rules for building debian/* scripts for DEBs, and DEBs
#
#include $(GNUSTEP_MAKEFILES)/Master/deb.make <TODO>

View file

@ -1,3 +0,0 @@
@interface TestClass
+ (int) test;
@end

View file

@ -1,13 +0,0 @@
#include "gs_precomp_test.h"
@implementation TestClass
+ (int) test
{
return 0;
}
@end
int main (void)
{
return [TestClass test];
}

View file

@ -33,80 +33,82 @@
# return 0 if gcc supports ObjC precompiled headers
# return 1 if gcc does not
# It will also log everything it does to a log file that can be
# specified as the first argument to the script. If there is
# no log file specified, ./log will be used.
# The script takes a single argument, which is the directory where
# the temporary files and the log file will be written. If there
# is no argument specified, ./ will be used.
# This is the file where everything will be logged
gs_logfile="$1"
gs_builddir="$1"
if test "$gs_logfile" = ""; then
gs_logfile="./log"
if test "$gs_builddir" = ""; then
gs_builddir="."
fi
gs_logfile="$gs_builddir/config-precomp-test.log"
# Clear logs
rm -f $gs_logfile
rm -f "$gs_logfile"
# Clear compilation results
rm -f gs_precomp_test.h.gch a.out *~
rm -f "$gs_builddir/config-precomp-test.h.gch" "$gs_builddir/config-precomp-test.out"
echo "** Environment" >>$gs_logfile 2>&1
echo " CC: $CC" >>$gs_logfile 2>&1
echo " CFLAGS: $CFLAGS" >>$gs_logfile 2>&1
echo " CPPFLAGS: $CPPFLAGS" >>$gs_logfile 2>&1
echo " LDFLAGS: $LDFLAGS" >>$gs_logfile 2>&1
echo " LIBS: $LIBS" >>$gs_logfile 2>&1
echo "" >>$gs_logfile 2>&1
echo " current directory: `pwd`" >>$gs_logfile 2>&1
echo " log file: $gs_logfile" >>$gs_logfile 2>&1
echo "" >>$gs_logfile 2>&1
echo "** Environment" >>"$gs_logfile" 2>&1
echo " CC: $CC" >>"$gs_logfile" 2>&1
echo " CFLAGS: $CFLAGS" >>"$gs_logfile" 2>&1
echo " CPPFLAGS: $CPPFLAGS" >>"$gs_logfile" 2>&1
echo " LDFLAGS: $LDFLAGS" >>"$gs_logfile" 2>&1
echo " LIBS: $LIBS" >>"$gs_logfile" 2>&1
echo "" >>"$gs_logfile" 2>&1
echo " current directory: `pwd`" >>"$gs_logfile" 2>&1
echo " log file: $gs_logfile" >>"$gs_logfile" 2>&1
echo "" >>"$gs_logfile" 2>&1
# Get rid of '-x objective-c' in CFLAGS that we don't need and would
# prevent our '-x objective-c-headers' flag from working.
CFLAGS=`echo $CFLAGS | sed -e 's/-x objective-c//'`
echo " CFLAGS without -x objective-c: $CFLAGS" >>$gs_logfile 2>&1
echo " CFLAGS without -x objective-c: $CFLAGS" >>"$gs_logfile" 2>&1
echo "" >>$gs_logfile 2>&1
echo "" >>"$gs_logfile" 2>&1
if test "$CC" = ""; then
echo "CC is not set: failure" >>$gs_logfile 2>&1
echo "CC is not set: failure" >>"$gs_logfile" 2>&1
exit 1
fi
# Try to compile the file first
echo "** Compile the file without precompiled headers" >>$gs_logfile 2>&1
echo "$CC -o a.out $CFLAGS $CPPFLAGS $LDFLAGS $LIBS gs_precomp_test.m" >>$gs_logfile 2>&1
$CC -o a.out $CFLAGS $CPPFLAGS $LDFLAGS $LIBS gs_precomp_test.m >>$gs_logfile 2>&1
# Try to compile the file first.
echo "** Compile the file without precompiled headers" >>"$gs_logfile" 2>&1
echo "$CC -o \"$gs_builddir/config-precomp-test.out\" $CFLAGS $CPPFLAGS $LDFLAGS $LIBS config-precomp-test.m" >>"$gs_logfile" 2>&1
$CC -o "$gs_builddir/config-precomp-test.out" $CFLAGS $CPPFLAGS $LDFLAGS $LIBS config-precomp-test.m >>"$gs_logfile" 2>&1
if test ! "$?" = "0"; then
echo "Failure" >>$gs_logfile 2>&1
rm -f a.out
echo "Failure" >>"$gs_logfile" 2>&1
rm -f "$gs_builddir/config-precomp-test.out"
exit 1
fi
echo "Success" >>$gs_logfile 2>&1
echo "" >>$gs_logfile 2>&1
echo "Success" >>"$gs_logfile" 2>&1
echo "" >>"$gs_logfile" 2>&1
# Now try to preprocess the header
echo "** Preprocess the header" >>$gs_logfile 2>&1
echo "$CC -c -x objective-c-header $CFLAGS $CPPFLAGS $LDFLAGS gs_precomp_test.h" >>$gs_logfile 2>&1
$CC -x objective-c-header $CFLAGS $CPPFLAGS $LDFLAGS gs_precomp_test.h >>$gs_logfile 2>&1
echo "** Preprocess the header" >>"$gs_logfile" 2>&1
echo "$CC -o \"$gs_builddir/config-precomp-test.h.gch\" -c -x objective-c-header $CFLAGS $CPPFLAGS $LDFLAGS config-precomp-test.h" >>"$gs_logfile" 2>&1
$CC -o "$gs_builddir/config-precomp-test.h.gch" -c -x objective-c-header $CFLAGS $CPPFLAGS $LDFLAGS config-precomp-test.h >>"$gs_logfile" 2>&1
if test ! "$?" = "0"; then
echo "Failure" >>$gs_logfile 2>&1
rm -f a.out gs_precomp_test.h.gch
echo "Failure" >>"$gs_logfile" 2>&1
rm -f "$gs_builddir/config-precomp-test.out" "$gs_builddir/config-precomp-test.h.gch"
exit 1
fi
echo "Success" >>$gs_logfile 2>&1
echo "" >>$gs_logfile 2>&1
echo "Success" >>"$gs_logfile" 2>&1
echo "" >>"$gs_logfile" 2>&1
# Now try to compile again with the preprocessed header
echo "** Compile the file with precompiled headers" >>$gs_logfile 2>&1
echo "$CC -o a.out $CFLAGS $CPPFLAGS $LDFLAGS $LIBS gs_precomp_test.m" >>$gs_logfile 2>&1
$CC -o a.out $CFLAGS $CPPFLAGS $LDFLAGS $LIBS gs_precomp_test.m >>$gs_logfile 2>&1
# Now try to compile again with the preprocessed header. It might get ignored - which is fine.
echo "** Compile the file with precompiled headers" >>"$gs_logfile" 2>&1
echo "$CC -o \"$gs_builddir/config-precomp-test.out\" $CFLAGS $CPPFLAGS $LDFLAGS $LIBS -I\"$gs_builddir\" config-precomp-test.m" >>"$gs_logfile" 2>&1
$CC -o "$gs_builddir/config-precomp-test.out" $CFLAGS $CPPFLAGS $LDFLAGS $LIBS -I"$gs_builddir" config-precomp-test.m >>"$gs_logfile" 2>&1
if test ! "$?" = "0"; then
echo "Failure" >>$gs_logfile 2>&1
rm -f a.out gs_precomp_test.h.gch
echo "Failure" >>"$gs_logfile" 2>&1
rm -f "$gs_builddir/config-precomp-test.out" "$gs_builddir/config-precomp-test.h.gch"
exit 1
fi
echo "Success" >>$gs_logfile 2>&1
echo "Success" >>"$gs_logfile" 2>&1
# Everything looks OK.
exit 0

5133
configure vendored

File diff suppressed because it is too large Load diff

View file

@ -291,7 +291,7 @@ fi
# PATH (on some systems at least) and so comparing them won't find a
# match and the check will fail even if GNUSTEP_SYSTEM_TOOLS is in
# PATH and a spurious warning will be produced.
GNUSTEP_PREFIX="`echo \"$GNUSTEP_PREFIX\" | sed 's%/*$%%'`"
GNUSTEP_PREFIX=`echo "$GNUSTEP_PREFIX" | sed 's%/*$%%'`
AC_MSG_RESULT($GNUSTEP_PREFIX)
@ -586,6 +586,11 @@ AC_SUBST(GNUSTEP_USER_DEFAULTS_DIR)
AC_MSG_CHECKING(for GNUSTEP_MAKEFILES to use)
AC_SUBST(GNUSTEP_MAKEFILES)
AC_MSG_RESULT($GNUSTEP_MAKEFILES)
# If GNUSTEP_MAKEFILES contains a space, we may have problems later
# because make does not really support having spaces in filenames
if echo "$GNUSTEP_MAKEFILES" | grep " " >/dev/null 2>&1; then
AC_MSG_WARN([GNUSTEP_MAKEFILES ($GNUSTEP_MAKEFILES) contains spaces: this may not work])
fi
#--------------------------------------------------------------------
# Setting up the install-sh script
@ -1208,8 +1213,8 @@ GCC_WITH_PRECOMPILED_HEADERS="no"
if test ! "${GCC}" = "yes" ; then
AC_MSG_RESULT(no: it's not gcc)
else
gs_precomp_test_log_file="`pwd`/config-precomp-test.log"
gs_precomp_test_results=`(CC="$CC"; export CC; CFLAGS="$CFLAGS"; export CFLAGS; CPPLAGS="$CPPFLAGS"; export CPPFLAGS; LDFLAGS="$LDFLAGS"; export LDFLAGS; LIBS="$LIBS"; export LIBS; cd "$srcdir/config-precomp-test/"; ./run-test.sh "$gs_precomp_test_log_file"; echo $?) 2>&5`
gs_precomp_test_builddir="`pwd`"
gs_precomp_test_results=`(CC="$CC"; export CC; CFLAGS="$CFLAGS"; export CFLAGS; CPPLAGS="$CPPFLAGS"; export CPPFLAGS; LDFLAGS="$LDFLAGS"; export LDFLAGS; LIBS="$LIBS"; export LIBS; cd "$srcdir/config-precomp-test/"; ./run-test.sh "$gs_precomp_test_builddir"; echo $?) 2>&5`
if test "$gs_precomp_test_results" = "0"; then
GCC_WITH_PRECOMPILED_HEADERS="yes"
AC_MSG_RESULT(yes)

View file

@ -32,8 +32,8 @@
# (originally we had a separate script, called debugapp, for that).
if [ -z "$1" ]; then
echo "usage: `basename "$0"` [--find] [--debug] application [arguments...]"
echo "`basename "$0"` --help for more help"
echo usage: `basename "$0"` [--find] [--debug] application [arguments...]
echo `basename "$0"` --help for more help
exit 1
fi
@ -45,12 +45,12 @@ fi
while [ x"$1" != x ]; do
case "$1" in
--help)
echo "usage: `basename "$0"` [--find] [--debug] application [arguments...]"
echo usage: `basename "$0"` [--find] [--debug] application [arguments...]
echo
echo "application is the complete or relative name of the application"
echo "program with or without the .app extension, like Ink.app."
echo
echo "[arguments...] are the arguments to the application."
echo "[arguments...] are the arguments to the application."
echo
echo "If --find is used, openapp prints out the full path of the application "
echo "executable which would be executed, without actually executing it. It"
@ -139,7 +139,7 @@ if [ -n "$GNUSTEP_USER_CONFIG_FILE" ]; then
fi
if [ -z "$GNUSTEP_MAKEFILES" ]; then
GNUSTEP_MAKEFILES=@GNUSTEP_MAKEFILES@
GNUSTEP_MAKEFILES="@GNUSTEP_MAKEFILES@"
fi
# OK, we now have GNUSTEP_MAKEFILES, source GNUstep.sh
@ -150,7 +150,7 @@ fi
# Also, we'd like to get the GNUSTEP_*_APPS directories so we can
# search them, so tell GNUstep.sh to export all variabes.
GNUSTEP_SH_EXPORT_ALL_VARIABLES=yes
. $GNUSTEP_MAKEFILES/GNUstep.sh
. "$GNUSTEP_MAKEFILES/GNUstep.sh"
unset GNUSTEP_SH_EXPORT_ALL_VARIABLES
if [ -z "$GNUSTEP_IS_FLATTENED" ]; then
@ -162,7 +162,7 @@ if [ -z "$GDB" ]; then
fi
# Remove leading slashes at the end of the application name
openapp_app="`echo \"$openapp_app\" | sed 's%/*$%%'`"
openapp_app=`echo "$openapp_app" | sed 's%/*$%%'`
# Check if the user has provided the .app suffix; if not, add it.
# Save the appname (without the .app suffix) if we have it, so
@ -186,7 +186,7 @@ case "$openapp_app" in
echo "Trying $openapp_app..."
fi
if [ -d "$openapp_app" ]; then
openapp_full_appname="`(cd \"$openapp_app\"; pwd)`"
openapp_full_appname=`(cd "$openapp_app"; pwd)`
fi
;;
*)
@ -197,7 +197,7 @@ case "$openapp_app" in
echo "Trying $openapp_dir/$openapp_app..."
fi
if [ -d "$openapp_dir/$openapp_app" ]; then
openapp_full_appname="`(cd \"$openapp_dir/$openapp_app\"; pwd)`"
openapp_full_appname=`(cd "$openapp_dir/$openapp_app"; pwd)`
break
fi
done
@ -220,7 +220,7 @@ case "$openapp_app" in
echo "Trying $openapp_dir/$openapp_app..."
fi
if [ -d "$openapp_dir/$openapp_app" ]; then
openapp_full_appname="`(cd \"$openapp_dir/$openapp_app\"; pwd)`"
openapp_full_appname=`(cd "$openapp_dir/$openapp_app"; pwd)`
break
fi
fi
@ -234,7 +234,7 @@ case "$openapp_app" in
echo "Trying $openapp_dir/$openapp_app..."
fi
if [ -d "$openapp_dir/$openapp_app" ]; then
openapp_full_appname="`(cd \"$openapp_dir/$openapp_app\"; pwd)`"
openapp_full_appname=`(cd "$openapp_dir/$openapp_app"; pwd)`
break
fi
done
@ -253,9 +253,9 @@ fi
# get base app name
if [ -z "$openapp_appname" ]; then
openapp_appname="`echo \"$openapp_app\" | sed 's/\.app$//'`"
openapp_appname=`echo "$openapp_app" | sed 's/\.app$//'`
fi
openapp_appname="`basename \"$openapp_appname\"`"
openapp_appname=`basename "$openapp_appname"`
if [ -z "$EXEEXT" ]; then
EXEEXT=@EXEEXT@

View file

@ -116,9 +116,9 @@ case "$tool" in
/*) # An absolute path.
full_toolname="$tool";;
*/*) # A relative path
tool_dir="`dirname \"$tool\"`";
tool_dir="`(cd \"$tool_dir\"; pwd)`";
tool_name="`basename \"$tool\"`";
tool_dir=`dirname "$tool"`;
tool_dir=`(cd "$tool_dir"; pwd)`;
tool_name=`basename "$tool"`;
full_toolname="${tool_dir}/${tool_name}";;
*) # A path that should be searched into GNUstep tool paths

View file

@ -151,7 +151,7 @@ tmp_IFS="$IFS"
IFS=/
for component in $a; do
if [ -n "$component" -a "$component" != "." ]; then
if [ -z "$result" ]; then
if [ "$result" = "." ]; then
result=".."
else
result="$result/.."