mirror of
https://github.com/gnustep/tools-make.git
synced 2025-04-23 22:33:28 +00:00
merge in fixes from trunk
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/branches/gnustep_stable_20070311@24938 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
0be373f3e0
commit
5517909208
18 changed files with 635 additions and 171 deletions
115
ChangeLog
115
ChangeLog
|
@ -1,3 +1,116 @@
|
|||
2007-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
* Documentation/README.MinGW: Warn people not to install libxslt
|
||||
(Reported by Xavier Glattard <xavier.glattard@online.fr> and
|
||||
Christopher Armstrong <carmstrong@fastmail.com.au>).
|
||||
|
||||
2007-03-17 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
* Documentation/gnustep-howto.texi: Updated. In particular:
|
||||
removed all references to obsolete GNUSTEP_SYSTEM_ROOT, mention
|
||||
the existence of various filesystem layouts and of the new setup
|
||||
options, and updated explanations of how to checkout the source
|
||||
code.
|
||||
* Documentation/machines.texi (RedHat/Intel): Renamed to
|
||||
'RedHat/i386'; marked as 'Supported' and added some doc.
|
||||
(CentOS/i386): New section.
|
||||
(FedoraCore/i386): New section.
|
||||
|
||||
2007-03-17 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
* Documentation/make.texi: Changed the basic example to use
|
||||
tool.make instead of objc.make. Updated some comments.
|
||||
(Directory Paths): Updated documentation; in particular,
|
||||
documented GNUSTEP_ADMIN_APPS, GNUSTEP_WEB_APPS,
|
||||
GNUSTEP_ADMIN_TOOLS, GNUSTEP_LIBRARY, GNUSTEP_DOC,
|
||||
GNUSTEP_DOC_MAN, GNUSTEP_DOC_INFO.
|
||||
|
||||
2007-03-17 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
* configure.ac: Added -shared-libgcc when linking with ObjC
|
||||
exceptions (Suggestion from Andrew Pinski).
|
||||
* common.make (INTERNAL_LDFLAGS): Same change.
|
||||
* configure: Regenerated.
|
||||
|
||||
2007-03-16 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
Implemented rebuilding Info-gnustep.plist when xxxInfo.plist is
|
||||
changed (and palette.table from xxxpalette.table for palettes).
|
||||
For applications, automated detecting xxxInfo.cplist and
|
||||
preprocessing it, so that xxx_PREPROCESS_INFO_PLIST in
|
||||
GNUmakefiles is now obsolete and can be removed.
|
||||
* Instance/application.make (GNUSTEP_PLIST_DEPEND): Automatically
|
||||
add xxxInfo.plist if the file is there; if not, automatically add
|
||||
xxxInfo.cplist if there. Removed xxx_PREPROCESS_INFO_PLIST.
|
||||
* Instance/bundle.make: Have Info-gnustep.plist automatically
|
||||
depend on xxxInfo.plist if it exists.
|
||||
* Instance/framework.make: Same change.
|
||||
* Instance/gswapp.make: Same change.
|
||||
* Instance/service.make: Same change.
|
||||
* Instance/palette.make Have Info-gnustep.plist automatically
|
||||
depend on xxxInfo.plist if it exists, and palette.table
|
||||
automatically depend on xxxpalette.table if it exists.
|
||||
|
||||
* Instance/framework.make (FRAMEWORK_INFO_PLIST_FILE): New
|
||||
variable fixing the fact that frameworks on gnu-gnu-gnu were
|
||||
creating Info.plist instead of Info-gnustep.plist.
|
||||
* Instance/service.make: Fixed rules to only cat xxxInfo.plist if
|
||||
it exists. Print a warning if it doesn't, as services need to
|
||||
have one to be useful.
|
||||
|
||||
* Version: bumped to 1.98.2.
|
||||
|
||||
2007-03-16 Xavier Glattard <xavier.glattard@online.fr>
|
||||
|
||||
* configure.ac (CYGWIN): Set to no on MinGW.
|
||||
* configure: Regenerated.
|
||||
|
||||
2007-03-15 Chris Vetter <chris.vetter@gmail.com>
|
||||
|
||||
* mac: New filesystem layout (comments at the top of the file
|
||||
edited by Nicola).
|
||||
|
||||
2007-03-15 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
* configure.ac: Added -fexceptions as well when trying the
|
||||
ObjC exception test program. Restore CFLAGS and LIBS after
|
||||
the ObjC exception test.
|
||||
* configure: Regenerated.
|
||||
* common.make (OBJCFLAGS, INTERNAL_LDFLAGS): Add -fexceptions when
|
||||
ObjC exceptions are enabled.
|
||||
|
||||
2007-03-13 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
* Instance/framework.make (CURRENT_VERSION_NAME): If no
|
||||
CURRENT_VERSION_NAME is set, use INTERFACE_VERSION for it (instead
|
||||
of 'A'), so that by default the shared object and the resources
|
||||
follow a similar versioning (can still be configured, as before,
|
||||
to have separated versioning).
|
||||
* Master/rules.make (%.variables, %.subprojects): Corresponding
|
||||
update.
|
||||
|
||||
2007-03-13 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
* Instance/framework.make
|
||||
(GNUSTEP_BUILD_DIR/GNUSTEP_INSTANCE.framework/GNUSTEP_TARGET_LDIR):
|
||||
New rule to create the directory when non-flattened.
|
||||
(GNUSTEP_BUILD_DIR/GNUSTEP_INSTANCE.framework/GNUSTEP_TARGET_LDIR/GNUSTEP_INSTANCE):
|
||||
Depend on the new rule; use REL_PATH_SCRIPT to compute correct
|
||||
symlink when non-flattened.
|
||||
|
||||
2007-03-13 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
* Instance/resource-set.make (RESOURCE_FILES_DIR): New variable.
|
||||
($(RESOURCE_FILES_INSTALL_DIR)): Added missing CHOWN.
|
||||
(LOCALIZED_RESOURCE_DIRS): New variable; implemented rules to
|
||||
support it.
|
||||
(internal-resource_set-install_): Create the
|
||||
LOCALIZED_RESOURCE_DIRS if needed. Use 'cp -rf' instead of
|
||||
INSTALL_DATA to install RESOURCE_FILES and
|
||||
LOCALIZED_RESOURCE_FILES so that directories can be used as well.
|
||||
Do a final CHOWN to fixup ownership of all the installed stuff.
|
||||
($(RESOURCE_FILES_INSTALL_DIR)/%): Do a CHOWN.
|
||||
|
||||
2007-03-09 Nicola Pero <nicola.pero@meta-innovation.com>
|
||||
|
||||
* Instance/library.make: Changed resource installation directory
|
||||
|
@ -414,7 +527,7 @@
|
|||
|
||||
* Instance/Documentation/latex.make: Add correct extension to target.
|
||||
Filter out 'no' when getting LATEX2HMTL exec.
|
||||
* Instance/pallette.make: Link with all libs even on darwin.
|
||||
* Instance/palette.make: Link with all libs even on darwin.
|
||||
* target.make (darwin): Use gnu runtime as test for gnu compilation.
|
||||
(Based on suggestions from Yves de Champlain).
|
||||
|
||||
|
|
|
@ -258,6 +258,10 @@ make install
|
|||
|
||||
You should now have libxml2 installed on your system.
|
||||
|
||||
IMPORTANT: Do *not* install libxslt. It has been reported that
|
||||
libxslt is currently built in the wrong way and will prevent anything
|
||||
from linking correctly if you try to use it.
|
||||
|
||||
|
||||
14. Installing gnustep-base
|
||||
===========================
|
||||
|
|
|
@ -20,7 +20,7 @@ Last Update: @today{}
|
|||
|
||||
@page
|
||||
@vskip 0pt plus 1filll
|
||||
Copyright @copyright{} 1996 - 2002 Free Software Foundation, Inc.
|
||||
Copyright @copyright{} 1996 - 2007 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.1 or
|
||||
|
@ -38,7 +38,7 @@ any later version published by the Free Software Foundation.
|
|||
This document explains how to build the different components of the
|
||||
GNUstep core libraries and GNUstep Launchpad.
|
||||
|
||||
Copyright (C) 1996 - 2002 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996 - 2007 Free Software Foundation, Inc.
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Public License, Version 1.0 or
|
||||
|
@ -170,12 +170,12 @@ Although it is not required, GNUstep will work much better if you use it
|
|||
with the WindowMaker window manager.
|
||||
Get WindowMaker from @url{http://www.windowmaker.info}.
|
||||
|
||||
@item gnustep-objc package (for gcc version < 3.0 ONLY or MINGW/Cygwin) (RECOMMENDED)
|
||||
@item gnustep-objc package (REQUIRED BUT ONLY for gcc version < 3.0 or MINGW/Cygwin)
|
||||
Note: Do not install this library unless you are sure you need it.
|
||||
You probably don't need it except on MinGW and Cygwin (regardless of the
|
||||
gcc version you have).
|
||||
This is a special version of the Objective-C runtime that include several
|
||||
bug fixes and features that were not in gcc versions previous to 3.0.
|
||||
This is a special version of the Objective-C runtime that is compiled
|
||||
as a shared library.
|
||||
It is available at @url{ftp://ftp.gnustep.org/pub/gnustep/libs} which
|
||||
compiles using the GNUstep Makefile package (so you don't have to get the
|
||||
entire gcc dist). Make sure to set the THREADING variable in the GNUmakefile.
|
||||
|
@ -225,28 +225,41 @@ the gnustep-make Documentation directory (such as README.MingW for Windows).
|
|||
@node Core Package, , Compiling and Installing, Compiling and Installing
|
||||
@section Installing the Core Libraries
|
||||
|
||||
The GNUstep packages uses the Autoconf mechanism for
|
||||
configuration; it checks some host capabilties which are used by
|
||||
all GNUstep software. To configure just type:
|
||||
The GNUstep packages uses the Autoconf mechanism for configuration; it
|
||||
checks some host capabilities which are used by all GNUstep software.
|
||||
The first package you will compile is gnustep-make. To configure
|
||||
gnustep-make just type:
|
||||
|
||||
@example
|
||||
./configure
|
||||
@end example
|
||||
|
||||
The GNUstep makefile package needs a root directory. If the
|
||||
GNUSTEP_SYSTEM_ROOT environment variable is set then configure will
|
||||
determine the root directory from its value (by removing the final
|
||||
/System path component from it). You can also specify the root
|
||||
directory when you run configure with the prefix paramater; the
|
||||
following command makes /usr/local/GNUstep the root directory:
|
||||
The GNUstep makefile package can be configured to use different types
|
||||
of filesystem layouts. By default, GNUstep is installed with a
|
||||
GNUstep filesystem layout into /usr/GNUstep. That is a good,
|
||||
recommended default if you don't have an opinion on which filesystem
|
||||
layout to use.
|
||||
|
||||
But you can also install it somewhere else by using the prefix
|
||||
parameter; the following command makes /usr/local/GNUstep the root
|
||||
directory:
|
||||
|
||||
@example
|
||||
./configure --prefix=/usr/local/GNUstep
|
||||
@end example
|
||||
|
||||
If you do not have the GNUSTEP_SYSTEM_ROOT environment variable set
|
||||
and you do not specify a root directory when running configure, then
|
||||
configure will use /usr/GNUstep as the default root directory.
|
||||
You can also install GNUstep using an FHS layout (or some other filesystem layout
|
||||
of your choice) by using the with-layout parameter; the following command
|
||||
configures GNUstep to use the standard FHS (unix) filesystem layout:
|
||||
|
||||
@example
|
||||
./configure --with-layout=fhs
|
||||
@end example
|
||||
|
||||
In this document we will always present examples that assume that you
|
||||
are using the default GNUstep filesystem layout in /usr/GNUstep. If
|
||||
you are using a different layout, you will need to make the obvious
|
||||
changes.
|
||||
|
||||
@menu
|
||||
* Alternate Library Setup::
|
||||
|
@ -272,15 +285,15 @@ make
|
|||
make install
|
||||
@end example
|
||||
|
||||
Start with the Makefile Pacakge (gnustep-make). After installing
|
||||
gnustep-make you need to execute GNUstep's shell configuration
|
||||
script, as follows:
|
||||
Start with the Makefile Package (gnustep-make). After installing
|
||||
gnustep-make you need to execute GNUstep's shell configuration script,
|
||||
as follows:
|
||||
|
||||
@example
|
||||
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
|
||||
@end example
|
||||
|
||||
before proceeding any further.
|
||||
before proceeding any further.
|
||||
|
||||
NOTE for gcc 2.X or MinGW users: Now install gnustep-objc. Before building
|
||||
gnustep-objc, edit the @file{GNUmakefile} and set the @var{THREADING}
|
||||
|
@ -314,40 +327,71 @@ administrator to start the gdomap server using it.
|
|||
|
||||
@node Environment Setup, GNUstep Home, Additional Installation, Additional Installation
|
||||
@section Environment Setup
|
||||
Add the shell script @file{GNUstep.sh} located in the Makefile
|
||||
package to your shell startup file (such as @file{.profile}). For instance,
|
||||
if your GNUSTEP_SYSTEM_ROOT is @file{/usr/GNUstep/System},
|
||||
|
||||
You need to make sure your environment is properly setup in order to
|
||||
compile and run GNUstep software. The steps to setup your environment
|
||||
differ slightly depending on your filesystem layout.
|
||||
|
||||
There is a way of setting up your environment that always works:
|
||||
sourcing the @file{GNUstep.sh} shell script before using GNUstep. The
|
||||
shell script @file{GNUstep.sh} is located in the Makefile package; you
|
||||
may want to add it to your shell startup file (such as
|
||||
@file{.profile}). For instance, if you installed GNUstep with the
|
||||
default GNUstep filesystem layout in @file{/usr/GNUstep}, then adding
|
||||
|
||||
@example
|
||||
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
|
||||
@end example
|
||||
|
||||
in your @file{.profile} file will work (Note the period at the beginning
|
||||
of the line, and the space between the period and the following path;
|
||||
if your GNUSTEP_SYSTEM_ROOT is different, you need to replace
|
||||
@file{/usr/GNUstep/System} with your GNUSTEP_SYSTEM_ROOT).
|
||||
It defines environment variables that are needed to find
|
||||
GNUstep files and executables. Users of csh need to use the
|
||||
@file{GNUstep.csh} script. Read the make package @file{README} for more
|
||||
info. Some systems, like GNU/Linux have an @file{/etc/profile.d}
|
||||
directory where scripts can be executed automatically. If you want to
|
||||
set up GNUstep for every user on your system, you can try
|
||||
copying/linking the @file{GNUstep.sh} there. For csh or tcsh, try
|
||||
in your @file{.profile} file will work (Note the period at the
|
||||
beginning of the line, and the space between the period and the
|
||||
following path; if you installed GNUstep somewhere else, you need to
|
||||
replace @file{/usr/GNUstep/System/Library/Makefiles} with the path to
|
||||
your @file{GNUstep.sh} script). The script defines environment
|
||||
variables that are needed to find GNUstep files and executables.
|
||||
|
||||
Users of csh need to use the @file{GNUstep.csh} script. Read the make
|
||||
package @file{README} for more info. Some systems, like GNU/Linux have
|
||||
an @file{/etc/profile.d} directory where scripts can be executed
|
||||
automatically. If you want to set up GNUstep for every user on your
|
||||
system, you can try copying/linking the @file{GNUstep.sh} there. For
|
||||
csh or tcsh, try
|
||||
|
||||
@example
|
||||
source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
|
||||
@end example
|
||||
|
||||
Finally, in most filesystem configuration it's also possible to
|
||||
manually set up your environment by setting PATH, the linker library
|
||||
paths and the @code{GNUSTEP_MAKEFILES} variable (instead of using
|
||||
@file{GNUstep.sh}). For example, on GNU/Linux (with a default GNUstep
|
||||
installation), instead of sourcing @file{GNUstep.sh} you could manually
|
||||
add the Tools directories to your PATH:
|
||||
|
||||
@example
|
||||
PATH="/usr/GNUstep/System/Tools:/usr/GNUstep/Local/Tools:$PATH"
|
||||
@end example
|
||||
|
||||
manually add @file{/usr/GNUstep/System/Library/Libraries} and
|
||||
@file{/usr/GNUstep/Local/Library/Libraries} to your
|
||||
@file{/etc/ld.so.conf} file (don't forget to run @code{ldconfig} every
|
||||
time you install a library), and set the environment variable
|
||||
@code{GNUSTEP_MAKEFILES} when you want to compile something:
|
||||
|
||||
@example
|
||||
GNUSTEP_MAKEFILES=/usr/GNUstep/System/Library/Makefiles
|
||||
@end example
|
||||
|
||||
@node GNUstep Home, Time Zone, Environment Setup, Additional Installation
|
||||
@section GNUstep Home
|
||||
|
||||
Your home GNUstep directory should be created automatically the first
|
||||
time you use a GNUstep tool or application.
|
||||
This is where user defaults are kept as well as
|
||||
other user configuration files. User installed apps, libraries, etc
|
||||
are also here (if the default user directory is used). By default this
|
||||
is the directory @file{GNUstep} under your home directory, but you can change
|
||||
this (see the gnustep-make installation documentation).
|
||||
time you use a GNUstep tool or application. This is where user
|
||||
defaults are kept as well as other user configuration files. User
|
||||
installed apps, libraries, etc are also here (if the default user
|
||||
directory is used). By default this is the directory @file{GNUstep}
|
||||
under your home directory, but you can change this (see the
|
||||
gnustep-make installation documentation).
|
||||
|
||||
@node Time Zone, GNUstep deamons, GNUstep Home, Additional Installation
|
||||
@section Time Zone
|
||||
|
@ -360,21 +404,23 @@ GNUstep defaults utility to set @kbd{Local Time Zone} to your local time
|
|||
zone. Type something like @kbd{defaults write NSGlobalDomain "Local
|
||||
Time Zone" GB}. Where @kbd{GB} is a time zone abbreviation.
|
||||
|
||||
See @file{$GNUSTEP_SYSTEM_ROOT/Library/Libraries/Resources/gnustep-bsae/NSTimeZones/zones} for typical time zones):
|
||||
See
|
||||
@file{/usr/GNUstep/System/Library/Libraries/gnustep-base/Versions/1.14/Resources/NSTimeZones/zones/}
|
||||
(or equivalent on your system depending on your filesystem layout) for
|
||||
typical time zones.
|
||||
|
||||
@node GNUstep deamons, , Time Zone, Additional Installation
|
||||
@section GNUstep deamons
|
||||
|
||||
Set up your system to execute some GNUstep deamons. If you don't do
|
||||
this, they will be started automatically when you run your first GNUstep
|
||||
app:
|
||||
Set up your system to execute some GNUstep deamons. This is optional
|
||||
because if you don't do this, they will be started automatically when
|
||||
you run your first GNUstep app:
|
||||
|
||||
@itemize @bullet
|
||||
@item gdomap - Put this in a system startup file, like @file{/etc/rc.local} or @file{/etc/rc.d/rc.local} (customize for your system)
|
||||
@example
|
||||
GNUSTEP_SYSTEM_ROOT=/usr/GNUstep/System
|
||||
if [ -f $GNUSTEP_SYSTEM_ROOT/Tools/gdomap ]; then
|
||||
$GNUSTEP_SYSTEM_ROOT/Tools/gdomap
|
||||
if [ -f /usr/GNUstep/System/Tools/gdomap ]; then
|
||||
/usr/GNUstep/System/Tools/gdomap
|
||||
fi
|
||||
@end example
|
||||
@item gdnc - Start after sourcing @file{GNUstep.sh} (e.g. in .profile)
|
||||
|
@ -396,17 +442,17 @@ make_services
|
|||
@node Tools and Applications, Machine Specific, Additional Installation, Top
|
||||
@chapter Test Tools and Applications
|
||||
|
||||
Example applications are located in the gstep-examples package. To make these,
|
||||
just uncompress and untar this package, cd to the appropriate
|
||||
directory, and type make. You will need to install the GNUstep core libraries
|
||||
first before doing this.
|
||||
Example applications are located in the gstep-examples package. To
|
||||
build these, just uncompress and untar this package, cd to the
|
||||
appropriate directory, and type make. You will need to install the
|
||||
GNUstep core libraries first before doing this.
|
||||
|
||||
To run the examples. Use the openapp utility that is part of the GNUstep
|
||||
makefile package (and stored in
|
||||
@file{$GNUSTEP_SYSTEM_ROOT/Tools}). Usage is:
|
||||
To run the examples. Use the openapp utility that is part of the
|
||||
GNUstep makefile package (and stored in
|
||||
@file{/usr/GNUstep/System/Tools}). Usage is:
|
||||
|
||||
@example
|
||||
openapp application [additional arguments to app]
|
||||
openapp application_name [additional arguments to app]
|
||||
@end example
|
||||
|
||||
Good Luck!
|
||||
|
@ -426,16 +472,16 @@ to @url{http://www.gnustep.org/resources/sources.html} for information on how
|
|||
to get the sourcecode.
|
||||
|
||||
If you haven't already done so, change to the directory, where you
|
||||
want the source to reside. To get a list of potential modules to check out,
|
||||
want the source to reside. To checkout all of the GNUstep repository,
|
||||
type
|
||||
@example
|
||||
cvs -z3 checkout -c
|
||||
svn co http://svn.gna.org/svn/gnustep/modules
|
||||
@end example
|
||||
|
||||
For instance, to check our @file{core}, which contains all the GNUstep
|
||||
code libraries:
|
||||
To check out only the @file{core}, which contains all the GNUstep core
|
||||
libraries:
|
||||
@example
|
||||
cvs -z3 checkout core
|
||||
svn co http://svn.gna.org/svn/gnustep/modules/core
|
||||
@end example
|
||||
|
||||
After you have checked out the source you can compile it as
|
||||
|
@ -443,7 +489,7 @@ usual. To update the source, go into the directory of the source tree
|
|||
you want to update, for example, go into 'base', and type:
|
||||
|
||||
@example
|
||||
cvs -z3 update -Pd
|
||||
svn update
|
||||
@end example
|
||||
|
||||
You don't have to re-checkout after you have the source, just update!
|
||||
|
|
|
@ -23,6 +23,7 @@ GNUstep @email{bug-gnustep@@gnu.org}.
|
|||
|
||||
@menu
|
||||
* Compilers::
|
||||
* CentOS/i386::
|
||||
* Darwin/ix86::
|
||||
* Darwin/PowerPC::
|
||||
* Debian/Alpha::
|
||||
|
@ -30,6 +31,7 @@ GNUstep @email{bug-gnustep@@gnu.org}.
|
|||
* Debian/em64t::
|
||||
* Debian/PowerPC::
|
||||
* Debian/SPARC::
|
||||
* FedoraCore/i386::
|
||||
* FreeBSD 5.x::
|
||||
* FreeBSD 4.x::
|
||||
* FreeBSD 3.x::
|
||||
|
@ -47,7 +49,7 @@ GNUstep @email{bug-gnustep@@gnu.org}.
|
|||
* Netwinder::
|
||||
* OpenBSD 3.x::
|
||||
* OSF/Alpha::
|
||||
* RedHat/Intel::
|
||||
* RedHat/i386::
|
||||
* Slackware/Intel::
|
||||
* Slackware/Sparc::
|
||||
* Solaris 2.5.1/Sparc::
|
||||
|
@ -63,7 +65,7 @@ GNUstep @email{bug-gnustep@@gnu.org}.
|
|||
@end menu
|
||||
|
||||
@c -----------------------------------------
|
||||
@node Compilers, Darwin/ix86, Machine Specific, Machine Specific
|
||||
@node Compilers, CentOS/i386, Machine Specific, Machine Specific
|
||||
@section Compilers
|
||||
|
||||
A recommended compiler is listed for each machine, if known. You should try
|
||||
|
@ -132,7 +134,15 @@ setp procedures to run correctly.
|
|||
@end table
|
||||
|
||||
@c -----------------------------------------
|
||||
@node Darwin/ix86, Darwin/PowerPC, Compilers, Machine Specific
|
||||
@node CentOS/i386, Darwin/ix86, Compilers, Machine Specific
|
||||
@section CentOS/ix86 (@emph{Supported})
|
||||
|
||||
This RedHat variant is well-tested and well-supported (tested at least
|
||||
up to CentOS release 4.4). For more information, please check the
|
||||
section on RedHat/i386 below.
|
||||
|
||||
@c -----------------------------------------
|
||||
@node Darwin/ix86, Darwin/PowerPC, CentOS/i386, Machine Specific
|
||||
@section Darwin/ix86 (@emph{Unsupported})
|
||||
|
||||
Currently tested on Darwin 7.x
|
||||
|
@ -234,13 +244,21 @@ Tested on 'unstable'.
|
|||
Tested on sid.
|
||||
|
||||
@c -----------------------------------------
|
||||
@node Debian/SPARC, FreeBSD 5.x, Debian/PowerPC, Machine Specific
|
||||
@node Debian/SPARC, FedoraCore/i386, Debian/PowerPC, Machine Specific
|
||||
@section Debian/SPARC (@emph{Release})
|
||||
|
||||
Tested on sid.
|
||||
|
||||
@c -----------------------------------------
|
||||
@node FreeBSD 5.x, FreeBSD 4.x, Debian/SPARC, Machine Specific
|
||||
@node FedoraCore/i386, FreeBSD 5.x, Debian/SPARC, Machine Specific
|
||||
@section FedoraCore/ix86 (@emph{Supported})
|
||||
|
||||
This RedHat variant is well-tested and well-supported (tested at least
|
||||
up to Fedora Core release 6). For more information, please check the
|
||||
section on RedHat/i386 below.
|
||||
|
||||
@c -----------------------------------------
|
||||
@node FreeBSD 5.x, FreeBSD 4.x, FedoraCore/i386, Machine Specific
|
||||
@section FreeBSD 5.x (@emph{Supported})
|
||||
|
||||
Tested on 5.0, 5.1, 5.3
|
||||
|
@ -501,7 +519,7 @@ Ports at
|
|||
@url{http://mail.rochester.edu/~asveikau/gnustep-openbsd/}
|
||||
|
||||
@c -----------------------------------------
|
||||
@node OSF/Alpha, RedHat/Intel, OpenBSD 3.x, Machine Specific
|
||||
@node OSF/Alpha, RedHat/i386, OpenBSD 3.x, Machine Specific
|
||||
@section OSF/Alpha (@emph{Needs Testing, Unstable})
|
||||
@c Contact: suzukis@file.phys.tohoku.ac.jp
|
||||
|
||||
|
@ -525,11 +543,29 @@ ADDTIONAL_TOOL_LIBS in the GNUmakefile(.preamble).
|
|||
@end table
|
||||
|
||||
@c -----------------------------------------
|
||||
@node RedHat/Intel, Slackware/Intel, OSF/Alpha, Machine Specific
|
||||
@section RedHat/Intel (@emph{Unsupported})
|
||||
@node RedHat/i386, Slackware/Intel, OSF/Alpha, Machine Specific
|
||||
@section RedHat/i386 (@emph{Supported})
|
||||
|
||||
RedHat and variants/clones such as Fedora Core and CentOS are all very
|
||||
well supported and are regularly tested with all GNUstep releases.
|
||||
|
||||
@table @var
|
||||
@item Recommended compiler
|
||||
The default compiler works very well.
|
||||
|
||||
@item Extra libs needed
|
||||
All extra libs needed are easily available from standard packages; the
|
||||
only tricky one is ffcall. If you don't find an RPM for that one,
|
||||
download it directly from the GNUstep web site
|
||||
(http://www.gnustep.org).
|
||||
|
||||
@item Special Instructions
|
||||
None.
|
||||
|
||||
@end table
|
||||
|
||||
@c -----------------------------------------
|
||||
@node Slackware/Intel, Slackware/Sparc, RedHat/Intel, Machine Specific
|
||||
@node Slackware/Intel, Slackware/Sparc, RedHat/i386, Machine Specific
|
||||
@section Slackware/Intel (@emph{Unsupported})
|
||||
|
||||
@c -----------------------------------------
|
||||
|
|
|
@ -73,15 +73,15 @@ Here is an example makefile (named GNUmakefile to emphasis the fact that it reli
|
|||
include $(GNUSTEP_MAKEFILES)/common.make
|
||||
|
||||
# Build a simple Objective-C program
|
||||
OBJC_PROGRAM_NAME = simple
|
||||
TOOL_NAME = simple
|
||||
|
||||
# The Objective-C files to compile
|
||||
simple_OBJC_FILES = simple.m
|
||||
|
||||
-include GNUmakefile.preamble
|
||||
|
||||
# Include in the rules for making Objective-C programs
|
||||
include $(GNUSTEP_MAKEFILES)/objc.make
|
||||
# Include in the rules for making GNUstep command-line programs
|
||||
include $(GNUSTEP_MAKEFILES)/tool.make
|
||||
|
||||
-include GNUmakefile.postamble
|
||||
@end smallexample
|
||||
|
@ -393,9 +393,8 @@ This example makefile illustrates two libraries, @file{libone} and
|
|||
@file{libtwo}, that are to be generated.
|
||||
|
||||
@smallexample
|
||||
|
||||
#
|
||||
# An example makefile
|
||||
# An example GNUmakefile
|
||||
#
|
||||
|
||||
# Include the common variables defined by the Makefile Package
|
||||
|
@ -523,7 +522,7 @@ This makefile illustrates two Objective-C programs, @file{simple} and
|
|||
|
||||
@smallexample
|
||||
#
|
||||
# An example makefile
|
||||
# An example GNUmakefile
|
||||
#
|
||||
|
||||
# Include the common variables defined by the Makefile Package
|
||||
|
@ -887,7 +886,6 @@ your specific package or that are to be used by developers only.
|
|||
* Overridable Flags::
|
||||
@end menu
|
||||
|
||||
|
||||
Any of these variables that are defined by @file{common.make} can and
|
||||
should be used by the user's makefile fragments to reference directories
|
||||
and/or perform any tasks which are not done automatically by the
|
||||
|
@ -917,6 +915,22 @@ applications are installed. This variable is dependent upon the
|
|||
accordingly if the user specifies a different installation domain.
|
||||
@end defvar
|
||||
|
||||
@defvar GNUSTEP_ADMIN_APPS
|
||||
@code{GNUSTEP_ADMIN_APPS} is the absolute path to the directory where
|
||||
GUI applications for the system Administrator are installed. This
|
||||
variable is dependent upon the @code{GNUSTEP_INSTALLATION_DOMAIN}
|
||||
variable, so the path will change accordingly if the user specifies a
|
||||
different installation domain.
|
||||
@end defvar
|
||||
|
||||
@defvar GNUSTEP_WEB_APPS
|
||||
@code{GNUSTEP_WEB_APPS} is the absolute path to the directory where
|
||||
web applications (for web development frameworks such as GSWeb or
|
||||
SOPE) are installed. This variable is dependent upon the
|
||||
@code{GNUSTEP_INSTALLATION_DOMAIN} variable, so the path will change
|
||||
accordingly if the user specifies a different installation domain.
|
||||
@end defvar
|
||||
|
||||
@defvar GNUSTEP_TOOLS
|
||||
@code{GNUSTEP_TOOLS} is the absolute path for the root directory where
|
||||
command line tools are installed. Only command line tools which are
|
||||
|
@ -929,6 +943,19 @@ Paths,,TOOL_INSTALLATION_DIR}. This variable is dependent upon the
|
|||
accordingly if the user specifies a different installation domain.
|
||||
@end defvar
|
||||
|
||||
@defvar GNUSTEP_ADMIN_TOOLS
|
||||
@code{GNUSTEP_ADMIN_TOOLS} is the absolute path for the root directory
|
||||
where command line tools for the system administrator are installed.
|
||||
Only command line tools which are target platform independent should
|
||||
be installed in @code{GNUSTEP_ADMIN_TOOLS}; target platform dependent
|
||||
command line tools should be placed in the appropriate subdirectory of
|
||||
@code{GNUSTEP_ADMIN)TOOLS}, see @ref{Directory
|
||||
Paths,,GNUSTEP_TARGET_DIR}, and @ref{Directory
|
||||
Paths,,TOOL_INSTALLATION_DIR}. This variable is dependent upon the
|
||||
@code{GNUSTEP_INSTALLATION_DOMAIN} variable, so the path will change
|
||||
accordingly if the user specifies a different installation domain.
|
||||
@end defvar
|
||||
|
||||
@defvar GNUSTEP_HEADERS
|
||||
@code{GNUSTEP_HEADERS} is the absolute path for the root directory where
|
||||
header files are installed. Normally header files are not installed in
|
||||
|
@ -943,6 +970,21 @@ path will change accordingly if the user specifies a different
|
|||
installation domain.
|
||||
@end defvar
|
||||
|
||||
@defvar GNUSTEP_LIBRARY
|
||||
@code{GNUSTEP_LIBRARY} is the absolute path for the 'Library'
|
||||
directory where all sorts of resources are installed. This directory
|
||||
can be expected to have (at least) some standard subdirectories with
|
||||
fixed names, which are @code{ApplicationSupport}, @code{Bundles},
|
||||
@code{Frameworks}, @code{ApplicationSupport/Palettes},
|
||||
@code{Services}, @code{Libraries/Resources} and @code{Libraries/Java}.
|
||||
You can access them in your GNUmakefile as
|
||||
@code{GNUSTEP_LIBRARY/ApplicationSupport},
|
||||
@code{GNUSTEP_LIBRARY/Bundles}, etc. This variable is dependent upon
|
||||
the @code{GNUSTEP_INSTALLATION_DOMAIN} variable, so the path will
|
||||
change accordingly if the user specifies a different installation
|
||||
domain.
|
||||
@end defvar
|
||||
|
||||
@defvar GNUSTEP_LIBRARIES
|
||||
@code{GNUSTEP_LIBRARIES} is the absolute path for the directory where
|
||||
libraries are installed taking the target platform and library
|
||||
|
@ -960,10 +1002,33 @@ fonts, printer type information, model files for system panels, and
|
|||
system images. The resource files are generally associated with
|
||||
libraries, because resources for applications or bundles are included
|
||||
within the application or bundle directory wrapper.
|
||||
@code{GNUSTEP_RESOURCES} is a subdirectory of @code{GNUSTEP_LIBRARY};
|
||||
it is dependent upon the @code{GNUSTEP_INSTALLATION_DOMAIN} variable,
|
||||
so the path will change accordingly if the user specifies a different
|
||||
installation domain.
|
||||
@code{GNUSTEP_RESOURCES} is the @code{Libraries/Resources}
|
||||
subdirectory of @code{GNUSTEP_LIBRARY}; it is dependent upon the
|
||||
@code{GNUSTEP_INSTALLATION_DOMAIN} variable, so the path will change
|
||||
accordingly if the user specifies a different installation domain.
|
||||
@end defvar
|
||||
|
||||
@defvar GNUSTEP_DOC
|
||||
@code{GNUSTEP_DOC} is the absolute path for the directory where
|
||||
documentation is installed (with the exception of man pages and info
|
||||
documentation, which need to be installed into @code{GNUSTEP_DOC_MAN}
|
||||
and @code{GNUSTEP_DOC_INFO}). This variable is dependent upon the
|
||||
@code{GNUSTEP_INSTALLATION_DOMAIN} variable, so the path will change
|
||||
accordingly if the user specifies a different installation domain.
|
||||
@end defvar
|
||||
|
||||
@defvar GNUSTEP_DOC_MAN
|
||||
@code{GNUSTEP_DOC_MAN} is the absolute path for the directory where
|
||||
man pages are to be installed. This variable is dependent upon the
|
||||
@code{GNUSTEP_INSTALLATION_DOMAIN} variable, so the path will change
|
||||
accordingly if the user specifies a different installation domain.
|
||||
@end defvar
|
||||
|
||||
@defvar GNUSTEP_DOC_INFO
|
||||
@code{GNUSTEP_DOC_INFO} is the absolute path for the directory where
|
||||
info documentation is installed. This variable is dependent upon the
|
||||
@code{GNUSTEP_INSTALLATION_DOMAIN} variable, so the path will change
|
||||
accordingly if the user specifies a different installation domain.
|
||||
@end defvar
|
||||
|
||||
@defvar GNUSTEP_HOST_DIR
|
||||
|
|
64
FilesystemLayouts/mac
Normal file
64
FilesystemLayouts/mac
Normal file
|
@ -0,0 +1,64 @@
|
|||
#
|
||||
# Mac-like filesystem layout
|
||||
#
|
||||
|
||||
# This is similar to the layout found on Apple Mac OS X. It mimicks
|
||||
# most of the layout, but doesn't go all the way since GNUstep doesn't
|
||||
# have GNUSTEP_DEVELOPER_xyz for example.
|
||||
#
|
||||
# To use gnustep-make in this environment, source GNUstep.sh or use
|
||||
# 'export GNUSTEP_MAKEFILES=/System/Library/Makefiles'.
|
||||
|
||||
# By default, we install into /, but this can be overridden by using
|
||||
# ./configure --prefix=xxx when configuring.
|
||||
GNUSTEP_DEFAULT_PREFIX=/
|
||||
|
||||
# NB: $prefix will be added to all the MAKEFILES/SYSTEM/NETWORK/LOCAL
|
||||
# paths.
|
||||
GNUSTEP_MAKEFILES=/System/Library/Makefiles
|
||||
|
||||
GNUSTEP_SYSTEM_APPS=/Applications
|
||||
GNUSTEP_SYSTEM_ADMIN_APPS=/Applications/Utilities
|
||||
GNUSTEP_SYSTEM_TOOLS=/usr/local/bin
|
||||
GNUSTEP_SYSTEM_ADMIN_TOOLS=/usr/local/sbin
|
||||
GNUSTEP_SYSTEM_LIBRARY=/System/Library
|
||||
GNUSTEP_SYSTEM_HEADERS=/System/Library/Headers
|
||||
GNUSTEP_SYSTEM_LIBRARIES=/System/Library/Libraries
|
||||
GNUSTEP_SYSTEM_DOCUMENTATION=/Library/Documentation
|
||||
GNUSTEP_SYSTEM_DOCUMENTATION_MAN=/Library/Documentation/man
|
||||
GNUSTEP_SYSTEM_DOCUMENTATION_INFO=/Library/Documentation/info
|
||||
|
||||
GNUSTEP_LOCAL_APPS=/Applications
|
||||
GNUSTEP_LOCAL_ADMIN_APPS=/Applications/Utilities
|
||||
GNUSTEP_LOCAL_TOOLS=/usr/local/bin
|
||||
GNUSTEP_LOCAL_ADMIN_TOOLS=/usr/local/sbin
|
||||
GNUSTEP_LOCAL_LIBRARY=/Library
|
||||
GNUSTEP_LOCAL_HEADERS=/Library/Headers
|
||||
GNUSTEP_LOCAL_LIBRARIES=/Library/Libraries
|
||||
GNUSTEP_LOCAL_DOCUMENTATION=/Library/Documentation
|
||||
GNUSTEP_LOCAL_DOCUMENTATION_MAN=/Library/Documentation/man
|
||||
GNUSTEP_LOCAL_DOCUMENTATION_INFO=/Library/Documentation/info
|
||||
|
||||
GNUSTEP_NETWORK_APPS=/Applications
|
||||
GNUSTEP_NETWORK_ADMIN_APPS=/Applications/Utilities
|
||||
GNUSTEP_NETWORK_TOOLS=/usr/local/bin
|
||||
GNUSTEP_NETWORK_ADMIN_TOOLS=/usr/local/sbin
|
||||
GNUSTEP_NETWORK_LIBRARY=/Library
|
||||
GNUSTEP_NETWORK_HEADERS=/Library/Headers
|
||||
GNUSTEP_NETWORK_LIBRARIES=/Library/Libraries
|
||||
GNUSTEP_NETWORK_DOCUMENTATION=/Library/Documentation
|
||||
GNUSTEP_NETWORK_DOCUMENTATION_MAN=/Library/Documentation/man
|
||||
GNUSTEP_NETWORK_DOCUMENTATION_INFO=/Library/Documentation/info
|
||||
|
||||
GNUSTEP_USER_DIR_APPS=Applications
|
||||
GNUSTEP_USER_DIR_ADMIN_APPS=Applications/Utilities
|
||||
GNUSTEP_USER_DIR_TOOLS=bin
|
||||
GNUSTEP_USER_DIR_ADMIN_TOOLS=sbin
|
||||
GNUSTEP_USER_DIR_LIBRARY=Library
|
||||
GNUSTEP_USER_DIR_HEADERS=Library/Headers
|
||||
GNUSTEP_USER_DIR_LIBRARIES=Library/Libraries
|
||||
GNUSTEP_USER_DIR_DOCUMENTATION=Documentation
|
||||
GNUSTEP_USER_DIR_DOCUMENTATION_MAN=Documentation/man
|
||||
GNUSTEP_USER_DIR_DOCUMENTATION_INFO=Documentation/info
|
||||
GNUSTEP_USER_CONFIG_FILE=Library/.GNUstep.conf
|
||||
GNUSTEP_USER_DEFAULTS_DIR=Library/Defaults
|
|
@ -186,8 +186,9 @@ MAIN_MARKUP_FILE = $(strip $(subst .gsmarkup,,$($(GNUSTEP_INSTANCE)_MAIN_MARKUP_
|
|||
# APPLICATION_ICON and/or MAIN_MODEL_FILE and/or MAIN_MARKUP_FILE has
|
||||
# changed since last time we built Info.plist. We use
|
||||
# stamp-string.make, which will store the variables in a stamp file
|
||||
# inside GNUSTEP_STAMP_DIR, and rebuild Info.plist iff
|
||||
# GNUSTEP_STAMP_STRING changes.
|
||||
# inside GNUSTEP_STAMP_DIR, and rebuild Info.plist if
|
||||
# GNUSTEP_STAMP_STRING changes. We will also depend on xxxInfo.plist
|
||||
# if any.
|
||||
GNUSTEP_STAMP_STRING = $(PRINCIPAL_CLASS)-$(APPLICATION_ICON)-$(MAIN_MODEL_FILE)-$(MAIN_MARKUP_FILE)
|
||||
|
||||
ifneq ($(FOUNDATION_LIB),apple)
|
||||
|
@ -202,14 +203,11 @@ endif
|
|||
|
||||
include $(GNUSTEP_MAKEFILES)/Instance/Shared/stamp-string.make
|
||||
|
||||
# FIXME: Missing dependency on $(GNUSTEP_INSTANCE)Info.plist files
|
||||
|
||||
# You can have a single xxxInfo.plist for both GNUstep and Apple.
|
||||
|
||||
# Often enough, you can just put in it all fields required by both
|
||||
# GNUstep and Apple; if there is a conflict, you can add
|
||||
# xxx_PREPROCESS_INFO_PLIST = yes to your GNUmakefile, and provide a
|
||||
# xxxInfo.cplist (please note the suffix!) - that file is
|
||||
# GNUstep and Apple; if there is a conflict, you can provide
|
||||
# axxxInfo.cplist (please note the suffix!) - that file is
|
||||
# automatically run through the C preprocessor to generate a
|
||||
# xxxInfo.plist file from it. The preprocessor will define GNUSTEP
|
||||
# when using gnustep-base, APPLE when using Apple FoundationKit, NEXT
|
||||
|
@ -223,17 +221,17 @@ include $(GNUSTEP_MAKEFILES)/Instance/Shared/stamp-string.make
|
|||
# to have your .cplist use different code for each.
|
||||
#
|
||||
|
||||
# The following is really a hack, but very elegant. Our problem is
|
||||
# that we'd like to always depend on xxxInfo.plist if it's there, and
|
||||
# not depend on it if it's not there - but we don't have a solution to
|
||||
# this problem at the moment, so we don't depend on it. Adding
|
||||
# xxx_PREPROCESS_INFO_PLIST = yes at the moment just turns on the
|
||||
# dependency on xxxInfo.plist, which is then built from xxxInfo.cplist
|
||||
# using the %.plist: %.cplist rules.
|
||||
ifeq ($($(GNUSTEP_INSTANCE)_PREPROCESS_INFO_PLIST), yes)
|
||||
GNUSTEP_PLIST_DEPEND = $(GNUSTEP_INSTANCE)Info.plist
|
||||
else
|
||||
GNUSTEP_PLIST_DEPEND =
|
||||
# Our problem is that we'd like to always depend on xxxInfo.plist if
|
||||
# it's there, and not depend on it if it's not there - which we solve
|
||||
# by expanding $(wildcard $(GNUSTEP_INSTANCE)Info.plist)
|
||||
GNUSTEP_PLIST_DEPEND = $(wildcard $(GNUSTEP_INSTANCE)Info.plist)
|
||||
|
||||
# As a special case, if xxxInfo.cplist is there, in this case as well
|
||||
# we'd like to depend on xxxInfo.plist.
|
||||
ifeq ($(GNUSTEP_PLIST_DEPEND),)
|
||||
# xxxInfo.plist is not there. Check if xxxInfo.cplist is there, and
|
||||
# if so, convert it to xxxInfo.plist and add it to the dependencies.
|
||||
GNUSTEP_PLIST_DEPEND = $(patsubst %.cplist,%.plist,$(wildcard $(GNUSTEP_INSTANCE)Info.cplist))
|
||||
endif
|
||||
|
||||
# On Apple we assume that xxxInfo.plist has a '{' (and nothing else)
|
||||
|
|
|
@ -255,10 +255,14 @@ endif
|
|||
|
||||
else # following executed if FOUNDATION_LIB != apple
|
||||
|
||||
# Depend on xxxInfo.plist but only if it exists.
|
||||
GNUSTEP_PLIST_DEPEND = $(wildcard $(GNUSTEP_INSTANCE)Info.plist)
|
||||
|
||||
ifneq ($(OBJ_FILES_TO_LINK),)
|
||||
# GNUstep bundles
|
||||
$(BUNDLE_DIR)/Resources/Info-gnustep.plist: $(BUNDLE_DIR)/Resources \
|
||||
$(GNUSTEP_STAMP_DEPEND)
|
||||
$(GNUSTEP_STAMP_DEPEND) \
|
||||
$(GNUSTEP_PLIST_DEPEND)
|
||||
$(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
|
||||
echo " NSExecutable = \"$(GNUSTEP_INSTANCE)$(BUNDLE_OBJ_EXT)\";"; \
|
||||
echo " NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
|
||||
|
@ -270,7 +274,8 @@ $(BUNDLE_DIR)/Resources/Info-gnustep.plist: $(BUNDLE_DIR)/Resources \
|
|||
else # following code for when no object file is built
|
||||
# GNUstep bundles
|
||||
$(BUNDLE_DIR)/Resources/Info-gnustep.plist: $(BUNDLE_DIR)/Resources \
|
||||
$(GNUSTEP_STAMP_DEPEND)
|
||||
$(GNUSTEP_STAMP_DEPEND) \
|
||||
$(GNUSTEP_PLIST_DEPEND)
|
||||
$(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
|
||||
echo " NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
|
||||
echo "}") >$@$(END_ECHO)
|
||||
|
|
|
@ -74,12 +74,36 @@ endif
|
|||
# might be installed at the same time :-).
|
||||
#
|
||||
|
||||
# Set VERSION from xxx_VERSION
|
||||
ifneq ($($(GNUSTEP_INSTANCE)_VERSION),)
|
||||
VERSION = $($(GNUSTEP_INSTANCE)_VERSION)
|
||||
endif
|
||||
|
||||
ifeq ($(VERSION),)
|
||||
VERSION = 0.0.1
|
||||
endif
|
||||
|
||||
# By setting xxx_INTERFACE_VERSION you can change the soversion used
|
||||
# when linking the library. See comments in library.make for the
|
||||
# variables with the same name for libraries.
|
||||
ifeq ($($(GNUSTEP_INSTANCE)_INTERFACE_VERSION),)
|
||||
# By default, if VERSION is 1.0.0, INTERFACE_VERSION is 1
|
||||
INTERFACE_VERSION = $(word 1,$(subst ., ,$(VERSION)))
|
||||
else
|
||||
INTERFACE_VERSION = $($(GNUSTEP_INSTANCE)_INTERFACE_VERSION)
|
||||
endif
|
||||
|
||||
# CURRENT_VERSION_NAME is the name of the version as used when
|
||||
# building the library structure. We recommend just using
|
||||
# INTERFACE_VERSION for that, so your resources and your shared
|
||||
# library have the same versioning.
|
||||
|
||||
# Warning - the following variable is also used in Master/rules.make
|
||||
# to build the OWNING_PROJECT_HEADER_DIR for the framework's
|
||||
# subprojects. Make sure you keep them in sync if you change them.
|
||||
CURRENT_VERSION_NAME = $($(GNUSTEP_INSTANCE)_CURRENT_VERSION_NAME)
|
||||
ifeq ($(CURRENT_VERSION_NAME),)
|
||||
CURRENT_VERSION_NAME = A
|
||||
CURRENT_VERSION_NAME = $(INTERFACE_VERSION)
|
||||
endif
|
||||
|
||||
# xxx_MAKE_CURRENT_VERSION can be set to 'no' if you do not want the
|
||||
|
@ -113,15 +137,6 @@ ifeq ($(FRAMEWORK_VERSION_SUPPORT),no)
|
|||
MAKE_CURRENT_VERSION = no
|
||||
endif
|
||||
|
||||
# Set VERSION from xxx_VERSION
|
||||
ifneq ($($(GNUSTEP_INSTANCE)_VERSION),)
|
||||
VERSION = $($(GNUSTEP_INSTANCE)_VERSION)
|
||||
endif
|
||||
|
||||
ifeq ($(VERSION),)
|
||||
VERSION = 0.0.1
|
||||
endif
|
||||
|
||||
# This is used on Apple to build frameworks which can be embedded into
|
||||
# applications. You usually set it to something like
|
||||
# @executable_path/../Frameworks and then you can embed the framework
|
||||
|
@ -225,16 +240,6 @@ FRAMEWORK_LIBRARY_DIR = $(GNUSTEP_BUILD_DIR)/$(FRAMEWORK_LIBRARY_DIR_NAME)
|
|||
FRAMEWORK_CURRENT_LIBRARY_DIR_NAME = $(FRAMEWORK_CURRENT_DIR_NAME)/$(GNUSTEP_TARGET_LDIR)
|
||||
FRAMEWORK_CURRENT_LIBRARY_DIR = $(GNUSTEP_BUILD_DIR)/$(FRAMEWORK_CURRENT_LIBRARY_DIR_NAME)
|
||||
|
||||
# By setting xxx_INTERFACE_VERSION you can change the soversion used
|
||||
# when linking the library. See comments in library.make for the
|
||||
# variables with the same name for libraries.
|
||||
ifeq ($($(GNUSTEP_INSTANCE)_INTERFACE_VERSION),)
|
||||
# By default, if VERSION is 1.0.0, INTERFACE_VERSION is 1
|
||||
INTERFACE_VERSION = $(word 1,$(subst ., ,$(VERSION)))
|
||||
else
|
||||
INTERFACE_VERSION = $($(GNUSTEP_INSTANCE)_INTERFACE_VERSION)
|
||||
endif
|
||||
|
||||
ifneq ($(BUILD_DLL), yes)
|
||||
|
||||
FRAMEWORK_LIBRARY_FILE = lib$(GNUSTEP_INSTANCE)$(SHARED_LIBEXT)
|
||||
|
@ -442,15 +447,21 @@ $(DUMMY_FRAMEWORK_OBJ_FILE): $(DUMMY_FRAMEWORK_FILE)
|
|||
$(ECHO_COMPILING)$(CC) $< -c $(ALL_CPPFLAGS) $(ALL_OBJCFLAGS) -o $@$(END_ECHO)
|
||||
endif
|
||||
|
||||
ifeq ($(FOUNDATION_LIB),gnu)
|
||||
FRAMEWORK_INFO_PLIST_FILE = Info-gnustep.plist
|
||||
else
|
||||
FRAMEWORK_INFO_PLIST_FILE = Info.plist
|
||||
endif
|
||||
|
||||
ifeq ($(FRAMEWORK_VERSION_SUPPORT), yes)
|
||||
build-framework: $(FRAMEWORK_FILE) \
|
||||
shared-instance-bundle-all \
|
||||
$(FRAMEWORK_VERSION_DIR)/Resources/Info.plist \
|
||||
$(FRAMEWORK_VERSION_DIR)/Resources/$(FRAMEWORK_INFO_PLIST_FILE) \
|
||||
$(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE)
|
||||
else
|
||||
build-framework: $(FRAMEWORK_FILE) \
|
||||
shared-instance-bundle-all \
|
||||
$(FRAMEWORK_VERSION_DIR)/Resources/Info.plist
|
||||
$(FRAMEWORK_VERSION_DIR)/Resources/$(FRAMEWORK_INFO_PLIST_FILE)
|
||||
endif
|
||||
|
||||
ifeq ($(findstring darwin, $(GNUSTEP_TARGET_OS)), darwin)
|
||||
|
@ -465,7 +476,10 @@ ifeq ($(findstring darwin, $(GNUSTEP_TARGET_OS)), darwin)
|
|||
# what we are compiling is not made the Current framework version, I
|
||||
# think it's not our business to touch the Current stuff, so let's
|
||||
# ignore it. It's faster to ignore it anyway. ;-)
|
||||
$(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE):
|
||||
$(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework/$(GNUSTEP_TARGET_LDIR):
|
||||
$(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
|
||||
|
||||
$(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE): $(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework/$(GNUSTEP_TARGET_LDIR)/
|
||||
ifeq ($(MAKE_CURRENT_VERSION),yes)
|
||||
$(ECHO_NOTHING)cd $(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework; \
|
||||
$(RM_LN_S) $(GNUSTEP_INSTANCE); \
|
||||
|
@ -488,12 +502,19 @@ else
|
|||
# by just using -Lpath_to_the_framework/xxx.framework/$TARGET_LDIR
|
||||
#
|
||||
ifeq ($(FRAMEWORK_VERSION_SUPPORT), yes)
|
||||
$(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE):
|
||||
$(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework/$(GNUSTEP_TARGET_LDIR):
|
||||
$(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
|
||||
|
||||
$(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE): $(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework/$(GNUSTEP_TARGET_LDIR)/
|
||||
ifeq ($(MAKE_CURRENT_VERSION),yes)
|
||||
$(ECHO_NOTHING)cd $(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework/$(GNUSTEP_TARGET_LDIR); \
|
||||
$(RM_LN_S) $(GNUSTEP_INSTANCE) $(FRAMEWORK_LIBRARY_FILES); \
|
||||
$(LN_S) Versions/Current/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE) $(GNUSTEP_INSTANCE); \
|
||||
$(LN_S) Versions/Current/$(GNUSTEP_TARGET_LDIR)/$(FRAMEWORK_LIBRARY_FILE) $(FRAMEWORK_LIBRARY_FILE)$(END_ECHO)
|
||||
$(LN_S) `$(REL_PATH_SCRIPT) $(GNUSTEP_TARGET_LDIR) \
|
||||
Versions/Current/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE)` \
|
||||
$(GNUSTEP_INSTANCE); \
|
||||
$(LN_S) `$(REL_PATH_SCRIPT) $(GNUSTEP_TARGET_LDIR) \
|
||||
Versions/Current/$(GNUSTEP_TARGET_LDIR)/$(FRAMEWORK_LIBRARY_FILE)` \
|
||||
$(FRAMEWORK_LIBRARY_FILE)$(END_ECHO)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
@ -520,6 +541,9 @@ endif
|
|||
|
||||
MAIN_MODEL_FILE = $(strip $(subst .gmodel,,$(subst .gorm,,$(subst .nib,,$($(GNUSTEP_INSTANCE)_MAIN_MODEL_FILE)))))
|
||||
|
||||
# FIXME: Use stamp.make to depend on the value of MAIN_MODEL_FILE and PRINCIPAL_CLASS
|
||||
|
||||
# FIXME: MacOSX frameworks should also merge xxxInfo.plist into them
|
||||
# MacOSX-S frameworks
|
||||
$(FRAMEWORK_VERSION_DIR)/Resources/Info.plist: $(FRAMEWORK_VERSION_DIR)/Resources
|
||||
$(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
|
||||
|
@ -528,8 +552,14 @@ $(FRAMEWORK_VERSION_DIR)/Resources/Info.plist: $(FRAMEWORK_VERSION_DIR)/Resource
|
|||
echo " NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
|
||||
echo "}") >$@$(END_ECHO)
|
||||
|
||||
# Depend on xxxInfo.plist but only if it exists.
|
||||
GNUSTEP_PLIST_DEPEND = $(wildcard $(GNUSTEP_INSTANCE)Info.plist)
|
||||
|
||||
# GNUstep frameworks
|
||||
$(FRAMEWORK_VERSION_DIR)/Resources/Info-gnustep.plist: $(FRAMEWORK_VERSION_DIR)/Resources $(DUMMY_FRAMEWORK_FILE)
|
||||
$(FRAMEWORK_VERSION_DIR)/Resources/Info-gnustep.plist: \
|
||||
$(FRAMEWORK_VERSION_DIR)/Resources \
|
||||
$(DUMMY_FRAMEWORK_FILE) \
|
||||
$(GNUSTEP_PLIST_DEPEND)
|
||||
$(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
|
||||
echo " NSExecutable = \"$(GNUSTEP_INSTANCE)$(FRAMEWORK_OBJ_EXT)\";"; \
|
||||
echo " NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
|
||||
|
|
|
@ -149,7 +149,10 @@ HAS_GSWCOMPONENTS = $($(GNUSTEP_INSTANCE)_HAS_GSWCOMPONENTS)
|
|||
GSWAPP_INFO_PLIST = $($(GNUSTEP_INSTANCE)_GSWAPP_INFO_PLIST)
|
||||
MAIN_MODEL_FILE = $(strip $(subst .gmodel,,$(subst .gorm,,$(subst .nib,,$($(GNUSTEP_INSTANCE)_MAIN_MODEL_FILE)))))
|
||||
|
||||
$(GSWAPP_INFO_PLIST_FILE):
|
||||
# Depend on xxxInfo.plist but only if it exists.
|
||||
GNUSTEP_PLIST_DEPEND = $(wildcard $(GNUSTEP_INSTANCE)Info.plist)
|
||||
|
||||
$(GSWAPP_INFO_PLIST_FILE): $(GNUSTEP_PLIST_DEPEND)
|
||||
$(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
|
||||
echo " NSExecutable = \"$(GNUSTEP_INSTANCE)\";"; \
|
||||
echo " NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
|
||||
|
|
|
@ -119,7 +119,12 @@ ifeq ($(PALETTE_ICON),)
|
|||
PALETTE_ICON = $(GNUSTEP_INSTANCE)
|
||||
endif
|
||||
|
||||
$(PALETTE_DIR)/Resources/Info-gnustep.plist: $(PALETTE_DIR)/Resources
|
||||
# Depend on xxxInfo.plist but only if it exists.
|
||||
GNUSTEP_PLIST_DEPEND = $(wildcard $(GNUSTEP_INSTANCE)Info.plist)
|
||||
|
||||
# FIXME - xxxInfo.plist in this case is not really a plist!
|
||||
|
||||
$(PALETTE_DIR)/Resources/Info-gnustep.plist: $(PALETTE_DIR)/Resources $(GNUSTEP_PLIST_DEPEND)
|
||||
$(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
|
||||
echo " NSExecutable = \"$(PALETTE_NAME)$(PALETTE_OBJ_EXT)\";"; \
|
||||
if [ -r "$(GNUSTEP_INSTANCE)Info.plist" ]; then \
|
||||
|
@ -129,7 +134,12 @@ $(PALETTE_DIR)/Resources/Info-gnustep.plist: $(PALETTE_DIR)/Resources
|
|||
|
||||
MAIN_MODEL_FILE = $(strip $(subst .gmodel,,$(subst .gorm,,$(subst .nib,,$($(GNUSTEP_INSTANCE)_MAIN_MODEL_FILE)))))
|
||||
|
||||
$(PALETTE_DIR)/Resources/palette.table: $(PALETTE_DIR)/Resources
|
||||
# Depend on xxxpalette.table but only if it exists.
|
||||
PALETTE_TABLE_DEPEND = $(wildcard $(GNUSTEP_INSTANCE)palette.table)
|
||||
|
||||
# FIXME - use stamp.make to depend on the value of the variables
|
||||
# MAIN_MODEL_FILE, PRINCIPAL_CLASS and PALETTE_ICON
|
||||
$(PALETTE_DIR)/Resources/palette.table: $(PALETTE_DIR)/Resources $(PALETTE_TABLE_DEPEND)
|
||||
$(ECHO_CREATING)(echo "{";\
|
||||
echo ' NOTE = "Automatically generated, do not edit!";'; \
|
||||
echo " NibFile = \"$(MAIN_MODEL_FILE)\";"; \
|
||||
|
|
|
@ -23,19 +23,31 @@ ifeq ($(RULES_MAKE_LOADED),)
|
|||
include $(GNUSTEP_MAKEFILES)/rules.make
|
||||
endif
|
||||
|
||||
#
|
||||
# This is used to install a bunch of resource files somewhere. It is
|
||||
# different from a bundle without resources; in a bundle without
|
||||
# resources, we first create the bundle in the build directory, then
|
||||
# copy the build to the install dir, overwriting anything already
|
||||
# there. This instead will install the separate resource files
|
||||
# directly in the installation directory; it's more efficient as it
|
||||
# doesn't create a local bundle, and it doesn't overwrite an existing
|
||||
# bundle in the installation directory.
|
||||
#
|
||||
#
|
||||
# The name of the set of resources is in the RESOURCE_SET_NAME variable.
|
||||
# The list of resource file are in xxx_RESOURCE_FILES
|
||||
# The list of resource files/dirs is in xxx_RESOURCE_FILES
|
||||
# The list of resource directories to create are in xxx_RESOURCE_DIRS
|
||||
# The directory in which to install the resources is in the
|
||||
# xxx_INSTALL_DIR
|
||||
# The directory in which the resources are is in the
|
||||
# xxx_RESOURCE_FILES_DIR (defaults to ./ if omitted)
|
||||
# The list of LANGUAGES is in the xxx_LANGUAGES variable.
|
||||
# The list of localized files to be read from yyy.lproj and copied
|
||||
# The list of localized files/dirs to be read from yyy.lproj and copied
|
||||
# into $(RESOURCE_FILES_INSTALL_DIR)/yyy.lproj for each language yyy
|
||||
# is in the xxx_LOCALIZED_RESOURCE_FILES variable.
|
||||
#
|
||||
# The list of localized dirs to be created empty inside each
|
||||
# $(RESOURCE_FILES_INSTALL_DIR)/yyy.lproj for each language yyy
|
||||
# is in the xxx_LOCALIZED_RESOURCE_DIRS variable.
|
||||
|
||||
.PHONY: internal-resource_set-install_ \
|
||||
internal-resource_set-uninstall_
|
||||
|
@ -63,21 +75,6 @@ ifeq ($(RESOURCE_FILES_INSTALL_DIR),)
|
|||
RESOURCE_FILES_INSTALL_DIR = $(GNUSTEP_RESOURCES)/$(GNUSTEP_INSTANCE)
|
||||
endif
|
||||
|
||||
# Rule to build the installation dir
|
||||
$(RESOURCE_FILES_INSTALL_DIR):
|
||||
$(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
|
||||
|
||||
|
||||
# Determine the additional installation dirs to build
|
||||
RESOURCE_DIRS = $($(GNUSTEP_INSTANCE)_RESOURCE_DIRS)
|
||||
|
||||
ifneq ($(RESOURCE_DIRS),)
|
||||
# Rule to build the additional installation dirs
|
||||
$(addprefix $(RESOURCE_FILES_INSTALL_DIR)/,$(RESOURCE_DIRS)):
|
||||
$(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
|
||||
endif
|
||||
|
||||
|
||||
# Determine the dir to take the resources from
|
||||
RESOURCE_FILES_DIR = $($(GNUSTEP_INSTANCE)_RESOURCE_FILES_DIR)
|
||||
ifeq ($(RESOURCE_FILES_DIR),)
|
||||
|
@ -87,7 +84,23 @@ endif
|
|||
|
||||
# Determine the list of resource files
|
||||
RESOURCE_FILES = $($(GNUSTEP_INSTANCE)_RESOURCE_FILES)
|
||||
RESOURCE_DIRS = $($(GNUSTEP_INSTANCE)_RESOURCE_DIRS)
|
||||
|
||||
ifneq ($(RESOURCE_DIRS),)
|
||||
# Rule to build the additional installation dirs
|
||||
$(addprefix $(RESOURCE_FILES_INSTALL_DIR)/,$(RESOURCE_DIRS)):
|
||||
$(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
|
||||
ifneq ($(CHOWN_TO),)
|
||||
$(ECHO_CHOWNING)$(CHOWN) -R $(CHOWN_TO) $@$(END_ECHO)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Rule to build the installation dir
|
||||
$(RESOURCE_FILES_INSTALL_DIR):
|
||||
$(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
|
||||
ifneq ($(CHOWN_TO),)
|
||||
$(ECHO_CHOWNING)$(CHOWN) -R $(CHOWN_TO) $@$(END_ECHO)
|
||||
endif
|
||||
|
||||
# Determine the list of languages
|
||||
override LANGUAGES = $($(GNUSTEP_INSTANCE)_LANGUAGES)
|
||||
|
@ -95,9 +108,20 @@ ifeq ($(LANGUAGES),)
|
|||
override LANGUAGES = English
|
||||
endif
|
||||
|
||||
|
||||
# Determine the list of localized resource files
|
||||
LOCALIZED_RESOURCE_FILES = $($(GNUSTEP_INSTANCE)_LOCALIZED_RESOURCE_FILES)
|
||||
LOCALIZED_RESOURCE_DIRS = $($(GNUSTEP_INSTANCE)_LOCALIZED_RESOURCE_DIRS)
|
||||
|
||||
ifneq ($(LOCALIZED_RESOURCE_DIRS),)
|
||||
# The following expression will create all the
|
||||
# RESOURCE_FILES_INSTALL_DIR/LANGUAGE/LOCALIZED_RESOURCE_DIR that we
|
||||
# need to build.
|
||||
$(foreach LANGUAGE,$(LANGUAGES),$(addprefix $(RESOURCE_FILES_INSTALL_DIR)/$(LANGUAGE), $(LOCALIZED_RESOURCE_DIRS))):
|
||||
$(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
|
||||
ifneq ($(CHOWN_TO),)
|
||||
$(ECHO_CHOWNING)$(CHOWN) -R $(CHOWN_TO) $@$(END_ECHO)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# We provide two different algorithms of installing resource files.
|
||||
|
@ -108,23 +132,33 @@ ifeq ($(GNUSTEP_DEVELOPER),)
|
|||
# Standard one - just run a subshell and loop, and install everything.
|
||||
internal-resource_set-install_: \
|
||||
$(RESOURCE_FILES_INSTALL_DIR) \
|
||||
$(addprefix $(RESOURCE_FILES_INSTALL_DIR)/,$(RESOURCE_DIRS))
|
||||
$(addprefix $(RESOURCE_FILES_INSTALL_DIR)/,$(RESOURCE_DIRS)) \
|
||||
$(foreach LANGUAGE,$(LANGUAGES),$(addprefix $(RESOURCE_FILES_INSTALL_DIR)/$(LANGUAGE), $(LOCALIZED_RESOURCE_DIRS)))
|
||||
ifneq ($(RESOURCE_FILES),)
|
||||
$(ECHO_NOTHING)for file in $(RESOURCE_FILES) __done; do \
|
||||
if [ $$file != __done ]; then \
|
||||
$(INSTALL_DATA) $(RESOURCE_FILES_DIR)/$$file \
|
||||
$(RESOURCE_FILES_INSTALL_DIR)/$$file; \
|
||||
$(ECHO_NOTHING)for f in $(RESOURCE_FILES); do \
|
||||
if [ -f $$f -o -d $$f ]; then \
|
||||
cp -fr $(RESOURCE_FILES_DIR)/$$f \
|
||||
$(RESOURCE_FILES_INSTALL_DIR)/$$f; \
|
||||
else \
|
||||
echo "Warning: $$f not found - ignoring"; \
|
||||
fi; \
|
||||
done$(END_ECHO)
|
||||
ifneq ($(CHOWN_TO),)
|
||||
$(ECHO_CHOWNING)for f in $(RESOURCE_FILES); do \
|
||||
if [ -f $$f -o -d $$f ]; then \
|
||||
$(CHOWN) -R $(CHOWN_TO) $(RESOURCE_FILES_INSTALL_DIR)/$$f; \
|
||||
fi; \
|
||||
done$(END_ECHO)
|
||||
endif
|
||||
endif
|
||||
ifneq ($(LOCALIZED_RESOURCE_FILES),)
|
||||
$(ECHO_NOTHING)for l in $(LANGUAGES); do \
|
||||
if [ -d $$l.lproj ]; then \
|
||||
$(MKINSTALLDIRS) $(RESOURCE_FILES_INSTALL_DIR)/$$l.lproj; \
|
||||
for f in $(LOCALIZED_RESOURCE_FILES); do \
|
||||
if [ -f $$l.lproj/$$f ]; then \
|
||||
$(INSTALL_DATA) $$l.lproj/$$f \
|
||||
$(RESOURCE_FILES_INSTALL_DIR)/$$l.lproj; \
|
||||
if [ -f $$l.lproj/$$f -o -d $$l.lproj/$$f ]; then \
|
||||
cp -fr $$l.lproj/$$f \
|
||||
$(RESOURCE_FILES_INSTALL_DIR)/$$l.lproj; \
|
||||
else \
|
||||
echo "Warning: $$l.lproj/$$f not found - ignoring"; \
|
||||
fi; \
|
||||
|
@ -133,16 +167,34 @@ ifneq ($(LOCALIZED_RESOURCE_FILES),)
|
|||
echo "Warning: $$l.lproj not found - ignoring"; \
|
||||
fi; \
|
||||
done$(END_ECHO)
|
||||
ifneq ($(CHOWN_TO),)
|
||||
$(ECHO_CHOWNING)for l in $(LANGUAGES); do \
|
||||
if [ -d $$l.lproj ]; then \
|
||||
$(CHOWN) -R $(CHOWN_TO) $(RESOURCE_FILES_INSTALL_DIR)/$$l.lproj; \
|
||||
for f in $(LOCALIZED_RESOURCE_FILES); do \
|
||||
if [ -f $$l.lproj/$$f -o -d $$l.lproj/$$f ]; then \
|
||||
$(CHOWN) -R $(CHOWN_TO) $(RESOURCE_FILES_INSTALL_DIR)/$$l.lproj/$$f; \
|
||||
fi; \
|
||||
done; \
|
||||
fi; \
|
||||
done$(END_ECHO)
|
||||
endif
|
||||
endif
|
||||
|
||||
else # Following code turned on by setting GNUSTEP_DEVELOPER=YES in the shell
|
||||
|
||||
# TODO/FIXME: Update the code; implement proper
|
||||
# LOCALIZED_RESOURCE_FILES that also allows directories etc.
|
||||
|
||||
.PHONY: internal-resource-set-install-languages
|
||||
|
||||
# One optimized for recurrent installations during development - this
|
||||
# rule installs a single file only if strictly needed
|
||||
$(RESOURCE_FILES_INSTALL_DIR)/% : $(RESOURCE_FILES_DIR)/%
|
||||
$(ECHO_NOTHING)$(INSTALL_DATA) $< $@$(END_ECHO)
|
||||
$(ECHO_NOTHING)cp -fr $< $(RESOURCE_FILES_DIR)$(END_ECHO)
|
||||
ifneq ($(CHOWN_TO),)
|
||||
$(ECHO_CHOWNING)$(CHOWN) -R $(CHOWN_TO) $@$(END_ECHO)
|
||||
endif
|
||||
|
||||
# This rule depends on having installed all files
|
||||
internal-resource_set-install_: \
|
||||
|
|
|
@ -92,11 +92,22 @@ ifeq ($(GNUSTEP_MAKE_SERVICES),)
|
|||
GNUSTEP_MAKE_SERVICES = make_services
|
||||
endif
|
||||
|
||||
# Depend on xxxInfo.plist but only if it exists.
|
||||
GNUSTEP_PLIST_DEPEND = $(wildcard $(GNUSTEP_INSTANCE)Info.plist)
|
||||
|
||||
ifeq ($(GNUSTEP_PLIST_DEPEND),)
|
||||
$(warning Service $(GNUSTEP_INSTANCE) missing $(GNUSTEP_INSTANCE)Info.plist)
|
||||
endif
|
||||
|
||||
# FIXME - xxxInfo.plist in this case is not really a plist!
|
||||
|
||||
$(SERVICE_DIR)/Resources/Info-gnustep.plist: \
|
||||
$(SERVICE_DIR)/Resources $(GNUSTEP_INSTANCE)Info.plist
|
||||
$(SERVICE_DIR)/Resources $(GNUSTEP_PLIST_DEPEND)
|
||||
$(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
|
||||
echo " NSExecutable = \"$(GNUSTEP_INSTANCE)\";"; \
|
||||
cat $(GNUSTEP_INSTANCE)Info.plist; \
|
||||
if [ -r "$(GNUSTEP_INSTANCE)Info.plist" ]; then \
|
||||
cat $(GNUSTEP_INSTANCE)Info.plist; \
|
||||
fi; \
|
||||
echo "}") >$@ ;\
|
||||
if $(GNUSTEP_MAKE_SERVICES) --test $@; then : ; else rm -f $@; false; \
|
||||
fi$(END_ECHO)
|
||||
|
|
|
@ -290,7 +290,15 @@ if [ "$($(basename $(basename $*))_SUBPROJECTS)" != "" ]; then \
|
|||
if [ "$$type" = "framework" ]; then \
|
||||
if [ "$(FRAMEWORK_VERSION_SUPPORT)" = "yes" ]; then \
|
||||
framework_version="$($(basename $(basename $*))_CURRENT_VERSION_NAME)"; \
|
||||
if [ "$$framework_version" = "" ]; then framework_version="A"; fi; \
|
||||
if [ "$$framework_version" = "" ]; then \
|
||||
framework_version="$($(basename $(basename $*))_INTERFACE_VERSION)"; \
|
||||
if [ "$$framework_version" = "" ]; then \
|
||||
framework_version="$(word 1,$(subst ., ,$($(basename $(basename $*))_VERSION)))"; \
|
||||
if [ "$$framework_version" = "" ]; then \
|
||||
framework_version="0.0"; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi; \
|
||||
owning_project_header_dir="../$${instance}.framework/Versions/$${framework_version}/Headers"; \
|
||||
else \
|
||||
owning_project_header_dir="../$${instance}.framework/Headers"; \
|
||||
|
@ -357,7 +365,15 @@ if [ "$($(basename $(basename $*))_SUBPROJECTS)" != "" ]; then \
|
|||
if [ "$$type" = "framework" ]; then \
|
||||
if [ "$(FRAMEWORK_VERSION_SUPPORT)" = "yes" ]; then \
|
||||
framework_version="$($(basename $(basename $*))_CURRENT_VERSION_NAME)"; \
|
||||
if [ "$$framework_version" = "" ]; then framework_version="A"; fi; \
|
||||
if [ "$$framework_version" = "" ]; then \
|
||||
framework_version="$($(basename $(basename $*))_INTERFACE_VERSION)"; \
|
||||
if [ "$$framework_version" = "" ]; then \
|
||||
framework_version="$(word 1,$(subst ., ,$($(basename $(basename $*))_VERSION)))"; \
|
||||
if [ "$$framework_version" = "" ]; then \
|
||||
framework_version="0.0"; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi; \
|
||||
owning_project_header_dir="../$${instance}.framework/Versions/$${framework_version}/Headers"; \
|
||||
else \
|
||||
owning_project_header_dir="../$${instance}.framework/Headers"; \
|
||||
|
|
2
Version
2
Version
|
@ -4,7 +4,7 @@
|
|||
# The version number of this release.
|
||||
GNUSTEP_MAKE_MAJOR_VERSION=1
|
||||
GNUSTEP_MAKE_MINOR_VERSION=98
|
||||
GNUSTEP_MAKE_SUBMINOR_VERSION=1
|
||||
GNUSTEP_MAKE_SUBMINOR_VERSION=2
|
||||
GNUSTEP_MAKE_VERSION=${GNUSTEP_MAKE_MAJOR_VERSION}.${GNUSTEP_MAKE_MINOR_VERSION}.${GNUSTEP_MAKE_SUBMINOR_VERSION}
|
||||
|
||||
|
||||
|
|
|
@ -517,7 +517,8 @@ CFLAGS =
|
|||
# If the compiler supports native ObjC exceptions and the user wants us to
|
||||
# use them, turn them on!
|
||||
ifeq ($(USE_OBJC_EXCEPTIONS), yes)
|
||||
OBJCFLAGS += -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS
|
||||
OBJCFLAGS += -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS
|
||||
INTERNAL_LDFLAGS += -shared-libgcc -fexceptions
|
||||
endif
|
||||
|
||||
#
|
||||
|
|
9
configure
vendored
9
configure
vendored
|
@ -2780,7 +2780,7 @@ case $host_os in
|
|||
MSWIND=yes;;
|
||||
*mingw32* )
|
||||
MINGW32=yes
|
||||
CYGWIN=yes
|
||||
CYGWIN=no
|
||||
MSWIND=yes;;
|
||||
* )
|
||||
MINGW32=no
|
||||
|
@ -4555,7 +4555,10 @@ if test x"$USE_OBJC_EXCEPTIONS" = x"yes"; then
|
|||
echo "$as_me:$LINENO: result: no: compiler isn't gcc" >&5
|
||||
echo "${ECHO_T}no: compiler isn't gcc" >&6
|
||||
else
|
||||
CFLAGS="$CFLAGS -fobjc-exceptions"
|
||||
CFLAGS_no_exceptions="$CFLAGS"
|
||||
LIBS_no_exceptions="$LIBS"
|
||||
CFLAGS="$CFLAGS -fexceptions -fobjc-exceptions"
|
||||
LIBS="$LIBS -shared-libgcc -fexceptions"
|
||||
if test "$cross_compiling" = yes; then
|
||||
{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
|
||||
See \`config.log' for more details." >&5
|
||||
|
@ -4609,6 +4612,8 @@ rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftes
|
|||
fi
|
||||
echo "$as_me:$LINENO: result: $USE_OBJC_EXCEPTIONS" >&5
|
||||
echo "${ECHO_T}$USE_OBJC_EXCEPTIONS" >&6
|
||||
CFLAGS="$CFLAGS_no_exceptions"
|
||||
LIBS="$LIBS_no_exceptions"
|
||||
fi
|
||||
if test x$USE_OBJC_EXCEPTIONS = xno; then
|
||||
{ echo "$as_me:$LINENO: Native objective-c exceptions were requested, but the compiler" >&5
|
||||
|
|
|
@ -120,7 +120,7 @@ case $host_os in
|
|||
MSWIND=yes;;
|
||||
*mingw32* )
|
||||
MINGW32=yes
|
||||
CYGWIN=yes
|
||||
CYGWIN=no
|
||||
MSWIND=yes;;
|
||||
* )
|
||||
MINGW32=no
|
||||
|
@ -1053,7 +1053,10 @@ if test x"$USE_OBJC_EXCEPTIONS" = x"yes"; then
|
|||
USE_OBJC_EXCEPTIONS=no
|
||||
AC_MSG_RESULT(no: compiler isn't gcc)
|
||||
else
|
||||
CFLAGS="$CFLAGS -fobjc-exceptions"
|
||||
CFLAGS_no_exceptions="$CFLAGS"
|
||||
LIBS_no_exceptions="$LIBS"
|
||||
CFLAGS="$CFLAGS -fexceptions -fobjc-exceptions"
|
||||
LIBS="$LIBS -shared-libgcc -fexceptions"
|
||||
AC_RUN_IFELSE([[
|
||||
#include <stdlib.h>
|
||||
#include <objc/Object.h>
|
||||
|
@ -1075,6 +1078,8 @@ int main(int argc, char **argv)
|
|||
}
|
||||
]], USE_OBJC_EXCEPTIONS=yes, USE_OBJC_EXCEPTIONS=no)
|
||||
AC_MSG_RESULT($USE_OBJC_EXCEPTIONS)
|
||||
CFLAGS="$CFLAGS_no_exceptions"
|
||||
LIBS="$LIBS_no_exceptions"
|
||||
fi
|
||||
if test x$USE_OBJC_EXCEPTIONS = xno; then
|
||||
AC_MSG_NOTICE([Native objective-c exceptions were requested, but the compiler])
|
||||
|
|
Loading…
Reference in a new issue