[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ANN: Build Guide version 2.0.0
From: |
Nicola Pero |
Subject: |
Re: ANN: Build Guide version 2.0.0 |
Date: |
Wed, 5 Dec 2007 17:21:53 +0100 (CET) |
>> GNUSTEP_*_ROOT variables obsolete with gnustep-make 2.x? Some projects
>> have bugs in their makefiles because the way variables are used have
>> changed over time, and it would help if the build guide didn't
>> encourage use of legacy variables.
>
> yes and no. True if they where not needed, but since I make the users
> compile everything in /usr/GNUstep there needs to be some way to tell
> where everything is. So there are two approaches (imho):
>
> 1) Set PATH and LD_LIBRARY_PATH (ld.so.conf is linux specific afaik and
> I don't know all the options for other flavours of unix).
>
> 2) source GNUstep.sh and have it that solve the problem.
Dennis, your plan looks very good :-)
I imagine Truls was referring to your startup scripts where you use
GNUSTEP_SYSTEM_ROOT and other variables that are considered obsolete
in gnustep-make v2.0 ... you may want to make your scripts more robust
(and more future-proof, not to talk encouraging new users/developers
to use the new, more powerful and general variables) by replacing these
with non-obsolete variables. ;-)
Eg, if you want to run gdomap, instead of
$GNUSTEP_SYSTEM_ROOT/Tools/gdomap
you can now simply do
$GNUSTEP_SYSTEM_TOOLS/gdomap
In fact, what about just doing 'gdomap' ? If you source GNUstep.sh, gdomap
will be in your PATH so there is nothing to do (unless you are trying to
avoid conflicting with an existing 'gdomap' on the system ?). :-)
Anyhow, I'm including here the entire 'RELEASENOTES' file from gnustep-make
v2.0.
Have a look and see if it helps you. Remember that even if you are using and
recommending the gnustep-layout (which is a very nice layout!) we're trying to
move everyone to the situation where the same software/scripts/etc. will work
on all types of layout that GNUstep supports. So it's important to update to
use the new variables ;-)
Thanks
=== RELEASE NOTES FROM GNUSTEP-MAKE v2.0 ===
Version 2.0.0 is a new major release of gnustep-make which includes a
number of major changes compared to previous 1.x releases. Most of the
changes are backwards compatible in the sense that old GNUmakefiles
will work with gnustep-make version 1 or 2 when used in the same
conditions (traditional GNUstep filesystem layout). But GNUmakefiles
might need updating to work with the new filesystem layout
configurations that are allowed by gnustep-make version 2.
`GNUSTEP_INSTALLATION_DIR'
This variable is deprecated in gnustep-make version 2; you should
never use it. gnustep-make version 2 supports installation domains
that are mapped to filesystem locations in arbitrary ways; for this
reason, specifying a GNUSTEP_INSTALLATION_DIR no longer makes
sense. If you need to relocate the whole installation (for
example, installing into /tmp to prepare a binary package) you
should use DESTDIR, as in 'make install DESTDIR=/tmp'. To choose
an installation domain, you should use
GNUSTEP_INSTALLATION_DOMAIN, as in 'make install
GNUSTEP_INSTALLATION_DOMAIN=LOCAL'. It's particularly important
that you remove any reference to GNUSTEP_INSTALLATION_DIR inside
your own GNUmakefiles.
If your GNUmakefiles contains references to
GNUSTEP_INSTALLATION_DIR (or similar), you should remove them by
replacing them with references to the actual logical directory
into which you want to install. For example, if your GNUmakefile
is trying to install something into
GNUSTEP_INSTALLATION_DIR/Library/Libraries, you need to replace it
with GNUSTEP_LIBRARIES. This is important for non-GNUstep
filesystem layouts (where, eg, GNUSTEP_LIBRARIES should be set to
/usr/lib or /usr/local/lib or
/home/nicola/GNUstep/Library/Libraries depending on the
installation domain); in that case, gnustep-make will manage
GNUSTEP_LIBRARIES for you. Please check the file `filesystem' for
more information on the available variables.
`GNUSTEP_xxx_ROOT'
The variables GNUSTEP_SYSTEM_ROOT, GNUSTEP_LOCAL_ROOT,
GNUSTEP_NETWORK_ROOT, GNUSTEP_USER_ROOT and GNUSTEP_ROOT are
deprecated in gnustep-make version 2 and you should never use them.
gnustep-make version 2 supports installation domains that are
mapped to filesystem locations in arbitrary ways; for this reason,
a variable like GNUSTEP_SYSTEM_ROOT has no longer any use.
If your GNUmakefiles contains references to GNUSTEP_SYSTEM_ROOT (or
similar), you should remove them by replacing them with references
to the actual logical directory into which you want to install.
For example, if your GNUmakefile is trying to install something
into GNUSTEP_SYSTEM_ROOT/Library/Libraries, you need to replace it
with GNUSTEP_SYSTEM_LIBRARIES. Please check the file `filesystem'
for more information on the available variables.
`gnustep-make ./configure and install options'
The options to configure (and make install), particularly the ones
to determine the filesystem layout, have been radically changed in
gnustep-make version 2. If you have a building or packaging script
for gnustep-make, you need to make sure you replace your old
./configure options with the new ones. In particular, the
-with-system-root, -with-local-root and -with-network-root
configure options have been replaced by the more powerful
-with-layout configure option. Also, configure no longer imports
an existing configuration file so you need to make sure that you
pass all the options every time. 'make install
special_prefix=xxx' has been replaced by 'make install
DESTDIR=xxx'.
`make debug=yes is now the default'
The default used to be 'make debug=no'; this has now been changed
to be 'make debug=yes'. To get the traditional behaviour, please
use 'make debug=no'.
`RPM support rewritten'
The RPM support has been rewritten so if you're using gnustep-make
to automatically generate RPM packages for your software, you may
want to review the process. In particular, there is no longer a
distinction between debug and non-debug packages.
`xxx_PREPROCESS_INFO_PLIST'
This variable is now obsolete and can be removed; gnustep-make
version 2 can automatically detect plists that need preprocessing.
`Framework default version'
The default framework resource version changed from 'A' to
INTERFACE_VERSION (which is set, by default, to '0').
`Microsoft Windows updates'
If you are using Microsoft Windows, you probably want to check the
new installation instructions and reinstall everything.
`Java tools location changed'
Java tools are now installed into GNUSTEP_JAVA rather than in a
subdirectory of GNUSTEP_TOOLS.
`resource-set.make install directory'
The variable xxx_RESOURCE_FILES_INSTALL_DIR for resource-set.make
has been deprecated in favour of xxx_INSTALL_DIR. For backwards
compatibility, you may want to set them both:
xxx_INSTALL_DIR = $(GNUSTEP_LIBRARY)/Libraries/Resources/xxx
xxx_RESOURCE_FILES_INSTALL_DIR = /Library/Libraries/Resources/xxx
`INSTALL_ROOT_DIR'
All instances of INSTALL_ROOT_DIR in user's makefiles should be
replaced with DESTDIR.
`GNUSTEP_FLATTENED'
All checks for GNUSTEP_FLATTENED should be updated to check the new
variable GNUSTEP_IS_FLATTENED instead, and to compare it
explicitly to 'yes' and 'no', and assume that " means 'yes'.
`./shared_obj'
The ./shared_obj, ./shared_debug_obj directories and similar are
no longer created. You can use ./obj instead.
`library names'
All libraries now have the same name.
`application names'
All applications now have the same name.