--- /dev/null
+config.log
+config.make
+config.cache
+which_lib
+user_home
+GNUmakefile
+GNUstep.sh
+GNUstep.csh
+config.h
+config.status
+openapp
+debugapp
+executable.template
+opentool
+gnustep-make.spec
+fixpath.sh
--- /dev/null
+Announcement
+************
+
+The GNUstep Makefile Package version 1.10.0 is now available.
+
+What is the GNUstep makefile package?
+=====================================
+
+The makefile package is a simple, powerful and extensible way to write
+makefiles for a GNUstep-based project. It allows the user to write a
+project without having to deal with the complex issues associated with
+configuration, building, installation, and packaging. It also allows
+the user to easily create cross-compiled binaries.
+
+Changes in version `1.10.0'
+===========================
+
+ * a GNUsteprc file is now automatically created and installed in
+ $GNUSTEP_SYSTEM_ROOT, which sets the system-wide default for the
+ user root directory (default=~/GNUstep, which can be overriden
+ with the `--with-user-root' argument to configure, or by modifying
+ GNUsteprc after configuration.)
+
+ * make_services is not run by GNUstep.sh anymore. You must run this
+ manually now (see the gnustep-gui documentation).
+
+ * Palettes use a plist instead of a strings format file now for the
+ palette.table file.
+
+ * You can use the `--enable-native-objc-exceptions' argument to
+ configure to enable use of built in objc exceptions with compilers
+ that support it.
+
+Obtaining gnustep-make
+======================
+
+You can get the gstep-make-1.10.0.tar.gz distribution file at
+<ftp://ftp.gnustep.org/pub/gnustep/core>
+
+ Please log bug reports on the GNUstep project page
+<http://savannah.gnu.org/bugs/?group=gnustep> or send bug reports to
+<bug-gnustep@gnu.org>.
+
--- /dev/null
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+\f
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+\f
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
--- /dev/null
+2004-09-07 Adam Fedor <fedor@gnu.org>
+
+ * Version 1.10.0
+
+Tue Sep 7 12:48:31 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make (SHARED_LIB_LINK_CMD): Removed -prebind flag.
+
+2004-09-06 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Don't reset LIB_DIR.
+
+2004-09-03 Adam Fedor <fedor@gnu.org>
+
+ * Add missing GNUsteprc.in
+
+Fri Sep 3 21:52:00 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.ac: Recognize --with-user-root option and store
+ the configuration into the system GNUsteprc.
+ * configure: Regenerated.
+ * GNUsteprc.in: New file.
+ * GNUmakefile.in (install): Install the system GNUsteprc into
+ GNUSTEP_SYSTEM_ROOT. (uninstall): Uninstall the same file.
+ (distclean): Remove GNUsteprc.
+ * user_home.c: Do not segfault if the environment variable
+ GNUSTEP_SYSTEM_ROOT is not set when the tool is executed.
+
+Thu Sep 02 17:01:11 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * tar-exclude-list: New file currently containing CVS and .svn.
+ * GNUmakefile.in: Install the new file.
+ * Instance/Shared/bundle.make: Modified TAR commands to exclude
+ files listed in the tar-exclude-list file.
+ * Instance/framework.make: Same changes.
+ * Instance/gswbundle.make: Same changes.
+ * Instance/Documentation/autogsdoc.make: Same changes.
+ * Instance/Documentation/javadoc.make: Same changes.
+ * Instance/Documentation/latex.make: Same changes.
+
+Tue Aug 31 16:21:41 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/library.make: If xxx_INTERFACE_VERSION or xxx_SOVERSION
+ is set, but xxx_VERSION is not set, guess xxx_VERSION by taking
+ xxx_INTERFACE_VERSION and appending .0.
+
+2004-08-24 Quentin Mathe <qmathe@club-internet.fr>
+
+ * ld_lib_path.sh:
+ * ld_lib_path.csh:
+ Added comments to explain why we set DYLD_FRAMEWORK_PATH on Darwin with
+ any library combo and not just apple-apple-apple (it is a temporary
+ solution).
+
+2004-08-24 Adam Fedor <fedor@gnu.org>
+
+ * GNUstep.sh.in: Add newline at end of file (avoids bug in Solaris
+ sed).
+
+Fri Aug 20 02:26:12 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Documentation/install.texi (Single-User): Removed mention of
+ FORCE_USER_ROOT which is going to be dropped in next releases.
+
+Fri Aug 20 02:19:54 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in: Do not run make_services.
+ * GNUstep.csh.in: Do not run make_services.
+
+2004-08-07 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Remove warning about moving old directories into
+ new directory structure (been there since 1.7.0).
+
+2004-07-31 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Add checks for specific Apple compiler flags.
+ * target.make (darwin): Use them. Don't add no-cpp-precomp flag
+ when compiling with Apple compiler.
+
+ * Documentation/README.Darwin: Minor fixes (Patch from
+ lars.sonchocky-helldorf@hamburg.de).
+
+ * Master/source-distribution.make: Add CVS_TAG_NAME variable.
+
+2004-07-11 Gregory John Casamento <greg_casamento@yahoo.com>
+
+ * Instance/palette.make: Updated the palette.make to create
+ a plist instead of a string format file for the palette.table.
+ It's necessary for the the palette.table to be able to pass in
+ a set of classes to be imported.
+
+2004-07-09 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Improve compiler type test.
+ * Documentation/gnustep.init: Fix template parsing rules.
+º
+2004-07-04 Adrian Robert <arobert@cogsci.ucsd.edu>
+
+ * Instance/Documentation/texi.make:
+ Added rules to use texi2pdf to generate PDF doc, and replace PS by PDF
+ in the default generate/install/uninstall rules. Add <instance>.html
+ to the list of files installed/uninstalled for HTML.
+
+2004-06-23 01:47 Alexander Malmberg <alexander@malmberg.org>
+
+ * common.make, config.make.in: Rename HAS_OBJC_EXCEPTIONS to
+ USE_OBJC_EXCEPTIONS.
+ * configure.ac: Same. Also add --enable-native-objc-exceptions
+ argument and make the test for this feature stricter.
+ * configure: Rebuild.
+
+Fri Jun 19 13:01:02 2004 Nicola Pero <n.pero@mi.flashnet.it>,
+ Yves de Champlain <yves@gnu-darwin.org>
+
+ * target.make (EXTRACT_CLASS_NAMES_COMMAND): New variable, with
+ special value for darwin.
+ * Instance/framework.make: Use the new variable when building
+ the list of classes in the framework.
+
+Fri Jun 18 18:49:16 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.ac: Detect native exception handler support in the
+ compiler, and set HAS_OBJC_EXCEPTIONS to yes if it's there.
+ * configure: Regenerated.
+ * config.make.in: New variable HAS_OBJC_EXCEPTIONS.
+ * common.make: If HAS_OBJC_EXCEPTIONS is set, add
+ -fobjc-exceptions to the ObjC flags.
+
+2004-06-16 Adam Fedor <fedor@gnu.org>
+
+ * GNUmakefile (distclean): Remove duplicate GNUmakefile removal
+ Don't remove Documentation/GNUmakefile
+
+ * Documentation/machines.texi: Update
+
+ * Instance/resource-set.make (internal-resource_set-uninstall_):
+ Remove directories after removing files.
+
+Tue Jun 15 09:49:16 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in: Detect if we're running under zsh, and if so, if
+ the shwordsplit option is not set, set it for the duration of the
+ script, then restore it to its original value at the end. This
+ seems to fix setting the paths on zsh.
+
+2004-06-14 Adam Fedor <fedor@gnu.org>
+
+ * GNUmakefile.in (uninstall): Remove all installed files (still
+ need to do directories).
+
+2004-06-09 Adam Fedor <fedor@gnu.org>
+
+ * Version 1.9.2
+ * Documentation/GNUmakefile: Include ../Version
+ * Documentation/README.Cygwin: minor updates.
+ * Documentation/gnustep-howto.texi, Documentation/machines.texi: Update
+
+2004-06-05 Adam Fedor <fedor@gnu.org>
+
+ * ld_lib_path.[c]sh: Allow seting of GNUstep framework location on
+ Mac OS X for all library combos (patch from Quentin Mathe
+ <gnustep-quentin@club-internet.fr>).
+
+ * Instance/application.make ($(APP_INFO_PLIST_FILE)): Don't fail
+ if plmerge does not work.
+
+ * Documentation/README.Cygwin: Update
+ * Documentation/machines.texi: Add Mac OS X section.
+ * Documentation/news.texi: Update.
+
+Tue Jun 1 15:43:45 BST 2004 Riccardo Mottola <rollei@tiscalinet.it>
+
+ * debugapp.in (appname): Fixed escaping of --args argument to work
+ with an alien grep / os.
+
+2004-05-17 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Instance/Documentation/autogsdoc.make: Simplify rules. Avoid
+ dependency on existence of documentation subdirectory by relying on
+ new autogsdoc feature (it now creates the subdirectory if necessary).
+ This prevents possible recursion in make process.
+
+2004-05-07 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Master/rules.make: Pass 'operation' to instances in
+ 'GNUSTEP_OPERATION'
+ * Instance/Documentation/autogsdoc.make: Use 'GNUSTEP_OPERATION'
+
+Thu Apr 29 15:54:17 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Documentation/autogsdoc.make
+ (GNUSTEP_INSTANCE/dependencies): Only include this file when the
+ operation is 'all'.
+ (internal-doc-clean): Do not run autogsdoc here.
+ (internal-doc-distclean): Rule removed. No longer needed, as the
+ previous changes should do the real fix.
+
+Thu Apr 29 14:04:61 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Documentation/autogsdoc.make (internal-doc-distclean):
+ Added rule, to make sure a 'make distclean' actually cleans.
+
+2004-04-27 Adam Fedor <fedor@gnu.org>
+
+ * clean_os.sh: Report netbsd1.6* and netbsd2* as netbsdelf.
+
+Tue Apr 20 10:27:16 2004 Matt Rice <ratmice@yahoo.com>
+
+ * target.make: Use the GNU/Linux ELF code for GNU/Hurd too.
+
+2004-04-12 Adam Fedor <fedor@gnu.org>
+
+ * common.make (GNUSTEP_FRAMEWORKS_FLAGS): Add missing close paren.
+
+ * clean_os.sh: Add netbsd1.6Z
+
+ * Documentation/GNUmakefile (GNUSTEP_TEXI2HTML_FLAGS): Add.
+ * Documentation/gnustep.init: Some updates.
+ * Documentation/announce.texi: Fix bug url.
+ * Documentation/gnustep-howto.texi: Add more dependancy explanations.
+ * Documentation/machines.texi: Add FreeBSD 5.x.
+
+2004-04-02 David Ayers <d.ayers@inode.at>
+
+ * GNUstep-reset.sh: Unset DYLD_LIBRARY_PATH and
+ DYLD_FRAMEWORK_PATH.
+ * common.make: Mark as makefile for emacs. Add support for
+ setting GNUSTEP_FRAMEWORKS_DIRS and GNUSTEP_FRAMEWORKS_FLAGS
+ for apple-apple-apple.
+ * ld_lib_path.(c)sh: Set DYLD_FRAMEWORK_PATH for
+ apple-apple-apple.
+ * rules.make: Added support for GNUSTEP_FRAMEWORKS_FLAGS.
+
+Wed Mar 31 11:46:03 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/bundle.make: Use ALL_LDFLAGS when running DLLWRAP on
+ windows.
+ * Instance/framework.make: Similar change.
+ * Instance/palette.make: Similar change.
+
+Wed Mar 31 11:44:21 2004 Willem Rein Oudshoorn <woudshoo@xs4all.nl>
+
+ * Instance/library.make: Use ALL_LDFLAGS when running DLLWRAP on
+ windows.
+
+2004-03-31 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Instance/Documentation/autogsdoc.make: Make doc subdirectory if
+ necessary.
+
+2004-03-31 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * jni.make: Add support for MacOS-X ... use the java 1.3.1 headers
+ fromt the JavaVM framework.
+
+Tue Mar 30 02:44:21 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Documentation/filesystem.texi: Clarify the differences between
+ the Local domain and System domain, clearly state that the default
+ installation directory of software should be the Local domain, and
+ mention that the Network domain is now optional and disabled by
+ default. Other minor clarifications and tidyups.
+
+Tue Mar 30 02:01:59 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Documentation/make.texi (PACKAGE_NAME, PACKAGE_VERSION): Updated
+ documentation.
+
+Mon Mar 29 12:58:34 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (MAJOR_VERSION): Variable removed.
+ (MINOR_VERSION): Variable removed.
+ (SUBMINOR_VERSION): Variable removed.
+ (VERSION): Variable removed.
+ * Instance/framework.make (VERSION): Set VERSION from xxx_VERSION
+ if available. Use 0.0.1 as default.
+ * Instance/library.make (VERSION): Similar changes.
+
+Mon Mar 29 12:41:58 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rules.make (PACKAGE_NAME): Set it here; set it to
+ unnamed-package if not set.
+ (PACKAGE_VERSION): Set it to 0.0.1 if not set.
+ * Master/source-distribution.make (PACKAGE_NAME): Do not set it
+ here.
+
+Mon Mar 29 12:19:38 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Version: Do not define VERSION.
+
+Mon Mar 29 12:19:38 2004 Matt Rice <ratmice@yahoo.com>
+
+ * Master/source-distribution.make: Strip whitespaces from
+ PACKAGE_NAME.
+
+2004-03-28 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Instance/Documentation/autogsdoc.make: Correct dependency
+ information so that documentation is regenerated when needed.
+
+2004-03-28 David Ayers <d.ayers@inode.at>
+
+ * Documentation/make.texi: Document native-library.make.
+ Capitalize acronyms.
+
+2004-03-23 David Ayers <d.ayers@inode.at>
+
+ * Documentation/make.texi: Spelling fixes.
+
+Thu Mar 18 12:57:40 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Documentation/GNUmakefile: New file using standard gnustep-make
+ to build the documentation. If there is no available gnustep-make
+ installation, it creates a local/temporary one, and uses it.
+ * Documentation/GNUmakefile.in: Removed.
+ * Documentation/makerules.make: Removed.
+ * Documentation/makedoc.make: Removed.
+ * configure.ac: Do not generate Documentation/GNUmakefile.
+ * configure: Regenerated.
+
+2004-03-17 Adam Fedor <fedor@gnu.org>
+
+ * Instance/palette.make: Link palatte to all libs on Windows
+ and Apple/two-level-namespaces. Similar to bundles.
+ (patch from Marc Ordinas i Llopis <lists@tragnarion.com>).
+
+Mon Mar 15 13:57:50 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in: Fixed installation of strip_makefiles.sh when
+ using a different build directory.
+
+Thu Mar 11 18:36:59 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/gswapp.make: Rewritten to use the new
+ Instance/Shared/bundle.make, so that for example subprojects with
+ resources now should be possible.
+
+Thu Mar 11 02:26:20 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/gswapp.make: Do not create library_paths.openapp on
+ Apple. ($(GNUSTEP_INSTANCE).iconheader): Rule removed.
+
+2004-03-09 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/GNUMakefile.in (GNUSTEP_TEXI2HTML_FLAGS): Add
+ init_file flag
+
+ * Documentation/README.MinGW: Update library locations.
+
+Tue Mar 9 17:28:37 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.ac: Make by default GNUSTEP_NETWORK_ROOT the same as
+ GNUSTEP_LOCAL_ROOT. This has the effect of disabling
+ GNUSTEP_NETWORK_ROOT by default, which is very rarely used - if
+ ever, and simplifying paths and flags.
+ * configure: Regenerated.
+
+Tue Mar 9 17:25:16 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_HEADERS_DIRS, GNUSTEP_LIBRARIES_DIRS,
+ GNUSTEP_HEADER_FND_DIRS): Rewritten the code creating the list of
+ -I and -L flags to pass to the compiler and linker so that if two
+ GNUSTEP_XXX_ROOT are the same, the flags are added only once.
+
+Tue Mar 9 17:21:34 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: Removed stale debugging statement.
+
+Tue Mar 9 17:05:38 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_HEADERS_FND_DIRS): Only set these flags
+ when libFoundation is used. In the standard case, we no longer
+ add the -Ixxx/Headers/gnustep/ flags.
+ * library-combo.make (GNUSTEP_FND_DIR): Do not define.
+ * rules.make (ALL_OBJCFLAGS): Removed GNUSTEP_HEADERS_FND_FLAG.
+ (ALL_CFLAGS): Same change.
+
+Tue Mar 9 16:58:50 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (ALL_OBJCFLAGS): Removed GNUSTEP_HEADERS_GUI_FLAG,
+ which is defined nowhere.
+ (ALL_CFLAGS): Same change.
+
+Mon Mar 8 13:52:43 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/application.make ($(APP_FILE)): Do not create the
+ library_paths.openapp file on Apple.
+
+Mon Mar 8 13:20:38 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * openapp.in: On Apple, look for the executable in the new location.
+ * debugapp.in: On Apple, look for the executable in the new
+ location. Also, removed obsolete nextstep support code.
+
+2004-03-07 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/machines.texi: Updates, add URL's for README's.
+
+Sun Mar 7 15:22:37 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Updated application and bundle file structure on Apple to the
+ latest Apple conventions.
+ * Instance/application.make (APP_FILE_NAME): On Apple, create it
+ as xxx.app/Contents/MacOS/xxx. ($(APP_FILE)): Put the
+ library_paths.openapp file inside xxx.app/Contents.
+ ($(APP_DIR)/Contents/MacOS): New rule on Apple replacing the rule
+ to create xxx.app (GNUSTEP_STAMP_DIR): On Apple, use
+ xxx.app/Contents as directory in which to create the stamp.make
+ file. (internal-app-all_): On Apple, create the
+ xxx.app/Contents/MacOS directory instead of xxx.app.
+ * Instance/bundle.make (BUNDLE_FILE_NAME): On Apple, create it as
+ xxx.bundle/Contents/MacOS/xxx. (build-bundle): On Apple, depend on
+ creating the xxx.bundle/Contents/MacOS directory rather than the
+ xxx.bundle/library-combo one. (GNUSTEP_STAMP_DIR): On Apple, use
+ xxx.bundle/Contents as directory for stamp.make.
+ ($(GNUSTEP_STAMP_DIR)): On Apple, updated rule for new setup.
+ ($(BUNDLE_DIR)/Contents/MacOS): New rule on Apple replacing the
+ xxx.bundle/Contents one.
+
+2004-03-4 Quentin Mathe <qmathe@club-internet.fr>
+
+ * Documentation/README.Darwin: Minor improvements.
+
+Thu Mar 4 13:06:22 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make (xxx_DEPLOY_WITH_CURRENT_VERSION):
+ Variable renamed to xxx_MAKE_CURRENT_VERSION.
+ (update-current-symlink): New optional rule, executed only if
+ MAKE_CURRENT_VERSION is yes, to create the symlink from Current to
+ the current version.
+ (build-framework-dirs): Moved code into the new rule.
+ (xxx.framework/xxx): On Apple, build the symlink xxx.framework/xxx
+ to the current instance only when MAKE_CURRENT_VERSION is yes.
+
+Thu Mar 4 12:09:27 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make (SOVERSION): Variable removed, replaced
+ with INTERFACE_VERSION. Made xxx_INTERFACE_VERSION available for
+ frameworks too exactly as it happens for libraries.
+
+Thu Mar 4 11:36:41 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/library.make (INTERFACE_VERSION): New variable.
+ xxx_SOVERSION has been renamed to xxx_INTERFACE_VERSION, which
+ will be used consistently by frameworks too, and not only for the
+ .so names. Backwards compatibility code for xxx_SOVERSION
+ included.
+
+Thu Mar 4 10:41:21 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/bundle.make (internal-bundle-copy_into_dir): New rule.
+ (.PHONY): Added internal-bundle-copy_into_dir.
+ * Instance/palette.make (internal-palette-copy_into_dir): New
+ rule. (.PHONY): Added internal-palette-copy_into_dir.
+ * Instance/service.make (internal-service-copy_into_dir): New
+ rule. (.PHONY): Added internal-service-copy_into_dir.
+
+2004-02-28 Adam Fedor <fedor@gnu.org>
+
+ * Version 1.9.1
+ * Documentation/announce.texi, readme.texi, install.texi, news.texi:
+ Update.
+
+2004-02-28 Quentin Mathe <qmathe@club-internet.fr>
+
+ * Documentation/README.Darwin: Update with the detailed and
+ complete installation process on Mac OS X And Darwin (with the
+ help of Nicolas Roard).
+
+2004-02-23 Adam Fedor <fedor@gnu.org>
+
+ * user_home.c (main): Fix check for space in home dir, issue
+ warning if space found (Suggestion from Sheldon Gill).
+
+Wed Feb 18 16:57:46 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.ac: Removed --enable-import / --disable-import option.
+ * common.make (OBJCFLAGS): Do not add OBJC_NO_IMPORT.
+ * config.make.in (OBJC_NO_IMPORT): Removed.
+ * configure: Regenerated.
+ * Documentation/userfaq.texi: Removed mention of --enable-import.
+
+2004-02-11 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/README.Darwin: Update (from Lars Sonchocky-Helldorf).
+
+ * Documentation/GNUMakefile (GNUSTEP_TEXI2HTML_FLAGS): Add init_file
+ flag
+ * Documentation/gnustep.init: texi2html init file.
+
+2004-02-07 Adam Fedor <fedor@gnu.org>
+
+ * Instance/framework.make: Simplify search for framework location
+ and change order to prevent problems in obscure case where GNUstep
+ is installed in user's home.
+
+ * Documentation/machines.texi (cygwin): Update link.
+
+2004-01-25 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/README.Darwin: Update.
+
+2004-01-21 Adam Fedor <fedor@gnu.org>
+
+ * clean_os.sh: Add darwin7
+ * target.make (darwin/SHARED_LD_PREFLAGS): Remove -arch_only. Add
+ -single_module on darwin7
+ (darwin/DYLIB_EXTRA_FLAGS): Idem.
+ * Documentation/README.Darwin: New file.
+
+2004-01-18 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/gnustep-howto.texi: Add gui image libs.
+ * Documentation/install.texi: Update info on #import.
+ * Documentation/userfaq.texi: Idem.
+ * Documentation/machines.texi: Update Darwin compiler.
+
+Fri Jan 16 17:01:55 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/bundle.make: Recognize xxx_INSTALL_DIR and use it if
+ set.
+ * Instance/clibrary.make: Same change.
+ * Instance/ctool.make: Same change.
+ * Instance/framework.make: Same change.
+ * Instance/gswbundle.make: Same change.
+ * Instance/java.make: Same change.
+ * Instance/library.make: Same change.
+ * Instance/objc.make: Same change.
+ * Instance/palette.make: Same change.
+ * Instance/service.make: Same change.
+ * Instance/tool.make: Same change.
+
+2004-01-15 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Add check for Apple cc
+ * config.make.in: Add CC_TYPE
+ * target.make (darwin): Use it instead of OBJC_COMPILER.
+
+ * Documentation/machines.texi: Update
+
+Wed Jan 14 18:59:25 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rpm.make: Use PACKAGE_VERSION instead of VERSION.
+ * Master/source-distribution.make: Use PACKAGE_VERSION instead of
+ VERSION.
+
+ * Master/rules.make: Set PACKAGE_VERSION from VERSION if
+ PACKAGE_VERSION is not set, for backwards compatibility.
+
+Mon Jan 12 12:45:56 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: If a framework is being compiled with shared=no,
+ print a warning and use shared=yes instead.
+
+Mon Jan 12 11:47:00 2004 Jeff Teunissen <deek@d2dc.net>,
+ Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make (SHARED_LIB_LINK_CMD, AFTER_INSTALL_SHARED_LIB_CMD):
+ Do not remove LIB_LINK_SONAME_FILE and do not create the symlink
+ LIB_LINK_SONAME_FILE --> LIB_LINK_VERSION_FILE if
+ LIB_LINK_SONAME_FILE and LIB_LINK_VERSION_FILE are equal, which
+ happens for example if you use 'A' as version.
+
+2004-01-05 David Ayers <d.ayers@inode.at>
+
+ * Instance/framework.make (internal-framework-uninstall_):
+ Remove symlinks in $(GNUSTEP_LIBRARIES).
+
+Mon Jan 5 00:33:00 2004 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make (build-framework-dirs): Replaced test -L
+ with test -h because test -L does not work on some old Sun Solaris.
+
+2003-12-29 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/gnustep-howto.texi: Update.
+ * Documentation/machines.texi: Idem.
+
+Fri Dec 26 17:40:23 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * debugapp.in: Iterate over command line arguments to be able to
+ process more than one of them at the same time. Added
+ --gdb=... command line flag. Documented it.
+
+2003-11-3- Richard Frith-Macdonald <rfm@gnu.org>
+
+ * user_home.c: Use name of current user under unix (rather than
+ environment variables etc).
+
+Fri Nov 28 19:07:11 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (ADDITIONAL_OBJC_LIBS): Fixed bug in the
+ implementation of ADDITIONAL_NATIVE_LIBS on gnu.
+
+Tue Nov 25 12:23:20 2003 Manuel Guesdon <ml@orange-concept.com>
+
+ * Instance/Shared/bundle.make
+ (shared-instance-bundle-all-localized-webresources): Fixed syntax
+ error.
+
+2003-11-13 David Ayers <d.ayers@inode.at>
+
+ * Instance/framework.make: Remove symlink.
+
+Sat Nov 8 22:41:03 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make: Use $(ALL_LDFLAGS) when linking shared stuff.
+ Otherwise there is no way to add linker flags when libraries and
+ frameworks are linked. Change applied to all shared link commands
+ on all platforms.
+
+Sat Nov 8 16:40:59 2003 Matt Rice <ratmice@yahoo.com>
+
+ * Documentation/DESIGN: Updated makefiles location.
+ * Documentation/README.MinGW: Updated makefiles location. Added
+ comment on buggy 'ln -s' on mingw.
+ * Documentation/README.Cygwin: Updated makefiles location.
+ * Documentation/README.NetBSD: Updated makefiles location.
+ * Documentation/install.texi: Updated makefiles location.
+ * Documentation/machines.texi: Updated makefiles location.
+ * Documentation/make.texi: Updated makefiles location, use
+ GNUSTEP_MAKEFILES variable.
+
+Mon Nov 3 23:48:41 2003 Marcus Muller <znek@mulle-kybernetik.com>
+
+ * target.make (SHARED_LIB_LINK_CMD): Use -prebind flag on Apple.
+ * Instance/framework.make (DYLIB_INSTALL_NAME_BASE): New variable.
+ (LIB_LINK_INSTALL_NAME): Define using DYLIB_INSTALL_NAME_BASE if
+ it was set.
+
+Mon Nov 3 23:34:56 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (ADDITIONAL_INCLUDE_DIRS): Do not add -framework
+ flags from ADDITIONAL_NATIVE_LIBS.
+
+Mon Nov 3 23:30:47 2003 Marcus Muller <znek@mulle-kybernetik.com>
+
+ * library-combo.make (INTERNAL_OBJCFLAGS): Do not add -framework
+ Foundation and -framework AppKit for Apple.
+
+Mon Nov 3 23:25:07 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make (build-framework): Do not build
+ Info-gnustep.plist on Apple.
+
+Mon Nov 3 11:50:30 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make (FRAMEWORK_LIBRARY_FILE_EXT): Unused
+ variable removed.
+ * Instance/framework.make (FRAMEWORK_FILE_EXT): Unused variable
+ removed.
+
+Fri Oct 31 17:16:51 2003 Matt Rice <ratmice@yahoo.com>
+
+ * config.make.in (HAS_LN_S): Set to no for mingw32.
+
+2003-10-25 00:50 Alexander Malmberg <alexander@malmberg.org>
+
+ * debugapp.in: Only pass --args to gdb if its new enough to handle
+ it. Based on patch from Ian Jones.
+
+Fri Oct 24 15:54:41 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Documentation/texi.make (internal-doc-clean): Remove
+ $(GNUSTEP_INSTANCE).html.
+
+2003-10-20 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Add 2.57 prereq, subst OBJCFLAGS
+ * config.make.in (OBJCFLAGS): New
+
+Mon Oct 20 15:02:22 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * cpu.sh: Simplified code by removing unused echo command.
+ * os.sh: Same change.
+ * vendor.sh: Same change.
+
+Mon Oct 20 14:49:03 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make (internal-framework-distclean): Delete
+ from GNUSTEP_BUILD_DIR.
+
+Mon Oct 20 14:44:57 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Write the list of classes belonging to a framework into the
+ framework's Info-gnustep.plist too.
+ * Instance/framework.make (DUMMY_FRAMEWORK_CLASS_LIST): New
+ variable.
+ ($(DUMMY_FRAMEWORK_FILE)): Build a classarray list of classes in
+ the framework, and store it in $DUMMY_FRAMEWORK_CLASS_LIST.
+ (Info-gnustep.plist): Add a Classes key/value. Depend on
+ DUMMY_FRAMEWORK_FILE.
+
+2003-10-19 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/gnustep-howto.texi: Updates, clearer instructions.
+ * Documenation/machines.texi, Documentation/userfaq.texi: Idem.
+
+Sun Oct 19 16:09:46 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * native-library.make: New file.
+ * GNUmakefile.in: Install native-library.make.
+ * Instance/rules.make (ADDITIONAL_NATIVE_LIBS): Set from
+ xxx_NATIVE_LIBS.
+ * rules.make: Implemented ADDITIONAL_NATIVE_LIBS.
+
+Sun Oct 19 15:43:50 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/library.make (LIBRARY_NAME_WITH_LIB): New variable.
+ Use it in place of GNUSTEP_INSTANCE whenever lib{library-name} is
+ expected. With this change, LIBRARY_NAME can now include or not
+ the 'lib' prefix, and everything should work in both cases.
+
+Wed Oct 15 17:02:30 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/tool.make (internal-distclean): Fixed typo causing it not
+ to work.
+ * Master/test-tool.make (internal-distclean): Same change.
+
+Wed Oct 15 10:55:58 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure: Regenerated using autoconf 2.57 instead of 2.53.
+
+2003-10-14 Adam Fedor <fedor@gnu.org>
+
+ * common.make: Simplify common GNUstep dirs.
+
+Tue Oct 14 01:07:22 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Implemented support for building in a build directory outside the
+ source tree. Not supported for Java and doc yet.
+ * common.make (GNUSTEP_BUILD_DIR): New variable.
+ (GNUSTEP_OBJ_DIR_NAME): New variable.
+ (GNUSTEP_OBJ_DIR): Define using GNUSTEP_BUILD_DIR.
+ * rules.make (DERIVED_SOURCES_DIR): New variable.
+ (DERIVED_SOURCES_HEADERS_FLAG): Check using
+ OWNING_PROJECT_HEADER_DIR_NAME instead of
+ OWNING_PROJECT_HEADER_DIR.
+ ($(GNUSTEP_BUILD_DIR)): New rule to create GNUSTEP_BUILD_DIR.
+ ($(GNUSTEP_OBJ_DIR)): Modified the rule to create
+ GNUSTEP_OBJ_DIR_NAME inside GNUSTEP_BUILD_DIR.
+ * Master/aggregate.make: Pass GNUSTEP_BUILD_DIR to submake
+ invocations.
+ * Master/rules.make (all): Depend on creating GNUSTEP_BUILD_DIR
+ if any is specified.
+ (ABS_GNUSTEP_BUILD_DIR): New variable - compute if needed.
+ (%.variables, %.subprojects): Pass GNUSTEP_BUILD_DIR to submake
+ invocations; pass OWNING_PROJECT_DIR_NAME rather than
+ OWNING_PROJECT_DIR to submake invocations.
+ * Master/application.make: Modified all clean targets to clean
+ in GNUSTEP_BUILD_DIR.
+ * Master/bundle.make: The same.
+ * Master/clibrary.make: The same.
+ * Master/ctool.make: The same.
+ * Master/gswapp.make: The same.
+ * Master/gswbundle.make: The same.
+ * Master/library.make: The same.
+ * Master/objc.make: The same.
+ * Master/palette.make: The same.
+ * Master/rules.make: The same.
+ * Master/service.make: The same.
+ * Master/subproject.make: The same.
+ * Master/test-application.make: The same.
+ * Master/test-library.make: The same.
+ * Master/test-tool.make: The same.
+ * Master/tool.make: The same.
+ * Instance/application.make: Modified all code as required to
+ implement the new functionality.
+ * Instance/bundle.make: The same.
+ * Instance/framework.make: The same.
+ * Instance/gswapp.make: The same.
+ * Instance/gswbundle.make: The same.
+ * Instance/library.make: The same.
+ * Instance/palette.make: The same.
+ * Instance/rules.make: The same.
+ * Instance/service.make: The same.
+ * Instance/Shared/bundle.make: The same.
+
+Tue Oct 14 00:34:57 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/library.make (DERIVED_SOURCES): Do not define here;
+ it's already defined in rules.make.
+
+Mon Oct 13 23:23:40 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/bundle.make (internal-bundle-install_): Fixed error
+ when installing with strip=yes a bundle without object file.
+
+Mon Oct 13 15:53:43 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.ac: Added configure option --enable-strip-makefiles;
+ substitute @GNUSTEP_STRIP_MAKEFILES@ in output.
+ * configure: Regenerated.
+ * GNUmakefile.in (install): Install strip_makefiles.sh;
+ execute it if --enable-strip-makefiles.
+ * strip_makefiles.sh: New file.
+
+Mon Oct 13 15:07:53 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/java.make (.PHONY): Removed line continuation in
+ excess.
+
+Mon Oct 13 13:56:00 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/palette.make: Tidied up the way in which code was
+ commented.
+
+Mon Oct 13 13:09:53 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/application.make (internal-clean): Do the entire
+ clean in a single shell command.
+ * Master/gswapp.make (internal-clean): Same change.
+ * Master/palette.make (internal-clean): Same change.
+ * Master/service.make (internal-clean): Same change.
+ * Master/test-application.make (internal-clean): Same change.
+
+Mon Oct 13 12:55:50 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/application.make (internal-distclean): Do not remove
+ .iconheader files, no longer used.
+ * Master/gswapp.make (internal-clean, internal-distclean): Do not
+ remove .iconheader files.
+ (internal-clean): Obsolete code removed.
+ * Master/service.make (internal-clean): Same changes.
+ * Master/test-application.make (internal-clean,
+ internal-disclean): Same changes.
+ * Instance/gswapp.make: Removed obsolete iconheader code.
+
+Mon Oct 13 12:25:50 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/palette.make (internal-clean): Remove objects inside
+ .palette on clean.
+ (internal-distclean): Remove *.palette and similar on distclean
+ without performing a recursive make invocation.
+ * Instance/palette.make (internal-palette-distclean_): Removed.
+
+ * Master/service.make (internal-distclean): Remove *.service and
+ similar on distclean without performing a recursive make
+ invocation.
+ * Instance/service.make (internal-service-distclean_): Removed.
+
+Sun Oct 12 18:43:20 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/subproject.make (internal-subproject-clean): Fixed typo
+ - it was removing non-existing DLL_DEF_IMP instead of DLL_DEF_INP.
+
+Sun Oct 12 18:29:49 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/palette.make: Use Instance/Shared/bundle.make to
+ install and uninstall.
+ * Instance/service.make: Same changes.
+
+Sun Oct 12 13:09:12 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make ($(GNUSTEP_OBJ_DIR)): Use ECHO_NOTHING.
+
+2003-10-09 Adam Fedor <fedor@gnu.org>
+
+ * Correct problem where *bsd lib flags were not getting used.
+ * configure.ac: Use LIB_DIR not LDFLAGS
+ * config.make.in (CONFIG_SYSTEM_LIB_DIR): New var for LIB_DIRs
+ * library-combo.make (SYSTEM_LIB_DIR): Use it.
+
+2003-10-05 Adam Fedor <fedor@gnu.org>
+
+ * Version: Bump to 1.8.90
+
+2003-10-04 Adam Fedor <fedor@gnu.org>
+
+ * GNUmakefile.in (dist): Remove
+ * Documentation/machines.texi: Doc updates.
+ * Documentation/faq.texi, Documentattion/userfaq.texi: Idem.
+
+2003-09-29 Adam Fedor <fedor@gnu.org>
+
+ * Simplify use of user-defined flags.
+ * configure.ac: USE LDFLAGS not LIBS. Leave CPPFLAGS alone
+ * common.make (INTERNAL_LDFLAGS): Don't add LDFLAGS
+ * library-combo.make (SYSTEM_LDFLAGS): Add LDFLAGS.
+ * config.make.in (CONFIG_SYSTEM_DEFS): Remove.
+
+ * Documentation/faq.texi: Update answers.
+
+2003-09-27 Adam Fedor <fedor@gnu.org>
+
+ * target.make (darwin/BUNDLE_LDFLAGS): Supress warnings
+ * Documentation/machines.texi: Update darwin.
+
+2003-09-26 Adam Fedor <fedor@gnu.org>
+
+ * Version 1.8.0 released on branch.
+
+2003-09-25 Adam Fedor <fedor@gnu.org>
+
+ * target.make (darwin): Fix up bundle flags for GNU compiler.
+
+2003-09-19 Leigh Smith <leigh@leighsmith.com>
+
+ * library.make: Changed the full .inp declaration to $(DLL_DEF_INP).
+
+2003-09-15 Adam Fedor <fedor@gnu.org>
+
+ * Version: Add VERSION
+ * gnustep-make.spec.in: Update packager.
+
+Sun Sep 7 12:43:59 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * config.site: Fixed Headers directory, it is now in Library/.
+
+Wed Sep 3 10:29:26 2003 Matt Rice <ratmice@yahoo.com>,
+ Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/library.make: Removed ADDITIONAL_INSTALL_DIRS code.
+ * Instance/rules.make: Implemented support for
+ ADDITIONAL_INSTALL_DIRS.
+ * common.make (GNUSTEP_APPLICATION_SUPPORT): New variable.
+
+2003-08-23 Adam Fedor <fedor@gnu.org>
+
+ * Version 1.7.3
+
+2003-08-22 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: On netbsd, Use -Wl to pass linker options.
+
+2003-08-05 Martin Brecher <martin@mb-itconsulting.com>
+ * Documentation/openapp.1: New file.
+ * Documentation/GNUstep.7: Updated. File is now unprocessed.
+
+2003-08-07 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Instance/Documentation/autogsdoc.make: Rewrite dependency rules
+ to avoid regeneration of documentation when we are going to clean.
+ Also, use autogsdoc -Clean argument to get all files.
+
+Wed Jul 30 09:52:16 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make (BUNDLE_LDFLAGS): openbsd: use -fPIC instead of
+ -fpic to match the -fPIC flag used when compiling as recommended
+ by the gcc manual.
+
+Tue Jul 29 12:06:02 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.ac: If flattened, add library combo to headers
+ directory.
+ * configure: Regenerated.
+ * config.site (includedir): If flattened, add library combo.
+ * GNUmakefile.in (MAYBE_LIBRARY_COMBO): Define.
+ Export GNUSTEP_TARGET_DIR, GNUSTEP_TARGET_LDIR and
+ MAYBE_LIBRARY_COMBO.
+ * create_domain_dir_tree.sh: Use MAYBE_LIBRARY_COMBO when creating
+ the headers dir.
+ * common.make (GNUSTEP_HEADERS): Define using library combo if
+ not flattened.
+ (GNUSTEP_HEADERS_DIRS): Use library combo if not flattened.
+
+Mon Jul 28 11:49:18 2003 Pete French <pete@twisted.org.uk>
+
+ * Instance/application.make (MAIN_MARKUP_FILE): New variable.
+ * Instance/application.make (GNUSTEP_STAMP_STRING): Include
+ MAIN_MARKUP_FILE in the stamp string.
+ * Instance/application.make ($(APP_INFO_PLIST_FILE)): Set
+ GSMarkupMainFile to MAIN_MARKUP_FILE in the info dictionary.
+
+Mon Jul 28 10:59:21 2003 Pete French <pete@twisted.org.uk>
+
+ * rules.make (%.plist): Filter the result through sed to drop #pragma
+ statements.
+
+2003-07-23 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Instance/Documentation/autogsdoc.make: put stamp file in
+ documentation subdirectory so it gets removed properly with 'clean'
+
+2003-07-22 Adam Fedor <fedor@gnu.org>
+
+ * Version 1.7.2
+
+2003-07-22 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * user_home.c: Use HOMEPATH in preference to USERPROFILE for
+ OPENSTEP compatibility and because USERPROFILE generally doesn't
+ work due to the presence of spaces.
+ * messages.make: Make documentation generation less verbose.
+ * Instance/Documentation/autogsdoc.make: ditto
+ Also use autogsdoc -MakeDependencies to avoid unnecessary
+ regeneration of documentation.
+
+2003-07-21 Adam Fedor <fedor@gnu.org>
+
+ * target.make: Set thread library in AUXILIARY_OBJC_LIBS. Set
+ reentrant flags for all targets if threaded. Remove duplicates.
+
+
+ * Documentation/README.MinGW: Updated for default flattened
+ structure.
+ * Documentation/gnustep-howto.texi: Idem.
+
+Mon Jul 21 10:42:42 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * debugapp.in: Detect core files with name core.xxx, not just
+ core, as found on some gnu-linux systems. Improved user
+ prompting.
+
+Mon Jul 21 10:31:08 2003 Andrew Ruder <aeruder@ksu.edu>
+
+ * debugapp.in: Pass debugapp arguments to gdb to use when running
+ the application.
+
+Wed Jul 16 09:46:16 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make (INTERNAL_OBJCFLAGS): On darwin with library-combo
+ apple-apple-apple, use -no-cpp-precomp rather than
+ -traditional-cpp.
+
+Wed Jul 9 16:28:14 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.ac: Made flattened directory structure the default.
+ Explicitly print a message saying if we use flattened or
+ non-flattened directory structure.
+ * configure: Regenerated.
+
+2003-07-06 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Remove '^' match from gcc version sed script.
+
+2003-07-05 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Add flags for openbsd like freebsd.
+
+2003-07-05 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/GNUmakefile.in (after-install): gzip man files
+ * Documentation/GNUstep.7: Unziped.
+
+2003-07-05 Adam Fedor <fedor@gnu.org>
+
+ * clean_os.sh: Clean netbsdelf.
+ * configure.ac: Add -R flags for netbsdelf
+ * target.make (netbsd/ADDITONAL_LDFLAGS): Idem.
+ (Patches from Peter Cooper <comrade@obverse.com.au>
+
+2003-06-29 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * user_home.c: Cast all arguments to isspace() as int ... for picky
+ compiler versions.
+
+2003-06-25 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/GNUmakefile.in (after-install): Install man pages
+ * Documentation/GNUstep.7.gz: New file (from Martin Brecher).
+
+Wed Jun 25 15:47:46 2003 Tom Koelman <tkoelman@xs4all.nl>
+
+ * Instance/subproject.make (subproject.def): Depend on DLL_DEF_INP.
+
+2003-06-21 Adam Fedor <fedor@gnu.org>
+
+ * Instance/Documentation/autogsdoc.make: If not BASE_MAKE_LOADED
+ print a better error message about needing to install GNUstep-base
+ first.
+
+2003-06-20 Adam Fedor <fedor@gnu.org>
+
+ * Version 1.7.1
+
+2003-06-18 Adam Fedor <fedor@gnu.org>
+
+ * target.make (openbsd): Enable shared libs, use -fPIC not -fpic.
+
+2003-06-17 Adam Fedor <fedor@gnu.org>
+
+ * Instance/Documentation/texi.make: Don't abort make if
+ texi programs aren't available. Don't install if files not made.
+
+2003-06-16 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Add option to disable moving obsolete dirs
+ * GNUmakefile.in: Update for change.
+
+2003-06-15 Adam Fedor <fedor@gnu.org>
+
+ * target.make (openbsd/SHARED_LIB_LINK_CMD): Use gcc to link
+ the library.
+
+2003-06-11 Adam Fedor <fedor@gnu.org>
+
+ * move_obsolete_paths.sh: Don't remove the Developer dir.
+
+2003-06-06 Adam Fedor <fedor@gnu.org>
+
+ * target.make (openbsd/OBJ_MERGE_CMD): Add.
+
+2003-06-05 Adam Fedor <fedor@gnu.org>
+
+ * config_thread.m: More complete thread test.
+ * configure.ac: Add runtime based on RUNTIME_LIB
+
+2003-06-03 Adam Fedor <fedor@gnu.org>
+
+ * target.make (darwin/BUNDLE_LD): Use libtool
+ (darwin/AFTER_INSTALL_SHARED_LIB_CMD): Link to the LIB_LINK_FILE
+ as well.
+
+Tue Jun 3 11:51:02 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Documentation/autogsdoc.make (internal-doc-install_):
+ Fixed typo - added missing ";".
+
+2003-06-02 18:16 Alexander Malmberg <alexander@malmberg.org>
+
+ * Instance/Documentation/autogsdoc.make (internal-doc-install_):
+ Add a missing "\" line continuation.
+
+ (internal-doc-uninstall_): Add an $(END_ECHO) to balance the
+ echoing.
+
+Mon Jun 2 10:21:11 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (install): Only create the symlink Makefiles -->
+ Library/Makefiles if symbolic links are available. (Problems
+ reported by Matt Rice).
+
+Sat May 31 09:13:07 2003 Matt Rice <ratmice@yahoo.com>,
+ David Ayers <d.ayers@inode.at>
+
+ * Instance/gswapp.make (internal-gswapp-install_): Fixed typo:
+ removed excess bracket.
+
+Fri May 30 23:28:55 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (OBJC_FLAGS): Added -fno-strict-aliasing.
+
+2003-05-29 Adam Fedor <fedor@gnu.org>
+
+ * target.make (TARGET_SYSTEM_LIBS): Remove -ldl (added when necessary
+ by gnustep-base).
+
+Wed May 28 09:47:42 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make: Use test -r instead of test -f to check
+ that a file, which might be a symlink, exists.
+ * Instance/framework.make (internal-framework-install_): Always remove
+ the old symlinks without checking.
+
+Tue May 27 16:52:27 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Documentation/javadoc.make (internal-doc-install_): Fixed line breaking
+ typo.
+
+Tue May 27 13:21:57 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/objc.make: Remove old deprecation warning.
+ * Instance/tool.make: The same.
+
+Tue May 27 13:12:59 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/application.make: Use ECHO_NOTHING in commands which
+ were using @ or printing the command.
+ * Instance/documentation.make: The same.
+ * Instance/framework.make: The same.
+ * Instance/gswapp.make: The same.
+ * Instance/java-tool.make: The same.
+ * Instance/library.make: The same.
+ * Instance/palette.make: The same.
+ * Instance/resource-set.make: The same.
+ * Instance/service.make: The same.
+ * Instance/subproject.make: The same.
+ * Instance/Documentation/autogsdoc.make: The same.
+ * Instance/Documentation/gsdoc.make: The same.
+ * Instance/Documentation/javadoc.make: The same.
+ * Instance/Documentation/latex.make: The same.
+ * Instance/Documentation/texi.make: The same.
+ * Instance/Shared/java.make: The same.
+
+ * Instance/ctool.make (internal-ctool-uninstall_): Use ECHO_UNINSTALLING.
+ * Instance/document.make (internal-textdoc-uninstall_): The same.
+ * Instance/framework.make (internal-framework-uninstall_): The same.
+ * Instance/gswapp.make (internal-gswapp-uninstall_): The same.
+ * Instance/gswbundle.make (internal-gswbundle-uninstall_): The same.
+ * Instance/java-tool.make (internal-java_tool-uninstall_): The same.
+ * Instance/library.make (internal-library-uninstall_): The same.
+ * Instance/objc.make (internal-objc-uninstall_): The same.
+ * Instance/service.make (internal-service-uninstall_): The same.
+ * Instance/Documentation/autogsdoc.make (internal-doc-uninstall_): The same.
+ * Instance/Documentation/gsdoc.make (internal-doc-uninstall_): The same.
+ * Instance/Documentation/install_files.make (internal-doc-uninstall_): The same.
+ * Instance/Documentation/javadoc.make (internal-doc-uninstall_): The same.
+ * Instance/Documentation/latex.make (internal-doc-uninstall_): The same.
+
+ * Instance/gswbundle.make (internal-gswbundle-install_): Use ECHO_INSTALLING.
+ * Instance/Documentation/autogsdoc.make (internal-doc-install_): The same.
+ * Instance/Documentation/gsdoc.make (internal-doc-install_): The same.
+ * Instance/Documentation/install_files.make (internal-doc-install_): The same.
+ * Instance/Documentation/javadoc.make (internal-doc-install_): The same.
+
+ * Instance/gswapp.make: Use ECHO_CREATING when building the
+ various files.
+ * Instance/subproject.make: Use ECHO_CREATING when building the
+ DLL_DEF_INP file.
+
+Tue May 27 12:04:38 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * messages.make (ECHO_CHOWNING, ECHO_STRIPPING): New variables.
+
+ * Instance/service.make (internal-service-install_):
+ * Instance/application.make: Use them.
+ * Instance/bundle.make: Use them.
+ * Instance/framework.make: Use them.
+ * Instance/gswapp.make: Use them.
+ * Instance/gswbundle.make: Use them.
+ * Instance/java-tool.make: Use them.
+ * Instance/palette.make: Use them.
+ * Instance/service.make: Use them.
+ * Instance/Shared/bundle.make: Use them.
+ * Instance/Documentation/autogsdoc.make: Use them.
+ * Instance/Documentation/javadoc.make: Use them.
+
+Tue May 27 11:45:41 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make (build-framework-dirs): Merge contiguous
+ commands into single subshell.
+
+Tue May 27 11:36:06 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/application.make: Use ECHO_CREATING when building the
+ .plist files.
+ * Instance/bundle.make: Same
+ * Instance/framework.make: Same.
+ * Instance/gswbundle.make: Same.
+ * Instance/palette.make: Same.
+ * Instance/service.make: Same.
+
+ * Instance/application.make: Use ECHO_CREATING when building the
+ .desktop file.
+ * Instance/framework.make ($(DUMMY_FRAMEWORK_FILE)): Use
+ ECHO_CREATING when building the internal framework class file.
+
+Tue May 27 11:22:44 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/application.make: Use ECHO_CREATING when running MKDIRS
+ or MKINSTALLDIRS.
+ * Instance/bundle.make: The same.
+ * Instance/ctool.make: The same.
+ * Instance/documentation.make: The same.
+ * Instance/framework.make: The same.
+ * Instance/gswapp.make: The same.
+ * Instance/gsbundle.make: The same.
+ * Instance/library.make: The same.
+ * Instance/objc.make: The same.
+ * Instance/palette.make: The same.
+ * Instance/resource-set.make: The same.
+ * Instance/rules.make: The same.
+ * Instance/service.make: The same.
+ * Instance/subproject.make: The same.
+ * Instance/test-library.make: The same.
+ * Instance/tool.make: The same.
+ * Instance/Documentation/autogsdoc.make: The same.
+ * Instance/Documentation/texi.make: The same.
+
+ * Instance/gswapp.make (internal-gswapp-install_): Use ECHO_INSTALLING.
+
+Tue May 27 11:08:52 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * messages.make (ECHO_UNINSTALLING): New variable.
+ (ECHO_PREPROCESSING): Added missing definition in case
+ messages=yes.
+
+Tue May 27 11:00:59 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * messages.make (ECHO_CREATING, ECHO_NOTHING): New variables.
+ * Instance/Shared/bundle.make: Use them.
+ * Instance/Shared/headers.make: Same.
+ * Instance/Shared/java.make: Same.
+ * Instance/Shared/stamp-string.make: Same.
+
+Tue May 27 10:54:36 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/ctool.make: Old deprecation warning removed.
+
+Tue May 27 10:02:46 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * relative_path.sh: Added code to normalize input paths by
+ removing /./ components before using them.
+
+2003-05-19 Adam Fedor <fedor@gnu.org>
+
+ * Version 1.7.0
+ * Documentation/news.texi: Updated
+
+ * configure.ac: On some systems, check for thread libraries
+ in different order.
+
+Thu May 15 10:30:55 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (generated-files): Added fixpath.sh.
+ (fixpath.sh): New rule.
+
+Wed May 14 16:19:02 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * transform_paths.sh: Quote paths.
+
+Wed May 14 16:15:16 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * debugapp.in: Added more strict quoting of paths everywhere.
+ * executable.template.in: Idem.
+ * openapp.in: Idem.
+ * opentool.in: Idem.
+
+Fri May 9 12:22:24 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Documentation/install.texi (Flat Structure): Fixed typo.
+ (Reported by Lele Gaifax <lele@seldati.it>).
+
+Tue May 6 11:30:19 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/bundle.make (shared-instance-bundle-all):
+ Reverted last change for resource files, but not localized
+ resource files.
+
+Mon May 5 00:52:20 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/bundle.make (shared-instance-bundle-all): Fixed
+ copying resource files and localized resource files into the
+ bundle when they are in subdirs.
+
+2003-05-02 Adam Fedor <fedor@gnu.org>
+
+ * common.make (GNUSTEP_PALLETES): Put in ApplicationSupport/Palettes
+ * move_obsolete_paths.sh: Remove Developer dir.
+ * Documentat/GNUmakefile.in: Install docs in Library/Documentation
+
+2003-04-28 Nicola Pero <nicola@nicola.brainstorm.co.uk>
+
+ * Instance/resource-set.make (RESOURCE_FILES_FULL_INSTALL_DIR): Reverted
+ last change. This file is of general use, not just for libraries.
+
+2003-04-27 Adam Fedor <fedor@gnu.org>
+
+ * New filesystem structure.
+ Use @MAKEFILE_SUFFIX@ instead of Makefiles.
+ Replace $GNUSTEP_SYSTEM_ROOT/Makefiles with $GNUSTEP_MAKEFILES
+ Replace Libraries with Library/Libraries
+ Replace Headers with Library/Headers
+ Replace Documentation with Library/Documentation
+ * GNUmakefile.in, GNustep.csh.in, common.make, config.site,
+ debugapp.in, executable.template.in, gnustep-make.spec.in,
+ java-executable.template, ld_lib_path.csh, ld_lib_path.sh,
+ opentool.in, relative_path.sh, setlocaltz.sh,
+ spec-debug-alone-rules.template, spec-debug-rules.template,
+ spec-rules.template, target.make, which_lib.c, gswbundle.make,
+ java.make, test-library.make: Idem.
+ * configure.ac (MAKEFILES_SUFFIX): Define to Library/Makefiles
+ * create_domain_dir_tree.sh: Add additional Library dirs.
+ * resource-set.make (RESOURCE_FILES_FULL_INSTALL_DIR): Use
+ $(GNUSTEP_RESOURCES), not $(GNUSTEP_INSTALLATION_DIR).
+ * move_obsolete_paths.sh: New file used in installation
+
+Fri Apr 25 17:02:55 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.csh.in: Use the grep -v trick to make sure that
+ GUILE_LOAD_PATH is not increased if the paths to add are already
+ there in the variable.
+
+ * ld_lib_path.csh: Similar change/fix for all paths.
+
+2003-04-24 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/filesystem.texi: Clarify Local installation
+ rights, Remove Network/{Server,Users}.
+
+Wed Apr 23 09:18:07 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * config.make.in (CPP): Added. (GENERAL_CPP): Removed.
+ * rules.make (ALL_CPLISTFLAGS): Added -x c -traditional.
+ (%.plist): Use CPP, not GENERAL_CPP.
+
+Tue Apr 22 16:11:14 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (%.c): New rules to generate .c files from .l files
+ using lex and from .y files using yacc.
+
+Tue Apr 22 15:27:02 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.csh.in: Quote all values of setenv, set, source calls.
+
+Mon Apr 14 12:59:23 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Implemented support for preprocessed Info.plists in applications.
+ * config.make.in (GENERAL_CPP): New variable.
+ * rules.make (ALL_CPLISTFLAGS): New flags.
+ (%.plist): Added rule to generate %.plist from %.cplist by running
+ the preprocessor.
+ * messages.make (ECHO_PREPROCESSING): New message.
+ * Instance/application.make: If xxx_PREPROCESS_INFO_PLIST is set
+ to yes in the user makefile, automatically depend on
+ xxxInfo.plist, which is then automatically generated from
+ xxxInfo.cplist.
+ * Master/application.make (_PLIST_INFO_FILES): New variable.
+ (internal-clean): Remove info plist files generated by the
+ preprocessor.
+
+Fri Apr 11 12:38:44 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (install): Bug fix - install fixpath.sh from the
+ local directory, not from the source directory.
+
+Sun Apr 6 02:25:07 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (install): Bug fix - install GNUstep-reset.sh
+ from the source directory, not from the local directory.
+
+Mon Mar 31 18:43:07 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make (build-framework-dirs): Do not create
+ the symlink from inside derived_src to the headers if there are no
+ headers; remove the file before creating the symlink.
+
+2003-03-23 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Merged 1.6.0 branch changes in
+
+Mon Mar 10 12:51:20 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make: Disable all built-in SUFFIXES and all built-in rules
+ with a % target -- for performance.
+
+Wed Feb 26 18:34:37 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/application.make ($(APP_INFO_PLIST_FILE)): Implemented
+ merging the xxxInfo.plist into Info.plist on Apple. Use
+ CFBundleIconFile, and not NSIcon, on Apple. Quote full path of
+ xxxInfo.plist file.
+
+2003-03-17 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.6.0
+
+2003-03-14 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Check for -lpthread on unknown hosts (e.g. irix)
+ * target.make (darwin): Add -read_only_reolcs warning.
+ (darwin5): Remove
+ * Documentation/machines.texi: Update Darwin.
+ (suggestions from Carl Eugen Hoyos)
+
+2003-03-13 Adam Fedor <fedor@gnu.org>
+
+ * clean_cpu.sh: Make all hppa variants the same.
+ (suggestion from Matthias Klose)
+
+2003-03-04 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Change sense of --disable-import help line
+ * configure: Regen.
+ * Documentation/install.texi: Update import section
+ * Documentation/userfaq.texi: Add import section.
+
+Tue Mar 4 17:13:46 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.ac: Enable GCC deprecation warnings for #import.
+ * configure: Regenerated.
+
+2003-03-03 iMartin Brecher <martin@mb-itconsulting.com>
+
+ * Documentation/README.MinGW: Tidied
+ Some modifiecations by rfm@gnu.org also ... mainly to change the
+ order of build/install of libobjc and ffcall
+
+2003-02-23 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * user_home.c: fix HOMEPATH and HOMEDRIVE handling for mingw to
+ only use the drive if there isn't one in the path.
+
+2003-02-17 Tom Koelman <tkoelman@xs4all.nl>
+
+ * Documentation/README.MingW: Update URLs.
+
+2003-02-16 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.5.2
+ * Documentation/announce.texi, news.texi, install.texi: Update
+
+2003-02-14 Adam Fedor <fedor@gnu.org>
+
+ * target.make (Darwin/SHARED_LIBRARY_LINK_CMD): Include object files
+ before library depends.
+
+ * Documentation/gnustep-howto.texi, install.texi: Updates.
+
+Mon Feb 10 13:42:54 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/source-distribution.make: Define a CVS variable, and use
+ it in place of `cvs', so that it can be overridden with a
+ different value (example: make cvs-snapshot CVS='runsocks cvs').
+
+2003-02-06 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Instance/subproject.make: Build dll exported symbols def file.
+ Remove temporary def file on clean.
+ * Instance/rules.make: Make list of subproject def files (thanks Nicola)
+ * Instance/library.make: Use list of subproject def files to put
+ symbols from subprojects into final dll output.
+
+Wed Feb 5 04:07:05 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * library-combo.make (BUNDLE_LIBS): For apple library-combo,
+ do not add -framework Foundation and -framework AppKit.
+ * Instance/bundle.make: Link bundle to all libs on Apple so
+ that it can be made to work with two-level namespaces.
+
+Fri Jan 31 01:20:59 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * openapp.in: Added new option --find. Calling 'openapp --find
+ Ink' will search for the Ink application as usual, but then only
+ print out the full path of the application instead of executing
+ it. Replaced `basename $0` with openapp in messages. Do not talk
+ of unimplemented --library-combo option in messages.
+
+Thu Jan 30 17:32:37 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Documentation/gsdoc.make: Use autogsdoc, not gsdoc, to
+ compile gsdoc files. gsdoc is not even installed in the latest
+ gnustep-base.
+
+Sun Jan 26 04:54:09 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.ac: New --enable-multi-platform option, off by
+ default. Substitute GNUSTEP_MULTI_PLATFORM and target when
+ processing .in files.
+ * configure: Regenereated.
+ * GNUstep.sh.in: If GNUSTEP_MULTI_PLATFORM is empty, use hardcoded
+ GNUSTEP_HOST, GNUSTEP_HOST_OS, GNUSTEP_HOST_CPU,
+ GNUSTEP_HOST_VENDOR as provided by configure.
+ * GNUstep.csh.in: Idem.
+
+Fri Jan 10 05:48:06 GMT 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make (INTERNAL_CFLAGS): On darwin, apple foundation, add
+ -no-cpp-precomp.
+
+2003-01-09 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Documentation/README.MinGW: Updated for current cod, fixing a few
+ errors.
+ * user_home.c: Fixed typo.
+
+2003-01-03 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * common.make: Don't use RUNTIME_FLAG for plain C code, just for ObjC
+
+Fri Jan 3 01:57:46 2003 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * create_domain_dir_tree.sh (mydir): Replaced dirname invocation
+ with a sed trick. Apparently dirname is not available on OpenStep
+ (reported by Pete French <pete@twisted.org.uk>).
+
+Tue Dec 31 16:10:49 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make: For darwin: link to LIB_LINK_SONAME_FILE, not to
+ LIB_LINK_INSTALL_NAME, so that it works when building frameworks.
+
+2002-12-30 Adam Fedor <fedor@gnu.org>
+
+ * ld_lib_path.sh: Use DYLD_LIBRARY_PATH on darwin
+ * ld_lib_path.csh: Idem.
+ * target.make (darwin): Don't set DYLIB_COMPATIBILITY_VERSION,
+ set DYLIB_CURRENT_VERSION correctly, link to LIB_LINK_INSTALL_NAME.
+
+Mon Dec 30 16:38:16 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ A new library-combo apple-apple-apple has been added, and made the
+ default on Apple OSX systems.
+ * library-combo.make (OBJC_RUNTIME): Variable removed, it's
+ redundant with OBJC_RUNTIME_LIB.
+ * target.make: Check OBJC_RUNTIME_LIB, not OBJC_RUNTIME.
+ * common.make: For libFoundation, added backward compatibility
+ fixup for header locations.
+ * configure.ac: Map gnu library combo to gnu-gnu-gnu, nx library
+ combo to nx-nx-nx, apple library combo to apple-apple-apple. Use
+ apple-apple-apple library-combo on darwin by default. Use
+ -DNeXT_RUNTIME for OBJC_RUNTIME_LIB = apple. Print out a message
+ that we are checking for the library-combo, and which one we
+ choose.
+ * configure: Regenerated.
+ * common.make: To check that we are on an Apple system,
+ check FOUNDATION_LIB against apple, not nx.
+ * debugapp.in: Recognize apple library combo.
+ * executable.template.in: Idem.
+ * library-combo.make (RUNTIME_FLAG): For NeXT and Apple runtime,
+ always set to -fnext-runtime, regardless of the value of
+ OBJC_COMPILER, because OBJC_COMPILER is set in target.make, which
+ is read after library-combo.make, so we can't use it here.
+ * library-combo.make: Map apple library-combo to
+ apple-apple-apple. Added code for apple OBJC_RUNTIME_LIB,
+ FOUNDATION_LIB and GUI_LIB, copied from the one for nx
+ library-combo.
+ * target.make: For darwin systems, replace all checks for 'nx'
+ runtime and foundation lib with checks for 'apple'.
+ * Instance/application.make: Apple code is now executed for
+ 'apple' runtime/foundation/gui lib, not 'nx'. Removed checks for
+ OBJC_COMPILER == NeXT; replace them with checks for FOUNDATION_LIB
+ == apple.
+ * Instance/bundle.make: Idem.
+ * Instance/framework.make: Idem.
+ * Instance/gswapp.make: idem.
+
+Wed Dec 25 03:09:34 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/application.make: Implemented support for Apple native
+ bundle organization, and Apple Info.plist.
+
+Wed Dec 25 03:04:42 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make (DYLIB_INSTALL_NAME): Variable removed, replaced
+ by LIB_LINK_INSTALL_NAME.
+ * Instance/library.make (LIB_LINK_INSTALL_NAME): Define.
+ * Instance/framework.make (LIB_LINK_INSTALL_NAME): Define.
+ * Instance/framework.make: Do not build and link the dummy
+ framework class on Apple. On Apple, create the symbolic link
+ xxx.framework/xxx --> the shared library. Modified NSExecutable
+ value on Apple. New install code for Apple.
+
+Wed Dec 25 02:53:19 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/application.make (internal-clean): Removed special code
+ for OBJC_COMPILER = NeXT.
+
+Fri Dec 20 17:27:16 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * library-combo.make (LIBRARIES_DEPEND_UPON, BUNDLE_LIBS): For nx
+ foundation or gui, add necessary -framework flags.
+ * target.make (DYLIB_INSTALL_NAME): For darwin, define using
+ FINAL_LIBRARY_INSTALL_DIR rather than hardcoding
+ GNUSTEP_SYSTEM_ROOT, so that it works no matter where a library is
+ installed.
+
+Fri Dec 20 16:21:40 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/tool.make (FINAL_TOOL_INSTALL_DIR): New variable;
+ support it. By setting this variable before including the
+ makefile, you can fine control where you want the tool executable
+ to be installed.
+
+Sun Dec 15 16:22:13 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/stamp-string.make: New file providing
+ infrastructure for very efficient stamp string support.
+ * GNUmakefile.in (INSTANCE_SHARED_MAKE_FILES): Added stamp-string.make
+ * Instance/application.make: Use Instance/Shared/stamp-string.make
+ to rebuild Info.plist and xxx.desktop iff there is a clear reason
+ to do so.
+ * Instance/bundle.make: Use Instance/Shared/stamp-string.make
+ to make sure we rebuild the Info.plist whenever the make variables
+ used in it change.
+
+Sat Dec 14 02:42:02 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * library-combo.make: Quick attempt at fixing/updating
+ foundation/appkit flags to compile with nx library-combo on Mac
+ OSX. Dropped NeXTstep iconheader code.
+ * Instance/application.make: Quick attempt at fixing/updating
+ building nx applications. Added missing rule to build directory,
+ and dropped NeXTstep iconheader code.
+
+Sat Dec 14 02:36:00 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.ac (AC_CONFIG_FILES): Removed config.h, which is
+ already in AC_CONFIG_HEADER.
+ * configure: Regenerated.
+
+Thu Dec 12 00:03:30 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make: Fixed typo in warning message.
+
+2002-12-10 Adam Fedor <fedor@gnu.org>
+
+ * clean_os.sh: Filter version from darwin6.
+ * target.make (darwin): Was darwin6
+ (irix): Updated for shared libraries (from Carl Eugen Hoyos).
+
+ * Documentation/machines.texi: Updated.
+
+Mon Dec 9 12:04:49 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make (internal-framework-install_): Fixed
+ creating the installation directory for headers in DLL case, so
+ that it uses HEADER_FILES_INSTALL_DIR (Patch from David Ayers
+ <d.ayers@inode.at>).
+
+2002-12-05 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * Instance/framework.make ($(FRAMEWORK_FILE)): create the link with
+ GNUSTEP_INSTANCE name instead of FRAMEWORK_NAME. (patch from David
+ Ayers <d.ayers@inode.at>)
+
+2002-12-03 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * Instance/framework.make ($(FRAMEWORK_FILE)): remove the link before
+ creating a new one.
+
+2002-12-02 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * Instance/framework.make ($(FRAMEWORK_FILE)): link
+ lib<frameworkName>.so to <frameworkName> for dynamic loading.
+
+Mon Dec 2 12:43:23 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make: Added support for XXX_HEADER_FILES_DIR
+ and XXX_HEADER_FILES_INSTALL_DIR (Patch from David Ayers
+ <d.ayers@inode.at>).
+
+2002-11-29 Adam Fedor <fedor@gnu.org>
+
+ * target.make (darwin1): Remove
+ (darwin6): Add.
+
+2002-11-27 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * user_home.c: Use USERPROFILE for home directory on windoze.
+ * Documentation/RADME.MinGW: Fix typo reported by Tom Koelman
+
+2002-11-19 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.5.1
+ * Documentation/news.texi: Updated.
+
+2002-11-19 Adam Fedor <fedor@gnu.org>
+
+ * create_domain_dir_tree.sh (mydir): Use `command` not
+ $(command), which doesn't work with all sh's.
+
+2002-11-15 Adam Fedor <fedor@gnu.org>
+
+ * common.make: Remove duplicate OBJC_RUNTIME_LIB and FOUNDATION_LIB
+ setup
+ * library-combo.make (GNUSTEP_FND_DIR, RUNTIME_FLAG): Extra flags
+ moved from common.make
+ (FOUNDAION_LIB=gnu): setup moved from common.make.
+
+ * target.make (darwin5/NeXT cc) (DYLIB_EXTRA_FLAGS,
+ DYLIB_DEF_FRAMEWORKS, DYLIB_DEF_LIBS): Comment out or remove.
+
+Wed Nov 6 15:26:07 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (install): Fixed typo - was installing
+ config.site into GNUSTEP_SYSTEM_ROOT/shared rather than
+ GNUSTEP_SYSTEM_ROOT/share.
+
+Wed Nov 6 12:31:40 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Rewritten framework/subproject interaction so that it supports
+ FRAMEWORK_NAME containing multiple framework names. Framework API
+ change warning: CURRENT_VERSION_NAME replaced by
+ XXX_CURRENT_VERSION_NAME; DEPLOY_WITH_CURRENT_VERSION replaced by
+ XXX_DEPLOY_WITH_CURRENT_VERSION.
+ * common.make (CURRENT_VERSION_NAME): Do not define here.
+ (DEPLOY_WITH_CURRENT_VERSION): Idem.
+ * Instance/framework.make: Added support for
+ xxx_CURRENT_VERSION_NAME and xxx_DEPLOY_WITH_CURRENT_VERSION.
+ * rules.make (FRAMEWORK_NAME): Do not define here.
+ (FRAMEWORK_DIR_NAME): Idem.
+ (FRAMEWORK_VERSION_DIR_NAME): Idem.
+ * Master/framework.make (FRAMEWORK_NAME): Set here.
+ * Instance/framework.make (FRAMEWORK_DIR_NAME,
+ FRAMEWORK_VERSION_DIR_NAME): Set here.
+ * Master/rules.make (%.subprojects): Pass to submakes for
+ subprojects OWNING_PROJECT_HEADER_DIR instead of FRAMEWORK_NAME
+ and FRAMEWORK_VERSION_DIR_NAME; set the new variable manually
+ depending on the instance we're building.
+ (%.variables): Similar change.
+ * Master/subproject.make (build-headers): Always define this rule;
+ don't depend on FRAMEWORK_NAME.
+ (internal-install, internal-uninstall: Always run install /
+ uninstall, no matter what FRAMEWORK_NAME is.
+ * rules.make (CURRENT_FRAMEWORK_HEADERS_FLAG): Renamed to
+ DERIVED_SOURCES_HEADERS_FLAG. Include it also if
+ OWNING_PROJECT_HEADER_DIR is non empty.
+ * Instance/subproject.make: Rewritten header copying for
+ frameworks and such; now manage headers basing on the
+ OWNING_PROJECT_HEADER_DIR variable only.
+
+Wed Nov 6 12:09:09 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make (internal-framework-distclean): Do not
+ remove DERIVED_SOURCES; already removed on make clean.
+
+Wed Nov 6 10:56:55 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/application.make (.PHONY): Added
+ internal-app-copy_into_dir.
+ (internal-app-copy_into_dir): Implemented.
+
+2002-11-05 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/README.MinGW: Add note about setting
+ installation prefix.
+ * Documentation/faq.texi: Typo.
+ * Documentation/machines.texi: Updates.
+ * Documentation/userfaq.texi: Idem.
+
+Mon Nov 4 14:59:27 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/documentation.make (internal-doc-install_): Moved
+ before the submakefile fragments are included, to fix installation
+ problem.
+
+Mon Nov 4 12:44:07 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (distclean): Remove fixpath.sh.
+
+Mon Nov 4 12:08:58 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Documentation: New directory.
+ * Instance/Documentation/autogsdoc.make: New file.
+ * Instance/Documentation/gsdoc.make: New file.
+ * Instance/Documentation/javadoc.make: New file.
+ * Instance/Documentation/latex.make: New file.
+ * Instance/Documentation/texi.make: New file.
+ * Instance/documentation.make: Include only the appropriate
+ documentation makefiles; most code moved into the specific
+ documentation makefiles.
+ * GNUmakefile.in (install): Create the
+ GNUSTEP_MAKEFILES/Instance/Documentation directory.
+ (INSTANCE_DOC_MAKE_FILES): List the new makefiles in this
+ variable.
+ (install): Install them.
+ * rules.make ($(GNUSTEP_MAKEFILES)/Instance/Documentation/*.make):
+ New rule to let make know that all documentation makefiles are
+ always up to date.
+
+Fri Nov 1 14:00:11 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_MAKEINFO, GNUSTEP_MAKEINFO_FLAGS,
+ GNUSTEP_MAKETEXT, GNUSTEP_MAKETEXT_FLAGS, GNUSTEP_TEXI2DVI,
+ GNUSTEP_TEXI2DVI_FLAGS, GNUSTEP_TEXI2HTML,
+ GNUSTEP_TEXI2HTML_FLAGS, GNUSTEP_DVIPS, GNUSTEP_DVIPS_FLAGS,
+ AUTOGSDOC, JAVADOC, ALL_JAVADOCFLAGS): Moved into
+ Instance/documentation.make
+ * rules.make (ALL_JAVADOCFLAGS): Moved into
+ Instance/documentation.make.
+ * Instance/documentation.make: Set all these documentation
+ specific flags and options here.
+ (ADDITIONAL_MAKEINFO_FLAGS, ADDITIONAL_MAKETEXT_FLAGS,
+ ADDITIONAL_TEXI2DVI_FLAGS, ADDITIONAL_TEXI2HTML_FLAGS,
+ ADDITIONAL_DVIPS_FLAGS): New variables.
+
+Fri Nov 1 13:36:25 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * ChangeLog: Moved into ChangeLog.1
--- /dev/null
+Fri Nov 1 12:12:48 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/documentation.make: Removed unused rules for autogsdoc.
+
+Thu Oct 31 21:52:45 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/tool.make (internal-install-dirs, install-tool):
+ Simplified rules removing these intermediate targets.
+ (.PHONY): Removed those targets; added
+ internal-tool-copy_into_dir.
+
+Thu Oct 31 13:51:41 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Warning: removed framework's xxx_TOOLS API; replaced it with
+ a new xxx_COPY_INTO_DIR API.
+ * Instance/framework.make: Emit a long warning if xxx_TOOLS is
+ used.
+ * Master/rules.make (.PHONY): Removed %.tools.
+ (%.tools): Rule removed.
+ * Instance/tool.make: Removed custom FRAMEWORK code; the same
+ result can now be obtained by using the xxx_COPY_INTO_DIR API,
+ which simplifies framework code, and will soon work for all
+ project types.
+ * Instance/tool.make (internal-tool-copy_into_dir): Implemented.
+ * Instance/rules.make: Recognize new xxx_COPY_INTO_DIR variable.
+ Strip it and put it into COPY_INTO_DIR variable. If non-empty,
+ centrally disable installation and execute the new
+ internal-$(GNUSTEP_TYPE)-copy_into_dir target at the end of
+ compilation. Added bare implementation of this :: target, which
+ creates the COPY_INTO_DIR directory if it does not exist yet.
+ * Instance/Shared/bundle.make
+ (shared-instance-bundle-copy_into_dir): Implemented.
+ * messages.make (ECHO_COPYING_INTO_DIR,
+ ECHO_COPYING_BUNDLE_INTO_DIR): New variables.
+
+Wed Oct 30 13:16:15 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Unified link commands for libraries and frameworks.
+ * target.make: Changed all the variable names used in all link and
+ post-link commands, in such a way that library.make and
+ framework.make can use the same commands, and differentiate what
+ is done by setting LIB_LINK_* variables. Documented extensively
+ what these variables are.
+ * Instance/framework.make: Set the appropriate LIB_LINK_* variables.
+ Replaced FRAMEWORK_LINK_CMD with LIB_LINK_CMD.
+ * Instance/library.make: Set the appropriate LIB_LINK_* variables.
+ * common.make (FRAMEWORK_LINK_CMD): Variable removed.
+ * target.make (SHARED_FRAMEWORK_LINK_CMD): Variable removed.
+
+Wed Oct 30 12:38:42 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make (AFTER_INSTALL_STATIC_LIB_COMMAND): Renamed
+ to AFTER_INSTALL_STATIC_LIB_CMD for consistency with other
+ variables.
+ (AFTER_INSTALL_SHARED_LIB_COMMAND): Idem.
+ * common.make (AFTER_INSTALL_LIBRARY_CMD): Updated for changes.
+
+Mon Oct 28 10:48:26 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make (Resources/Info.plist): Use
+ GNUSTEP_INSTANCE, not FRAMEWORK_NAME, when building NSExecutable.
+
+2002-10-26 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Instance/documentation.make: Fix gsdoc install location
+
+Fri Oct 25 18:25:37 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/rules.make (ADDITIONAL_CFLAGS): Add to it xxx_CFLAGS.
+ (ADDITIONAL_OBJCFLAGS): Idem.
+ (ADDITIONAL_CCFLAGS): Idem.
+
+Fri Oct 25 18:24:30 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/rules.make (ADDITIONAL_CPPFLAGS): Add to it
+ XXX_CPPFLAGS (Patch by David Ayers <d.ayers@inode.at>).
+
+Fri Oct 25 18:08:49 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Documentation/readme.texi: Rewritten ultra short description of
+ the GNU General Public License by adapting text from the GNU GPL
+ FAQ at www.gnu.org - to address complaints that the previous
+ description was incorrect/misleading.
+
+Tue Oct 22 02:29:02 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/objc.make (internal-clean): Fixed typo, objc_program for
+ objc-program.
+ (internal-distclean): Idem.
+
+Tue Oct 22 02:11:02 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Implemented 'make strings' target, which runs make_strings to
+ create/update .strings files.
+ * Master/rules.make (strings, before-strings, internal-strings,
+ after-strings): New targets
+ * Master/aggregate.make (internal-strings): New target implemented.
+ * Master/application.make (internal-strings): Idem.
+ * Master/bundle.make (internal-strings): Idem.
+ * Master/clibrary.make (internal-strings): Idem.
+ * Master/ctool.make (internal-strings): Idem.
+ * Master/framework.make (internal-strings): Idem.
+ * Master/gswapp.make (internal-strings): Idem.
+ * Master/gswbundle.make (internal-all): Idem.
+ * Master/library.make (internal-strings): Idem.
+ * Master/objc.make (internal-strings): Idem.
+ * Master/palette.make (internal-strings): Idem.
+ * Master/service.make (internal-strings): Idem.
+ * Master/subproject.make (internal-strings): Idem.
+ * Master/test-application.make (internal-strings): Idem.
+ * Master/test-library.make (internal-strings): Idem.
+ * Master/test-tool.make (internal-strings): Idem.
+ * Master/tool.make (internal-strings): Idem.
+ * Instance/Shared/strings.make: New file.
+ * GNUmakefile.in (INSTANCE_SHARED_MAKE_FILES): Added the new file.
+ * messages.make (ECHO_MAKING_STRINGS): New variable.
+ (ALWAYS_ECHO_NO_LANGUAGES): New variable.
+ (ALWAYS_ECHO_NO_FILES): New variable.
+ * Instance/application.make: Include Instance/Shared/strings.make.
+ * Instance/bundle.make: Idem.
+ * Instance/ctool.make: Idem.
+ * Instance/framework.make: Idem.
+ * Instance/gswapp.make: Idem.
+ * Instance/gswbundle.make: Idem.
+ * Instance/library.make: Idem.
+ * Instance/objc.make: Idem.
+ * Instance/palette.make: Idem.
+ * Instance/service.make: Idem.
+ * Instance/subproject.make: Idem.
+ * Instance/test-library.make: Idem.
+ * Instance/tool.make: Idem.
+
+Tue Oct 22 00:59:28 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make ($(GNUSTEP_MAKEFILES)/Instance/Shared/*.make): New
+ rule to stop make from spending time trying to rebuild the
+ Instance/Shared makefiles each time.
+
+Tue Oct 22 00:48:21 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/headers.make (.PHONY): Fixed typo in target
+ names, `install' instead of `instance'.
+ * Instance/Shared/java.make (.PHONY): Idem.
+
+Thu Oct 17 17:49:51 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/aggregate.make: Execute nothing is SUBPROJECTS is empty.
+ Removed __done hack; do not pass GNUSTEP_INSTALLATION_DIR to
+ submakes on the command line. Renamed 'target' to 'operation'.
+ Use 'aggregate project', not 'subproject', in warning messages.
+ Commented extensively.
+ * common.make: Export GNUSTEP_INSTALLATION_DIR
+
+Thu Oct 17 02:17:01 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ A further speedup for make all/install/uninstall.
+ * Master/rules.make (%.variables): Inlined the %.subprojects rule
+ into the %.variables rule.
+
+Wed Oct 16 05:11:48 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in: Renamed `tgz' target to `dist'.
+
+Wed Oct 16 04:47:13 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ A further speedup for make clean/distclean.
+ * Master/application.make (APPS_WITH_SUBPROJECTS): New variable -
+ set it, by using a make trick, to be the list of all apps having
+ subprojects.
+ (internal-clean): Only invoke the .subproject clean rule for apps
+ with subprojects.
+ (internal-distclean): Idem.
+ * Master/bundle.make: Similar changes.
+ * Master/clibrary.make: Idem.
+ * Master/ctool.make: Idem.
+ * Master/gswapp.make: Idem.
+ * Master/gswbundle.make: Idem.
+ * Master/java-tool.make: Idem.
+ * Master/java.make: Idem.
+ * Master/library.make: Idem.
+ * Master/objc.make: Idem.
+ * Master/palette.make: Idem.
+ * Master/service.make: Idem.
+ * Master/subproject.make : Idem.
+ * Master/test-application.make : Idem.
+ * Master/test-library.make : Idem.
+ * Master/test-tool.make: Idem.
+ * Master/tool.make: Idem.
+
+Mon Oct 14 13:09:09 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rpm.make (rpm): Look for rpmbuild, and use it instead of
+ rpm -ba if available; print a warning if neither rpm nor rpmbuild
+ is found. (Originated from a suggestion by Jiri Novak
+ <Jiri.Novak@i.cz>).
+ * GNUmakefile.in (rpm): Similar change.
+
+Fri Oct 11 16:31:35 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * spec-debug-alone-rules.template: Remove %install string from
+ comment.
+ * spec-debug-rules.template: Idem.
+ * spec-rules.template: Idem.
+ (Suggested by Jiri Novak <Jiri.Novak@i.cz>).
+
+Fri Oct 11 11:54:13 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make ($(DUMMY_FRAMEWORK_FILE)): Rewritten the
+ shell code to extract the class names to be faster by using a
+ single sed process with multiple commands rather than piping
+ through awk.
+
+Fri Oct 11 11:14:28 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make (OBJC_CLASS_SECTION): Removed.
+
+Fri Oct 11 11:13:53 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make ($(DUMMY_FRAMEWORK_FILE)): Use all
+ references to classes not in the U section (Patch by Stefan
+ Urbanek <urbanek@host.sk>).
+
+Thu Oct 10 18:21:30 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * create_domain_dir_tree.sh: New script to create the domain
+ directory tree inside a directory.
+ * GNUmakefile.in (install): Rewritten. Use the
+ create_domain_dir_tree.sh to create the System domain; create only
+ the top-level directories of the Local and Network domain; print
+ short messages about installation rather than displaying the full
+ shell commands unless messages=yes is given on the command line.
+ (EC): New variable to implement messages=yes.
+
+2002-10-09 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/GNUmakefile: Add userfaq target
+ * Documentation/userfaq.texi: Update.
+ * Documentation/machines.texi: Idem.
+
+Wed Oct 9 12:38:27 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (exec_prefix, bindir, libdir, includedir,
+ datadir): Unused variables removed.
+
+Wed Oct 9 12:26:21 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (librarydir): Unused variable removed.
+
+Wed Oct 9 12:17:19 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (install): Create $(GNUSTEP_MAKEFILES)/Auxiliary
+ directory, for auxiliary makefiles provided by packages.
+
+Mon Oct 7 18:19:27 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make ($(DUMMY_FRAMEWORK_OBJ_FILE)): Wrap the
+ compilation in ECHO_COMPILE / END_ECHO (Patch by Stefan Urbanek
+ <urbanek@host.sk>).
+
+Sat Oct 5 01:59:47 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * ld_lib_path.sh (guile_paths): Removed setting up guile_paths
+ from here ...
+ * GNUstep.sh.in (guile_paths): ... and added it here. The
+ difference is that GNUstep.sh is executed only once at login,
+ while ld_lib_path.sh is executed also each time an application is
+ started, to setup the additional linker library paths for that
+ specific application.
+ * ld_lib_path.csh, GNUstep.csh.in (guile_paths): Idem.
+
+Sat Oct 5 01:05:47 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * mkinstalldirs (MKDIR): Do not test for 'mkdir -p'; always use
+ 'mkdir'. The test for 'mkdir -p' was itself subject to race
+ conditions. Do not echo what is done.
+
+Sat Oct 5 00:50:41 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * executable.template.in (app): Do not run a sed subprocess to
+ remove / at the end of name. Do not run a sed subprocess to
+ remove .app at the end of the name. Run a basename subprocess
+ only if the executable name can't be determined from the
+ Info-gnustep.plist. Rewritten a comparison against basename $app,
+ no longer meaningful, to be against $0.
+
+Sat Oct 5 00:28:02 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * openapp.in: Removed aesthetical semicolon.
+
+Fri Oct 4 14:45:53 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.ac (clean_target_os, clean_target_cpu,
+ clean_target_vendor): New variables: compute them, and subst them
+ in the generated files.
+ * GNUmakefile.in (GNUSTEP_TARGET_CPU, GNUSTEP_TARGET_OS,
+ GNUSTEP_TARGET_VENDOR): Just set to be clean_target_cpu,
+ clean_target_os, clean_target_vendor.
+ (VERTAG): Compute efficiently.
+ * configure: Regenerated
+
+2002-10-01 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Instance/documentation.make: commented out bogus extra running
+ of autogsdoc without args, as this was halting install process.
+
+2002-10-01 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/filesystem.texi: New file.
+
+ * Documentation/README.MinGWOnCygwin: Update troubleshooting.
+
+Tue Oct 1 01:08:23 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/bundle.make: Rewritten build rules so that they are
+ simpler, and we drop creating symbolic links in the directory.
+ When on GNUstep, we no longer create the OSX bundle; when on OSX,
+ we no longer create the GNUstep bundle. Also, install using
+ Instance/Shared/bundle.make; no longer need to try and preserve
+ the symbolic link. Removed rules to build NeXTstep Info.plist.
+ (.PHONY): Removed unused targets.
+
+Tue Oct 1 01:02:41 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/bundle.make (shared-instance-bundle-install): Use 'h' option
+ to tar when installing.
+
+Fri Sep 27 03:16:57 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Warning - minor incompatible change/update in API.
+ * Master/subproject.make (internal-clean): Do not remove
+ Resources/Subproject.
+ (internal-distclean): Only remove Resources/ if the subproject has
+ xxx_HAS_RESOURCE_BUNDLE = yes.
+ * Instance/subproject.make: Only build the Resources/ bundle if
+ `xxx_HAS_RESOURCE_BUNDLE = yes' is set in the GNUmakefile.
+
+Fri Sep 27 03:12:46 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/subproject.make (SUBPROJECT_NAME): If SUBPROJECT_NAME
+ contains more than one word, emit warnings, and drop all words
+ except the first one.
+ (internal-clean): Simplified expression to compute pswrap files.
+
+Thu Sep 26 03:11:42 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Implemented resource bundles for tools.
+ * Master/tool.make (internal-distclean): Wipe out the Resources/
+ directory if there is any tool with xxx_HAS_RESOURCE_BUNDLE = yes.
+ * Instance/tool.make: If xxx_HAS_RESOURCE_BUNDLE = yes, include
+ Shared/Instance/bundle.make with the appropriate parameters and
+ use its rules. All the standard xxx_RESOURCE_FILES etc options
+ are then available; the bundle is automatically created in
+ ./Resources/tool_name, managed and installed in the appropriate
+ dir, and automatically available to the tool code -- both before
+ and after installation -- via gnustep-base's [NSBundle
+ +mainBundle].
+
+Thu Sep 26 03:08:04 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/bundle.make: Implemented rules to install and
+ uninstall.
+ * Instance/application.make: Use them.
+ * messages.make (ECHO_INSTALLING_BUNDLE): New message used by
+ Instance/Shared/bundle.make.
+
+Thu Sep 26 02:50:02 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/application.make (APP_INSTALL_DIR): New variable.
+ Implemented support for both APP_INSTALL_DIR and xxx_INSTALL_DIR.
+ Updated the whole makefile for the change.
+
+Thu Sep 26 02:16:48 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/ctool.make
+ ($(CTOOL_INSTALLATION_DIR)/$(GNUSTEP_TARGET_LDIR)): Do not echo
+ the command; use $@ syntax in command.
+ * Instance/tool.make (internal-tool-uninstall_): Do nothing if
+ NULL_INSTALL is YES.
+
+Thu Sep 26 02:01:04 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Warning: tiny incompatible API change.
+ * Instance/tool.make (TOOL_INSTALL_DIR): New variable replacing
+ TOOL_INSTALLATION_DIR, but not including TARGET_LDIR to be
+ consistent with LIBRARY_INSTALL_DIR and BUNDLE_INSTALL_DIR, and
+ preparing the way for bundle resources for tools. Updated the
+ whole makefile to work with the new variable.
+ (TOOL_INSTALLATION_DIR): Emit a deprecation warning if it's used.
+ * Instance/ctool.make: Perfectly similar changes.
+ * Instance/objc.make: Perfectly similar changes.
+ * Instance/java.make (JAVA_INSTALLATION_DIR): Renamed to be
+ JAVA_INSTALL_DIR. We still accept the old name, but the new one
+ should be preferred.
+
+Thu Sep 26 01:47:30 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/bundle.make: Renamed all
+ GNUSTEP_SHARED_INSTANCE_XXX variables to be shorter -
+ GNUSTEP_SHARED_XXX.
+ * Instance/application.make: Updated for change.
+ * Instance/bundle.make: Idem.
+ * Instance/framework.make: Idem.
+ * Instance/palette.make: Idem.
+ * Instance/service.make: Idem.
+ * Instance/subproject.make: Idem.
+
+Mon Sep 23 05:58:52 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.ac: Made message about checking for a shared libobjc
+ more explanatory.
+ * configure: Regenerated.
+
+Mon Sep 23 05:51:56 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Documentation/gnustep-howto.texi: Fixed/updated documentation on
+ ./configure --prefix for gnustep-make ... was confusing
+ GNUSTEP_SYSTEM_ROOT and GNUSTEP_ROOT, and giving an incorrect
+ example. Also, simplified/updated example for sourcing
+ GNUstep.sh.
+ * GNUstep-HOWTO: Regenerated.
+ * FAQ: Regenerated.
+
+2002-09-19 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/faq.texi: Add section on porting to Cocoa.
+ * Documentation/userfaq.texi: Update font troubleshooting.
+ * Documentation/README.Cygwin: New file
+ * Documentation/README.MinGWOnCygwin: Renamed from README.cygwin.
+
+Thu Sep 12 15:53:50 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make (ADDITIONAL_LDFLAGS): All concerned targets: do not
+ add -static when shared=no. We can't perform conditionals on the
+ value of shared in this file, since it has not yet been set up!
+ (STATIC_LDFLAGS): New variable. Set it to -static in all
+ concerned cases.
+ * rules.make (ALL_LDFLAGS): Add STATIC_LDFLAGS.
+ * target.make (BUNDLE_CFLAGS): This variable was no longer used, and
+ can't be fixed. Removed for all targets.
+ * common.make: Force shared=yes to be used whenever bundles are
+ built. Static bundles are meaningless, and we want the flags for
+ shared objects, such as -fPIC, to be automatically used when
+ compiling bundle object files, otherwise linking the bundle will
+ fail on some platforms.
+
+Thu Sep 12 10:23:19 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * openapp.in: Implemented calling openapp with an application name
+ without prefix, as in 'openapp Gorm': openapp will automatically
+ look for Gorm.app or Gorm.debug or Gorm.profile. Implemented
+ support for searching applications in subdirectories of
+ Applications - only subdirs one level deep are supported. Other
+ simple cleanups such as quoting of variables.
+
+Wed Sep 4 11:34:59 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Documentation/readme.texi: Fixed typo - it's the "GNU General
+ Public License", not the "GNU Public License" (Reported by David
+ Ayers <d.ayers@inode.at>).
+ * README: Regenerated.
+
+2002-08-30 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.5.0
+
+2002-08-26 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Typo in CPPFLAGS (Reported by Chris Vetter).
+
+2002-08-24 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/README.MinGW: Update.
+
+2002-08-15 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Save user suplied CPPFLAGS, use INCLUDE_FLAGS
+ instead (goes into CONFIG_SYSTEM_INCL).
+ * config.make.in (CPPFLAGS): Subst with CPPFLAGS
+ (CONFIG_SYSTEM_INCL): Subst with INCLUDE_FLAGS.
+
+Fri Aug 9 11:15:26 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Patch from Peter Cooper <comrade@obverse.com.au> with minor
+ modifications:
+ * target.make: Updated netbsdelf code. In particular,
+ LIBRARIES_DEPEND_UPON should now work for netbsdelf.
+ * configure.ac: Updated netbsdelf code.
+ * conigure: Regenerated.
+
+2002-08-08 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Instance/documentation.make: Order autogsdoc flags so that those
+ from the user makefiles override the default values we supply.
+
+2002-08-01 Adam Fedor <fedor@gnu.org>
+
+ * target.make (Darwin): Don't add flags if using
+ NeXT Foundation.
+
+2002-07-29 Adam Fedor <fedor@gnu.org>
+
+ * Changes from 1.4.0 merged into main branch.
+
+2002-07-27 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.4.0
+
+Wed Jul 24 16:31:14 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * debian/: Outdated directory removed - the debian maintainers are
+ maintaining the updated one elsewhere. (Suggested by Matthias
+ Klose <doko@cs.tu-berlin.de>).
+
+Mon Jul 22 12:34:49 2002 Georg Fleischmann <georg@vhf.de>
+
+ * Instance/Shared/bundle.make (shared-instance-bundle-all):
+ Copying of localized resources from subprojects with multiple
+ languages corrected.
+
+2002-07-21 Adam Fedor <fedor@gnu.org>
+
+ * target.make (Darwin): Changes to compile with GNU compiler/runtime.
+ (Irix): Has shared libs. Add OBJ_MERGE_CMD. Remove extra section.
+ * Documentation/machines.texi (Darwin): Update ffcall instructions.
+ (Reports from Carl Eugen).
+
+2002-07-03 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.3.4
+ * Documentation/news.texi: Update.
+ * Documentation/machines.texi: Update.
+
+Sat Jun 29 12:35:56 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.csh.in: Use source, not `.', to execute the user
+ specific GNUstep.csh (Patch by Lars Sonchocky-Helldorf
+ <lars.sonchocky-helldorf@hamburg.de).
+
+Wed Jun 26 15:51:33 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep-reset.sh: Quoted two variables.
+
+Wed Jun 26 15:05:02 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Use the gnugc-gnu-gnu library combo for garbage collecting.
+ * library-combo.make (OBJC_RUNTIME_LIB): Set to gnugc if gc=yes.
+ (LIBRARY_COMBO): Do not add -gc at the end if gc=yes.
+ (OBJC_LDFLAGS): Added ObjC flags for the gnugc OBJC_RUNTIME_LIB.
+ (OBJC_LIBS): For the gnugc-fd-xxx library-combo, do not add
+ -lobjc as that would conflict with -lobjc_gc set elsewhere.
+
+Tue Jun 25 18:52:51 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * opentool.in: Rewritten parsing of parameters adding support for
+ the --library-combo switch. Changed inline help to put
+ --library-combo=... before the tool name.
+
+Wed Jun 19 15:39:15 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rules.make (internal-distclean): Reverted last change.
+
+2002-06-18 Adam Fedor <fedor@gnu.org>
+
+ * GNUstep-reset.sh: Change GNUSTEP_PATHPREFIX_LIST to
+ GNUSTEP_PATHLIST for compatibility with many shells (variable was
+ too long).
+ * GNUstep.csh.in: Idem
+ * GNUstep.sh.in: Idem
+ * debugapp.in: Idem
+ * executable.template.in: Idem
+ * ld_lib_path.sh: Idem
+ * openapp.in: Idem
+ * opentool.in: Idem
+ * Documentation/install.texi: Idem
+
+Mon Jun 17 18:56:39 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rules.make (internal-distclean): Remove program.core as
+ well, for BSD systems (Suggestion by Chris B. Vetter
+ <chrisv@web4inc.com>).
+
+Thu Jun 13 14:38:20 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ First attempt at user-friendly messages and verbosity levels. Run
+ 'make messages=yes' to get full messages.
+ * messages.make: New file.
+ * GNUmakefile.in: Install messages.make.
+ * common.make: Include messages.make.
+ * rules.make: Changed all compilation rules to use new echo
+ variables when compiling
+ * Instance/application.make: Use new echo variables when linking,
+ and in some cases when installing; tidy up echoing.
+ * Instance/bundle.make: Idem.
+ * Instance/ctool.make: Idem.
+ * Instance/framework.make: Idem.
+ * Instance/gswapp.make: Idem.
+ * Instance/gswbundle.make: Idem.
+ * Instance/library.make: Idem.
+ * Instance/objc.make: Idem.
+ * Instance/palette.make: Idem.
+ * Instance/service.make: Idem.
+ * Instance/subproject.make: Idem.
+ * Instance/tool.make: Idem.
+ * Instance/Shared/bundle.make: Idem.
+ * Instance/Shared/headers.make: Idem.
+ * Instance/Shared/java.make: Idem.
+
+Thu Jun 13 10:28:56 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/bundle.make (RESOURCE_FILES):
+ Strip the variables after concatenating them, not before.
+ (LOCALIZED_RESOURCE_FILES): Idem.
+ (WEBSERVER_RESOURCE_FILES): Idem.
+ (WEBSERVER_LOCALIZED_RESOURCE_FILES): Idem.
+
+Wed Jun 12 12:32:40 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/bundle.make: Fixed typo in ifneq which was
+ causing the LOCALIZED_WEBSERVER_RESOURCE_FILES code to be never
+ executed.
+ (WEBSERVER_LOCALIZED_RESOURCE_DIRS): New variable.
+ (shared-instance-bundle-all-localized-webresources): Implemented
+ code to create webserver resource dirs. Fixed installation of
+ WEBSERVER_LOCALIZED_RESOURCE_FILES ... yet another typo preventing
+ it from working.
+
+Wed Jun 12 12:31:28 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/bundle.make
+ (WEBSERVER_LOCALIZED_RESOURCE_FILES): Support the new variable
+ name xxx_WEBSERVER_LOCALIZED_RESOURCE_FILES.
+ (WEBSERVER_COMPONENTS, WEBSERVER_LOCALIZED_COMPONENTS):
+ Implemented support for these variables, by merging them into
+ WEBSERVER_RESOURCE_FILES and WEBSERVER_LOCALIZED_RESOURCE_FILES
+
+Wed Jun 12 12:28:07 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/bundle.make (COMPONENTS, LOCALIZED_COMPONENTS):
+ Merge them into RESOURCE_FILES and LOCALIZED_RESOURCE_FILES.
+ (shared-instance-bundle-all): Code to manage COMPONENTS and
+ LOCALIZED_COMPONENTS removed.
+ (shared-instance-bundle-all): When installing RESOURCE_FILES,
+ check that the file exists, and is a file or a dir, before
+ installing it. When installing LOCALIZED_RESOURCE_FILES, accept
+ directories as well as files.
+ (LOCALIZED_RESOURCE_DIRS): New variable.
+ (shared-instance-bundle-all): Added code to manage
+ LOCALIZED_RESOURCE_DIRS.
+
+Wed Jun 12 11:44:47 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * relative_path.sh: Do not run sed to remove the partial_match
+ from the paths if partial_match is empty. This fixes processing
+ absolute paths which have no path in common.
+
+Wed Jun 12 11:24:23 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * relative_path.sh: Changed syntax for running subcommands, `xxx`
+ is more portable than $(xxx).
+ (Patch by Marcus Muller <znek@mulle-kybernetik.com>).
+
+2002-06-10 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.3.3
+ * Documentation/news.texi: Update.
+
+Fri Jun 7 14:29:50 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * executable.template.in (--library-combo): Fixed switching
+ library combo to perform a full reset of the environment to the
+ new library combo using GNUstep-reset.sh followed by GNUstep.sh.
+ * executable.template.in: If a binary for the currently specified
+ LIBRARY_COMBO can not be found, automatically search and run the
+ first available binary for any other LIBRARY_COMBO for this
+ machine/os.
+
+Fri Jun 7 13:39:37 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Patch by Manuel Guesdom <ml@sbuilders.com>:
+ * Instance/Shared/bundle.make (LOCALIZED_COMPONENTS): New
+ variable.
+ (shared-instance-bundle-all): Install LOCALIZED_COMPONENTS.
+
+2002-06-06 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/machines.texi: Update
+
+Fri May 24 18:23:37 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/documentation.make (internal-doc-install_): Fixed
+ installation of info files (Suggestion by Evan Prodromou
+ <evan@prodromou.san-francisco.ca.us>).
+ (internal-doc-clean): Fixed cleaning info files in similar way.
+ (internal-doc-uninstall_): Fixed removal installed info files in
+ similar way.
+
+Thu May 23 12:22:05 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/rules.make (OBJ_FILES_TO_LINK): Strip it when it's
+ created, so that we can compare it to '' to check if there is
+ anything to build/link or not.
+ * Instance/bundle.make: Modified everything implementing support
+ for bundles which contain resources, but no object file to load.
+
+Tue May 21 17:07:23 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/rules.make (internal-$(GNUSTEP_TYPE)-install):
+ Recognize XXX_STANDARD_INSTALL=no to mean we shouldn't perform the
+ standard installation procedure and assume the makefile writer has
+ provided his own (or none).
+
+Tue May 21 00:37:03 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/bundle.make (shared-instance-bundle-all): Fixed
+ quoting in code to copy subproject's resources.
+
+Mon May 20 11:11:29 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make
+ ($(FRAMEWORK_VERSION_DIR_NAME)/Resources/Info-gnustep.plist):
+ Merge $(GNUSTEP_INSTANCE)Info.plist - if there is one - into the
+ framework's gnustep plist.
+
+2002-05-15 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/machines.texi: Updated info re Win98
+ * Documentation/README.MinGW: Updated.
+ * Documentation/userfaq.texi. Idem.
+
+2002-05-15 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * common.make: Define AUTOGSDOC
+ * Instance/documentation.make: Use AUTOGSDOC
+
+2002-05-14 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Documentation/README.MinGW: Update and correct libtiff info so
+ instructions work for gui as well as base.
+
+2002-05-10 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * configure.ac: Remove FORCE_USER_ROOT and FORCE_DEFAULTS_ROOT
+ * GNUmakefile.in: ditto
+ * config.make.in: ditto
+ * common.make: regenerate
+ * configure: ditto
+ * user_home.c: Implement system-wide .GNUsteprc
+ * Documentation/install.texi: Document use of system-wide .GNUsteprc
+
+2002-05-08 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Documentation/README.MinGW: Mention need to ensure we use
+ MSYS make rather than MinGW make.
+
+2002-05-07 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Documentation/README.MinGW: Updated to reflect experience of a full
+ rebuild this morning ... including the GUI code!
+
+2002-05-02 Adam Fedor <fedor@gnu.org>
+
+ * configure.ac: Updated using autoconf 2.53 from configure.in
+ * configure, config.h.in: Regenerate.
+ * GNUmakefile.in: Add @configure_input@ comment
+ * GNUstep.csh.in, GNUstep.sh.in, debugapp.in, fixpath.sh.in,
+ openapp.in, debugapp.in, opentool.in: Idem.
+ * aclocal.m4: Remove.
+
+2002-04-30 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.3.2
+ * Documentation/news.texi, gnustep-howto.texi: Update
+ * NEWS: Regen.
+
+Sun Apr 21 11:47:11 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/bundle.make (BUNDLE_LIBS): Readded BUNDLE_LIBS for Windows.
+
+Thu Apr 18 10:54:33 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Warning - after this change, header files for libraries building
+ on Windows must be changed - all symbols are to be marked for
+ export if BUILD_lib{library_name}_DLL is defined, else to be
+ marked for import if GNUSTEP_WITH_DLL is defined (else you're not
+ on windows and you mark nothing).
+ * rules.make (ALL_CPPFLAGS): If WITH_DLL, add -DGNUSTEP_WITH_DLL.
+ Do not add any -Dlibxxx_ISDLL=1 flag.
+ * Instance/application.make (ALL_CPPFLAGS): Do not add
+ any -Dlibxxx_ISDLL=1 flag.
+ * Instance/bundle.make (ALL_CPPFLAGS): Idem.
+ (ALL_BUNDLE_LIBS): Even on Windows, do not link against
+ libraries.
+ * Instance/ctool.make (ALL_CPPFLAGS): Idem.
+ * Instance/framework.make (ALL_CPPFLAGS): Idem.
+ * Instance/objc.make (ALL_CPPFLAGS): Idem.
+ * Instance/service.make (ALL_CPPFLAGS): Idem.
+ * Instance/tool.make (ALL_CPPFLAGS): Idem.
+
+Thu Apr 18 10:41:26 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/application.make: Removed spurious newline.
+
+Thu Apr 11 23:39:45 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * ld_lib_path.sh (IFS): Fixed bug - was not resetting IFS
+ correctly.
+
+2002-04-11 Adam Fedor <fedor@gnu.org>
+
+ * configure.in (gcc version): Use -dumpversion to check gcc
+ version.
+
+ * Documentation/README.MinGW: Minor updates.
+ * Documentation/machines.texi: Add FreeBSD 4.x
+
+Wed Apr 10 14:39:24 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/documentation.make (internal-doc-install_): Install all
+ xxx.info-* files, not only the root xxx.info file.
+ (internal-doc-uninstall_): Remove all xxx.info-* files.
+ (Suggestion by Sir Raorn (<raorn@binec.ru>)).
+
+Wed Apr 10 14:18:29 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * relative_path.sh: Fixed bug when looping - ignore path
+ components which are '.' - fixing problem with frameworks and
+ gnustep flattened. (Patch from Sir Raorn (<raorn@binec.ru>)).
+ * Instance/documentation.make (internal-doc-install_): Depend on creating
+ GNUSTEP_DOCUMENTATION_INFO.
+ ($(GNUSTEP_DOCUMENTATION_INFO): Rule to create the dir added.
+ (Patch from Sir Raorn modified)
+
+Wed Apr 10 14:02:55 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Documentation/makedoc.make (internal-doc-install): Depend on
+ creating GNUSTEP_DOCUMENTATION_INFO
+ (internal-doc-uninstall): Remove the .info files from
+ GNUSTEP_DOCUMENTATION_INFO.
+
+ Patch from Sir Raorn (<raorn@binec.ru>):
+ * Documentation/GNUmakefile.in (GNUSTEP_DOCUMENTATION_INFO): Define.
+ * Documentation/makedoc.make (internal-doc-install): Install the info files
+ in GNUSTEP_DOCUMENTATION_INFO.
+ ($(GNUSTEP_DOCUMENTATION_INFO)): Create the directory if missing.
+
+Mon Apr 8 00:45:53 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in (dir): Unset after using (Reported by Balaton
+ Zoltan <balaton@eik.bme.hu>).
+
+Sat Apr 6 15:09:56 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Fixed bundling frameworks in RPMs or DEBs.
+ * relative_path.sh: New script building the relative path
+ of a path relative to another one.
+ * GNUmakefile.in (install): Install relative_path.sh.
+ * common.make (REL_PATH_SCRIPT): set to be
+ $GNUSTEP_MAKEFILES/relative_path.sh.
+ * Instance/framework.make (internal-framework-install_): Use
+ REL_PATH_SCRIPT to build symlinks in a relocatable way.
+
+Sat Apr 6 04:37:36 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/bundle.make (BUNDLE_LIBS): Do not add system libraries
+ when we are not building Windows DLLs.
+
+Thu Apr 4 14:57:38 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.in: Quote FORCE_USER_ROOT and FORCE_DEFAULTS_ROOT when
+ building the -D preprocessor option.
+ * configure: Regenerated.
+
+Thu Apr 4 14:41:53 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in (temp_path, gnustep_class_path): Partially
+ wewritten creating temp_path and gnustep_class_path to avoid
+ spurious :.
+
+Thu Apr 4 14:25:51 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * ld_lib_path.sh (lib_paths, guile_paths): Rewritten code building
+ lib_paths and guile_paths so that they use GNUSTEP_PATHPREFIX_LIST.
+
+Thu Apr 4 14:19:28 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * ld_lib_path.sh: Only set IFS for the little part which needs it.
+
+Thu Apr 4 14:02:27 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in: Rewritten code setting GNUSTEP_PATHPREFIX_LIST so
+ that duplicated entries are removed.
+
+Thu Apr 4 13:14:35 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ This should fix RPM builds on virgin envs -
+ * GNUstep.sh.in: Removed convert_win_paths and other window
+ specific variables; simply set GNUSTEP_PATHPREFIX_LIST and use
+ that to set CLASSPATH as well. Made sure we never call unset for
+ an unknown variable. Added verbose comments about technical
+ pitfalls of sourced files.
+ * ld_lib_path.sh: Make sure we don't unset variables unless we set
+ them.
+
+Thu Apr 4 13:10:27 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in: Quoted paths.
+
+Thu Apr 4 13:01:37 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep-reset.sh: Fixed bugs with shell substitutions and other
+ technicalities.
+
+2002-04-04 Fred Kiefer <FredKiefer@gmx.de>
+
+ * Instance/bundle.make
+ Use a += instead of a = to define BUNDLE_LIBS (Patch by Alexander
+ Malmberg)
+
+2002-04-03 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/gnustep-howto.texi: Update.
+
+2002-04-03 Fred Kiefer <FredKiefer@gmx.de>
+
+ * Instance/bundle.make
+ Uncommented the definition of BUNDLE_LIBS, so that bundles work
+ under MS Windows.
+
+Tue Apr 2 13:39:17 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_MAKEINFO_FLAGS): Do not use --no-headers.
+ * Documentation/GNUmakefile.in (GNUSTEP_MAKEINFO_FLAGS): Idem.
+
+Tue Apr 2 13:23:58 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/documentation.make (internal-doc-install_,
+ internal-doc-uninstall_): Install/uninstall .info file into
+ GNUSTEP_DOCUMENTATION_INFO.
+
+Thu Mar 28 13:19:09 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * config.make.in (AWK, SED): Define. Added extensive comment
+ about why we should not get them from configuration, but simply
+ define them to be 'awk' and 'sed'.
+
+Thu Mar 28 13:08:27 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/application.make (TTMP_LIBS): Setup for the benefit of
+ Windows.
+
+Tue Mar 26 18:23:32 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * openapp.in: Do not add EXEEXT at the end of the application name
+ if we are not flattened; if we are, add it in the proper way.
+ Quoted a path. Exec the application wrapper rather than simply
+ running it. Fixed comment when application script not found.
+ * opentool.in: Quoted a path.
+ * debugapp.in: Fixed adding EXEEXT at the end of the application
+ name.
+
+2002-03-26 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Documentation/README.MinGW: Updated to reflect current state
+ of the port and of the MSYS stuff.
+
+Fri Mar 22 16:58:33 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Documentation/install.texi: Tidied part on --disable-import.
+ * INSTALL: Regenerated.
+
+2002-03-20 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Documentation/GNUstep-howto.texi: Correct and expand on the
+ instructions for installing gdomap.
+
+Tue Mar 19 13:05:52 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Simplified implementation of before-$(GNUSTEP_INSTANCE)-all and
+ after-$(GNUSTEP_INSTANCE)-all; implemented support for
+ before-$(GNUSTEP_INSTANCE)-install and
+ after-$(GNUSTEP_INSTANCE)-install.
+ * Instance/rules.make (before-$(GNUSTEP_INSTANCE)-install): New
+ target.
+ (after-$(GNUSTEP_INSTANCE)-install): New target.
+ (.PHONY): Added the new targets.
+ * Instance/rules.make (before-$(GNUSTEP_INSTANCE)-uninstall): New
+ target.
+ (after-$(GNUSTEP_INSTANCE)-uninstall): New target.
+ (.PHONY): Added the new targets.
+ * Instance/rules.make (internal-$(GNUSTEP_TYPE)-all): New target
+ automatically calling before-$(GNUSTEP_INSTANCE)-all, then
+ internal-$(GNUSTEP_TYPE)-all_, then after-$(GNUSTEP_INSTANCE)-all.
+ (internal-$(GNUSTEP_TYPE)-install): Similar.
+ (internal-$(GNUSTEP_TYPE)-uninstall): Similar.
+ (.PHONY): Added the new targets.
+ * Instance/application.make (internal-app-all): Renamed to
+ internal-app-all_; do not run before-$(GNUSTEP_INSTANCE)-all and
+ after-$(GNUSTEP_INSTANCE)-all.
+ (internal-app-install): Renamed to internal-app-install_.
+ (internal-app-uninstall): Renamed to internal-app-uninstall_.
+ (.PHONY): Updated for change.
+ * Instance/bundle.make: Similar updates.
+ * Instance/clibrary.make: Idem.
+ * Instance/ctool.make: Idem.
+ * Instance/documentation.make: Idem (NB - likely this fixes
+ unnoticed errors here with multiple after-xxx-all and
+ before-xxx-all too)
+ * Instance/framework.make: Idem.
+ * Instance/gswapp.make: Idem.
+ * Instance/gswbundle.make: Idem.
+ * Instance/java-tool.make: Idem.
+ * Instance/java.make: Idem.
+ * Instance/library.make: Idem.
+ * Instance/objc.make: Idem.
+ * Instance/palette.make: Idem.
+ * Instance/resource-set.make: Idem.
+ * Instance/service.make: Idem.
+ * Instance/subproject.make: Idem.
+ * Instance/test-application.make: Idem.
+ * Instance/test-library.make: Idem.
+ * Instance/test-tool.make: Idem.
+ * Instance/tool.make: Idem.
+
+ * Instance/bundle.make (.PHONY): Removed nonexisting target
+ internal-bundle-clean and internal-bundle-distclean.
+ * Instance/clibrary.make (internal-clibrary-clean): Unused
+ target removed.
+ * Instance/gswbundle.make (.PHONY): Removed nonexisting targets
+ internal-gswbundle-clean and internal-gswbundle-distclean.
+
+2002-03-19 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * fixpath.sh.in: Restructure slightly so we can easily edit the
+ fixpath.sh to force cygwin style paths.
+ * Documentation/README.cygwin: Edd note about editing fixpath.sh
+
+Mon Mar 18 16:57:20 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: If REMOVE_EMPTY_DIRS is yes, remove efficiently all
+ empty directories from include and library flags (ie, -I and -L
+ flags). (Suggestion by Markus Hitter <mah@jump-ing.de>).
+ * target.make (REMOVE_EMPTY_DIRS): Set to yes in the case of OS X.
+
+Mon Mar 18 14:07:53 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep-reset.sh: New file. Sourcing this file resets the
+ environment from the GNUstep variables. It can be used to switch
+ LIBRARY_COMBO on the fly - you first reset the existing
+ environment using this script, then export the new LIBRARY_COMBO,
+ then source GNUstep.sh again.
+ * GNUmakefile.in (install): Install GNUstep-reset.sh
+
+Mon Mar 18 10:37:49 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/test-library.make: Fixed typo, internal-test_lib-*
+ targets were called internal-testlib-*.
+
+2002-03-14 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.3.0
+ * Documentation/README.MinGW: Minor formatting.
+ * README, ANNOUNCE, GNUstep-HOWTO, ...: Regenerate.
+
+2002-03-13 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/gnustep-howto.texi: Update.
+ * Documentation/install.texi: Likewise.
+ * Documentation/news.texi: Likewise.
+ * Documentation/readme.texi: Likewise.
+
+2002-03-13 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Documentation/README.MinGW: New content describing native MinGW build
+ * Documentation/README.cygwin: Old contentnon cross-compiling to MinGW
+ * fixpath.sh: Removed
+ * fixpath.sh.in: new file
+ * configure.in: generate fixpath.sh from fixpath.sh.in to control
+ whether it fixes cygwin or mingw/msys style paths.
+
+2002-03-11 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * cygpath.sh: Removed ... replaced by fixpath.sh which should handle
+ either cygwin or mingw/msys paths.
+
+2002-03-10 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * target.make: Force shared=yes for cygwin and mingw as stuff simply
+ doesn't work under windows when built static.
+ * configure.in: If hosted under mingw, use 'install' program and 'sh'
+ and don't abort if chown is not found.
+ * fixpath.sh: new path fixup script for mingw/msys as well as cygwin
+ * GNUstep.sh.in: use fixpath
+ * common.make: ditto
+
+Sat Mar 9 09:52:51 2002 Adam Fedor <fedor@yogi.doc.com>
+
+ * configure.in: Move HOST_INSTALL so that prefix is defined before
+ it is set.
+
+Fri Mar 8 12:53:05 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/palette.make ($(PALETTE_DIR_NAME)/Resources/palette.table): Fixed
+ typo.
+
+Thu Mar 7 14:06:37 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rules.make (DLL_DEF): Do not pass down to submakes.
+ * Instance/library.make (DLL_DEF): Define here instead.
+
+Thu Mar 7 14:05:38 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (SUBPROJECT_ROOT_DIR): Unused variable removed.
+ * Master/rules.make (SUBPROJECT_ROOT_DIR): Idem.
+
+Thu Mar 7 13:43:28 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make: Include Instance/rules.make before using the
+ ADDITIONAL flags.
+ * Instance/rules.make (BUNDLE_LIBS, ADDITIONAL_INCLUDE_DIRS,
+ ADDITIONAL_GUI_LIBS, ADDITIONAL_TOOL_LIBS, ADDITIONAL_OBJC_LIBS,
+ ADDITIONAL_LIB_DIRS, ADDITIONAL_LIBRARY_LIBS, ADDITIONAL_LDFLAGS,
+ ADDITIONAL_CLASSPATH, LIBRARIES_DEPEND_UPON): Add instance
+ specific flags here.
+ * Master/rules.make (BUNDLE_LIBS, ADDITIONAL_INCLUDE_DIRS,
+ ADDITIONAL_GUI_LIBS, ADDITIONAL_TOOL_LIBS, ADDITIONAL_OBJC_LIBS,
+ ADDITIONAL_LIB_DIRS, ADDITIONAL_LIBRARY_LIBS, ADDITIONAL_LDFLAGS,
+ ADDITIONAL_CLASSPATH, LIBRARIES_DEPEND_UPON): Do not pass down to
+ submakes.
+
+Wed Mar 6 10:15:20 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rules.make (MAIN_MODEL_FILE): Do not pass down to submakes here.
+ * Instance/application.make (MAIN_MODEL_FILE): Define here. Also,
+ simplified code to add it to the info plist.
+ * Instance/bundle.make: Idem.
+ * Instance/framework.make: Idem.
+ * Instance/gswapp.make: Idem.
+ * Instance/palette.make: Idem.
+
+Wed Mar 6 09:45:01 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * clean_os.sh: Remove minor version number for Darwin 5 (Patch
+ from Helge Hess <helge.hess@skyrix.com>).
+
+Tue Mar 5 16:05:22 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/bundle.make (shared-instance-bundle-all): Fixed
+ tricky problem when copying resources from subprojects ... * in
+ the shell being expanded to itself if no matching file exists.
+
+Tue Mar 5 15:15:41 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/bundle.make (BUNDLE_INSTALL_DIR): Define with =,
+ not :=.
+
+Tue Mar 5 14:37:58 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in (GNUSTEP_USER_ROOT): Fixed setting in case
+ GNUSTEP_FLATTENED (Suggestion from Marcus Müller
+ <znek@mulle-kybernetik.com>).
+ * GNUstep.csh.in: Idem.
+
+Tue Mar 5 13:54:36 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rules.make (COMPONENTS, LANGUAGES,
+ WEBSERVER_RESOURCE_FILES, LOCALIZED_WEBSERVER_RESOURCE_FILES,
+ WEBSERVER_RESOURCE_DIRS, LOCALIZED_RESOURCE_FILES, RESOURCE_FILES,
+ RESOURCE_DIRS): Do not pass down to submakes.
+ * Instance/Shared/bundle.make: Do not use override when defining
+ resource variables.
+ * Instance/gswapp.make: Idem.
+ * Instance/gswbundle.make: Idem.
+
+Tue Mar 5 13:45:01 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/subproject.make: Modified to have resources, and manage
+ them by using Instance/Shared/bundle.make; put them into a
+ Resources/Subproject directory. Removed a lot of framework
+ specific code obsoleted by the new more general code - tidied up
+ framework code to build headers.
+ * Master/subproject.make (internal-clean): Remove Resources/Subproject.
+ (internal-distclean): Remove Resources.
+ * Instance/Shared/bundle.make: If the instance has subprojects,
+ copy recursively resources from the subprojects
+ Resources/Subproject dir into the instance resource bundle.
+
+Tue Mar 5 13:09:09 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/headers.make (HEADER_FILES): Do not define
+ HEADER variables using override.
+ * Instance/framework.make: Idem.
+ * Instance/subproject.make: Idem.
+
+Tue Mar 5 13:02:19 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rules.make (HEADER_FILES, HEADER_FILES_DIR,
+ HEADER_FILES_INSTALL_DIR): Do not pass down to submakes.
+
+Tue Mar 5 13:01:45 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make (HEADER_FILES): Define here.
+ * Instance/subproject.make (HEADER_FILES): Idem.
+
+Tue Mar 5 12:57:08 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/gswapp.make (COMPONENTS, LANGUAGES,
+ WEBSERVER_RESORCE_FILES, LOCALIZED_WEBSERVER_RESOURCE_FILES,
+ WEBSERVER_RESORCE_DIRS, LOCALIZED_RESOURCE_DIRS, RESOURCE_FILES,
+ RESOURCE_DIRS): Define here.
+
+Tue Mar 5 12:50:05 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * config.make.in (HAS_LN_S): Set.
+
+Tue Mar 5 12:34:29 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/framework.make: Major simplification by using
+ Instance/Shared/bundle.make to manage resources.
+
+Tue Mar 5 12:20:09 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/bundle.make: Added support for gsweb resources;
+ bug fixes and tidyups everywhere.
+ * Instance/application.make (GNUSTEP_SHARED_INSTANCE_BUNDLE_RESOURCE_PATH): Use
+ this variable, not GNUSTEP_SHARED_INSTANCE_BUNDLE_PATH.
+ * Instance/bundle.make: Idem.
+ * Instance/service.make: Idem.
+ * Instance/palette.make: Idem.
+
+Tue Mar 5 10:10:45 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/resource-set.make: Added localized resource support,
+ fixed bugs.
+
+Tue Mar 5 09:21:12 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/resource-set.make (internal-all): Do nothing, not even
+ subproject processing.
+ (internal-clean): Idem.
+ (internal-distclean): Idem.
+
+Tue Mar 5 07:26:53 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/gswapplication.make: Renamed bundle directory where
+ gsweb resources are kept from WebServerResources to
+ Resources/WebServer.
+ * Instance/gswbundle.make: Idem.
+ * Instance/framework.make: Idem.
+ * Instance/subproject.make: Idem.
+
+ * Instance/framework.make (framework-webresource-dir): Don't
+ create the link for the WebServerResources. No longer needed
+ since it uses the normal Resources link now.
+ * Instance/subproject.make (framework-webresource-dir): Idem.
+
+Mon Mar 4 16:14:52 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (MAKE_FILES): Added resource-set.make.
+ (MASTER_MAKE_FILES): Added resource-set.make.
+ (INSTANCE_MAKE_FILES): Added resource-set.make.
+ * resource-set.make: New makefile.
+ * Master/resource-set.make: New makefile.
+ * Instance/resource-set.make: New makefile.
+
+2002-03-02 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * GNUstep.sh.in: Don't define GNUSTEP_DEFAULTS_ROOT
+ * GNUstep.csh.in: Don't define GNUSTEP_DEFAULTS_ROOT
+ * configure.in: Remove some unused stuff and improve log
+ messages for forcing defaults and user roots.
+
+2002-03-01 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * user_home.c: Parse .GNUsteprc in configured GNUSTEP_SYSTEM_ROOT
+ if per-user version is not available. Treat ~ at start of root
+ as home directory of user.
+
+Fri Mar 1 15:28:58 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/service.make: Use Instance/Shared/bundle.make to
+ install resources. This automatically implements localizable
+ resources for services. Removed internal targets, simplified
+ code.
+
+Fri Mar 1 15:20:09 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/palette.make: Use Instance/Shared/bundle.make to install
+ resources. This automatically implements localizable resources
+ for palettes. Removed internal targets, simplified code.
+
+Fri Mar 1 14:36:43 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/headers.make: Added specific optimization for
+ installing quickly headers during develoment - activated by
+ setting GNUSTEP_DEVELOPER=YES in the environment.
+
+Fri Mar 1 12:28:52 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/subproject.make: Use Shared/Instance/headers.make
+ to install/uninstall headers.
+
+2002-03-01 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * GNUstep.sh.in: Updated to use user_home tool.
+ * GNUstep.csh.in: ditto
+ * configure.in: Updated comments/instructions to talk about
+ forcing common user and defaults root directories.
+
+Fri Mar 1 10:58:58 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (which_lib$(EXEEXT)): Compile $<, not
+ which_lib.c.
+ (user_home$(EXEEXT)): Idem.
+
+2002-03-01 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * user_home.c: Port to MINGW. Added functionality under unix
+ to report GNUSTEP_USER_ROOT and GNUSTEP_DEFAULTS_ROOT
+
+2002-02-28 Adam Fedor <fedor@gnu.org>
+
+ * target.make (darwin5): Correct compile flags. Add
+ flags to ignore MacOSX headers if FOUNDATION_LIB is gnu.
+ (darwin1): Correct compile flags.
+ (nextstep4): Likewise.
+ (nextstep3): Likewise.
+
+2002-02-28 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * configure.in: setup variables to force particular paths for user
+ and defaults roots.
+ * config.make.in: pass configured forced paths on to build process
+ * common.make: use path forcing.
+
+Thu Feb 28 18:27:05 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rules.make (PRINCIPAL_CLASS): Do not pass down
+ to submakes.
+ * Instance/application.make (PRINCIPAL_CLASS): Define in terms of
+ $(GNUSTEP_INSTANCE)_PRINCIPAL_CLASS; do not use override when
+ fixing it up if it's empty.
+ * Instance/bundle.make (PRINCIPAL_CLASS): Idem.
+ * Instance/framework.make (PRINCIPAL_CLASS): Idem.
+ * Instance/gswbundle.make (PRINCIPAL_CLASS): Idem.
+ * Instance/java-tool.make (PRINCIPAL_CLASS): Idem.
+ * Instance/palette.make (PRINCIPAL_CLASS): Idem.
+ * Instance/gswapp.make (PRINCIPAL_CLASS): Define.
+
+Thu Feb 28 18:16:11 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/gswbundle.make (COMPONENTS, LANGUAGES,
+ WEBSERVER_RESORCE_FILES, LOCALIZED_WEBSERVER_RESOURCE_FILES,
+ WEBSERVER_RESORCE_DIRS, LOCALIZED_RESOURCE_DIRS, RESOURCE_FILES,
+ RESOURCE_DIRS): Define here.
+
+Thu Feb 28 15:22:31 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Instance/application.make: Simplified a lot by using
+ Instance/Shared/bundle.make to copy resource files into the
+ application bundle.
+
+2002-02-28 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * user_home.c: new utility to report users home directory.
+ * configure.in: check for password file stuff etc.
+ * GNUmakefile.in: build user_home
+
+Thu Feb 28 14:35:27 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Instance/rules.make (.PHONY): Declare here as .PHONY
+ before-$(GNUSTEP_INSTANCE)-all and after-$(GNUSTEP_INSTANCE)-all.
+ * Instance/application.make: And not here.
+ * Instance/bundle.make: Idem.
+ * Instance/ctool.make: Idem.
+ * Instance/documentation.make: Idem.
+ * Instance/framework.make: Idem.
+ * Instance/gswapp.make: Idem.
+ * Instance/gswbundle.make: Idem.
+ * Instance/java-tool.make: Idem.
+ * Instance/java.make: Idem.
+ * Instance/library.make: Idem.
+ * Instance/objc.make: Idem.
+ * Instance/palette.make: Idem.
+ * Instance/rules.make: Idem.
+ * Instance/service.make: Idem.
+ * Instance/subproject.make: Idem.
+ * Instance/test-library.make: Idem.
+ * Instance/tool.make: Idem.
+
+Thu Feb 28 13:24:08 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * GNUmakefile.in (INSTANCE_SHARED_MAKE_FILES): Added bundle.make.
+ * Instance/Shared/bundle.make: New file.
+ * Instance/bundle.make: Simplified a lot by using
+ Instance/Shared/bundle.make to create bundle dirs and copying
+ resource files there.
+
+Thu Feb 28 13:03:12 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Instance/rules.make (before-$(GNUSTEP_INSTANCE)-all): Added.
+ (after-$(GNUSTEP_INSTANCE)-all): Added.
+ * Instance/application.make: Removed from here.
+ * Instance/bundle.make: Idem.
+ * Instance/ctool.make: Idem.
+ * Instance/documentation.make: Idem.
+ * Instance/framework.make: Idem.
+ * Instance/gswapp.make: Idem.
+ * Instance/gswbundle.make: Idem.
+ * Instance/java-tool.make: Idem.
+ * Instance/java.make: Idem.
+ * Instance/library.make: Idem.
+ * Instance/objc.make: Idem.
+ * Instance/palette.make: Idem.
+ * Instance/rules.make: Idem.
+ * Instance/service.make: Idem.
+ * Instance/subproject.make: Idem.
+ * Instance/test-library.make: Idem.
+ * Instance/tool.make: Idem.
+
+Thu Feb 28 11:06:51 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * common.make (GNUSTEP_WOAPPS): Removed.
+
+Thu Feb 28 11:01:34 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * GNUmakefile.in: Changed everywhere 'Apps' (used as directory
+ name) into 'Applications'.
+ * common.make: Idem.
+ * debugapp.in: Idem.
+ * executable.template.in: Idem.
+ * openapp.in: Idem.
+ * Documentation/DESIGN: Idem.
+
+Thu Feb 28 10:57:14 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Documentation/install.texi (Warnings for deprecated #import):
+ Say that MacOS X uses #import.
+ * INSTALL: Regenerated.
+
+2002-02-28 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * configure.in: Set default user root to $HOME/GNUstep as a
+ quick hack solution to problems with LOGNAME
+
+2002-02-27 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/README.MinGW: Update.
+ * Documentation/faq.texi: Likewise.
+ * Documentation/machines.texi: Likewise.
+ * Documentation/userfaq.texi: Likewise.
+
+Wed Feb 27 16:51:34 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * subproject.make: Broken into Master and Instance.
+ * Instance/subproject.make: New file.
+ * Master/subproject.make: New file.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added subproject.make.
+ (INSTANCE_MAKE_FILES): Added subproject.make.
+
+Wed Feb 27 16:38:36 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/rules.make (PALETTE_ICON): Do not pass it to submakes.
+ * Instance/palette.make (PALETTE_ICON): Define it here.
+ (PALETTE_INSTALL_DIR): Define with =, not :=.
+
+Wed Feb 27 16:33:03 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * palette.make: Broken into Master and Instance.
+ * Instance/palette.make: New file.
+ * Master/palette.make: New file.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added palette.make.
+ (INSTANCE_MAKE_FILES): Added palette.make.
+
+Wed Feb 27 16:28:16 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * framework.make: Broken into Master and Instance.
+ * Instance/framework.make: New file.
+ * Master/framework.make: New file.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added framework.make.
+ (INSTANCE_MAKE_FILES): Added framework.make.
+ * rules.make (DERIVED_SOURCES): Define.
+
+Wed Feb 27 13:54:53 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Documentation/install.texi: Document the --disable-import flag.
+ * INSTALL: Regenerated.
+
+Wed Feb 27 13:05:49 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * configure.in: Added configure option --disable-import which
+ allows users to turn on/off the compiler warnings against usage of
+ #import. Leave the default to no warnings.
+ * configure: Regenerated.
+ * config.make.in (OBJC_NO_IMPORT_FLAGS): New flag.
+ * common.make (OBJCFLAGS): Set in terms of OBJC_NO_IMPORT_FLAGS.
+
+2002-02-27 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * Documentation/README.MinGW: updated to latest versions of
+ things I used. Describe current state.
+
+2002-02-25 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * target.make: Use winsocks2 library ... we will never support
+ systems that only have the old one, and we need the new one
+ for our networking.
+
+Sun Feb 24 13:22:09 2002 Matthias Klose <doko@cs.tu-berlin.de>:
+
+ * GNUstep.sh.in, GNUstep.csh.in: Start make_services in a
+ subshell, disables "Done" messages for shells with job control.
+
+Fri Feb 22 18:08:39 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * openapp.in: Quote the arguments when executing the app.
+
+Fri Feb 22 15:49:01 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Instance/documentation.make: Removed doubled installation of
+ $(GNUSTEP_INSTANCE)_INSTALL_FILES.
+
+Fri Feb 22 13:18:43 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/rules.make (SERVICE_INSTALL_DIR): Unused variable
+ removed.
+
+Fri Feb 22 13:12:44 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Instance/ctool.make (internal-ctool-uninstall): Use
+ GNUSTEP_INSTANCE here.
+
+Fri Feb 22 13:06:18 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * service.make: Broken into Master and Instance.
+ * Master/service.make: New file.
+ * Instance/service.make: New file.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added service.make
+ (INSTANCE_MAKE_FILES): Idem.
+
+Fri Feb 22 12:55:01 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/rules.make (SCRIPTS_DIRECTORY, CHECK_SCRIPT_DIRS): Do not
+ define here.
+ * Instance/test-library.make: But rather here.
+
+Fri Feb 22 12:53:43 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * test-library.make: Broken into Master and Instance.
+ * Master/test-library.make: New file.
+ * Instance/test-library.make: New file.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added test-library.make.
+ (INSTANCE_MAKE_FILES): Idem.
+
+Fri Feb 22 12:38:59 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * tool.make: Broken into Master and Instance.
+ * Instance/tool.make: New file.
+ * Master/tool.make: New file.
+
+ * test-tool.make: Broken into Master and Instance.
+ * Instance/test-tool.make: New file.
+ * Master/test-tool.make: New file.
+
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added test-tool.make
+ and tool.make
+ (INSTANCE_MAKE_FILES): Idem.
+
+Fri Feb 22 12:33:13 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/test-application.make: Use test-app, not testapp, as
+ GNUSTEP_TYPE.
+ * Instance/test-application.make: Updated all rules.
+ * test-application.make: Updated.
+
+Fri Feb 22 12:24:17 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/test-application.make (internal-check): Target removed.
+
+Fri Feb 22 12:14:08 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * test-application.make: Broken into Master and Instance.
+ * Master/test-application.make: New file.
+ * Instance/test-application.make: New file.
+
+Fri Feb 22 12:02:55 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/rules.make (APPLICATION_ICON): Do not pass this
+ down to submake Instance invocation.
+ * Instance/application.make: Define it here instead.
+
+Fri Feb 22 11:55:42 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Instance/library.make: Do not define HEADER_FILES_DIR here.
+
+Fri Feb 22 11:50:17 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/rules.make (HAS_GSWCOMPONENTS, GSWAPP_INFO_PLIST): Do not
+ pass these to the submake Instance invocation as arguments to
+ make.
+ * Instance/gswapp.make: Define the appropriate ones here instead.
+ * Instance/gswbundle.make: And here.
+
+Fri Feb 22 11:36:40 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Instance/gswbundle.make: Updated/modified to use
+ Instance/Shared/headers.make to manage headers.
+
+Fri Feb 22 11:34:22 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/gswbundle.make: All rules changed to invoke
+ internal-gswbundle-* rules rather than internal-bundle-* rules.
+ * Instance/gswbundle.make: All internal-bundle-* rules changed
+ to be internal-gswbundle-*.
+ * gswbundle.make: Corresponding update.
+
+Fri Feb 22 11:33:29 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * gswbundle.make: Broken into Master and Instance.
+ * Master/gswbundle.make: New file.
+ * Instance/gswbundle.make: New file.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added gswbundle.make
+ (INSTANCE_MAKE_FILES): Adde gswbundle.make
+
+Fri Feb 22 11:25:36 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * gswapp.make: Broken into Master and Instance.
+ * Master/gswapp.make: New file.
+ * Instance/gswapp.make: New file.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added gswapp.make.
+ (INSTANCE_MAKE_FILES): Added gswapp.make
+
+Fri Feb 22 01:10:09 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rules.make (TEXI_FILES, GSDOC_FILES, AGSDOC_FILES,
+ AGSDOC_FLAGS, LATEX_FILES, JAVADOC_FILES, JAVADOC_SOURCEPATH,
+ DOC_INSTALL_DIR, TEXT_MAIN): Do not manually pass these variables
+ down to the Instance submake invocation.
+ * Instance/documentation.make: Set them here instead.
+
+Fri Feb 22 01:04:04 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * documentation.make: Broken into Master and Instance.
+ * Master/documentation.make: New file.
+ * Instance/documentation.make: New file.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added documentation.make.
+ (INSTANCE_MAKE_FILES): Added documentation.make.
+
+Fri Feb 22 00:42:11 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/objc.make (internal-clean): Remove GNUSTEP_OBJ_DIR, not
+ GNUSTEP_OBJ_PREFIX.
+ * Instance/objc.make Minor simplification of rules by removing
+ install-objc_program target.
+ (OBJC_PROGRAM_INSTALLATION_DIR): Don't define if already defined.
+ (internal-objc_program-uninstall): Implemented.
+
+Fri Feb 22 00:38:47 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * objc.make: Broken into Master and Instance.
+ * Master/objc.make: New file.
+ * Instance/objc.make: New file.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added objc.make.
+ (INSTANCE_MAKE_FILES): Added objc.make.
+
+Thu Feb 21 14:37:37 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Instance/Shared/headers.make: Removed
+ xxx_EMPTY_HEADER_FILES_INSTALL_DIR. People can simply set
+ xxx_HEADER_FILES_INSTALL_DIR to `.' if they want to force it
+ to be like empty.
+
+Wed Feb 20 16:56:43 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Instance/library.make (FINAL_LIBRARY_INSTALL_DIR): Only set
+ if not already set.
+ * Instance/clibrary.make: Trivialized. Set
+ FINAL_LIBRARY_INSTALL_DIR, then include Instance/library.make to
+ inherit all the makefile code from there ... very cool. Please
+ note that this 'makefile inheritance' wouldn't have been possible
+ had I not broken the makefiles into Master and Instance.
+
+Wed Feb 20 16:49:41 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Instance/library.make: Heavily simplified and improved support
+ for headers by simply using Instance/Shared/headers.make to manage
+ headers.
+ * Instance/Shared/headers.make: Modified to support
+ $(GNUSTEP_INSTANCE)_EMPTY_HEADER_FILES_INSTALL_DIR to allow
+ callers to specify they really want an empty header files install
+ dir, which is not otherwise tollerated, and automatically replaced
+ with $(GNUSTEP_INSTANCE).
+
+Wed Feb 20 15:41:14 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * library.make: Broken into Master and Instance.
+ * Master/library.make: New file.
+ * Instance/library.make: New file.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added library.make.
+ (INSTANCE_MAKE_FILES): Added library.make.
+
+Wed Feb 20 15:29:41 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * clibrary.make: Broken into Master and Instance.
+ * Master/clibrary.make: New file.
+ * Instance/clibrary.make: New file.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added clibrary.make.
+ (INSTANCE_MAKE_FILES): Added clibrary.make.
+
+Wed Feb 20 13:06:17 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/rules.make (%.tools): Use --no-print-directory in the
+ recursive make invocation.
+
+Wed Feb 20 12:49:55 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Instance/ctool.make: Simplified by removing the install-ctool
+ rule.
+
+Wed Feb 20 12:45:32 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * ctool.make: Broken into Master and Instance.
+ * Master/ctool.make: New file.
+ * Instance/ctool.make: New file.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Added ctool.make.
+ (INSTANCE_MAKE_FILES): Added ctool.make.
+
+Wed Feb 20 11:37:55 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/rules.make (internal-distclean): Remove core files.
+
+Wed Feb 20 10:48:04 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/source-distribution.make (VERTAG): Replace efficiently
+ using make function.
+ * Master/source-distribution.make: Implemented allowing to change
+ the compression program used, and define a standard set of handy
+ compressions. (Patch by Stefan Urbanek <stefanurbanek@yahoo.fr>
+ modified).
+ * Master/source-distribution.make: Added support for a
+ .dist-ignore file specifying files not to include in distribution
+ files. (Suggestion by Stefan Urbanek).
+
+2002-02-14 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * configure.in: New option to specify GNUSTEP_DEFAULTS_ROOT
+ * configure: Regenerated.
+ * GNUstep.sh.in: Use GNUSTEP_DEFAULTS_ROOT
+
+2002-02-13 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * configure: regenerated
+ * configure.in: Set default user root to be ~$LOGNAME/GNUstep
+ rather than ~/GNUstep so that it is consistent with the operation
+ of the NSUserName() function ... ie. we use the login name in
+ preference to any temporarily set user id.
+ People wanting the old inconsistent behavior can simply unset
+ the LOGNAME environment variable in any subshell they start
+ with a new uid.
+
+Tue Feb 12 16:37:51 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * framework.make (INTERNAL_LIBRARIES_DEPEND_UPON): Set this
+ variable in the same way as it is done in library.make (Suggestion
+ from Stephen Brandon <stephen@brandonitconsulting.co.uk>).
+
+Tue Feb 12 09:04:38 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * config.guess: Updated to latest version.
+ * config.sub: Idem.
+
+Sun Feb 10 02:06:40 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * library.make (SOVERSION): Fixed typo.
+
+Sat Feb 9 13:05:27 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/application.make: Do not protect against multiple
+ inclusions.
+ * Instance/bundle.make: Idem.
+ * Instance/java.make: Idem.
+ * Instance/java-tool.make: Idem.
+ * Instance/rules.make: Idem.
+ * Master/aggregate.make: Idem.
+ * Master/application.make: Idem.
+ * Master/bundle.make: Idem.
+ * Master/java.make: Idem.
+ * Master/java-tool.make: Idem.
+ * Master/rules.make: Idem.
+ * Master/rpm.make: Idem.
+ * Master/source-distribution.make: Idem.
+
+Sat Feb 9 11:52:11 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (clean): Remove Instance/Shared/*~.
+
+Sat Feb 9 11:45:16 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/headers.make: New file - the code is new,
+ and has improvements over the code found in old makefiles.
+ * GNUmakefile.in (INSTANCE_SHARED_MAKE_FILES): Added headers.make.
+ * Instance/bundle.make: Simplified and improved management of
+ headers by using Instance/Shared/headers.make to manage headers.
+
+Sat Feb 9 11:22:10 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * bundle.make: Broken into Master and Instance.
+ * Master/bundle.make: New file.
+ * Instance/bundle.make: New file.
+ * GNUmakefile.in (INSTANCE_MAKE_FILES, MASTER_MAKE_FILES):
+ Added bundle.make.
+
+Fri Feb 8 16:15:20 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/java-tool.make (internal-distclean): Depend on
+ subprojects, not variables, to spare the recursive make
+ invocation.
+ * Master/java.make (internal-distclean): Idem.
+
+Fri Feb 8 13:32:33 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/java.make (internal-java_package-uninstall): Added.
+
+Fri Feb 8 13:19:37 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/java.make (shared-instance-java-uninstall):
+ Implemented.
+
+Fri Feb 8 13:17:45 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared/java.make: New makefile fragment built from
+ code common in java.make and java-tool.make.
+ * Instance/java-tool.make: Simplified a lot by using
+ Instance/Shared/java.make to do most of the work.
+ * Instance/java.make: Idem.
+ * GNUmakefile.in (INSTANCE_SHARED_MAKE_FILES): Install
+ Instance/Shared/java.make.
+
+Fri Feb 8 12:36:01 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/Shared: New directory.
+ * Instance/Shared/README: New file.
+ * GNUmakefile.in (INSTANCE_SHARED_MAKE_FILES): New variable.
+ (install): Create the GNUSTEP_MAKEFILES/Instance/Shared directory.
+ Install INSTANCE_SHARED_MAKE_FILES in there.
+
+Fri Feb 8 12:37:56 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/rules.make (JAVA_JNI_OBJS): Fixed typo/bug - underscore
+ in excess.
+
+Fri Feb 8 11:43:27 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * java-tool.make: Broken into Master and Instance.
+ * Instance/java-tool.make: New file.
+ * Master/jave-tool.make: New file.
+ * GNUmakefile.in (INSTANCE_MAKE_FILES): Added java-tool.make
+ (MASTER_MAKE_FILES): Added java-tool.make.
+
+Fri Feb 8 10:07:42 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * java.make: Broken into Master and Instance.
+ * Instance/java.make: New file.
+ * Master/java.make: New file.
+ * GNUmakefile.in (INSTANCE_MAKE_FILES): Added java.make
+ (MASTER_MAKE_FILES): Added java.make.
+
+Thu Feb 7 12:58:52 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * java.make (install-java_package): Recognize and install
+ xxx_JAVA_PROPERTIES_FILES.
+ * java-tool.make (install-java_tool): Idem.
+
+2002-02-04 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * opentool.in: Rewrite searching code so that it looks in the
+ appropriate host/os/library-combo subdirectory to find tools.
+
+2002-02-03 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Remove setting of GCC_SO_DIR. Remove CPPFLAGS
+ and LDFLAGS with GNUSTEP paths in them since they are already
+ included in default rules. Set OBJC_CPPFLAGS/LDFLAGS for objc
+ thread test.
+ * GNUstep.csh.in: Remove GCC_SO_DIR
+ * GNUstep.sh.in: Likewise.
+ * ld_lib_path.csh: Likewise.
+ * ld_lib_path.sh: Likewise.
+
+ * Documentation/userfaq.texi: New file.
+
+Sat Feb 2 10:54:35 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in (GNUSTEP_USER_ROOT): Fixed typo.
+ * GNUstep.csh.in: Idem.
+
+Fri Feb 1 11:33:11 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/aggregate.make: New file with code taken from
+ aggregate.make.
+ * aggregate.make: If this is a Master invocation, include
+ Master/aggregate.make, otherwise include nothing.
+ * GNUmakefile.in (MASTER_MAKE_FILES): Install aggregate.make.
+
+2002-02-01 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * GNUmakeifle: install Master and Instance versions of
+ application.make
+
+Thu Jan 31 17:47:39 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Master/application.make (APP_EXTENSION): Set it in common.make,
+ so that it can be overridden at will.
+ * Instance/application.make (INTERNAL_app_NAME, TARGET): Replaced
+ everywhere by GNUSTEP_INSTANCE.
+
+Thu Jan 31 17:38:17 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * application.make: Replaced with a makefile which includes
+ Master/application.make or Instance/application.make or nothing
+ depending on case. The original code broken in two and move into
+ Master/application.make and Instance/application.make.
+ * Master/application.make: New file.
+ * Instance/application.make: new file.
+ * GNUmakefile.in: Install the new files.
+
+Thu Jan 31 11:27:06 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * configure.in: Moved determination of host, target and build
+ system at the beginning of the file, so that any GNUstep test can
+ use this knowledge.
+ * configure.in (OBJC_RUNTIME_LIB): Use -F- option to awk rather
+ than piping through an additional tr process.
+ (DATE): Unused variable removed.
+ (GNUSTEP_SYSTEM_ROOT, GNUSTEP_LOCAL_ROOT, GNUSTEP_NETWORK_ROOT,
+ GNUSTEP_USER_ROOT): Print out which directories we are going to
+ use for all these variables.
+ (GNUSTEP_USER_ROOT): Set it to be ~/GNUstep or
+ $HOMEDRIVE/$HOMEPATH/GNUstep on Windows.
+ * configure: Regenerated.
+ * GNUstep.sh.in (GNUSTEP_USER_ROOT): On Windows, convert \ into /.
+ * GNUstep.csh.in: Idem.
+
+Wed Jan 30 19:01:11 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (clean): Remove *~ in Master/ and Instance/ as
+ well.
+
+Wed Jan 30 18:57:48 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/README: New file.
+
+Wed Jan 30 18:43:06 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rules.make (%.variables): Do not pass down to the
+ Instance submake invocation _SUBPROJECTS, OBJC_FILES, JAVA_FILES
+ and similar lists of source units.
+ * Instance/rules.make: Set up all those variables here.
+ ($(GNUSTEP_OBJ_DIR)): Rule to create the compilation directory
+ moved into the top-level rules.make as it's not actually dependent
+ on the instance.
+
+Wed Jan 30 18:13:25 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Instance/rules.make: Code to set generic flags and to build
+ objects from sources moved back into the top-level rules.make.
+ Code which will - not yet but will - depend on the instance
+ retained here instead.
+ * rules.make: Only include Instance/rules.make if GNUSTEP_INSTANCE
+ is non empty.
+
+Wed Jan 30 17:56:44 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Master/rules.make (target): Renamed everywhere to 'instance' to
+ avoid confusion.
+ (%.variables): Pass down the new variables GNUSTEP_TYPE and
+ GNUSTEP_INSTANCE, but not GNUSTEP_MAKE_INSTANCE_INVOCATION.
+ * common.make: Unexport GNUSTEP_INSTANCE and GNUSTEP_TYPE
+ rather than GNUSTEP_MAKE_INSTANCE_INVOCATION.
+ * rules.make: Check for GNUSTEP_INSTANCE to decide whether
+ to include Master/rules.make or not.
+
+Wed Jan 30 17:54:45 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (BUNDLE_EXTENSION, CURRENT_VERSION_NAME,
+ DEPLOY_WITH_CURRENT_VERSION): Moved to common.make.
+
+Wed Jan 30 17:53:03 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make: Always include Instance/rules.make, even if in the
+ Master invocation, to allow master rules in GNUmakefile.postamble
+ to be written as instance rules.
+
+Wed Jan 30 17:52:15 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.in (PERL): Do not check for PERL; do not generate
+ which_lib.pl.
+ * GNUmakefile.in (PERL): Do not define.
+ (distclean): Do not remove which_lib.pl.
+ * which_lib.pl.in: Removed.
+
+Wed Jan 30 17:48:57 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * common.make (GNUSTEP_MAKE_INSTANCE_INVOCATION): Unexport the
+ variable.
+
+Wed Jan 30 17:30:04 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * tool.make (install-tool): Do not install the tool shell script
+ wrapper.
+ (internal-tool-uninstall): Do not remove it.
+ * ctool.make (install-ctool, internal-ctool-uninstall): Idem.
+
+Wed Jan 30 17:11:34 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make All global rules, and all %.variables, %.subprojects,
+ %.tools rules and everything obviously used only in the Master
+ invocation stage moved into Master/rules.make. All compilation
+ rules and everything obviously used only in the Instance
+ invocation stage moved into Instance/rules.make.
+ * rules.make ($(GNUSTEP_MAKEFILES)/Master/*.make): New rule.
+ ($(GNUSTEP_MAKEFILES)/Instance/*.make): New rule.
+
+Wed Jan 30 17:00:21 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Instance/rules.make: New file.
+ * GNUmakefile.in (INSTANCE_MAKE_FILES): Install the new file.
+ * rules.make ($(GNUSTEP_OBJ_DIR)): Rule moved to
+ Instance/rules.make. Include Instance/rules.make if at the
+ instance invocation.
+
+Wed Jan 30 16:39:41 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ Started a major reorganization of the package.
+ * Master/: New directory.
+ * Instance/: New directory.
+ * rpm.make: Moved into Master/rpm.make.
+ * source-distribution.make: Moved into
+ Master/source-distribution.make.
+ * Master/rules.make: New file.
+ * Master/README: New file.
+ * GNUmakefile.in: Create GNUSTEP_MAKEFILES/Master and
+ GNUSTEP_MAKEFILES/Instance. Install rpm.make and
+ source-distribution.make and Master/rules.make into
+ GNUSTEP_MAKEFILES/Master.
+ * rules.make (GNUSTEP_MAKE_INSTANCE_INVOCATION): Pass down
+ to the submake with value of YES.
+ (source-distribution.make, rpm.make): Code including them
+ moved into Master/rules.make.
+ (Master/rules.make): Include it, but only if
+ GNUSTEP_MAKE_INSTANCE_INVOCATION is undefined.
+
+Wed Jan 30 12:50:04 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (LIB_DIRS_NO_SYSTEM): Removed.
+ * application.make (ALL_GUI_LIBS): Use ALL_LIB_DIRS, not
+ LIB_DIRS_NO_SYSTEM.
+ ($(APP_FILE)): Do not add ALL_LIB_DIRS when linking.
+ * bundle.make (ALL_BUNDLE_LIBS, $(BUNDLE_FILE)): Idem.
+ * ctool.make (ALL_TOOL_LIBS,
+ $(GNUSTEP_OBJ_DIR)/$(INTERNAL_ctool_NAME)$(EXEEXT)): Idem.
+ * framework.make (ALL_FRAMEWORK_LIBS, $(FRAMEWOK_FILE)): Idem.
+ * gswapp.make (ALL_GSW_LIBS, $(GSWAPP_FILE)): Idem.
+ * gswbundle.make ($(GSWBUNDLE_FILE)): Idem.
+ * objc.make (ALL_OBJC_LIBS,
+ $(GNUSTEP_OBJ_DIR)/$(INTERNAL_objc_program_NAME)$(EXEEXT)): Idem.
+ * palette.make ($(PALETTE_FILE)): Idem.
+ * service.make (ALL_SERVICE_LIBS, $(SERVICE_FILE)): Idem.
+ * test-library.make (ALL_TEST_LIBRARY_LIBS,
+ $(GNUSTEP_OBJ_DIR)/$(INTERNAL_testlib_NAME)): Idem.
+ * tool.make (ALL_TOOL_LIBS,
+ $(GNUSTEP_OBJ_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT)): Idem.
+ * library.make ($(GNUSTEP_OBJ_DIR)/$(DLL_NAME)): Do not
+ add ALL_LIB_DIRS
+ (INTERNAL_LIBRARIES_DEPEND_UPON): Do not add
+ $($(INTERNAL_library_NAME)_LIB_DIRS) and $(ADDITIONAL_LIB_DIRS).
+ * clibrary.make: Similar changes.
+
+Tue Jan 29 13:29:26 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (LIBRARIES_DEPEND_UPON): Pass only
+ target_LIBRARIES_DEPEND_UPON + LIBRARIES_DEPEND_UPON to the
+ submake. Do not run which_lib here.
+ * library.make (INTERNAL_LIBRARIES_DEPEND_UPON): New variable.
+ Define in terms of LIBRARIES_DEPEND_UPON, after filtering it via
+ which_lib.
+ ($(GNUSTEP_OBJ_DIR)/$(DLL_NAME)): Use
+ INTERNAL_LIBRARIES_DEPEND_UPON, not LIBRARIES_DEPEND_UPON.
+ * clibrary.make: Same changes as in library.make.
+ * target.make: Replaced everywhere LIBRARIES_DEPEND_UPON with
+ INTERNAL_LIBRARIES_DEPEND_UPON.
+
+Tue Jan 29 13:10:17 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * application.make (ALL_GUI_LIBS): Make sure it's not evaluated -
+ which causes a subprocess to be run - unless needed to link.
+ * bundle.make (ALL_BUNDLE_LIBS): Idem.
+ * ctool.make (ALL_TOOL_LIBS): Idem.
+ * framework.make (ALL_FRAMEWORK_LIBS): Idem.
+ * gswapp.make (ALL_GSW_LIBS): Idem.
+ * objc.make (ALL_OBJC_LIBS): Idem.
+ * service.make (ALL_SERVICE_LIBS): Idem.
+ * test-library.make (ALL_TEST_LIBRARY_LIBS): Idem.
+ * tool.make (ALL_TOOL_LIBS): Idem.
+
+Tue Jan 29 12:39:53 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * objc.make (TTMP_LIBS): Fixed - was using ALL_TOOL_LIBS instead
+ of ALL_OBJC_LIBS.
+ * service.make (ALL_SERVICE_LIBS): Rename from ALL_GUI_LIBS.
+ (TTMP_LIBS): Use ALL_SERVICE_LIBS instead of ALL_GUI_LIBS.
+ ($(SERVICE_FILE)): Use ALL_SERVICE_LIBS when compiling.
+
+2002-01-28 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/README.MinGW: Update
+
+Sun Jan 27 11:39:38 2002 Gregory John Casamento <greg_casamento@yahoo.com>
+
+ * library.make: A minor correction was necessary. The definition
+ of SOVERSION in library.make was missing a right paren which was
+ causing the build to fail when creating shared libraries.
+
+Sat Jan 26 15:02:49 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * library.make: Recognize xxx_SOVERSION to be used to override the
+ default SOVERSION (From an idea by Helge Hess). Added explanation
+ of why this is an interesting option to have.
+
+Sat Jan 26 14:29:26 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * executable.template.in (appname): Minor tidyup of the sed code
+ to extract the executable name.
+
+Fri Jan 25 12:08:30 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make: Added long comment explaining the difference between
+ ADDITIONAL_XXX and AUXILIARY_XXX.
+
+2002-01-25 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * GNUstep.sh.in: Add some quoting to make paths to user GNUstep.sh
+ file and make_services files work when there are embedded spaces.
+
+Wed Jan 23 02:53:51 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.csh.in: Fixed setting GNUSTEP_USER_ROOT when it's empty
+ from configuration.
+
+Tue Jan 22 21:46:30 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * names.make: Removed unused conditional for internal_name_clean.
+
+Tue Jan 22 21:45:26 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Simplified: frameworks now install symlinks to their headers and
+ libraries in the same directories where libraries install theirs.
+ * framework.make: Replaced everywhere GNUSTEP_FRAMEWORK_HEADERS
+ with GNUSTEP_HEADERS, and GNUSTEP_FRAMEWORK_LIBRARIES with
+ GNUSTEP_LIBRARIES.
+ * common.make (GNUSTEP_FRAMEWORKS_HEADERS): Removed.
+ (GNUSTEP_FRAMEWORKS_LIBRARIES): Removed.
+ (GNUSTEP_FRAMEWORKS_HEADERS_FLAGS): Removed.
+ (GNUSTEP_FRAMEWORKS_LIBRARIES_FLAGS): Removed.
+ * rules.make (ALL_OBJCFLAGS): Do not use the removed
+ flags. (ALL_CFLAGS): Idem.
+ * rules.make (ALL_LIB_DIRS): Added ADDITIONAL_FRAMEWORK_DIRS
+ and AUXILIARY_FRAMEWORK_DIRS. (ALL_FRAMEWORK_DIRS): Removed.
+ * application.make: Removed references to ALL_FRAMEWORK_DIRS.
+ * bundle.make: Idem.
+ * gswapp.make: Idem.
+ * tool.make: Idem.
+ * target.make (SHARED_FRAMEWORK_LINK_CMD): Removed
+ ALL_FRAMEWORK_DIRS.
+ * ld_lib_path.sh (lib_paths): Removed xxx/Library/Libraries/yyy
+ paths. Added missing GNUSTEP_NETWORK/Libraries path.
+ (guile_paths): Added missing GNUSTEP_NETWORK paths.
+ * ld_lib_path.csh: Removed xxx/Library/Libraries/yyy paths.
+ Fixed position of GNUSTEP_NETWORK/Libraries paths.
+ (GUILE_LOAD_PATH): Added missing GNUSTEP_NETWORK paths.
+
+Tue Jan 22 00:20:12 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in (cygpath): Moved code to search for cygpath
+ so that it's executed only if it's needed.
+
+Mon Jan 21 23:59:06 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.in (--with-user-root): Improved help message.
+ * configure: Regenerated
+ * executable.template.in: Removed check that EXEEXT is empty.
+
+Mon Jan 21 23:57:28 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_HEADERS_FND_FLAG): Fixed order of flags.
+ For libFoundation, added missing network header flag.
+ * common.make: Implemented sanity check on GNUSTEP_*_ROOT. Exit
+ with an error if any of those variables is unset. Simplified all
+ the code in the file by removing obsolete checks for empty
+ GNUSTEP_*_ROOT and simplified even further by merging all settings
+ of library and header flags for different GNUSTEP_*_ROOT into
+ simple single commands.
+
+Mon Jan 21 20:34:03 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * config.guess: Updated to latest version.
+
+Mon Jan 21 17:34:35 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * MediaBook.sh: Removed.
+ * MediaBook.func: Removed.
+ * GNUmakefile.in: Removed all references to MediaBook.sh and
+ MediaBook.func.
+
+Mon Jan 21 17:12:18 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * ctool.make (internal-ctool-uninstall): Uninstall the
+ wrapper script if not flattened.
+ * GNUmakefile.in (uninstall): Remove executable.template and
+ cygpath.sh.
+
+Mon Jan 21 16:44:09 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ Support for building gnustep-make in another directory.
+ * configure.in (CFLAGS): Add -I$srcdir before the compilation
+ test.
+ (Version): Include the file from $srcdir, not ./.
+ * configure: Regenerated.
+ * GNUmakefile.in (VPATH): Define.
+ Run clean_cpu.sh, clean_vendor.sh and clean_os.sh from $srcdir
+ rather than ./.
+ (which_lib): Use -I. when compiling which_lib.
+ When installing, install configure generated files from ./,
+ and other files from $srcdir.
+ (Patch from Balaton Zoltan, modified).
+
+Mon Jan 21 16:36:58 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * configure.in (objc_threaded): When printing out the results
+ of the test, print the thread flags we found as well.
+ * configure: Regenerated.
+
+Mon Jan 21 16:09:12 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * executable.template.in (appname): Modified to extract the
+ executable name from the Info-gnustep.plist by using a single sed
+ command, for performance reasons (Idea by Balaton Zoltan).
+
+Sun Jan 20 03:47:03 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: Further simplification - removed
+ GNUSTEP_USER_FRAMEWORKS_HEADERS_FLAGS,
+ GNUSTEP_USER_FRAMEWORKS_LIBRARIES_FLAGS,
+ GNUSTEP_USER_HEADERS_FLAGS, GNUSTEP_USER_LIBRARIES_FLAGS and
+ similar for LOCAL, NETWORK and ROOT, in favour of new
+ GNUSTEP_FRAMEWORKS_HEADERS_FLAGS,
+ GNUSTEP_FRAMEWORKS_LIBRARIES_FLAGS, GNUSTEP_HEADERS_FLAGS,
+ GNUSTEP_LIBRARIES_FLAGS variables.
+ * rules.make (ALL_OBJCFLAGS): Use the new variables.
+ (ALL_CFLAGS): Idem.
+ (ALL_FRAMEWORK_DIRS): Idem.
+ (ALL_LIB_DIRS): Idem.
+ (LIB_DIRS_NO_SYSTEM): Idem.
+
+Sun Jan 20 00:19:05 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: Removed GNUSTEP_SYSTEM_HEADERS,
+ GNUSTEP_LOCAL_HEADERS, GNUSTEP_USER_HEADERS,
+ GNUSTEP_NETWORK_HEADERS variables.
+ (GNUSTEP_HEADERS_FND_FLAG): For the fd foundation, use
+ GNUSTEP_TARGET_DIR instead of
+ GNUSTEP_TARGET_CPU/GNUSTEP_TARGET_OS.
+
+Sun Jan 20 00:02:17 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: Got rid of the GNUSTEP_HEADERS_TARGET_FLAGS
+ variable.
+ * rules.make (ALL_OBJCFLAGS, ALL_CFLAGS): Do not include
+ GNUSTEP_HEADERS_TARGET_FLAGS.
+
+Sat Jan 19 23:58:13 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_FRAMEWORKS_LIBRARIES_ROOT): Removed.
+ (GNUSTEP_LIBRARIES_ROOT): Removed.
+
+Sat Jan 19 23:35:13 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * framework.make (ADDITIONAL_INCLUDE_DIRS): Do not add
+ -I$(DERIVED_SOURCES).
+
+Tue Jan 15 00:42:23 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * which_lib.c: Reorganized and rewritten most code again.
+
+ * configure.in (AC_HAVE_HEADERS): Do not check for sys/errno.h.
+ * configure: Regenerated.
+
+Mon Jan 14 20:06:37 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * which_lib.c (search_for_library_with_type): Bug fix - check that
+ the return value of opendir is not NULL.
+
+Mon Jan 14 19:45:50 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * executable.template.in (appname): Fixed extracting executable
+ name from Info-gnustep.plist.
+
+Mon Jan 14 14:33:12 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * which_lib.c: Rewritten. The main user visible change is that
+ the new version searches libraries in a different -- much more
+ logical -- order, which should finally fix the recurrent
+ bugs/problems in library searches reported for the old version. A
+ show_all=yes flag is provided for helping people in debugging it.
+
+Mon Jan 14 10:01:07 2002 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * configure.in: Quoted most paths.
+ * configure: Regenerated.
+
+Fri Jan 11 10:34:15 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in (ac_word, ac_dummy, ac_dir, ac_save_ifs): Renamed
+ to word, dummy, dir, save_ifs.
+
+Fri Jan 11 09:58:37 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in (ac_word, ac_dummy, ac_dir, ac_save_ifs): Unset
+ each variable after using it.
+ * ld_lib_path.sh (host_os, guile_paths): Unset each variable
+ after using it.
+
+Fri Jan 11 09:04:57 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Patches by Balaton Zoltan <balaton@eik.bme.hu>, modified:
+ * GNUmakefile.in: Do not include Version.
+ (distclean): Remove config.h.
+ * GNUstep.sh.in: Changed the first line so that it doesnt' run it
+ using /bin/sh but it but rather uses /bin/echo to print out a
+ message saying that you must source it.
+ * GNUstep.csh.in: Idem.
+ * GNUstep.sh.in (CYGPATH): Renamed to cygpath.
+ (CONVERT_WIN_PATHS): Renamed to convert_win_paths.
+ (tmpdir, cygpath, tmp_IFS, dir, temp_path, convert_win_paths,
+ G_U_R, G_L_R, G_N_R, G_S_R, gnustep_class_path): Unset each
+ variable after using it.
+ Check and source $GNUSTEP_USER_ROOT/GNUstep.sh rather than
+ ~/GNUstep/GNUstep.sh. Check that make_services is an executable
+ file, not only a standard file, before executing it.
+ * ld_lib_path.sh (last_path_part, tool_path_part, dir,
+ additional, lib_paths, old_IFS): Unset each variable after using
+ it.
+ * GNUstep.csh.in (GNUSTEP_PATHPREFIX): Fixed to be
+ GNUSTEP_PATHPREFIX_LIST.
+ (tp): Renamed to temp_path.
+ (temp_path, dir, gnustep_class_path, TDIR): Unset each variable
+ after using it.
+ Check that GNUSTEP_FLATTENED is empty by using == "". For Tools,
+ add the LIBRARY_COMBO dir to PATH as well when GNUSTEP_FLATTENED.
+ Only set PATH if it doesn't already contain temp_path. Use
+ GNUSTEP_MAKEFILES. Only set the CLASSPATH if it doesn't already
+ contain gnustep_class_path. Look for and source
+ $GNUSTEP_USER_ROOT/GNUstep.csh rather than ~/GNUstep/GNUstep.csh.
+ Check that make_services is executable, not only that it exists,
+ before executing it.
+ * ld_lib_path.csh (tool_path_part, last_path_part, host_os,
+ additional, dir, lib_paths): Unset them after using them.
+
+Thu Jan 10 15:13:35 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.in: Do not source ../Version.
+ * configure: Regenerated.
+
+Wed Jan 9 11:08:57 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * config.guess: Updated to latest version.
+ * config.sub: Idem.
+
+2002-01-07 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.2.1
+ * Documentation/gnustep-howto.texi, install.texi, news.texi: Update.
+
+2002-01-06 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * documentation.make: quick hack for agsdoc install to ignore failure
+ of the re-link operation.
+
+Sat Jan 5 06:55:54 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * documentation.make (internal-doc-install,
+ internal-doc-uninstall): New rules with support for
+ xxx_INSTALL_FILES, which can be used for non-preprocessed files.
+
+2002-01-05 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * ld_lib_path.sh: Setup GUILE_LOAD_PATH
+ * ld_lib_path.csh: ditto
+
+2002-01-04 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * documentation.make: revert to old autogsdoc rules as standard,
+ keeping new ruleset as 'experimental' ... should allow people to
+ use autogsdoc stuff reliably using the release Adam is planning
+ to do real soon and pending us getting the new rules working
+ properly.
+ Retain checks for libxml for cleaner handling of case where it is
+ not present.
+ Modify experimental code to have html files depend on the igsdoc
+ file so that their cross references get set up correctly.
+ Outstanding requirements for experimental rules ...
+ need to get dependency on .m files working and probably other things
+ (certainly performance improvements needed).
+
+Fri Jan 4 15:37:19 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * documentation.make: autogsdoc rules - rewritten.
+
+Fri Jan 4 08:09:26 2002 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make (SHARED_LIBEXT): For HP-UX IA64, use .so rather than
+ .sl as the shared library extension (Patch from Dominique Dumont
+ <domi@komarr.grenoble.hp.com>).
+
+2001-12-29 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/README.NetBSD: Typos.
+ * Documentation/faq.texi: Update.
+ * Documentation/machines.texi: Likewise.
+
+2001-12-26 Adam Fedor <fedor@gnu.org>
+
+ * target.make (darwin1): Use NeXT Compiler when using NeXT
+ runtime.
+
+Tue Dec 25 08:57:37 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * which_lib.c (stripstr): Removed check for len == 0.
+
+Fri Dec 21 19:03:49 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * documentation.make ($(INTERNAL_doc_NAME)): New target for
+ AGSDOC_FILES.
+ (generate-autogsdoc): Depend on it.
+
+Thu Dec 20 23:27:42 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: Disable the check on PATH if we are running on an
+ Apple system (Requested by Helge Hess).
+
+Mon Dec 17 11:10:23 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * bundle.make (internal-bundle-install): Another tar option update
+ for portability: create a temporary exclude file and use X old
+ option instead of --exclude option.
+
+2001-12-15 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * documentation.make: added basic support for building documentation
+ using the autogsdoc program.
+ * rules.make: ditto
+
+2001-12-14 Adam Fedor <fedor@gnu.org>
+
+ * application.make: Use pl2link to create a .desktop file. Install
+ it in the app package.
+
+Fri Dec 14 12:32:45 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * palette.make (internal-palette-install): If CHOWN_TO is
+ defined, chown the installed dir.
+
+Fri Dec 14 12:22:44 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Implemented strip=yes.
+ * config.make.in (STRIP): New variable.
+ * rules.make (INSTALL_PROGRAM): Add -s if strip=yes.
+ (strip): Export if defined to be yes.
+ * application.make (internal-app-install): Strip the installed
+ executable if strip=yes.
+ * bundle.make (internal-bundle-install): Idem.
+ * framework.make (internal-framework-install): Idem.
+ * gswapp.make (internal-gswapp-install): Idem.
+ * gswbundle.make (internal-bundle-install): Idem.
+ * palette.make (internal-palette-install): Idem.
+ * service.make (internal-service-install): Idem.
+
+Thu Dec 13 12:27:18 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * java-tool.make
+ ($(GNUSTEP_INSTALLATION_DIR)/Tools/$(INTERNAL_java_tool_NAME)):
+ Run chown on the installed executable template.
+
+Thu Dec 13 12:00:31 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (install): Create more GNUSTEP_SYSTEM_ROOT
+ and GNUSTEP_LOCAL_ROOT directories.
+
+Thu Dec 13 10:23:19 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (INSTALL_AS_USER, INSTALL_AS_GROUP): Export
+ them if they are defined.
+
+2001-12-12 Adam Fedor <fedor@gnu.org>
+
+ * common.make (ADDITIONAL_FLAGS): Defines for diagnose flag.
+
+Wed Dec 12 22:59:00 2001 Manuel Guesdon <mguesdon@oxymium.net>
+
+ * gswapp.make: adding resource-dirs and webresource-dirs
+ installation
+
+Wed Dec 12 17:12:54 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: Moved all INSTALL_AS_USER and INSTALL_AS_GROUP
+ related code to rules.make so that INSTALL_AS_USER and
+ INSTALL_AS_GROUP can be safely defined in the
+ GNUmakefile.preamble.
+
+Wed Dec 12 16:00:54 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (AFTER_INSTALL_LIBRARY_CMD): Append
+ AFTER_INSTALL_SHARED_LIB_CHOWN if we are creating shared libs and
+ CHOWN_TO is defined.
+ * target.make (AFTER_INSTALL_SHARED_LIB_CHOWN): New variable.
+
+Wed Dec 12 14:57:47 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * tool.make ($(TOOL_INSTALLATION_DIR)): Use MKINSTALLDIRS, not
+ MKDIRS.
+
+Wed Dec 12 14:44:16 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * mkinstalldirs: Do not run chown if mkdir fails.
+
+Wed Dec 12 13:25:21 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Implemented INSTALL_AS_USER and INSTALL_AS_GROUP.
+ * config.make.in (CHOWN): New variable - define.
+ * configure.in (CHOWN): Added test for chown.
+ * configure: Regenerated.
+ * common.make (INSTALL_AS): New variable - define.
+ (INSTALL): Append INSTALL_AS at the end.
+ (CHOWN_TO): New variable - define.
+ (MKINSTALLDIRS): New variable - define.
+ * mkinstalldirs: Modified to recognize a `-c CHOWN_TO' option,
+ running chown as needed when that option is passed.
+
+ * tool.make (install-tool): Use INSTALL_DATA, not cp, to install
+ executable.template.
+ * ctool.make (install-ctool): Idem.
+
+ * application.make (internal-app-install): If CHOWN_TO is defined,
+ run chown after installing, to set user and group.
+ * bundle.make (internal-bundle-install): Idem.
+ * documentation.make (internal-doc-install): Idem - for
+ JAVADOC_FILES.
+ * Documentation/makedoc.make: Idem.
+ * framework.make (internal-framework-install): Idem.
+ * gswapp.make (internal-gswapp-install): Idem.
+ * gswbundle.make (internal-bundle-install): Idem.
+ * service.make (internal-service-install): Idem.
+
+ * application.make ($(GNUSTEP_APPS)): Use MKINSTALLDIRS, not
+ MKDIRS, to create the installation directory.
+ * bundle.make ($(BUNDLE_INSTALL_DIR)): Idem.
+ (internal-bundle-install): Idem.
+ * clibrary.make ($(FINAL_LIBRARY_INSTALL_DIR)): Idem.
+ ($(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)): Idem.
+ ($(DLL_INSTALLATION_DIR)): Idem.
+ ($(ADDITIONAL_INSTALL_DIRS)): Idem.
+ * ctool.make ($(CTOOL_INSTALLATION_DIR)): Idem.
+ * documentation.make
+ ($(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)): Idem.
+ * framework.make ($(GNUSTEP_FRAMEWORKS_HEADERS)): Idem.
+ ($(GNUSTEP_FRAMEWORKS_LIBRARIES)/$(GNUSTEP_TARGET_LDIR)): Idem.
+ ($(FRAMEWORK_INSTALL_DIR)): Idem.
+ ($(DLL_INSTALLATION_DIR)): Idem.
+ (internal-framework-install): Idem.
+ * gswapp.make (internal-gswapp-install): Idem.
+ * gswbundle.make (internal-bundle-install): Idem.
+ ($(GSWBUNDLE_INSTALL_DIR)): Idem.
+ * java.make ($(JAVA_INSTALLATION_DIR)): Idem.
+ (internal-install-java-dirs): Idem.
+ * java-tool.make ($(JAVA_TOOL_INSTALLATION_DIR)): Idem.
+ (internal-install-java_tool-dirs): Idem.
+ * library.make ($(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)):
+ Idem.
+ ($(FINAL_LIBRARY_INSTALL_DIR)): Idem.
+ ($(ADDITIONAL_INSTALL_DIRS)): Idem.
+ ($(DLL_INSTALLATION_DIR)): Idem.
+ * objc.make ($(OBJC_PROGRAM_INSTALLATION_DIR)): Idem.
+ * palette.make ($(PALETTE_INSTALL_DIR)): Idem.
+ * service.make ($(GNUSTEP_SERVICES)): Idem.
+ * subproject.make
+ ($(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)): Idem.
+ ($(ADDITIONAL_INSTALL_DIRS)): Idem.
+
+ * framework.make ($(FRAMEWORK_DIR_NAME)/Resources): Now a separate
+ rule.
+
+Wed Dec 12 11:15:13 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * bundle.make (internal-bundle-install): Added a '/' between
+ GNUSTEP_HEADERS and HEADER_FILES_INSTALL_DIR.
+ (internal-bundle-uninstall): Idem.
+ * framework.make (internal-framework-uninstall): Idem.
+ * gswbundle.make (internal-bundle-install): Idem.
+ (internal-bundle-uninstall): Idem.
+ * subproject.make
+ ($(GNUSTEP_HEADERS)$(HEADER_FILES_INSTALL_DIR)): Idem.
+ (internal-install-headers): Idem.
+ (internal-subproject-install): Idem.
+ (internal-subproject-uninstall): Idem.
+
+Wed Dec 12 11:07:41 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * gswbundle.make (internal-bundle-install): Removed MKDIRS
+ in excess.
+
+Wed Dec 12 11:04:29 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * service.make (internal-service-clean): Unused target - removed.
+
+Wed Dec 12 11:02:14 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * config.make.in (RCEXT): Unused variable - removed.
+ (RESEXT): Unused variable - removed.
+ (RC): Unused variable - removed.
+
+Mon Dec 10 23:18:52 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (%.h): Added rule to build %.h files from %.psw files,
+ needed when installing %.h files generated from %.psw files in
+ frameworks (Patch from Jay McCarthy <jay@kenyamountain.com>).
+
+Mon Dec 10 23:02:24 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * bundle.make (internal-bundle-install): Do not attempt to make
+ the Contents/Resources --> Resources symbolic link in the
+ installation directory if Contents/Resources already exists and is
+ a directory - so that we can hopefully work correctly even if tar
+ is broken and passing the --exclude and/or h option to it doesn't
+ work.
+
+Mon Dec 10 22:04:09 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * bundle.make (internal-bundle-install): Yet another rephrasing of
+ tar options to get wider portability.
+
+Mon Dec 10 17:32:52 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * bundle.make (internal-bundle-install): Use `f -' instead
+ of --to-stdout option to tar.
+
+Mon Dec 10 09:54:09 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * application.make (internal-clean): Remove .c and .h files
+ generated by pswrap.
+ * clibrary.make (internal-clean): Idem.
+ * bundle.make (internal-clean): Idem.
+ * framework.make (internal-framework-clean): Idem.
+ * library.make (internal-clean): Idem.
+ * palette.make (internal-clean): Idem.
+ * service.make (internal-clean): Idem.
+ * subproject.make (internal-clean): Idem.
+ * test-application.make (internal-clean): Idem.
+ * test-library.make (internal-clean): Idem.
+
+Mon Dec 10 09:18:33 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * Documentation/makedoc.make: Recreated from the top level
+ documentation.make.
+ * Documentation/makerules.make: Recreated from the top level
+ rules.make.
+ * Documentation/GNUmakefile.in (INSTALL, INSTALL_DATA, MKDIRS):
+ Define.
+ (DOCUMENT_TEXT_NAME): Added FAQ.
+ (TOP_DOC_FILES): Added FAQ.
+ (GNUstep-HOWTO_DOC_INSTALL_DIR): Define.
+ (FAQ_DOC_INSTALL_DIR): Idem.
+ (make_DOC_INSTALL_DIR): Idem.
+ (faq_DOC_INSTALL_DIR): Idem.
+ (machines_DOC_INSTALL_DIR): Idem.
+ (gnustep-howto_DOC_INSTALL_DIR): Idem.
+ (internals_DOC_INSTALL_DIR): Idem.
+ (INSTALL_DOC_INSTALL_DIR): Idem.
+ (NEWS_DOC_INSTALL_DIR): Idem.
+ (README_DOC_INSTALL_DIR): Idem.
+ (ANNOUNCE_DOC_INSTALL_DIR): Idem.
+ (DESIGN_DOC_INSTALL_DIR): Idem.
+ (GNUSTEP_PREFIX): Removed this unused variable.
+ (regenerate): Depend on all.
+ (after-install, after-uninstall): Added, to [un]install DESIGN.
+ * FAQ: Regenerated.
+ * GNUstep-HOWTO: Regenerated.
+
+Sat Dec 8 14:22:43 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * library-combo.make (OBJC_RUNTIME_LIB, FOUNDATION_LIB, GUI_LIB):
+ Modified code setting these variables to allow the user to
+ override their definition manually.
+ (runtime, foundation, gui): Variables removed - obsoleted - the
+ user should set OBJC_RUNTIME_LIB, FOUNDATION_LIB and GUI_LIB
+ directly.
+ (library_combo, the_library_combo): Simplified code.
+
+Sat Dec 8 13:27:12 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * brain.make: Renamed to library-combo.make.
+ * GNUmakefile.in (MAKE_FILES): Updated for change.
+ * common.make: Updated for change.
+
+Thu Dec 6 09:11:51 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * bundle.make (internal-bundle-install): Use h option with tar to
+ dereference symbolic links to external files if any; use --exclude
+ Contents/Resources with tar; create the Contents/Resources -->
+ Resources link manually after installing the bundle with tar.
+
+Mon Dec 3 10:09:08 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * documentation.make ($(INTERNAL_doc_NAME).tar.gz): Bug fix: added
+ missing z option to tar.
+
+Mon Dec 3 09:44:26 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * target.make: New target - Mac OS X 10.1.1 darwin5.1 (Patch by
+ Helge Hess <helge.hess@skyrix.com>).
+
+Wed Nov 28 18:17:50 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * clibrary.make (LIBRARY_FILE): Fixed typo for BUILD_DLL ...
+ library_name being used instead of clibrary_name.
+
+Wed Nov 28 11:18:01 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * configure.in (--with-user-root): New configure option allowing
+ to ask for a different GNUSTEP_USER_ROOT to be used.
+ * configure: Regenerated.
+ * GNUstep.sh.in (GNUSTEP_USER_ROOT): Define from configure if
+ needed.
+ * GNUstep.csh.in: Idem.
+
+Wed Nov 28 11:08:07 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * brain.make (WO_LDFLAGS, WO_LIBS, WO_DEFINE): Removed.
+ (Suggested by Helge Hess <helge.hess@skyrix.com>).
+
+2001-11-26 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/README.NetBSD: Update from jnqt@fbe.freeserve.ne.jp.
+
+Thu Nov 22 13:28:34 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * configure.in (AUTO_DEPENDENCIES): New configure check which
+ automatically sets AUTO_DEPENDENCIES to yes if the compiler is GCC
+ => 3.x.
+ * configure: Regenerated.
+ * config.make.in (AUTO_DEPENDENCIES): Added.
+ * rules.make (AUTO_DEPENDENCIES_FLAGS): Set them only if not
+ already set.
+
+Thu Nov 22 10:41:39 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * source-distribution.make (tgz): tgz target renamed to dist.
+ (Suggestion by Dan Pascu <dan@services.iiruc.ro>).
+
+ * source-distribution.make (.PHONY): Updated for change.
+ * rpm.make (rpm): Updated for change.
+
+ * source-distribution.make (TGZ_MAKE_LOADED): Renamed to
+ SOURCE_DISTRIBUTION_MAKE_LOADED.
+
+Thu Nov 22 03:05:33 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Implemented support for auto dependencies. Only works with gcc =>
+ 3.x.
+ * rules.make: Include appropriate .d dependency files if
+ AUTO_DEPENDENCIES is yes.
+ (AUTO_DEPENDENCIES_FLAGS): Define to be -MMD -MP if
+ AUTO_DEPENDENCIES is yes.
+ (ALL_CPPFLAGS): Add AUTO_DEPENDENCIES_FLAGS.
+ (Idea by Malmberg <malmberg@malmberg.org>).
+
+Thu Nov 22 02:52:42 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * depend.make: Obsolete file removed.
+
+Thu Nov 22 00:43:33 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rpm.make (check-RPM_TOPDIR): New target.
+ (rpm): Code to check RPM_TOPDIR moved in the new check-RPM_TOPDIR
+ target; if RELEASE_DIR is set, copy the .tar.gz file from there.
+ (.PHONY): Added check-RPM_TOPDIR.
+
+Thu Nov 22 00:06:02 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * source-distribution.make: Rewritten. Bug fixes; new features;
+ all packages built using gnustep-make should now be able to take
+ full advantage of its facilities.
+
+Wed Nov 21 15:34:15 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * common.make (ADDITIONAL_JAVAFLAGS): Removed unused variable.
+ (INTERNAL_JAVACFLAGS): Defined to be `-g -deprecation' if
+ debug=yes, and `-O' otherwise.
+ * rules.make (ALL_JAVACFLAGS): Add INTERNAL_JAVACFLAGS. Do not
+ add -deprecation manually.
+
+2001-11-19 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/README.NetBSD: Update from jnqt@fbe.freeserve.ne.jp.
+
+2001-11-11 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.2.0
+
+Tue Nov 13 16:27:45 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (internal-check-install-permissions): Only check for
+ permission to write if the installation directory exists.
+
+Tue Nov 13 14:02:06 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rpm.make: Fixed check for debug variable so that it correctly
+ manages debug = no.
+
+Tue Nov 13 13:57:13 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: In the check that GNUSTEP_SYSTEM_ROOT/Tools is in
+ the PATH, for windows use cygpath not cygpath.sh (Suggested by
+ Stephen Brandon).
+
+Fri Nov 9 13:34:50 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * opentool.in: Fixed (again!) the fact that if there is both a
+ local and an installed tool, the local one should be used, not the
+ installed one. Rewritten checks for local tools - we now search
+ in ./, then in ./obj, then in ./Tools/, then in ./Tools/obj, then
+ look for an installed tool.
+
+2001-11-08 Adam Fedor <fedor@gnu.org>
+
+ * configure.in (TAR): Undo last patch, add configure option
+ to set name of tar command.
+
+Wed Nov 7 23:43:19 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: Moved check that GNUSTEP_SYSTEM_ROOT/Tools is in
+ PATH after including names.make. In the same check, for windows,
+ when calling cygpath.sh, use the full path so it should find it
+ even if PATH - which we are just checking - is messed up.
+
+Wed Nov 7 08:49:18 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make ($(GNUSTEP_OBJ_DIR)/%${OEXT}): Put the $<_FILE_FLAGS
+ after the other flags so that they take precendence over them.
+ (%.class, %.h): Idem.
+
+Wed Nov 7 08:41:18 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make ($(GNUSTEP_OBJ_DIR)/%${OEXT}): Implemented support
+ for file specific compilation flags - xxx_FILE_FLAGS to add and
+ xxx_FILE_FILTER_OUT_FLAGS to filter out flags when compiling file
+ xxx.
+ (%.class, %.h): Idem.
+
+2001-11-06 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Use tar on freebsd (patch from kim@tinker.com).
+
+Tue Nov 6 20:35:23 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: When checking that GNUSTEP_SYSTEM_ROOT/Tools is in
+ the PATH, fix - if needed - the tools path on mingw before doing
+ the check (Suggestion originally from Stephen Brandon
+ <stephen@brandonitconsulting.co.uk>).
+
+2001-11-03 Adam Fedor <fedor@gnu.org>
+
+ * bundle.make ($(BUNDLE_DIR_NAME)/Resources/Info-gnustep.plist):
+ Add *Info.plist (suggestion from stefanurbanek@yahoo.fr).
+
+2001-10-26 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/news.texi: Update
+
+Thu Oct 25 10:41:04 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * configure.in: Output a message displaying the version of
+ gnustep-make we are compiling.
+ * configure: Regenerated.
+ * GNUmakefile.in (config.make, gnustep-make.spec): Depend on
+ Version. Use the --recheck option for config.status to force the
+ new Version to be used whenever it's changed.
+
+2001-10-24 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.2.0pre1
+
+ * Documentation/README.MinGW: Update.
+ * Documentation/machines.texi: Likewise.
+ * Documentation/news.texi: Likewise.
+ * Documentation/readme.texi: Likewise.
+
+ * target.make (Solaris BUNDLE_LDFLAGS): Change flags to more
+ modern version.
+
+Tue Oct 23 10:47:39 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * clibrary.make (FINAL_LIBRARY_INSTALL_DIR): Define and
+ use everywhere.
+ * library.make (FINAL_LIBRARY_INSTALL_DIR): Idem.
+ * target.make: Replaced everywhere
+ $(LIBRARY_INSTALL_DIR)/$(GNUSTEP_TARGET_LDIR) with
+ $(FINAL_LIBRARY_INSTALL_DIR).
+
+2001-10-18 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * rules.make: Use -deprecation for java compiles if debug=yes
+
+2001-10-16 Adam Fedor <fedor@gnu.org>
+
+ * Make paths work correctly on Windows/MinGW
+ * GNUmakefile.in: Add cygpath.sh
+ * cygpath.sh: New file.
+ * GNUstep.sh.in: Use Windows method of getting user dir, use
+ cygpath to mangle PATHs.
+ * framework.make (internal-framework-install): Windows (DLL)
+ specific installation.
+ (patches from stephen@brandonitconsulting.co.uk).
+
+ * configure.in: Simple test for Windows - use C:/GNUstep for
+ default if true.
+ * Documentation/README.MinGW: Updated.
+
+ * debugapp.in: Use argument with read.
+ * executable.template.in: Print cpu/os on an error.
+
+2001-10-15 Adam Fedor <fedor@gnu.org>
+
+ * bundle.make ($(BUNDLE_DIR_NAME)/Contents/Resources): Remove
+ -f (Solaris ln -f doesn't work).
+
+ * target.make (LIBRARY_INSTALL_DIR): Update for last change
+ removing GNUSTEP_TARGET_DIR.
+
+Tue Oct 16 03:30:08 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Warning - very minor backwards incompatible change in the API,
+ which should only affect gnustep-objc.
+ * library.make (LIBRARY_INSTALL_DIR): Changed not to include the
+ GNUSTEP_TARGET_LDIR. All occurrences of LIBRARY_INSTALL_DIR
+ updated for this change.
+ * clibrary.make: New file derived from library.make. It does the
+ same, but installs in a different way.
+ * GNUmakefile.in (MAKE_FILES): Added clibrary.make.
+
+2001-10-09 Adam Fedor <fedor@gnu.org>
+
+ * config.site: Fix for empty target. (suggested by
+ Laurent.Julliard@xrce.xerox.com).
+
+Mon Oct 8 14:06:30 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * service.make (CPP_FLAGS): Add the DLL flags for ALL_GUI_LIBS if
+ WITH_DLL is yes (patch prepared with Stephen Brandon
+ <stephen@brandonitconsulting.co.uk>).
+
+Mon Oct 1 03:16:05 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Warning - backwards incompatible change in API.
+ * common.make (GNUSTEP_LIBRARIES): Redefine to be what was called
+ GNUSTEP_LIBRARIES_ROOT before. (GNUSTEP_FRAMEWORKS_LIBRARIES):
+ Redefine to be what was called GNUSTEP_FRAMEWORKS_LIBRARIES_ROOT
+ before. (GNUSTEP_LIBRARIES_ROOT): Deprecated.
+ (GNUSTEP_FRAMEWORKS_LIBRARIES): Deprecated.
+ (GNUSTEP_RESOURCES, GNUSTEP_JAVA): Define standalone without
+ relying on GNUSTEP_LIBRARIES.
+ * framework.make: Updated for change - all occurrences of
+ $(GNUSTEP_FRAMEWORKS_LIBRARIES) replaced with
+ $(GNUSTEP_FRAMEWORKS_LIBRARIES)/$(GNUSTEP_TARGET_LDIR).
+ * library.make (LIBRARY_INSTALL_DIR): Updated for change - use
+ $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR) rather than
+ $(GNUSTEP_LIBRARIES).
+
+Mon Oct 1 02:51:10 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_TARGET_LIBRARIES): Variable removed.
+ (GNUSTEP_LIBRARIES): Updated definition.
+ (GNUSTEP_FRAMEWORKS_TARGET_LIBRARIES): Variable removed.
+ (GNUSTEP_FRAMEWORKS_LIBRARIES): Updated definition.
+
+Sun Sep 30 14:50:13 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_SYSTEM_LIBRARIES_ROOT): Variable removed.
+ (GNUSTEP_SYSTEM_FRAMEWORKS_LIBRARIES_ROOT): Idem.
+ (GNUSTEP_SYSTEM_FRAMEWORKS_HEADERS): Idem.
+ (GNUSTEP_SYSTEM_LIBRARIES_FLAGS): Updated definition.
+ (GNUSTEP_SYSTEM_FRAMEWORKS_LIBRARIES_FLAGS): Idem.
+ (GNUSTEP_SYSTEM_FRAMEWORKS_HEADERS_FLAGS): Idem.
+
+ (GNUSTEP_LOCAL_LIBRARIES_ROOT): Corresponding change.
+ (GNUSTEP_LOCAL_FRAMEWORKS_LIBRARIES_ROOT): Idem.
+ (GNUSTEP_LOCAL_FRAMEWORKS_HEADERS): Idem.
+ (GNUSTEP_LOCAL_LIBRARIES_FLAGS): Idem.
+ (GNUSTEP_LOCAL_FRAMEWORKS_LIBRARIES_FLAGS): Idem.
+ (GNUSTEP_LOCAL_FRAMEWORKS_HEADERS_FLAGS): Idem.
+
+ (GNUSTEP_USER_LIBRARIES_ROOT): Corresponding change.
+ (GNUSTEP_USER_FRAMEWORKS_LIBRARIES_ROOT): Idem.
+ (GNUSTEP_USER_FRAMEWORKS_HEADERS): Idem.
+ (GNUSTEP_USER_LIBRARIES_FLAGS): Idem.
+ (GNUSTEP_USER_FRAMEWORKS_LIBRARIES_FLAGS): Idem.
+ (GNUSTEP_USER_FRAMEWORKS_HEADERS_FLAGS): Idem.
+
+ (GNUSTEP_NETWORK_LIBRARIES_ROOT): Corresponding change.
+ (GNUSTEP_NETWORK_FRAMEWORKS_LIBRARIES_ROOT): Idem.
+ (GNUSTEP_NETWORK_FRAMEWORKS_HEADERS): Idem.
+ (GNUSTEP_NETWORK_LIBRARIES_FLAGS): Idem.
+ (GNUSTEP_NETWORK_FRAMEWORKS_LIBRARIES_FLAGS): Idem.
+ (GNUSTEP_NETWORK_FRAMEWORKS_HEADERS_FLAGS): Idem.
+
+Sun Sep 30 14:22:16 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_SYSTEM_FRAMEWORKS_LIBRARIES): Variable
+ removed.
+ (GNUSTEP_SYSTEM_FRAMEWORKS_LIBRARIES_FLAGS): Updated definition
+ for removal of variable.
+
+ (GNUSTEP_LOCAL_FRAMEWORKS_LIBRARIES): Corresponding change.
+ (GNUSTEP_LOCAL_FRAMEWORKS_LIBRARIES_FLAGS): Corresponding change.
+
+ (GNUSTEP_USER_FRAMEWORKS_LIBRARIES): Corresponding change.
+ (GNUSTEP_USER_FRAMEWORKS_LIBRARIES_FLAGS): Corresponding change.
+
+ (GNUSTEP_NETWORK_FRAMEWORKS_LIBRARIES): Corresponding change.
+ (GNUSTEP_NETWORK_FRAMEWORKS_LIBRARIES_FLAGS): Corresponding
+ change.
+
+Sun Sep 30 14:09:05 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_SYSTEM_LIBRARIES): Variable removed.
+ (GNUSTEP_SYSTEM_TARGET_LIBRARIES): Variable removed.
+ (GNUSTEP_SYSTEM_LIBRARIES_FLAGS): Updated for removal of
+ variables. Do not duplicate flags in case GNUSTEP_FLATTENED.
+
+ (GNUSTEP_LOCAL_LIBRARIES): Corresponding change.
+ (GNUSTEP_LOCAL_TARGET_LIBRARIES): Corresponding change.
+ (GNUSTEP_LOCAL_LIBRARIES_FLAGS): Corresponding change.
+
+ (GNUSTEP_NETWORK_LIBRARIES): Corresponding change.
+ (GNUSTEP_NETWORK_TARGET_LIBRARIES): Corresponding change.
+ (GNUSTEP_NETWORK_LIBRARIES_FLAGS): Corresponding change.
+
+ (GNUSTEP_USER_LIBRARIES): Corresponding change.
+ (GNUSTEP_USER_TARGET_LIBRARIES): Corresponding change.
+ (GNUSTEP_USER_LIBRARIES_FLAGS): Corresponding change.
+
+Sun Sep 30 14:03:02 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_LOCAL_TARGET_LIBRARIES_FLAGS): Variable
+ removed. Flag moved into GNUSTEP_LOCAL_LIBRARIES_FLAGS.
+ (GNUSTEP_USER_TARGET_LIBRARIES_FLAGS): Idem.
+ (GNUSTEP_NETWORK_TARGET_LIBRARIES_FLAGS): Idem.
+ * rules.make (ALL_LIB_DIRS, LIB_DIRS_NO_SYSTEM): No longer need
+ to add GNUSTEP_LOCAL_TARGET_LIBRARIES_FLAGS as
+ GNUSTEP_LOCAL_LIBRARIES_FLAGS is enough now. Similar for
+ GNUSTEP_USER_TARGET_LIBRARIES_FLAGS and
+ GNUSTEP_NETWORK_TARGET_LIBRARIES_FLAGS.
+
+Sun Sep 30 13:46:38 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * test-library.make ($(SCRIPTS_DIRECTORY)/config/unix.exp): Do not
+ use GNUSTEP_SYSTEM_LIBRARIES_ROOT or similar variables considered
+ internal to common.make; use the obvious replacement
+ $(GNUSTEP_SYSTEM_ROOT)/Libraries and similar instead.
+
+Sun Sep 30 13:36:43 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: (GNUSTEP_SYSTEM_FRAMEWORKS_TARGET_LIBRARIES):
+ Variable removed. (GNUSTEP_SYSTEM_FRAMEWORKS_LIBRARIES):
+ Definition updated for removal of variable.
+ (GNUSTEP_LOCAL_FRAMEWORKS_TARGET_LIBRARIES),
+ (GNUSTEP_LOCAL_FRAMEWORKS_LIBRARIES): Similar changes.
+ (GNUSTEP_USER_FRAMEWORKS_TARGET_LIBRARIES),
+ (GNUSTEP_USER_FRAMEWORKS_LIBRARIES): Similar changes.
+ (GNUSTEP_NETWORK_FRAMEWORKS_TARGET_LIBRARIES),
+ (GNUSTEP_NETWORK_FRAMEWORKS_LIBRARIES): Similar changes.
+
+Sun Sep 30 13:22:39 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_LOCAL_FRAMEWORKS_TARGET_LIBRARIES_FLAGS):
+ Variable removed.
+ (GNUSTEP_NETWORK_FRAMEWORKS_TARGET_LIBRARIES_FLAGS): Idem.
+ (GNUSTEP_USER_FRAMEWORKS_TARGET_LIBRARIES_FLAGS): Idem.
+
+Sun Sep 30 13:10:43 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_SYSTEM_HEADERS_FLAGS): New variable.
+ (GNUSTEP_SYSTEM_FRAMEWORKS_HEADERS_FLAGS): Idem.
+ (GNUSTEP_SYSTEM_LIBRARIES_FLAGS): Idem.
+ (GNUSTEP_SYSTEM_FRAMEWORKS_LIBRARIES_FLAGS): Idem.
+ * rules.make (ALL_OBJCFLAGS): Use the new variables.
+ (ALL_CFLAGS): Idem.
+ (LIB_DIRS_NO_SYSTEM): Idem.
+ (ALL_LIB_DIRS): Idem.
+ (ALL_FRAMEWORK_DIRS): Idem.
+
+Sun Sep 30 12:55:14 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make (GNUSTEP_LOCAL_LIBRARIES_FLAG): Renamed to
+ GNUSTEP_LOCAL_LIBRARIES_FLAGS.
+ (GNUSTEP_USER_LIBRARIES_FLAG): Similar change.
+ (GNUSTEP_NETWORK_LIBRARIES_FLAG): Similar change.
+
+ (GNUSTEP_LOCAL_TARGET_LIBRARIES_FLAG): Renamed to
+ GNUSTEP_LOCAL_TARGET_LIBRARIES_FLAGS.
+ (GNUSTEP_USER_TARGET_LIBRARIES_FLAG): Similar change.
+ (GNUSTEP_NETWORK_TARGET_LIBRARIES_FLAG): Similar change.
+
+ (GNUSTEP_LOCAL_FRAMEWORKS_LIBRARIES_FLAG): Renamed to
+ GNUSTEP_LOCAL_FRAMEWORKS_LIBRARIES_FLAGS.
+ (GNUSTEP_USER_FRAMEWORKS_LIBRARIES_FLAG): Similar change.
+ (GNUSTEP_NETWORK_FRAMEWORKS_LIBRARIES_FLAG): Similar change.
+
+ (GNUSTEP_LOCAL_FRAMEWORKS_TARGET_LIBRARIES_FLAG): Renamed to
+ GNUSTEP_LOCAL_FRAMEWORKS_TARGET_LIBRARIES_FLAGS.
+ (GNUSTEP_USER_FRAMEWORKS_TARGET_LIBRARIES_FLAG): Similar change.
+ (GNUSTEP_NETWORK_FRAMEWORKS_TARGET_LIBRARIES_FLAG): Similar
+ change.
+
+ (GNUSTEP_LOCAL_HEADERS_FLAG): Renamed to
+ GNUSTEP_LOCAL_HEADERS_FLAGS.
+ (GNUSTEP_USER_HEADERS_FLAG): Renamed to
+ (GNUSTEP_NETWORKS_HEADERS_FLAG): Renamed to
+
+ (GNUSTEP_LOCAL_FRAMEWORKS_HEADERS_FLAG): Renamed to
+ GNUSTEP_LOCAL_FRAMEWORKS_HEADERS_FLAGS.
+ (GNUSTEP_USER_FRAMEWORKS_HEADERS_FLAG): Renamed to
+ (GNUSTEP_NETWORKS_FRAMEWORKS_HEADERS_FLAG): Renamed to
+
+ (GNUSTEP_HEADERS_TARGET_FLAG): Renamed to
+ GNUSTEP_HEADERS_TARGET_FLAGS.
+
+ * rules.make (ALL_OBJCFLAGS): Updated for variable name change.
+ (ALL_CFLAGS): Idem.
+ (ALL_FRAMEWORK_DIRS): Idem.
+ (ALL_LIB_DIRS): Idem.
+ (LIB_DIRS_NO_SYSTEM): Idem.
+
+Sun Sep 30 12:09:52 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * common.make: (GNUSTEP_LOCAL_TARGET_LIBRARIES_FLAG): Define -
+ fixing the bug that -L/opt/GNUstep/Local/Libraries/ix86/linux-gnu
+ was missing on the link line.
+
+2001-09-25 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/README.MinGW: Update
+ * Documentation/machines.texi: Likewise.
+ * GNUstep-HOWTO: Regen.
+
+Fri Sep 21 13:39:08 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * application.make ($(APP_FILE)): Added ALL_FRAMEWORK_DIRS to
+ the link command.
+
+Wed Sep 19 18:40:00 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * palette.make ($(PALETTE_FILE)): Fixed typo, OBJC_FILES_TO_LINK
+ which should have been OBJ_FILES_TO_LINK
+
+Tue Sep 18 13:16:08 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * library.make (internal-install-dirs): Depend on
+ $(LIBRARY_INSTALL_DIR) rather than on $(GNUSTEP_LIBRARIES) and
+ $(GNUSTEP_LIBRARIES_ROOT)/$(GNUSTEP_TARGET_DIR).
+ ($(GNUSTEP_LIBRARIES_ROOT)/$(GNUSTEP_TARGET_DIR)): Target removed.
+ ($(GNUSTEP_LIBRARIES)): Target removed.
+ ($(LIBRARY_INSTALL_DIR)): New target.
+ * tool.make (internal-tool-uninstall): Remove the shell script
+ wrapper.
+ * library.make (internal-uninstall-lib): When not using DLL,
+ remove the $(SONAME_LIBRARY_FILE) as well.
+
+Mon Sep 17 14:23:03 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * bundle.make ($(BUNDLE_FILE)): Added missing \ at the end of
+ line.
+
+Sun Sep 16 17:32:29 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (CURRENT_FRAMEWORK_HEADERS_FLAG): New variable;
+ define it to be -I$(DERIVED_SOURCES) if we are compiling as part
+ of a framework. (ALL_OBJCFLAGS, ALL_CFLAGS): Added
+ $(CURRENT_FRAMEWORK_HEADERS_FLAG) to the flags.
+
+Sat Sep 15 13:59:31 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (OBJ_FILES_TO_LINK): New variable holding all object
+ files to be linked into the resulting app or lib or whatever.
+ * application.make ($(APP_FILE)): Use the new variable rather
+ than listing manually all different object files.
+ * bundle.make ($(BUNDLE_FILE)): Idem.
+ * framework.make ($(FRAMEWORK_FILE)): Idem.
+ ($(DUMMY_FRAMEWORK_FILE)): Idem.
+ * gswapp.make ($(GSWAPP_FILE)): Idem.
+ * gswbundle.make ($(GSWBUNDLE_FILE)): Idem.
+ * library.make ($(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE)):
+ Idem.
+ * objc.make
+ ($(GNUSTEP_OBJ_DIR)/$(INTERNAL_objc_program_NAME)$(EXEEXT)):
+ Idem.
+ * palette.make ($(PALETTE_FILE)): Idem.
+ * service.make ($(SERVICE_FILE)): Idem.
+ * subproject.make ($(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT)):
+ Idem.
+ * test-library.make
+ ($(GNUSTEP_OBJ_DIR)/$(INTERNAL_testlib_NAME)): Idem.
+ * tool.make ($(GNUSTEP_OBJ_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT)):
+ Idem.
+ * library.make (DLL_OFILES): Replaced with OBJ_FILES_TO_LINK.
+
+ Implemented support for C++ files.
+ * rules.make (.SUFFIXES): Added .C, .cp, .cpp, .cxx, .cc.
+ (ALL_CCFLAGS): New variable.
+ ($(GNUSTEP_OBJ_DIR)/%${OEXT}): Added implicit rules for building
+ object files from .C, .cp, .cpp, .cxx and .cc files.
+ (%.variables): Extract CC_FILES from xxx_CC_FILES, and pass them
+ down to the submake.
+ (CC_OBJS, CC_OBJ_FILES): New variables.
+ (OBJ_FILES_TO_LINK): Added CC_OBJ_FILES.
+
+2001-09-14 Adam Fedor <fedor@gnu.org>
+
+ * debian/changelog: Minor fixes to get debian to build correctly
+ (suggestions from James.Mills@tenzing.com).
+
+Thu Sep 13 23:20:36 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (install): Do not install rootinstall.sh and
+ rootuninstall.sh.
+ (uninstall): Do not uninstall rootinstall.sh and rootuninstall.sh
+
+Thu Sep 13 23:17:52 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * test-tool.make (internal-check): Removed.
+
+2001-09-12 Adam Fedor <fedor@gnu.org>
+
+ * target.make (TARGET_SYSTEM_LIBS): Remove -lgcc from
+ darwin/MacOSX/NeXT targets.
+
+2001-09-11 Adam Fedor <fedor@gnu.org>
+
+ * brain.make: If nx-gnu-gnu, add -lobjc to OBJC_LIBS
+ * target.make: Extend darwin1.1 rule to darwin1.x
+
+Tue Sep 11 12:19:24 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (before-install): Removed code to check installation
+ permissions.
+ (internal-check-install-permissions): New target with code to
+ check installation permissions, extended to give more extensive
+ help.
+ (install): At makelevel 0, depend on
+ internal-check-install-permissions before all.
+
+Tue Sep 11 10:44:11 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * documentation.make (internal-doc-clean): Added a complete
+ recursive cleaning of the INTERNAL_doc_NAME directory for javadoc.
+
+Tue Sep 11 10:39:39 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * documentation.make (internal-doc-clean): Removed buggy `;' at
+ the end of line which was causing the last files to be considered
+ a command by the shell rather than arguments to `rm'.
+
+Mon Sep 10 15:40:06 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * documentation.make (internal-doc-clean): Fixed make clean for
+ gsdoc - removed old useless shell loop which was causing rm to be
+ run unnecessarily many times.
+
+Mon Sep 10 11:25:58 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rootinstall.sh: Removed as obsolete.
+ * rootuninstall.sh: Idem.
+
+Tue Sep 4 16:23:12 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * bundle.make (bundle-localized-resource-files): Use -d instead of
+ ! -f to check for existence of .lproj dirs; emit a warning if a
+ required .lproj directory is not found; run the localizable
+ resource copying code only if the .lproj directory actually
+ exists.
+ * application.make (app-localized-resource-files): Idem.
+ * framework.make (framework-components): Idem (but no warning
+ here).
+ (framework-localized-resource-files): Idem.
+ (framework-localized-webresource-files): Idem.
+ * subproject.make (framework-components): Idem, plus fixed wrong
+ dirs and missing fi.
+ (framework-localized-resource-files): Idem, plus fixed misplaced
+ fi.
+ * gswapp.make (gswapp-components): Idem (no warning here), plus
+ fixed wrong dir.
+ (gswapp-localized-resource-files): Idem, plus fixed wrong dir.
+ (gswapp-localized-webresource-files): Idem, plus fixed wrong dir.
+ * gswbundle.make (gswbundle-components): Idem (no warning here),
+ plus fixed wrong dir.
+ (gswbundle-localized-resource-files): Idem, plus fixed wrong dir.
+ (gswbundle-localized-webresource-files): Idem, plus fixed wrong
+ dir.
+
+ * framework.make (framework-localized-webresource-files):
+ Rearranged code; always install the new localized webresource
+ files over the old ones if any.
+ * gswapp.make (gswapp-localized-webresource-files): Do not echo
+ the full shell commands.
+ (gswapp-localized-resource-files): Idem.
+ (gswapp-resource-files): Idem.
+ (gswapp-webresource-files): Idem (also removed final semicolon
+ here).
+ (gswapp-components): Idem.
+ (gswapp-components): Depend on $(GSWAPP_DIR_NAME)/Resources rather
+ than $(GSWAPP_DIR_NAME).
+ * gswbundle.make (internal-clean): Use GSWBUNDLE_NAME rather than
+ BUNDLE_NAME.
+ (GSWBUNDLE_EXTENSION): Define as it wasn't defined anywhere. I
+ used .gswbundle as a guess of what it should be.
+
+Mon Sep 3 17:24:43 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * gswbundle.make (gswbundle-webresource-files): Fixed misplaced
+ parenthesis in check for empty WEBSERVER_RESOURCE_FILES.
+ (internal-bundle-install): Removed \ in excess.
+
+Mon Sep 3 15:13:49 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (before-install): If MAKELEVEL is 0, check that
+ GNUSTEP_INSTALLATION_DIR is writable by us; if it isn't, abort
+ with an error message.
+
+Fri Aug 31 15:33:30 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * bundle.make (bundle-localized-resource-files): Bug fix - added
+ missing ) at then end of command.
+
+2001-08-21 Adam Fedor <fedor@gnu.org>
+
+ * configure.in (gs_cv_objc_libdir): Don't look for gcc's
+ installed libobjc.so since it's usually in a standard dir anyway.
+
+Mon Aug 6 19:15:35 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * library.make (internal-install-dirs): Insert a / between
+ $(GNUSTEP_HEADERS) and $(HEADER_FILES_INSTALL_DIR).
+ ($(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)): Idem.
+ (internal-install-headers): Idem.
+ (internal-uninstall-headers): Idem.
+
+2001-08-02 Adam Fedor <fedor@gnu.org>
+
+ * GNUstep.sh.in: Look for user script in ~/GNUstep.
+ * GNUstep.csh.in: Likewise.
+
+Mon Jul 30 20:15:48 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * documentation.make (HAS_LATEX2HTML): New variable to reduce the
+ number of times that LATEX2HTML is evaluated.
+
+2001-07-26 Adam Fedor <fedor@gnu.org>
+
+ * GNUstep.csh.in: Set GCC_SO_DIR
+ * GNUstep.sh.in: Export GCC_SO_DIR
+ * ld_lib_path.sh: Use it in library path.
+ * ld_lib_path.csh: Likewise.
+
+ * gnustep-make.spec.in: Remove csh rules so rpm won't depend
+ on csh.
+
+ * Documentation/README.MingW: Update.
+ * Documentation/machines.texi: Likewise.
+
+Thu Jul 26 12:26:10 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Documentation/internals.tex: Revised and updated this document
+ to describe the new gnustep-make internals.
+
+Tue Jul 24 13:48:24 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (ALL_JAVADOCFLAGS): Readded INTERNAL_JAVADOCFLAGS
+ which had been removed by mistaked.
+
+2001-07-19 Adam Fedor <fedor@gnu.org>
+
+ * documentation.make (LATEX2HTML): Filter out which error messages.
+ * Documentation/makedoc.make: Likewise.
+
+ * Documentation/readme.texi: Explain license more clearly.
+ * Documentation/gnustep-howto.texi: Likewise.
+ * Documentation/README.MinGW: Update.
+
+Thu Jul 19 10:35:22 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * application.make: Removed annoying debugging message.
+
+Mon Jul 16 11:35:51 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * bundle.make (internal-clean): Depend on .subprojects; make clean
+ rules moved here; modified to remove all compiled bundles by using
+ BUNDLE_NAME.
+ (internal-distclean): Idem.
+ (internal-bundle-clean, internal-bundle-distclean): Idem.
+ * gswbundle.make: Same changes to the same rules.
+
+Fri Jul 13 18:31:26 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * test-application.make (APP_EXTENSION): Set it, fixing
+ the bug on make clean.
+
+Fri Jul 13 18:29:03 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * application.make (internal-clean): Simplified by using
+ GNUSTEP_OBJ_DIR.
+ * gswapp.make (internal-clean): Idem.
+ * service.make (internal-clean): Idem.
+ * test-application.make (internal-clean): Idem.
+
+Fri Jul 13 17:55:45 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * test-library.make (internal-clean): Depend on .subprojects; make
+ clean rules moved here.
+ (internal-distclean): Idem.
+ (internal-testlib-distclean): Removed.
+ (internal-testlib-clean): Removed.
+
+Fri Jul 13 17:53:38 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * test-application.make (internal-clean, internal-distclean):
+ Updated to changes in application.make.
+
+Fri Jul 13 17:48:55 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * documentation.make (internal-doc-clean): Ignore problems
+ in make clean.
+
+Fri Jul 13 17:35:13 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * subproject.make (internal-clean): Commands to make clean moved
+ here; depend on .subprojects.
+ (internal-distclean): Idem.
+ (internal-subproject-clean, internal-subproject-distclean):
+ Removed.
+
+Fri Jul 13 17:26:49 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * palette.make (internal-clean): Commands to make clean moved
+ here; depend on .subprojects.
+ (internal-palette-clean): Removed.
+ (.PHONY): Removed internal-palette-clean.
+ * service.make (internal-clean): Commands to make clean moved
+ here; depend on .subprojects.
+ (internal-svc-clean): Removed.
+ (.PHONY): Removed internal-svc-clean.
+ * service.make: All targets renamed by replacing `svc' with
+ `service'.
+
+Fri Jul 13 17:19:05 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * library.make (internal-clean): Commands to make clean moved
+ here; depend on .subprojects.
+ (internal-distclean): Idem.
+ (internal-library-clean, internal-library-distclean): Removed.
+ (.PHONY): Removed internal-library-clean and
+ internal-library-distclean.
+ * objc.make (internal-clean): Commands to make clean moved here;
+ depend on .subprojects.
+ (internal-distclean): Idem.
+ (internal-objc_program-clean, internal-objc_program-distclean):
+ Removed.
+ (.PHONY): Removed internal-objc_program-clean and
+ internal-objc_program-distclean.
+
+Fri Jul 13 16:48:29 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * application.make (internal-clean): Commands to make clean moved
+ here; depend on .subprojects.
+ (internal-distclean): Idem.
+ (internal-app-clean, internal-app-distclean): Removed.
+ (.PHONY): Removed internal-app-clean and internal-app-distclean.
+ * gswapp.make: Identical changes.
+
+Fri Jul 13 16:17:36 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * tool.make (internal-clean): Short-cut the recursive make
+ invocation, and clean immediately for all tools here. But
+ depend on the .subprojects rule in order to make clean in
+ eventual subprojects.
+ (internal-distclean): Idem.
+ (internal-tool-clean): Removed.
+ (internal-tool-distclean): Removed.
+ (.PHONY): Removed internal-tool-clean and internal-tool-distclean.
+ * ctool.make: Exactly the same changes as in tool.make.
+ * test-tool.make (internal-clean): Updated to mirror the change in
+ tool.make.
+ (internal-distclean): Idem.
+
+Fri Jul 13 13:45:54 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (%.variables, %.tools, %.subprojects): Removed usage
+ of $(call ...) for backward compatibility with old versions of GNU
+ make.
+
+Fri Jul 13 10:18:15 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (%.subprojects): Use the __done trick.
+ (%.tools): Idem.
+
+Thu Jul 12 18:10:31 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * subproject.make (.PHONY): Added.
+ (localized-framework-resource-files): Renamed to
+ framework-localized-resource-files for consistency.
+
+Thu Jul 12 17:26:40 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (%.variables): Depend on %.tools and %.subprojects.
+ Corresponding code to build framework tools and subprojects moved
+ into new %.tools and %.subprojects rules.
+ (.PRECIOUS): Added %.variables, %.subprojects and %.tools to
+ prevent make from trying to delete them as if they were temporary
+ files.
+
+Thu Jul 12 16:54:01 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (%.variables): Pass TARGET down to submake so that
+ the before-$(TARGET)-all and after-$(TARGET)-all rules actually
+ work.
+
+Thu Jul 12 11:54:28 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make: Removed PROCESS_SECOND_TIME.
+ (%.variables, %.build): Merged the two rules, which removes a make
+ invocation per operation. The new rule is called %.variables, so
+ we no longer have a %.build rule.
+
+Wed Jul 11 19:18:57 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * framework.make (framework-components): Use a makefile
+ conditional.
+ (framework-resource-files): Idem.
+ (framework-localized-resource-files): Idem.
+ (framework-localized-webresource-files): Idem.
+ (framework-webresource-files): Idem
+ (framework-webresource-files): Have two rules, include the one
+ which depends on framework-webresource-dir only if we have
+ WEBSERVER_RESOURCE_FILES.
+ (framework-localized-webresource-files): Idem.
+ (framework-webresource-dir): Reorganized to build directories only
+ when needed. Remove the non-link file - if any - before making
+ the link.
+ (localized-framework-resource-files): Renamed to
+ framework-localized-resource-files for consistency.
+ (framework-webresource-files): Rewritten code.
+
+Wed Jul 11 18:36:14 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * framework.make ($(DUMMY_FRAMEWORK_FILE)): Simplified,
+ standardized looking for classes in object files.
+
+Wed Jul 11 18:17:43 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * framework.make (before-$(TARGET)-all): Do not depend on
+ FRAMEWORK_HEADER_FILES because build-headers already does that.
+ (FRAMEWORK_HEADER_FILES): Use addprefix to manage also header
+ files not ending in .h.
+ (FRAMEWORK_RESOURCE_DIRS): Use addprefix.
+ (FRAMEWORK_WEBSERVER_RESOURCE_DIRS): Idem.
+ (FRAMEWORK_INSTALL_DIR): Use = rather than :=.
+
+Wed Jul 11 15:51:43 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * subproject.make (internal-subproject-all): Only depend on
+ framework rules if we are building in a framework. Include the
+ framework rules only if building in a framework.
+ (framework-components): Turned shell conditional into makefile
+ conditional.
+ (localized-framework-resource-files): Idem.
+ (framework-webresource-dir): Idem.
+ (framework-webresource-files): Idem.
+ (framework-localized-webresource-files): Idem.
+ (framework-resource-files): Idem; and do not build the framework
+ resource directory here as it is already built by the framework
+ build-header rules.
+
+Wed Jul 11 13:35:49 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * framework.make (internal-framework-all): Do not depend on
+ build-framework-dir as that is already done by before all.
+ (build-framework-dir): Renamed to build-framework-dirs; depend on
+ single separate rules building - only if needed! - the directories
+ rather than building them directly in this rule. Create all the
+ needed symbolic links in this rule. Remove files which are not
+ symbolic links before creating the links.
+ ($(FRAMEWORK_HEADER_FILES)): Do not create any symbolic link in
+ this rule.
+ * subproject.make (internal-install): If not inside a framework,
+ run internal install to install the headers.
+ (internal-uninstall): Idem.
+ ($(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT)): Depend on
+ SUBPROJECT_OBJ_FILES to account for sub-subprojects.
+ ($(FRAMEWORK_HEADER_FILES)): Use makefile conditional; do not
+ create the framework symbolic links which are done by the
+ framework; depend on FRAMEWORK_HEADERS_DIR rather than building it
+ here.
+ ($(FRAMEWORK_HEADERS_DIR)): New rule.
+ All internal installation/uninstallation rules are now included
+ only if FRAMEWORK_NAME is empty.
+ (HEADER_FILES_DIR): Set.
+ (internal-install-subproject-dirs): Removed; added rules to build
+ the single dirs instead.
+ (internal-install-subproject-headers): Renamed to
+ internal-install-headers, and simplified.
+
+Wed Jul 11 12:06:29 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * framework.make (before-all): Run internal build-headers target
+ rather than internal before-all target.
+ (internal-framework-before-all): Renamed to
+ internal-framework-build-headers; do not echo a message.
+ * subproject.make (before-all): Renamed to build-headers.
+ (internal-subproj-before-all): Renamed to
+ internal-subproj-build-headers; do not echo a message.
+ * rules.make (%.build): Use build-headers rather than before-all
+ in the ifneq to avoid processing $*_TOOLS.
+ * subproject.make: Changed `subproj' in all targets to the more
+ readable `subproject'.
+
+Wed Jul 11 11:34:48 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (%.build): When passing xxx_SUBPROJECTS to a submake,
+ call the passed variable _SUBPROJECTS to avoid conflicts with
+ SUBPROJECTS as used by aggregate.make.
+ (SUBPROJECT_OBJ_FILES): Set this variable using _SUBPROJECTS.
+
+2001-07-10 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Quote $gcc_shared_libobjc in test.
+
+Tue Jul 10 18:13:51 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (%.build): Modified message when processing
+ subprojects, as the operation might not necessarily be building.
+ * subproject.make (internal-subproj-all): Do not depend on
+ before-all and after-all.
+ (build-framework-headers): Renamed to internal-subproj-before-all.
+ Only include this rule for frameworks.
+ (internal-subproj-before-all): Print a message saying that we are
+ building the public headers.
+ (before-all): New rule used only with frameworks.
+ (before-$(TARGET)-all): Do not depend on $(FRAMEWORK_HEADER_FILES)
+ because internal-subproj-before-all does it already.
+ (after-all): Removed.
+ ($(FRAMEWORK_HEADER_FILES)): Use makefile conditional on
+ FRAMEWORK_NAME rather than shell one. Fixed bug:
+ INTERNAL_framework_NAME was used instead of FRAMEWORK_NAME.
+
+Tue Jul 10 17:09:34 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * framework.make (build-framework-headers): Renamed to
+ internal-framework-before-all.
+ (internal-framework-before-all): Print a message that we are
+ building the framework public headers.
+ (before-all): New rule.
+ * rules.make (%.build): Removed code running manually a submake
+ invocation to run the build-framework-headers operation. Do not
+ process TOOLS when the operation is before-all. Fixed typo/bug -
+ $ff was used insted of $$f in warning messages.
+
+Tue Jul 10 15:46:38 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (%.build): Reverted some makefile conditionals to
+ shell conditionals.
+
+Tue Jul 10 15:28:21 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * common.make: Protect from multiple inclusions (suggested by
+ Richard).
+
+Tue Jul 10 12:13:09 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * test-tool.make: Rewritten.
+ * test-application.make: Idem.
+
+Tue Jul 10 11:32:12 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * documentation.make (internal-doc-clean): Do not print clean
+ commands.
+ (internal-textdoc-clean): Idem.
+ (internal-doc-distclean): Idem.
+
+Tue Jul 10 11:16:47 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * GNUmakefile.in (MAKE_FILES): Removed woapp.make and
+ wobundle.make.
+
+Tue Jul 10 11:13:47 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * documentation.make (internal-doc-clean): Use a single rm command
+ for removing most files. Remove *.aux when latex is used.
+ (internal-doc-distclean): Do not remove *.aux for latex as it is
+ done by clean now. Do not remove *~ as it is already done by
+ clean in rules.make. If latex and latex2html are used, and if
+ $(INTERNAL_doc_NAME) is a directory, then rm -rf it.
+
+Tue Jul 10 10:49:59 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * woapp.make: Removed.
+ * wobundle.make: Removed.
+
+Tue Jul 10 10:44:11 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * aggregate.make: Do not include rules.make if RULES_MAKE_LOADED
+ is not empty.
+ * application.make: Idem.
+ * bundle.make: Idem.
+ * ctool.make: Idem.
+ * documentation.make: Idem.
+ * framework.make: Idem.
+ * gswapp.make: Idem.
+ * gswbundle.make: Idem.
+ * java-tool.make: Idem.
+ * java.make: Idem.
+ * library.make: Idem.
+ * objc.make: Idem.
+ * palette.make: Idem.
+ * service.make: Idem.
+ * subproject.make: Idem.
+ * test-application.make: Idem.
+ * test-library.make: Idem.
+ * test-tool.make: Idem.
+ * tool.make: Idem.
+
+Tue Jul 10 10:17:59 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (%.build): Removed doubled code to compute
+ subprojects list. Use extensively makefile conditionals to
+ improve performance and readability. Added more verbose messages
+ about what we are doing when building frameworks.
+
+Tue Jul 10 10:08:18 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * java-tool.make (.PHONY): Added _FORCE.
+
+2001-07-09 Adam Fedor <fedor@gnu.org>
+
+
+ * aggregate.make: Propogate GNUSTEP_INSTALLTION_DIR to subprojects.
+
+ * configure.in: Look for gcc's libobjc.so library. Use it to run
+ tests.
+ * GNUstep.sh.in (GCC_SO_DIR): Holds location of libobjc.so from gcc
+ (Need to pass this along so it is put in LD_LIBRARY_PATH).
+
+Mon Jul 9 18:46:59 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rpm.make (.PHONY): Added.
+ ($(SPEC_FILE)): Use makefile conditionals instead of shell
+ conditionals.
+ * source-distribution.make (.PHONY): Added.
+
+Mon Jul 9 18:30:02 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * service.make (internal-svc-install): Depend on
+ $(GNUSTEP_SERVICES).
+ ($(GNUSTEP_SERVICES)): Create the directory if it doesn't exist.
+ (.PHONY): Added.
+ (svc-resource-dir): Removed.
+ (svc-resource-files): Use makefile conditional.
+ (internal-svc-install): Run the commands in a single subshell.
+
+Mon Jul 9 18:15:26 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * palette.make (.PHONY): Added.
+ (palette-resource-files): Use makefile conditional.
+
+Mon Jul 9 17:58:33 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * objc.make (.PHONY): Added.
+ (internal-install-objc-dirs): Removed.
+ (internal-objc_program-clean): Do not remove $(OBJC_PROGRAM_NAME)
+ because it is not built.
+
+Mon Jul 9 17:46:02 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * library.make (.PHONY): Added.
+ (internal-uninstall-import-lib): Unused rule removed.
+ (import-library): Idem.
+ (internal-library-uninstall): Removed duplicated dependency on
+ before-uninstall, after-uninstall.
+ (before-uninstall, after-uninstall): Removed.
+ (internal-install-headers): Turned shell conditional into makefile
+ conditional.
+ (internal-uninstall-lib): Use a single rm command.
+
+Mon Jul 9 17:19:17 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * java.make (.PHONY): Added.
+ (internal-java_package-install): Do not depend on
+ internal-java_package-all.
+ (internal-install-java-dirs): Turned shell conditional into
+ makefile conditional.
+ (install-java_package): Idem.
+ (internal-java_package-clean): Use a single rm command.
+
+Mon Jul 9 17:02:22 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * java-tool.make (.PHONY): Added.
+ (internal-java_tool-install): Do not depend on
+ internal-java_tool-all.
+ (internal-install-java_tool-dirs): Turned shell conditional into
+ makefile conditional.
+ ($(GNUSTEP_INSTALLATION_DIR)/Tools/$(INTERNAL_java_tool_NAME)):
+ Force rebuilding always to take into account changes in
+ PRINCIPAL_CLASS.
+ (install-java_tool): Turned shell conditionals into makefile ones;
+ strip the variables when checking, and don't use the __done trick.
+ (internal-java_tool-clean): Use a single rm command.
+ * java-executable.template (java_vm): Fixed bug in evaluating
+ shell variables.
+
+Mon Jul 9 16:45:09 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * gswbundle.make (localized-gswbundle-resource-files): Renamed to
+ gswbundle-localized-resource-files for consistency with the other
+ makefiles.
+ (.PHONY): Added.
+ (gswbundle-components): Turned shell conditional into makefile
+ conditional.
+ (gswbundle-webresource-files): Idem.
+ (gswbundle-localized-webresource-files): Idem.
+ (gswbundle-resource-files): Idem.
+ (gswbundle-localized-resource-files): Idem.
+ (internal-bundle-install): Idem.
+ (internal-bundle-uninstall): Idem.
+
+Mon Jul 9 16:23:19 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * gswapp.make (.PHONY): Added.
+ (internal-gswapp-install): Do not depend on internal-gswapp-all.
+ Run the rule commands in a single subshell.
+ (gswapp-components): Turned shell conditional into makefile
+ conditional.
+ (gswapp-webresource-files): Idem.
+ (gswapp-localized-webresource-files): Idem.
+ (gswapp-resource-files): Idem.
+ (gswapp-localized-resource-files): Idem.
+
+Mon Jul 9 16:05:06 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * documentation.make (.PHONY): Added.
+ (internal-textdoc-check, internal-doc-check): Removed.
+ (internal-install-dirs): Removed.
+ (internal-textdoc-install, internal-doc-install): Depend directly
+ on $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR) rather than
+ internal-install-dirs.
+
+Mon Jul 9 15:53:54 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * ctool.make (.PHONY): Added.
+ (internal-install-dirs): Removed.
+ (internal-ctool-install): Depend directly on
+ $(CTOOL_INSTALLATION_DIR) rather than internal-install-dirs.
+ (install-ctool): Reorganized for readability.
+ * tool.make (install-tool): Reorganized for readability.
+
+Mon Jul 9 14:32:37 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * bundle.make (.PHONY): Added.
+ (bundle-resource-files): Turned shell conditional into makefile
+ conditional; strip RESORCE_FILES.
+ (localized-bundle-resource-files): Idem.
+ (RESOURCE_FILES, LOCALIZED_RESOURCE_FILES): Do not override them
+ to "" if they contain only spaces.
+ (internal-bundle-install): Turned shell conditionals into makefile
+ conditionals.
+ (internal-bundle-uninstall): Idem.
+ (localized-bundle-resource-files): Renamed to
+ bundle-localized-resource-files for consistency with other
+ makefiles.
+
+Mon Jul 9 12:49:02 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * application.make (.PHONY): Added.
+ (app-resource-files): Turned shell conditional into makefile
+ conditional; use strip on RESOURCE_FILES.
+ (app-localized-resource-files): Idem.
+ (RESOURCE_FILES, LOCALIZED_RESOURCE_FILES): Do not override them
+ to "" if they contain only spaces.
+
+Mon Jul 9 12:26:59 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * application.make (internal-install-dirs): Removed.
+ (internal-app-install): Depend on $(GNUSTEP_APPS) directly.
+ (app-resource-dir): Removed.
+ (app-resource-files, app-localized-resource-files): Depend on
+ $(APP_RESOURCE_DIRS) directly.
+ ($(APP_DIR_NAME)/$(INTERNAL_app_NAME), internal-app-install):
+ Run the shell commands in a single subshell.
+
+Mon Jul 9 11:54:20 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * tool.make (.PHONY): Added.
+ (internal-tool-all): Simplified.
+ (install-tool): Turned shell conditional into makefile
+ conditional.
+
+Mon Jul 9 11:35:48 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make ($(GNUSTEP_OBJ_DIR)): Do not protect this rule
+ against multiple inclusions as the whole file is already
+ protected.
+
+Mon Jul 9 11:30:21 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make ($(GNUSTEP_OBJ_DIR)): Send the three shell commands
+ in this rule together.
+
+Mon Jul 9 11:08:55 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make ($(GNUSTEP_MAKEFILES)/*.make): New empty rule.
+ ($(GNUSTEP_MAKEFILES)/$(GNUSTEP_TARGET_DIR)/config.make): Idem.
+ ($(GNUSTEP_MAKEFILES)/Additional/*.make): Idem.
+ * rules.make (%.build): Turned shell `if' conditional for
+ framework into makefile `if[n]eq' conditionals.
+
+Fri Jul 6 10:22:46 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * target.make (LD_LIB_PATH): Removed. This old unused variable
+ was seriously degrading performance.
+
+Thu Jul 5 11:19:46 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * documentation.make (internal-textdoc-all): Do not depend on
+ before-all and after-all.
+ (internal-doc-clean): Use $(GSDOC_OBJECT_FILES) when installing
+ gsdoc files.
+ (internal-textdoc-clean): Removed gsdoc related code from here.
+ (internal-doc-all): for building gsdoc, depend on
+ $(GSDOC_OBJECT_FILES) rather than $(INTERNAL_doc_NAME).html.
+ ($(INTERNAL_doc_NAME).html): Replaced this rule for gsdoc with a
+ rule for $(GSDOC_OBJECT_FILES).
+
+Thu Jul 5 10:28:11 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (INTERNAL_CLASSPATHFLAGS): Moved ADDITIONAL_CLASSPATH
+ before CLASSPATH.
+
+Wed Jul 4 14:37:36 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * common.make (INTERNAL_JAVACFLAGS, INTERNAL_JAVAHFLAGS):
+ Removed.
+ * rules.make (INTERNAL_CLASSPATHFLAGS): New flags; add
+ ADDITIONAL_CLASSPATH to the -classpath option as well.
+ (ALL_JAVACFLAGS, ALL_JAVAHFLAGS): Use INTERNAL_CLASSPATHFLAGS
+ rather than INTERNAL_JAVACFLAGS and INTERNAL_JAVAHFLAGS.
+ (ALL_JAVADOCFLAGS): Added INTERNAL_CLASSPATHFLAGS.
+ (%.build): Pass ADDITIONAL_CLASSPATH to subprocesses.
+
+Fri Jun 29 14:53:51 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Documentation/.latex2html-init: New file.
+ * Documentation/internals.tex: New document.
+ * Documentation/GNUmakefile.in: Define TAR. Compile
+ internals.
+
+Fri Jun 29 14:22:33 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * java.make: Removed old obsolete JAVA_PACKAGE_PREFIX support.
+
+2001-06-28 Adam Fedor <fedor@gnu.org>
+
+ * common.make (GNUSTEP_USER_FRAMEWORKS_LIBRARIES_FLAG): Typo
+ fix (was previously overriding GNUSTEP_USER_LIBRARIES_FLAG.
+
+2001-06-22 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/gnustep-howto.texi: Update.
+ * Documentation/machines.texi: Update.
+
+Thu Jun 21 12:51:34 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * java.make (install-java_package), (internal-java_package-clean):
+ Fixed, simplified, and optimized management of nested classes.
+ * java-tool.make (install-java_tool), (internal-java_tool-clean),
+ (internal-java_tool-uninstall): Idem.
+
+Thu Jun 21 10:13:55 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (.PHONY): Fixed typo ('=' was used instead of ':')
+ which was causing the phony target declaration to be ignored.
+
+ * rules.make (install): Depend on `all' target at makelevel 0.
+ * application.make (internal-app-install): Do not depend on
+ internal-app-all.
+ * bundle.make (internal-install): Do not depend on all.
+ * ctool.make (internal-ctool-install): Do not depend on
+ internal-ctool-all.
+ * documentation.make (internal-install): Do not depend on all.
+ * framework.make (internal-install): Do not depend on all.
+ * gswbundle.make (internal-install): Do not depend on all.
+ * library.make (internal-install): Do not depend on all.
+ * objc.make (internal-objc_program-install): Do not depend on
+ internal-objc_program-all.
+ * palette.make (internal-install): Do not depend on all.
+ * subproject.make (internal-install): Do not depend on all.
+ * tool.make (internal-tool-install): Do not depend on
+ internal-tool-all.
+ * wobundle.make (internal-install): Do not depend on all.
+
+Wed Jun 20 12:24:35 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (.PHONY): Added internal-after-install.
+
+Tue Jun 19 10:00:06 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * java-tool.make (install-java_tool): Install nested classes as
+ well. (internal-java_tool-clean): Remove nested classes as well.
+
+2001-06-18 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * java.make: Added code to cope with install and clean for inner
+ classes (extra class files generated from .java files)
+
+2001-05-29 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.0.1
+
+2001-05-28 Adam Fedor <fedor@gnu.org>
+
+ * config.site: Check GNUSTEP_FLATTENED when setting bindir,libdir.
+
+ * Documentation/README.MinGW: Update
+ * Documentation/news.texi: Likewise.
+
+2001-05-18 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * framework.make ($(DUMMY_FRAMEWORK_FILE)): added missed fi.
+
+Fri May 18 01:41:03 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * debugapp.in, openapp.in, opentool.in: Fixed adding EXEEXT at the
+ end.
+
+2001-05-12 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * framework.make ($(DUMMY_FRAMEWORK_FILE)): does not append NULL if
+ classlist does not contains classes.
+ (patch by Stephen Brandon <stephen@pyrusmalus.com>)
+
+2001-05-10 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * target.make (SHARED_FRAMEWORK_LINK_CMD): fix framework soname for
+ FreeBSD ELF.
+ * framework.make (internal-framework-install): handle symlink for
+ libxxx.so.n files. (patches by Kim Shrier <kim@tinker.com>)
+
+2001-05-08 Adam Fedor <fedor@gnu.org>
+
+ * bundle.make ($(BUNDLE_DIR_NAME)/Contents/Resources): Remove
+ link before making it (Solaris ln -f doesn't work).
+ * openapp.in: Add linefeed at end (Solaris sed doesn't work well
+ without it).
+
+2001-05-05 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * target.make: fix library soname for FreeBSD ELF.
+ (patch by Kim Shrier <kim@tinker.com>)
+
+Sat May 5 12:40:39 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in (CLASSPATH): Set classpath before the user
+ initialization code is executed, and before running make_services,
+ so that the classpath is safely set even if they fail.
+ * GNUstep.csh.in: Idem.
+
+2001-05-03 Adam Fedor <fedor@gnu.org>
+
+ * target.make: Rm -lm from default TARGET_SYSTEM_LIB
+
+Fri Apr 27 10:53:50 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ Implemented support for Java tools.
+ * java-tool.make: New file.
+ * java-executable.template: New file.
+ * GNUmakefile.in: Install the new files.
+
+2001-04-26 Adam Fedor <fedor@gnu.org>
+
+ * configure.in (with-thread-lib): New option to specify alternate
+ thread library.
+ * Documenation/install.texi: Update.
+
+Thu Apr 26 12:48:27 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * documentation.make (JAVADOC_BUILD_ALWAYS): New variable to allow
+ asking gnustep-make to rebuild javadoc documentation each time it
+ is run.
+
+2001-04-25 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Check OBJC_RUNTIME_LIB from library_combo and set
+ NeXT_RUNTIME if appropriate (only for thread test).
+ * config_thread.m: Don't include NSConstStr if NeXT_RUNTIME.
+
+2001-04-25 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * documentation.make: Revert last change ... it broke javadoc makes
+ for targets like gnu.gnustep.base ... So how do we write proper
+ makefile dependency rules for javadoc?
+
+Wed Apr 25 14:01:32 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * java.make (JAVA_INSTALLATION_DIR): New variable to configure
+ where to install. JAVA_PACKAGE_PREFIX has been deprecated.
+
+Wed Apr 25 11:05:49 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * Version: Use the standard names GNUSTEP_MAKE_MAJOR_VERSION,
+ GNUSTEP_MAKE_MINOR_VERSION, GNUSTEP_MAKE_SUBMINOR_VERSION rather
+ than MAKE_MAJOR_VERSION, MAKE_MINOR_VERSION and
+ MAKE_SUBMINOR_VERSION.
+ * configure.in: Substitute the new variables; do not output
+ GNUSTEP_VERSION any longer.
+ * configure: Regenerated.
+ * config.make.in: Define GNUSTEP_MAKE_VERSION,
+ GNUSTEP_MAKE_MAJOR_VERSION, GNUSTEP_MINOR_VERSION,
+ GNUSTEP_SUBMINOR_VERSION so that client code can easily get
+ the version of gnustep-make which is used by reading these
+ variables in their makefiles.
+
+2001-04-25 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * documentation.make: For Java,
+ $(INTERNAL_doc_NAME)/index.html depends on *any* of the Java source
+ files used. Rebuilds entire javadoc tree if any file is changed.
+
+2001-04-21 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * framework.make ($(DUMMY_FRAMEWORK_FILE)): fix for empty $classlist.
+
+2001-04-21 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * target.make (SHARED_LIB_LINK_CMD): fixed NeXT target.
+
+2001-04-14 Adam Fedor <fedor@gnu.org>
+
+ * GNUstep.sh.in: Put Tools directory first in search path so
+ it will find scripts first.
+ * GNUstep.csh.in: Likewise.
+
+2001-04-14 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * target.make: fixed target for FreeBSD aout.
+
+2001-04-13 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * target.make: check for freebsd instead of freebsdelf.
+ * clean_os.sh: likewise.
+
+2001-04-13 Adam Fedor <fedor@gnu.org>
+
+ * GUI Backend built as bundle by default. Remove backend component
+ of LIBRARY_COMBO throughout makefiles and scripts.
+ * configure.in: Add enable-backend-bundle.
+ * config.make.in: Define BACKEND_BUNDLE.
+
+ * Documenation/DESIGN,gnustep-howto.texi,install.texi: Update.
+
+ * openapp.in: Simplify - use executable.template script for work.
+ * opentool.in: Likewise.
+ (patches from Jeff Teunissen <deek@dusknet.dhs.org>).
+
+Wed Apr 11 12:03:55 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * documentation.make [TEXI_FILES] ($(INTERNAL_doc_NAME)_toc.html):
+ Do not abort if command fails (presumably because texi2html could
+ not be found). (internal-doc-install): Install html only if it
+ has been generated.
+
+2001-04-09 Adam Fedor <fedor@gnu.org>
+
+ * Merge 1.0 branch back into main.
+
+2001-03-23 Jonathan Gapen <jagapen@home.com>
+
+ * configure.in: Also look for 'gnutar' tar program.
+ * configure: Re-generate.
+
+2001-04-05 Adam Fedor <fedor@gnu.org>
+
+ * Version: 1.0.0
+ * GNUstep-HOWTO, NEWS: Regenerated.
+ * Documentation/machines.texi: Update
+
+2001-04-04 Adam Fedor <fedor@gnu.org>
+
+ * config.guess: Update to latest version
+ * config.sub: Likewise.
+ * configure.in: Quote $host_os
+ * Documentation/*texi: Update
+
+2001-03-31 Adam Fedor <fedor@gnu.org>
+
+ * target.make (TARGET_SYSTEM_LIBS): Set default libs.
+
+2001-03-30 Adam Fedor <fedor@gnu.org>
+
+ * target.make: Define TARGET_SYSTEM_LIBS for cygwin.
+
+2001-03-29 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/GNUmakefile.in: Use standard rules for documentation.
+ * Documentation/*texi: Update
+ * GNUstep-HOWTO, INSTALL, README: Regen.
+
+2001-03-28 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Remove spurious ','.
+
+ * which_lib.c (search_for_library_in_directory): Translate Windows
+ //c paths to c: so MingW functions can find them.
+
+2001-03-27 Adam Fedor <fedor@gnu.org>
+
+ * target.make: Add darwin target.
+
+ * Documentation/machines.texi: Update.
+ * Documentation/faq.texi: Likewise.
+ * Documentation/gnustep-howto.texi: Likewise
+
+Mon Mar 19 14:30:01 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (install): Depend on internal-after-install after all
+ the other rules. (internal-after-install): Added empty rule.
+ * rpm.make (after-install): Rule moved to
+ (internal-after-install). This makes sure the file list is always
+ generated *after* all application installation code, after-install
+ included, has been run.
+
+Mon Mar 19 14:09:08 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * GNUmakefile.in (test-RPM_TOPDIR): New target to test that
+ RPM_TOPDIR is set before attempting to generate the RPM, and exit
+ with an error if not. (rpm): Depend on the new target.
+
+Mon Mar 19 00:14:24 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * transform_paths.sh: Fixed, rewritten.
+
+Sun Mar 18 17:49:59 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * application.make ($(APP_DIR_NAME)/Resources/Info-gnustep.plist):
+ Micro optimization: replaced sed call with subst.
+ * palette.make ($(PALETTE_DIR_NAME)/Resources/palette.table): Idem.
+
+ * bundle.make ($(BUNDLE_DIR_NAME)/Resources/Info.plist),
+ ($(BUNDLE_DIR_NAME)/Resources/Info-gnustep.plist): Idem, plus
+ strip .gorm and .nib extensions as well as .gmodel.
+ * gswapp.make ($(GSWAPP_DIR_NAME)/Resources/Info-gnustep.plist):
+ Idem.
+
+Sun Mar 18 16:47:05 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * opentool.in: Do not run sed to attempt remove slashes at the
+ end of tool name. This makes sense for apps, but not for tools.
+
+Sun Mar 18 16:19:49 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * service.make: Define GNUSTEP_MAKE_SERVICES to be make_services
+ if not yet set.
+ ($(SERVICE_DIR_NAME)/Resources/Info-gnustep.plist): Use
+ $(GNUSTEP_MAKE_SERVICES) rather than `opentool make_services' to
+ run make_services.
+ * application.make: Do not use opentool when running plmerge.
+ * common.make: Warn the user if PATH is not set up correctly.
+
+Sun Mar 18 14:49:31 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (generated-files): Added opentool,
+ executable.template and gnustep-make.spec which were missing;
+ added missing rules for executable.template and gnustep-make.spec.
+ * opentool.in (case $tool in */*): Fixed case of relative path.
+
+Sat Mar 17 00:11:52 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * application.make ($(APP_FILE)): Micro optimization: Replace
+ sed with subst.
+ * gswapp.make ($(GSWAPP_FILE)): Idem.
+ * woapp.make ($(WOAPP_FILE)): Idem.
+
+Fri Mar 16 20:01:58 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (before-all): Do not create the symbolic link
+ obj->$(GNUSTEP_OBJ_DIR). ($(GNUSTEP_OBJ_DIR)): Create the link in
+ this rule, so that it is only created when/if the object directory
+ is created. (internal-clean): Remove the obj symbolic link too.
+
+Fri Mar 16 14:48:51 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * configure.in: Fixed syntax of some new tests.
+ * configure: Regenerated.
+
+2001-03-15 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Use autoconf tests to detect CYGWIN, MINGW32,
+ EXEEXT, and OBJEXT. Add threading test for Mingw.
+ * config.make.in (OEXT): Use OBJEXT.
+
+Thu Mar 15 00:55:19 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in, GNUstep.csh.in: Compute GNUSTEP_HOST_CPU,
+ GNUSTEP_HOST_OS, GNUSTEP_HOST_VENDOR only if not yet set.
+
+Wed Mar 14 19:16:01 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * aggregate.make: Micro optimization: Replace sed with subst.
+
+Wed Mar 14 18:49:53 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUstep.sh.in, GNUstep.csh.in: Removed references to the old
+ variable GNUSTEP_BUILD_ROOT.
+
+Wed Mar 14 11:48:10 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * application.make: Optimization: rearranged targets as not to run
+ mkdirs to create directories if the directories already exists.
+ * bundle.make: Idem.
+ * documentation.make: Idem.
+ * library.make: Idem.
+ * java.make: Idem.
+ * tool.make: Idem.
+
+ * ctool.make: Same optimization but I had not the opportunity to
+ test it. Please anybody having, do and fix it if needed.
+ * gswapp.make: Idem.
+ * gswbundle.make: Idem.
+ * objc.make: Idem.
+ * palette.make: Idem.
+ * service.make: Idem.
+
+2001-03-14 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * rules.make: Quicks hack in before-all... create a symbolic link
+ from 'obj' to the directory in which we store object files ...
+ purely as a convenience. Probably can get cleaner code for this
+ but I'm not a makefiles expert.
+
+Wed Mar 14 10:40:45 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make (%.variables): Bug fix: rewritten the rule as it was
+ not able to manage names containing dots.
+
+Wed Mar 14 09:14:22 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * library.make (SOVERSION): Minor optimization: Replace awk call
+ with simple subt and word calls.
+
+Wed Mar 14 00:15:15 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ Huge speed up. As an example of the order of magnitude, on my
+ home system these optimizations reduce the time taken by gnustep
+ to install the base library to 40% of the original time.
+ * common.make (GNUSTEP_OBJ_PREFIX): Major optimization: replace
+ invocation of sed with invocation of the make internal function
+ subst.
+ * rules.make (%.variables): Optimization: replaced three sed calls
+ with subst and word.
+
+2001-03-13 Adam Fedor <fedor@gnu.org>
+
+ * configure.in (objc_thread_lib): Correct test for threading
+ on non GNU/Linux, no bsd systems - actually add -lthread to link
+ line. Don't set -lthread when cross-compiling. Also add extra_LIBS
+ to objc_thread_lib.
+ * target.make (solaris/TARGET_SYSTEM_LIBS): Don't add posix4 (should
+ be in objc_thread_lib if needed.
+
+2001-03-10 Adam Fedor <fedor@gnu.org>
+
+ * Version 0.9.2
+ * objc.make (WITH_DLL): Add DLL defs when WITH_DLL=yes
+
+2001-03-08 Adam Fedor <fedor@gnu.org>
+
+ * clean_cpu.sh: Make all alpha variants the same.
+
+2001-03-07 Adam Fedor <fedor@gnu.org>
+
+ * GNUstep.sh.in: Switch PATH back to the way it was so GNUstep
+ paths are first.
+
+2001-03-06 Adam Fedor <fedor@gnu.org>
+
+ * GNUmakefile.in: Remove extra '/' from GNUSTEP_..._ROOT paths.
+
+2001-03-01 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * GNUstep.sh.in: Added check to ensure we don't add the same info
+ to the path twice.
+
+2001-02-28 Adam Fedor <fedor@gnu.org>
+
+ * rules.make (LIBRARIES_DEPEND_UPON): Use ALL_LIB_DIRS not
+ LIB_DIRS_NO_SYSTEM.
+ * Documentation/README.NetBSD: New file.
+
+2001-02-27 Adam Fedor <fedor@gnu.org>
+
+ * rules.make (LIBRARIES_DEPEND_UPON): Switch order of -L flags so
+ additional flags are first.
+ * target.make (SHARED_LIB_LINK_CMD): Remove redundant -L flags.
+
+Tue Feb 27 04:45:42 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.in (Version): source it as ./Version rather than just
+ Version (suggested by Juliusz Chroboczek <jch@pps.jussieu.fr>).
+ * configure: Regenerated.
+
+2001-02-26 Adam Fedor <fedor@gnu.org>
+
+ * Documenation/makedoc.make: New file mostly copied from
+ documentation.make.
+ * Documenation/makerules.make: New mostly copied from rules.make
+ * Documenation/gnustep-howto.texi: Moved from core/Documenation
+ * Documenation/faq.texi: Likewise.
+ * Documenation/machines.texi: Likewise.
+ * GNUstep-HOWTO, FAQ: Regenerated.
+ * README.MinGW: Moved from core
+
+2001-02-25 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Separate def of LD_LIBRARY_PATH from export.
+
+2001-02-24 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * configure.in (GNUSTEP_NETWORK_ROOT): Fixed typo.
+ * configure: Regenerated.
+
+2001-02-22 Adam Fedor <fedor@gnu.org>
+
+ * which_lib.c (main): Add back the -L paths.
+
+2001-02-23 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * opentool.in: If a local tool is found, do not search further in
+ other directories.
+
+2001-02-21 Adam Fedor <fedor@gnu.org>
+
+ * Documentation/make.texi: Update
+ * Documentation/news.texi: Likewise
+ * Documentation/install.texi: Likewise
+ * NEWS, INSTALL: Regenerate
+
+2001-02-19 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * configure.in: Accept --with-local-root and --with-network-root
+ options to specify special placement of GNUSTEP_LOCAL_ROOT and
+ GNUSTEP_NETWORK_ROOT.
+ * configure: Regenerated.
+ * GNUmakefile.in (GNUSTEP_LOCAL_ROOT), (GNUSTEP_NETWORK_ROOT):
+ * GNUstep.sh.in (GNUSTEP_LOCAL_ROOT), (GNUSTEP_NETWORK_ROOT):
+ * GNUstep.csh.in (GNUSTEP_LOCAL_ROOT), (GNUSTEP_NETWORK_ROOT):
+ Substitute values from configure.
+ * GNUmakefile.in: Updated to work with the new arrangement. In
+ particular, to install in special directories when building binary
+ packages, you now use make install special_prefix=xxx.
+ * gnustep-make.spec.in: Use the new special_prefix instead of
+ prefix.
+ * debian/rules: Idem.
+
+ * GNUmakefile.in (tgz): New target.
+
+2001-02-14 Adam Fedor <fedor@gnu.org>
+
+ * GNUmakefile.in (cvs-tag): New targete for maintainance
+ * source-distribution.make (cvs-tag): Likewise.
+
+2001-02-13 Adam Fedor <fedor@gnu.org>
+
+ * Version: 0.9.1
+
+2001-02-12 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * target.make (OBJC_CLASS_SECTION): define class section in obj file.
+ * framework.make: fixed to support various object section.
+
+2000-02-11 Manuel Guesdon <mguesdon@orange-concept.com>
+
+ * common.make: added $(FOUNDATION_LIBRARY_DEFINE) to
+ AUXILIARY_CPPFLAGS
+
+2001-02-08 Richard Frith-Macdonald <rfm@gnu.org>
+
+ Fix by David Wetzel to framework.make
+ if($$2 == "R") changed to if($$2 == "D")
+
+Tue Feb 6 16:59:20 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ Javadoc support added.
+ * common.make (JAVADOC): Set it.
+ * rules.make (ALL_JAVADOCFLAGS): Set it. (%.build): Pass
+ JAVADOC_FILES and JAVADOC_SOURCEPATH down.
+ * documentation.make: Added support for javadoc documentation.
+
+Sun Feb 4 23:19:38 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * debian/*: Applied patches by Matthias Klose <doko@debian.org> to
+ make it more debian compliant.
+
+2001-01-30 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Redo setting prefix again! set root_prefix to
+ base directory (typically /usr/GNUstep)
+ * GNUmakefile.in: Update for new prefix, root_prefix, GNUSTEP_ROOT
+ * GNUstep.csh.in: Likewise.
+ * GNUstep.sh.in: Likewise.
+
+Mon Jan 29 23:38:25 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * debian: New directory.
+ * debian/changelog: New file.
+ * debian/control: New file.
+ * debian/copyright: New file.
+ * debian/rules: New file.
+
+2001-01-29 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Correct setting of prefix and GNUSTEP_ROOT.
+ * GNUmakefile.in: Replace GNUSTEP_PREFIX with GNUSTEP_ROOT
+
+Mon Jan 29 16:57:53 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * GNUmakefile.in (install): Create the
+ $GNUSTEP_MAKEFILES/Additional directory.
+ * brain.make: Moved base, gui, xgps and xdps specific code into
+ makefiles created and installed into $GNUSTEP_MAKEFILES/Additional
+ by the base, gui, xgps and xdps packages themselves.
+ * common.make: Include all makefiles found in
+ $GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES and
+ $GNUSTEP_MAKEFILES/Additional.
+ * config.make.in: (GRAPHIC_LIBS), (GRAPHIC_CFLAGS),
+ (GRAPHIC_LFLAGS), (X_PRE_LIBS): Removed.
+ (CONFIG_SYSTEM_DEFS): Removed SYSTEM_DEFS and DPS_DEFINE.
+ * configure.in: Moved base, gui, xgps and xdps specific code
+ into the configure.in inside each library.
+
+2001-01-25 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * configure.in: Added check for recent versions of GMP
+ * configure: Regenerated.
+
+Mon Jan 22 12:55:13 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * configure.in (LD_LIBRARY_PATH): set it before running the tests
+ to fix problems in executing tests against a shared libobjc.
+ * configure: Regenerated.
+
+2001-01-19 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * spec-debug-rules.template: Bug fix: removed a '/' at the end of
+ INSTALL_ROOT_DIR.
+
+2001-01-18 Adam Fedor <fedor@gnu.org>
+
+ * opentool.in: Fix typo in setting GNUSTEP_HOST_LDIR
+
+Thu Jan 18 18:07:36 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * spec-debug-rules.template: Speed up filtering.
+
+2001-01-18 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * tool.make: modified to build framework tools. (installed in the
+ framework resource dir)
+ * rules.make (%.build): build framework tools.
+ * framework.make: updated docs.
+
+Thu Jan 18 12:15:11 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * gnustep-make.spec.in: Do a make distclean before running
+ configure.
+
+2001-01-17 Adam Fedor <fedor@gnu.org>
+
+ * library.make: Revert last change, add LIBRARY_INSTALL_DIR
+ which replaces GNUSTEP_LIBRARIES.
+ * target.make: Replace GNUSTEP_LIBRARIES with LIBRARY_INSTALL_DIR.
+
+ * source-distribution.make: Add cvs-dist and cvs-snapshot targets
+
+Wed Jan 17 17:19:58 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rpm.make: GNUSTEP_BASE_INSTALL changed to INSTALL_ROOT_DIR since
+ this variable is already used in gnustep-base to do the same job.
+ * spec-rules.template, spec-debug-rules.template,
+ spec-debug-alone-rules.template: Updated for change.
+
+2001-01-17 Adam Fedor <fedor@gnu.org>
+
+ * library.make (LIBRARY_OBJ_DIR): New redefinable var to specify
+ where libraries go. Some packages can specify backend independant
+ libs to go in library_combo/..
+ * configure.in: Check for libobjc in new dir.
+ Avoid referencing problem by just always including the GNUstep
+ Headers and Libraries directory in search paths.
+
+Wed Jan 17 16:49:54 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rpm.make (rpm): Fixed typo in copying tar gz file.
+ ($(SPEC_FILE)): Fixed typo in checking RPM_DISABLE_RELOCATABLE
+ and in PACKAGE_NEEDS_CONFIGURE.
+
+Wed Jan 17 13:58:34 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * GNUmakefile.in (cvs-snapshot), (rpm): New targets.
+ * source-distribution.make (tgz): Generate .tar.gz rather than
+ .tgz.
+ * rpm.make: Modified example to use .tar.gz source rather than
+ .tgz.
+ * gnustep-make.spec.in: Heavily simplified, rewritten.
+
+Wed Jan 17 10:29:22 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rpm.make ($(SPEC_FILE)): Add line to set %{gs_configure} to YES
+ or NO in the rpm spec file according to PACKAGE_NEEDS_CONFIGURE
+ variable.
+ * spec-rules.template: Run configure if %{gs_configure} is YES.
+ * spec-debug-rules.template: Idem.
+ * spec-debug-alone-rules.template: Idem.
+
+ * source-distribution.make (tgz): Added a dependency of `tgz' from
+ `distclean'.
+ * rpm.make (rpm): Build tgz - which involves a make distclean -
+ before specfile.
+
+ * spec-debug-rules.template (%install): Fixed generation of non
+ debugging file list; fixed and uncommented filtering of debugging
+ file list through the non debugging one.
+
+ * rpm.make ($(PACKAGE_NAME)-debug.spec.in): Do not any longer
+ generate it from the non debugging one.
+
+Tue Jan 16 19:52:58 2001 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * aggregate.make: Fixed to work with empty $(SUBPROJECTS) as well.
+
+Tue Jan 16 19:01:21 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ RPM support redesigned and rewritten from scratch.
+ * source-distribution.make: New file.
+ * rpm.make: Rewritten from scratch.
+ * spec-rules.template: New file.
+ * spec-debug-rules.template: New file.
+ * spec-debug-alone-rules.template: New file.
+ * template-spec.in: Removed.
+ * rules.make: Include source-distribution.make.
+ * common.make: Removed the new variables for installation.
+ * application.make, bundle.make, framework.make, target.make:
+ Reverted to old code.
+ * file-list.make: Removed.
+ * rules.make: Do not include file-list.make
+ * log_install_dir.sh.in: Removed.
+ * log_install_ln_s.sh: Removed.
+ * log_install.sh: Removed.
+ * install-complete-dir.sh.in: Removed.
+ * GNUmakefile.in: Updated for added/removed files.
+ * configure.in (AC_OUTPUT): Removed install-complete-dir.sh and
+ log_install_dir.sh.
+ * configure: Regenerated.
+
+Mon Jan 15 16:45:48 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * common.make (REMOVE_INSTALLED_DIR): New variable to be used to
+ remove an installed dir.
+ * application.make (internal-app-install): Use it.
+ * bundle.make (internal-bundle-install): Idem.
+ * framework.make (internal-framework-install): Idem.
+ * framework.make (internal-framework-install): Use
+ REMOVE_INSTALLED_LN_S.
+ * file-list.make (REMOVE_INSTALLED_DIR): Redefine to do nothing.
+
+ Made file list rpm specific - so it is now suitable to be included
+ directly with `%file -f' directives into rpm spec files.
+ * file-list.make: Add an `%attr (-, root, root)' at the beginning
+ of the file list.
+ * log_install_dir.sh.in: Rpm specific fix - output `%dir' before
+ the directory name.
+
+ * file-list.make (FILE_LIST): Output different file list
+ for debugging and non-debugging cases.
+
+2001-01-13 Adam Fedor <fedor@gnu.org>
+
+ * openapp.in (additional_library_paths): Set for FLATTENED structure
+ * debugapp.in: Add FLATTENED structure support.
+ (fix from Frederic <frederic.chauvin@noos.fr>).
+
+ * GNUmakefile.in: Add target to make dist file.
+
+Fri Jan 12 17:38:06 2001 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * configure.in (AC_OUTPUT): Added install-complete-dir.sh and
+ log_install_dir.sh.
+ * configure: Regenerated.
+ * log_install_sh: New file.
+ * log_install_ln_s.sh: New file.
+ * log_install_dir.sh.in: New file.
+ * install-complete-dir.sh.in: New file.
+ * GNUmakefile.in (MAKE_FILES): Added file-list.make.
+ * GNUmakefile.in (install): Install log_install.sh,
+ log_install_ln_s.sh, log_install_dir.sh, install-complete-dir.sh.
+ * rules.make: Include file-list.make.
+ * file-list.make: New file.
+ * target.make (AFTER_INSTALL_SHARED_LIB_COMMAND): Use
+ $(REMOVE_INSTALLED_LN_S) rather than rm -f, and $(INSTALL_LN_S)
+ rather than $(LN_S).
+ * common.make: Define INSTALL_LN_S to be the same as LN_S;
+ REMOVE_INSTALLED_LN_S to be rm -f; INSTALL_COMPLETE_DIR to point
+ to the install-complete-dir.sh script.
+ * application.make: Use INSTALL_COMPLETE_DIR when installing.
+ * bundle.make: Idem.
+ * framework.make: Idem.
+
+2001-01-10 Adam Fedor <fedor@gnu.org>
+
+ * Version: Prerelease version 0.9.0
+
+ * Documentation/GNUmakfile.in: New targets to make documentation.
+ * Documentation/make.texi: New file
+ * aclocal.m4: Set CPPFLAGS not CFLAGS
+
+2001-01-08 Adam Fedor <fedor@gnu.org>
+
+ * GNUmakefile.in (MAKE_FILES): Add rpm.make and template.spec.in
+ * rules.make: Include rpm.make
+ * rpm.make: New file
+ * template.spec.in: New file.
+
+ * config.make.in: Set CONFIG_SYSTEM_INCL to CPPFLAGS (since most
+ CPPFLAGS are really include directives).
+ * brain.make (SYSTEM_INCLUDES): Include CONFIG_SYSTEM_INCL.
+ This makes sure these includes can be overriden in GNUmakefiles
+
+ * config_thread.m: Include impl of NXConstantString for shared libobjc
+ that doesn't include it.
+
+ * configure.in: Check for alternate shared libobjc library also.
+ Compile config_thread.m as objective-c program.
+ Set enable-ffcall to be yes by default (unless libs aren't installed).
+ * Version: New file.
+
+2001-01-03 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Change test for objc forwarding hook to match gcc
+ patch.
+
+2001-01-02 Adam Fedor <fedor@gnu.org>
+
+ * bundle.make (BUNDLE_FILE): Use INTERNAL_bundle_NAME.
+ ($(BUNDLE_DIR_NAME)/Contents/Info.plist): Likewise.
+ ($(BUNDLE_DIR_NAME)/Resources/Info.plist): Likewise.
+ (Fixes building of multiple bundles in one directory).
+
+2000-01-02 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * target.make (SHARED_LIB_LINK_CMD, SHARED_FRAMEWORK_LINK_CMD): removed
+ TARGET_SYSTEM_LIBS.
+ * ld_lib_path.sh, ld_lib_path.csh: fixed path for framework libraries.
+
+2000-12-26 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Look for libxml2 (patch from Kim Shrier
+ <kim@tinker.com>).
+
+Mon Dec 25 01:20:25 2000 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * library.make (internal-library-all): Bug fix: removed duplicated
+ before-all and after-all. They are already in rules.make and so
+ they were executed twice.
+
+2000-12-18 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * bundle.make ($(BUNDLE_DIR_NAME)/Resources/Info.plist): Readded
+ rule which had been accidentally deleted.
+
+2000-12-18 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * bundle.make: Add a couple of missing backslashes as reported by
+ enrico@imago.ro
+
+2000-12-14 Adam Fedor <fedor@gnu.org>
+
+ * configure.in (CFLAGS): Strip -g (debug=yes adds that automatically).
+
+2000-12-13 Adam Fedor <fedor@gnu.org>
+
+ * configure: Fix mistaken setting of CPPFLAGS from CFLAGS.
+
+2000-12-12 Adam Fedor <fedor@gnu.org>
+
+ * bundle.make (build-macosx-bundle): Build suitable files for
+ MacOSX bundle (fixes from Helge Hess <helge.hess@skyrix.com>).
+ * GNUmakefile.in (install): Make Tools ...LDIR (For win32 machines).
+ * setlocaltz.sh: Correct location of NSTimeZones (fixes from
+ Tomas Hurka <tom@hukatronic.cz>.).
+
+2000-12-08 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Add check for --enable-ffcall
+ * Documentation/GNUmakefile.in: New file.
+ * Documentation/install.texi: New file.
+ * Documentation/readme.texi: New file.
+ * README, INSTALL: Regenerate.
+
+2000-12-06 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * openapp.in:
+ * opentool.in: Updated for flattened directory structure.
+ * application.make:
+ * gswapp.make:
+ * service.make:
+ * woapp.make:
+ * wobundle.make: Fix 'clean' for flattened structure.
+
+2000-12-04 Georg Fleischmann <georg@vhf.de>
+
+ * subproject.make: workaround for empty list in for loops added.
+
+2000-12-05 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * GNUmakefile.in:
+ * GNUstep.csh.in:
+ * GNUstep.sh.in:
+ * MediaBook.func:
+ * README:
+ * application.make:
+ * brain.make:
+ * bundle.make:
+ * common.make:
+ * configure:
+ * configure.in:
+ * ctool.make:
+ * framework.make:
+ * gswapp.make:
+ * gswbundle.make:
+ * ld_lib_path.csh:
+ * ld_lib_path.sh:
+ * library.make:
+ * palette.make:
+ * service.make:
+ * target.make:
+ * tool.make:
+ * woapp.make:
+ * wobundle.make:
+ Updated for flattened directory structure - use GNUSTEP_XXX_DIR and
+ GNUASTEP_XXX_LDIR for referring to directories with and without the
+ library combo. Localise changes as much as possible.
+
+Mon Nov 27 16:28:12 2000 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * documentation.make (internal-doc-clean): Ignore errors when
+ removing the HTML generated from latex - because the error could
+ be caused by a CVS subdir.
+ (internal-doc-distclean): for latex, don't remove HTML document
+ directory (might contain CVS subdir).
+ (internal-doc-install): For latex2html, install only html and css
+ files and not the full latex2html output.
+ (internal-doc-uninstall): For latex2html, uninstall only html and
+ css files.
+
+2000-11-18 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * configure.in: Check for GMP
+
+Thu Nov 16 14:56:35 2000 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * documentation.make (internal-doc-all): Fixed dependency of LaTeX
+ output on all LATEX_FILES. (internal-doc-clean): Remove generated
+ .aux files if LaTeX is involved. (internal-doc-distclean): Remove
+ any .aux files in the directory if LaTeX is involved.
+
+2000-11-15 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * configure.in: Check for OpenSSL
+
+Tue Nov 14 23:47:11 2000 Adam Fedor <fedor@yogi.doc.com>
+
+ * GNUstep.sh.in: Use grep instead of fgrep. Some OSs (Solaris)
+ can't deal with fgrep -v
+ * ld_library_path.sh: Likewise
+
+2000-11-06 Adam Fedor <fedor@gnu.org>
+
+ * documentation.make: Remove conversion of tmpl.texi files to
+ texi files (no longer necessary).
+
+Mon Nov 6 16:43:22 2000 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (install): Create the
+ System/Documentation/Developer and System/Documentation/User
+ directories.
+ * common.make (GNUSTEP_DOCUMENTATION): Changed to be
+ $(GNUSTEP_INSTALLATION_DIR)/Documentation rather than
+ $(GNUSTEP_INSTALLATION_DIR)/Libraries
+ * rules.make: Added DOC_INSTALL_DIR and LATEX_FILES.
+ * documentation.make: Major improvement. Implemented installation
+ and uninstallation of documentation, and support for LaTeX based
+ documentation projects.
+
+2000-11-04 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * configure.in: fixed gtar checking.
+
+2000-10-29 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * framework.make (FRAMEWORK_WEBSERVER_RESOURCE_DIRS),
+ (framework-components), (framework-webresource-dir):
+ (framework-webresource-files), (framework-localized-webresource-files):
+ new specific gsweb targets.
+ * subproject.make (framework-components), (framework-webresource-dir),
+ (framework-webresource-files), (framework-localized-webresource-files):
+ likewise.
+ * rules.make (SUBPROJECT_ROOT_DIR): new variable.
+ * gswapp.make ($(GSWAPP_FILE)): added ALL_FRAMEWORK_DIRS
+
+2000-10-28 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * configure.in: added --with-libxml-include, --with-libxml-library
+ and --with-libiconv-library.
+ Added -I/usr/local/include and -L/usr/local/lib for FreeBSD.
+
+ * framework.make: new file.
+ * common.make: added common frameworks defines (library, header paths).
+ * bundle.make: added ALL_FRAMEWORKS_DIRS
+ * rules.make: added frameworks headers flags. Prebuild framework
+ header dir. Set framework name/dir/version.
+ * subproject.make: build framework headers and resource files.
+ * target.make: added SHARED_FRAMEWORK_LINK_CMD
+ * tool.make: added ALL_FRAMEWORKS_DIRS
+ * ld_lib_path.csh: added paths for frameworks.
+ * ld_lib_path.sh (lib_paths): added paths for frameworks.
+ * GNUmakefile.in (MAKE_FILES): added framework.make
+
+Thu Oct 19 15:46:02 2000 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * opentool.in: Fix for passing arguments protected by quote.
+ * openapp.in: Idem.
+
+2000-10-17 Adam Fedor <fedor@gnu.org>
+
+ * target.make (OpenBSD): Add -fpic to SHARED_CFLAGS.
+
+Fri Oct 13 11:26:49 2000 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * service.make (internal-svc-distclean): Remove the service
+ directory when making a distclean.
+
+2000-10-02 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Work even if $av_cv_lib_iconv_main not defined.
+
+2000-09-29 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * configure.in: Check for libxml 2.2.3 or later
+
+Tue Sep 26 10:21:51 2000 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * application.make: Use opentool when running plmerge.
+ * service.make: Use opentool when running make_services.
+
+2000-09-25 Adam Fedor <fedor@gnu.org>
+
+ * common.make (JAVA_HOME): Revert previous change.
+
+2000-09-20 Adam Fedor <fedor@gnu.org>
+
+ * bundle.make (internal-bundle-install): Fix previous fix.
+ * target.make: Don't define BUILD_DLL if shared=no.
+
+2000-09-18 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Check for mingw also
+ * bundle.make (internal-bundle-install): Correct tar command.
+
+2000-09-14 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Check for iconv support.
+
+2000-09-13 Adam Fedor <fedor@gnu.org>
+
+ * config.make.in: Add CPPFLAGS
+
+2000-09-11 Adam Fedor <fedor@gnu.org>
+
+ * library.make (DLL_INSTALLATION_DIR): New default location for
+ installing DLLs.
+
+ * common.make (JAVA_HOME): Check if 'which' returns a path.
+
+2000-09-11 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * configure.in: Added test for libxml so we link with it if it is
+ available.
+
+2000-08-30 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * configure.in: Check for gtar.
+ * config.make.in: New definition for TAR.
+
+Thu Aug 17 09:28:22 2000 Adam Fedor <fedor@ultra.doc.com>
+
+ * configure.in: Use CC_FOR_BUILD when checking for mingw32.
+
+Wed Aug 16 18:24:13 2000 Adam Fedor <fedor@ultra.doc.com>
+
+ * mkinstalldirs: Test if mkdir accepts -p arg.
+
+2000-08-06 Adam Fedor <fedor@gnu.org>
+
+ * Version 0.6.6 released.
+
+2000-08-02 Adam Fedor <fedor@gnu.org>
+
+ * GNUstep.sh.in: Add GNUSTEP_NETWORK_ROOT back into prefix list.
+ * GNUstep.csh.in: Likewise. (patches from Jeff Teunissen
+ <deek@dusknet.dhs.org>).
+
+Sat Jul 29 22:49:23 2000 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * rules.make: Added again rule for APPLICATION_ICON which had
+ been lost.
+
+Fri Jul 28 14:45:21 2000 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * jni.make: New file to be included when compiling JNI projects.
+ * GNUmakefile.in (MAKE_FILES): Added jni.make.
+
+Fri Jul 28 12:17:02 2000 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * common.make: Set INTERNAL_JAVACFLAGS and INTERNAL_JAVAHFLAGS to
+ specify classpath adding ./ at the beginning.
+ * rules.make: Changed ALL_JAVAFLAGS to ALL_JAVACFLAGS.
+
+Thu Jul 27 18:03:34 2000 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * common.make (JAVA_HOME): Set JAVA_HOME if not set, guessing if
+ appropriate; set JAVAC and JAVAH from JAVA_HOME if needed.
+
+Tue Jul 25 15:01:43 2000 Nicola Pero <nicola@brainstorm.co.uk>
+
+ Added support to build jni headers from java classes.
+ * rules.make: Added rules to build jni headers from java classes
+ using JAVAH; added JAVA_JNI_OBJ_FILES, JAVA_JNI_OBJS; added
+ ALL_JAVAHFLAGS.
+ * java.make (internal-java_package-all): Build also JAVA_JNI_FILES
+ (internal-java_package-clean): Remove the jni headers too.
+
+2000-07-21 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * GNUmakefile.in: Use C version of which_lib exclusively.
+
+2000-07-18 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * ctool.make: Changed installation dir to be CTOOL_INSTALLATION_DIR
+ and fixed it to install above the objc library based directory.
+
+2000-07-16 Adam Fedor <fedor@gnu.org>
+
+ * palette.make (PALETTE_INSTALL_DIR): Default to GNUSTEP_PALETTES
+ if not set.
+
+ * GNUmakefile.in: Use C version of which_lib exclusively.
+
+2000-07-14 Adam Fedor <fedor@gnu.org>
+
+ * common.make (GNUSTEP_HEADERS_GUI_FLAG): Remove.
+
+2000-06-30 Adam Fedor <fedor@gnu.org>
+
+ * GNUstep.sh.in: Add .../${LIBRARY_COMBO} dir back into path (for
+ DLL search).
+ * configure.in: Always run search for libwraster.
+
+ * bundle.make: Filter '-' out of defines.
+ * ctool.make: Likewise.
+ * rules.make: Likewise.
+ * tool.make: Likewise.
+ * woapp.make: Likewise.
+ * wobundle.make: Likewise.
+
+2000-06-27 Adam Fedor <fedor@gnu.org>
+
+ * common.make (OPTFLAG): Remove -fno-strict-aliasing (Doesn't
+ work on old gcc2.8.0).
+ * target.make (solaris/TARGET_SYSTEM_LIBS): Re-add posix4 when threaded
+ (Solaris/BUNDLE_LDFLAGS): Go back to old flags - new ones don't
+ work with gcc 2.8.0.
+ * configure.in: Cache search for libwraster, fix searching for
+ other graphics libs.
+ * GNUstep.csh.in: Shorted GNUSTEP_PATHPREFIX_LIST since length of
+ variable breaks some csh's. Check if CALSSPATH exists before setting.
+
+2000-06-22 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Fix for exporting vars on old sh's.
+
+Thu Jun 22 18:58:41 2000 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * common.make (JAVAH): Set it to 'javah' if null.
+
+2000-06-21 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Check for alternate objc libraries
+
+ * library.make: Clean the library_name of '-' so it can be
+ used in a define.
+
+ * target.make: Target for cygwin
+
+Wed Jun 21 12:35:43 2000 Nicola Pero <nicola@brainstorm.co.uk>
+
+ Rewritten and simplified java support.
+ * GNUstep.sh.in: Only append to the CLASSPATH if not already there.
+ * GNUstep.csh.in: Simplified java classpath.
+ * brain.make (SYSTEM_INCLUDES): Removed JAVA_INCLUDES.
+ * common.make (JAVAC): Set it to 'javac' only if it is null,
+ so it can be overridden.
+ * common.make (GNUSTEP_JAVA): New variable.
+ * config.make.in: Removed old java code.
+ * configure.in: Idem.
+ * configure: Rebuilt.
+ * openapp.in: Removed old java code.
+ * rules.make: Completely remanaged java stuff.
+
+ * GNUmakefile.in (MAKE_FILES): Added java.make.
+ * java.make: New makefile for compiling not-GNUstep java
+ packages.
+
+Tue Jun 20 19:59:19 2000 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * objc.make (internal-objc_program-install): Depend on building
+ the program first.
+
+2000-06-19 Adam Fedor <fedor@gnu.org>
+
+ * bundle.make (bundle-resource-files): Remove dependancy on
+ RESOURCE_FILES, which may not exist
+
+ * configure.in: Add test for cygwin
+
+2000-06-12 Adam Fedor <fedor@gnu.org>
+
+ Patches from Helge Hess for Windows/DLL support
+ * GNUmakefile.in: Use perl which_lib script on machines that have it.
+ * GNUstep.csh.in: Remove GNUSTEP_NETWORK_ROOT from PATHPREFIX_LIST.
+ * GNUstep.sh.in: Likewise.
+
+ * common.make: Add some new default directories. Support for
+ runtime with GC.
+ * config.guess: Add check for mingw32.
+ * configure.in: Likewise. Check for perl.
+
+ * brain.make: Add flags for libFoundation with GC. Add WO library flags.
+ * bundle.make: Add support for DLLs on Windows.
+ * ctool.make: Likewise.
+ * library.make: Likewise.
+ * rules.make: Likewise. Handle subdirs better. WO Resources
+ * tool.make: Likewise.
+
+ * target.make: Handle mingw32.
+
+ * which_lib.c: Handle \r\n on Windows.
+ (pathes from Helge Hess <helge.hess@mdlink.de>, modified by
+ fedor@gnu.org).
+
+Wed May 3 18:07:54 2000 Nicola Pero <nicola@brainstorm.co.uk>
+
+ * library.make: Use 'override' flag to force substitution of
+ variable which otherwise was not taking place.
+
+2000-05-01 Mirko Viviani <mirko.viviani@rccr.cremona.it>
+
+ * clean_os.sh: removed os version number for FreeBSD-elf
+
+2000-04-21 Jonathan Gapen <jagapen@whitewater.chem.wisc.edu>
+
+ * application.make: Incorporate appnameInfo.plist into Info.plist
+ using plmerge tool.
+
+2000-04-20 Adam Fedor <fedor@gnu.org>
+
+ * configure.in (libwraster): Make sure we have version 2.0.
+
+2000-04-13 Adam Fedor <fedor@gnu.org>
+
+ * gswapp.make: Remove common.make include.
+ * gswbundle.make: Likewise.
+
+2000-04-06 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * target.make: If 'shared=no' is specified, link with '-static' to
+ force static link.
+ Add library fixes for HPUX
+ * ld_lib_path.sh: Added setup for HPUX
+ * ld_lib_path.ssh: ditto
+
+2000-03-27 Adam Fedor <fedor@gnu.org>
+
+ * documentation.make: Correct cp typo.
+
+2000-03-20 Adam Fedor <fedor@gnu.org>
+
+ * gswapp.make: include common.make for TAR
+ * gswbundle.make: Likewise.
+
+ * GNUstep.sh.in: Replace pushd/popd with cd equivalent since not
+ all OS's have it.
+
+ * bundle.make: Include localization support (from gswbundle.make)
+ (Patch from Jonathan Gapen <jagapen@whitewater.chem.wisc.edu>)
+
+ * documentation.make: Take out sed of @email and @url since
+ texinfo has them now.
+
+ * configure.in (GRAPHIC_LIBS): Check for libXmu if libwraster
+ not found. Add X libs if libwraster not found.
+
+2000-03-19 Richard Frith-Macdonald <rfm@gnu.org>
+
+ * rules.make: added rule for GSDOC
+ * documentation.make: added gsdoc make rules.
+
+2000-03-11 Adam Fedor <fedor@gnu.org>
+
+ * brain.make: Use new GRAPHIC_ variables. Remove old TIFF, JPEG
+ and X varialbles.
+ * config.make.in: Likewise.
+ * configure.in: Check for wraster library. Avoid checking for
+ tiff, jpeg, etc, if found.
+
+2000-03-06 Adam Fedor <fedor@gnu.org>
+
+ * config.guess: Better guess of NetBSD systems.
+ * target.make: Support for shared libs on NetBSD. (patch from
+ Peter Cooper <comrade@obverse.com.au>).
+
+ * makeinstalldirs: Add '-p' option to mkdir, which prevents
+ race condition when running make with the '-j' option. Some
+ makes may not have this option, so we'll see if this works.
+
+Fri Feb 25 13:32:00 2000 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * rules.make: replace rule for PALETTE_ICON that somehow got lost.
+
+Thu Feb 24 21:12:00 2000 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * bundle.make: fixes to permit use of BUNDLE_INSTALL_DIR variable.
+ patch by jagapen@whitewater.chem.wisc.edu
+
+2000-02-23 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Make separate sytem root the default. Disable by
+ using --without-system-root when configuring.
+
+ * rules.make: Change compilation rule so filename is at beginning
+ of line (patch from David Relson <relson@expressgate.net>).
+
+2000-02-20 Matthias Klose <doko@cs.tu-berlin.de>
+
+ * names.make: GNUSTEP_HOST: Use value of GNUSTEP_HOST_GUESS.
+ * GNUstep.csh.in: Use GNUSTEP_MAKEFILES.
+
+2000-02-18 Adam Fedor <fedor@gnu.org>
+
+ * GNustep.sh.in: Use pushd/popd to changes dirs.
+
+2000-01-26 Adam Fedor <fedor@gnu.org>
+
+ * rules.make: Revert previous change of parens around tmp.
+
+2000-02-18 Adam Fedor <fedor@gnu.org>
+
+ * Version: 0.6.5 Released.
+
+2000-02-16 Adam Fedor <fedor@gnu.org>
+
+ * GNUmakefile.in: Standardize prefix/GNUSTEP_INSTALLATION_DIR
+ settings.
+ * gnustep-make.spec: Newfile
+
+ * common.make: Add default installation dirs.
+ * bundle.make: Use default installation dir.
+ * ctool.make: Likewise.
+ * objc.make: Likewise.
+ * palette.make: Likewise.
+ * tool.make: Likewise.
+
+ * GNUstep.csh.in: Use pushd/popd to changes dirs.
+
+2000-02-08 Adam Fedor <fedor@gnu.org>
+
+ * config.guess: New version
+ * config.sub: Likewise.
+
+2000-01-24 Adam Fedor <fedor@gnu.org>
+
+ * names.make (GNUSTEP_HOST_GUESS): New variable. Evaluate config.guess
+ and config.sub separately.
+
+2000-01-22 Manuel Guesdon <mguesdon@sbuilders.com>
+
+ * gswapp.make, gswbundle.make: tar options changed
+
+2000-01-22 Manuel Guesdon <mguesdon@sbuilders.com>
+
+ * GNUmakefile: add gswapp.make and gswbundle.make
+
+2000-01-22 Manuel Guesdon <mguesdon@sbuilders.com>
+
+ * rules.make and bundle.make: changes for GNUstepWeb
+ * gswapp.make and gswbundle.make: added
+
+2000-01-14 Adam Fedor <fedor@gnu.org>
+
+ * GNUstep.csh.in (GNUSTEP_LOCAL_ROOT): Use correct quotes.
+
+Sun Jan 9 00:16:15 2000 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * GNUmakefile.in (install): Create directory
+ $(prefix)/Library/Colors to store color lists.
+
+Fri Jan 7 6:05:00 2000 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * application.make: use xxx_PRINCIPAL_CLASS to override the value
+ of NSExecutable in Info.plist so we can have callses other than
+ NSApplication as the app class.
+ * palette.make: use PRINCIPAL_CLASS rather than PALETTE_CLASS
+ * rules.make: remove PALETTE_CLASS
+
+1999-12-09 Adam Fedor <fedor@gnu.org>
+
+ * rules.make: Remove paren's from around tmp to stop spurious
+ evaluation (suggested by Jonathan Gapen
+ <jagapen@whitewater.chem.wisc.edu>).
+
+Tue Dec 7 5:24:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * rules.make: Escape some dollar signs - patch by Jonathon Gapen
+ for an earlier fix somehow reverted.
+
+1999-12-02 Adam Fedor <fedor@gnu.org>
+
+ * GNUstep.csh.in: Run GNUSTEP_HOST through config.sub to get correct
+ CPU, etc.
+ * GNUstep.sh.in: Likewise.
+ * debugapp.in: Likewise.
+ * executable.template.in: Likewise.
+ * names.make: Likewise.
+ * openapp.in: Likewise.
+ * opentool.in: Likewise.
+
+Fri Nov 12 11:52:14 1999 Lyndon Tremblay <ltremblay@mezzanine.xnot.com>
+
+ * rules.make: Moved some Java rules into gstep-java.
+
+Fri Nov 12 7:43:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * GNUstep.sh.in: Fix error in exporting CLASSPATH
+
+Fri Nov 12 6:36:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * which_lib.c: Fix for bug reported by Pascal Bourguignon.
+ If 'shared=no' and 'debug=yes', but no debug library exists, then
+ find a static library.
+
+Thu Nov 11 12:22:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * GNUstep.csh.in: Fix for typo reported by Pascal Bourguignon.
+
+1999-11-11 David Lazaro Saz <khelekir@encomix.es>
+
+ * configure.in (objc_thread_lib): Added support for FreeBSD native
+ POSIX threads (from libc_r). Made this the first option to test as
+ this is the best working one.
+ * configure: New build to support the above mentioned.
+
+Wed Nov 10 12:05:16 1999 Lyndon Tremblay <ltremblay@mezzanine.xnot.com>
+
+ * library.make: Added some uninstalling commands, specifically,
+ when the 'LIBRARY_NAME.so' file links to 'LIBRARY_NAME_d.so',
+ remove that stale link. (using if [ ! -e <link ], maybe that's wrong,
+ but it works)
+ * rootinstall.sh: changed rooot to root.
+ * tool.make: Also added install commands here, to remove the
+ 'GNUSTEP_INSTALLATION_DIR/Tools/<toolname>' script as well as the
+ real tool binary.
+
+Mon Nov 08 11:41:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * names.make: Fix to run config scripts in /tmp in order to avoid
+ directory permission problems in current directory.
+
+Sun Nov 07 14:00:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * common.make: define GSWARN unless 'warn=no' is on command line.
+
+Fri Nov 05 11:23:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * application.make: Added comment about including info.plist stuff.
+ * bundle.make: Added support for inclusion of info.plist stuff.
+
+1999-10-03 Lyndon Tremblay <ltremblay@mezzanine.xnot.com>
+
+ * GNUstep.sh.in: Added CLASSPATH settings.
+ * GNUstep.csh.in: Likewise, untested.
+
+1999-10-02 Lyndon Tremblay <ltremblay@mezzanine.xnot.com>
+
+ * target.make: Links LIBNAME.so to LIBNAME_d.so, so you can build
+ applications without debug, but using the GNUstep debug libraries.
+ Needs to be added for other systems, I don't want to risk it, I don't
+ have any besides Linux ELF.
+ * rules.make: Added Java classpath, and working Java dependency per
+ Java package name; (org.gnu.gnustep.HiClass ->
+ GNUSTEP_SYSTEM_ROOT/Java/org/gnu/gnustep/HiClass.class, etc)
+
+1999-10-01 Lyndon Tremblay <ltremblay@mezzanine.xnot.com>
+
+ * openapp.in: Added working Java application support
+ * rules.make: Likewise, and general Java changes.
+
+1999-10-01 Lyndon Tremblay <ltremblay@mezzanine.xnot.com>
+
+ * java-wrapper.make: Removed.
+ * java-application.make: Removed.
+ * java-executable.template: Removed.
+
+ These will be added in gstep-java.
+
+1999-10-30 Lyndon Tremblay <ltremblay@mezzanine.xnot.com>
+
+ * brain.make: Added Java support.
+ * common.make: Likewise
+ * config.make.in: Added JAVA_INCLUDE/JAVAC vars.
+ * configure: New build for Java support.
+ * configure.in: Added JAVA_INCLUDE/JAVAC vars.
+ * java-application.make: Added, but not worked on yet.
+ * java-executable.template: Added basics, not complete.
+ * java-wrapper.make: Working as close to Apple's bridget tool as I know.
+ * rules.make: Added Java support.
+
+ NOTE: building a java wrapper right now is basically useless now, until
+ I commit the bridging library and tools, which are in the works.
+
+
+1999-10-23 Adam Fedor <fedor@gnu.org>
+
+ * debugapp: Allow debugger to be set from environment (patch from
+ <davidl@wpi.edu>).
+
+ * depend.make: New file - first try at dependency processing from
+ Kai Henningsen <kai@cats.ms>.
+
+1999-10-17 Adam Fedor <fedor@gnu.org>
+
+ * target.make (OSF): Set SHARED_LIBRARIES to yes.
+
+ * configure.in (GNUSTEP_PREFIX): Was set in wrong place for
+ separate system root.
+
+1999-10-14 Adam Fedor <fedor@gnu.org>
+
+ * target.make (AUXILIARY_CPPFLAGS): Change from ADDITIONAL... so
+ it doesn't get reset by other Makefiles
+
+1999-10-11 Lyndon Tremblay <humasect@coolmail.com>
+
+ * debugapp: Added support for core files, if found
+
+1999-10-11 Adam Fedor <fedor@gnu.org>
+
+ * Allow for separate System root directory and other changes
+ suggested by Dennis Leeuw <adl@casema.net>.
+ * configure.in: Add test for separate system root directory.
+ * GNUmakefile.in (GNUSTEP_PREFIX): Absolute GNUstep root. Move
+ man and info dirs to separate Documentation dir.
+ * GNUstep.csh.in: (GNUSTEP_ROOT): Absolute root. Define Local dir
+ interms of this. Add Network dir.
+ * GNUstep.sh.in: Likewise.
+ * common.make: Move documentation dirs. Add Network dir info.
+ Look for gui Headers in gnustep/AppKit.
+ * rules.make: Add Network dir info.
+
+Tue Sep 28 19:05:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * brain.make: Define GS_WITH_GC and link with gc version of objc
+ runtime if 'gc=yes' on command line.
+
+Fri Sep 24 19:30:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * GNUstep.csh.in: Fix so that paths are set up correctly again.
+ * GNUstep.sh.in: Fix so that paths are set up correctly again and
+ add checks to try to avoid duplicating information in paths.
+ * ld_lib_path.sh: Add checks to try to avoid duplication in path.
+
+Mon Sep 20 9:40:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ Patch from cls@seawood.org -
+ * GNUstep.sh.in: avoid multiple GNUstep entries in path
+ * GNUstep.csh.in: avoid multiple GNUstep entries in path
+
+Sun Sep 19 1999 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * bundle.make (internal-bundle-distclean): Added
+ $(BUNDLE_DIR_NAME) so that the bundle is removed on distclean.
+
+Fri Sep 17 1999 Nicola Pero <n.pero@mi.flashnet.it>
+
+ * rules.make (distclean): added test, so that distclean invokes
+ clean only in the top dir. This avoids having 'make clean'
+ executed uselessly a lot of times in subdirs.
+
+1999-09-14 Adam Fedor <fedor@gnu.org>
+
+ * common.make, config.make.in: Remove -o from LDFLAGS.
+ * application.make, bundle.make, ctool.make, objc.make,
+ service.make, target.make, test-library.make, tool.make: Add -o
+ in LD command.
+
+1999-09-11 Adam Fedor <fedor@gnu.org>
+
+ * target.make: Remove two erronous newlines in the MacOSX section.
+
+1999-09-07 Adam Fedor <fedor@gnu.org>
+
+ * Version: 0.6.0
+
+ * GNUstep.csh.in: Don't set GNUSTEP_HOST if already set.
+ * GNUstep.sh.in: Likewise.
+
+ * configure.in: Add test for solaris libraries
+
+ * target.make: Use -lposix for Solaris (regardless of threaded).
+
+1999-09-07 David Lazaro Saz <khelekir@encomix.es>
+
+ * configure.in: Added threading support for FreeBSD.
+ * target.make: Likewise.
+
+1999-08-15 Adam Fedor <fedor@gnu.org>
+
+ * subproject.make (internal-subproj-all): Make sure files from
+ subprojects of subprojects get linked. (Patch from Pedro Ivo
+ Andrade Tavares <ptavares@iname.com>).
+
+ * target.make: Add partial OSF support.
+
+1999-08-09 Adam Fedor <fedor@gnu.org>
+
+ * GNUstep.csh.in: Fix the setting of GNUSTEP_MAKEFILES (patch
+ from Christopher Seawood <cls@seawood.org>).
+
+ * target.make: Change freebsd3 to freebsd to find all versions,
+ except put freebsd2 first so it is still unique.
+
+1999-08-09 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ Fixes so that things don't bomb out if you don't have write access
+ to your current directory.
+ * GNUstep.csh.in: Run config.guess in /tmp
+ * GNUstep.sh.in: ditto
+ * executable.template.in: ditto
+ * openapp.in: ditto
+ * opentool: ditto
+ * opentool.in: ditto
+
+1999-08-03 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * application.make: Make installation directory if necessary.
+
+1999-08-01 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ Fix suggested by beppu@rigel.oac.uci.edu
+ * GNUstep.sh.in: Put GNUSTEP_MAKEFILES in the environment.
+ * GNUstep.csh.in: Likewise
+
+1999-07-29 Adam Fedor <fedor@gnu.org>
+
+ * config.guess: Updated from latest version + fix for Netwinder.
+ * config.sub: Likewise.
+
+ * subproject.make: Add install targets for headers (Patch from
+ Pedro Ivo Andrade Tavares <ptavares@iname.com>).
+
+ * target.make: Add MacOSX target (from Helge Hess <hh@mdlink.de>).
+
+1999-07-26 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * GNUstep.sh.in: Safe and restor value of IFS as suggested by
+ prashant singh
+
+1999-07-15 Adam Fedor <fedor@gnu.org>
+
+ * application.make: Force Info-gnustep.plist to be remade everytime
+
+ * GNUstep.sh.in: Add $GNUSTEP_SYSTEM_ROOT/Libraries/man to MANPATH
+ * GNUstep.csh.in: Likewise.
+
+1999-07-14 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * target.make: Patch for threads on Solaris by bgg@itga.com.au
+
+1999-07-05 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Fix prefix check.
+
+1999-06-28 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * GNUstep.csh.in: Include Tools/host-cpu/host-os in path for any
+ utilities that are installed without a startup script.
+ * GNUstep.sh.in: ditto.
+
+1999-06-24 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * common.make: include -Wall when building for debug
+
+1999-06-16 Adam Fedor <fedor@gnu.org>
+
+ * executable.template.in: Add double quotes around $@ to quote
+ arguments properly (Suggested by Roman Puttkammer
+ <puttkamm.ny@fp.cibc.com>).
+
+Fri Jun 11 17:23:59 1999 Adam Fedor <fedor@ultra.doc.com>
+
+ * executable.template.in: Fixes to work on Solaris
+
+1999-06-03 Adam Fedor <fedor@gnu.org>
+
+ * ctool.make: New file for making C tools.
+ * GNUmakefile.in: Install it.
+ * whichlib.pl.in: Bug fixes.
+ * GNUstep.csh.in: Fix up PATHPREFIX expansion
+ (patches and files from from Helge Hess <hh@mdlink.de>)
+
+ * GNustep.sh.in: Insert GNUstep path before PATH.
+
+1999-06-01 Adam Fedor <fedor@gnu.org>
+
+ * executable.template.in: New file to be used as shell script
+ application/tool starter.
+ * configure.in: Configure it.
+ * GNUmakefile.in: Install it.
+ * GNUstep.sh.in: Use simpler path and add GNUSTEP_PATHPREFIX_LIST
+ * GNUstep.csh.in: Likewise.
+ * openapp.in: Use GNUSTEP_PATHPREFIX_LIST and simpler path search
+ * debugapp.in: Likewise.
+ * application.make: Copy it to main app directory (using app name).
+ * tool.make: Install it to main Tool directory when installing.
+
+Fri May 28 6:10:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * application.make: Incorporate appnameInfo.plist into the Info.plist
+ if it exists.
+
+Wed May 19 10:20:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * rules.make: Add APPLICATION_ICON
+ * application.make: Use APPLICATION_ICON to add icon name to plist
+
+1999-04-27 Adam Fedor <fedor@gnu.org>
+
+ * congif.site (includedir): Put include files in Headers, not in
+ OS/CPU specific dir.
+
+1999-04-22 Adam Fedor <fedor@gnu.org>
+
+ * GNUstep.csh.in: Don't define LIBRARY_COMBO if already set.
+ * GNUstep.sh.in: Likewise.
+
+ * configure.in: Check to see if -lz is needed by -ltiff.
+
+ * target.make (SHARED_CFLAGS): Use +z on HP when CC=cc
+
+Wed Apr 7 21:35:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * brain.make: Add extension X lib for xgps.
+
+1999-04-01 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Handle cross-platform compilation better by
+ finding programs with proper prefix for target.
+ Look for extra X libs needed by dps.
+ * config.make.in (X_PRE_LIBS): Define extra X libs
+ * brain.make: Use them.
+
+Wed Mar 31 01:24:50 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
+
+ * application.make (ALL_GUI_LIBS): Put BACKEND_LIBS after
+ GUI_LIBS. This causes a problem when building a static library.
+ The patch is provided by Takaaki MORIYAMA
+ <taka@airlab.cs.ritsumei.ac.jp>.
+
+1999-03-17 Adam Fedor <fedor@gnu.org>
+
+ * Fix include/includes problem. Use autoconf 2.13
+
+1999-03-14 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Add check for cygwin32
+
+1999-03-12 Adam Fedor <fedor@gnu.org>
+
+ * target.make: Turn off shared libs for FreeBSD 2.x
+
+Wed Mar 10 15:23:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * configure.in: Fix configure to set up installation directory
+ correctly when the user doesn't specify the system root directory.
+
+1999-03-08 Adam Fedor <fedor@gnu.org>
+
+ * Merge dawn branch into main.
+
+Tue Mar 2 08:57:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * make/target.make: Include GNUSTEP_SYSTEM_LIBRARIES in link list
+ to fix shared-lib linking error on linux elf.
+
+Tue Mar 2 08:04:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * Merge in 'dawn' CVS branch.
+
+1999-02-22 Scott Christley <scottc@golden.net-community.com>
+
+ * opentool: New file.
+
+1999-02-19 Scott Christley <scottc@golden.net-community.com>
+
+ * MediaBook.sh (MB_GNUSTEP_SOURCE, MB_FINANCE_SOURCE): New variables.
+ (MB.init): Renamed to MBinit.sh and put under GNUSTEP_USER_ROOT.
+ * setlocaltz.sh: New file.
+ * MediaBook.func: Add help for new commands.
+
+1999-03-08 Adam Fedor <fedor@gnu.org>
+
+ * Version 0.5.5 Released.
+
+1999-03-05 Adam Fedor <fedor@gnu.org>
+
+ * brain.make: Switch order of TIFF_INCLUDE and X_INCLUDE.
+
+1999-03-04 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Check if tiff libary nees jpeg. Rearrange tiff and
+ jpeg checks so they exit if not found and compiling core libraries.
+ * config.make.in (JPEG): New variable to hold "-ljpeg" if needed.
+ * brain.make: Use it. Switch order of TIFF_LIB and X_LIBS (For solaris).
+
+Wed Mar 3 06:56:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * configure.in: Fix to detect jpeglib.h on redhat
+
+Tue Mar 2 17:05:57 1999 Adam Fedor <fedor@ultra.doc.com>
+
+ * configure.in: Make AC_ERROR into AC_WARN (since make could be
+ used with non-gui libs).
+
+1999-03-01 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: New search for DPS libraries.
+
+1999-02-27 Matthias Klose <doko@cs.tu-berlin.de>
+
+ * make/target.make: Link shared libs against other libs (Linux
+ only, should be possible for all ELF targets).
+
+1999-02-28 Adam Fedor <fedor@gnu.org>
+
+ * GNUmakefile.in: Use CFLAGS from configure rather than setting
+ our own.
+ * config.make.in (OPTFLAG): Use CFLAGS from configure.
+ * common.make (OPTFLAG): Remove -O if debugging
+
+ * debugapp.in: Remove basename so debugapp can be used to run
+ programs in other directories.
+ (patches submitted by Christopher Seawood <cls@seawood.org>).
+
+Thu Feb 25 20:25:04 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
+
+ * service.make ($(SERVICE_DIR_NAME)/Resources/Info-gnustep.plist:):
+ Added contents of SYSTEM_LIB_DIR to LD_LIBRARY_PATH.
+
+ * configure.in (AC_ARG_WITH(jpeg_library)): Fix a typo. (DIS->DIR).
+
+1999-02-25 Adam Fedor <fedor@gnu.org>
+
+ * target.make (IRIX/SHARED_LIB_LINK_CMD): Fix typo.
+
+Thu Feb 25 03:01:48 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
+
+ * configure.in: Added macros to check existence of jpeg and tiff.
+ Stolen from gimp-1.0.0/configure.in.
+
+ * config.make.in (TIFF_INCLUDE): New variable definitions.
+ (TIFF_LIB): Likewise.
+ (JPEG_INCLUDE): Likewise.
+ (JPEG_LIB): Likewise.
+
+ * brain.make (SYSTEM_INCLUDES): Added $(TIFF_INCLUDE) $(JPEG_INCLUDE)
+ (SYSTEM_LIB_DIR): Added $(TIFF_LIB) $(JPEG_LIB).
+
+1999-02-24 Matthias Klose <doko@cs.tu-berlin.de>
+
+ * Makefiles/rules.make (%.build): evaluate LIBRARIES_DEPEND_UPON
+ in this target, not when the file is read, else library names in
+ foo_LIBRARIES_DEPEND_UPON macros are not transformed.
+
+1999-02-22 Adam Fedor <fedor@gnu.org>
+
+ * configure.in: Substitute version info.
+ * config.make.in: Include version info.
+ * brain.make: Define GNUSTEP if using GNUstep libraries.
+ * common.make (AUXILARY_CPPFLAGS): Include GNUSTEP and Version defines.
+
+Sun Feb 21 15:01:48 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
+
+ * target.make (Solaris::AFTER_INSTALL_SHARED_LIB_COMMAND):
+ Removed two duplicated lines.
+
+Sun Feb 21 13:49:55 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
+
+ * rules.make (%.build): Check the length of string, $($*_SUBPROJECTS).
+
+1999-02-19 Adam Fedor <fedor@gnu.org>
+
+ * subproject.make: New file.
+ * common.make (SUBPROJECT_PRODUCT): New variable so all
+ makefiles agree on the name of the object a subproject produces.
+ * rules.make: Added recursive invokation of subproject makefiles
+ in the %.build target.
+ * application.make, library.make, ... (SUBPROJECT_OBJ_FILES): New
+ dependency.
+ * target.make (OBJ_MERGE_CMD): For merging subproject
+ files. (patches from Jonathan Gapen
+ <jagapen@whitewater.chem.wisc.edu>).
+
+Wed Feb 17 17:15:47 1999 Adam Fedor <fedor@ultra.doc.com>
+
+ * bundle.make (PRINCIPAL_CLASS): Override if not set (Report from
+ Julian van Greunen <vangrn@lantic.co.za>).
+
+1999-02-17 Scott Christley <scottc@net-community.com>
+
+ * opentool.in: New file.
+ * rootinstall.sh: New file.
+ * rootuninstall.sh: New file.
+ * openapp.in: Add help text.
+ * debugapp.in: Add help text.
+ * configure.in: Add opentool.in.
+ * configure: Regenerate.
+ * GNUmakefile.in: Install/uninstall new files.
+
+Tun Feb 16 16:26:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * services.make: Tidied with removal of some unneccessary dependencies.
+
+1999-02-14 Scott Christley <scottc@net-community.com>
+
+ * ld_lib_path.sh (DYLD_LIBRARY_PATH, LD_LIBRARY_PATH): Add the tool
+ library path.
+ * ld_lib_patch.csh (DYLD_LIBRARY_PATH, LD_LIBRARY_PATH): Likewise.
+
+Mon Feb 15 1999 Michael Hanni <mhanni@sprintmail.com>
+
+ * Added IRIX to target.make as requested.
+
+Mon Feb 15 8:48:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * aggregate.make: Strip space from name variable before use.
+ * application.make: ditto
+ * bundle.make: ditto
+ * documentation.make: ditto
+ * library.make: ditto
+ * objc.make: ditto
+ * service.make: ditto
+ * test-application.make: ditto
+ * test-library.make: ditto
+ * test-tool.make: ditto
+ * tool.make: ditto
+
+Mon Feb 8 08:24:39 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
+
+ * ld_lib_path.csh: Rename additional_library_paths to
+ additional_lib_paths. It was too long for solaris2.
+
+1999-02-01 Adam Fedor <fedor@gnu.org>
+
+ * target.make: Add openbsd target (Patch from Michael Hanni
+ <michael@zaft.state.gov>).
+ Add Irix support.
+ (SHARED_LIB_LINK_CMD): Add /usr/lib/c++rt0.o to *BSD commands.
+
+Thu Jan 28 10:20:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * target.make: use '-lm' for freebsd and osf
+
+Thu Jan 7 16:16:36 1999 Adam Fedor <fedor@ultra.doc.com>
+
+ * brain.make: Add support for xgps library.
+
+Thu Jan 7 18:00:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * GNUstep.sh.in: Run make_services to rebuild caches.
+ * GNUstep.csh.in: ditto
+
+Sat Jan 2 12:26:20 1999 Adam Fedor <fedor@ultra.doc.com>
+
+ * configure.in: Check for DPS/dpsNXargs.h header.
+
+Wed Dec 30 15:08:14 1998 Adam Fedor <fedor@doc.com>
+
+ * target.make (TARGET_SYSTEM_LIBS): Add FreeBSD specific libs. Use
+ $(objc_threaded) when adding thread lib to Solaris.
+
+Mon Dec 21 11:04:45 1998 Matthias Klose <doko@cs.tu-berlin.de>
+
+ * common.make: New macros MAJOR_VERSION (0), MINOR_VERSION (5),
+ SUBMINOR_VERSION (0) forming VERSION.
+ * library.make: internal-uninstall-lib: rm SONAME_LIBRARY_FILE.
+ Rename VERSION_MAJOR_LIBRARY_FILE to SONAME_LIBRARY_FILE.
+ New macro SOVERSION.
+ * target.make: define -D_REENTRANT for linux-gnu objc_threaded.
+ For Solaris define AFTER_INSTALL_SHARED_LIB_COMMAND and set
+ shared object name for library.
+
+Mon Dec 21 11:04:45 1998 Matthias Klose <doko@cs.tu-berlin.de>
+
+ * aggregate.make: Exit with original exit status from submakes.
+
+Sat Dec 19 01:26:06 1998 Matthias Klose <doko@cs.tu-berlin.de>
+
+ * config.make.in: New macro MKDIRS defaults to
+ $(GNUSTEP_MAKEFILES)/mkinstalldirs.
+ * application.make: Use macro MKDIRS.
+ * bundle.make: likewise
+ * library.make: likewise
+ * documentation.make: likewise
+ * objc.make: likewise
+ * rules.make: likewise
+ * service.make: likewise
+ * tool.make: likewise
+ * test-library.make: likewise
+
+Sat Dec 19 10:57:22 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * aggregate.make: Look for Makefile.
+
+Thu Dec 17 11:42:06 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * test-library.make (ALL_TEST_LIBRARY_LIBS): Remove duplicate lib.
+
+Wed Dec 16 13:46:09 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * target.make (AFTER_INSTALL_SHARED_LIB_COMMAND): New macro for
+ Linux (patch from Matthias Klose <doko@cs.tu-berlin.de>).
+
+Tue Dec 15 12:36:52 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * GNUmakefile.in: Add $(EXEEXT) to which_lib
+ * objc.make (INTERNAL_objcprogram_NAME): Add $(EXEXT) to executable.
+ * tool.make (INTERNAL_tool_NAME): Likewise.
+
+ * target.make (BUNDLE_LD): Change to $(CC).
+ (SHARED_LIB_LINK_CMD): Set shared name using major version num.
+ * library.make (VERSION_MAJOR_LIBRARY_FILE): name using major
+ version number.
+
+ * configure.in (ac_cv_objc_threaded): Put the result of
+ objc_threaded conftest in config.cache file (patch from Matthias
+ Klose <doko@cs.tu-berlin.de>).
+
+Mon Dec 7 09:58:01 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * target.make: Add FreeBSD target for shared libs.
+ * config.make.in (EXEEXT): Set from program_suffix.
+ * openapp.in (EXEEXT): Likewise.
+ * debugapp.in (EXEEXT): Likewise.
+ * application.make (APP_FILE): Add $(EXEEXT).
+
+ * aggregate.make (internal-all): Break if subproject make fails.
+
+Mon Dec 7 16:10:00 1998 Richard Frith-Macdonald <richard@brainstrom.co.uk>
+
+ * service.make: Applied patch supplied by <doko@cs.tu-berlin.de> to
+ find make_services if it hasn't been installed.
+
+Mon Dec 7 6:45:00 1998 Richard Frith-Macdonald <richard@brainstrom.co.uk>
+
+ * openapp.in: Removed dependency on xargs - don't see how it could
+ have caused the recent problems reported of openapp silently failing
+ but it's a possibility.
+
+Wed Nov 25 16:25:09 1998 Adam Fedor <fedor@doc.com>
+
+ * configure.in (ac_cv_library_combo): Take old value if not set.
+
+Mon Nov 23 14:00:00 1998 Richard Frith-Macdonald <richard@brainstrom.co.uk>
+
+ * GNUmakefile.in: mod for services
+ * services.make: new build target for services bundle.
+ * application.make: Improved generation of Info-gnustep.plist
+ * bundle.make: Improved generation of Info-gnustep.plist
+
+1998-11-19 14:20 Lyndon Tremblay <tremblay2@home.com>
+
+ * GNUmakefile.in: Added model (un)installation (SavePanel.gmodel),
+ model files install in GNUSTEP_ROOT/Library/Model/
+ * SavePanel.gmodel: More GUI elements, nearing completion
+
+Wed Nov 18 17:20:02 1998 Adam Fedor <fedor@hyper.doc.com>
+
+ * brain.make (SYSTEM_LIBS): Remove dps libs from xraw compilation.
+
+Mon Nov 16 15:09:47 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * application.make: Change RESOURCE_FILES="none" to ""
+ * bunlder.make: Likewise.
+ * target.make: Second try on NetBSD.
+
+Thu Nov 12 1998 Felipe A. Rodriguez <far@ix.netcom.com>
+
+ * test-application.make add support for building individual subprojects
+ using the typical command line of "make mySubproject".
+ * application.make revert resource copying to original 0.5.0 in order to
+ fix resource copy bug in xraw/Workspace example.
+
+Wed Nov 11 23:30:00 1998 Richard Frith-Macdonald <richard@brainstrom.co.uk>
+
+ * configure.in: Added checks for thread library on linux
+ * configure: generated from configure.in
+ * config.make.in: Set thread library value
+ * target.make: understand thread library option
+
+Mon Nov 9 23:13:28 1998 Ovidiu Predescu <ovidiu@slip.net>
+
+ * debugapp.in: Added support for fd-xraw.
+ * openapp.in: Likewise.
+ * test-library.make: Use :: for the $(TEST_LIBRARY_NAME) target.
+ * test-tool.make: Likewise for the $(TEST_TOOL_NAME) target.
+
+Fri Jun 5 02:40:11 1998 Ovidiu Predescu <ovidiu@aracnet.com>
+
+ * GNUstep.csh.in: Use braces around variables.
+ * target.make: Added support for AIX 4.1.
+
+Tue May 26 16:01:37 1998 Ovidiu Predescu <ovidiu@aracnet.com>
+
+ * bundle.make (internal-bundle-install): Don't remove the
+ installed bundle if it exists to avoid removing other binaries
+ already installed.
+ * test-tool.make (internal-testtool-uninstall): New target.
+
+Mon Nov 9 16:34:20 1998 Adam Fedor <fedor@doc.com>
+
+ * configure.in: Don't assume . in path (Fix from Christopher
+ Seawood <cls@seawood.org>).
+
+Fri Nov 6 13:15:00 1998 Richard Frith-Macdonald <richard@brainstrom.co.uk>
+
+ * target.make: If objc library built with threads, assume we need to
+ link with -lpthread on linux.
+
+Tue Nov 3 10:30:12 1998 Adam Fedor <fedor@doc.com>
+
+ * target.make (netbsd): New (attempt at) shared lib target.
+
+Wed Oct 21 21:00:00 1998 Richard Frith-Macdonald <richard@brainstrom.co.uk>
+
+ * target.make: Add -rdynamic to ld flags on linux so that bundles
+ work correctly.
+
+Mon Oct 5 09:12:41 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * GNUstep.csh.in: Fix up syntax problems (from Don Bottstein
+ <donh@mapquest.com>).
+
+Mon Sep 14 11:28:26 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * ld_lib_path.sh: Add quotes around *_LIBRARY_PATH (patch from
+ doko@cs.tu-berlin.de (Matthias Klose)).
+
+Thu Sep 3 15:19:57 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * configure.in: Check for DPS.
+ * config.make.in: Add DPS_DEFINE.
+
+Tue Aug 25 10:02:03 1998 Adam Fedor <fedor@doc.com>
+
+ * openapp.in, debugapp.in: Fix typo. (patch from
+ doko@cs.tu-berlin.de (Matthias Klose)).
+ * GNUstep.csh.in: Add GNUSTEP_BUILD_ROOT for building GNUstep.
+ * GNUstep.sh.in: Likewise.
+
+ * config_threaded.m: New config check.
+ * configure.in: Use it.
+ * config.make.in (objc_threaded): New variable.
+ * target.make: Specify thread library and other flags based on
+ objc_threaded.
+
+Thu Aug 20 11:41:48 1998 Adam Fedor <fedor@doc.com>
+
+ * openapp.in, debugapp.in: Set LIBRARY_COMBO only if not set.
+ * brain.make: Likewise for library_combo.
+ * GNUstep.csh.in: Add braces around some variables (Changes from
+ Christopher Seawood <cls@seawood.org>).
+ * ld_lib_path.sh,ld_lib_path.csh: Check if variables set before
+ changing.
+ * whichlib.c: Fixup dirent includes.
+
+Wed Aug 12 15:25:00 1998 Richard Frith-Macdonald <richard@brainstrom.co.uk>
+
+ * openapp.in: export LIBRARY_COMBO.
+
+Tue Aug 4 16:43:55 1998 Adam Fedor <fedor@doc.com>
+
+ * application.make: Correct resource installation when
+ RESOURCE_FILES not defined.
+ * bunlde.make: Likewise.
+
+Tue Aug 4 12:50:00 1998 Richard Frith-Macdonald <richard@brainstrom.co.uk>
+
+ * brain.make: use -ldps even with xraw library.
+
+Tues Aug 4 1998 Felipe A. Rodriguez <far@ix.netcom.com>
+
+ * test-application.make set $(TEST_APP_NAME) to be a double colon target.
+
+Sat Jul 31 21:20:00 1998 Richard Frith-Macdonald <richard@brainstrom.co.uk>
+
+ * common.make: Modified to set LDFLAGS to use '-pg' when compiling
+ with 'profile=yes' and LD == CC
+
+Fri Jul 31 15:08:25 1998 Richard Frith-Macdonald <richard@brainstrom.co.uk>
+
+ * brain.make: Fixed to use the command-line specification of
+ 'library_combo' (if given) rather than the default library combo.
+
+Mon Jul 20 10:38:25 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * application.make (app-resource-files): Use For loop to copy files.
+ * bundle.make (app-resource-files): Likewise.
+
+Fri Jul 10 21:46:19 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * target.make (HP_UX SHARED_LINK): Fix up including *.o files.
+
+Wed Jun 17 10:00:20 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * brain.make: Add xraw library combo option
+
+ * library.make: Add --no-keep-going MAKE option.
+ * tool.make: Likewise.
+
+Fri Jun 12 22:15:00 1998 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * which_lib.c Fixed generation of library suffix and logic for shared
+ libraries to get debug-profiled libraries chosen correctly.
+
+Fri May 29 13:31:36 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * common.make (ADDITIONAL_FLAGS): Add -DDEBUG for debug=yes.
+ * target.make (HP-UX SHARED_LINK): Add */*.o files.
+
+Tue Apr 14 22:45:38 1998 Ovidiu Predescu <ovidiu@aracnet.com>
+
+ * test-tool.make (internal-testtool-check): New target.
+
+Wed Apr 1 19:37:26 1998 Ovidiu Predescu <ovidiu@aracnet.com>
+
+ * bundle.make (xxx_PRINCIPAL_CLASS): New variable to support
+ specifying the principal class of a bundle.
+ * rules.make: Pass PRINCIPAL_CLASS down in the recursive make.
+ * test-tool.make (internal-testtool-install): New empty rule.
+
+Wed Mar 11 23:28:11 1998 Ovidiu Predescu <ovidiu@aracnet.com>
+
+ * brain.make: New makefile variable 'gc' used to specify the Boehm's
+ garbage collector (currently works only with libFoundation).
+
+ * Added emacs variables at the end of makefile fragments.
+ * Added the missing /bin/sh line in the shell scripts (bug report from
+ Helge Hess <hh@mdlink.de>).
+
+Wed Mar 4 22:48:04 1998 Ovidiu Predescu <ovidiu@aracnet.com>
+
+ * tool.make: Don't pass LIBFOUNDATION_GC_LIBRARY when linking the
+ program.
+ * test-library.make: Likewise.
+ * brain.make (OBJC_LIBS): If working with libFoundation compiled
+ with Boehm's garbage collector support, use a special Objective-C
+ runtime library (libobjc_gc) and link against the gc library.
+
+Fri May 15 12:00:27 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * application.make (APP_RESOURCE_DIRS): New variable.
+ (app-resource-dir): New target.
+ (app-resource-files): Include full RESOURCE_FILES path in cp
+ to-file.
+
+Wed May 13 16:00:37 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * GNUmakefile.in: Create GNUSTEP_LIB_COMBO directory.
+ * brain.make (GUI_LIBS): Include -lgnustep-gui twice.
+ * target.make (OPENSTEP 4.X): Fix libtool flags.
+ * tool.make (TOOL_INSTALLATION_DIR): Conditionally set this.
+
+Sun Apr 5 20:06:03 1998 Scott Christley <scottc@net-community.com>
+
+ * documentation.make: Have html rule be based upon the table
+ of contents file.
+
+Sun Apr 5 19:07:54 1998 Scott Christley <scottc@net-community.com>
+
+ * GNUmakefile.in: install/uninstall new files; create full
+ target subdirectories.
+ * GNUstep.sh.in: Add shell magic name.
+ * MediaBook.sh: Likewise.
+ * clean_cpu.sh: Likewise.
+ * clean_os.sh: Likewise.
+ * clean_vendor.sh: Likewise.
+
+ * Add csh support.
+ * GNUstep.csh.in: New file.
+ * ld_lib_path.csh: New file.
+ * configure.in: Add GNUstep.csh.in to output files
+ * configure: Regenerate.
+
+ * Add documentation support.
+ * documentation.make: New file.
+ * common.make: Define documentation variables.
+ * rules.make: Pass documentation variables to sub-makes.
+
+Tue Mar 24 15:54:55 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * bundle.make (BUNDLE_RESOURCE_DIRS): Make all dirs a subdirectory
+ of Resources.
+ (bundle-resource-files): Include full RESOURCE_FILES path in cp
+ to-file.
+
+ * target.make: Add specifications for HP-UX.
+
+Sat Feb 14 16:32:14 1998 Scott Christley <scottc@net-community.com>
+
+ * tool.make (TOOL_INSTALLATION_DIR): Move definition outside
+ of if clause so that it is always defined.
+
+1998-02-09 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * common.make (GNUSTEP_MAKEFILES): Moved the definition to the top
+ of the file because it is needed to include several files.
+
+Mon Feb 9 00:23:33 1998 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * brain.make: Added the initial support for the integration of Boehm's
+ garbage collector into libFoundation. Include libFoundation.make in
+ case it's present and add the Boehm's GC library to the list of
+ Foundation libraries.
+ * library.make (internal-library-uninstall): Added the
+ before-uninstall and after-uninstall.
+ * test-library.make: Added LIBFOUNDATION_GC_LIBRARY to the list of
+ files used when linking.
+ * tool.make: Likewise.
+ * which_lib.c: Collect the rest of flags and output them at the end.
+ We should change this mechanism to keep the order in which the flags
+ appear on the command line.
+
+Fri Feb 6 12:25:51 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * common.make (GNUSTEP_MAKEFILES): Set only if not already set.
+ * *.make: Use GNUSTEP_MAKEFILES in place of
+ $(GNUSTEP_SYSTEM_ROOT)/Makefiles.
+
+1998-02-05 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * brain.make (GUI_LIBS): Changed the order of the gui and gmodel
+ libraries.
+ * library.make (internal-library-all): Added before-all and after-all
+ in the list of dependencies. The same thing should be added in the
+ other makefile fragments, maybe using a more general way.
+ * rules.make (internal-clean): Remove directories that have been
+ changed too.
+ * tool.make (internal-tool-install): Add internal-tool-all to the list
+ of dependencies.
+
+Wed Feb 4 09:01:16 1998 Adam Fedor <fedor@ultra.doc.com>
+
+ * target.make: Add TARGET_SYSTEM_LIBS for irix OS.
+
+Tue Feb 3 22:47:38 1998 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * brain.make: Include libFoundation.make which is now installed by
+ libFoundation to support Boehm's garbage collector.
+ * target.make (OPENSTEP): Add LIBRARIES_FOUNDATION_DEPEND_UPON to the
+ list of libraries to link against when building a shared library.
+
+Sun Feb 1 04:05:07 1998 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * test-library.make: Force the creation of unix.exp file.
+
+Fri Jan 30 14:14:40 1998 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * application.make: Create the Resources/Info-gnustep.plist to
+ keep information about the application resources. Copy the
+ resource file in the Resources directory.
+ (internal-app-install): Remove first the target.
+ * brain.make: Add to GUI_LIBS the extensions library.
+ * bundle.make: Add support for building the bundle wrapper. Create
+ the Info-gnustep.plist file automatically to keep information
+ about the main bundle class and executable. New target for
+ uninstalling a bundle.
+ * library.make (internal-uninstall-headers): Change to support
+ empty HEADER_FILES variables.
+ * rules.make (%.build): Pass in the BUNDLE_LIBS variable the
+ global libraries beside those required by a given bundle. Also
+ pass the bundle's installation directory.
+ * bundle.make (Solaris/BUNDLE_LDFLAGS): Revert the changes made by
+ Adam to support bundles with 2.7.2.1; these changes also work with
+ 2.8.
+
+Tue Jan 27 15:38:12 1998 Adam Fedor <fedor@doc.com>
+
+ * target.make (Solaris/BUNDLE_LDFLAGS): New flags for gcc2.8.0
+
+Sun Jan 11 13:00:46 1998 Scott Christley <scottc@net-community.com>
+
+ * GNUmakefile.preamble: Add additional flags.
+ * MediaBook.func (c): Display library combo setting and move
+ display of the CVS root.
+ * application.make: Correct comment.
+ * config.make.in (X_INCLUDE, X_LIBS): Define to be empty if
+ not using the X Window System.
+ * rules.make (%.build): Pass additional flags.
+ * target.make (nextstep4): Use ALL_LIB_DIRS instead of
+ specifying the individual user, local, and system dirs.
+ (nextstep3): Add system specific settings for NEXTSTEP 3.x
+
+Fri Jan 9 12:16:19 1998 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * aggregate.make: Run the recursive make using the makefile specified
+ in the MAKEFILE_NAME variable.
+ * bundle.make: Likewise.
+ * library.make: Likewise.
+ * objc.make: Likewise.
+ * rules.make: Likewise.
+ * test-application.make: Likewise.
+ * test-library.make: Likewise.
+ * test-tool.make: Likewise.
+ * tool.make: Likewise.
+ * application.make: Likewise. Copy the resource files into the
+ Resources directory inside the app wrapper. Added rule to generate the
+ Info-gnustep.plist file.
+ * brain.make: Add the gmodel library to the list of GUI libraries.
+ * common.make: Define the default value of MAKEFILE_NAME to be
+ GNUmakefile.
+ * target.make: Added flag to libtool so that we don't treat undefined
+ symbols as errors when building a shared library under OPENSTEP.
+
+Tue Jan 6 11:06:27 1998 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * target.make (target OPENSTEP): Added -undefined warning to the
+ libtool command line to make possible the creation of shared libraries
+ that include symbols defined in the startup object files.
+
+Wed Dec 17 10:40:02 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * ld_lib_path.sh: Don't treat Solaris' LD_LIBRARY_PATH different
+ (patch from Matthias Klose <Matthias.Klose@cs.tu-berlin.de>).
+
+Fri Nov 28 10:47:11 1997 Scott Christley <scottc@net-community.com>
+
+ * common.make (GNUSTEP_INSTALLATION_DIR): If the default
+ GNUSTEP_LOCAL_ROOT is empty then use GNUSTEP_SYSTEM_ROOT.
+ (GNUSTEP_LOCAL_HEADERS_FLAG, GNUSTEP_USER_HEADERS_FLAG): New variable.
+ (GNUSTEP_LOCAL_TARGET_LIBRARIES_FLAG): New variable.
+ (GNUSTEP_LOCAL_LIBRARIES_FLAG): New variable.
+ (GNUSTEP_USER_TARGET_LIBRARIES_FLAG): New variable.
+ (GNUSTEP_USER_LIBRARIES_FLAG): New variable.
+ In places where GNUSTEP_LOCAL_ROOT and GNUSTEP_USER_ROOT are
+ used, check to see if they are not blank before using them.
+ (GNUSTEP_FND_DIR): Change to just gnustep.
+ * objc.make (OBJC_PROGRAM_INSTALLATION_DIR): Add the target
+ subdirectory path.
+ (objc-program): Change to objc_program for target names.
+ * rules.make (ALL_OBJCFLAGS, ALL_CFLAGS): Use flag variables
+ for local and user header directories in case they are blank.
+ (ALL_LIB_DIRS, LIB_DIRS_NO_SYSTEM): Likewise.
+
+Wed Nov 19 13:07:37 1997 Scott Christley <scottc@net-community.com>
+
+ * COPYING: New file.
+ * config.site: Escape $ characters.
+
+Wed Nov 19 10:58:28 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * debugapp.in: Changed library_combo variable to LIBRARY_COMBO.
+ * tool.make: When installing take the tool from GNUSTEP_OBJ_DIR.
+
+Mon Nov 17 13:05:44 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * application.make: Output the file containing the paths for the
+ dynamic linker for each library combo instead of a global file for all
+ the combinations.
+ * openapp.in: Support the above change.
+ * debugapp.in: Likewise.
+ * rules.m (ALL_OBJCFLAGS, ALL_CFLAGS): Remove unnecessary -I.
+
+Fri Nov 14 12:51:16 1997 Scott Christley <scottc@net-community.com>
+
+ * test-application.make: New file.
+ * test-tool.make: New file.
+ * GNUmakefile.in: Install new files.
+ * aggregate.make: Prevent multiple inclusions.
+ * application.make: Likewise.
+ * bundle.make: Likewise.
+ * library.make: Likewise.
+ * objc.make: Likewise.
+ * rules.make: Likewise.
+ * test-library.make: Likewise.
+ * tool.make: Likewise.
+
+Fri Nov 14 09:53:50 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * brain.make: Added defines for the GUI and backend libraries.
+ * configure.in: Set the executable flag for openapp and debugapp.
+ * openapp.in: Added support for target abbreviations.
+ * debugapp.in: Likewise.
+ * rules.make: Removed the debugging comments.
+
+Fri Nov 14 09:31:47 1997 Scott Christley <scottc@net-community.com>
+
+ * config.make.in (library_combo): Rename to default_library_combo.
+ * brain.make: Use the default library combo as an initial setting.
+
+Thu Nov 13 15:08:13 1997 Scott Christley <scottc@net-community.com>
+
+ * rules.make: Replace dash with underscore for type not target.
+ * openapp.in: Determine host information if necessary.
+ * debugapp.in: Determine host information if necessary.
+ * MediaBook.sh: Save original variables.
+ * config.site (bindirtop): Define.
+ * MediaBook.func (hostinfo, assignpaths): New functions.
+ (librarycombo, systemroot, localroot, userroot): New functions.
+ * GNUmakefile.in (GNUSTEP_INSTALLATION_DIR): Define.
+
+Thu Nov 13 11:35:31 1997 Scott Christley <scottc@net-community.com>
+
+ * GNUstep.sh.in: Add user and local to PATH. Make user root
+ be GNUstep directory in home directory.
+ * GNUmakefile.in (uninstall): Only uninstall files that we
+ have installed.
+
+Thu Nov 13 09:27:33 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * test.make: Renamed to test-library.make.
+
+Wed Nov 12 19:12:20 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * bundle.make: Changed to work with the new rules.make rules.
+ * library.make: Make the install target depend on all.
+ * test.make: Reworked for the new rules.make.
+ * rules.make: Removed the definitions needed by test.make.
+
+Wed Nov 12 13:29:24 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * common.make (OBJCFLAGS): Removed the -Wno-implicit flag since it
+ could hide some programming errors.
+
+Tue Nov 11 14:43:56 1997 Adam Fedor <fedor@doc.com>
+
+ * target.make (Solaris/BUNDLE_LDFLAGS): Change the flags.
+
+Fri Nov 7 16:33:22 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ Reworked a bunch of files to be more general and faster.
+ * clean.make: File removed.
+ * GNUmakefile.in: Removed the clean.make.
+ * rules.make: Reworked to be simpler and faster.
+ * library.make: Reworked for the new rules.make.
+ * names.make: Likewise.
+ * objc.make: Likewise.
+ * tool.make: Likewise.
+ * application.make: Likewise. Wrote the install target support.
+
+ * config.make.in: New definition for TAR.
+ * test.make (testbundle-resource-files): Added __done at the end of
+ the for list command so the shell doesn't crash if the list is empty.
+ * brain.make: Small changes on the OPENSTEP support.
+ * target.make: Added LIBRARIES_DEPEND_UPON to the list of libraries
+ for OPENSTEP.
+
+Sat Nov 1 13:17:07 1997 Scott Christley <scottc@net-community.com>
+
+ * brain.make: Export LIBRARY_COMBO.
+ * common.make: Target and GUI header include flags should
+ contain user, local, and system roots. Rename GNUSTEP_TARGET_HEADERS
+ to GNUSTEP_HEADERS_TARGET_FLAG.
+ * rules.make: Rename GNUSTEP_TARGET_HEADERS to
+ GNUSTEP_HEADERS_TARGET_FLAG. Add AUXILIARY macros for auxiliary
+ libraries to add flags (e.g. gnustep-db).
+ * test.make: Put additional_library_paths outside of for loop.
+
+Thu Oct 31 11:30:00 1997 Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+ * which_lib.c: Modified for systems where realloc() doesn't handle
+ nul pointers correctly.
+ * target.make: Fixed for creation/installation of static libraries
+ now that they don't have version numbers again.
+
+Thu Oct 30 17:22:13 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * rules.make: Don't use an additional variable for specifying the
+ dynamic linker paths, use the normal linker paths.
+ * test.make: Likewise. Correctly process the additional library paths
+ so it contains only absolute paths.
+
+Thu Oct 30 15:49:53 1997 Scott Christley <scottc@net-community.com>
+
+ * rules.make: Fix variables when building test applications.
+ * test.make: Fix rules for building test applications.
+
+Thu Oct 30 13:23:31 1997 Scott Christley <scottc@net-community.com>
+
+ * objc.make: New file.
+ * GNUmakefile.in: Install new file. Add targets to regenerate
+ automatically generated files.
+ * aggregate.make: Have make stop when error occurs.
+ * bundle.make: Elminate stamp files.
+ * config.make.in: Save any LIBS specified by user.
+ * configure.in: Correct default library combo.
+ * configure: Regenerate for configure.in changes.
+ * rules.make: Add ObjC program support. Have make stop when
+ error occurs. Correct variables that are being passed to
+ recursive makes.
+ * target.make: Do not specify the thread library; instead the
+ user should define it when running configure with the LIBS
+ environment variable.
+ * test.make: Eliminate stamp files. Correct bundle rules.
+
+Thu Oct 30 09:35:34 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * common.make: Add the cpu/os/runtime include flag only for
+ libFoundation since only it requires this for the exception files.
+ * debugapp.in: Support for GDBbundle under OPENSTEP.
+ * rules.make: Don't show the recursive make command.
+
+Wed Oct 29 09:32:26 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * core.make: Renamed to brain.make to avoid removing it accidentally
+ by the configure script.
+
+Wed Oct 29 10:02:37 1997 Adam Fedor <fedor@doc.com>
+
+ * GNUstep.sh.in: Use -f to find user's GNUstep.sh.
+ * configure.in (ac_cv_library_combo): Use dashes instead of
+ underlines.
+
+ * target.make (TARGET_SYSTEM_LIBS): Add -lthread for Solaris.
+
+Tue Oct 28 09:32:23 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * common.make: Define the system, local and user headers variables.
+ Also define the compilation flags based upon these variables.
+ * ld_lib_path.sh: Use LIBRARY_COMBO instead of library_combo because
+ the first one is automatically exported by both GNUmake and the shell.
+ No longer use the export_variable to print out the name of the dynamic
+ linker environment variable.
+ * openapp.in: Changed underscores to dashes in the library combo
+ names.
+ * debugapp.in: Likewise.
+ * rules.make: Add search paths for include files to the user, local
+ and system header directories. The same with the libraries.
+ * test.make: Create the unix.exp file to search for the configuration
+ files in all the user, local and system directories. Use
+ ld_library_path.sh to setup the dynamic linker's environment variable
+ since we can't rely on how different paths are separated in this
+ variable.
+
+Mon Oct 27 18:01:38 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * Makefile: Renamed to GNUmakefile.
+ * Makefile.preamble: Renamed to GNUmakefile.preamble.
+ * Makefile.postamble: Renamed to GNUmakefile.postamble.
+
+Mon Oct 27 17:18:39 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * core.make: Use dashes instead of underscores in the library combo.
+ * DESIGN: Updated.
+
+Mon Oct 27 15:46:56 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * library.make: Don't append the version to a static library (bug fix
+ from Gregor Hoffleit <flight@thefly.mathi.uni-heidelberg.de>).
+ * core.make: Added support for library_combo abbreviations.
+
+Mon Oct 27 14:50:06 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * library.make: Make it recursive so you can build several libraries
+ in the same directory.
+ * common.make: Added GNUSTEP_INSTALLATION_DIR, the directory where all
+ stuff gets installed; by defaults is setup to the local root. Changed
+ all the variables accordingly. Removed definitions of INSTALL programs
+ since they are in config.make.
+ * GNUstep.sh.in: Add the LIBRARY_COMBO variable. Setup the PATH to
+ also point to the tools directory.
+ * rules.make: New implicit rules %.buildlib and %.installlib to
+ support the recursive building of libraries.
+ * tool.make: Install the tools in the proper directory.
+
+Fri Oct 24 20:26:41 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ Added support for the OPENSTEP Foundation library in the testing
+ related makefiles.
+ * bundle.make: Replace LD with BUNDLE_LD.
+ * common.make: Define a directory for the extensions under OPENSTEP.
+ * core.make: Change the definition of NeXT_foundation_LIBRARY to
+ NeXT_Foundation_LIBRARY.
+ * rules.make (ALL_TEST_LIBRARY_LIBS): Include an additional variable
+ AUXILIARY_LIBS.
+ * target.make: Set HAVE_BUNDLES to yes only for NeXT runtime. Define
+ BUNDLE_LD appropriate for all the targets.
+ * test.make: Use BUNDLE_LD when building a bundle. Define the
+ Foundation and the runtime used when running DejaGnu.
+
+Tue Oct 21 17:31:27 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * application.make (app-resource-files): Check to see if the
+ RESOURCE_FILES variable is defined so we don't get sh parse errors.
+ * target.make (OPENSTEP targets): Also search for libraries when
+ building a shared library in ADDITIONAL_LIB_DIRS.
+
+Mon Oct 20 08:48:02 1997 Scott Christley <scottc@net-community.com>
+
+ * rules.make: (%.tool): Rename to %.buildtool.
+ * tool.make: Eliminate use of stamp file.
+
+Mon Oct 20 08:26:01 1997 Scott Christley <scottc@net-community.com>
+
+ * debugapp is like openapp except it runs gdb for the app.
+ * debugapp.in: New file.
+ * Makefile.in: Install debugapp.
+ * configure.in (AC_OUTPUT): Add debugapp.
+ * configure: Regenerate for configure.in changes.
+
+ * application.make: Copy resource files into application.
+
+ * rules.make (AUXILIARY_TOOL_LIBS, AUXILIARY_GUI_LIBS)): Add new
+ variables which auxiliary library makefile fragments can modify
+ so as to have their libraries linked in.
+
+Fri Oct 17 14:17:40 1997 Scott Christley <scottc@net-community.com>
+
+ * test.make: Add comment about variable.
+
+Fri Oct 17 11:32:24 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * application.make: Don't print the commands for building the
+ .iconheader file on OS systems.
+
+Thu Oct 16 17:31:43 1997 Scott Christley <scottc@net-community.com>
+
+ * names.make: New file.
+ * target.make: Move determination of host and target system
+ to names.make file.
+ * Makefile.in: Install names.make.
+ * common.make: Include names.make and set the host and target
+ directory variables before including config.make.
+
+Thu Oct 16 12:04:32 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * common.make: Turn off the optimizations when compiling with debug
+ enabled.
+
+Thu Oct 16 11:23:05 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * ld_lib_path.sh: Set IFS to blank and newline to make the for loop
+ run correctly. Remove double quotes around $additional_library_paths
+ in the for loop.
+ * openapp.in: Put double quotes around the cat command when obtaining
+ the value for additional_library_paths.
+ * transform_paths.sh: Search through all the directories in $@,
+ not in "$*".
+
+Wed Oct 15 12:14:42 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ Better support for building applications.
+ * application.make: Reworked to eliminate the need of timestamp files
+ which cause weird behavior when building. Also it is possible to have
+ different extensions for the application directory based upon the
+ debug and profile variables (.app, .debug and .profile).
+ * rules.make: Changed the name of the implicit rule %.app to
+ %.buildapp to make possible creation of applications with
+ different extensions.
+ * core.make: Removed targets from the OS 4.x specific section.
+
+ Better support of shared libraries in openapp.
+ * openapp.in: Read in the library_paths.openapp file from the
+ application directory; this file contains additional directories that
+ should be added to the dynamic libraries search paths.
+ * ld_lib_path.sh: Support adding additional library paths from an
+ environment variable. This is set by openapp from a file inside the
+ application.
+ * application.make: Output an additional file in the application
+ directory containing additional library search paths.
+ * common.make: New variable TRANSFORM_PATHS.
+
+ * library.make: First install the library and then the headers.
+ * rules.make: Change the order of GUI and Foundation LDFLAGS.
+ * openapp.in: Remove the slashed from the end of the application name.
+ * DESIGN: Fixed typos. Document how the application's directory
+ extension is chosen.
+
+Tue Oct 14 15:28:52 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * DESIGN: Wrote about the naming conventions for libraries and how
+ they are chosen by the package.
+ * Makefile.preamble: Use += instead of =.
+ * application.make (stamp-app-% rule): Added before-link target to
+ support building of OPENSTEP 4.x applications.
+ (internal-distclean): New target.
+ * common.make: Changed the order in which target.make gets included.
+ More support for building a native OPENSTEP 4.x application added.
+ * core.make: Write the correct linking flags for building an
+ application under OPENSTEP 4.x. Create the .iconheader file
+ automatically.
+ * openapp.in: Check to see if the application really exists before
+ checking for the binary. Correctly check for the binary under OS 4.x.
+ * target.make: On OS 4.x systems with NeXT's Foundation, use the
+ native compiler. If we don't use the native compiler don't pass
+ the GNU ObjC runtime library and libgcc to libtool.
+ * which_lib.c: Correctly skip the libraries with the same suffix.
+
+Tue Oct 14 11:26:15 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * openapp.in: Add the possibility of passing arguments to the
+ application.
+
+Tue Oct 14 10:03:04 1997 Scott Christley <scottc@net-community.com>
+
+ * README: Update installation instructions.
+ * bundle.make (BUNDLE_DIR_NAME): Elminate period.
+ * config.make.in (YACC, BISON, FLEX, LEX): New variables.
+ * which_lib.c (search_for_library_with_type_in_directory):
+ Correct testing of filename so that only legitimate combinations
+ of name suffixes are recognized.
+
+Mon Oct 13 16:06:12 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * openapp.in: New file.
+ * GNUstep.sh.in: Added $GNUSTEP_SYSTEM_ROOT/Tools to the PATH.
+ * Makefile.in: Install openapp in $GNUSTEP_SYSTEM_ROOT/Tools.
+ * configure.in: Create openapp.
+ * ld_lib_path.sh: Changed to export the library path for different
+ systems.
+
+Mon Oct 13 12:21:59 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * configure.in: Check to see if a DPS directory exists inside the X11
+ headers tree.
+
+Wed Oct 8 11:57:48 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * library.make: Define the `before-install' target to depend on `all'.
+ * rules.make: `install' no longer depends on all.
+
+Tue Oct 7 15:59:28 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * common.make: New FOUNDATION_LIBRARY_NAME, FOUNDATION_LIBRARY_DEFINE
+ and RUNTIME_DEFINE make variables. Correctly handle the suffix of a
+ library name (using LIBRARY_NAME_SUFFIX).
+ * library.make: Append to the name of the library the suffix which
+ identifies its type. Output the library in the object files directory.
+ * rules.make: Move INTERNAL_LDFLAGS to the end of ALL_LDFLAGS
+ definition. Removed unnecessary passing of TARGET_LIB_DIR to shell
+ scripts. Process the libraries used to create a test using the
+ which_lib program. New variable SCRIPTS_DIRECTORY which identifies the
+ location of the dejagnu scripts (it can be not defined in which case
+ the current directory is assumed).
+ * target.make: For OS 4.x: don't hard code the location to libobjc and
+ libgcc, pass -L flags to libtool that point to the various GNUstep
+ directories. Define ADDITIONAL_LDFLAGS with a flag to linker that
+ disables warning for common symbols.
+ * test.make: Assume the driver program is located under the object
+ files directory.
+ Create the unix.exp file in the config directory where the test
+ scripts are located.
+ Compressed the internal-check-* targets into a single target.
+ * rules.make: Work with the new internal-check-* targets.
+ * which_lib.c: Fixed a bug when two libraries that have the same
+ prefix were matching.
+
+Sun Oct 5 20:30:01 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * common.make: Take the which_lib script from the host_cpu/host_os
+ directory.
+ * target.make: Create the target library to be a link to the versioned
+ one for OS 4.x.
+
+Sat Oct 4 23:08:01 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * target.make: Set the extension of shared libraries under OS 4.x to
+ be .a because the compiler/linker does not handle other extensions.
+ * library.make: Output the library in the current directory to be able
+ to solve problems with different library paths under systems with
+ shared libraries.
+
+Fri Oct 3 14:48:15 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * Support the host install program if any.
+ * Makefile.in: Added definitions for INSTALL variable. Delete the
+ which_lib program in the clean target.
+ * config.make.in: Define INSTALL to be the value of HOST_INSTALL
+ instead of INSTALL.
+ * configure.in: Check if the INSTALL program is the install-sh script.
+ If so define HOST_INSTALL to be the install script; otherwise it is
+ the host install program.
+ * which_lib.c: Include limits.h.
+
+Fri Oct 3 13:43:18 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * Added support for linking with different types of a library,
+ depending on the flags you specify at the make time.
+ * which_lib.c: New file.
+ * config.h.in: New file.
+ * Makefile.in: Added rule to build and install the which_lib program.
+ * common.make: Added definition for WHICH_LIB_SCRIPT.
+ * rules.make: Added rules to process the libraries list and obtain a
+ new one based upon the debug, profile and shared variables.
+ * configure.in: Added checks for various header files needed to
+ compile the which_lib program.
+ * library.make: Added new variable LIBRARY_FILE_EXT.
+
+ * application.make: Replaced foreach with :.something=.someotherthing.
+ * bundle.make: Likewise.
+ * test.make: Likewise.
+ * tool.make: Likewise.
+
+ * config.make.in: Changed the hard-coded definition of ld to be $(CC).
+ Added definitions for INSTALL programs.
+ * configure.in: Added check for the INSTALL program.
+ * library.make: New target internal-distclean.
+ * rules.make: internal-distclean does not make first the clean target.
+ * target.make: Shared libraries under OS 4.x have the .so extension.
+
+Thu Oct 2 14:56:08 1997 Scott Christley <scottc@net-community.com>
+
+ * ld_lib_path.sh: New file.
+ * common.make: Add variables which define explicit paths to the
+ system, local, and user library directories.
+ * rules.make (ALL_LD_LIB_DIRS): Variable which specifies the
+ standard GNUstep and the user's specific directories of where
+ the dynamic loader can find shared libraries.
+ * target.make (LD_LIB_PATH): Call shell script which returns the
+ name of the environment variable used by the dynamic loader.
+ * test.make: Set the dynamic loader environment variable
+ when running tests.
+
+ * test.make: New file.
+ * rules.make: Add test building and check rules.
+ * Makefile.in: Install test.make.
+
+Thu Oct 2 10:21:41 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * common.make.in: Remove the default library combo for OPENSTEP 4.x.
+ * configure.in: Add a default library combo for OS 4.x here.
+
+Wed Oct 1 18:04:25 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * configure.in: Added the --with-library-combo to support specifying a
+ default library combination.
+ * core.make: Removed logic that defines a default library
+ combination.
+ * config.make.in: Add little logic for library combo.
+
+Wed Oct 1 17:03:56 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * common.make: Added -I compile flag when compiling using gnustep-base
+ and libFoundation to get the files specific for cpu/os/runtime.
+ * core.make: Allow the user to specify a set of variables different
+ than the library combo. This is needed when compiling basic libraries
+ that don't use the whole library combo (like libFoundation). Also
+ define OBJC_RUNTIME that holds the name of the runtime, useful in
+ make, and RUNTIME_DEFINE that defines for the runtime, useful while
+ compiling. The last one should be added to the additional
+ C/ObjC flags.
+ * library.make: Define HEADER_FILES_DIR to be . by default.
+ Changed the rule for building the library to build it into the object
+ files directory. Cleaned the internal-clean rule.
+ * rules.make: Remove newlines in compilation rules. Added the 'all'
+ target in the list of dependencies for install.
+ * target.make: Cleaned the rules for building a shared library under
+ OPENSTEP 4.x. Added flags to linker to disable printing of warnings
+ for read only relocation symbols.
+
+Wed Oct 1 11:15:22 1997 Scott Christley <scottc@net-community.com>
+
+ * bundle.make: Add install and uninstall targets. Use bundle
+ extension variable.
+ (BUNDLE_LIBS): Libraries to link against when building a bundle.
+ * rules.make (BUNDLE_EXTENSION): Allow the user to specify a
+ different extension for the bundle directory name.
+
+Tue Sep 30 14:24:20 1997 Scott Christley <scottc@net-community.com>
+
+ * Add bundle support.
+ * bundle.make: Define rules and variables.
+ * rules.make: Add main bundle rule. Surround complete file
+ with if to prevent multiple inclusion.
+ * target.make: Define bundle variables.
+
+ * application.make: Delete old code.
+
+Tue Sep 30 08:27:28 1997 Scott Christley <scottc@net-community.com>
+
+ * Makefile.preamble (ADDITIONAL_TOOL_LIBS, ADDITIONAL_GUI_LIBS): Add
+ template variables for additional libraries when linking.
+ * application.make (internal-app-all): Build object directory.
+ * common.make (GNUSTEP_HEADERS_FND): New variable.
+ (GNUSTEP_OBJ_PREFIX): New variable.
+ (GNUSTEP_TARGET_LIBRARIES): New variable.
+ * library.make: Add uninstall targets.
+ * rules.make (ALL_LIB_DIRS): Search GNUSTEP_TARGET_LIBRARIES.
+ * tool.make (internal-clean): Remove object directory.
+
+Fri Sep 26 13:16:03 1997 Scott Christley <scottc@net-community.com>
+
+ * Makefile.in: Define install script.
+ * application.make: Correct name of stamp file.
+ * common.make: Define install script.
+ * config.make.in: Do not define install script.
+ * configure.in: Do not check for install script.
+ * configure: Regenerate for configure.in changes.
+ * library.make: Use -f instead of -e.
+ * target.make: Customize alpha-linux system libraries.
+
+Thu Sep 25 23:31:30 1997 Scott Christley <scottc@net-community.com>
+
+ * library.make (internal-install-lib): Install correct file.
+ * common.make (GNUSTEP_TARGET_HEADERS): New variable.
+ * rules.make (ALL_OBJCFLAGS, ALL_CFLAGS): Add target header
+ directory to include directories.
+
+Thu Sep 25 20:20:50 1997 Scott Christley <scottc@net-community.com>
+
+ * Makefile.in (config.site): Install in share directory not
+ the makefile package directory.
+
+Thu Sep 25 18:22:43 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * DESIGN: A word about building different types of a project.
+
+Thu Sep 25 17:32:37 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * DESIGN: Updated to contain the latest changes in the package.
+ * Makefile.in: Use a for loop to install the files.
+ * aggregate.make: Commpress all the internal-* targets into a single
+ rule to make the maintanance easier.
+
+ * rules.make: Add rule for creating the object files directory here
+ instead of having the same rule in several files.
+ * application.make: Remove creation of the object files directory.
+ Just add the dependency to the targets.
+ * tool.make: Likewise.
+
+ * clean.make: Optimize cannonicalization of host/target cpu/os/vendor
+ by adding a flag that says if they are already cannoical or not.
+ * target.make: Use the variable defined above to speed up the building
+ process.
+
+ * common.make: Added support for building separate versions of
+ libraries for debugging, profiling and/or static or shared. Use
+ different object file directories instead of using a suffix to the
+ file name. Building a shared library is now the default for systems
+ that support shared libraries.
+ * library.make: Removed the two variables for specifying the shared
+ library and the static one. Added two new target variables which
+ define commands to be run after the installation of either the static
+ or of the shared library.
+ * target.make: Define the two new variables above for the different
+ supported systems.
+
+ * common.make: Added a partial support for the NeXT compiler. We also
+ need a way to determine what compiler is used, which is simple because
+ our tools only partially work with the NeXT runtime/compiler.
+ * core.make: Support for the NeXT Foundation and AppKit added.
+ * rules.make: Use flags to specify the include paths while compiling
+ to support NeXT frameworks. Cleanup in the shared libraries support.
+
+ * rules.make: .PRECIOUS target added to disable removing of
+ intermediate files (Scott's idea).
+
+Thu Sep 25 11:25:36 1997 Ovidiu Predescu <ovidiu@net-community.com>
+
+ * Makefile.in: Include config.make to get the definition for the
+ INSTALL program. Use INSTALL program instead of cp.
+ * aclocal.m4: Remove unnecessary file.
+ * configure.in: Remove checks for unnecessary X libraries.
+ * application.make: Added newline at the end of file.
+ * library.make: Likewise.
+ * rules.make: Likewise.
+ * tool.make: Likewise.
+ * common.make: Define SHELL to be /bin/sh to avoid possible problems.
+
+Wed Sep 24 17:54:41 1997 Scott Christley <scottc@speedy.net-community.com>
+
+ * target.make: Correct settings for solaris.
+
+Wed Sep 24 14:00:03 1997 Scott Christley <scottc@net-community.com>
+
+ * Makefile.in: Run scripts in current directory.
+ * config.site: For autoconf packages in the GNUstep directory
+ structure, the headers and libraries must go into the appropriate
+ target subdirectory.
+
+Tue Sep 23 15:18:08 1997 Scott Christley <scottc@net-community.com>
+
+ * application.make: Utilize object directory.
+ * tool.make (object_dir): Rename to object-dir.
+ * library.make (object_dir): Rename to object-dir.
+
+Tue Sep 23 13:48:02 1997 Scott Christley <scottc@net-community.com>
+
+ * DESIGN: New file.
+ * README: New file.
+ * common.make: Add variable for the Resources directory.
+ * library.make: Properly install the shared library.
+ * rules.make: Delete temporary files.
+ * target.make: Remove unneeded code.
+ * tool.make: Put the stamps in the object directory.
+
+Mon Sep 22 17:57:50 1997 Scott Christley <scottc@net-community.com>
+
+ * common.make: Add support for putting object files in a different
+ directory.
+ * tool.make: Likewise.
+ * rules.make: Likewise.
+ * library.make: Add support for shared libraries.
+ * target.make: Likewise.
+
+Mon Sep 22 15:12:14 1997 Scott Christley <scottc@net-community.com>
+
+ * ChangeLog: New file.
--- /dev/null
+GNUmakefile
+version.texi
+*.log
+*.dvi
+*.ps
+*.html
+*.info
+*.aux
+*.toc
+*.cp
+*.fn
+*.vr
+*.tp
+*.ky
+*.pg
+*.vrs
+*.gz
+INSTALL
+README
+NEWS
+GNUstep-HOWTO
+internals
--- /dev/null
+
+# Workaround for a bug in latex2html which does not seem to
+# manage the \tableofcontents command correctly
+&ignore_commands( <<_IGNORED_CMDS_);
+tableofcontents
+_IGNORED_CMDS_
+
+$ASCII_MODE = 1;
+
+$BODYTEXT = "BGCOLOR=\"\#FFFFFF\" text=\"\#000000\" link=\"\#0000FF\" vlink=\"\#4444FF\" alink=\"\#3388FF\"";
+
+$SHOW_SECTION_NUMBERS = 1;
+
+$MAX_SPLIT_DEPTH = 4;
+
+$INFO = "
+<P>
+Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+<P>
+Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+<P>
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+<P>
+Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions.
+";
+
+
+sub top_navigation_panel {
+ ($NEXT_TITLE ? "<B> Next: $NEXT_TITLE </B>\n" : undef) .
+ ($UP_TITLE ? "<B>Up: $UP_TITLE </B>\n" : undef) .
+ ($PREVIOUS_TITLE ? "<B> Previous: $PREVIOUS_TITLE </B>\n" : undef) .
+ "<BR> <P>\n"
+}
+
+sub bot_navigation_panel {
+ "<HR>".
+ ($NEXT_TITLE ? "<B> Next: $NEXT_TITLE </B>\n" : undef) .
+ ($UP_TITLE ? "<B>Up: $UP_TITLE </B>\n" : undef) .
+ ($PREVIOUS_TITLE ? "<B> Previous: $PREVIOUS_TITLE </B>\n" : undef)
+}
--- /dev/null
+A makefile package for the GNUstep environment
+================================================================
+
+This document presents a makefile package for the GNUstep
+environment. It describes what are the goals the GNUstep environment
+should achieve and then presents some solutions.
+
+Goals
+=====
+
+There are several issues we tried to solve while designing a directory
+structure and the configuration/make procedures required to build a
+package.
+
+We tried to define a directory structure for keeping all the GNUstep
+related files. This structure makes the things more consistent and the
+configuration and compile process of various GNUstep packages more
+easier.
+
+An important issue is to let to a package the ability to deal with
+various libraries and configurations available now:
+
+* different Objective-C runtimes. In the Objective-C world there are
+currently two major runtimes: the NeXT runtime and the GNU
+runtime. They are different in several respects and a program or
+library that works at the runtime level should be aware of them.
+
+* different Foundation libraries. There are several Foundation libraries
+an OpenStep application can be written on top of: NeXT Foundation
+library which runs on NeXTStep/OPENSTEP systems, PDO (Portable
+Distributed Objects) which runs on a variety of Unix systems,
+gnustep-base and libFoundation.
+
+* different graphical interfaces. Until now two libraries provide or
+try to provide OpenStep compliant systems: the AppKit from NeXT and
+the GNUstep graphical libraries.
+
+The makefile package should be a simplistic, powerful and extensible
+way to write makefiles for a GNUstep project. It should allow the user
+to easily specify a library combination he/she wants to use when
+compiling a project. Also it should allow the user to easily create
+cross-compiled binaries.
+
+Library combinations
+====================
+
+If an application wants to work with all the possible combinations it
+will have to provide different binaries for each combination because
+it's not possible to have an application compiled for NeXT PDO that
+runs with gnustep-base or vice-versa. To summarize, an application can
+be compiled for these combinations:
+
+Objective-C runtime: NeXT, GNU
+Foundation library: NeXT, PDO, gnustep-base, libFoundation
+GUI library: NeXT, gnustep-gui
+
+Objective-C runtime: nx (for NeXT), gnu (for GNU)
+Foundation library: nx (for NeXT), pdo (for PDO), gnu (for gnustep-base),
+ fd (for libFoundation)
+GUI library: nx (for NeXT), gnu (for gnustep-gui)
+
+We'll denote the fact that an application was compiled for a certain
+combination of the above values by using the abbreviations of the
+different subsystems and placing dashes between them. For example
+an application compiled for NeXT Foundation using NeXT AppKit will
+have the compile attribute nx-nx-nx. An application compiled for
+PDO with the gnustep-gui library under Unix will be denoted by
+nx-pdo-gnu and another one compiled for gnustep-base using
+gnustep-gui under Unix will be denoted by gnu-gnu-gnu. Here is a
+list of some of the possible combinations:
+
+ObjC runtime Foundation GUI
+------------ ---------- ---
+ nx nx nx
+ nx pdo nx
+ nx pdo gnu
+ gnu gnu gnu
+ gnu gnu gnu
+ nx fd gnu
+ gnu fd gnu
+
+Note that one can choose his/her own packages to build; it is not
+required to have all the packages installed on the system. Not having
+all of them installed limits only the ability to build and distribute
+binaries for those missing combinations.
+
+Directory structure
+===================
+
+There are several directories used in a GNUstep environment. The
+directories are relative to a top directory whose name is given by the
+variable GNUSTEP_SYSTEM_ROOT ($GNUSTEP_SYSTEM_ROOT in a shell or
+$(GNUSTEP_SYSTEM_ROOT) in a makefile). Below is the hierarchy of
+GNUstep directories:
+
+$(GNUSTEP_SYSTEM_ROOT)/
+ Headers/
+ Libraries/
+ Applications/
+ Tools/
+
+The Headers/ and Libraries/ directories, as their names suggest, keep
+the header files and the libraries required by a GNUstep project to
+compile and link. The libraries can be both shared or static,
+depending on the target system.
+
+The Applications/ directory is used by GNUstep graphical applications,
+those applications which have a graphical interface with the user. The
+Tools/ directory holds command line tools based on GNUstep libraries.
+
+The header files are grouped like this in the Headers/ directory:
+
+Headers/
+ gnustep/
+ base/
+ Foundation -> base
+ gui/
+ AppKit -> gui
+ libFoundation/
+ Foundation/
+
+The Libraries/ directory can hold libraries for several machines and
+several combinations of packages:
+
+Libraries/
+ i386/
+ linux-gnu/
+ gnu-gnu-gnu/
+ libgnustep-base.so
+ libgnustep-gui.so
+ gnu-fd-gnu/
+ libFoundation.so
+ libgnustep-gui.so
+ sparc/
+ solaris-2.5.1/
+ nx-pdo-gnu/
+ libgnustep-gui.so
+
+Please note that the Libraries/ directory contains only the libraries
+that come with GNUstep, the PDO library for example is not inside
+Libraries/. The compiler has to know where that library can be found,
+although the makefile package is responsible for passing all the
+necessary flags during compiling and linking.
+
+The libraries directory also contains resource files which belong to
+the GNUstep libraries, such as images and printer description
+files. Since the images can look different for different backends,
+each backend has its own images in a different directory based upon
+the interface look and feel:
+
+Libraries/
+ Resources/
+ Images/
+ NeXT/
+ Win32/
+ PrinterTypes/
+ Fonts/
+ gnustep/
+ NSCharacterSets/
+ libFoundation/
+ CharacterSets/
+ Defaults/
+ TimeZoneInfo/
+
+The resources that are specific to each Foundation libraries are kept
+in a subdirectory like above, except for NeXT Foundation and PDO which
+keep their resources in their own places.
+
+The Applications/ directory contains GNUstep graphical
+applications. Each application is kept in an app wrapper which
+contains all the binaries and all the resource files the application
+needs. The binaries organization resembles the one from libraries:
+
+Applications/
+ InterfaceModeller.app/
+ InterfaceModeller (for OPENSTEP systems compatibility)
+ i386/
+ linux-gnu/
+ gnu-gnu-gnu/
+ InterfaceModeller
+ sparc/
+ solaris-2.5.1/
+ nx-pdo-gnu/
+ InterfaceModeller
+
+The Tools/ directory contains command line tools. Each tool
+executable is placed in a subdirectory corresponding to the CPU and
+operating system.
+
+Tools/
+ i386/
+ linux-gnu/
+ autoconf
+ gcc
+ dgs
+ sparc/
+ solaris-2.5.1/
+ autoconf
+ gcc
+
+
+The makefile package
+====================
+
+The GNUstep environment needs a makefile package whose purpose is to
+simplify writing a GNUstep project. This package should help
+developers easily write makefiles for compiling their projects.
+
+Theoretically an OpenStep application should only use OpenStep API, it
+should not rely at all on system specific header files. This is the
+most portable way to write an OpenStep application. For this kind of
+applications configuring is not necessary since no system specific
+header files or libraries need to be checked. The idea is to try
+eliminate the configuring process because of the problems it has in
+the presence of cross-compiling. Not relying on system files in a
+GNUstep project means that you don't need to check for them, so the
+project can simply be compiled by just typing `make'.
+
+This is the best scenario for a GNUstep package. If configuring is
+still needed the makefile package should support it without major
+changes.
+
+We identified until now the following types of projects:
+
+- application: for projects whose result are graphical GNUstep applications
+- tool: for command line programs which use GNUstep libraries
+- library: for creating libraries (both static and shared)
+- bundle: for creating a dynamically loaded bundle
+- aggregate: for projects that contain several other subprojects like
+ libraries, bundles and so on
+
+Another possible type of project could be "pallete", for adding
+functionality to the GNUstep InterfaceModeller application. Other
+project types can be added as well, the makefile package does not
+limit this in any way.
+
+A project consists from a collection of source code files and resource
+files. If a project has several subdirectories, those subdirectories
+are subprojects of the main project. A subproject type is not
+restricted in any way by the type of the project it's contained
+into. The only restriction is that you can not create multiple project
+types from the files in the same directory.
+
+For a project that does not need any additional configuring before
+compiling the only thing required to build the project should be
+typing
+
+ $ make
+
+in the command line :-).
+
+Where the object files go
+=========================
+
+The object files will go in a separate directory identified by the
+name of the target system and of the development environment used
+(ObjC runtime, Foundation library and GUI libraries). This way one can
+use the same source tree for building the project for multiple
+targets.
+
+How to choose the library combination
+=====================================
+
+The makefile package will allow the user to choose between different
+library combinations. To specify a combination you want to compile for
+just type:
+
+ $ make library_combo="library combination"
+
+For instance if you want to choose to compile using the NeXT's PDO
+Foundation and use the GNUstep GUI library on a Unix machine you can
+do like this:
+
+ $ make library_combo=nx-pdo-gnu
+
+
+Projects that require running configure before compiling
+========================================================
+
+There are two issues with this kind of projects. 'configure' is used
+to determine the existence of particular header files and/or of some
+specific functionality in the system header files. This thing is
+usually done by creating a config.h file which contains a couple of
+defines like HAVE_... which say if the checked functionality is
+present or not.
+
+Another usage of configure is to determine some specific libraries to
+link against to and/or some specific tools. A typical GNUstep program
+is not required to check for additional libraries because this step is
+done by the time the makefile package is installed. If the project
+still needs to check for additional libraries and/or tools, the
+recommended way is to output a config.mak file which is included by
+the main makefile, instead of using Makefile.in files which are
+modified by configure. The reason for not doing this is to avoid
+having the Makefiles contain target dependencies like above, this way
+keeping only one makefile instead of several for each target machine.
+
+The makefile package will be written for GNU make because it provides
+some very powerful features that save time both in writing the package
+but also at runtime, when you compile a project.
+
+How to build a package for different architectures
+==================================================
+
+In order to build a project for multiple architectures you'll need the
+development environment for the target machine installed on your
+machine. This includes a cross-compiler together with all the
+additional tools like the assembler and linker, the target header
+files and all the libraries you need.
+
+The GNUstep makefile package should be able to compile and link an
+application for another machine just by typing
+
+ $ make target="target machine"
+
+where "target machine" is the canonical system name as reported by
+config.guess.
+
+Building different types of a project
+=====================================
+
+During development you usually need to switch between a debug version and a
+profile one without having to recompile all of the sources. The makefile
+package allows you to do this by letting you define three boolean make
+variables. The values of these variables can be either "yes" or "no".
+
+* debug
+
+If the value is yes then it is assumed that the target is to be built with
+debugging info. By default the optimization is turned on but you can control
+this behavior via the OPTFLAGS make variable. The default is no.
+
+* shared
+
+It makes sense to specify this only for library targets. This variable says
+if the target needs to be built as a shared library. On systems that support
+shared libraries this is the default; the user has to explicitly specify
+shared=no in the command line.
+
+* profile
+
+When this variable is yes, a profile version of the target is built. The
+default is no.
+
+For example if you want to build a shared library with debug information
+enabled but no profile information, the command line would be:
+
+ $ make shared=yes debug=yes profile=no
+
+The last argument is not necessary because the default is to build a version
+without profile information.
+
+The object files will be output into the shared_debug_obj directory. If the
+profile is turned on the output directory would be shared_profile_debug_obj.
+
+Of course you also have to specify the library combo if it's different than the
+default.
+
+Naming conventions of the libraries
+===================================
+
+Sometimes you need to have different versions of a library compiled with
+different options. Suppose you want to compile a library with profiling
+information enabled so that you can profile your code. But you don't want to
+overwrite your existing installed library so that only some of the applications
+will work with the profile library, the rest will still use the normal library.
+
+The makefile package supports such a schema by having different names for
+different types of the same library. This works by appending an underscore
+after the name of the library followed by a letter which indicates the type of
+the library:
+
+'s' for a static library
+'p' for a profile library
+'d' for a debug library
+
+So for example if you have the library 'example' compiled with debug
+information as a shared library it would be named libexample_d.so. If the same
+library is compiled as a static library its name would be named
+libexample_sd.a. The reason why the 's' letter for the static library appears
+in name of the library is for systems where the extensions of libraries don't
+matter.
+
+It is possible to compile a library with whatever combination of flags you
+want. The letters are appended in the order specified above, so if you compile
+the library as a static library, with profile and debug information enabled,
+the library name will have the _spd suffix appended.
+
+How a library is chosen
+=======================
+
+What happens if you compile an application with profile enabled and you don't
+have a library compiled with profile info into it, but you do have a normal
+library installed? It would be great if the normal library is chosen instead.
+This is a problem because the library that should be chosen has a different
+name than the profile library.
+
+We do support this schema by requiring the libraries to be specified using the
+short name, without any suffix appended to it. The `example' library in our
+case should be passed to the linker using -lexample, and not using -lexample_p.
+Based upon the shared, profile and debug variables, the makefile package will
+identify which are the libraries that exist on the system and it will come with
+the correct names when linking.
+
+The search order of libraries depending on what type of library is required is
+as follows. First of all an exact match is searched; if one is found it is
+returned. If either debug or profile are required, a library that matches at
+least one of these attributes is returned. For example if there is a
+profile+debug version of a library but only debug is required this library will
+match. If a static version is required but no static versions of the library
+exist, then no library is chosen; in this case the system simply prints out the
+name of the library, assuming a static library is somewhere else in the
+libraries search path of the linker.
+
+Building applications
+=====================
+
+In the makefile's package terminology an application is a program linked
+against the GUI libraries.
+
+An application is built as usualy, by compiling all of the sources and then
+linking the object files into the binary. The only difference between
+an application and any other project results is that the first is created into
+its own directory, instead of being a simple file. This directory is called
+the application wrapper and it contains the binaries for various architectures
+and resources needed by the application.
+
+The name of the application wrapper is taken to be the name of the application
+with the following extensions:
+
+.profile - if the application has been built with profile enabled
+.debug - if the application has been built with debug enabled
+.app - if the application has been built without debug or profile enabled
+
+If both debug and profile are enabled, the application extension will simply
+have the .profile extension. This is different from libraries were both options
+are reflected into the library's name.
+
+The structure of makefiles
+==========================
+
+The makefile package should be built so that a user project will only
+have to define what are the Objective-C files he/she uses, what are
+the C files, the header files and so on. All the rules that know how
+to build a library, an application or whatever type of project are
+defined in the internal files of the makefile package.
+
+This organization has several advantages. The main advantage is that
+we keep the makefiles in a GNUstep project small, only the makefile
+variable definitions. The other advantage is that all the build
+knowledge is centralized in a single place, the makefile
+package. Right now each GNUstep package tries to solve all of the
+issues related to the package building and nothing is reusable.
+
+The way the main makefile of a project should be written requires the
+user to specify the files needed by the make process and what kind of
+project needs to be built. This is defined by including a certain
+makefile package file. For example if the package to be built is an
+application then a possible Makefile can look like this:
+
+APP_NAME = test1 test2
+test1_OBJC_FILES = test1.m
+test2_OBJC_FILES = test2.m test21.m
+
+-include Makefile.preamble
+include application.make
+-include Makefile.postamble
+
+
+The main makefile will be generated automatically in the future by the
+ProjectCenter. This presents problems if the user wants to add his/her
+own makefiles targets or additional rules. Two additional files are
+provided: Makefile.preamble and Makefile.postamble. The first file is
+included before the makefile for the specific project type and is
+intended for redefining the standard variables or for adding to
+them. The second one is intended for adding additional rules or
+targets.
+
+The makefile package is installed under $(GNUSTEP_SYSTEM_ROOT)/Library/Makefiles.
+
+
+Ovidiu Predescu
+
+Last updated: April, 2001
--- /dev/null
+#
+# This GNUmakefile needs to build the gnustep-make documentation.
+#
+
+# The GNUmakefile itself is written using gnustep-make. If we find an
+# existing gnustep-make installation, we use it. Otherwise, we
+# configure, compile and install gnustep-make into a temporary
+# subdirectory, then we use that copy.
+
+# In the very unlikely event that gnustep-make does not even install
+# on your machine, please get a pre-generated copy of the
+# documentation from the internet! Or just read the documentation in
+# source format. :-)
+
+ifeq ($(GNUSTEP_MAKEFILES),)
+
+# We have no gnustep-make installation to use. We need gnustep-make
+# to generate the documentation.
+
+# To help lazy cows who want to type 'make' and have all work
+# automatically without installating gnustep-make first, if we don't
+# have a gnustep-make installation to use, we create a temporary one
+# in the subdirectory ./tmp-installation, execute GNUstep.sh in that
+# directory, then run make again.
+
+# To execute all, or clean, or install, we first depend on a local
+# temporary installation of gnustep-make; when we have it, we source
+# GNUstep.sh, then we run the make command again. Please note that
+# "make install" will install into our temporary gnustep-make
+# directory, which is usually not particularly useful, but anyway.
+all clean install: ./tmp-installation/System/Library/Makefiles/GNUstep.sh
+ @echo "** Running 'make $@' using the local/temporary gnustep-make installation **"
+ (. ./tmp-installation/System/Library/Makefiles/GNUstep.sh; \
+ $(MAKE) $@)
+
+CURRENT_DIR = $(shell pwd)
+
+# This creates a local temporary installation of GNUstep-make
+./tmp-installation/System/Library/Makefiles/GNUstep.sh:
+ @echo "** No gnustep-make installation found, attempting to create a local/temporary one. **"
+ (mkdir tmp-build; \
+ cd tmp-build; \
+ ../../configure --prefix="$(CURRENT_DIR)/tmp-installation"; \
+ make; \
+ make install)
+
+distclean:
+ -(if [ -f ./tmp-installation/System/Library/Makefiles/GNUstep.sh ]; then \
+ . ./tmp-installation/System/Library/Makefiles/GNUstep.sh; \
+ $(MAKE) $@; \
+ fi)
+ rm -Rf tmp-installation tmp-build
+
+else
+
+# We have a gnustep-make installation to use. The following is a
+# normal gnustep-make GNUmakefile for documentation.
+
+# We normally install into System
+GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_SYSTEM_ROOT)
+
+include $(GNUSTEP_MAKEFILES)/common.make
+
+# The documents to be generated
+DOCUMENT_NAME = gnustep-howto faq filesystem internals machines make userfaq
+
+# The text documents to be generated
+DOCUMENT_TEXT_NAME = FAQ INSTALL README NEWS GNUstep-HOWTO ANNOUNCE
+
+TOP_DOC_FILES = FAQ INSTALL README NEWS GNUstep-HOWTO ANNOUNCE
+
+GNUstep-HOWTO_TEXI_FILES = version.texi
+GNUstep-HOWTO_TEXT_MAIN = gnustep-howto.texi
+GNUstep-HOWTO_DOC_INSTALL_DIR = User/GNUstep/
+
+FAQ_TEXI_FILES = version.texi
+FAQ_TEXT_MAIN = faq.texi
+FAQ_DOC_INSTALL_DIR = User/GNUstep/
+
+make_TEXI_FILES = \
+make.texi
+make_DOC_INSTALL_DIR = Developer/Make/Manual/
+
+faq_TEXI_FILES = \
+faq.texi \
+version.texi
+faq_DOC_INSTALL_DIR = User/GNUstep/
+
+userfaq_TEXI_FILES = \
+userfaq.texi \
+version.texi
+userfaq_DOC_INSTALL_DIR = User/GNUstep/
+
+filesystem_TEXI_FILES = \
+filesystem.texi
+filesystem_DOC_INSTALL_DIR = User/GNUstep/
+
+machines_TEXI_FILES = \
+machines.texi
+machines_DOC_INSTALL_DIR = User/GNUstep/
+
+gnustep-howto_TEXI_FILES = \
+gnustep-howto.texi \
+version.texi
+gnustep-howto_DOC_INSTALL_DIR = User/GNUstep/
+
+internals_LATEX_FILES = \
+internals.tex
+internals_DOC_INSTALL_DIR = Developer/Make/Manual/Internals/
+
+INSTALL_TEXI_FILES = version.texi
+INSTALL_TEXT_MAIN = install.texi
+INSTALL_DOC_INSTALL_DIR = Developer/Make/ReleaseNotes/$(GNUSTEP_MAKE_VERSION)
+
+NEWS_TEXI_FILES = version.texi
+NEWS_TEXT_MAIN = news.texi
+NEWS_DOC_INSTALL_DIR = Developer/Make/ReleaseNotes/$(GNUSTEP_MAKE_VERSION)
+
+README_TEXI_FILES = version.texi
+README_TEXT_MAIN = readme.texi
+README_DOC_INSTALL_DIR = Developer/Make/ReleaseNotes/$(GNUSTEP_MAKE_VERSION)
+
+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
+
+include $(GNUSTEP_MAKEFILES)/documentation.make
+
+include ../Version
+
+GNUSTEP_TEXI2HTML_FLAGS += -init_file gnustep.init
+
+# Typing 'make regenerate' should build all, then install the files
+# top-level. This is mostly for making gnustep-make releases.
+regenerate: all
+ mv -f $(TOP_DOC_FILES) ..
+
+# Generate the version.texi file from the Version of gnustep-make.
+version.texi: ../Version
+ rm -f version.texi
+ echo '@set GNUSTEP-MAKE-VERSION' $(GNUSTEP_MAKE_VERSION) \
+ > version.texi
+
+# Install manually man pages
+after-install:: $(GNUSTEP_DOCUMENTATION)/Developer/Make/Manual
+ $(INSTALL_DATA) DESIGN $(GNUSTEP_DOCUMENTATION)/Developer/Make/Manual
+ if [ ! -f $(GNUSTEP_DOCUMENTATION_MAN) ]; then \
+ $(MKDIRS) $(GNUSTEP_DOCUMENTATION_MAN); \
+ fi; \
+ if [ ! -f $(GNUSTEP_DOCUMENTATION_MAN)/man1 ]; then \
+ $(MKDIRS) $(GNUSTEP_DOCUMENTATION_MAN)/man1; \
+ fi; \
+ for file in $(MAN1_PAGES) __done; do \
+ if [ $$file != __done ]; then \
+ $(INSTALL_DATA) $$file $(GNUSTEP_DOCUMENTATION_MAN)/man1/$$file; \
+ which gzip && rm -f $(GNUSTEP_DOCUMENTATION_MAN)/man1/$$file.gz \
+ && gzip -9 $(GNUSTEP_DOCUMENTATION_MAN)/man1/$$file; \
+ fi; \
+ done;
+ if [ ! -f $(GNUSTEP_DOCUMENTATION_MAN)/man7 ]; then \
+ $(MKDIRS) $(GNUSTEP_DOCUMENTATION_MAN)/man7; \
+ fi; \
+ for file in $(MAN7_PAGES) __done; do \
+ if [ $$file != __done ]; then \
+ $(INSTALL_DATA) $$file $(GNUSTEP_DOCUMENTATION_MAN)/man7/$$file; \
+ which gzip && rm -f $(GNUSTEP_DOCUMENTATION_MAN)/man7/$$file.gz \
+ && gzip -9 $(GNUSTEP_DOCUMENTATION_MAN)/man7/$$file; \
+ fi; \
+ done;
+
+# Uninstall manually man pages
+after-uninstall::
+ rm -f $(GNUSTEP_DOCUMENTATION)/Developer/Make/Manual/DESIGN
+ for file in $(MAN1_PAGES) __done; do \
+ if [ $$file != __done ]; then \
+ rm -f $(GNUSTEP_DOCUMENTATION_MAN)/man1/$$file; \
+ fi; \
+ done;
+ for file in $(MAN7_PAGES) __done; do \
+ if [ $$file != __done ]; then \
+ rm -f $(GNUSTEP_DOCUMENTATION_MAN)/man7/$$file; \
+ fi; \
+ done;
+
+after-distclean::
+ rm -f version.texi
+endif
--- /dev/null
+.\"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"
+.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).
+.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.
+
+.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.
+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.
+
+.P
+.B Some Basic Terms:
+
+.P
+.B Tools and Applications
+.P
+In the world of GNUstep the term
+.I tool
+refers to command line programs whereas
+.I applications
+are fully fledged GUI programs.
+Naturally,
+.I tools
+reside in the domains' Tools folder,
+.I applications
+can be
+found in the domains' Applications folder.
+
+Applications are either launched using the 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
+.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.
+
+.P
+.B The Workspace
+.P
+The central place of the user interface is the
+.I Workspace
+or
+.I Workspace Manager
+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.
+
+.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
+.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/>
+.P
+.SH AUTHORS
+GNUstep is developed and maintained by a large number of people. Please
+see <http://www.gnustep.org/developers/whoiswho.html> for a list.
+.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>.
--- /dev/null
+Date: 17-Sep-2002 (tested under windows-xp)
+Author: Ildar Mulyukov <ildar@users.sourceforge.net>
+
+PURPOSE
+-------
+
+This document may be treated as just an appendix to GNUstep-HOWTO. You
+can find GNUstep-HOWTO link here:
+http://gnustep.org/experience/documentation.html
+
+This document is intended to provide a step by step instruction on how
+to get the GNUstep base library into a usable state on a recent windows
+operating system (XP, 2000, and probably NT) within Cygwin environment.
+
+Cygwin is unix-like environment working on top of Win32 (Windows, Windows
+NT/2k/XP). You can find complete information about it on the website
+http://cygwin.org
+
+For the moment GNUstep can be built with GUI support. (Native Win32
+GUI, not X11) The gui library is only partially ported to run under
+Win32 API so be warned.
+
+Several people have reported that GNUstep installation on Cygwin works
+fine, but as always, a slightly different Window's setup can cause
+unforseen problems. Yo should be relatively confident at working with
+Cygwin before attempting to install GNUstep.
+
+ADDITIONAL COMMENTS
+-------------------
+
+Note: These comments are just my experience. You don't need these to build
+GNUstep. If you don't understand something don't worry.
+
+Cygwin project is now in a very advanced stage. It's ready to be used by
+end-users and in commercial purposes and very convenient for programmers.
+
+Cygwin provides "General UNIX" environment and APIs. In fact
+GNUstep-base is compiled using Unix alternatives of classes (like
+NSConcreteUnixTask). But it has several particularities that must been
+taken into consideration. There is a very good documentation on Cygwin
+website on these questions. See e.g.
+http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html I would like to
+mention two of them:
+
+1. Filesystem is case-insensitive. Now it's (luckily) supports
+soft-links. But case-insensitivity hinders quite a lot.
+
+2. Dynamic libraries mechanism is not so good. (Windows DLL). It does
+not support several features (and this makes so hard to port some
+software e.g. licq) And it has those ugly __declspec(dllexport) /
+__declspec(dllimport) . But (Cygwin hackers are just cool!) in later
+releases of binutils ld is capable to link wrongly declared exports!
+This eliminates a lot of problems when dealing with DLLs (including
+objc.dll and gnustep-*.dll)
+
+PRELIMINARIES
+-------------
+
+Before you start, you need Cygwin in some programming-oriented
+configuration (full configuration is OK but it's VERY big
+now). Installation instructions are on Cygwin site.
+
+In fact Cygwin already contains every package needed for GNUstep.
+
+Building GCC and GDB
+--------------------
+
+Cygwin contains it's own GCC and GDB packages that work very good in Cygwin
+environment. But they lack Objective-C language support so for us these are
+completely unusable. See http://cygwin.com/faq/faq_4.html#SEC90
+
+So you have to build these two from sources.
+
+Please note that generally GDB is optional! It's up to you whether to
+use it or not. If you don't use it you don't need to build it.
+
+1. GCC. Get sources from http://gcc.gnu.org.
+Get sources (including languages you need),
+unpack, build. Before installing uninstall previous version of GCC via
+setup.exe program.
+
+Note: GCC provided in Cygwin was patched to behave better in
+Windows/Cygwin environment. Cygwin team has done some changes that
+were not committed to GCC CVS tree and they lost Objective-C
+support. That's why you can't use even Cygwin GCC source. But don't
+worry: newly built GCC works fine and I believe can do all those
+"-mno-cygwin" and "-shared" things by fixing specs file.
+
+Note2: You can make packages from programs you built with utility
+provided in APPENDIX A. These packages can be installed with setup.exe
+
+2. GDB. Sources are here: http://www.gnu.org/software/gdb/ . See
+http://mail.gnu.org/pipermail/discuss-gnustep/2002-August/017238.html
+Adam Fedor has made wonderful patch for current CVS GDB. It's probable
+that you may use Cygwin GDB sources but I don't know really. Unpack,
+apply patch, make, install. This may be non-trivial. Good luck.
+
+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. However, since
+Cygwin support is currently evolving, I recommend that you get the
+latest snapshot or code from CVS.
+
+You need things in the following order:
+
+GNUstep-make (release, snapshot, or cvs core module)
+libffcall (http://ftp.gnustep.org/pub/gnustep/lib)
+GNUstep-libobjc (release, snapshot, or cvs dev-apps module)
+GNUstep-base (snapshot, or cvs core module)
+
+For gui ... GNUstep-gui and GNUstep-back (snapshot, or cvs core module)
+
+
+
+
+Building and installing libraries
+---------------------------------
+
+FFCALL: Unpack, configure, make, make install. See GNUstep-HOWTO for details.
+Note again: you can make package. See APPENDIX A
+
+libiconv, libtiff, libjpeg, zlib, libxml2 and openssl are all in
+Cygwin distro. Don't forget to install respective *-devel packages.
+
+
+Building and installing gnustep-make
+------------------------------------
+
+As ususal. E.g. I use ../clear.cvs/gnustep/core/make/configure
+--prefix=/usr/GNUstep --with-thread-lib=-lkernel32 && make && make
+install
+
+Building and installing libobjc
+-------------------------------
+
+You need to install gnustep-objc as it properly exports symbols for
+DLLs and it's DLL (I don't know whether it works OK in static form)
+
+Go to gnustep-objc (or from CVS, into dev-apps/libobjc), and type
+
+ make install
+
+This should build and install the ObjectiveC runtime and headers for you.
+Note: I strongly suggest removing gcc's own objc/*.h and libobjc.a files.
+
+
+Building and installing GNUstep-base
+------------------------------------
+
+Go to gnustep-base (or from CVS into the core/base directory), and type
+
+ make install
+
+This should automatically run the configure script for you, build the
+base library and some tools, and install the whole lot (along with some
+system resources).
+
+
+
+Building and installing GNUstep-gui
+-----------------------------------
+
+To build the gui, you need to have libtiff installed ...
+
+Go to gnustep-gui (or from CVS into the core/gui directory), and type
+
+ make install
+
+
+
+
+Building and installing GNUstep-back
+------------------------------------
+
+This software is PRE-ALPHA ... it is present in CVS for people who which to
+help porting the GNUstep backend to windows!
+
+In the back directory, type
+
+ make install
+
+
+
+
+Troubleshooting
+---------------
+
+Pre-Compiled Binaries
+---------------------
+
+I don't currently know about any resource. I have ones but don't have
+a place to put them.
+
+ACKNOWLEDGMENTS
+---------------
+
+Thanks to all the GNUstep hackers for this wonderful project. Thanks
+to Richard Frith-Macdonald <rfm@gnu.org> for his README.MinGW as I
+have copy-pasted structure of this document from his README.MinGW
+
+
+APPENDIX A
+----------
+
+This is mkpkg.sh script for making packages from sources.
+
+#!/bin/bash
+# make a cygwin package
+# launch this script in the building dir
+
+TMPDIR=/tmp/__TMP_$RANDOM
+FLIST=$TMPDIR/files.list
+
+rm -rf $TMPDIR
+mkdir $TMPDIR
+
+touch /usr/time.stamp
+make install
+
+pushd .
+cd /
+find usr ! -type d -newer /usr/time.stamp > $FLIST
+rm /usr/time.stamp
+
+# Don't forget to rename it to real package name
+tar cjf $TMPDIR/package.tar.bz2 `cat $FLIST`
+popd
+
+unset TMPDIR FLIST
+
+--- *** CUT *** ---
--- /dev/null
+Date : 15-Jan-2004
+Last update: 20040727 (tested under Mac OS X 10.3 / Darwin 7)
+ --> must be verified on x86-darwin-7, powerpc-apple-darwin-6
+Authors: Adam Fedor <fedor@gnu.org>
+ Quentin Mathé <qmathe@club-internet.fr>
+ Lars S.-Helldorf <lars.sonchocky-helldorf@hamburg.de>
+
+PURPOSE
+-------
+
+This document is intended to provide a step by step instruction on how to get
+the GNUstep installed on Mac OS X and Darwin.
+
+Note: GNUstep seems to install on Mac OS X 10.2 / Darwin 6, but the bundles
+support seems to be broken, then applications based on GNUstep-gui will not
+work. (Must be verified)
+
+COMMONLY USED SYMBOLS
+---------------------
+
+<> denotes a variable depending on your preferences. To be replaced with the
+actual values from your system. For instance, if you installed gcc in /opt/local
+
+ ./configure CC='<gcc install dir>/bin/gcc'
+
+ will become
+
+ ./configure CC='/opt/local/bin/gcc'
+
+[] denotes an optional parameter. For instance:
+
+ ./configure [--enable-graphics=art]
+
+ can be either:
+
+ ./configure
+
+ or:
+
+ ./configure --enable-graphics=art
+
+POTENTIAL ERRORS WHEN RUNNING MAKE ESPECIALLY WITH BACK AND GUI
+---------------------------------------------------------------
+
+If you get errors like below, just do:
+
+ make clean
+ make
+
+The second or the third time, the errors should disappear. It's probably due to
+some potential issues between FSF GCC and the libtool/ld Mac OS X / Darwin
+versions.
+
+Linking subproject x11 ...
+/usr/bin/ld: shared_obj/xdnd.o bad magic number (not a Mach-O file)
+collect2: ld returned 1 exit status
+make[3]: *** [shared_obj/subproject.o] Error 1
+make[2]: *** [x11.all.subproject.variables] Error 2
+make[1]: *** [libgnustep-back.all.bundle.variables] Error 2
+make: *** [internal-all] Error 2
+
+
+PRELIMINAIRES
+-------------
+
+For all targets, get the following software:
+
+libxml2 (Optional, highly recommended, already in Mac OS X 10.3 / Darwin 7)
+libtiff (Required)
+libjpeg (Optional, highly recommended)
+libpng (Optional, highly recommended)
+
+libffi (Required, only contained in the gcc distributions and pyobjc)
+ffcall (On Darwin x86 - use instead of libffi)
+
+Xfree86 (Required, already in Mac OS X 10.3/Darwin 7, to know more read below,
+needed for 10.2 / Darwin 6 and earlier)
+
+libart2 (Optional, but required in the case you choose to use the art backend)
+freetype2 (Optional, but required in the case you choose to use the art backend)
+
+dlcompat (Required, to be able to load bundles, included with Fink installation)
+
+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. However, since Mac OS X support is
+currently evolving, we recommend that you get the latest snapshot or code from
+CVS.
+
+You need these gnustep packages:
+
+GNUstep-make
+GNUstep-base
+GNUstep-gui
+GNUstep-back
+
+Targets
+-------
+
+For GNUstep, there are several combinations of Objective-C runtime, Foundation
+library and Application Kit library possible, called library combos. The usual
+notation is:
+
+objcruntime-foundation-applicationkit
+
+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
+apple-apple-gnu # Apple Foundation with gnustep-gui on the top. Only of
+ # academically interest.
+apple-apple-apple # Cocoa with GNUstep additions. For porting GNUstep apps to
+ # Cocoa.
+
+All gnu-*-apple library combos are purely theoretical and only available to the
+folks inside Apple since no mortal person ever saw the Cocoa source code. ;-)
+
+You can use either the Apple compiler or compile your own FSF compiler. This
+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:
+
+Apple GCC, apple-apple-apple
+
+GNUstep on Darwin x86
+---------------------
+
+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.
+
+ffcall (ftp://ftp.gnustep.org/pub/gnustep/libs or
+ftp://ftp.santafe.edu/pub/gnu/ffcall-1.9.tar.gz)
+
+See instructions below for building ffcall.
+
+GNUstep on Darwin PowerPC
+-------------------------
+
+Haven't been able to get Apple GCC on Mac OS X 10.2 / Darwin 6 to compile
+GNUstep-base. The compiler crashes with various errors. You need the FSF GCC
+compiler here. You need at least version 3.3.2. (While version 3.3.2 works, it
+will not install libffi)
+
+Building FSF-GCC
+----------------
+
+Darwin x86:
+
+FSF GCC is difficult to compile here. The only way I could do it was like this:
+
+ln -s /usr/bin/c++filt /usr/bin/c++filt3 # missing on Darwin 7.0.1 x86
+ # not necessary on OpenDarwin 7.2.1
+
+and then configure gcc with:
+
+mkdir build # create a sibling to the
+ # toplevel source dir
+cd build
+<dir>/gcc-X.X.X/configure --enable-languages=c,objc # don't try to build c++
+make bootstrap
+make install
+cd /usr/local/lib
+ln -s libobjc.a libobjc.dylib # So the linker sees us
+
+(Replace X.X.X with the actual distribution you have).
+
+gcc on Darwin doesn't appear to support threads.
+
+Darwin PowerPC:
+
+configure and build as follows (tested using gcc-3.3.2 on Mac OS X 10.2 and
+10.3):
+
+mkdir build
+cd build
+<dir>/gcc-x.x.x/configure [ --prefix=<gcc install dir>] # by default gcc
+ # installs in /usr/local
+make bootstrap
+make install
+cd <gcc install dir>/lib
+ln -s libobjc.a libobjc.dylib # So the linker sees us
+
+Setting up the GNUstep make environment
+---------------------------------------
+
+In the GNUstep-make (core/make) package, do
+
+with bourne shell like bash (Mac OS X 10.3):
+
+echo 'export CC=<gcc install dir>/bin/gcc' >> ~/.profile
+
+with c shell like tcsh (Mac OS X 10.2):
+
+echo 'setenv CC <gcc install dir>/bin/gcc' >> ~/.tcshrc
+
+else use [CC='<gcc install dir>/bin/gcc'] option when running configure.
+
+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:
+
+./configure --with-library-combo=gnu-gnu-gnu --disable-flattened \
+--enable-multi-platform [--prefix=<GNUstep install dir>] \
+[CC='<gcc install dir>/bin/gcc']
+
+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 series snapshot (even if
+you are not compiling the compiler) and:
+
+mkdir libffi-build
+cd libffi-build
+<gcc-3.4 install dir>/libffi/configure [CC='<gcc install dir>/bin/gcc']
+make
+make install
+
+Note: the lastest 3.4 snapshot doesn't seem to have a working libffi on Mac OS X
+/ Darwin.
+
+Use PyObjC libffi from http://pyobjc.sourceforge.net, in the case GNUstep-base
+install doesn't work with the 3.4 snapshot.
+
+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
+
+Additional libraries
+--------------------
+
+Build and install and additional libraries listed above. You can also get them
+via Fink (http://fink.sourceforge.net) or DarwinPorts
+(http://darwinports.opendarwin.org/) and sometimes they are already present on
+Mac OS X.
+
+And to have the additional libraries taken in account by the Mac OS X / Darwin
+linker with bourne shell like bash (Mac OS X 10.3), here is an example with Fink
+obtained libraries:
+
+echo 'export DYLD_LIBRARY_PATH=<gcc install dir>/lib:/sw/lib:$DYLD_LIBRARY_PATH'
+>> ~/.profile
+
+with c shell like tcsh (Mac OS X 10.2):
+
+echo 'setenv DYLD_LIBRARY_PATH <gcc install dir>/lib:/sw/lib:$DYLD_LIBRARY_PATH'
+>> ~/.tcshrc
+
+Source GNUstep.sh
+-----------------
+
+If you are using bourne shell like bash, type:
+
+. <GNUstep install dir>/System/Makefiles/GNUstep.sh
+
+If you are using c shell like tcsh, type:
+
+source <GNUstep install dir>/System/Makefiles/GNUstep.csh
+
+Building and installing GNUstep-base
+------------------------------------
+
+Go to GNUstep-base (or from CVS into the core/base directory)
+
+If you are using the default gcc (Apple GCC) type:
+
+ make install
+
+This should automatically run the configure script for you, build the base
+library and some tools, and install the whole lot (along with some system
+resources).
+
+Otherwise (if you installed FSF GCC) type:
+
+ ./configure [CC='<gcc install dir>/bin/gcc']
+
+or if you decided not to build libffi or ffcall:
+
+ ./configure --disable-do [CC='<gcc install dir>/bin/gcc']
+
+followed by
+
+ make
+ make install
+
+On the apple-apple-apple target, it will only build the GNUstep additions
+library that adds extra stuff to Foundation. If you are using the
+apple-apple-apple target, there currently is no reason to go on and compile
+GNUstep-gui.
+
+Building and installing GNUstep-gui
+-----------------------------------
+
+Go to GNUstep-gui (or from CVS into the core/gui directory), and type
+
+If you are using the Apple GCC or the FSF GCC type:
+
+ ./configure --disable-gsnd [CC='<gcc install dir>/bin/gcc']
+
+followed by
+
+ make
+ make install
+
+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 lib
+dir> --with-jpeg-include=<jpeg include dir> to have the libjpeg detected.
+
+Example with Fink:
+
+./configure --disable-gsnd --with-jpeg-library=/sw/lib
+--with-jpeg-include=/sw/include
+
+
+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.
+
+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
+the X server, take a look at http://www.xdarwin.org
+
+In the back directory, type:
+
+ ./configure [CC='<gcc install dir>/bin/gcc']
+ make
+ make install
+
+In the case, you choose to use the art backend, you will need to have the
+freetype2 and libart2 libraries installed, first be sure to have libart2 in your
+path, for example, with Fink installation type:
+
+ export DYLD_LIBRARY_PATH=/sw/lib:$DYLD_LIBRARY_PATH
+
+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
+an application) [see the above "Additional Libraries" section].
+
+The backend architecture which GNUstep-gui is built upon, has been written to be
+used within X Windows, then you need to start up an X Server (like Apple X11) to
+run the GNUstep-gui applications.
+
+Warning ! With the art backend, before to launch applications based on
+GNUstep-gui, in the shell, don't forget to edit the defaults (no need it to redo
+it later) :
+
+ defaults write NSGlobalDomain XWindowBufferUseXShm NO
+
+because Apple X11 doesn't support well shared memory for buffering (wich libart2
+uses by default).
+
+More informations on the art backend
+------------------------------------
+
+To have a working art backend... You will also need to download and install
+fonts, as it uses a specific font format. Use for example the file
+http://w1.423.telia.com/~u42308495/alex/backart/ArtResources-0.1.2.tar.bz2 and
+put the .nfont directories somewhere in $(GNUSTEP_SYSTEM_ROOT)/Library/Fonts
+
+Other fonts are available on http://www.knuddel.org/Downloads/Fonts/
+
+Window Maker
+------------
+
+Window Maker is the traditional window manager for GNUstep.
+
+In the case, you choose to use it, don't forget to execute wmaker.inst else
+Window Maker will crash with signal 10.
+
+Example with Fink, do:
+/sw/bin/wmaker.inst
+
+GNUstep daemons
+---------------
+
+Refer to GNUstep-HOWTO to know how to launch GNUstep daemons.
+
+Note: If you try to start GNUstep daemons by hand with 'sudo opentool dameon',
+it won't work, because when you become root on Mac OS X / Darwin with sudo or
+su, DYLD_LIBRARY_PATH environment variable is erased, then to start them in the
+shell, do:
+
+sudo opentool gdomap (gdomap doesn't rely on the GNUstep libraries or other
+special librairies)
+su root
+
+then with bourne shell like bash (Mac OS X 10.3):
+
+. /GNUSTEP_SYSTEM_ROOT/Library/Makesfiles/GNUstep.sh
+
+or with c shell like tcsh (Mac OS X 10.2):
+
+source /GNUSTEP_SYSTEM_ROOT/Library/Makesfiles/GNUstep.csh
+
+and just do:
+
+opentool gdnc
+opentool gpbs
+
+---
+
+That's all.
--- /dev/null
+Date: 09-Jan-2003 (tested under Windows XP)
+Update: 23-Feb-2003 (also tested under Windows 2000)
+Author: Richard Frith-Macdonald <rfm@gnu.org>
+
+PURPOSE
+-------
+
+This document is intended to provide a step by step instruction on how
+to get the GNUstep base library into a usable state on a recent Windows
+operating system (XP, 2000, and probably NT).
+
+MinGW is a collection of header files and import libraries that allow
+one to use GCC and produce native Windows32 programs that do not rely
+on any 3rd-party DLLs. GNUstep has only partially been ported to MinGW
+so expect some problems when trying to compile. Also, there are still
+subtle problems with running GNU tools on Windows, so any problems you
+may encounter may just as easly have to do with the compilation tools
+you are using as with GNUstep.
+
+MSYS is a very much cut down version of the Cygwin environment ...
+providing a minimal set of tools needed to build programs using MingGW.
+If you wish to build for MinGW by cross-compiling from a Cygwin
+environment, please read README.cygwin instead.
+
+The base library is only recently ported to run on MinGW. While most
+stuff works, including networking/distributed objects, there are probably
+bits that have been overlooked or are untested as yet. The only *known*
+areas of code not yet ported are the zlib, SSL and XML extensions.
+
+The gui library is only partially ported to run under MinGW ... you can
+play with it, but expect to have to work on porting the library rather
+than developing user applications.
+
+
+PRELIMINARIES
+-------------
+
+Before we start, we need to get some preliminary Windows software -
+a tool for fetching source code via CVS.
+
+If you don't want to use Windows tools for this, you can get the
+latest cygwin distribution and use the cvs client in that. The following is
+for people who don't want to download all that cygwin stuff.
+
+To get stuff from CVS you can download and install WinCVS ... which
+you can find at http://sourceforge.net/projects/cvsgui You will need
+to be a system administrator on your machine to install this software.
+You should be able to use it without changing/setting any special
+configuration options. The one thing to remember is that the checkbox
+to select whether to use UNIX line terminators instead of Windows/DOS
+line terminators should be set to the unix option.
+
+
+Installing and setting up MINGW and MSYS
+----------------------------------------
+
+Next, download msys-1.08 or later from
+http://sourceforge.net/projects/mingw
+and install it.
+
+Next, download MinGW-2.0.0-3 or later from
+http://sourceforge.net/projects/mingw
+and install it inside the msys installation
+(usually in c:/msys/1.0/mingw)
+
+If you didn't install mingw in the standard location within the msys
+installation, then after installing mingw, create a file called fstab in
+c:/msys/<version-number>/etc, or wherever you installed msys, and make
+sure it contains the line
+c:/mingw /mingw
+which also should be changed accordingly if you installed MinGW
+somewhere else.
+
+You may need to edit /mingw/include/winsock2.h to change the size of the
+sa_data field in the sockaddr structure from 14 to 22 ... this is because
+newer versions of Windows have changed the layout of this structure.
+This modification is needed to be able to correctly determine the
+network interface details for your machine.
+
+It's a good idea to remove the libobjc.a and include/objc header that come
+with gcc (gcc -v for location) so that they are not accidentally found
+instead of the libobjc DLL that you will compile below.
+
+Now you can open a window containg a shell by choosing MSYS from the
+start menu.
+
+At this point you may want to set the HOMEDRIVE and HOMEPATH environment
+variables to point to the home directory you wish to work from (though
+the defaults may be ok for you).
+NB. This home directory for building software must *not* contain spaces.
+(aside - MSYS uses the UNIX-style HOME environment variable, but Windows
+programs, including GNUstep programs under Windows, use the HOMEDRIVE and
+HOMEPATH environment variables to build a windows-style path for the home
+directory. eg. if HOMEDRIVE is C: and HOMEPATH is \MyHome then the path
+to the home directory is C:\MyHome).
+
+From this window we can now start building things.
+
+IMPORTANT NOTE
+The msys make program sometimes crashes and core-dumps (usually while
+installing software). If this happens, repeat the make command a few
+times until it works ... the crash in make is not reliably repeatable
+(which is probably why it has not been tracked down and fixed yet),
+which means that a retry will usually work.
+
+
+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. However, since MinGW support
+is currently evolving, we recommend that you get the latest snapshot
+or code from CVS.
+
+You need things in the following order:
+
+GNUstep-make (release, snapshot, or cvs core module)
+libffcall (http://ftp.gnustep.org/pub/gnustep/lib)
+GNUstep-objc (release, snapshot, or cvs dev-apps module)
+GNUstep-base (snapshot, or cvs core module)
+
+For gui ... GNUstep-back (snapshot, or cvs core module)
+
+NB. Ensure that the GNUstep code you are attempting to use has a date
+later than the date at the top of this document! The instructions do
+not apply to earlier code.
+
+
+Setting up the GNUstep make environment
+---------------------------------------
+
+In the GNUstep-make (core/make) package, do './configure
+--prefix=/C/GNUstep' You can of course use a different prefix to
+install the GNUstep system in an alternative location.
+The leading '/C' is the MSYS way of specifying that the 'C' drive is
+to be used. Older versions of the tools required a windows style
+path (eg. C:/GNUstep), but using the MSYS style path is important as
+it will avoid problems later!
+
+Note: There was a comment that '--prefix=/C/GNUstep' did not work
+with a bash shell as it got converted to C:\GNUstep (which is bad because
+the shell treats a \G as something entirely different. If you have this
+problem, try '--prefix=C:/GNUstep' (It's probably better to use the
+native Msys shell though).
+
+Now you can type 'make install' to build and install the make package.
+
+Once this is done, type '. GNUstep.sh' to set up your GNUstep
+environment. The environment for building software is now completely
+set up, but for ease of use later, you might set up a script to be
+used to set up any new shell windows you create. Something like this
+in your ~/.profile would do nicely:
+
+export HOMEDRIVE=C:
+export HOMEPATH=/home/myname
+export HOME=/C/home/myname
+export GNUSTEP_SYSTEM_ROOT=/C/GNUstep/System
+. $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh
+
+NOTE: Sometimes the HOME variable may already be set by Windows to be
+%USERPROFILE% (which is the Windows variable that contains the path of
+your home folder). MSYS has problems with that as it doesn't recognise
+that %USERPROFILE% is a variable name. Be sure to check that if you run
+into errors.
+
+ MinGW comes with a buggy 'ln -s' and Makefiles are no longer
+ installed into $GNUSTEP_SYSTEM_ROOT/Makefiles so there is
+ no compatibility symlink to $GNUSTEP_SYSTEM_ROOT/Library/Makefiles
+
+
+
+Building and installing libobjc
+-------------------------------
+
+Despite the statement in the GNUstep-HOWTO, even if you have a 3.x
+compiler, you still need to install gnustep-objc as it properly
+exports symbols for DLLs.
+
+Go to gnustep-objc (or from CVS, into dev-libs/libobjc), and type
+
+ make install
+
+This should build and install the ObjectiveC runtime and headers for you.
+
+
+
+Building and installing FFCALL
+------------------------------
+
+The next priority is to get the ffcall library built and installed.
+You should get the latest ffcall archive from
+http://ftp.gnustep.org/pub/gnustep/libs. Currently this is
+ffcall-1.8d.tar.gz
+
+Ignore any other instructions for building this ...
+
+First, in the shell window in which you have set up your GNUstep
+environment, type
+
+./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
+
+
+
+Additional libraries
+--------------------
+
+There are some optional (but very strongly recommended) libraries you
+can install to make GNUstep work better. For full multilingual support
+you need libiconv, and for gui applications you need libtiff, libjpeg,
+and zlib.
+
+libiconv
+ Needed for multilingual character support (unicode etc)
+
+ Get the binary package from
+ http://www.zlatkovic.com/projects/libxml/index.html
+ Unpack this and
+ cp include/iconv.h $GNUSTEP_SYSTEM_ROOT/Library/Headers
+ cp lib/iconv.lib $GNUSTEP_SYSTEM_ROOT/Library/Libraries/libiconv.a
+ cp lib/iconv.dll $GNUSTEP_SYSTEM_ROOT/Tools/iconv.dll
+
+libtiff, libjpeg, and zlib
+ Needed for image handling support in the GNUstep gui libary
+ (not required for GNUstep-base, though zlib can be used by the base library).
+
+ Get the binary packages from -
+ http://prdownloads.sourceforge.net/gnuwin32/tiff-3.5.7-lib.zip
+ http://prdownloads.sourceforge.net/gnuwin32/tiff-3.5.7-bin.zip
+ http://prdownloads.sourceforge.net/gnuwin32/libjpeg-6b-lib.zip
+ http://prdownloads.sourceforge.net/gnuwin32/libjpeg-6b-bin.zip
+ http://prdownloads.sourceforge.net/gnuwin32/zlib-1.1.4-lib.zip
+ http://prdownloads.sourceforge.net/gnuwin32/zlib-1.1.4-bin.zip
+
+ Unpack and install
+ the header (.h) files in $GNUSTEP_SYSTEM_ROOT/Library/Headers
+ the library (.lib) files in $GNUSTEP_SYSTEM_ROOT/Library/Libraries
+ the dll files in $GNUSTEP_SYSTEM_ROOT/Tools
+
+ Be sure to rename the .lib files to .a!
+
+libxml2
+ Needed for XML parsing support, for MacOS-X compatible
+ property lists, and for documentation processing.
+ NB. at the time of writing, XML support in GNUstep base has *not*
+ been ported to Windows - but when it is, you will need this package.
+
+ Get the binary package from
+ http://www.zlatkovic.com/projects/libxml/binaries.html
+ Unpack this and
+ cd include
+ tar -cf - libxml | (cd $GNUSTEP_SYSTEM_ROOT/Library/Headers; tar -xvf -)
+ cd ../lib
+ cp libxml2.lib $GNUSTEP_SYSTEM_ROOT/Library/Libraries/libxml2.a
+ cp libxml2.dll $GNUSTEP_SYSTEM_ROOT/Tools
+
+The following are libraries which are not currently used, but which will
+be required at some point in the future -
+
+openssl
+ Needed for the SSL bundle, providing HTTPS support for NSURL.
+ NB. at the time of writing, SSL support in GNUstep base has *not*
+ been ported to Windows - but when it is, you will need this package.
+ Get the binary package from
+ http://www.kix.or.jp/~fujino/openssl
+ Unpack this and
+ tar -cf - openssl | (cd $GNUSTEP_SYSTEM_ROOT/Library/Headers; tar -xvf -)
+ cp *.lib $GNUSTEP_SYSTEM_ROOT/Library/Libraries
+ cp *.dll *.exe $GNUSTEP_SYSTEM_ROOT/Tools
+
+
+
+Building and installing GNUstep-base
+------------------------------------
+
+Go to gnustep-base (or from CVS into the core/base directory), and type
+
+ make install
+
+This should automatically run the configure script for you, build the
+base library and some tools, and install the whole lot (along with some
+system resources).
+
+
+
+Building and installing GNUstep-gui
+-----------------------------------
+
+To build the gui, you need to have libtiff installed ...
+
+Go to gnustep-gui (or from CVS into the core/gui directory), and type
+
+ make install
+
+
+
+
+Building and installing GNUstep-back
+------------------------------------
+
+This software is PRE-ALPHA ... it is present in CVS for people who wish to
+help porting the GNUstep backend to Windows!
+
+In the back directory, type
+
+ make install
+
+
+
+
+
+Troubleshooting
+---------------
+
+Issues with updating:
+Before attempting to update your GNUstep installation, be sure to stop/kill
+all running GNUstep programs or services (i.e. gdomap, gdnc, gpbs) since
+Windows cannot overwrite files that are currently in use.
+
+
+
+Good Sites for Pre-Compiled Binaries
+------------------------------------
+
+Many libraries, etc from:
+
+<http://gnuwin32.sf.net> (libtiff, libxml2)
+
+MingW guile from
+
+<http://www.textsure.net/~ela/devel.html>.
+
+also need guile from
+
+<http://sourceforge.net/project/showfiles.php?group_id=7382>
+
+for guile-config file.
--- /dev/null
+
+
+Cross Compiling GNUstep for MinGW from Cygwin
+=============================================
+
+If you wish to build on a native MinGW system (recommended),
+please read README.MinGW instead.
+
+MinGW is a collection of header files and import libraries that allow
+one to use GCC and produce native Windows32 programs that do not rely
+on any 3rd-party DLLs. GNUstep has only partially been ported to MinGW
+so expect some problems when trying to compile. Also, there are still
+subtle problems with running GNU tools on Windows, so any problems you
+may encounter may just as easly have to do with the compilation tools
+you are using as with GNUstep.
+
+The base library is not completely ported to run on MinGW yet, but most
+stuff works, including networking/distributed objects.
+Probably background file handle operations (other than networking) and
+advanced parts of NSTask code do not currently work.
+
+Note for compiling with shared libraries (DLLs), it's a good idea to
+remove the libobjc.a that comes with gcc (gcc -v for location) so that
+it isn't accidentally found instead of the libobjc DLL that you will
+compile below. Also note that, despite the statement in the GNUstep-HOWTO,
+even if you have 3.x, you still need to install gnustep-objc as it properly
+exports symbols for DLLs.
+
+Note also that the //c construct for specifying paths with drives has
+been depreciated. You'll need to use /cygwin/path or C: style paths now.
+
+MinGW on Cygwin
+---------------
+
+Not recommended. This is a cross compilation solution. Using native
+mingw/msys is simpler and less error prone.
+
+Uses the Cygwin tools to help out with the configuration and compilation of
+the libraries. It's always good to get the very latest version of
+Cygwin and MinGW. These instructions were performed
+with Cygwin DLL 1.3.9-1 and MingW gcc 2.95.3-6. If you have more
+experience with MinGW than me, please help improve these instructions!
+
+I assume you have installed Cygwin and MinGW, and dowloaded and
+unpacked the GNUstep packages:
+
+ffcall
+gnustep-make
+gnustep-objc
+gnustep-base
+
+See the GNUstep-HOWTO file for more information on where to get
+various files. You need to build and install each package separately,
+as described below.
+
+1. First, start up a Cygwin BASH shell and make sure the MinGW tools
+are in your path:
+
+ export PATH=/c/mingw/bin:$PATH
+
+(Put in whatever path you have for the mingw tools).
+
+NB. Using MinGW-1.1 the header file winsock2.h needed to be slightly
+updated for 2000 or XP. The size of the sa_data field in struct sockaddr
+had to be increased from 14 to 22. If you don't do this before building
+the gnustep base library, the gdomap tool will not correctly determine the
+internet addresses of your machine.
+
+2. Configure and compile gnustep-make.
+The default location for GNUstep on Windows systems in C:/GNUstep.
+To use another location you can use the --prefix argument to configure.
+First, go to the 'gnustep-make' package and configure:
+
+ cd gnustep-make
+ ./configure --target=i386-mingw32
+
+2a. The configure script may not have recognised that you are running in
+a cygwin environment ... so you may need to edit 'fixpath.sh' to set the
+CYGWIN variable to 'yes' before you build and install the make package.
+
+3. Now build the gnustep-make package. Occationally, the make that comes
+with MinGW doesn't like the way GNUstep makefiles are setup (or perhaps
+it's that MingW make doesn't work with bash), so you can try
+using Cygwin's make instead (/usr/bin/make instead of just make).
+
+ make target=i386-mingw32
+ make target=i386-mingw32 install
+
+4. Now source the GNUstep.sh file so the rest of the packages will
+compile correctly:
+
+ . C:/GNUstep/System/Library/Makefiles/GNUstep.sh
+
+Also put this command in your shell startup script. Be sure to adjust
+this path to match your real GNUstep root directory if you changed it
+when configuring gnustep-make.
+
+NOTE for WIN98 users: You should also define the environment variables
+HOMEDRIVE and HOMEPATH, since these aren't defined normally.
+
+5. Compile and install the ffcall package (Version 1.8b). It's
+simply a C library so it requires no special tools other than the compiler.
+
+LD=ld RANLIB=touch ./configure --target=i386-mingw32 \
+ --prefix=`$GNUSTEP_MAKEFILES/fixpath.sh -u $GNUSTEP_SYSTEM_ROOT`
+
+which installs the libraries in the GNUstep directory structure (There is
+a script in ffcall-1.8d and higher that automatically configures ffcall
+and installs, called compile-mingw). Then
+
+ make # NOTE: Might need to be 'make LN_S=cp'
+ make install
+
+6. Now you can compile the Objective-C runtime DLL, gnustep-objc (unless
+you already have one installed):
+
+ cd gnustep-objc
+ make target=i386-mingw32 shared=yes
+ make target=i386-mingw32 shared=yes install
+
+Make sure to remove libobjc.a that comes with gcc, otherwise it will find that
+one instead of the one we want. The libobjc library that comes with gcc-3.x
+MAY work if you add some extra lines to the .def file, but I won't go into
+that here. It's good just to use gnustep-objc.
+
+7. Now we can configure and build the gnustep-base library.
+
+ cd gnustep-base
+ ./configure --target=i386-mingw32
+ make target=i386-mingw32 shared=yes
+ make target=i386-mingw32 shared=yes install
+
+If you get tired of typing "target=i386-mingw32" all the time, then before
+you exec the GNUstep.sh script, just set the GNUSTEP_HOST:
+
+ export GNUSTEP_HOST=i586-pc-mingw32
+ . $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh
+
+Problems?
+---------
+
+[1] It's really important that all the libraries you link with GNUstep be
+shared libraries. Even static libraries based on C (e.g. libtiff) will
+prevent Objective-C modules from being loaded in Objective-C libraries.
+
+[2] On Windows XP, at least, there are sometimes spaces in the path to the
+user directory. The make program cannot deal with this.
+Probably the best solution is to add a .GNUsteprc file in your home
+directory with a line of the form -
+GNUSTEP_USER_ROOT=/home/myname
+setting your personal GNUstep root directory to be '/home/myname' ...
+some path which does not contain spaces.
+
+[3] Some users report needing to make gnustep libs like this (perhaps
+when using Cygwin's gcc only):
+
+export CC="gcc"
+export CFLAGS="-mno-cygwin"
+export CPPFLAGS="-mno-cygwin"
+find . -name "*.lnk" -print -exec rm {} \;
+make target=i386-mingw32 shared=yes LN_S="ln -s" \
+ SHARED_LD_PREFLAGS="--driver-flags=\"-mno-cygwin -mdll -Wl,--enable-stdcall-fixup\" --target=i386-mingw32 --export-all-symbols"
+
+[4] Compiling iconv (1.8):
+
+(the part with the most problems - maybe you download it precompiled
+but if you want to compile it - here is the guide) Make sure you are
+compiling from a mapped drive (eg. d:) not from an UNC Path!!!!
+
+./configure --target=i386-mingw32 --host=i386-mingw32 (ignore warnings here)
+edit libtool and libcharset/libtool so that the CC variable reads
+"gcc -mno-cygwin -mdll"
+make
+(After a while make breaks with an error in linking)
+find . -name "*.lnk" -print -exec rm {} \;
+make
+(make breaks now in the src folder, but the DLL is already buildt,
+that is what we need)
+cp include/iconv.h $GNUSTEP_SYSTEM_ROOT/Headers
+cp lib/.libs/libiconv-2.dll $GNUSTEP_SYSTEM_ROOT/Tools/libiconv-2.dll
+cp lib/.libs/libiconv.dll.a $GNUSTEP_SYSTEM_ROOT/Libraries/libiconv.a
+
+Good Sites for Pre-Compiled Binaries
+------------------------------------
+
+Many libraries, etc from:
+
+<http://sourceforge.net/project/showfiles.php?group_id=7382>
+<http://penguin.at0.net/~fredo/files/old/> (for libxml2, more?)
+<http://sourceforge.net/project/showfiles.php?group_id=23617> (libtiff)
+
+MingW guile from
+
+<http://www.textsure.net/~ela/devel.html>.
+
+also need guile from
+
+<http://sourceforge.net/project/showfiles.php?group_id=7382>
+
+for guile-config file.
+
+Author
+------
+
+Adam Fedor <fedor@gnu.org>
--- /dev/null
+Installing GNUstep on NetBSD
+
+(C) 2001 JNQT <jnqt@fbe.freeserve.ne.jp>
+
+Last update: 24 November 2001
+
+I have installed GNUstep on NetBSD/i386 1.5.2.
+I will not be responsible for any damage implicitly or explicitly
+caused by this information. Use at your own risk.
+Please submit any comments or suggestions to jnqt@fbe.freeserve.ne.jp.
+For more information about installation, see the `GNUstep-HOWTO' file
+located in the gnustep-make package.
+
+Good Luck! :-)
+
+
+//
+// Install GNUstep
+//
+
+
+su root
+
+
+[Add `/etc/ld.so.conf']
+/usr/local/lib
+/usr/X11R6/lib
+
+
+ldconfig
+
+
+[Use the NetBSD packages collection...Install `/usr/local']
+gcc-2.95.2
+gmake-3.79.1
+libiconv-1.6.1
+libxml2-2.4.6
+tiff-3.5.5
+
+
+rehash
+
+
+alias gmake gmake CC=/usr/local/gcc-2.95.2/bin/cc CPP=/usr/local/gcc-2.95.2/bin/cpp
+
+
+tar zxvf ffcall-1.8b.tar.gz
+cd ffcall-1.8b
+./configure --prefix=/usr
+gmake
+gmake check
+gmake install
+
+
+tar zxvf gnustep-make-1.0.0.tar.gz
+cd gnustep-make-1.0.0
+./configure --prefix=/usr/local/GNUstep
+gmake
+gmake install
+gmake distclean
+
+
+source /usr/local/GNUstep/System/Library/Makefiles/GNUstep.csh
+
+
+tar zxvf gnustep-objc-1.0.1.tar.gz
+cd gnustep-objc-1.0.1
+
+[Edit `./GNUmakefile' Line:39]
+ THREADING = posix -> THREADING = single
+
+gmake
+gmake install
+
+
+cd gnustep-make-1.0.0
+./configure
+gmake
+gmake install
+
+
+tar zxvf gnustep-base-1.0.0.tar.gz
+cd gnustep-base-1.0.0
+
+ln -s /usr/local/bin/xml2-config /usr/local/bin/xml-config
+./configure --with-xml-prefix=/usr/local --with-libiconv-library=/usr/local/lib
+
+gmake
+
+[Ahhh...Error...and Edit `./Source/dynamic-load.h' Line:94]
+ sym = dlsym(RTLD_NEXT, symbol); -> sym = dlsym(handle, symbol);
+
+gmake
+gmake install
+
+
+tar zxvf gnustep-gui-0.6.8.tar.gz
+cd gnustep-gui-0.6.8
+./configure
+gmake
+gmake install
+
+
+tar zxvf gnustep-xgps-0.6.8.tar.gz
+cd gnustep-xgps-0.6.8
+./configure
+gmake
+gmake install
+
+
+mkdir ~/GNUstep
+
+
+[Add `/etc/rc.local']
+if [ -f /usr/local/GNUstep/System/Tools/ix86/netbsdelf1.5.2/gdomap ]; then
+ /usr/local/GNUstep/System/Tools/ix86/netbsdelf1.5.2/gdomap
+fi
+
+
+[Add `~/.cshrc']
+setenv GNUSTEP_TZ Japan
+source /usr/local/GNUstep/System/Library/Makefiles/GNUstep.csh
+if (`gdomap -L GDNCServer | grep -c Found` == '0') then
+ echo 'Starting GNUstep services.'
+ gdnc
+ gpbs
+endif
+alias gmake gmake CC=/usr/local/gcc-2.95.2/bin/cc CPP=/usr/local/gcc-2.95.2/bin/cpp
+
+
+reboot
+
+
+//
+// e.g. Install CurrencyConverter(in the GNUstep examples)
+//
+
+
+su root
+
+
+tar zxvf gustep-examples-0.9.2.tar.gz
+cd gustep-examples-0.9.2/gui/CurrencyConverter
+gmake
+gmake install
+
+
+startx
+
+
+openapp CurrencyConverter.app
+
+
+(http://hp.vector.co.jp/authors/VA019253/step/inst.html)
+
+
+=========================================================================
+Older, partially obsolete information Below:
+=========================================================================
+
+
+This information is provided by Turbocat's Development.
+We do not make any guarantees as to the currency, accuracy,
+or quality of information stored here. Use at your own risk.
+Please submit any comments to info@turbocat.de or the GNUstep maintainers.
+
+---
+
+Hi folks,
+
+we have installed GS on NetBSD 1.5 (intel) and this is what we did:
+
+pkg_add means, we have the pkg from the NetBSD package collection.
+
+1.) gnumake: pkg_add gmake-3.79.1.tgz
+2.) libiconv: pkg_add libiconv-1.5.tgz
+3.) libxml:
+ ./configure
+
+in Makefile: Add the following lines:
+
+INLCUDES = -I. -I/usr/local/include -I/usr/pkg/include
+LDFLAGS = -L/usr/pkg/lib -liconv
+
+
+ make
+ su
+ make install
+
+4.) ffcall-1.6b: ./configure
+ make
+ make check
+ su
+ make install
+
+5.) pth-1.3.7: ./configure --enable-pthread --enable-syscall-soft
+ make
+ make test
+ su
+ make install
+ [for removing 'make uninstall']
+
+5.1) cd /usr/lib
+ ar -dv libobjc_p.a NXConstStr.po
+ ar -dv libobjc_pic.a NXConstStr.so
+ ar -dv libobjc.a NXConstStr.o
+ rm libobjc.so.0.0
+
+6.) core/make: #. Version <-- disable Version
+ ./configure --prefix=/usr/GNUstep
+ gmake
+ su
+ gmake install
+
+ File : /usr/GNUstep/System/Library/Makefiles/framework.make
+ change ine: with ... {if($$2 == "R") ...
+ in ... {if($$2 == "D") ...
+
+
+7.) core/base: source /usr/GNUstep/System/Library/Makefiles/GNustep.csh
+
+ ./configure --prefix=/usr/GNUstep
+
+ File: GSFormat.m include <wchar.h> <-- ADD
+ (unichar *)strerror(save_errno); <- REPLACED
+__strerror_r
+ File: NSCoder.m LINE 372: remove ";"
+ LINE 373, 374 :
+ return ((((GNU... + 0) * 100
+ + GNU.. + 0) * 100) + GNU... + 0;
+
+ File:dynamic-load.h Zeile 93: // sym = dlsym(RTLD_NEXT, symbol);
+ sym = dlsym(handle, symbol);
+
+ gmake
+ su
+ gmake install
+
+8.) core/gui: ./configure --prefix=/usr/GNUstep
+ --with-tiff-library=/usr/pkg/lib
+ --with-jpeg-library=/usr/pkg/lib
+
+File: Source/SharedX/XGBitmapImageRep.m // include <config.h> <-- uncomment
+ File: Source/XGBitmap.m // include <config.h> <-- uncomment
+
+touch Sources/config.h
+
+setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:/usr/pkg/lib"
+
+ gmake ADDITIONAL_INCLUDE_DIRS ="-I/usr/pkg/include
+ -I../Headers"
+ LDFLAGS="-L/usr/pkg/lib -ltiff -ljpeg"
+
+ su
+ gmake install
+
+9.) core/xgps: ./configure --prefix=/usr/GNUstep
+ --with-tiff-library=/usr/pkg/lib
+ --with-jpeg-library=/usr/pkg/lib
+
+ setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:/usr/X11R6/lib"
+
+ gmake ADDITIONAL_INCLUDE_DIRS="-I/usr/pkg/include -I../Headers"
+ LDFLAGS="-L/usr/pkg/lib -L/usr/X11R6/lib
+ -ltiff -lXmu -lXt"
+
+ su
+ gmake install
+
+9.1) extensions: ./configure --prefix=/usr/GNUstep
+ gmake
+ su
+ gmake install
+
+10.) Prefs:
+/usr/GNUstep/System/Tools/defaults write NSGlobalDomain "Local
+Time Zone" "Europe/Berlin"
+
+
+10.1) /etc/rc.local:
+
+ GNUSTEP_SYSTEM_ROOT=/usr/GNUstep
+ if [ -f /usr/GNUstep/System/Tools/ix86/netbsdelf1.5/gdomap ]; then
+ /usr/GNUstep/System/Tools/ix86/netbsdelf1.5/gdomap
+ fi
+
+10.2) .cshrc:
+
+ Add this at the end of .cshrc:
+
+ setenv LD_LIBRARY_PATH /usr/X11R6/lib:/usr/local/lib/usr/pkg/lib
+ source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
+ if ( `gdomap -L GDNCServer | grep -c Found` == '0' ) then
+ echo "Starting GNUstep services..."
+ gdnc
+ gpbs
+ endif
+
+
+11.) GWorkspace: gmake LDFLAGS="-L/usr/pkg/lib -ltiff -lXmu -lXt"
+
+ start: openapp GWorkspace.app
+
+
+12.) ProjectCenter: su
+ gmake install LDFLAGS="-L/usr/pkg/lib -ltiff -lXmu -lXt"
+
+ start: openapp ProjectCenter.app
+
+
+
--- /dev/null
+@chapter Announcement
+
+@include version.texi
+
+The GNUstep Makefile Package version @value{GNUSTEP-MAKE-VERSION} is now available.
+
+@section What is the GNUstep makefile package?
+
+The makefile package is a simple, powerful and extensible way to
+write makefiles for a GNUstep-based project. It allows the user to
+write a project without having to deal with the complex issues
+associated with configuration, building, installation, and packaging.
+It also allows the user to easily create cross-compiled binaries.
+
+@set ANNOUNCE-ONLY
+@include news.texi
+@clear ANNOUNCE-ONLY
+
+@section Obtaining gnustep-make
+
+You can get the gstep-make-@value{GNUSTEP-MAKE-VERSION}.tar.gz
+distribution file at @url{ftp://ftp.gnustep.org/pub/gnustep/core}
+
+Please log bug reports on the GNUstep project page
+@url{http://savannah.gnu.org/bugs/?group=gnustep} or send bug
+reports to @email{bug-gnustep@@gnu.org}.
--- /dev/null
+@bye
+\bye
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@c A FAQ for GNUstep
+
+@node Top, Compatibility, (dir), (dir)
+@chapter GNUstep Frequently Asked Questions with Answers
+
+Last updated @today{}.
+Please send corrections to @email{gnustep-maintainer@@gnu.org}. Also look
+at the user FAQ for more user oriented questions.
+
+@menu
+* Compatibility::
+* Compiling and Developing::
+* GNU Objective C Compiler and Runtime::
+* GNUstep Base Library::
+* GNUstep GUI Library::
+* GNUstep DisplayGhostScript Server::
+@end menu
+
+@c ****************************************************************
+@c Compiling
+@node Compatibility, Compiling and Developing, Top, Top
+@section Compatibility
+
+@menu
+* Is it easy to port OPENSTEP programs to GNUstep?::
+* How about porting between Cocoa and GNUstep?::
+* Tools for porting::
+* Can I transfer archived data from GNUstep to Cocoa?::
+* Does distributed objects work between GNUstep and Cocoa?::
+* Is there an Interface Builder for GNUstep?::
+* Can I use my original NIB files?::
+* Can one use the hybrid "Objective-C++"::
+* Is there a plan to support Java/YellowBox Bindings?::
+* What if I compile GNUstep under OPENSTEP/MacOS X?::
+* Is the Objective C API for GTK related?::
+* How about implementing parts of the Application Kit with GTK?::
+@end menu
+
+@node Is it easy to port OPENSTEP programs to GNUstep?, How about porting between Cocoa and GNUstep?, Compatibility, Compatibility
+@subsection Is it easy to port OPENSTEP programs to GNUstep?
+
+It is probably easy for simple programs. There are some portability
+tools to make this easier, or rewrite
+the Makefiles yourself. You will also have to translate the NIB files
+(if there are any) to GNUstep model files using the nib2gmodel program
+(from @url{ftp://ftp.gnustep.org/pub/gnustep/dev-apps}).
+
+@node How about porting between Cocoa and GNUstep?, Tools for porting, Is it easy to port OPENSTEP programs to GNUstep?, Compatibility
+@subsection How about porting between Cocoa and GNUstep?
+
+It's easier from GNUstep to Cocoa than Cocoa to GNUstep. Cocoa is
+constantly changing, much faster than GNUstep could hope to keep
+up. They have added extensions and new classes that aren't available in
+GNUstep yet. Plus there are some other issues. If you start with
+Cocoa:
+
+@itemize @bullet
+@item Be careful with Cocoa.h includes (Use #ifndef GNUSTEP, for instance)
+@item Do not use CoreFoundation
+@item Do not use Objective-C++
+@item Do not use Quicktime or other proprietary extension
+@item You need to convert .nib files (see next question @pxref{Tools for porting})
+@item Some unfinished classes include Drawers.
+@end itemize
+
+@node Tools for porting, Can I transfer archived data from GNUstep to Cocoa?, How about porting between Cocoa and GNUstep?, Compatibility
+@subsection Tools for porting
+
+While the programming interface should be almost transparent between
+systems (expect for the unimplemented parts, of course), there are a
+variety of other files and tools that are necessary for porting
+programs.
+
+@table @samp
+@item ni2gmodel
+This program coverts nib files from any system, such as Cocoa or OPENSTEP to
+a gmodel format file. Gmodel can be read directly by GNUstep or you can
+convert this to a more GNUstep-native gorm format (using the Gorm interface
+modeller).
+
+@item Renaissance
+GNUstep Renaissance allows you to describe your user
+interfaces (that is, the windows in your application, and the buttons,
+boxes, textfields, etc in the windows) in simple and intuitive XML
+files, using an open, standard format describing the logic of the
+interface. It has a number of advantages over the proprietary nib format:
+portability, open standard, easy localization, themeability, and
+intelligent autolayout.
+
+@item OpenStep2GNUConverter and nfmake
+Two programs that allow you to convert PB files to GNUstep makefiles or
+compile a program on GNUstep directly from PB files. They probably work
+only for OPENSTEP systems and are a little out-of-date.
+
+@item StepTalk
+A portable scripting environment that lets your do scripting in almost
+any language you like.
+
+@end table
+
+@node Can I transfer archived data from GNUstep to Cocoa?, Does distributed objects work between GNUstep and Cocoa?, Tools for porting, Compatibility
+@subsection Can I transfer archived data from GNUstep to Cocoa?
+
+Apple's archiving format is proprietary and not documented, so this
+poses a problem for anyone wanting to implement compatibility with it.
+However, even if we reverse engineered the format, there are enough
+differences between the class and ivar layouts to make this sort of
+compatibility difficult. Not to mention the fact that we would
+constantly have to keep up with the changes Apple made. Also Apple's
+archiving format, as far as we know, would not be compatible between
+different machines because of endiness issues, although GNUstep doesn't
+have this problem.
+
+Your best bet is to implement your own archiving format that would work
+both with GNUstep and Cocoa. Fortunately, you don't have to start from
+scratch, since this has been essentially done for you in the nib2gmodel
+tool, which has an archiver that works both on GNUstep and Cocoa. It
+might be nice to split this off into a separate project to make it
+easier for other people to do the same thing.
+
+@node Does distributed objects work between GNUstep and Cocoa?, Is there an Interface Builder for GNUstep?, Can I transfer archived data from GNUstep to Cocoa?, Compatibility
+@subsection Does distributed objects work between GNUstep and Cocoa?
+
+See the answer to the previous question (on archive compatibility) for
+why this won't work either.
+
+@node Is there an Interface Builder for GNUstep?, Can I use my original NIB files?, Does distributed objects work between GNUstep and Cocoa?, Compatibility
+@subsection Is there an Interface Builder for GNUstep?
+
+There is an Interface Builder for GNUstep called Gorm. A lot of work
+has been put into it and it works very well. You can download it from
+the ftp site or via http. The Project Manager ProjectCenter is also
+available.
+
+@node Can I use my original NIB files?, Can one use the hybrid "Objective-C++", Is there an Interface Builder for GNUstep?, Compatibility
+@subsection Can I use my original NIB files?
+
+ No - NeXT/Apple never documented their nib format, so GNUstep supports
+both the 'gmodel' format (which stores information as text
+(property-lists) and can therefore be edited 'by hand') and binary
+archive format (which can be edited by Gorm). There IS a conversion
+tool called nib2gmodel that can be compiled under OPENSTEP to convert
+nib files to GNUstep gmodel files.
+
+@node Can one use the hybrid "Objective-C++", Is there a plan to support Java/YellowBox Bindings?, Can I use my original NIB files?, Compatibility
+@subsection Can one use the hybrid "Objective-C++"
+
+No. at present the GNU compiler (gcc) does not support
+"Objective-C++". Apple is interested in adding back their implementation
+to gcc and is slowly adding parts of it to the mainline gcc implementation.
+
+@node Is there a plan to support Java/YellowBox Bindings?, What if I compile GNUstep under OPENSTEP/MacOS X?, Can one use the hybrid "Objective-C++", Compatibility
+@subsection Is there a plan to support the Java/YellowBox Bindings?
+
+Yes. The GNustep Java library/bridge called JIGS is available now. JIGS
+is a free (LGPL) Java Interface for GNUstep; it can automatically wrap
+Objective-C libraries based on GNUstep, making them accessible directly
+to the Java programmer as if they were Java libraries. As a side effect,
+it is also possible to use the whole engine in the reverse way: JIGS
+provides a high level API to allow Objective-C programmers to start java
+virtual machines inside GNUstep Objective-C code and access java objects
+in the java virtual machine transparently, as if they were objective-C
+objects.
+
+@node What if I compile GNUstep under OPENSTEP/MacOS X?, Is the Objective C API for GTK related?, Is there a plan to support Java/YellowBox Bindings?, Compatibility
+@subsection What if I compile GNUstep under OPENSTEP/MacOS X?
+
+GNUstep uses the X-windows display postscript extension.
+The interface to that is not the same as the interface to the
+OPENSTEP/MacOS-X windows server. While someone could write a
+backend library to provide the interface, nobody has bothered to
+date.
+
+You should, however, be able to use a GNUstep program with an X11 server
+running on MacOSX.
+
+@node Is the Objective C API for GTK related?, How about implementing parts of the Application Kit with GTK?, What if I compile GNUstep under OPENSTEP/MacOS X?, Compatibility
+@subsection Is the Objective C API for GTK related?
+
+ No. GNUstep applications provide their GUI via the OpenStep
+API, which provides fully object-oriented access to GUI manipulation.
+
+ The object-oriented nature of the libraries and language make it much easier
+for new users to create their own subclasses rather than simply using the
+supplied widgets as in other frameworks.
+
+@node How about implementing parts of the Application Kit with GTK?, , Is the Objective C API for GTK related?, Compatibility
+@subsection How about implementing parts of the Application Kit with GTK?
+
+ Yes and No - The GNUstep architecture provides a single,
+platform-independent, API for handling all aspects of GUI interaction
+(implemented in the gstep-gui library), with a backend architecture
+that permits you to have different display models (display postscript,
+X-windows, win32, berlin ...) while letting you use the same code
+for printing as for displaying. Use of GTK in the frontend gui
+library would remove some of those advantages without adding any.
+
+That being said, a backend library could be implemented using gtk
+if anyone wanted to do so. Since the frontend library handles most
+of the work involved in implementing the OpenStep API, the backend
+is a relatively thin layer and the advantages of GTK over direct
+xlib or win32 calls is likely to be minimal. If/when GTK is ported
+to more systems, a backend written using it could be a valuable
+asset - volunteers are, as always, welcome.
+
+
+@c ****************************************************************
+@c Compiling
+@node Compiling and Developing, GNU Objective C Compiler and Runtime, Compatibility, Top
+@section Compiling and Developing
+
+@menu
+* How can I get started programming?::
+* How can I help with GNUstep?::
+* Helping develop GNUstep::
+* Helping document GNUstep::
+* How do I update the task list?::
+* How do I start writing tests?::
+* How do I start writing applications?::
+* How can I help with the GNUstep website?::
+* Why doesn't GDB support Objective-C?::
+@end menu
+
+@node How can I get started programming?, How can I help with GNUstep?, Compiling and Developing, Compiling and Developing
+@subsection How can I get started programming?
+
+ Good question. Read the tutorials at the GNUstep web site. Also look at
+Apple's documentation (pointers in the Resources section on the GNUstep web
+site.)
+
+@node How can I help with GNUstep?, Helping develop GNUstep, How can I get started programming?, Compiling and Developing
+@subsection How can I help with GNUstep?
+
+@enumerate
+@item Write/debug library code
+@item Write documentation
+@item Update the task list and library headers
+@item Write applications
+@end enumerate
+
+Let people know what you are doing. Break your project up into
+the smallest units you can. Feed back frequent updates to the
+maintainers. Ask questions in the discussion mailing list.
+
+Do remember that any changes beyond a few lines of code (or
+documentation) require a disclaimer or copyright assignment to the
+Free Software Foundation before they can be incorporated into the
+project. Get in touch with the maintainer of the library you are
+working on about this.
+
+Don't start with large-scale reorganization of anything - instead,
+get a general idea in mind of what you want to do, and proceed as
+much as possible with incremental changes that don't break anything
+- that way you can make those incremental changes available to the
+rest of the community at frequent intervals.
+
+Don't be afraid to give up - there is no shame in finding out that
+you have take on too large/complex a project. It's much better to
+'resign' and take on a smaller job than to just stop without telling
+anyone.
+
+Please document the code you add or change (using autogsdoc comments
+that begin with a slash and two asterices). But PLEASE, do not copy from
+the Apple documentation or any other copyrighted documentation.
+
+
+@node Helping develop GNUstep, Helping document GNUstep, How can I help with GNUstep?, Compiling and Developing
+@subsection Helping develop GNUstep
+
+There is plenty of unimplemented stuff in the gui library and
+backend libraries that volunteers can work on - just browse through
+the code and see if it conforms to the documentation.
+
+Specific tasks are noted in the developers section on the GNUstep
+website.
+
+Once you have coded something, you could always write a testcase
+and documentation for it :-)
+
+@node Helping document GNUstep, How do I update the task list?, Helping develop GNUstep, Compiling and Developing
+@subsection Helping document GNUstep
+
+All class documentation is written directly in the source code itself
+and translated using the autogsdoc program. See the source code and
+documentation for autogsdoc for information on documenting the classes.
+
+Newcomers could write documentation for individual classes by
+comparing the OpenStep specification, the MacOS-X documentation,
+and the GNUstep source. Documentation should clearly note where
+individual methods are specific to OpenStep, MacOS-X or are GNustep
+extensions.
+
+More experienced people could write documentation on general
+programming topics, and tutorials for new users.
+
+Anyone willing to write documentation, either tutorials for using
+GNUstep, or reference documentation for individual classes, should
+either write it in gsdoc or as plain ascii text for someone else to
+format into gsdoc.
+
+GNUstep documentation should have copyright assigned to the Free
+Software Foundation.
+
+@node How do I update the task list?, How do I start writing tests?, Helping document GNUstep, Compiling and Developing
+@subsection How do I update the task list?
+
+ The task list (@url{http://savannah.gnu.org/pm/?group_id=99}) is
+supposed to tell people what jobs are waiting to be done. Feel free to
+add to it or update the tasks that are there (you need to create a login
+for yourself first).
+
+One job of major importance that pretty much anyone can do is to
+look for jobs to add to the task list. In the case of methods from
+the OpenStep specification or the MacOS-X documentation not being
+present in the GNUstep libraries, it is also helpful to add the
+method prototypes to the library header files.
+
+Send any changes or additions to @email{bug-gnustep@@gnu.org}.
+
+A beginner can look through the MacOS-X documentation, the OpenStep
+specification and the GNUstep source and contribute task items.
+
+If a class or method is in MacOS-X and OpenStep but is not in
+GNUstep - it's a high priority TODO and should at least be added
+to the GNUstep headers and a dummy version added to the source with
+a FIXME comment.
+
+If a class or method is in MacOS-X but not OpenStep or GNUstep -
+it's a low priority TODO. It should be added to the GNUstep headers
+bracketed in @code{#ifndef STRICT_OPENSTEP}
+
+If a class or method is in OpenStep but not in MacOS-X or GNUstep
+- it's a low priority TODO. It should be added to the GNUstep
+headers bracketed in @code{#ifndef STRICT_MACOS_X}
+
+There are a couple of people working on this already, so it's a
+good idea to get in touch with Adam or Richard to coordinate efforts.
+
+@node How do I start writing tests?, How do I start writing applications?, How do I update the task list?, Compiling and Developing
+@subsection How do I start writing tests?
+
+ You can write testcases - where the libraries fail tests, you
+could either fix the problem, or add it to the task list.
+
+To write testcases, you need to use anonymous CVS to install the
+latest GNUstep snapshots you can find. Then checkout the 'tests'
+module from CVS. In the 'tests' directory, you will find a
+regression testing framework.
+In order to use this you will also need a recent (v 1.3.2 or later) copy of
+Guile (you can get this from a GNU ftp site) and will need to check-out,
+built, and installed the 'guile' package from the GNUstep CVS repository.
+
+@node How do I start writing applications?, How can I help with the GNUstep website?, How do I start writing tests?, Compiling and Developing
+@subsection How do I start writing applications?
+
+ You can either look at the links on the GNUstep website for
+applications that have been started, and email their owners to
+volunteer to help, or you can start your own project.
+
+@node How can I help with the GNUstep website?, Why doesn't GDB support Objective-C?, How do I start writing applications?, Compiling and Developing
+@subsection How can I help with the GNUstep website?
+
+Talk to Adam Fedor @email{fedor@@gnu.org}, the maintainer.
+
+The GNUstep website is kept as a CVS module, but the largest portions
+of it (the FAQ and the Documentation) are actually
+generated from files in the individual GNUstep packages.
+
+If you want to update the FAQ or documentation - grab
+the latest snapshot of the GNUstep core you can find, update it
+from the CVS repository, and work with the contents of the appropriate
+documentation directory.
+
+If you want to work on other parts of the website, you can grab a copy
+of the website via anonymous CVS. See
+@url{http://savannah.gnu.org/cvs/?group_id=99} for instructions on how
+to do that.
+
+The main task with the website is to figure out which bits are
+out-of-date (or wrong) and update/mark-as-outdated as required.
+
+@node Why doesn't GDB support Objective-C?, , How can I help with the GNUstep website?, Compiling and Developing
+@subsection Why doesn't GDB support Objective-C?
+
+Um, it does. As of GDB 6.0, gdb supports debugging of Objective-C
+code.
+
+@c -------------------------------------------------------------------
+
+@node GNU Objective C Compiler and Runtime, GNUstep Base Library, Compiling and Developing, Top
+@section GNU Objective C Compiler and Runtime
+
+@menu
+* What is the Objective C Runtime?::
+* Does it allow a mixture of Objective C and C++::
+* Where can I find more information?::
+@end menu
+
+@node What is the Objective C Runtime?, Does it allow a mixture of Objective C and C++, GNU Objective C Compiler and Runtime, GNU Objective C Compiler and Runtime
+@subsection What is the Objective C Runtime?
+
+The Objective C Runtime Library provides C functions and data structures
+required to execute an Objective C program.
+
+The GNU Objective C Runtime Library offers everything NeXT's runtime
+does, including Categories, Protocols, @samp{+poseAs:}, thread-safety,
+class initialization on demand, delayed loading of classes, and
+initialization of static instances (such as @@""-style string objects).
+
+It also has several differences over NeXT's implementation:
+
+@itemize @bullet
+
+@item GNU's runtime provides ``selector-types'' along with each
+selector; NeXT's does not. A selector-type is a string that describes
+the C variable types for the method's return and argument values. Among
+other uses, selector-types is extremely helpful for fast distributed
+objects implementations, (see GNUstep Base Library Section, below).
+
+@item Many of the GNU functions have different names than their
+corresponding NeXT functions; the GNU names conform to the GNU coding
+standards. The GNUstep base library contains a compatibility header that
+works with both runtimes. You should use functions there or use OpenStep
+Foundation methods/functions instead of the basic
+runtime functions so that you code can run with either system.
+
+@end itemize
+
+@node Does it allow a mixture of Objective C and C++, Where can I find more information?, What is the Objective C Runtime?, GNU Objective C Compiler and Runtime
+@subsection Does it allow a mixture of Objective C and C++?
+
+No.
+See @pxref{Can one use the hybrid "Objective-C++"}
+
+@node Where can I find more information?, , Does it allow a mixture of Objective C and C++, GNU Objective C Compiler and Runtime
+@subsection Where can I find more information?
+
+The FAQ associated with the newsgroup @samp{comp.lang.objective-c}
+contains more information about GNU Objective C.
+
+@c ------------- GNU Compiler and Objective C Runtime Library -------
+
+@node GNUstep Base Library, GNUstep GUI Library, GNU Objective C Compiler and Runtime, Top
+@section GNUstep Base Library
+
+@menu
+* What is the GNUstep Base Library?::
+* What is base's current state of development?::
+* What are the features of GNU Distributed Objects?::
+@end menu
+
+@node What is the GNUstep Base Library?, What is base's current state of development?, GNUstep Base Library, GNUstep Base Library
+@subsection What is the GNUstep Base Library?
+
+The GNUstep Base Library is a library of general-purpose, non-graphical
+Objective C objects. For example, it includes classes for strings,
+object collections, byte streams, typed coders, invocations,
+notifications, notification dispatchers, moments in time, network ports,
+remote object messaging support (distributed objects), event loops, and
+random number generators.
+
+It provides functionality that aims to implement the non-graphical
+portion of the OpenStep standard (the Foundation library).
+
+@node What is base's current state of development?, What are the features of GNU Distributed Objects?, What is the GNUstep Base Library?, GNUstep Base Library
+@subsection What is its current state of development?
+
+GNUstep base is currently stable and, to the best of our knowledge,
+implements all of the OpenStep functionality (except for a few classes
+that we feel are not useful). It also implements most all of the new
+Cocoa classes. However we do some things, like scripting, differently,
+so we don't implement all the Cocoa classes.
+
+@node What are the features of GNU Distributed Objects?, , What is base's current state of development?, GNUstep Base Library
+@subsection What are the features of GNU Distributed Objects?
+
+GNU Distributed Objects has many of the features of other distributed
+objects implementations, but, since it is free software, it can be
+ported to platforms for which other distributed objects implementations
+are not available.
+
+[ NOTE: The GNU distributed object facilities have the same ease-of-use
+as NeXT's; be warned, however, that they are not compatible with each
+other. They have different class hierarchies, different instance
+variables, different method names, different implementation strategies
+and different network message formats. You cannot communicate with a
+NeXT NSConnection using a GNU NSConnection.
+
+Here are some differences between GNU distributed objects and NeXT's
+distributed objects: NeXT NSDistantObject asks it's remote
+target for the method encoding types and caches the results; GNU
+NSDistantObject gets the types directly from the local GNU "typed selector"
+mechanism if the information is known locally and only queries the remote
+target or caching encoding types when using a method that is not known to
+the local process. The NSProxy for the remote root object always has name
+and, once set, you cannot change the root object of a NSConnection; the GNU
+Proxy for the remote root object has a target address value just like
+all other Proxy's, and you can change the root object as many times as
+you like. ].
+
+@c --------------------------GNUstep Base Library----------------------
+
+@node GNUstep GUI Library, GNUstep DisplayGhostScript Server, GNUstep Base Library, Top
+@section GNUstep GUI Library
+
+@menu
+* What is the GUI Library?::
+* Explain the organization of the front- and back-ends::
+* What is the current state of development of the front-end?::
+* What is the current state of development of the back-ends?::
+@end menu
+
+@node What is the GUI Library?, Explain the organization of the front- and back-ends, GNUstep GUI Library, GNUstep GUI Library
+@subsection What is the GUI Library?
+
+The GNUstep GUI Library is a library of objects useful for writing
+graphical applications. For example, it includes classes for drawing
+and manipulating graphics objects on the screen: windows, menus,
+buttons, sliders, text fields, and events. There are also many
+peripheral classes that offer operating-system-independent interfaces to
+images, cursors, colors, fonts, pasteboards, printing. There are also
+workspace support classes such as data links, open/save panels,
+context-dependent help, spell checking.
+
+It provides functionality that aims to implement the @samp{AppKit}
+portion of the OpenStep standard. However the implementation has
+been written to take advantage of GNUstep enhancements wherever possible.
+
+
+@node Explain the organization of the front- and back-ends, What is the current state of development of the front-end?, What is the GUI Library?, GNUstep GUI Library
+@subsection Explain the organization of the front- and back-ends
+
+The GNUstep GUI Library is divided into a front- and back-end. The
+front-end contains the majority of implementation, but leaves out the
+low-level drawing and event code. A back-end can override whatever
+methods necessary in order to implement low-level drawing event
+receiving. Different back-ends will make GNUstep available on various
+platforms. The default GNU back-end will run on top of X Windows.
+Other back-ends could allow GNUstep to run on OpenGL and WIN32
+graphics/event platforms. Much work will be saved by this clean
+separation between front- and back-end, because it allows different
+platforms to share the large amount of front-end code.
+
+@node What is the current state of development of the front-end?, What is the current state of development of the back-ends?, Explain the organization of the front- and back-ends, GNUstep GUI Library
+@subsection What is the current state of development of the front-end?
+
+Many of the classes are well implemented, if not thoroughly tested.
+See the GNUstep web sites and read status information contained in the
+distribution for the most up-to-date information.
+
+@node What is the current state of development of the back-ends?, , What is the current state of development of the front-end?, GNUstep GUI Library
+@subsection What is the current state of development of the back-ends?
+
+There are several backends currently available:
+
+@table @samp
+@item xlib
+This is the standard backend that runs on X11 and uses standard xlib
+calls for implementing drawing. It works well, but is limited in many
+areas due to the limitations of xlib drawing.
+@item art
+This is a very good backend that draws using the libart package and
+freetype with near PostScript quality and functionality. At some point
+it will become the standard.
+@item w32
+This backend works on Windows and is currently beta quality.
+@end table
+
+@c ------------------------- GNUstep GUI Library -----------------------
+
+@node GNUstep DisplayGhostScript Server, , GNUstep GUI Library, Top
+@section GNUstep DisplayGhostScript Server
+
+@menu
+* What is the Display Ghostscript Server?::
+* What is DGSs current state of development?::
+* What is the relationship between the Display Ghostscript Server and X Windows?::
+@end menu
+
+@node What is the Display Ghostscript Server?, What is DGSs current state of development?, GNUstep DisplayGhostScript Server, GNUstep DisplayGhostScript Server
+@subsection What is the Display Ghostscript Server?
+
+It is a free implementation of a Display PostScript server based on the
+GNU Ghostscript program developed by Aladdin Enterprises and now owned by artofcode LLC.
+
+At one point, GNUstep was using this for display purposes. However the
+development of DGS has stopped as it is too difficult to maintain and
+no one wanted to work on it. Now we are using other means of drawing.
+
+@node What is DGSs current state of development?, What is the relationship between the Display Ghostscript Server and X Windows?, What is the Display Ghostscript Server?, GNUstep DisplayGhostScript Server
+@subsection What is its current state of development?
+
+GNU contracted with Aladdin Enterprises to add some key features to GNU
+Ghostscript so it could be used as a DPS server. This work has mostly
+been done, although Aladdin did not completely finish the work that they
+were contracted for. (Because the work took longer than specified and
+was not completed, Aladdin agreed to waive approximately $10,000 in
+promised fees for the work that was actually done and delivered.) DGS
+works fairly well with a single context. Alpha channel and compositing
+currently doesn't work.
+
+@node What is the relationship between the Display Ghostscript Server and X Windows?, , What is DGSs current state of development?, GNUstep DisplayGhostScript Server
+@subsection What is the relationship between the Display Ghostscript Server and X Windows?
+
+Display Ghostscript runs on top of X Windows.
+
+@c ------------------ GNUstep DisplayGhostScript Server ---------------
+
+@bye
+\bye
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@c GNUstep filesystem hierarchy
+@c %**start of header
+@setfilename filesystem.info
+@settitle GNUstep Filesystem Hierarchy Document
+@c %**end of header
+@setcontentsaftertitlepage
+@smallbook
+
+@titlepage
+@title GNUstep Filesystem Hierarchy Document
+
+@vskip 0pt plus 1filll
+
+Last Update: @today{}
+
+@page
+@vskip 0pt plus 1filll
+Authors: Tim Harrison, Martin Brecher, Adam Fedor, Nicola Pero
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation.
+
+@end titlepage
+
+@node Top, The System Domain, (dir), (dir)
+@top GNUstep Filesystem Hierarchy
+
+@menu
+* The System Domain::
+* The Local Domain::
+* The Network Domain::
+* The Users Domain::
+* Hierarchy::
+* Description::
+@end menu
+
+On GNUstep, there are four separate places where files related to GNUstep
+are installed: these places are called "domains". These four
+domains are the System domain, the Local domain, the Network domain,
+and the User domain. Each of these domains serve a special purpose.
+
+The following is a general overview of the GNUstep domains. A detailed
+explanation of the directory structure contained within each domain is
+found later in this document.
+
+
+@node The System Domain, The Local Domain, Top, Top
+@section The System Domain
+
+The System domain is found in the @file{System} folder of the GNUstep
+installation. This directory contains all files which were included
+in the default GNUstep installation or distribution. Normally these
+include the basic GNUstep libraries (Foundation and AppKit), and might
+include essential system applications (the Workspace Manager, the
+Editor, applications related to system administrative tasks), the
+developer applications (Project Center and Gorm, as well as header
+files), essential extensions (bundles for XML, SSL, RTF, etc), as well
+as all software installed by the manufacturer of your distribution.
+These files are usually essential for having a fully functional
+system. Thus, making modifications to these files is highly
+discouraged. In addition, only the system administrator ('root' on
+most UNIX systems) should have permissions to write to that domain.
+
+
+
+@node The Local Domain, The Network Domain, The System Domain, Top
+@section The Local Domain
+
+While at first glance, the Local domain seems very similar to the
+System domain, there are several differences between them. The most
+important thing is the differing purpose of the Local domain, as it is
+meant as the location for installing software which was not included
+with your GNUstep distribution and which you or your local sysadmin
+compile and/or install manually. These may include third party
+applications, custom extension libraries and their related header
+files, etc. The Local domain is - as the name suggests - usually
+installed as @file{Local} on your GNUstep system. Every software
+(except for gnustep-make, gnustep-base, gnustep-gui and gnustep-back
+which by default install into the System domain) should install by
+default into the Local domain, so that if you download a source
+tarball of the software and you install it, it installs by default in
+the right place for this operation (the Local domain). Distributions
+should override this default manually when they package the software
+they want to distribute as part of their distribution, so that in that
+case the software is installed in the System domain.
+
+
+@node The Network Domain, The Users Domain, The Local Domain, Top
+@section The Network Domain
+
+The @file{Network} domain is optional and is currently coalesced with
+the @file{Local} domain by default; this is particularly appropriate
+for use on stand alone systems such as your home workstation.
+However, the Network domain can be of great use in networked,
+corporate environments. Its main purpose is to hold files exported
+from a central server in your network or from other workstations.
+Most times, remote directories containing applictations or general
+data used by several workstations in the network are mounted using the
+Network File System (NFS). Such usage gives administrators the
+possibility of providing application or resources to a vast number of
+workstations while only having to manage the software in one place.
+This is especially useful when workstations are used by several users
+with different tasks and requirements. If you want to take advantage
+of the @file{Network} domain, you need to enable it when you configure
+gnustep-make.
+
+
+
+@node The Users Domain, Hierarchy, The Network Domain, Top
+@section The Users Domain
+
+On systems where GNUstep is installed optionally, the Users domain can
+usually be found in a subdirectory of the user's home directory called
+'GNUstep'. This location is configurable, and some installations may
+put this directly in the user's directory (and typical user's home
+directories would be located in a @file{Users} folder). As the name
+suggests, the main purpose of the Users domain is to hold GNUstep
+related files which shall not be available to other users on the
+system but only to the user owning them. This includes the GNUstep
+defaults database, which holds system settings, application
+preferences and customized resources, as well as temporary data
+related to services and file type associations for programs. It also
+holds user installed applications and tools (each user has the ability
+to install their own version of an application or tool). In
+addition to these special files, the User domain features the same
+structure as the other domains.
+
+
+
+
+@node Hierarchy, Description, The Users Domain, Top
+@section Hierarchy
+
+@menu
+* System Hierarchy::
+* Local Hierarchy::
+* Network Hierarchy::
+* User Hierarchy::
+* Library Folder::
+@end menu
+
+@node System Hierarchy, Local Hierarchy, Hierarchy, Hierarchy
+@subsection System
+
+@example
+System/
+ Applications/
+ Library/
+ Tools/
+ share/
+@end example
+
+@node Local Hierarchy, Network Hierarchy, System Hierarchy, Hierarchy
+@subsection Local
+
+@example
+Local/
+ Applications/
+ Library/
+ Tools/
+@end example
+
+@node Network Hierarchy, User Hierarchy, Local Hierarchy, Hierarchy
+@subsection Network
+
+@example
+Network/
+ Applications/
+ Library/
+ Tools/
+@end example
+
+@node User Hierarchy, Library Folder, Network Hierarchy, Hierarchy
+@subsection User
+
+@example
+@emph{User's GNUstep root dir}/
+ Applications/
+ Library/
+ Tools/
+@end example
+
+@node Library Folder, , User Hierarchy, Hierarchy
+@subsection Library Folder
+
+@multitable @columnfractions 0.2 0.2 0.2 0.2 0.2
+@item ApplicationSupport
+@item Bundles
+@item ColorPickers
+@item Colors
+@item Defaults @tab @tab @tab @tab @emph{user only}
+@item DTDs
+@item DocTemplates
+@item Documentation
+@item Fonts
+@item Frameworks
+@item Headers
+@item Images
+@item KeyBindings
+@item Libraries
+@item @tab Resources
+@item @tab @tab gnustep-base @tab @tab @emph{system only}
+@item @tab @tab @tab .lproj folders
+@item @tab @tab @tab CharacterSets
+@item @tab @tab @tab TimeZones
+@item @tab @tab @tab Languages
+@item @tab @tab gnustep-gui @tab @tab @emph{system only}
+@item @tab @tab @tab .lproj folders
+@item @tab @tab @tab TextConverters
+@item Makefiles @tab @tab @tab @tab @emph{system only}
+@item @tab Additional
+@item PostScript
+@item @tab PPD
+@item Services
+@item Sounds
+
+@end multitable
+
+@node Description, , Hierarchy, Top
+@section Description
+
+@menu
+* System Description::
+* Local Description::
+* Network Description::
+* Applications::
+* Tools::
+* share::
+* Library::
+@end menu
+
+@node System Description, Local Description, Description, Description
+@subsection System
+
+The System directory is the location of the GNUstep makefile package,
+base, gui and backend libraries, and any accompanying software that is
+distributed as part of whatever distribution of GNUstep you are using.
+This directory MUST exist for a proper installation of GNUstep.
+
+Using the --prefix option to the configure script in gnustep-make, an
+installation of GNUstep may be placed wherever the installer wishes;
+the System, Local (and optionally Network) domain by default will be
+subdirectory of this root location.
+
+Common options are:
+
+@example
+/usr/GNUstep
+/usr/local/GNUstep
+/opt/GNUstep
+/
+@end example
+
+All directories referenced in this document are relative to this root location.
+
+@node Local Description, Network Description, System Description, Description
+@subsection Local
+
+The Local domain is the location of libraries, frameworks, bundles,
+and supporting files for locally installed applications or tools that
+are not distributed as part of the distribution that you are using,
+but that are compiled and/or installed manually by you or your
+sysadmin. This directory MUST exist for a proper installation of
+GNUstep.
+
+@node Network Description, Applications, Local Description, Description
+@subsection Network
+
+The Network Domain is the location for all exported applications, remotely
+mounted filesystems, and remote home directories for users made available via
+directory services. It is optional, and disabled by default.
+
+@node Applications, Tools, Network Description, Description
+@subsection Applications
+
+The @file{Applications} directory contains applications. Applications
+are programs that typically have a GUI interface and contain associated
+resource files, such as images, localization files and other program
+elements.
+
+Important applications which are part of GNUstep and which are often
+distributed as part of a core GNUstep distribution (and so installed
+in the @file{System/Applications} folder) include:
+@example
+Gorm.app
+ProjectCenter.app
+GSDefaults.app
+GWorkspace.app
+Preferences.app
+@end example
+
+@node Tools, share, Applications, Description
+@subsection Tools
+
+The @file{Tools} directory contains tools and executable
+scripts. Tools are programs which generally have a command-line
+interface. Most are not meant to be used by the average user.
+
+Tools that are written in languages other than Objective-C, or are developed
+to work with other runtime environments may have their own directory within
+the Tools directory (for example: @file{Tools/Java}).
+
+@node share, Library, Tools, Description
+@subsection share
+
+The share directory is used for configuration and installation
+of the core GNUstep libraries and any additional libraries that
+need configuration information. It is used by the configure (autoconf)
+program.
+
+
+@node Library, , share, Description
+@subsection Library
+
+The @file{Library} directory contains most of the functional
+code of the GNUstep Development Environment.
+
+The primary reason for the structure of folders within Library is to
+keep a complimentary structure throughout all domains. This allows
+easier development, by keeping a standard directory layout, providing
+developers with a relatively common hierarchy to work within.
+
+@menu
+* ApplicationSupport::
+* Bundles::
+* ColorPickers::
+* Colors::
+* Defaults::
+* DTDs::
+* DocTemplates::
+* Documenation::
+* Fonts::
+* Frameworks::
+* Headers::
+* Images::
+* KeyBindings::
+* Libraries::
+* Makefiles::
+* PostScript::
+* Services::
+* Sounds::
+@end menu
+
+@node ApplicationSupport, Bundles, Library, Library
+@subsubsection ApplicationSupport
+
+This directory contains bundles and other resources that are provided
+for an application, but that are not specifically distributed with that
+application. For instance, these may be third-party resources for
+an application.
+
+For example, modules for the Preferences application may be stored here,
+in a @file{Preferences} subdirectory.
+
+@node Bundles, ColorPickers, ApplicationSupport, Library
+@subsubsection Bundles
+
+This directory contains bundles. Bundles are collections of executable
+code and associated resources that may be loaded at runtime by an
+application or tool. Note: this directory is depreciated. Use
+ApplicationSupport to install bundles that can be used by an
+application.
+
+@node ColorPickers, Colors, Bundles, Library
+@subsubsection ColorPickers
+
+This directory contains bundles that are used by the color picking
+system. They may include code that implements picking colors from a color
+wheel, a custom defined list of colors, etc.
+
+@node Colors, Defaults, ColorPickers, Library
+@subsubsection Colors
+
+This directory contains files that define
+specific color mappings for use within libraries or applications
+that require color definitions.
+
+@node Defaults, DTDs, Colors, Library
+@subsubsection Defaults
+
+This directory contains files that store defaults for applications, e.g.
+user preferences. This directory only exists in the User domain.
+
+@node DTDs, DocTemplates, Defaults, Library
+@subsubsection DTDs
+
+This directory contains any Document Type Definitions
+required for document parsing.
+
+@node DocTemplates, Documenation, DTDs, Library
+@subsubsection DocTemplates
+
+This directory contains text templates for automatic documentation, as
+generated by autodoc. Any additional documentation template types
+must be placed in this directory, as a central location for
+documentation template types. Any templates installed within this
+directory must have an extension indicating what type of documentation
+system it is referenced by (ie. .gsdoc for the GNUstep implementation
+of autodoc).
+
+@node Documenation, Fonts, DocTemplates, Library
+@subsubsection Documentation
+
+This directory contains documentation for libraries, applications, etc.
+
+@node Fonts, Frameworks, Documenation, Library
+@subsubsection Fonts
+
+This directory contains fonts and files for organizing font information.
+
+@node Frameworks, Headers, Fonts, Library
+@subsubsection Frameworks
+
+This directory contains frameworks. Frameworks are a type of bundle,
+which include, within their directory structure, a shared library
+providing a specific functionality (or group of related
+functionalities), and all resources required by that shared library.
+
+All frameworks must have the extension @file{framework}, to indicate
+their usage.
+
+Use of frameworks is generally discouraged, as it is difficult to
+support them in a clean way on multiple platforms. Bundles are a
+better method of organizing shared collections of resources and code.
+
+@node Headers, Images, Frameworks, Library
+@subsubsection Headers
+
+This directory contains header files associated with a library located
+in the Libraries directory.
+
+@node Images, KeyBindings, Headers, Library
+@subsubsection Images
+
+@node KeyBindings, Libraries, Images, Library
+@subsubsection KeyBindings
+
+@node Libraries, Makefiles, KeyBindings, Library
+@subsubsection Libraries
+
+This directory contains libraries. (NOTE: The Libraries directory
+being in Library may sound somewhat redundant, however, it could be
+read as "a Library of shared libraries".)
+
+@node Makefiles, PostScript, Libraries, Library
+@subsubsection Makefiles
+
+This directory contains the different types of makefiles used by the
+GNUstep development environment to build applications, libraries,
+bundles, etc. These makefiles are usually included in a project
+specific GNUmakefile, which is used to build a project under the
+GNUstep development environment.
+
+This directory only exists in the System domain.
+
+@node PostScript, Services, Makefiles, Library
+@subsubsection PostScript
+
+This directory contains directories for specific
+PostScript document types and definitions, allowing applications written using
+the GNUstep development environment to display PostScript documents, or
+communicate with printers using PostScript.
+
+@node Services, Sounds, PostScript, Library
+@subsubsection Services
+
+This directory contains bundles that are specifically
+built to provide functionality between different programs (for example, spell
+checking, creation of a note from text within an email application). Services
+that are installed on the system must an extension of ".service".
+
+@node Sounds, , Services, Library
+@subsubsection Sounds
+
+This directory contains sound files.
+
+@bye
+\bye
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@c GNUstep installation instructions
+@c %**start of header
+@setfilename gnustep-howto.info
+@settitle GNUstep HOWTO
+@c %**end of header
+@set HOWTO
+@setcontentsaftertitlepage
+@smallbook
+
+@titlepage
+@title GNUstep HOWTO
+@subtitle Installing the GNUstep developement system
+
+@vskip 0pt plus 1filll
+@emph{This document explains how to build the different components of
+the GNUstep core libraries.}
+
+Last Update: @today{}
+
+@page
+@vskip 0pt plus 1filll
+Copyright @copyright{} 1996 - 2002 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
+any later version published by the Free Software Foundation.
+
+@end titlepage
+
+@ifinfo
+@format
+ GNUstep HOWTO
+ *************
+
+ Last Update: @today{}
+
+ 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.
+
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.1 or
+ any later version published by the Free Software Foundation.
+@end format
+
+@end ifinfo
+
+@include version.texi
+
+@node Top, Introduction, (dir), (dir)
+
+@menu
+* Introduction::
+* Preliminaries::
+* Compiling and Installing::
+* Additional Installation::
+* Tools and Applications::
+* Machine Specific::
+* Anonymous CVS::
+@end menu
+
+@node Introduction, Preliminaries, Top, Top
+@chapter Introduction
+
+This document explains how to build the GNUstep core libraries. The
+core libraries, along with associated tools and other files provide
+everything necessary for a working GNUstep system.
+
+In order to easily compile and debug GNUstep projects, you will need the
+GNU Objective-C compiler @samp{GCC} as well as various other GNU packages.
+
+You will need at least 80Mb of hard disk space (150Mb prefered) in order
+to compile the GNUstep core libraries.
+
+@node Preliminaries, Compiling and Installing, Introduction, Top
+@chapter Summary
+
+In order to compile the libraries, you need to compile and install
+the following packages first (if you don't already have them):
+
+@itemize @bullet
+@item gcc (Version 2.95 or greater, 3.0.4 or greater recommended)
+@item GNU make (Version 3.75 or greater)
+@item gdb (Version 6.0 or greater recommended), if you plan to do any debugging
+@end itemize
+
+You may also need to install some of the following libraries and
+packages described below. Most of these packages are optional, but some
+are required.
+
+@table @samp
+@item ffcall libraries (HIGHLY RECOMMENDED)
+This is a library that provides stack-frame handling for NSInvocation
+and NSConnection. This library is highly recommended. The previous
+builtin method for stack frame handling is no longer supported and may
+be removed in the future. ffcall is under GNU GPL. As a special
+exception, if used in GNUstep or in derivate works of GNUstep, the
+included parts of ffcall are under GNU LGPL.
+
+@item libffi library (ALTERNATIVE RECOMMENDATION)
+This is a library that provides stack frame handling for NSInvocation
+and NSConnection similar to ffcall.
+Use this instead of ffcall. You don't need both.
+
+@item libxml2 (RECOMMENDED)
+The libxml library (Version 2) is used to translate some of the
+documentation for GNUstep and to provide suport for MacOS-X compatible
+XML-based property-lists. It is recommended but not currently required.
+
+@item libxslt (OPTIONAL)
+Stylesheet support for use with XML.
+
+@item openssl (OPTIONAL)
+The openssl library is used to provide support for https connections by
+the NSURL and HSURLHandle classes. This functionality is
+compiled as a separate bundle since the OpenSSL license is not
+compatible with GPL, and in the hopes that if someone writes an openssl
+replacement, it can quickly be used by creating another bundle.
+
+@item libiconv (OPTIONAL)
+Note: Do not install this library unless you are sure you need it.
+You probably don't need it except perhaps on MinGW.
+Unicode support functions (iconv) come with glibc version 2.1 or greater. If
+you don't have glibc (try iconv --version), you can get the separate
+libiconv library from
+@url{http://clisp.cons.org/~haible/packages-libiconv.html}. However,
+neither one is required to use GNUstep.
+
+@item The TIFF library (libtiff) (Version 3.4beta36 or greater) (REQUIRED)
+The GUI library uses this to handle loading and saving TIFF images.
+
+@item The JPEG library (libjpeg) (RECOMMENDED)
+The GUI library uses this to handle loading JPEG images.
+
+@item The PNG library (libpng) (RECOMMENDED)
+The GUI library uses this to handle loading PNG images.
+
+@item libaudiofile (RECOMMENDED)
+The GUI library uses this for the sound server
+
+@item freetype2 (RECOMMENDED, REQUIRED for art backend)
+This is used for font information
+
+@item libart_lgpl2 (REQUIRED for art backend only)
+Drawing library for the art backend.
+
+@item WindowMaker (Version >= 0.62) (OPTIONAL)
+GNUstep and WindowMaker work together to provide a consistant interface.
+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.org}.
+
+@item gnustep-objc package (for gcc version < 3.0 ONLY) (RECOMMENDED)
+Note: Do not install this library unless you are sure you need it.
+You probably don't need it except on MinGW.
+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.
+It is available at @url{ftp://ftp.gnustep.org/pub/gnustep/libs} which
+compiles using the GNUstep Makefile package (so you don't have to get the
+entire gcc dist). Make sure to set the THREADING variable in the GNUmakefile.
+It's possible to compile the library static (make shared=no) and
+just copy to the place where the gcc libobjc library is (type gcc -v to
+get this location). Note you have to install gnustep-make (below) before
+installing this library.
+
+@item GDB (OPTIONAL)
+GDB can be obtained from @url{ftp://ftp.gnu.org/gnu/gdb}. As of release
+6.0, gdb has special support for debugging Objective-C programs.
+
+@item TeX (OPTIONAL)
+You need a TeX implementation, like tetex, to compile some of the
+documentation (although most of that is available on the web).
+@end table
+
+@node Compiling and Installing, Additional Installation, Preliminaries, Top
+@chapter Compiling and Installing the packages
+
+Get the following individual packages:
+
+@itemize @bullet
+@item gnustep-make
+@item gnustep-base
+@item gnustep-gui
+@item gnustep-back
+@end itemize
+
+See @url{http://www.gnustep.org} for information on where to get these
+packages.
+
+Make sure you install (if necessary) all the previously mentioned
+libraries first before configuring and building GNUstep.
+
+You should install these packages as root (read special note for the
+gnustep-base library, below, if you cannot do this).
+
+For installation on specific systems, read the machine specific
+instructions at the end of this document or appropriate README files in
+the gnustep-make Documentation directory (such as README.MingW for Windows).
+
+@menu
+* Core Package::
+@end menu
+
+@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:
+
+@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:
+
+@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.
+
+@menu
+* Alternate Library Setup::
+* Individual Packages::
+@end menu
+
+@node Alternate Library Setup, Individual Packages, Core Package, Core Package
+@subsection Alternate Library Setup
+
+Read the installation instructions in the Makefile package (make) for more
+installation options. Make sure you use the same
+configuration options when configuring each GNUstep library.
+
+@node Individual Packages, , Alternate Library Setup, Core Package
+@subsection Building the Package
+
+To build the individual packages, use this familiar set of commands for
+each pacakge (add any additional options you decide upon):
+
+@example
+./configure
+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:
+
+@example
+ . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
+@end example
+
+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}
+variable to the thread library used on your system (usually its posix,
+but you can leave it at single if you don't need threads). At this point
+you should probably re-configure, make and install gnustep-make, so it
+can pick up on any threading information that gnustep-objc provides.
+
+Now install gnustep-base, gnustep-gui and finally gnustep-back.
+
+NOTE: If you are trying to install the packages without root permission,
+you may need to change one thing in the base library. Edit the file
+gnustep-base/Tools/gdomap.h to uncomment the last line and modify
+the specified port number to a port which you @emph{know} is not in use on
+your network. You should only do this if absolutely necessary since
+making this change will break communications with any systems where
+an identical change has not been made. Also, the standard gdomap port
+is the one officially registered with IANA and is reserved for use by
+gdomap - it should only be changed if you can't get your system
+administrator to start the gdomap server using it.
+
+@node Additional Installation, Tools and Applications, Compiling and Installing, Top
+@chapter Additional Installation
+
+@menu
+* Environment Setup::
+* GNUstep Home::
+* Time Zone::
+* GNUstep deamons::
+@end menu
+
+@node Environment Setup, GNUstep Home, Additional Installation, Additional Installation
+@section Environment Setup
+Add the shell script @file{GNUstep.sh} located in the Makefile
+package to your shell startup file (such as @file{.profile}). For instance,
+if your GNUSTEP_SYSTEM_ROOT is @file{/usr/GNUstep/System},
+
+@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
+
+@example
+source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
+@end example
+
+@node GNUstep Home, Time Zone, Environment Setup, Additional Installation
+@section GNUstep Home
+
+Set up your home GNUstep directory. This should be done automatically
+if you don't do it. 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).
+
+@example
+cd
+mkdir GNUstep
+@end example
+
+@node Time Zone, GNUstep deamons, GNUstep Home, Additional Installation
+@section Time Zone
+
+Next, set your local time zone. There are four ways to do this, pick
+one (see
+@file{$GNUSTEP_SYSTEM_ROOT/Library/Libraries/Resources/gnustep-bsae/NSTimeZones/zones} for
+typical time zones):
+
+@enumerate
+@item Use the defaults utility to set ``Local Time Zone'' to your local
+time zone (defaults is installed with GNUstep in the Tools directory). Type
+something like ``defaults write NSGlobalDomain "Local Time Zone" GB''.
+
+@item Set the @var{GNUSTEP_TZ} environment variable.
+
+@item Create the file @file{$GNUSTEP_SYSTEM_ROOT/Library/Libraries/Resources/gnustep-base/NSTimeZones/localtime} with the name of the local time zone in it.
+
+@item Set the @var{TZ} environment variable (this may conflict with other
+software on your system though).
+@end enumerate
+
+@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:
+
+@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
+fi
+@end example
+@item gdnc - Start after sourcing @file{GNUstep.sh} (e.g. in .profile)
+@item gpbs - Same as with gdnc, make sure X-Windows is running.
+@end itemize
+
+@example
+if [ `gdomap -L GDNCServer | grep -c Unable` == 1 ]; then
+ echo "Starting GNUstep services..."
+ gdnc
+ gpbs
+fi
+@end example
+
+
+@node Tools and Applications, Machine Specific, Additional Installation, Top
+@chapter Test Tools and Applications
+
+Test programs for the base library are in @file{base/Testing}. Example
+applications are located in the gstep-examples package. To make these,
+just uncompress and untar this package, cd to the appropriate
+directory, and type make. 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:
+
+@example
+openapp application [additional arguments to app]
+@end example
+
+Good Luck!
+
+@node Machine Specific, Anonymous CVS, Tools and Applications, Top
+@chapter Machine Specific Instructions
+
+@include machines.texi
+
+
+@node Anonymous CVS, , Machine Specific, Top
+@chapter Getting Libraries via Anonymous CVS
+
+If you didn't get one of the snapshots, or if you want to be sure to
+stay on the bleading edge, then you should get the libraries via CVS. Go
+to @url{http://savannah.gnu.org/cvs/?group_id=99} for information on how
+to get anonymous CVS access.
+
+If you haven't already done so, change to the directory, where you
+want the source to reside. To get a list of potential modules to check out,
+type
+@example
+cvs -z3 checkout -c
+@end example
+
+For instance, to check our @file{core}, which contains all the GNUstep
+code libraries:
+@example
+cvs -z3 checkout core
+@end example
+
+After you have checked out the source you can compile it as
+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
+@end example
+
+You don't have to re-checkout after you have the source, just update!
+
+@bye
+\bye
--- /dev/null
+if (defined($ENV{'GNUSTEP_WEB_ROOT'})) {
+ open(TMPL,"<$ENV{'GNUSTEP_WEB_ROOT'}/secondary.html.template");
+ $tmpl=join("",<TMPL>);
+ close(TMPL);
+ ($T2H_EXTRA_HEAD,$T2H_AFTER_BODY_OPEN,$T2H_PRE_BODY_CLOSE) =
+ ($tmpl=~/<\/title>(.*)<\/head>.*<body>(.*<div id="main">).*(<\/div><\/div>.*)<\/body>/sm);
+ }
+else {
+ # this is added inside <HEAD></HEAD> after <TITLE> and some META NAME stuff
+ # can be used for <style> <script>, <meta> tags
+ $T2H_EXTRA_HEAD = '<link rel="stylesheet" href="../gnustep-main.css"
+ type="text/css" />';
+ }
+
+######################################################################
+
+sub nothing
+{
+}
+
+$T2H_print_About = \¬hing;
+$T2H_SECTION_NAVIGATION = 0;
+$T2H_print_navigation = \¬hing;
--- /dev/null
+
+@node Top, Introduction, (dir), (dir)
+@chapter GNUstep makefile package installation
+
+@menu
+* Introduction::
+* Configuration::
+* Installation::
+* Setup::
+@end menu
+
+@node Introduction, Configuration, Top, Top
+@section Introduction
+
+If you are installing this package as part of the GNUstep core
+libraries, read the file GNUstep-HOWTO for more complete instructions on
+how to install the entire GNUstep package (including this package).
+GNUstep-HOWTO comes with this distribution.
+
+This should be the first GNUstep package you install. Before installing
+this package, install ffcall or libffi and any other libraries that GNUstep may
+need (see the GNUstep-HOWTO). Read and follow the instructions on
+setting up the GNUstep environement below. Then install gnustep-base.
+
+When you configure additional libraries, make sure you use the same
+configuration options as with gstep-make.
+
+Also make sure you've read the machine-specific instructions for your
+particular operating system and CPU. These instructions come with the
+GNUstep-HOWTO and are also located at the GNUstep web site at
+@url{http://www.gnustep.org}.
+
+Quick installation instructions:
+
+@example
+./configure
+make
+make install
+@end example
+
+To make and install the documentation:
+
+@example
+cd Documentation
+make
+make install
+@end example
+
+@node Configuration, Installation, Introduction, Top
+@section Configuration
+
+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:
+
+@example
+./configure
+@end example
+
+The GNUstep makefile package needs a root directory. If the
+GNUSTEP_SYSTEM_ROOT environment variable is set then configure will
+use its value as the root directory. You can also specify the root
+directory when you run configure with the prefix paramter; the
+following command makes /usr/local/GNUstep the root directory:
+
+@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.
+
+To see more options you can use with configure, type
+
+@example
+./configure --help
+@end example
+
+Look particularly at the end of the list that configure gives, as these
+options are specific to GNUstep. Some of these are described below.
+
+With the GNUstep packages you can use various switches, such as shared
+and debug, to control compilation. for example, ``make shared=no
+debug=yes'' compiles using static libraries with debugging
+information. (Make sure you use the same switches for every package you
+compile, and also when you install).
+
+@menu
+* Backend Bundles::
+* Alternate Libraries::
+* Alternate Thread Library::
+* Warnings for #import::
+* Flat Structure::
+* Cross-Compiling::
+@end menu
+
+@node Backend Bundles, Alternate Libraries, Configuration, Configuration
+@subsection Backend Bundles
+
+By default, the gnustep-make package specifies that GUI backends are built
+as a bundle and loaded in at runtime. This allows one to switch backends
+by simply redefining a user default. If you do not want this behavior (for
+instance, if bundles do not work on your platform), it can be disabled using
+
+@example
+--disable-backend-bundle
+@end example
+
+in the arguments to configure.
+
+@node Alternate Libraries, Alternate Thread Library, Backend Bundles, Configuration
+@subsection Alternate Library Setup
+
+You can specify compilation of alternate libraries by using the
+with-library-combo option.
+
+@example
+./configure --with-library-combo=apple-gnu-gnu
+@end example
+
+to compile with Apple's runtime on Darwin, for example. See the DESIGN
+document for more examples of the variety of library combos.
+
+@node Alternate Thread Library, Warnings for #import, Alternate Libraries, Configuration
+@subsection Alternate Thread Library
+
+You can specify compilation of an alternate thread library from the one that
+is normally used (or if GNUstep does not know what your normal library is)
+with the with-thread-lib option.
+
+@example
+./configure --with-thread-lib="-L/usr/local/lib -lgthread -lglib"
+@end example
+
+to use libgthread as your threading library. Note that the Objective-C
+runtime (libobjc) must have a compatible threading backend in order to
+use this threading library and you must set the appropriate threading backend
+by hand in the GNUmakefile if you are using gnustep-objc. If you also need
+to set compiler flags, use the CPPFLAGS variable when calling configure:
+
+@example
+CPPFLAGS="-I/usr/local/include" ./configure --with-thread-lib="-L/usr/local/lib -lgthread -lglib"
+@end example
+
+@node Warnings for #import, Flat Structure, Alternate Thread Library, Configuration
+@subsection Warnings for #import
+
+Up until gcc 3.4, the #import directive was not implemented correctly.
+As a result, the GCC compiler automatically
+emitted a warning whenever #import was used.
+As of gcc 3.4, this problem has been fixed, so presumable, this warning
+is no longer emitted when code is compiled. If
+you are using an early compiler, you can supress these warnings by adding
+@code{-Wno-import} to @code{CPPFLAGS} in the config.make file.
+
+@node Flat Structure, Cross-Compiling, Warnings for #import, Configuration
+@subsection Configuring for a non-flattened structure
+
+GNUstep is normally configured to support a single target/combo. If you are
+interested in supporting more than one target and/or combo, it's possible to
+configure GNUstep to use a non-'flattened' directory structure.
+You do this by supplying the @code{--disable-flattened} argument to configure.
+You might also want to supply the @code{--enable-multi-platform} option.
+
+In a flattened structure, files are stored at the top-level rather than
+in a @code{$(GNUSTEP_CPU)/$(GNUSTEP_OS)/$(LIBRARY_COMBO)} subdirectory.
+
+@node Cross-Compiling, , Flat Structure, Configuration
+@subsection Configuring for a cross-compile target
+
+By default when you run configure, it assumes that you want to create
+executables for the same host that you are compiling on; however, the
+GNUstep makefile package has been designed to support cross-compiling
+just as easily as normal compiling. In order to add a cross-compile
+target to the GNUstep makefile package, you must rerun configure for
+that target and reinstall the makefile package. By rerunning
+configure, the appropriate target settings are determined, and
+reinstalling the makefile package installs the appropriate files for
+that target. The target parameter is used to specify the target
+platform for cross-compiling:
+
+@example
+./configure --target=i386-mingw32
+make install
+@end example
+
+GNUstep normally is configured to work with only one target. To work
+with multiple targets, you'll need to add @code{--disable-flattened}
+and @code{--enable-multi-platform} to the configure flags. Files for
+the different targets will not be overwritten when you configure and install
+the make package several times.
+
+@example
+./configure --disable-flattened --enable-multi-platform --target=i386-mingw32
+make install
+./configure --disable-flattened --enable-multi-platform --target=sparc-solaris2.5
+make install
+./configure --disable-flattened --enable-multi-platform --target=alpha-linux-gnu
+make install
+@end example
+
+@node Installation, Setup, Configuration, Top
+@section Installation
+
+After you configure the GNUstep makefile package, then you need to
+compile the programs that come with the package. Currently there is
+only a single C program which needs to be compiled; all of the other
+files are either shell scripts or makefile fragments, so you can
+compile and install the makefile package in one step with:
+
+@example
+make install
+@end example
+
+After you have installed the GNUstep makefile package, there is still
+some minor administration to be performed. Based upon whether you are
+setting up the GNUstep environment for a single user or all users on
+your system, perform the appropriate step below.
+
+@node Setup, , Installation, Top
+@section Setting up the GNUstep environment
+
+@menu
+* Multi-User::
+* Single-User::
+@end menu
+
+@node Multi-User, Single-User, Setup, Setup
+@subsection Setting up the GNUstep environment for all users
+
+The GNUstep environment and thus usage of the makefile package is based
+almost solely upon the GNUSTEP_SYSTEM_ROOT environment variable. So
+essentially the setup involved is to make sure that the variable is
+defined for all users. The GNUstep.sh file within the makefile package
+contains all of the environment variable settings required, so you want
+to call that shell. Some systems, like GNU/Linux have an
+@file{/etc/profile.d} directory where scripts can be executed
+automatically. Just copy GNUstep.sh to this directory for it to
+work. For other UNIX systems, there might be a system wide script that
+everyone uses, such as @file{/etc/bashrc}, where you could add
+lines similar to these:
+
+@example
+# Setup for the GNUstep environment
+. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
+@end example
+
+This will source in the GNUstep.sh file and set the environment
+variables; thus making them available for all users. Before executing
+this script, you can setup a default path for scripts in the
+makefiles package to use for searching for tools and apps by
+defining the variable GNUSTEP_PATHLIST (and exporting
+it). By default, it's set to
+
+@example
+$GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_SYSTEM_ROOT
+@end example
+
+which might look something like this:
+
+@example
+~/GNUstep:/usr/GNUstep/Local:/usr/GNUstep/System
+@end example
+
+when all is done.
+
+NB. This path is NOT used by GNUstep tools and applications
+themselves ... they use a standard function
+NSSearchPathForDirectoriesInDomains() to locate files instead.
+
+@node Single-User, , Multi-User, Setup
+@subsection Setting up the GNUstep environment for a single user
+
+The GNUstep environment and thus usage of the makefile package is
+based almost solely upon the GNUSTEP_SYSTEM_ROOT environment variable.
+So essentially the setup involved is to make sure that the variable is
+defined for the user. The GNUstep.sh file within the makefile package
+contains all of the environment variable settings required, so you
+want to call that shell when the user logs in to the system. Most
+shells have some file that you read upon login, for example the BASH
+shell reads the .bash_profile file in the user's home directory. So
+you can add the following lines to that file:
+
+@example
+# Setup for the GNUstep environment
+if [ -f $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh ]; then
+ . $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh
+fi
+@end example
+
+This will source in the GNUstep.sh file and set the environment
+variables; thus making them available for the user.
+
+The GNUstep.sh file will set up GNUSTEP_USER_ROOT to the GNUstep
+subdirectory of the users home directory by default. This may be
+overridden by a user providing a .GNUsteprc file in their home
+directory. It may be overridden on a system-wide basis by supplying
+a .GNUsteprc file in the GNUSTEP_SYSTEM_ROOT directory.
+
+@example
+# Set up to store GNUstep files directly in my home directory
+GNUSTEP_USER_ROOT=~
+@end example
+
+@bye
--- /dev/null
+\documentclass[a4paper]{article}
+%
+% Comment the following line out if you don't have the geometry
+% package on your system.
+%
+\usepackage[includemp=no]{geometry}
+%
+%
+%
+\begin{document}
+\title{GNUstep Makefile Package Internals}
+\author{Nicola Pero n.pero@mi.flashnet.it}
+\date{last days of June 2001 - revised end of July 2001}
+\maketitle
+\tableofcontents
+
+\section{Introduction}
+This short document attempts to explain simply how the gnustep
+makefile package works internally. When I first wrote this document,
+the mechanism used to be extremely complex, involving many recursive
+make invocations; I have now simplified it so that it involves only a
+single recursive make invocation per target/type/operation. As a
+result, I hope that the mechanism is now so simple that you can figure
+out how it works without reading this document, by just reading the
+gnustep-make source code. Anyway, the thing might still not be still
+totally trivial at a first approach, so this document might help you
+to get familiar with the gnustep-make source code in a shorter time
+and with less pain.
+
+\section{From `make' to the internal-all rule}
+Imagine for example that in your \texttt{ GNUmakefile} you include both
+\texttt{tool.make} and \texttt{library.make}, as in the following example:
+\begin{verbatim}
+include $(GNUSTEP_MAKEFILES)/common.make
+
+TOOL_NAME = decrypt
+decrypt_OBJC_FILES = decrypt.m
+
+LIBRARY_NAME = libDvd
+libDvd_OBJC_FILES = decss.m
+
+include $(GNUSTEP_MAKEFILES)/tool.make
+include $(GNUSTEP_MAKEFILES)/library.make
+\end{verbatim} % $ fool emacs's buggy tex mode
+Then you type `make' on the command line. We want to understand what
+happens.
+
+Make will process your \texttt{GNUmakefile}, which includes
+\texttt{tool.make}, and that will include \texttt{rules.make}. In
+\texttt{rules.make} make finds the first rule (the one which is
+executed), which is
+\begin{verbatim}
+all:: before-all internal-all after-all
+\end{verbatim}
+This means that make will build by default that target \texttt{ all},
+and that building that target requires building the
+\texttt{before-all}, \texttt{internal-all} and \texttt{after-all}
+targets. We ignore the \texttt{before-all} and \texttt{after-all}
+targets for now, and only concentrate on the core target, which is
+\texttt{internal-all}.
+
+\section{From the internal-all rule to the \%.variables rule}
+Make needs to build this target \texttt{internal-all}. In
+\texttt{rules.make} this target appears as
+\begin{verbatim}
+internal-all::
+\end{verbatim}
+because of the double colons (that is, because it is
+\texttt{internal-all::} rather than \texttt{internal-all:}) this
+target can have multiple totally separated rules. Each rule must be a
+double colon rule, and is processed separately from the other rules
+(even if they refer to the same target).
+
+The real rules for \texttt{internal-all} are included by the specific
+makefiles; in our example, \texttt{tool.make} includes
+\begin{verbatim}
+internal-all:: $(TOOL_NAME:=.all.tool.variables)
+\end{verbatim} %$
+now - in our case - because \texttt{TOOL\_NAME} is \texttt{decrypt}, then
+this rule actually means
+\begin{verbatim}
+internal-all:: decrypt.all.tool.variables
+\end{verbatim}
+This means that to build \texttt{internal-all}, make has to build (at
+least) the \texttt{decrypt.all.tool.variables} target.
+\texttt{library.make} includes the completely analogous rule
+\begin{verbatim}
+internal-all:: $(LIBRARY_NAME:=.all.library.variables)
+\end{verbatim} %$
+which in our case means
+\begin{verbatim}
+internal-all:: libDvd.all.library.variables
+\end{verbatim}
+This rule is completely separated from the other one; to build
+\texttt{internal-all}, make has to build the two different targets:
+\begin{verbatim}
+decrypt.all.tool.variables
+libDvd.all.library.variables
+\end{verbatim}
+
+\section{The \%.variables rule - dependencies}
+The rule for building these targets is in the \texttt{rules.make} file,
+it is the \texttt{\%.variables} rule:
+\begin{verbatim}
+%.variables: %.tools %.subprojects
+@ \
+target=$(basename $(basename $*)); \
+operation=$(subst .,,$(suffix $(basename $*))); \
+type=$(subst -,_,$(subst .,,$(suffix $*))); \
+echo Making $$operation for $$type $$target...; \
+$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory --no-keep-going \
+ internal-$${type}-$$operation \
+ INTERNAL_$${type}_NAME=$$target \
+ TARGET=$$target \
+ _SUBPROJECTS="$($(basename $(basename $*))_SUBPROJECTS)" \
+ ...
+\end{verbatim}%$
+This rule matches all targets ending in \texttt{.variables}. First of
+all, the rule depends on the corresponding \texttt{\%.tools} and
+\texttt{\%.subprojects} rules. This is because before processing the
+target itself, gnustep-make needs to process the related subprojects
+and (only for frameworks) the framework tools. We ignore this
+complication of subprojects and framework tools for now; if you look
+at the \texttt{\%.subprojects} and \texttt{\%.tools} rules you see
+that they do nothing if you are not actually using subprojects or
+framework tools in your makefile.
+
+\section{The \%.variables rule - second make invocation}
+The rule body parses the \texttt{\%.variables} string - for example when
+the rule is applied to
+\begin{verbatim}
+decrypt.all.tool.variables
+\end{verbatim}
+then (remember that \texttt{\$*} is the stem of the rule,
+\texttt{decrypt.all.tool} in this case) it extracts
+\begin{verbatim}
+target=decrypt
+operation=all
+type=tool
+\end{verbatim}
+and then it runs a make subprocess, specific to that target, type and
+operation. In our case, the \texttt{\%.variables} rules is executed
+twice, once to build
+\begin{verbatim}
+decrypt.all.tool.variables
+\end{verbatim}
+and once to build
+\begin{verbatim}
+libDvd.all.tool.variables
+\end{verbatim}
+so the result is to run two separate make processes:
+\begin{verbatim}
+make internal-tool-all INTERNAL_tool_NAME=decrypt TARGET=decrypt \
+ _SUBPROJECTS="$(decrypt_SUBPROJECTS)" \
+ OBJC_FILES="$(decrypt_OBJC_FILES)" \
+ ...
+make internal-library-all INTERNAL_library_NAME=libDvd TARGET=libDvd \
+ _SUBPROJECTS="$(libDvd_SUBPROJECTS)" \
+ OBJC_FILES="$(libDvs_OBJC_FILES)" \
+ ...
+\end{verbatim}
+where \texttt{...} stands for a lot of other variables, including all
+variables needed to perform the final stage: \texttt{OBJC\_FILES},
+\texttt{C\_FILES}, \texttt{JAVA\_FILES},
+\texttt{ADDITIONAL\_INCLUDE\_DIRS} etc. Note that each make
+subprocess will get passed different, specific, variables. If
+gnustep-make wants to modify these variables in some way, it does it
+at this stage, before passing them to the submake process. For
+example, some library flags are filtered through the
+\texttt{WHICH\_LIB\_SCRIPT}.
+
+What this means is that for each target/type/operation, a separate
+make process is run. For example, if you have two tools,
+\texttt{decrypt} and \texttt{crypt}, and you want to both compile and install
+them, it will run four make subprocesses:
+\begin{verbatim}
+make internal-tool-all INTERNAL_tool_NAME=decrypt ...
+make internal-tool-all INTERNAL_tool_NAME=crypt ...
+make internal-tool-install INTERNAL_tool_NAME=decrypt ...
+make internal-tool-install INTERNAL_tool_NAME=crypt ...
+\end{verbatim}
+This is the `second make invocation'. The make package knows that it
+is being invoked for the second time, because of the
+\texttt{INTERNAL\_tool\_NAME} being non-empty.
+
+\section{Second make invocation}
+Because of the \texttt{INTERNAL\_tool\_NAME} variable being a
+non-empty string (while it was empty in the previous top-level
+invocation), \texttt{tool.make} will include the actual rules to build
+the tool; in particular, the \texttt{internal-tool-all} rule, which is
+then executed and builds the tool. All variables such as
+\texttt{OBJC\_FILES} or the library flags are now available directly
+in the makefiles, they have already been prepared and preprocessed, so
+that the rules in \texttt{tool.make} can just plainly use these
+variables naively to perform their job (compiling, installing, or
+whatever).
+
+\end{document}
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@setfilename machines.info
+@settitle Platform Compatibility
+
+@ifclear HOWTO
+@c Machine Specific, Darwin/ix86, , (DIR)
+@node Machine Specific, Darwin/ix86, , (DIR)
+@chapter Machines
+@end ifclear
+
+Below is a list of machines that people have attempted to compile
+GNUstep on. GNUstep compiles with little or no trouble on many of the
+more popular operating systems. Some machines marked with
+@emph{Unstable} may have some trouble or may not work at all.
+Platforms marked @emph{Needs Testing} are not actively tested by developers
+and need someone to help with reporting problems and fixes.
+Platforms marked @emph{Obsolete} are very old distributions. No one really
+knows if GNUstep works on these although they may.
+
+@menu
+* Darwin/ix86::
+* Darwin/PowerPC::
+* Debian/DEC-Alpha::
+* Debian/i386::
+* Debian/PowerPC::
+* Debian/SPARC::
+* FreeBSD 5.x::
+* FreeBSD 4.x::
+* FreeBSD 3.x::
+* FreeBSD 2.x::
+* Irix 6.5/MIPS::
+* MacOSX/PowerPC::
+* MkLinux/PowerPC::
+* NetBSD::
+* Netwinder::
+* OpenBSD 3.x::
+* OSF/Alpha::
+* RedHat/Intel::
+* Slackware/Intel::
+* Solaris 2.5.1/Sparc::
+* Solaris/Sparc::
+* Solaris 2.7/Intel::
+* Suse 6.x/Intel::
+* Suse/Intel::
+* Suse 7.x/PPC::
+* Unixware-2.1.3/Intel::
+* Windows with CYGWIN::
+* Windows with MinGW::
+* Yellowdog/PowerPC::
+@end menu
+
+A recommended compiler is listed for each machine, if known. You should try
+to use the recommended compiler for compiling GNUstep, as GNUstep is quite
+complex and tends provoke a lot of errors in some compilers. Even versions
+newer than the listed compiler may not work, so don't just get the latest
+version of a compiler expecting it to be better than previous versions.
+
+Compiler notes: If a recommended compiler is not listed, take note of the
+following information before choosing the compiler you use.
+@table @samp
+@item egcs or gcc < 2.95
+Might work, but few people use these now.
+@item gcc 2.95.x
+Probably the oldest compiler that GNUstep is regularly tested with.
+@item gcc 2.96
+Not an official gcc release. Some versions (Redhat, Mandrake) have problems
+that prevent GNUstep from being compiled correctly and cause
+mysterious errors.
+@item gcc 3.0.x
+A fairly good compiler. Recommended.
+@item gcc 3.1
+Several bugs where introduced in the version. It's probably better to
+avoid this one, although it might work fine.
+@item gcc 3.2.x
+Pretty good. Recommended.
+@item gcc 3.3.x
+Recommended. Fixes some bugs relating to protocols as well as other
+improvements.
+@item gcc 3.4
+No info yet.
+@end table
+
+If you have compiled GNUstep on a specific machine, please send information
+about what you needed and any special instructions needed to
+GNUstep @email{bug-gnustep@@gnu.org}.
+
+If your having mysterious trouble with a machine, try compiling GNUstep
+without optimization. Particularly in the newer GCC compilers,
+optimization can break some code. The easiest way to do this is when
+configuring, @samp{CFLAGS="" ./configure}. Or when building,
+@samp{make OPTFLAG=""}.
+
+Also if you manually upgraded gcc and/or make, we recommend reading the
+documentation at @url{http://www.LinuxFromScratch.org} for tips on compiling
+and installing gcc and make. If you had GNUstep previously installed, make sure
+you completely remove all of it, including installed init scripts.
+
+@c -----------------------------------------
+@node Darwin/ix86, Darwin/PowerPC, Machine Specific, Machine Specific
+@section Darwin/ix86
+
+Currently tested on Darwin 7.x
+
+@table @samp
+@item Recommended compiler
+gcc 3.3.2. Older versions will not compile on Darwin.
+
+Default compiler has unknown problems.
+Use the GNU runtime. Download the gcc compiler and configure it with
+--enable-threads=posix. You don't need binutils or anything else.
+
+@item Extra libs needed
+
+@item Special Instructions
+
+Read the @url{README.Darwin} file in the gnustep-make/Documentation
+directory for complete instructions.
+
+@end table
+
+@c -----------------------------------------
+@node Darwin/PowerPC, Debian/DEC-Alpha, Darwin/ix86, Machine Specific
+@section Darwin/PowerPC
+
+Currently tested on Darwin 6.x, 7.x
+
+@table @samp
+@item Recommended compiler
+gcc 3.3.2. Older versions will not compile on Darwin.
+
+Default compiler has unknown problems.
+Use the GNU runtime. Download the gcc compiler and configure it with
+--enable-threads=posix. You don't need binutils or anything else.
+
+@item Extra libs needed
+Use libffi (not ffcall). This should be enabled by default in gnustep-base
+so you don't have to type --enable-libffi. For 6.x, you need the dlcompat
+library (from @url{www.opendarwin.org}) to load bundles (not needed for 7.x).
+
+@item Special Instructions
+
+Read the @url{README.Darwin} file in the gnustep-make/Documentation
+directory for complete instructions.
+
+@end table
+
+See also the MacOSX/PowerPC section
+
+@c -----------------------------------------
+@node Debian/DEC-Alpha, Debian/i386, Darwin/PowerPC, Machine Specific
+@section Debian/DEC-Alpha
+
+@table @samp
+@item Recommended compiler
+Unknown
+
+@item Extra libs needed
+Unknown
+
+@item Special Instructions
+None
+@end table
+
+@c -----------------------------------------
+@node Debian/i386, Debian/PowerPC, Debian/DEC-Alpha, Machine Specific
+@section Debian/i386
+
+Tested on sid.
+@table @samp
+@item Recommended compiler
+Unknown
+
+@item Extra libs needed
+Unknown
+
+@item Special Instructions
+None
+@end table
+
+@c -----------------------------------------
+@node Debian/PowerPC, Debian/SPARC, Debian/i386, Machine Specific
+@section Debian/PowerPC
+
+Tested on sid.
+@table @samp
+@item Recommended compiler
+Unknown
+
+@item Extra libs needed
+Unknown
+
+@item Special Instructions
+None
+@end table
+
+@c -----------------------------------------
+@node Debian/SPARC, FreeBSD 5.x, Debian/PowerPC, Machine Specific
+@section Debian/SPARC
+
+Tested on sid.
+@table @samp
+@item Recommended compiler
+Unknown
+
+@item Extra libs needed
+Unknown
+
+@item Special Instructions
+None
+@end table
+
+@c -----------------------------------------
+@node FreeBSD 5.x, FreeBSD 4.x, Debian/SPARC, Machine Specific
+@section FreeBSD 5.x
+
+Tested on 5.0 and 5.1
+@table @samp
+@item Recommended compiler
+
+@item Extra libs needed
+None.
+
+@item Special Instructions
+Can install via /usr/ports/devel/gnustep, but not all required dependancies
+are installed. See the GNUstep-HOWTO for list of libraries.
+
+@end table
+
+
+@c -----------------------------------------
+@node FreeBSD 4.x, FreeBSD 3.x, FreeBSD 5.x, Machine Specific
+@section FreeBSD 4.x
+
+@table @samp
+@item Recommended compiler
+
+@item Extra libs needed
+Unknown
+
+@item Special Instructions
+For gcc 3.0.4, make WANT_THREADS_SUPPORT=YES
+
+For libxml2 2.4.24, make WITHOUT_PYTHON=YES
+
+@end table
+
+@c -----------------------------------------
+@node FreeBSD 3.x, FreeBSD 2.x, FreeBSD 4.x, Machine Specific
+@section FreeBSD 3.x
+
+Compiles "out of the box" on FreeBSD 3.4.
+
+@table @samp
+@item Recommended compiler
+gcc 2.95.2
+
+@item Extra libs needed
+Unknown
+
+@item Special Instructions
+
+You need to use gmake not make to compile the GNUstep packages. A special
+port of gdb can be used with the Objective-C patches from
+@url{ftp://ftp.pcnet.com/users/eischen/FreeBSD/gdb-4.17-port.tar.gz}
+
+The best compiler for GNUstep is the latest release of the GNU Compiler
+Collection (GCC). You can find it at @url{http://egcs.cygnus.com/}.
+
+If you want to use the native POSIX threads support from @file{libc_r} pass
+@code{--enable-threads=posix} to configure. This is the recommended option as
+this is the FreeBSD threads package that gives the best results --with others
+you may be unable to run some examples like @file{diningPhilosophers}.
+
+The whole compilation process can fail if you have another threads library
+installed so watch out for installed packages like @file{pth} and such.
+Besides the support for libc_r, GNUstep will also look for @file{pth} and
+@file{pcthreads}, so if you have installed them and they aren't detected
+prepare to write a nice bug report.
+
+This can be done more much easily by using the port version. Just @code{cd}
+to @file{/usr/ports/lang/egcs} and do a @code{"make WANT_THREADS=yes install"}.
+Easy.
+
+If configure cannot find tiff.h or the tiff library and you have it installed
+in a non-standard place (even @file{/usr/local}), you may need to pass these
+flags to configure: @code{CFLAGS="-I/usr/local/include"} and
+@code{LDFLAGS="-L/usr/local/lib"}.
+
+@end table
+
+@c -----------------------------------------
+@node FreeBSD 2.x, Irix 6.5/MIPS, FreeBSD 3.x, Machine Specific
+@section FreeBSD 2.x (@emph{Obsolete,Unstable})
+
+@table @samp
+@item Recommended compiler
+gcc 2.8.x
+
+@item Extra libs needed
+Unknown
+
+@item Special Instructions
+Only static libraries work on this system.
+Use /stand/sysinstall to install these packages if you have not
+already done so:
+
+@format
+gmake (GNU make)
+gcc 2.8.x
+@end format
+
+Seems to compile ok, but some tests crash. Possibly due to a
+performace 'hack' in base. Might be a good idea to upgrade to FreeBSD 3.x.
+You need to use gmake not make to compile the GNUstep packages.
+
+@end table
+
+@c -----------------------------------------
+@node Irix 6.5/MIPS, MacOSX/PowerPC, FreeBSD 2.x, Machine Specific
+@section Irix 6.5/MIPS
+
+@table @samp
+@item Recommended compiler
+gcc 3.2.1
+
+To use threads, it's necessary to bootstrap a compiler yourself:
+configure with --enable-threads=posix, that will work as long as you
+link EVERY objective C executable with -lpthread, no matter what
+warnings the irix linker produces!
+
+@item Extra libs needed
+Unknown
+
+@item Special Instructions
+If you cannot link the library because of the very low default limit
+(20480) for the command line length, then you should either use systune
+ncargs to increase the value (maximum is 262144) or link the library by
+hand.
+No libffi-support: Use ffcall
+
+
+@end table
+
+@c -----------------------------------------
+@node MacOSX/PowerPC, MkLinux/PowerPC, Irix 6.5/MIPS, Machine Specific
+@section MacOSX/PowerPC
+
+Currently tested on MacOSX 10.2, 10.3
+
+@table @samp
+@item Recommended compiler
+Default.
+
+@item Extra libs needed
+None.
+
+@item Special Instructions
+By default, on Mac OS X, only the GNUstep extensions are built. This
+is if you want to build gdl2, etc on Mac OS X. Xcode project files
+exist, but they may not be up-to-date. Try:
+
+@example
+cd make
+./configure --with-library-combo=apple-apple-apple
+make install
+
+cd ../base
+./configure --with-xml-prefix=/usr --disable-xmltest
+make debug=yes install
+@end example
+
+@end table
+
+See also the Darwin/PowerPC section.
+
+@c -----------------------------------------
+@node MkLinux/PowerPC, NetBSD, MacOSX/PowerPC, Machine Specific
+@section MkLinux/PowerPC
+
+Tested with R2 RC2 (2004/03/04).
+
+@table @samp
+@item Recommended compiler
+gcc 3.x allthough earlier ones should work if you also install gnustep-objc
+
+@item Extra libs needed
+None.
+
+@item Special Instructions
+Unknown.
+
+@end table
+
+@c -----------------------------------------
+@node NetBSD, Netwinder, MkLinux/PowerPC, Machine Specific
+@section NetBSD
+
+@table @samp
+@item Recommended compiler
+Unknown
+
+@item Extra libs needed
+libiconv
+
+@item Special Instructions
+See the @url{README.NetBSD} file located in the gnustep-make package.
+
+@end table
+
+@c -----------------------------------------
+@node Netwinder, OpenBSD 3.x, NetBSD, Machine Specific
+@section Netwinder (@emph{Unstable})
+
+@table @samp
+@item Recommended compiler
+Build #12 of the system.
+
+@item Extra libs needed
+Unknown
+
+@item Special Instructions
+See @url{http://www.netwinder.org/~patrix}
+@end table
+
+@c -----------------------------------------
+@node OpenBSD 3.x, OSF/Alpha, Netwinder, Machine Specific
+@section OpenBSD 3.x (@emph{Needs Testing})
+
+@table @samp
+@item Recommended compiler
+Unknown
+
+@item Extra libs needed
+Unknown
+
+@item Special Instructions
+Try reading the @url{README.NetBSD} which might work the same on OpenBSD.
+@end table
+
+@c -----------------------------------------
+@node OSF/Alpha, RedHat/Intel, OpenBSD 3.x, Machine Specific
+@section OSF Alpha (@emph{Unstable})
+@c Contact: suzukis@file.phys.tohoku.ac.jp
+
+Information is for Version 3.2C
+
+@table @samp
+@item Recommended compiler
+egcs-1.1.1/1.1.2, gcc-2.95
+
+@item Extra libs needed
+Unknown
+
+@item Special Instructions
+Can only compile with static libraries. Compiler may fail when
+linking executables (e.g. gdnc). Standard ranlib and ar programs are
+to feable to create libraries. Should use GNU binutils versions. Linker
+sometimes fails to find symbols, in which case you may need to link with
+a library twice. For instance, add an extra -lgnustep-gui in
+ADDTIONAL_TOOL_LIBS in the GNUmakefile(.preamble).
+
+@end table
+
+@c -----------------------------------------
+@node RedHat/Intel, Slackware/Intel, OSF/Alpha, Machine Specific
+@section RedHat/Intel
+
+@table @samp
+@item Recommended compiler
+Standard
+
+@item Extra libs needed
+Standard (ffcall or libffi)
+
+@item Special Instructions
+None
+@end table
+
+@c -----------------------------------------
+@node Slackware/Intel, Solaris 2.5.1/Sparc, RedHat/Intel, Machine Specific
+@section Slackware/Intel
+
+@table @samp
+@item Recommended compiler
+Unknown.
+
+@item Extra libs needed
+Unknown.
+
+@item Special Instructions
+Unknown.
+
+@end table
+
+@c -----------------------------------------
+@node Solaris 2.5.1/Sparc, Solaris/Sparc, Slackware/Intel, Machine Specific
+@section Solaris 2.5.1/Sparc (@emph{Obsolete})
+
+This configuration is no longer being tested, but it may still work.
+
+@table @samp
+@item Recommended compiler
+Unknown
+
+@item Extra libs needed
+tiff, Don't use the one in /usr/openwin
+
+@item Special Instructions
+See the Solaris 2.6 section for more instructions.
+@end table
+
+@c -----------------------------------------
+@node Solaris/Sparc, Solaris 2.7/Intel, Solaris 2.5.1/Sparc, Machine Specific
+@section Solaris 2.[678]/Sparc
+
+Tested on Solaris version 6, 7, and 8
+
+@table @samp
+@item Recommended compiler
+gcc 3.2.1 or greater
+gcc 2.95.3. Version 2.95.2 has several bugs that GNUstep tickles.
+gcc 3.04. Not 3.1 - does not compile parts of GNUstep.
+
+@item Extra libs needed
+tiff, Don't use the one in /usr/openwin
+
+@item Special Instructions
+
+Using a POSIX shell (zsh or bash, which should come with Solaris) is
+highly recommended. In fact, some functions, such as compiling frameworks,
+will not work without it.
+
+@end table
+
+Some people have reported problems when using binutils assembler and linker.
+Using the native Solaris assmebler and linker should work fine.
+
+Older Instructions:
+If you are using threads, make sure the Objective-C runtime (libobjc that comes
+with gcc) is compiled with threads enabled (This is true by default) AND that
+it is compiled with the _REENTRANT flag defined (This does not seem to be
+true by default). Or use the gnustep-objc package. Also make sure THREADS is
+set to 'posix' not 'solaris'.
+
+@c -----------------------------------------
+@node Solaris 2.7/Intel, Suse 6.x/Intel, Solaris/Sparc, Machine Specific
+@section Solaris 2.7/Intel
+@c Contact?: Sebastian Niesen <sniesen@niesen.net>
+
+@table @samp
+@item Recommended compiler
+Unknown.
+
+@item Extra libs needed
+Unknown
+
+@item Special Instructions
+Make sure there are no -g compiler flags (i.e. compiling with debug=yes
+might be a problem). Unsure of correct bundle flags - You might need
+to use the alternate flags listed in target.make, line 989. Also,
+configuring gnustep-make with @samp{--disable-backend-bundle} might be
+necessary if you can't get bundles to work.
+You will probable get a lot of text relocation
+warnings, which probably can be ignored. See the other Solaris
+instructions above for more information.
+
+@end table
+
+@c -----------------------------------------
+@node Suse 6.x/Intel, Suse/Intel, Solaris 2.7/Intel, Machine Specific
+@section Suse 6.x/Intel
+
+GNUstep has been tested on version 6.2-6.4 of Suse
+
+@table @samp
+@item Recommended compiler
+Standard
+
+@item Extra libs needed
+None
+
+@item Special Instructions
+It seems that there is a problem with the default kernel build
+distributed with Suse which means that the socket binding used by
+gdnc doesn't work. If you recompile the kernel then it starts working.
+
+@end table
+
+@c -----------------------------------------
+@node Suse/Intel, Suse 7.x/PPC, Suse 6.x/Intel, Machine Specific
+@section Suse/Intel
+
+GNUstep has been tested on version 7.0, 8.0, 8.1, 8.2, 9.0, and 9.1 of Suse
+
+@table @samp
+@item Recommended compiler
+The default compiler that comes with Susu is fine. Also
+gcc2.95.x, gcc3.0.x, 3.1 and 3.2 work, but 2.95 is faster.
+Compile with --threads-enabled (non-standard).
+
+@item Extra libs needed
+None
+
+@item Special Instructions
+None.
+
+@end table
+
+@c -----------------------------------------
+@node Suse 7.x/PPC, Unixware-2.1.3/Intel, Suse/Intel, Machine Specific
+@section Suse 7.x/PPC
+
+GNUstep has been tested on version 7.0 of Suse/PPC
+
+@table @samp
+@item Recommended compiler
+Standard. gcc2.95.x, gcc3.0.x and gc3.1 work, but 2.95 is faster.
+Compile with --threads-enabled (non-standard).
+
+@item Extra libs needed
+None
+
+@item Special Instructions
+
+@end table
+
+@c -----------------------------------------
+@node Unixware-2.1.3/Intel, Windows with CYGWIN, Suse 7.x/PPC, Machine Specific
+@section Unixware-2.1.3/Intel
+@c Contact?: Richard Frith-Macdonald <richard@brainstorm.co.uk>
+
+@table @samp
+@item Recommended compiler
+Unknown
+
+@item Extra libs needed
+Unknown
+
+@end table
+
+Special Instructions for GNUstep installation on Unixware 2.1 systems
+
+@table @asis
+
+@item 1
+Tune the kernel to increase the argument space so that we can pass long
+command-line argument strings to processes (which the makefiles do)
+(/etc/conf/bin/idtune ARG_MAX 102400)
+
+@item 2
+Install raft of the latest GNU software
+
+@format
+gzip (you need this to unpack other stuff)
+make (to build everything)
+m4 (for autoconf etc)
+autoconf (if you need to change anything)
+bison
+flex
+binutils (required by gcc if you want to debug)
+gcc-2.8.1
+ (configure --with-gnu-as --with-gnu-ld --with-stabs)
+ NB. gcc-2.8.1 needs a fix to __do_global_dtors_aux()
+ in crtstuff.c on Unixware 2.1.3
+ (and possibly other unixware versions)
+ The fix is already in recent versions of egcs.
+
+@end format
+
+@example
+==================================
+static void
+__do_global_dtors_aux ()
+@{
+ static func_ptr *p = __DTOR_LIST__ + 1;
+ static int completed = 0;
+
+ if (completed)
+ return;
+
+ while (*p)
+ @{
+ p++;
+ (*(p-1)) ();
+ @}
+
+#ifdef EH_FRAME_SECTION_ASM_OP
+ __deregister_frame_info (__EH_FRAME_BEGIN__);
+#endif
+ completed = 1;
+@}
+======================================
+@end example
+
+@item 3
+Having got gcc working - it's probably a good idea to rebuild
+all your GNU software using it!
+
+@item 4
+Build gstep as normal.
+
+@item 5
+The SIOCGIFCONF ioctl sometimes doesn't work on unixware after applying
+some of the OS patches.
+
+So I have added a '-a' flag to gdomap to give it the name of a file
+containing IP address and netmask information for the network interfaces
+on the system.
+
+You need to set up a file (I suggest '/etc/gdomap_addresses') containing
+the information for your machine and modify your system startup files in
+/etc/rc?.d to run gdomap, telling it to use that file.
+
+eg. If your machine has an IP address of '193.111.111.2' and is on a
+class-C network, your /etc/gdomap_addresses file would contain the line
+
+@example
+193.111.111.2 255.255.255.0
+@end example
+
+and your startup file would contain the lines
+
+@example
+. /usr/local/GNUstep/Library/Makefiles/GNUstep.sh
+gdomap -a /etc/gdomap_addresses
+@end example
+
+@end table
+
+If you don't set gdomap up correctly, Distributed Objects will not
+work.
+
+@c -----------------------------------------
+@node Windows with CYGWIN, Windows with MinGW, Unixware-2.1.3/Intel, Machine Specific
+@section Windows with CYGWIN (@emph{Needs Testing})
+
+@table @samp
+@item Recommended compiler
+gcc 3.3.1 or later (with libobjc and libjava (if using libffi))
+
+@item Extra libs needed
+Objective-C library DLL (@url{ftp://ftp.gnustep.org/pub/gnustep/windows/cygwin})
+for shared libs. It's a good idea to remove the libobjc.a that comes with gcc
+(gcc -v for location) so that it isn't accidentally found.
+For ffcall, you should get version 1.8b or above (the earlier ones don't
+compile). There are still some problems with structure passing, but that is
+generally not supported on any architecture. libffi also works.
+
+@item Special Instructions
+
+Make sure you have good shared libraries for everthing. Sometimes a bad
+shared library (like libtiff) will cause odd and untraceable problems.
+See @url{README.Cygwin} for information on compiling.
+
+@end table
+
+@c -----------------------------------------
+@node Windows with MinGW, Yellowdog/PowerPC, Windows with CYGWIN, Machine Specific
+@section Windows with MinGW
+
+@table @samp
+@item Recommended compiler
+See below.
+
+@item Extra libs needed
+See below.
+
+@item Special Instructions
+See the @url{README.MinGW} file located in the gnustep-make Documentation
+directory for instructions. Windows NT/2000/XP only. Win98 machines and
+earlier are very buggy and are not supported.
+Native GUI backend is alpha version.
+@end table
+
+@c -----------------------------------------
+@node Yellowdog/PowerPC, , Windows with MinGW, Machine Specific
+@section Yellowdog/PowerPC
+
+@table @samp
+@item Recommended compiler
+Standard
+
+@item Extra libs needed
+Standard (ffcall or libffi)
+
+@item Special Instructions
+
+@end table
+
+@ifclear HOWTO
+@include end.texi
+@end ifclear
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@c %**start of header
+@setfilename make.info
+@settitle GNUstep Makefile Package
+@c %**end of header
+
+@setcontentsaftertitlepage
+@smallbook
+@setchapternewpage odd
+
+@ifinfo
+
+Copyright @copyright{} 2000 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
+any later version published by the Free Software Foundation.
+
+@end ifinfo
+
+@titlepage
+
+@title GNUstep Makefile Package
+
+@page
+
+@vskip 0pt plus 1filll
+Copyright @copyright{} 2000 Free Software Foundation, Inc.
+
+@sp 1
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation.
+
+@end titlepage
+@page
+
+@c Makefile Package Chapter
+@node Top, Makefile Introduction, (dir), (dir)
+@chapter Makefile Package
+
+@menu
+* Makefile Introduction::
+* Makefile Structure::
+* Running Make::
+* GNUmakefile.preamble::
+* GNUmakefile.postamble::
+* Project Types::
+* Common Variables::
+@end menu
+
+@node Makefile Introduction, Makefile Structure, Top, Top
+@section Introduction
+
+The Makefile package is a system of make commands that is designed to
+encapsulate all the complex details of building and installing various types
+of projects from libraries to applications to documentation. This frees the
+developer to focus on the details of their particular project. Only
+a fairly simple main makefile need to be written which specifies the
+type of project and files involved in the project.
+
+@node Makefile Structure, Running Make, Makefile Introduction, Top
+@section Structure of a Makefile
+
+Here is an example makefile (named GNUmakefile to emphasis the fact that it relies on special features of the GNU make program).
+
+@smallexample
+#
+# An example GNUmakefile
+#
+
+# Include the common variables defined by the Makefile Package
+include $(GNUSTEP_MAKEFILES)/common.make
+
+# Build a simple Objective-C program
+OBJC_PROGRAM_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 GNUmakefile.postamble
+@end smallexample
+
+This is all that is necessary to define the project.
+
+
+@node Running Make, GNUmakefile.preamble, Makefile Structure, Top
+@section Running Make
+@menu
+* Debug Information::
+* Profile Information::
+* Library Types::
+@end menu
+
+Normally to compile a package which uses the Makefile Package it is
+purely a matter of typing @code{make} from the top-level directory of
+the package, and the package is compiled without any additional
+interaction.
+
+@node Debug Information, Profile Information, Running Make, Running Make
+@subsection Debug Information
+
+By default the Makefile Package does not tell the compiler to generate
+debugging information when compiling Objective-C and C files. The
+following command illustrates how to tell the Makefile Package to pass
+the appropriate flags to the compiler so that debugging information is
+put into the binary files.
+
+@smallexample
+make debug=yes
+@end smallexample
+
+When debugging is turned on, the Makefile Package turns off optimization
+so the user must override the optimization flag when running make if
+both debugging information and optimization is to be performed by the
+compiler. Use the variable @var{OPTFLAG} to override the
+optimization flag.
+
+@node Profile Information, Library Types, Debug Information, Running Make
+@subsection Profile Information
+
+By default the Makefile Package does not tell the compiler to generate
+profiling information when compiling Objective-C and C files. The
+following command illustrates how to tell the Makefile Package to pass
+the appropriate flags to the compiler so that profiling information is
+put into the binary files.
+
+@smallexample
+make profile=yes
+@end smallexample
+
+@node Library Types, , Profile Information, Running Make
+@subsection Static, Shared, and Dynamic Link Libraries
+
+By default the Makefile Package will generate a shared library if it is
+building a library project type, and it will link with shared libraries
+if it is building an application or command line tool project type. The
+following command illustrates how to tell the Makefile Package not to
+build using shared libraries but using static libraries instead.
+
+@smallexample
+make shared=no
+@end smallexample
+
+This default is only applicable on systems that support shared
+libraries; systems that do not support shared libraries will always
+build using static libraries. Some systems support dynamic link
+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
+@section Project Types
+@menu
+* aggregate.make::
+* application.make::
+* bundle.make::
+* ctool.make::
+* documentation.make::
+* framework.make::
+* java.make::
+* library.make::
+* native-library.make::
+* objc.make::
+* palette.make::
+* rpm.make::
+* service.make::
+* subproject.make::
+* tool.make::
+@end menu
+
+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
+file:
+
+@example
+include $(GNUSTEP_MAKEFILES)/application.make
+@end example
+
+Each project type is independent of the others. If you want to create
+two different types of projects within the same directory (e.g. a tool
+and a java program), include both the desired makefiles in your main
+make file.
+
+@node aggregate.make, application.make, Project Types, Project Types
+@subsection Aggregate (@file{aggregate.make})
+
+An Aggregate project is a project that consists of several
+subprojects. Each subproject can be of any other valid project type
+(including the Aggregate type). The only project variable is the
+SUBPROJECTS variable
+
+@defvr {Aggregate project} SUBPROJECTS
+@code{SUBPROJECTS} defines the directory names that hold the subprojects
+that the Aggregate project should build.
+@end defvr
+
+@node application.make, bundle.make, aggregate.make, Project Types
+@subsection Graphical Applications (@file{application.make})
+
+An application is an Objective-C program that includes a GUI component,
+and by default links in all the GNUstep libraries required for GUI
+development, such as the Base and Gui libraries.
+
+@node bundle.make, ctool.make, application.make, Project Types
+@subsection Bundles (@file{bundle.make})
+
+A bundle is a collection of resources and code that can be used to
+enhance an existing application or tool dynamically using the NSBundle
+class from the GNUstep base library.
+
+@node ctool.make, documentation.make, bundle.make, Project Types
+@subsection Command Line C Tools (@file{ctool.make})
+
+A ctool is a project that only uses C language files.
+Otherwise it is similar to the ObjC project type.
+
+@node documentation.make, framework.make, ctool.make, Project Types
+@subsection Documentation (@file{documentation.make})
+
+The Documentation project provides rules to use various types of
+documentation such as texi and LaTeX documentation, and convert them
+into finished documentation (info, PostScript, HTML, etc).
+
+@node framework.make, java.make, documentation.make, Project Types
+@subsection Frameworks (@file{framework.make})
+
+A Framework is a collection of resources and a library that provides
+common code that can be linked into a Tool or Application. In many
+respects it is similar to a Bundle.
+
+@node java.make, library.make, framework.make, Project Types
+@subsection Java (@file{java.make})
+
+This project provides rules for building java programs. It also makes it
+easy to make java projects that interact with the GNUstep libraries.
+
+@node library.make, native-library.make, java.make, Project Types
+@subsection Libraries (@file{library.make})
+@menu
+* library.make variables::
+* Example Library Makefile::
+@end menu
+
+The Makefile Package provides a project type for building libraries;
+libraries can be built as static libraries, shared libraries, or dynamic
+link libraries (DLL) if the platform supports that type of library.
+Static libraries are supported on all platforms; while, shared libraries
+and DLLs are only supported on some platforms.
+
+@node library.make variables, Example Library Makefile, library.make, library.make
+@subsubsection Project Variables
+
+@defvr {Library project} LIBRARY_NAME
+@code{LIBRARY_NAME} should be assigned the list of name of libraries to
+be generated. Most UNIX systems expect that the filename for the
+library has the word @file{lib} prefixed to the name; i.e. the @file{c}
+library has filename of @file{libc}. Prefix the @file{lib} to the
+library name when it is specified in the @code{LIBRARY_NAME} variable
+because the Makefile Package will not automatically prefix it.
+@end defvr
+
+@defvr {Library project} C_FILES
+@code{xxx_C_FILES} is the list of C files, with a @file{.c} extension,
+that are to be compiled to generate the @strong{xxx} library.
+Replace the @strong{xxx} with the name of the library as listed by
+the @code{LIBRARY_NAME} variable.
+@end defvr
+
+@defvr {Library project} OBJC_FILES
+@code{xxx_OBJC_FILES} is the list of Objective-C files, with a @file{.m}
+extension, that are to be compiled to generate the @strong{xxx} library.
+Replace the @strong{xxx} with the name of the library as listed by the
+@code{LIBRARY_NAME} variable.
+@end defvr
+
+@defvr {Library project} PSWRAP_FILES
+@code{xxx_PSWRAP_FILES} is the list of PostScript wrap files, with a
+@file{.psw} extension, that are to be compiled to generate the
+@strong{xxx} library. PostScript wrap files are processed by the
+@file{pswrap} utility which generates a @file{.c} and a @file{.h} file
+from each @file{.psw} file; the generate @file{.c} file is the file
+actually compiled. Replace the @strong{xxx} with the name of the
+library as listed by the @code{LIBRARY_NAME} variable.
+@end defvr
+
+@defvr {Library project} HEADER_FILES
+@code{xxx_HEADER_FILES} is the list of header filenames that are to be
+installed with the library. If a filename has a directory path prefixed
+to it then that prefix will be maintained when the headers are
+installed. It is up to the user to make sure that the installation
+directory exists; otherwise, an error will occur when the library is
+installed, see @ref{library.make
+variables,,xxx_HEADER_FILES_INSTALL_DIR}. Replace the @strong{xxx} with
+the name of the library as listed by the @code{LIBRARY_NAME} variable.
+@end defvr
+
+@defvr {Library project} HEADER_FILES_DIR
+@code{xxx_HEADER_FILES_DIR} is the relative path from the current
+directory, where the makefile is located, to where the header files
+specified by @code{xxx_HEADER_FILES} are located. If a filename
+specified in @code{xxx_HEADER_FILES} has a directory path prefixed to it
+then that path will not be removed when the Makefile Package accesses
+the files, so do not specify a path with @code{xxx_HEADER_FILES_DIR}
+that is already prefixed to the header filenames, see @ref{library.make
+variables,,xxx_HEADER_FILES_INSTALL_DIR}. @code{xxx_HEADER_FILES_DIR}
+is optional; leaving it blank or undefined, and the Makefile Package
+assumes that the relative path to the header files is the current
+directory where the makefile resides. Replace the @strong{xxx} with the
+name of the library as listed by the @code{LIBRARY_NAME} variable.
+@end defvr
+
+@defvr {Library project} HEADER_FILES_INSTALL_DIR
+@code{xxx_HEADER_FILES_INSTALL_DIR} specifies the relative subdirectory
+path below @code{GNUSTEP_HEADERS} where the header files are to be
+installed. If this directory or any of its parent directories do not
+exist, then the Makefile Package will create them. The Makefile Package
+prefixes @code{xxx_HEADER_FILES_INSTALL_DIR} to each of the filenames in
+@code{xxx_HEADER_FILES} when they are installed, so if the filenames in
+@code{xxx_HEADER_FILES} already have a directory path prefixed then the
+user is responsible for creating that directory, the Makefile Package
+will not create. @code{xxx_HEADER_FILES_INSTALL_DIR} is optional;
+leaving it blank or undefined, and the Makefile Package assumes that the
+installation directory is just @code{GNUSTEP_HEADERS} with no
+subdirectory. Replace the @strong{xxx} with the name of the library as
+listed by the @code{LIBRARY_NAME} variable.
+@end defvr
+
+@defvr {Library project} CPPFLAGS
+@code{xxx_CPPFLAGS} are additional flags that will be passed to the
+compiler preprocessor when compiling Objective-C and C files to generate
+the @strong{xxx} library. Adding flags here does not override the
+default @code{CPPFLAGS}, see @ref{Overridable Flags,,CPPFLAGS}, they are
+in addition to @code{CPPFLAGS}. These flags are specific to the
+@strong{xxx} library, see @ref{GNUmakefile.preamble,,ADDITIONAL_CPPFLAGS},
+to see how to specify global preprocessor flags. Replace the
+@strong{xxx} with the name of the listed as listed by the
+@code{LIBRARY_NAME} variable.
+@end defvr
+
+@defvr {Library project} OBJCFLAGS
+@code{xxx_OBJCFLAGS} are additional flags that will be passed to the
+compiler when compiling Objective-C files to generate the @strong{xxx}
+library. Adding flags here does not override the default
+@code{OBJCFLAGS}, see @ref{Overridable Flags,,OBJCFLAGS}, they are in
+addition to @code{OBJCFLAGS}. These flags are specific to the
+@strong{xxx} library, see @ref{GNUmakefile.preamble,,ADDITIONAL_OBJCFLAGS},
+to see how to specify global compiler flags. Replace the @strong{xxx}
+with the name of the library as listed by the @code{LIBRARY_NAME}
+variable.
+@end defvr
+
+@defvr {Library project} CFLAGS
+@code{xxx_CFLAGS} are additional flags that will be passed to the
+compiler when compiling C files to generate the @strong{xxx} library.
+Adding flags here does not override the default @code{CFLAGS}, see
+@ref{Overridable Flags,,CFLAGS}, they are in addition to @code{CFLAGS}.
+These flags are specific to the @strong{xxx} library, see
+@ref{GNUmakefile.preamble,,ADDITIONAL_CFLAGS}, to see how to specify global
+compiler flags. Replace the @strong{xxx} with the name of the library
+as listed by the @code{LIBRARY_NAME} variable.
+@end defvr
+
+@defvr {Library project} LDFLAGS
+@code{xxx_LDFLAGS} are additional flags that will be passed to the
+linker when it creates the @strong{xxx} library. Adding flags here does
+not override the default @code{LDFLAGS}, see @ref{Overridable
+Flags,,LDFLAGS}, they are in addition to @code{LDFLAGS}. These flags
+are specific to the @strong{xxx} library, see
+@ref{GNUmakefile.preamble,,ADDITIONAL_LDFLAGS}, to see how to specify
+global linker flags. Replace the @strong{xxx} with the name of the
+library as listed by the @code{LIBRARY_NAME} variable.
+@end defvr
+
+@defvr {Library project} INCLUDE_DIRS
+@code{xxx_INCLUDE_DIRS} is the list of additional directories that the
+compiler will search when it is looking for include files; these flags
+are specific to the @strong{xxx} library, see
+@ref{GNUmakefile.preamble,,ADDITIONAL_INCLUDE_DIRS}, to see how to specify
+additional global include directories. The directories should be
+specified as @samp{-I} flags to the compiler. The additional include
+directories will be placed before the normal GNUstep and system include
+directories, and before any global include directories specified with
+@code{ADDITIONAL_INCLUDE_DIRS}, so they will always be searched first.
+Replace the @strong{xxx} with the name of the library as listed by the
+@code{LIBRARY_NAME} variable.
+@end defvr
+
+@node Example Library Makefile, , library.make variables, library.make
+@subsubsection Example Makefile
+
+This example makefile illustrates two libraries, @file{libone} and
+@file{libtwo}, that are to be generated.
+
+@smallexample
+
+#
+# An example makefile
+#
+
+# Include the common variables defined by the Makefile Package
+include $(GNUSTEP_MAKEFILES)/common.make
+
+# Two libraries
+LIBRARY_NAME = libone libtwo
+
+#
+# The files for the libone library
+#
+# The Objective-C files to compile
+libone_OBJC_FILES = one.m draw.m
+
+# The C source files to be compiled
+libone_C_FILES = parse.c
+
+# The PostScript wrap source files to be compiled
+libone_PSWRAP_FILES = drawing.psw
+
+# The header files for the library
+libone_HEADER_FILES_DIR = ./one
+libone_HEADER_FILES_INSTALL_DIR = one
+libone_HEADER_FILES = one.h draw.h
+
+#
+# The files for the libtwo library
+#
+# The Objective-C files to compile
+libtwo_OBJC_FILES = two.m another.m test.m
+
+# The header files for the library
+libtwo_HEADER_FILES_DIR = ./two
+libtwo_HEADER_FILES_INSTALL_DIR = two
+libtwo_HEADER_FILES = two.h another.h test.h common.h
+
+# Option include to set any additional variables
+-include GNUmakefile.preamble
+
+# Include in the rules for making libraries
+include $(GNUSTEP_MAKEFILES)/library.make
+
+# Option include to define any additional rules
+-include GNUmakefile.postamble
+
+@end smallexample
+
+Notice that the @file{libone} library has Objective-C, C, and PostScript
+wrap files to be compiled; while, the @file{libtwo} library only has
+some Objective-C files.
+
+The header files for the @file{libone} library reside in the @file{one}
+subdirectory from where the sources are located, and the header files
+will be installed into the @file{one} subdirectory within
+@code{GNUSTEP_HEADERS}. Likewise the header files for the @file{libtwo}
+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
+@subsection Native Library (@file{native-library.make})
+
+A "native library" is a project which is to be built as a shared
+library on most targets and as a framework on Darwin. (Currently
+this is only the case for apple-apple-apple.) In other
+words, it is to be built as the most appropriate native equivalent
+of a traditional shared library (see @ref{library.make} and
+@ref{framework.make}).
+
+@defvr {Native Library project} NATIVE_LIBRARY_NAME
+@code{NATIVE_LIBRARY_NAME} should be the name of the native library,
+without the 'lib'. All the other variables are the same as
+the ones used in libraries and frameworks.
+@end defvr
+
+To compile something against a native library, you can use
+@code{ADDITIONAL_NATIVE_LIBS += MyLibrary}
+This will be converted into -lMyLibrary link flag on for most
+targets and into -framework MyLibrary link flag for
+apple-apple-apple.
+
+@node objc.make, palette.make, native-library.make, Project Types
+@subsection Objective-C Programs (@file{objc.make})
+@menu
+* objc.make variables::
+* Example ObjC Makefile::
+@end menu
+
+The Makefile Package provides a project type that is useful for building
+Objective-C programs that do not depend upon the GNUstep libraries.
+Objective-C programs which only use the Objective-C Runtime Library and
+the classes it defines are candidates for this project type.
+
+@node objc.make variables, Example ObjC Makefile, objc.make, objc.make
+@subsubsection Project Variables
+
+Most of the project variables work the same as in Library
+projects (see @ref{library.make}).
+
+@defvr {Objective-C program project} OBJC_PROGRAM_NAME
+@code{OBJC_PROGRAM_NAME} is the list of names of Objective-C programs
+that are to be built; each name should be unique as it is the name of
+the executable file that will be generated.
+@end defvr
+
+@defvr {Objective-C program project} OBJC_LIBS
+@code{xxx_OBJC_LIBS} is the list of additional libraries that the linker
+will use when linking to create the @strong{xxx} Objective-C program
+executable file. These libraries are specific to the @strong{xxx}
+Objective-C program, see @ref{GNUmakefile.preamble,,ADDITIONAL_OBJC_LIBS},
+to see how to specify additional global libraries. These libraries are
+placed before all of the Objective-C Runtime and system libraries, and
+before the global libraries specified with @code{ADDITIONAL_OBJC_LIBS},
+so that they will be searched first when linking. The additional
+libraries should be specified as @samp{-l} flags to the linker as the
+following example illustrates. Replace the @strong{xxx} with the name
+of the program as listed by the @code{OBJC_PROGRAM_NAME} variable.
+@end defvr
+
+@node Example ObjC Makefile, , objc.make variables, objc.make
+@subsubsection Example Makefile
+
+This makefile illustrates two Objective-C programs, @file{simple} and
+@file{list} that are to be generated.
+
+@smallexample
+#
+# An example makefile
+#
+
+# Include the common variables defined by the Makefile Package
+include $(GNUSTEP_MAKEFILES)/common.make
+
+# Build a simple Objective-C program
+OBJC_PROGRAM_NAME = simple list
+
+# Have the Objective-C runtime macro be defined for simple program
+simple_CPPFLAGS = $(RUNTIME_DEFINE)
+
+# The Objective-C files to compile for simple program
+simple_OBJC_FILES = simple.m
+
+# The Objective-C files to compile for list program
+list_OBJC_FILES = list.m linkedlist.m
+
+# The C files to compile for list program
+list_C_FILES = sort.c
+
+# Option include to set any additional variables
+-include GNUmakefile.preamble
+
+# Include in the rules for making Objective-C programs
+include $(GNUSTEP_MAKEFILES)/objc.make
+
+# Option include to define any additional rules
+-include GNUmakefile.postamble
+@end smallexample
+
+The @file{simple} Objective-C program only consists of single
+Objective-C file; while, the @file{list} Objective-C program consists of
+two Objective-C files and one C file. The @file{simple} Objective-C
+program use the variable defined by the Makefile Package,
+@code{RUNTIME_DEFINE}, to define a macro based upon the Objective-C
+Runtime library; presumably @file{simple.m} has code which is dependent
+upon the Objective-C Runtime.
+
+@node palette.make, rpm.make, objc.make, Project Types
+@subsection Palettes (@file{palette.make})
+
+A palette is a Bundle that provides some kind of GUI functionality.
+Otherwise it is similar to the Bundle project.
+
+@node rpm.make, service.make, palette.make, Project Types
+@subsection RPMs (@file{rpm.make})
+
+The RPM project provides rules for automatically generating RPM spec
+files in order to make RPM distributions. Note that this project
+makefile is included automatically when you include any other project
+type in your GNUmakefile. It is non necessary to include
+@file{rpm.make}.
+
+Except for @code{PACKAGE_NAME}, which is required, all the following
+variables are optional. It is recommended that you set them anyway in
+order to provide the standard information that is present in most RPM
+distributions.
+
+@defvr {RPM} PACKAGE_NAME
+@code{PACKAGE_NAME} defines the name of the RPM distribution. 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 {RPM} 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 {RPM} GNUSTEP_INSTALLATION_DIR
+Set @code{GNUSTEP_INSTALLATION_DIR} to the installation
+directory. Typically this is either @code{$(GNUSTEP_SYSTEM_ROOT)}),
+@code{$(GNUSTEP_LOCAL_ROOT)}, or @code{$(GNUSTEP_USER_ROOT)}. If not set
+it defaults to @code{$(GNUSTEP_LOCAL_ROOT)}.
+@end defvr
+
+@defvr {RPM} RPM_DISABLE_RELOCATABLE
+Set this to @code{YES} if the package must be in @code{$(GNUSTEP_SYSTEM_ROOT)}
+and is not relocatable.
+@end defvr
+
+@defvr {RPM} PACKAGE_NEEDS_CONFIGURE
+Set this to @code{YES} if a configure script needs to be run before
+compilation
+@end defvr
+
+In addition you need to provide a stub spec file named for the package
+name, such as this example @file{libobjc.spec.in} file:
+
+@example
+Release: 1
+Source: ftp://ftp.gnustep.org/pub/gnustep/libs/%@{gs_name@}-%@{gs_version@}.
+tar.gz
+Copyright: GPL
+Group: Development/Libraries
+Summary: Objective-C Runtime Library
+Packager: Adam Fedor <fedor@@gnu.org>
+Vendor: The GNUstep Project
+URL: http://www.gnustep.org/
+
+%description
+Library containing the Objective-C runtime.
+@end example
+
+@node service.make, subproject.make, rpm.make, Project Types
+@subsection Services (@file{service.make})
+
+A Service is like a Tool that provides a service to a running GNUstep program.
+
+@node subproject.make, tool.make, service.make, Project Types
+@subsection Subprojects (@file{subproject.make})
+
+A Subproject provides a way to organize code in a large application into
+subunits. The code in the subproject is merged in with the main tool
+or application.
+
+@node tool.make, , subproject.make, Project Types
+@subsection Command Line Tools (@file{tool.make})
+
+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
+@section Global Variables (@file{GNUmakefile.preamble})
+
+@file{GNUmakefile.preamble} is an optional file that may be put within the
+package for declaring global makefile variables for the package. The
+filename, @file{GNUmakefile.preamble}, is just a convention; likewise, the
+variables defined within it can be put in the normal @file{GNUmakefile}
+versus in this special file. However, the reason for this convention is
+that the @file{GNUmakefile} may be automatically maintained by a project
+management system, like Project Center, so any changes made to
+@file{GNUmakefile} may be discarded by that project management system.
+
+The file, @file{GNUmakefile.preamble}, in the Makefile Package is a
+template that can be used the project's @file{GNUmakefile.preamble}. It is
+not necessary to have a @file{GNUmakefile.preamble} with the project unless
+it is actually needed, the Makefile Package will only include it if it
+is available, see @ref{Makefile Structure} for information on how the
+Makefile Package includes a @file{GNUmakefile.preamble}.
+
+The rest of this section describes the individual global variables that
+the Makefile Package uses which are generally placed in the package's
+@file{GNUmakefile.preamble}.
+
+@defvar ADDITIONAL_CPPFLAGS
+@code{ADDITIONAL_CPPFLAGS} are additional flags that will be passed to
+the compiler preprocessor. Generally any macros to be defined for all
+files are placed here; the are passed for both Objective-C and C files
+that are compiled. @code{RUNTIME_DEFINE}, @code{FOUNDATION_DEFINE},
+@code{GUI_DEFINE}, and @code{GUI_BACKEND_DEFINE} are some makefile
+variables which define macros that can be assigned to
+@code{ADDITIONAL_CPPFLAGS}. The following example illustrates the use
+of @code{ADDITIONAL_CPPFLAGS} to define a macro for the Objective-C
+Runtime Library plus an additional macro that is specific to the
+package.
+@end defvar
+
+@smallexample
+ADDITIONAL_CPPFLAGS = $(RUNTIME_DEFINE) -DVERBOSE=1
+@end smallexample
+
+@defvar ADDITIONAL_OBJCFLAGS
+@code{ADDITIONAL_OBJCFLAGS} are additional flags that will be passed to
+the compiler when compiling Objective-C files. Adding flags here does
+not override the default @code{OBJCFLAGS}, see @ref{Overridable
+Flags,,OBJCFLAGS}, they are in addition to @code{OBJCFLAGS}. Generally
+@code{ADDITIONAL_OBJCFLAGS} are placed before @code{OBJCFLAGS} when the
+compiler is executed, but one should avoid having any placement
+sensitive flags because the order of the flags is not guaranteed. The
+following example illustrates how you can pass additional Objective-C
+flags.
+@end defvar
+
+@smallexample
+ADDITIONAL_OBJCFLAGS = -Wno-protocol
+@end smallexample
+
+@defvar ADDITIONAL_CFLAGS
+@code{ADDITIONAL_CFLAGS} are additional flags that will be passed to the
+compiler when compiling C files. Adding flags here does not override
+the default @code{CFLAGS}, see @ref{Overridable Flags,,CFLAGS}, they are
+in addition to @code{CFLAGS}. Generally @code{ADDITIONAL_CFLAGS} are
+placed before @code{CFLAGS} when the compiler is executed, but one
+should avoid having any placement sensitive flags because the order of
+the flags is not guaranteed. The following example illustrates how you
+can pass additional C flags.
+@end defvar
+
+@smallexample
+ADDITIONAL_CFLAGS = -finline-functions
+@end smallexample
+
+@defvar ADDITIONAL_LDFLAGS
+@code{ADDITIONAL_LDFLAGS} are additional flags that will be passed to
+the linker when it creates an executable; these flags are passed when
+linking a command line tool, and application, or an Objective-C program.
+Adding flags here does not override the default @code{LDFLAGS}, see
+@ref{Overridable Flags,,LDFLAGS}, they are in addition to
+@code{LDFLAGS}. Generally @code{ADDITIONAL_LDFLAGS} are placed before
+@code{LDFLAGS} when the linker is executed, but one should avoid having
+any placement sensitive flags because the order of the flags is not
+guaranteed. The following example illustrates how you can pass addition
+linker flags.
+@end defvar
+
+@smallexample
+ADDITIONAL_LDFLAGS = -v
+@end smallexample
+
+@defvar ADDITIONAL_INCLUDE_DIRS
+@code{ADDITIONAL_INCLUDE_DIRS} is the list of additional directories that
+the compiler will search when it is looking for include files. The
+directories should be specified as @samp{-I} flags to the compiler. The
+additional include directories will be placed before the normal GNUstep
+and system include directories, so they will always be searched first.
+The following example illustrates two additional include directories;
+@code{/usr/local/gnu/include} will be searched first, then
+@code{/usr/gnu/include}, and finally the GNUstep and system directories
+which are automatically defined by the Makefile Package.
+@end defvar
+
+@smallexample
+ADDITIONAL_INCLUDE_DIRS = -I/usr/local/gnu/include -I/usr/gnu/include
+@end smallexample
+
+@defvar ADDITIONAL_LIB_DIRS
+@code{ADDITIONAL_LIB_DIRS} is the list of additional directories that
+the linker will search when it is looking for library files. The
+directories should be specified as @samp{-L} flags to the linker. The
+additional library directories will be placed before the GNUstep and
+system library directories so that they will be searched first by the
+linker. The following example illustrates two additional library
+directories; @code{/usr/local/gnu/lib} will be searched first, then
+@code{/usr/gnu/lib}, and finally the GNUstep and system directories
+which are automatically defined by the Makefile Package.
+@end defvar
+
+@smallexample
+ADDITIONAL_LIB_DIRS = -L/usr/local/gnu/lib -L/usr/gnu/lib
+@end smallexample
+
+@defvar ADDITIONAL_OBJC_LIBS
+@code{ADDITIONAL_OBJC_LIBS} is the list of additional libraries that the
+linker will use when linking command line tools, applications, and
+Objective-C programs, see @ref{tool.make}, @ref{application.make}, and
+@ref{objc.make}. For Objective-C programs, @code{ADDITIONAL_OBJC_LIBS}
+is placed before all of the Objective-C Runtime and system libraries so
+that they will be searched first when linking. For command line tools
+and applications, @code{ADDITIONAL_OBJC_LIBS} is placed @emph{before}
+all of the Objective-C Runtime and system libraries but @emph{after} the
+Foundation and GUI libraries. Libraries specified with
+@code{ADDITIONAL_OBJC_LIBS} should only depend upon the Objective-C
+Runtime and/or system functions, not Foundation or GUI classes;
+Foundation dependent libraries should be specified with
+@code{ADDITIONAL_TOOL_LIBS} and GUI dependent libraries should be
+specified with @code{ADDITONAL_GUI_LIBS}. The additional libraries
+should be specified as @samp{-l} flags to the linker as the following
+example illustrates.
+@end defvar
+
+@smallexample
+ADDITIONAL_OBJC_LIBS = -lSwarm
+@end smallexample
+
+@defvar ADDITIONAL_TOOL_LIBS
+@code{ADDITIONAL_TOOL_LIBS} is the list of additional libraries that the
+linker will use when linking command line tools and applications, see
+@ref{tool.make} and @ref{application.make}. For command line tools,
+@code{ADDITIONAL_TOOL_LIBS} is placed before all of the GNUstep and
+system libraries so that they will be searched first when linking. For
+applications, @code{ADDITIONAL_TOOL_LIBS} is placed before the
+Foundation and system libraries but after the GUI libraries. Libraries
+specified with @code{ADDITIONAL_TOOL_LIBS} should only depend upon the
+Foundation classes and/or system functions, not GUI classes; GUI
+dependent libraries should be specified with @code{ADDITIONAL_GUI_LIBS}.
+The additional libraries should be specified as @samp{-l} flags to the
+linker as the following example illustrates.
+@end defvar
+
+@smallexample
+ADDITIONAL_TOOL_LIBS = -lone -lsimple
+@end smallexample
+
+@defvar ADDITIONAL_GUI_LIBS
+@code{ADDITIONAL_GUI_LIBS} is the list of additional libraries that the
+linker will use when linking applications, see @ref{application.make}.
+@code{ADDITIONAL_GUI_LIBS} is placed before all of the GUI, Foundation,
+and system libraries so that they will be searched first when linking.
+The additional libraries should be specified as @samp{-l} flags to the
+linker as the following example illustrates.
+@end defvar
+
+@smallexample
+ADDITIONAL_GUI_LIBS = -lMiscGui
+@end smallexample
+
+@defvar LIBRARIES_DEPEND_UPON
+@code{LIBRARIES_DEPEND_UPON} is the set of libraries that the shared
+library depends upon, see @ref{library.make} for more information about
+building shared libraries; this variable is only relevant for library
+project types. On some platforms when a shared library is built, any
+libraries which the object code in the shared library depends upon must
+be linked in the generation of the shared library. This is similar to
+the process of linking an executable file like a command line tool or
+Objective-C program except that the result is a shared library.
+Libraries specified with @code{LIBRARIES_DEPEND_UPON} should be listed
+as @samp{-l} flags to the linker; when possible use variables defined by
+the Makefile Package to specify GUI, Foundation, or system libraries;
+like @code{GUI_LIBS}, @code{FND_LIBS}, @code{OBJC_LIBS}, or
+@code{SYSTEM_LIBS}. @code{LIBRARIES_DEPEND_UPON} is independent of
+@code{ADDITIONAL_OBJC_LIBS}, @code{ADDITIONAL_TOOL_LIBS}, and
+@code{ADDITIONAL_GUI_LIBS}, so any libraries specified there may need to
+be specified with @code{LIBRARIES_DEPEND_UPON}. The following example
+illustrates the use of @code{LIBRARIES_DEPEND_UPON} for a shared library
+that is depend upon the Foundation, ObjC, system libraries and an
+additional user library.
+@end defvar
+
+@smallexample
+LIBRARIES_DEPEND_UPON = -lsimple $(FND_LIBS) $(OBJC_LIBS) $(SYSTEM_LIBS)
+@end smallexample
+
+@defvar ADDITIONAL_INSTALL_DIRS
+@code{ADDITIONAL_INSTALL_DIRS} is the list of additional directories
+that should be created when the Makefile Package installs the file for
+the project. These directories are only one that the project needs to
+be created but that the Makefile Package does not automatically create.
+The directories should be absolute paths but use the
+@code{GNUSTEP_INSTALLATION_DIR} variable and other Makefile Package
+define variables, see @ref{Directory Paths}, so that the directories get
+created in the appropriate place relative to the other file installed
+for the project. The following example illustrates how two additional
+directories can be created during installation.
+@end defvar
+
+@smallexample
+ADDITIONAL_INSTALL_DIRS = $(GNUSTEP_INSTALLATION_DIR)/MyProject \
+ $(GNUSTEP_RESOURCES)/MyProject
+@end smallexample
+
+@node GNUmakefile.postamble, Project Types, GNUmakefile.preamble, Top
+@section Global Rules (@file{GNUmakefile.postamble})
+
+The @file{GNUmakefile.postamble} file is an optional file you may
+include in your package to define additional rules that should be
+executed when making and/or installing the project. There is a template
+@file{GNUmakefile.postamble} file in the Makefile package that you can
+use as an example. Most of the rules are self explanatory. The
+@samp{before-} rules define things that should happen before a process
+is executed (e.g. @samp{before-all} for before compilation,
+@samp{before-install} for before installation). The @samp{after-} rules
+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
+@section Common Variables (@file{common.make})
+@menu
+* Directory Paths::
+* Scripts::
+* Platform Information::
+* Library Combination::
+* 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
+Makefile Package. Most variables refer to directory paths, both
+absolute and relative, where files will be installed, but other
+variables are defined based upon the target platform that the person is
+compiling for. Do not change the values of any of these automatically
+defined variables as the resultant behaviour of the Makefile Package is
+undefined.
+
+@node Directory Paths, Scripts, Common Variables, Common Variables
+@subsection Directory Paths
+
+@defvar GNUSTEP_MAKEFILES
+@code{GNUSTEP_MAKEFILES} is the absolute path to the directory where the
+Makefile Package files are located. Use @code{GNUSTEP_MAKEFILES} to
+refer to a makefile fragment or script file from the Makefile Package
+within a makefile; the @code{GNUSTEP_MAKEFILES} variable should be
+only be used within makefiles and not referenced within C or Objective-C
+programs.
+@end defvar
+
+@defvar GNUSTEP_APPS
+@code{GNUSTEP_APPS} is the absolute path to the directory where GUI
+applications are installed. This variable is dependent upon the
+@code{GNUSTEP_INSTALLATION_DIR} variable, so the path will change
+accordingly if the user specifies a different installation root
+directory.
+@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
+target platform independent should be installed in @code{GNUSTEP_TOOLS};
+target platform dependent command line tools should be placed in the
+appropriate subdirectory of @code{GNUSTEP_TOOLS}, see @ref{Directory
+Paths,,GNUSTEP_TARGET_DIR}, and @ref{Directory
+Paths,,TOOL_INSTALLATION_DIR}. This variable is dependent upon the
+@code{GNUSTEP_INSTALLATION_DIR} variable, so the path will change
+accordingly if the user specifies a different installation root
+directory.
+@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
+the @code{GNUSTEP_HEADERS} directory, but in a subdirectory as specified
+by the project which owns the files, see @ref{library.make} for more
+information. @code{GNUSTEP_HEADERS} should contain platform independent
+header files because the files are shared by all platforms. Any target
+platform dependent header files should be placed in the appropriate
+subdirectory as specified by @code{GNUSTEP_TARGET_DIR}. This variable
+is dependent upon the @code{GNUSTEP_INSTALLATION_DIR} variable, so the
+path will change accordingly if the user specifies a different
+installation root directory.
+@end defvar
+
+@defvar GNUSTEP_LIBRARIES_ROOT
+@code{GNUSTEP_LIBRARIES_ROOT} is the absolute path for the root
+directory where libraries are installed. Because libraries are binary
+objects and thus inherently target platform dependent, no libraries
+should actually reside in @code{GNUSTEP_LIBRARIES_ROOT}; libraries are
+placed in the appropriate subdirectory taking the target and possibly
+the library combo into account, see @ref{Directory
+Paths,,GNUSTEP_TARGET_LIBRARIES}, and @ref{Directory
+Paths,,GNUSTEP_LIBRARIES}. This variable is dependent upon the
+@code{GNUSTEP_INSTALLATION_DIR} variable, so the path will change
+accordingly if the user specified a different installation root
+directory.
+@end defvar
+
+@defvar GNUSTEP_TARGET_LIBRARIES
+@code{GNUSTEP_TARGET_LIBRARIES} is the absolute path for the directory
+where libraries are installed taking the target platform into account.
+It is a subdirectory of @code{GNUSTEP_LIBRARIES_ROOT} and is where
+libraries that do not depend upon the library combination, GNUstep or
+others, should be placed. This variable is dependent upon the
+@code{GNUSTEP_INSTALLATION_DIR} variable, so the path will change
+accordingly if the user specifies a different installation root
+directory.
+@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
+combination into account. It is a subdirectory of
+@code{GNUSTEP_TARGET_LIBRARIES} and therefore a subdirectory of
+@code{GNUSTEP_LIBRARIES_ROOT}. This directory is generally where
+library project types, see @ref{library.make}, will install the library
+file. This variable is dependent upon the
+@code{GNUSTEP_INSTALLATION_DIR} variable, so the path will change
+accordingly if the user specifies a different installation root
+directory.
+@end defvar
+
+@defvar GNUSTEP_RESOURCES
+@code{GNUSTEP_RESOURCES} is the absolute path for the directory where
+resource files are installed; example resources are 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_LIBRARIES_ROOT}; it is dependent upon the
+@code{GNUSTEP_INSTALLATION_DIR} variable, so the path will change
+accordingly if the user specifies a different installation root
+directory.
+@end defvar
+
+@defvar GNUSTEP_HOST_DIR
+@code{GNUSTEP_HOST_DIR} is the subdirectory path for the host platform CPU
+and operating system. It is a composed from the @code{GNUSTEP_HOST_CPU}
+and @code{GNUSTEP_HOST_OS} variables.
+@end defvar
+
+@defvar GNUSTEP_TARGET_DIR
+@code{GNUSTEP_TARGET_DIR} is the subdirectory path for the target platform
+CPU and operating system. It is composed from the
+@code{GNUSTEP_TARGET_CPU} and @code{GNUSTEP_TARGET_OS} variables.
+@code{GNUSTEP_TARGET_DIR} is generally used as part of the installation
+path when platform specific files are installed.
+@end defvar
+
+@defvar GNUSTEP_OBJ_DIR
+@code{GNUSTEP_OBJ_DIR} is the subdirectory path where the Makefile
+Package places binary files: object files, libraries, executables,
+produced by the compiler. The Makefile Package separates binary files
+for different target platforms, different library combinations, and
+different compile options into different directories; these different
+directories are subdirectories from the current directory where the
+makefile resides. This structure allows a package to be compiled for
+different target platforms, different library combinations, and
+different compile options @emph{in place}; i.e. the binary files are
+separated from each other so a compile pass from one set of options do
+not overwrite or erase binary files from a previous compile pass with
+different options. Generally the user does not use this variable;
+however, if the package needs to manually install some binary files than
+the makefile fragment uses this variable to reference the path where the
+binary file is located.
+@end defvar
+
+@node Scripts, Platform Information, Directory Paths, Common Variables
+@subsection Scripts
+
+@defvar CONFIG_GUESS_SCRIPT
+@code{CONFIG_GUESS_SCRIPT} is the absolute path to the
+@file{config.guess} script within the Makefile Package; this script is
+used to determine host and target platform information. The Makefile
+Package executes this script to determine the values of the host
+platform variables: @code{GNUSTEP_HOST}, @code{GNUSTEP_HOST_CPU},
+@code{GNUSTEP_HOST_VENDOR}, @code{GNUSTEP_HOST_OS}, and the target
+platform variables: @code{GNUSTEP_TARGET}, @code{GNUSTEP_TARGET_CPU},
+@code{GNUSTEP_TARGET_VENDOR}, @code{GNUSTEP_TARGET_OS}; generally the
+user does not need to execute this script because the Makefile Package
+executes it automatically.
+@end defvar
+
+@defvar CONFIG_SUB_SCRIPT
+@code{CONFIG_SUB_SCRIPT} is the absolute path to the @file{config.sub}
+script within the Makefile Package; this script takes a platform name
+and canonicalizes it, i.e. it puts the name in a standard form. The
+Makefile Package uses this script when the user specifies a target
+platform for compilation; the target platform name is canonicalized so
+that the Makefile Package can properly parse the name into its different
+components. Generally the user does not execute this script.
+@end defvar
+
+@defvar CONFIG_CPU_SCRIPT
+@code{CONFIG_CPU_SCRIPT} is the absolute path to the @file{cpu.sh}
+script within the Makefile Package; this script extracts the CPU name
+from a canonicalized platform name. Generally the user does not execute
+this script; it is used internally by the Makefile Package.
+@end defvar
+
+@defvar CONFIG_VENDOR_SCRIPT
+@code{CONFIG_VENDOR_SCRIPT} is the absolute path to the @file{vendor.sh}
+script within the Makefile Package; this script extracts the vendor name
+from a canonicalized platform name. Generally the user does not execute
+this script; it is used internally by the Makefile Package.
+@end defvar
+
+@defvar CONFIG_OS_SCRIPT
+@code{CONFIG_OS_SCRIPT} is the absolute path to the @file{os.sh} script
+within the Makefile Package; this script extracts the operating system
+name from a canonicalized platform name. Generally the user does not
+execute this script; it is used internally by the Makefile Package.
+@end defvar
+
+@defvar CLEAN_CPU_SCRIPT
+@code{CLEAN_CPU_SCRIPT} is the absolute path to the @file{clean_cpu.sh}
+script within the Makefile Package; this script takes a platform CPU
+name and @emph{cleans} it for use by the Makefile Package. The process
+of cleaning refers to the situation where numerous equivalent
+processors, which have different names, are mapped to a single name.
+For example, the Intel line of processors: i386, i486, Pentium, all have
+different CPU names, but the Makefile Package considers them equivalent
+and cleans those names so that the single name @file{ix86} is used.
+Generally the user does not execute this script; it is used internally
+by the Makefile Package.
+@end defvar
+
+@defvar CLEAN_VENDOR_SCRIPT
+@code{CLEAN_VENDOR_SCRIPT} is the absolute path to the
+@file{clean_vendor.sh} script within the Makefile Package; this script
+takes a platform vendor name and @emph{cleans} it for use by the
+Makefile Package. The process of cleaning refers to the situation where
+numerous equivalent vendors, which have different names, are mapped to a
+single name. Generally the user does not execute this script; it is
+used internally by the Makefile Package.
+@end defvar
+
+@defvar CLEAN_OS_SCRIPT
+@code{CLEAN_OS_SCRIPT} is the absolute path to the @file{clean_os.sh}
+script within the Makefile Package; this script takes a platform
+operating system name and @emph{cleans} it for use by the Makefile
+Package. The process of cleaning refers to the situation where numerous
+equivalent operating systems, which have different names, are mapped to
+a single name. Generally the user does not execute this script; it is
+used internally by the Makefile Package.
+@end defvar
+
+@node Platform Information, Library Combination, Scripts, Common Variables
+@subsection Host and Target Platform Information
+
+@defvar GNUSTEP_HOST
+@code{GNUSTEP_HOST} is the canonical host platform name; i.e. the name
+of the platform which is performing compilation of programs. For
+example, a SPARC machine by Sun Microsystems running the Solaris 2.5.1
+operating system has the name @code{sparc-sun-solaris2.5.1}.
+@end defvar
+
+@defvar GNUSTEP_HOST_CPU
+@code{GNUSTEP_HOST_CPU} is the CPU name for the canonical host platform
+name; i.e. the name of the CPU platform which is performing compilation
+of programs. The Makefile Package cleans this CPU name with the
+@code{CLEAN_CPU_SCRIPT} script before using it internally. For example,
+the canonical host platform name of @code{i586-pc-linux-gnu} has a CPU
+name of @code{ix86}.
+@end defvar
+
+@defvar GNUSTEP_HOST_VENDOR
+@code{GNUSTEP_HOST_VENDOR} is the vendor name for the canonical host
+platform; i.e. the name of the vendor platform which is performing
+compilation of programs. The Makefile Package cleans this vendor name
+with the @code{CLEAN_VENDOR_SCRIPT} script before using it internally.
+For example, the canonical host platform name of
+@code{sparc-sun-solaris2.5.1} has a vendor name of @code{sun}.
+@end defvar
+
+@defvar GNUSTEP_HOST_OS
+@code{GNUSTEP_HOST_OS} is the operating system name for the canonical
+host platform; i.e. the name of the operating system platform which is
+performing compilation of programs. The Makefile Package cleans this
+operating system name with the @code{CLEAN_OS_SCRIPT} script before
+using it internally. For example, the canonical host platform name of
+@code{i586-pc-linux-gnu} has an operating system name of
+@code{linux-gnu}.
+@end defvar
+
+@defvar GNUSTEP_TARGET
+@code{GNUSTEP_TARGET} is the canonical target platform name;
+i.e. compilation of programs generate object code for this platform. By
+default the target platform is the same as the host platform unless the
+user specifies a different target when running make, see Cross
+Compiling.
+@end defvar
+
+@defvar GNUSTEP_TARGET_CPU
+@code{GNUSTEP_TARGET_CPU} is the CPU name for the canonical target
+platform; i.e. compilation of programs generate object code for this CPU
+platform. The Makefile Package cleans this operating system name with
+the @code{CLEAN_CPU_SCRIPT} script before using it internally. By
+default the target CPU platform is the same as the host CPU platform,
+@code{GNUSTEP_HOST_CPU}, unless the user specifies a different target
+platform when running make, see Cross Compiling.
+@end defvar
+
+@defvar GNUSTEP_TARGET_VENDOR
+@code{GNUSTEP_TARGET_VENDOR} is the vendor name for the canonical target
+platform; i.e. compilation of programs generate object code for this
+vendor platform. The Makefile Package cleans this vendor name with the
+@code{CLEAN_VENDOR_SCRIPT} script before using it internally. By
+default the target vendor platform is the same as the host vendor
+platform, @code{GNUSTEP_HOST_VENDOR}, unless the user specifies a
+different target platform when running make, see Cross Compiling.
+@end defvar
+
+@defvar GNUSTEP_TARGET_OS
+@code{GNUSTEP_TARGET_OS} is the operating system name for the canonical
+target platform; i.e. compilation of programs generate object code for
+this operating system platform. The Makefile Package cleans this
+operating system name with the @code{CLEAN_OS_SCRIPT} script before
+using it internally. By default the target operating system platform is
+the same as the host operating system platform, @code{GNUSTEP_HOST_OS},
+unless the user specifies a different target platform, see Cross
+Compiling.
+@end defvar
+
+@node Library Combination, Overridable Flags, Platform Information, Common Variables
+@subsection Library Combination
+
+@defvar OBJC_RUNTIME_LIB
+@code{OBJC_RUNTIME_LIB} is assigned the code that indicates the
+Objective-C Runtime library which compiled Objective-C programs will
+use; the three possible values are: @samp{gnu} for the GNU Runtime,
+@samp{nx} for the NeXT Runtime, and @samp{sun} for the Sun Microsystems
+Runtime. The Objective-C Runtime library can be changed to use a
+library other than the default with the @samp{library_combo} make
+parameter, see @ref{Running Make} for more details. Read @ref{Library
+Combination} for more information on how the Makefile Package handles
+different library combinations. If a makefile must perform specific
+operations dependent upon the Objective-C Runtime library then this
+variable is the one to check.
+@end defvar
+
+@defvar RUNTIME_DEFINE
+@code{RUNTIME_DEFINE} is assigned a preprocessor flag that can be passed
+to the compiler which defines a macro based upon the Objective-C Runtime
+library that compiled Objective-C programs will use. This macro is
+useful if the compiled program must execute different code based upon
+the Objective-C Runtime being used. See @ref{GNUmakefile.preamble} for an
+example on how to pass this preprocessor flag when compiling. The three
+possible values are: @samp{-DGNU_RUNTIME=1} for the GNU Runtime,
+@samp{-DNeXT_RUNTIME=1} for the NeXT Runtime, and @samp{-DSun_RUNTIME=1}
+for the Sun Microsystems Runtime.
+@end defvar
+
+@defvar FOUNDATION_LIB
+@code{FOUNDATION_LIB} is assigned the code that indicates the Foundation
+Kit library, as specified by the OpenStep specification, which compiled
+Objective-C programs will use; the four possible values are: @samp{gnu}
+for the GNUstep Base Library, @samp{nx} for the NeXT Foundation Kit
+Library, @samp{sun} for the Sun Microsystems Foundation Kit Library, and
+@samp{fd} for the libFoundation Library. The Foundation Kit library can
+be changed to use a library other than the default with the
+@samp{library_combo} make parameter, see @ref{Running Make} for more details.
+Read @ref{Library Combination} for more information on how the Makefile
+Package handles different library combinations. If a makefile must
+perform specific operations dependent upon the Foundation Kit library
+then this variable is the one to check.
+@end defvar
+
+@defvar FND_DEFINE
+@code{FND_DEFINE} is assigned a preprocessor flag that can be passed to
+the compiler which defines a macro based upon the Foundation Kit
+library, as specified by the OpenStep specification, which compiled
+Objective-C programs will use. This macro is useful if the compiled
+program must execute different code based upon the Foundation Kit
+library being used. See @ref{GNUmakefile.preamble} for an example on how to pass
+this preprocessor flag when compiling. The four possible values are:
+@samp{-DGNUSTEP_BASE_LIBRARY=1} for the GNUstep Base Library,
+@samp{-DNeXT_Foundation_LIBRARY=1} for the NeXT Foundation Kit Library,
+@samp{-DSun_Foundation_LIBRARY=1} for the Sun Microsystems Foundation
+Kit Library, and @samp{-DLIB_FOUNDATION_LIBRARY=1} for the libFoundation
+Library.
+@end defvar
+
+@defvar GUI_LIB
+@code{GUI_LIB} is assigned the code that indicates the Application Kit
+library, as specified by the OpenStep specification, which compiled
+Objective-C programs will use; the two possible values are: @samp{gnu}
+for the GNUstep GUI Library and @samp{nx} for the NeXT Application Kit
+Library. The Application Kit library can be changed to use a library
+other than the default with the @samp{library_combo} make parameter, see
+@ref{Running Make} for more details. Read @ref{Library Combination} for more
+information on how the Makefile Package handles different library
+combinations. If a makefile must perform specific operations dependent
+upon the Application Kit library then this variable is the one to check.
+@end defvar
+
+@defvar GUI_DEFINE
+@code{GUI_DEFINE} is assigned a preprocessor flag that can be passed to
+the compiler which defines a macro based upon the Application Kit
+library, as specified by the OpenStep specification, which compiled
+Objective-C programs will use. This macro is useful if the compiled
+program must execute different code based upon the Application Kit
+library being used. See @ref{GNUmakefile.preamble} for an example on how
+to pass this preprocessor flag when compiling. The two possible values
+are: @samp{-DGNUSTEP_GUI_LIBRARY=1} for the GNUstep GUI Library and
+@samp{-DNeXT_Application_LIBRARY=1} for the NeXT Application Kit
+Library.
+@end defvar
+
+@defvar GUI_BACKEND_LIB
+@code{GUI_BACKEND_LIB} is assigned the code that indicates the backend
+library which compiled Objective-C programs will use in conjunction with
+the GNUstep GUI Library. The three possible values are: @samp{xdps} for
+the GNUstep X/DPS GUI Backend Library, @samp{nsx} for the NSKit GUI
+Backend Library, and @samp{w32} for the MediaBook WIN32 GUI Backend
+Library. @code{GUI_BACKEND_LIB} is only relevant when @code{GUI_LIB} is
+set to @samp{gnu}; otherwise, @code{GUI_BACKEND_LIB} will be set to
+@samp{nil} to indicate that there is no backend library.
+@code{GUI_BACKEND_LIB} can be changed to use a library other than the
+default with the @samp{library_combo} make parameter, see @ref{Running
+Make} for more details. Read @ref{Library Combination} for more
+information on how the Makefile Package handles different library
+combinations. If a makefile must perform specific operations dependent
+upon the backend library then this variable is the one to check.
+@end defvar
+
+@defvar GUI_BACKEND_DEFINE
+@code{GUI_BACKEND_DEFINE} is assigned a preprocessor flag that can be
+passed to the compiler which defines a macro based upon the backend
+library which compiled Objective-C programs will use in conjunction with
+the GNUstep GUI Library. This macro is useful if the compiled program
+must execute different code based upon the backend library being used.
+See @ref{GNUmakefile.preamble} for an example on how to pass this
+preprocessor flag when compiling. The three possible values are:
+@samp{-DXDPS_BACKEND_LIBRARY=1} for the GNUstep X/DPS GUI Backend
+Library, @samp{-DNSX_BACKEND_LIBRARY=1} for the NSKit GUI Backend
+Library, and @samp{-DW32_BACKEND_LIBRARY=1} for the MediaBook WIN32 GUI
+Backend Library. @code{GUI_BACKEND_DEFINE} is not defined if there is
+not backend library; i.e. @code{GUI_BACKEND_LIB} is @samp{nil}.
+@end defvar
+
+@node Overridable Flags, , Library Combination, Common Variables
+@subsection Overridable Flags
+
+@defvar OBJCFLAGS
+@code{OBJCFLAGS} are flags that are passed to the compiler when
+compiling Objective-C files. The user can override this variable when
+running make and specify different flags as the following command
+illustrates:
+@end defvar
+
+@smallexample
+make OBJCFLAGS="-Wno-implicit -Wno-protocol"
+@end smallexample
+
+@defvar CFLAGS
+@code{CFLAGS} are flags that are passed to the compiler when compiling C
+files. The user can override this variable when running make and
+specify different flags as the following command illustrates:
+@end defvar
+
+@smallexample
+make CFLAGS="-Wall"
+@end smallexample
+
+@defvar OPTFLAG
+@code{OPTFLAG} is the flag used to indicate the optimization level that
+the compiler should perform when compiling Objective-C and C files; this
+flag is set to @samp{-O2} by default, but the user can override this
+setting when running make as the following command illustrates:
+@end defvar
+
+@smallexample
+make OPTFLAG=
+@end smallexample
+
+This command sets the optimization flag to be empty so that no
+optimization will be performed by the compiler.
+
+@defvar GNUSTEP_INSTALLATION_DIR
+@code{GNUSTEP_INSTALLATION_DIR} is the root directory where the package
+will install its files; overriding this variable when running make will
+change all of the variables within the Makefile Package that depend upon
+it; the following command illustrates the use of this variable:
+@end defvar
+
+@smallexample
+make GNUSTEP_INSTALLATION_DIR="/GNUstep"
+@end smallexample
+
+This command states that the @file{/GNUstep} directory should be used as
+the installation root directory; applications in the package will be
+installed under @file{/GNUstep/Apps} directory, libraries in the package
+will be installed under the @file{/GNUstep/Library/Libraries} directory,
+command line tools will be installed under the @file{/GNUstep/Tools}
+directory, and etc. By default the Makefile Package sets
+@code{GNUSTEP_INSTALLATION_DIR} to @code{GNUSTEP_LOCAL_ROOT} unless
+@code{GNUSTEP_LOCAL_ROOT} is empty in which case
+@code{GNUSTEP_INSTALLATION_DIR} will be set to
+@code{GNUSTEP_SYSTEM_ROOT}. Some packages will also override
+@code{GNUSTEP_INSTALLATION_DIR} within their makefile to force the
+package to install in (say) @code{GNUSTEP_SYSTEM_ROOT} instead of the
+default @code{GNUSTEP_LOCAL_ROOT} directory, but if the user sets the
+value of @code{GNUSTEP_INSTALLATION_DIR} when running make then that
+setting takes precedence over all others.
+
+@bye
--- /dev/null
+@c -*-texinfo-*-
+@ifclear ANNOUNCE-ONLY
+@chapter NEWS
+
+@ifset TEXT-ONLY
+@include version.texi
+@end ifset
+
+The currently released version is @samp{@value{GNUSTEP-MAKE-VERSION}}.
+@end ifclear
+
+@section Changes in version @samp{1.10.0}
+
+@itemize @bullet
+@item a GNUsteprc file is now automatically created and installed in
+$GNUSTEP_SYSTEM_ROOT, which sets the system-wide default for the user
+root directory (default=~/GNUstep, which can be overriden with the
+@code{--with-user-root} argument to configure, or by modifying GNUsteprc
+after configuration.)
+@item make_services is not run by GNUstep.sh anymore. You must run this
+manually now (see the gnustep-gui documentation).
+@item Palettes use a plist instead of a strings format file now for the
+palette.table file.
+@item You can use the @code{--enable-native-objc-exceptions} argument to
+configure to enable use of built in objc exceptions with compilers that
+support it.
+@end itemize
+
+@ifclear ANNOUNCE-ONLY
+
+@section Changes in version @samp{1.9.2}
+
+@itemize @bullet
+@item Application and Bundles use the latest convention on Apple.
+@item Improve/Simplify dependency checking when making docs
+@end itemize
+
+@section Changes in version @samp{1.9.1}
+
+@itemize @bullet
+@item Remove @code{--disable-import} option
+@item README.Darwin for darwin/MacOSX install
+@item Framework version and naming clarified.
+@end itemize
+
+@section Changes in version @samp{1.9.0}
+
+@itemize @bullet
+@item Support for building in a separate build dir.
+@item Add @code{--enable-strip-makefiles} option to configure
+@item List of classes in a framework gets written to the plist file.
+@end itemize
+
+@section Changes in version @samp{1.8.0}
+
+Read the NEWS file for a complete list of changes since the last stable
+release. The major difference from 1.6.0 is that the locations of certain
+directories have changed. Generally this will not cause a problem unless
+your GNUstep directory is shared by multiple machines running this and
+earlier (1.6.x) versions of the software.
+
+@section Changes in version @samp{1.7.4}
+
+Bug fixes.
+
+@section Changes in version @samp{1.7.3}
+
+@itemize @bullet
+@item Adds library combo to Headers directory if not flattened.
+@item Add Markup file (Renaissance) support.
+@end itemize
+
+@section Changes in version @samp{1.7.2}
+
+--enable-flattened (Flat directory structure) is on by default.
+
+@itemize @bullet
+@item On WIN32 use HOMEPATH in preference to USERPROFILE
+@item netbsd and openbsd compile fixes.
+@end itemize
+
+@section Changes in version @samp{1.7.1}
+
+Bug fixes.
+
+@section Changes in version @samp{1.7.0}
+
+This version contains a major change in the location of certain
+directories and installed files as detailed in the @file{filesystem.texi}
+document. When installing this version for the first time, all old
+directories and files in those directories will be moved to the new
+locations automatically. However, you should update all GNUstep versions
+on any machine you have them installed on in order to avoid any
+incompatibilities.
+
+Other changes:
+
+@itemize @bullet
+@item Support for preprocessed Info.plists.
+@end itemize
+
+@section Changes in version @samp{1.6.0}
+
+Make now configures by default for only one system. To compile and run
+GNUstep for multiple platforms from the same directory, use the
+configure argument --enable-multi-platform.
+
+@itemize @bullet
+@item Auto-build def file for DLLs
+@item Work natively on MacOSX systems. Now use apple-apple-apple
+instead of nx-nx-nx on OSX systems.
+@item More efficient checks for re-making a project.
+@end itemize
+
+@section Changes in version @samp{1.5.1}
+
+@itemize @bullet
+@item Framework support rewritten, also supports multiple names.
+@item API change: Replace frameowork's xxx_TOOLS by xxx_COPY_INTO_DIR.
+@item Unified link commands between libraries and frameworks (LIB_LINK_*).
+@item New 'make strings' target for localization support.
+@item Speed improvements.
+@item Doesn't try to build OSX bundle on GNUstep and vice versa.
+@item API change: Tools/Subproj can have resources.
+@item API change: TOOL_INSTALL_DIR.
+@end itemize
+
+@section Changes in version @samp{1.5.0}
+
+@itemize @bullet
+@item Add NetBSD Elf support
+@end itemize
+
+@section Changes in version @samp{1.4.0}
+
+@itemize @bullet
+@item Update Darwin/GNU gcc and Irix targets
+@end itemize
+
+@section Changes in version @samp{1.3.4}
+
+This is a first prerelease version for 1.4.
+
+@itemize @bullet
+@item Use gnugc-gnu-gnu library combo for garbage collecting version.
+@item Add support for --library-combo in opentool
+@item Change GNUSTEP_PATHPREFIX_LIST to GNUSTEP_PATHLIST
+@item Add verbosity levels. Use make messages=yes for full messages.
+@end itemize
+
+@section Changes in version @samp{1.3.3}
+
+@itemize @bullet
+@item Recognizes XXX_STANDARD_INSTALL=no to not do installation.
+@item Updated instructions for MingW/MSYS installation.
+@end itemize
+
+@section Changes in version @samp{1.3.2}
+
+@itemize @bullet
+@item Instructions for building on Windows with MSYS
+@item Resolve library dependencies better on Windows
+@item Fix frameworks in RPMs and DEBs
+@item Continued reorganization.
+@end itemize
+
+@section Changes in version @samp{1.3.0}
+
+The package has gone through an extensive reorganization to break up
+each sub-make into two separate components. This allows for much
+simplified code and lots of code sharing between components. As a side
+effect, it also increased the speed of the code by at least a factor of
+2.
+
+@itemize @bullet
+@item Force shared=yes for cygwin and mingw
+@item Bundles copy resources from subprojects.
+@item Better resource management. Resources handled accross all project types.
+@item Simplified and fixed user root location between make and base libraries.
+@item Changed Apps directory to Applications
+@item Fixes for MacOSX, MingW
+@end itemize
+
+@section Changes in version @samp{1.2.1}
+
+@itemize @bullet
+@item the source distribution code has been rewritten to be more general
+and extended. Packages built using gnustep-make now automatically
+have handy targets building tarballs from sources or from CVS imports.
+@item implemented support for auto-dependencies, which means that any object
+file automatically depends on all the header files which were used to
+build it. Only works with newer compilers.
+@item implemented INSTALL_AS_USER and INSTALL_AS_GROUP.
+@item implemented a strip=yes option.
+@item various bug fixes and minor improvements.
+@end itemize
+
+@section Changes in version @samp{1.2.0}
+
+@itemize @bullet
+@item The core rules and internals of gnustep-make have been fundamentally
+redesigned and rewritten. notably, gnustep-make now works using only
+a single recursive sub-make invocation rather than two, which makes
+it consistently faster and simpler in all circumstances.
+@item The clean rules have been heavily optimized - they no longer use
+recursive sub-make invocations at all and so they are really fast.
+@item Many improvements to java support. Optimized management of nested classes
+@item Better conformance to make conventions.
+@item File specific compilation flags
+@item Fixed darwin support
+@item Support for C++ files.
+@item Made use of library installation dir consistent with other installation.
+@item Much improved Windows path support
+@end itemize
+
+@section Changes in version @samp{1.0.1}
+
+@itemize @bullet
+@item Support for Java tools.
+@item Build GUI backend as a bundle (default).
+@item Remove backend part of LIBRARY_COMBO.
+@item Fixes to run on FreeBSD, Solaris.
+@end itemize
+
+@section Changes in version @samp{1.0.0}
+
+@itemize @bullet
+@item Optimizations that in many cases more than double the speed.
+@item Added preliminary darwin support.
+@item rpm packeing improvements.
+@item Better checking for mingw and cygwin
+@end itemize
+
+@section Changes in version @samp{0.9.2}
+
+@itemize @bullet
+@item HOWTO and faq files moved from core package to here
+@item Configurable GNUSTEP_LOCAL_ROOT and GNUSTEP_NETWORK_ROOT
+@end itemize
+
+@section Changes in version @samp{0.9.1}
+
+Make has been reoganized so that it only relies on libraries and other things
+that are necessary for the Makefile package itself. Any libraries wanting to
+add extra package information can do so by installing a make stub in the
+@file{Additional} directory. This greatly simplifies compilation and packaging.
+
+@itemize @bullet
+@item Javadoc support added.
+@item debian directory added for dpkg
+@item RPM support rewritten from scratch.
+@end itemize
+
+@section Changes in version @samp{0.9.0}
+
+ffcall library is highly recommended for use with the GNUstep base
+library. You need to have installed it prior to configuring the Makefile
+package. See the INSTALL file.
+
+@itemize @bullet
+@item Support for automatically generating RPM spec files.
+@item Build suitable files for MacOS bundles
+@item Add option for flattened directory structure.
+@item LaText documentation support.
+@item Added support for Frameworks
+@end itemize
+
+@section Noteworthy changes in version @samp{0.6.6}
+
+The GNUstep system libraries are now installed in a separate system root
+directory (default /usr/GNUstep/System) rather than the GNUstep
+root directory (default /usr/GNUstep). You can revert to the old behavior
+using a configure option @samp{--without-system-root}. We also recommend
+removing any previous GNUstep versions before installing the new one in order
+to avoid problems with the system finding the correct binary and/or library.
+
+@itemize @bullet
+@item Support for Windows compilation (cygwin and mingw) and DLL creation
+and usage.
+@item Java support rewritten and extended.
+@end itemize
+
+@end ifclear
+@c end ifclear ANNOUNCE-ONLY
--- /dev/null
+.\"openapp(1) man page
+.\"put together by Martin Brecher <martin@gnustep.de>
+.\"
+.\"Process this file with
+.\"groff -man -Tascii openpp.1
+.\"
+.TH OPENAPP 1 "August 2003" GNUstep "GNUstep System Manual"
+.SH NAME
+openapp \- launch applications from the command line
+
+.SH SYNOPSIS
+.B openapp
+.RB [ --find ]
+.IR application
+.RB [ "\fIarguments..." ]
+.P
+.SH DESCRIPTION
+The
+.B openapp
+command allows you launch graphical GNUstep applications from the command
+line.a
+.PP
+.I application
+is the complete or relative name of the application program with or
+without the .app extension, like 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
+.SH OPTIONS
+.IP "\fB--find"
+print complete path of the executable which would be launched.
+.IP "\fB--help"
+print above usage description.
+.PP
+.SH EXAMPLES
+Start Ink.app without additional parameters:
+.PP
+.I openapp Ink.app
+.PP
+Launch Ink.app and pass it the --GNU-Debug argument:
+.PP
+.I openapp Ink.app --GNU-Debug=NSTextView
+.PP
+To determine which executable is launched by openapp, type:
+.PP
+.I openapp --find Ink.app
+.PP
+The output of the abovecommand 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
+.SH SEE ALSO
+GNUstep(7), gopen(1)
+.P
+.SH HISTORY
+Work on
+.B openapp
+started October 1997.
+.P
+This manual page was first written July 2003.
+.P
+.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>.
--- /dev/null
+@chapter GNUstep makefile package
+
+Here is some introductory info to get you started:
+
+@section What is the GNUstep makefile package?
+
+The makefile package is a simple, powerful and extensible way to
+write makefiles for a GNUstep-based project. It allows the user to
+write a project without having to deal with the complex issues
+associated with configuration, building, installation, and packaging.
+It also allows the user to easily create cross-compiled binaries.
+
+@section Information
+
+The file @samp{NEWS} has this packages feature history.
+
+The files @samp{INSTALL} or @samp{GNUstep-HOWTO}
+give instructions for installing the packages. Also see the @file{machines}
+documentation and various machine specific READMEs in the Documentation
+directory.
+
+Files in the @samp{Documentation} directory have information on the
+design of the Makefile system and how to write your own makefiles that
+work with it.
+
+@section License
+
+The GNUstep libraries are covered under the GNU Lesser Public License.
+This means you can use these libraries in any program (even non-free
+programs). If you distribute the libraries along with your program,
+you must make the improvements you have made
+to the libraries freely available. You should read the COPYING.LIB file
+for more information.
+
+GNUstep tools, test programs, and other files are covered under the GNU
+General Public License. The GNU GPL is a free software license, which
+requires that all the released improved versions be free software as
+well. You should read the COPYING file for more information.
+
+With GNUstep-Base, we strongly recommend the use of the ffcall
+libraries, which provides stack frame handling for NSInvocation and
+NSConnection. "Ffcall is under GNU GPL. As a special exception, if used
+in GNUstep or in derivate works of GNUstep, the included parts of ffcall
+are under GNU LGPL" (Text in quotes provided by the author of ffcall).
+
+@section History
+
+The GNUstep makefile package was designed by Scott Christley
+@email{scottc@@net-community.com} and Ovidiu Predescu
+@email{ovidiu@@net-community.com}.
+
+Flags for building shared libraries and bundles on several systems were
+originally identified by Mircea Oancea @email{mircea@@pathcom.com}.
+
+Richard Frith-Macdonald @email{richard@@brainstorm.co.uk} also
+contributed with ideas.
+
+Nicola Pero @email{nicola@@brainstorm.co.uk} rewrote much of the rule
+procedures to increase the speed of the package by over a factor of 7.
+He also rewrote much of the rest of the system to make it simpler and
+more effective.
+
+@section How can you help?
+
+@itemize @bullet
+
+@item
+Give us feedback! Tell us what you like; tell us what you think
+could be better. Send bug reports to @email{bug-gnustep@@gnu.org}.
+
+@end itemize
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@c A FAQ for GNUstep Users
+
+@node Top, GNUstep General Information, (dir), (dir)
+@chapter GNUstep Frequently Asked Questions for Users
+
+Last updated @today{}.
+Please send corrections to @email{gnustep-maintainer@@gnu.org}. Also look
+at the (developer) FAQ for more developer oriented questions.
+
+@menu
+* GNUstep General Information::
+* Compiling and Installing::
+* Compatibility and Layout::
+* Troubleshooting::
+@end menu
+
+@node GNUstep General Information, Compiling and Installing, Top, Top
+@section GNUstep General Information
+
+@menu
+* What is GNUstep?::
+* What is the OpenStep standard?::
+* What platforms does GNUstep run on?::
+* Does GNUstep run on Windows?::
+* What is GNUstep's position towards KDE and the GNOME project?::
+* How can I get GNUstep?::
+* How do you run GNUstep?::
+* Is there a web site?::
+* When is GNUstep intended to be available?::
+* What is usable?::
+@end menu
+
+@node What is GNUstep?, What is the OpenStep standard?, GNUstep General Information, GNUstep General Information
+@subsection What is GNUstep?
+
+GNUstep is the Free Software Foundation's effort to implement NeXT
+Software Inc.'s (now Apple Inc.) OpenStep Standard. The project is not
+finished, so some parts are not as polished as they could be.
+
+@node What is the OpenStep standard?, What platforms does GNUstep run on?, What is GNUstep?, GNUstep General Information
+@subsection What is the OpenStep standard?
+
+OpenStep is an Application Programming Interface (API) for creating
+applications using the Objective C language. It was published by NeXT
+Computer Inc. in 1994.
+
+OpenStep consists of three parts: the @samp{FoundationKit}, a library of
+non-graphical objects; the @samp{AppKit}, a library of objects useful in
+creating graphical applications; and @samp{Display Postscript}, an
+interface for drawing to the screen using the PostScript graphics
+language.
+
+You can obtain a copy of the OpenStep standard from the GNUstep web site
+@url{http://www.gnustep.org} or it's mirror sites.
+
+@node What platforms does GNUstep run on?, Does GNUstep run on Windows?, What is the OpenStep standard?, GNUstep General Information
+@subsection What platforms does GNUstep run on?
+
+See the list of supported platforms at
+@url{http://www.gnustep.org/information/machines_toc.html} for
+information on what machines GNUstep builds on and what the status of
+the ports is. Probably a few days porting to any other Unix system where
+current gcc compilers and gdb debugger work.
+
+@node Does GNUstep run on Windows?, What is GNUstep's position towards KDE and the GNOME project?, What platforms does GNUstep run on?, GNUstep General Information
+@subsection Does GNUstep run on Windows?
+
+ The primary targets for GNUstep are free 'Unix' platforms such
+as GNU/Linux.
+
+That being said, the base library should run on Windows-NT,98,2000 with the
+Cygwin unix emulation library from Cygnus
+(http://sourceware.cygnus.com/cygwin/) or the MinGW libraries. At
+present there are a few problems with networking (Distributed Objects)
+support, but the library is believed to work.
+
+The gui library uses the win32 backend library to work under
+Windows. The backend library is a thin layer that converts the
+GNUstep methods to handle drawing of GUI elements to calls to the
+win32 API. This project is in beta.
+
+The application-wrapper used for GNUstep already allows for multiple
+binaries to be stored for different systems, so you should be able
+to write once, deploy anywhere.
+
+
+@node What is GNUstep's position towards KDE and the GNOME project?, How can I get GNUstep?, Does GNUstep run on Windows?, GNUstep General Information
+@subsection What is GNUstep's position towards KDE and the GNOME project?
+
+ You can use GNUstep with GNOME and/or KDE. GNUstep displays
+on top of X11. You can still do programming in C (since Objective-C
+is just a super-set of C), and when (if?) GCC gets around to it,
+you'll be able to mix C++ and Objective-C code in the SAME file.
+
+GNUstep, is much more than a window manager or desktop environment.
+It frees you to develop cross-platform applications without the
+work of developing an OS independent framework from scratch. It
+gives you lots of basic functionality, from Font Panels to Unicode
+strings to Distributed Objects.
+
+@node How can I get GNUstep?, How do you run GNUstep?, What is GNUstep's position towards KDE and the GNOME project?, GNUstep General Information
+@subsection How can I get GNUstep?
+
+Get the HOWTO from
+@url{http://www.gnustep.org/resources/documentation/GNUstep-HOWTO}
+Get the latest release from @url{ftp://ftp.gnustep.org}. If you're
+really adventurous, get the latest snapshot by anonymous ftp from
+@url{ftp://ftp.gnustep.org/pub/daily-snapshots}
+
+Use anonymous CVS to keep up to date - instructions are in the
+HOWTO.
+
+@node How do you run GNUstep?, Is there a web site?, How can I get GNUstep?, GNUstep General Information
+@subsection How do you run GNUstep?
+
+ You are presumably under the misapprehension that GNUstep is
+some sort of program or window manager.
+
+It isn't.
+
+GNUstep is a whole load of things - primarily a set of libraries
+for developing software.
+
+At present, it's those libraries, plus various command-line based
+support tools and service providing daemons, plus various GUI
+development tools, a GUI desktop/workspace application, etc.
+
+At no stage will you ever 'run' GNUstep - you will run applications
+and tools and will make use of it's services. At some point
+you may well find packages distributed as 'GNUstep' systems in the
+way that you get 'GNU/Linux' systems packaged today. Look at
+Simply GNUstep @url{http://simplygnustep.sourceforge.net/} for instance.
+
+If you want to see a sample GUI application running you need to build
+GNUstep and look at the example applications in the gnustep-examples
+package. Build 'Finger' or 'Ink' and start it with 'openapp Finger.app'
+or 'openapp Ink.app'
+
+To look best - use WindowMaker (the currently preferred GNUstep
+window manager) as your window manager.
+
+@node Is there a web site?, When is GNUstep intended to be available?, How do you run GNUstep?, GNUstep General Information
+@subsection Is there a web site?
+
+See @url{http://www.gnustep.org/}.
+
+@node When is GNUstep intended to be available?, What is usable?, Is there a web site?, GNUstep General Information
+@subsection When is GNUstep intended to be available?
+
+It's usable now. Major releases are made about every six months. However, if
+you are a serious developer, it's probably best to use the latest
+snapshots.
+
+@node What is usable?, , When is GNUstep intended to be available?, GNUstep General Information
+@subsection What is usable?
+
+@itemize @bullet
+@item gnustep-make does pretty much what the makefiles in NeXTstep do.
+@item gnustep-base (Foundation) works well and is used in production evironments.
+@item gnustep-gdl2 works well and is used in production evironments.
+@item gnustep-gui (AppKit) has a lot working but there is still stuff missing.
+@end itemize
+
+What does this mean for users? Many applications will run quite well.
+Applications that require very complex text handling and some unusual
+features and/or some of the latest additions to Cocoa may not work as
+well.
+
+@c ****************************************************************
+@node Compiling and Installing, Compatibility and Layout, GNUstep General Information, Top
+@section Compiling and Installing
+
+@menu
+* How do I compile GNUstep on my machine? ::
+* Are there any precompiled packages available?::
+* What are these type and size warnings?::
+* What are these import warnings?::
+@end menu
+
+@node How do I compile GNUstep on my machine? , Are there any precompiled packages available?, Compiling and Installing, Compiling and Installing
+@subsection How do I compile GNUstep on my machine?
+
+Read the file @file{GNUstep-HOWTO}, which comes with the GNUstep
+distribution (gnustep-make), and also is available separately on the
+GNUstep web site.
+
+@node Are there any precompiled packages available?, What are these type and size warnings?, How do I compile GNUstep on my machine? , Compiling and Installing
+@subsection Are there any precompiled packages available?
+
+Check @url{http://www.gnustep.org/resources/sources.html} for links to
+RPMS, Debain packages, and BSD ports. Also Windows installers, MacOSX biniaries
+and others.
+
+@node What are these type and size warnings?, What are these import warnings?, Are there any precompiled packages available?, Compiling and Installing
+@subsection What are these type and size warnings?
+
+These warnings:
+@example
+/usr/bin/ld: warning: type and size of dynamic symbol
+`__objc_class_name_NSConstantString' are not defined
+@end example
+
+are a common occurence and are due to a mismatch between gcc and
+ld. They don't do any harm so they can be safely ignored. They have been
+fixed in GCC version 3.1.
+
+@node What are these import warnings?, , What are these type and size warnings?, Compiling and Installing
+@subsection What are these import warnings?
+
+Do you get these obnoxious warning whenever you compile an application, tool,
+or Objective-C program:
+
+@example
+warning: using `#import' is not recommended
+[...]
+@end example
+
+Up until gcc 3.4, the #import directive was not implemented correctly.
+As a result, the GCC compiler automatically emitted a warning whenever
+#import was used. As of gcc 3.4, this problem has been fixed, so
+presumably, this warning is no longer emitted when code is compiled. If
+you are using an early compiler, you can supress these warnings by adding
+@code{-Wno-import} to your include (cpp) flags.
+
+@c ****************************************************************
+@node Compatibility and Layout, Troubleshooting, Compiling and Installing, Top
+@section Compatibility and Layout
+
+@menu
+* Can I run NeXT OPENSTEP or MacOSX programs on GNUstep?::
+* Is GNUstep following Changes to OpenStep and MacOSX?::
+* Do we have to have the NeXTstep look and feel?::
+* What's up with the directory structure?::
+* Why not use Frameworks?::
+@end menu
+
+@node Can I run NeXT OPENSTEP or MacOSX programs on GNUstep?, Is GNUstep following Changes to OpenStep and MacOSX?, Compatibility and Layout, Compatibility and Layout
+@subsection Can I run NeXT OPENSTEP or MacOSX programs on GNUstep?
+
+You can't run these programs on GNUstep, but if you have the source
+code for the programs, you should be able to port them to GNUstep and
+compile them. Whether or not you will be able to run them depends on how
+complete GNUstep is at the time.
+
+@node Is GNUstep following Changes to OpenStep and MacOSX?, Do we have to have the NeXTstep look and feel?, Can I run NeXT OPENSTEP or MacOSX programs on GNUstep?, Compatibility and Layout
+@subsection Is GNUstep following Changes to OpenStep and MacOSX?
+
+Yes, gnustep-base already contains the documented changes in the
+Foundation library. GNUstep aims to be compatible with both the
+OpenStep specification and with MacOS-X. It should be easy to write
+an application that compiles cleanly under both GNUstep and Cocoa.
+
+@node Do we have to have the NeXTstep look and feel?, What's up with the directory structure?, Is GNUstep following Changes to OpenStep and MacOSX?, Compatibility and Layout
+@subsection Do we have to have the NeXTstep look and feel?
+
+GNUstep is aiming for something like the NeXTstep-3.3 look and feel.
+Although we don't want to force anyone into this, a lot of the power and
+ease of use comes from this feel. The look of GNUstep is something
+different - buttons and other widgets can look different but still act
+the same way. We hope to implement themes which will allow
+this. Actually we're hoping someone will volunteer to do it.
+
+@node What's up with the directory structure?, Why not use Frameworks?, Do we have to have the NeXTstep look and feel?, Compatibility and Layout
+@subsection What's up with the directory structure?
+
+First of all, GNUstep uses a slightly different directory structure than
+NeXT or MacOSX. Part of this is historical, part is because we can't do
+things the same way (see @pxref{Why not use Frameworks?}). Although currently
+the structure is very similar to the it is done in MacOSX.
+
+@node Why not use Frameworks?, , What's up with the directory structure?, Compatibility and Layout
+@subsection Why not use Frameworks?
+
+Frameworks are much more difficult to port and to use, and are very
+unnatural on a unix system - extremely unnatural on Windows. In a
+framework, the shared dynamic library is inside a framework wrapper
+directory. Because of this, the dynamic linker can't find it.
+
+We have frameworks, so how do we work around that? Well, we build dynamic
+links from a directory inside the dynamic linker path into the framework,
+which work, but then you can't move the framework anywhere else on
+the system, otherwise you break the link, and nothing will find the
+framework any longer!
+
+On systems without dynamic links, like Windows, we can't even do this!
+We have to copy the library from the framework into the dynamic linker
+path, but that is simply a shared library then! Absolutely @emph{no}
+difference. You put the dynamic library in a system directory in the
+dynamic linker path, and associate with that library a resource directory.
+
+I think OpenStep for Windows did that, and still called them frameworks.
+Oh well we can do the same then, and call our libraries frameworks.
+
+In a shared library, the shared dynamic library is in a directory which is
+in the path to the dynamic linker. the dynamic linker can find it very
+easily. this is how all shared and static libraries work on Unix systems,
+on Windows systems and possibly on most system at all.
+
+Moreover, the OpenStep API requires us to provide some stuff for
+frameworks, like creating and registering automatically a framework
+object each time a framework is used (linked at runtime, or linked into
+the app), and attaching to it the list of classes inside the framework -
+which are not particularly trivial to implement - they depend on playing
+with the linker and the object file format - and might produce troubles
+when porting. And we never use these facilities.
+
+For Apple MacOSX sure it's easier. They can modify
+the system linker, compiler, the system dynamical linker. They
+always know on which platform they are working (their own), etc. They can
+modify the system to support frameworks natively. Easy that way.
+
+But GNUstep is meant to run on many different platforms, platforms which
+we don't control (Windows, Sun Solaris, Darwin, GNU/Linux, Unix
+variants) and which have different linkers and do not support frameworks
+natively. On some systems it's difficult to just load a bundle or
+compile a shared library!
+
+So building the core libraries as 'libraries' means that it's much
+easier to port them, and it's much more difficult to break them.
+
+Sure, frameworks have a bundle of resources associated with it - but we
+can very easily associate a bundle of resource with a shared library, no
+reason why not. We are doing it.
+
+So please note that GNUstep libraries are meant to be much similar to
+MacOS X frameworks. They are composed of a shared library and
+associated with a bundle of resources. There is a difference in
+terminology, in where the resources are installed, and possibly a slight
+difference in the NSBundle API to get to the resource bundle (anyway,
+it's a one line difference between MacOSX and GNUstep, so it looks like
+very easy to #ifdef).
+
+In other words, GNUstep libraries are meant to basically do the same as
+frameworks do on MacOSX, but to be portable to strange platforms (such as
+Windows).
+
+
+@c ****************************************************************
+@node Troubleshooting, , Compatibility and Layout, Top
+@section Troubleshooting
+
+@menu
+* Problems compiling (loading shared libs)::
+* Problems compiling (GNUstep Internal Error)::
+* Problems with Alt key::
+* Problems with gcc3::
+* Problems with fonts::
+* No Makefile::
+@end menu
+
+@node Problems compiling (loading shared libs), Problems compiling (GNUstep Internal Error), Troubleshooting, Troubleshooting
+@subsection Problems compiling (loading shared libs)
+
+If you get something like
+
+@example
+plmerge: error while loading shared libraries:
+libgnustep-base.so.1: cannot open shared object file: No such file or directory
+@end example
+
+or this:
+
+@example
+Making all for service example...
+make[2]: *** [example.service/Resources/Info-gnustep.plist] Error 1
+make[1]: *** [example.all.service.variables] Error 2
+make[1]: Leaving directory `/home/multix/gnustep-gui-0.8.6/Tools'
+make: *** [internal-all] Error 2
+@end example
+
+This means your GNU make is being overly protective. When you try to
+become root (e.g. to install something), certain environment variables
+like LD_LIBRARY_PATH are unset in order to reduce the possibility of
+a security breach. If you are becoming root to install
+something, you need to exec the GNUstep.sh file as root, just as you
+do when you login. Although for simplicity, you can also try this:
+
+@example
+make LD_LIBRARY_PATH=$LD_LIBRARY_PATH
+@end example
+
+You could also be having problems with gcc. gcc 2.96 does not work
+(Mandrake 8.1, perhaps others). Use a different compiler, like gcc 3.x.
+
+@node Problems compiling (GNUstep Internal Error), Problems with Alt key, Problems compiling (loading shared libs), Troubleshooting
+@subsection Problems compiling (GNUstep Internal Error)
+
+If you get
+
+@example
+GNUSTEP Internal Error:
+The private GNUstep function to establish the argv and environment
+variables was not called.
+Please report the error to bug-gnustep@@gnu.org.
+@end example
+
+when compiling the gui library, there could be several things wrong. One
+is that you installed the gnustep-objc library, but the compiler
+found another Objecive-C library (like the one that came with gcc). If
+you are using gcc 3.x, DO NOT use the gnustep-objc library.
+
+@node Problems with Alt key, Problems with gcc3, Problems compiling (GNUstep Internal Error), Troubleshooting
+@subsection Problems with Alt key
+
+It's possible the Alt key is not where you think it is or is defined
+incorrectly. Try running the GSTest application, KeyboardInput test
+(located in the examples package
+at @url{ftp://ftp.gnustep.org/pub/gnustep/core}) to test it.
+See
+@url{http://www.gnustep.org/resources/documentation/User/Gui/KeyboardSetup.html}
+for information on how to change the settings.
+
+If you are using WindowMaker, it's possible it is grabing this key and
+using it for itself. To check, open Window Maker's WPrefs and go to the
+Mouse Preferences. Then use another value for the "Mouse grab modifier"
+(bottom right). That will allow you to alt-drag things.
+
+@node Problems with gcc3, Problems with fonts, Problems with Alt key, Troubleshooting
+@subsection Problems with gcc3
+
+Don't forget you need to update binutils and libc also.
+
+@node Problems with fonts, No Makefile, Problems with gcc3, Troubleshooting
+@subsection Problems with fonts
+
+Why do the characters get changed to asterisks ('*')?
+
+The problem you are getting come from the fact that the xlib backend
+ (when not using Xft) will only use one fixed X font for a given
+font name. If the font "helvetica" is used inside of GNUstep the
+one selected X font, in your case
+"-*-helvetica-medium-r-normal--12-*-*-*-p-*-iso8859-1" is used. So
+only characters (or glyphs) that are available in that font can be
+displayed. The selection of which font name to use happens inside the
+font_cacher and is more or less at random (the order fonts are
+listed by the X system).
+
+You can influence the fonts that are available by setting:
+
+@example
+defaults write NSGlobalDomain GSFontMask "*iso8859-13"
+font_cacher
+@end example
+
+(or using a different character set, like iso8859-2). This is really a
+bug in GNUstep, but it hasn't been fixed yet.
+
+The other option is the use the art backend, which handles fonts much
+better. When compiling gnustep-back, start with
+
+@example
+./configure --enable-graphics=art
+@end example
+
+@node No Makefile, , Problems with fonts, Troubleshooting
+@subsection No Makefile
+
+I tried to compile something and I get:
+
+@example
+GNUmakefile:27: /Makefiles/common.make: No such file or directory
+GNUmakefile:39: /Makefiles/aggregate.make: No such file or directory
+gmake: *** No rule to make target `/Makefiles/aggregate.make'. Stop.
+@end example
+
+Make sure you have installed the gnustep-make package and also type:
+
+@example
+source /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
+@end example
+
+You can put this line in your @file{.profile} or @file{.bash_profile} file
+so that it is done automatically when you log in.
+
+@bye
+\bye
--- /dev/null
+GNUstep Frequently Asked Questions with Answers
+***********************************************
+
+Last updated 3 September 2004. Please send corrections to
+<gnustep-maintainer@gnu.org>. Also look at the user FAQ for more user
+oriented questions.
+
+Compatibility
+=============
+
+Is it easy to port OPENSTEP programs to GNUstep?
+------------------------------------------------
+
+It is probably easy for simple programs. There are some portability
+tools to make this easier, or rewrite the Makefiles yourself. You will
+also have to translate the NIB files (if there are any) to GNUstep
+model files using the nib2gmodel program (from
+<ftp://ftp.gnustep.org/pub/gnustep/dev-apps>).
+
+How about porting between Cocoa and GNUstep?
+--------------------------------------------
+
+It's easier from GNUstep to Cocoa than Cocoa to GNUstep. Cocoa is
+constantly changing, much faster than GNUstep could hope to keep up.
+They have added extensions and new classes that aren't available in
+GNUstep yet. Plus there are some other issues. If you start with Cocoa:
+
+ * Be careful with Cocoa.h includes (Use #ifndef GNUSTEP, for
+ instance)
+
+ * Do not use CoreFoundation
+
+ * Do not use Objective-C++
+
+ * Do not use Quicktime or other proprietary extension
+
+ * You need to convert .nib files (see next question *note Tools for
+ porting::)
+
+ * Some unfinished classes include Drawers.
+
+Tools for porting
+-----------------
+
+While the programming interface should be almost transparent between
+systems (expect for the unimplemented parts, of course), there are a
+variety of other files and tools that are necessary for porting
+programs.
+
+`ni2gmodel'
+ This program coverts nib files from any system, such as Cocoa or
+ OPENSTEP to a gmodel format file. Gmodel can be read directly by
+ GNUstep or you can convert this to a more GNUstep-native gorm
+ format (using the Gorm interface modeller).
+
+`Renaissance'
+ GNUstep Renaissance allows you to describe your user interfaces
+ (that is, the windows in your application, and the buttons, boxes,
+ textfields, etc in the windows) in simple and intuitive XML files,
+ using an open, standard format describing the logic of the
+ interface. It has a number of advantages over the proprietary nib
+ format: portability, open standard, easy localization,
+ themeability, and intelligent autolayout.
+
+`OpenStep2GNUConverter and nfmake'
+ Two programs that allow you to convert PB files to GNUstep
+ makefiles or compile a program on GNUstep directly from PB files.
+ They probably work only for OPENSTEP systems and are a little
+ out-of-date.
+
+`StepTalk'
+ A portable scripting environment that lets your do scripting in
+ almost any language you like.
+
+
+Can I transfer archived data from GNUstep to Cocoa?
+---------------------------------------------------
+
+Apple's archiving format is proprietary and not documented, so this
+poses a problem for anyone wanting to implement compatibility with it.
+However, even if we reverse engineered the format, there are enough
+differences between the class and ivar layouts to make this sort of
+compatibility difficult. Not to mention the fact that we would
+constantly have to keep up with the changes Apple made. Also Apple's
+archiving format, as far as we know, would not be compatible between
+different machines because of endiness issues, although GNUstep doesn't
+have this problem.
+
+ Your best bet is to implement your own archiving format that would
+work both with GNUstep and Cocoa. Fortunately, you don't have to start
+from scratch, since this has been essentially done for you in the
+nib2gmodel tool, which has an archiver that works both on GNUstep and
+Cocoa. It might be nice to split this off into a separate project to
+make it easier for other people to do the same thing.
+
+Does distributed objects work between GNUstep and Cocoa?
+--------------------------------------------------------
+
+See the answer to the previous question (on archive compatibility) for
+why this won't work either.
+
+Is there an Interface Builder for GNUstep?
+------------------------------------------
+
+There is an Interface Builder for GNUstep called Gorm. A lot of work
+has been put into it and it works very well. You can download it from
+the ftp site or via http. The Project Manager ProjectCenter is also
+available.
+
+Can I use my original NIB files?
+--------------------------------
+
+No - NeXT/Apple never documented their nib format, so GNUstep supports
+both the 'gmodel' format (which stores information as text
+(property-lists) and can therefore be edited 'by hand') and binary
+archive format (which can be edited by Gorm). There IS a conversion
+tool called nib2gmodel that can be compiled under OPENSTEP to convert
+nib files to GNUstep gmodel files.
+
+Can one use the hybrid "Objective-C++"
+--------------------------------------
+
+No. at present the GNU compiler (gcc) does not support "Objective-C++".
+Apple is interested in adding back their implementation to gcc and is
+slowly adding parts of it to the mainline gcc implementation.
+
+Is there a plan to support the Java/YellowBox Bindings?
+-------------------------------------------------------
+
+Yes. The GNustep Java library/bridge called JIGS is available now. JIGS
+is a free (LGPL) Java Interface for GNUstep; it can automatically wrap
+Objective-C libraries based on GNUstep, making them accessible directly
+to the Java programmer as if they were Java libraries. As a side effect,
+it is also possible to use the whole engine in the reverse way: JIGS
+provides a high level API to allow Objective-C programmers to start java
+virtual machines inside GNUstep Objective-C code and access java objects
+in the java virtual machine transparently, as if they were objective-C
+objects.
+
+What if I compile GNUstep under OPENSTEP/MacOS X?
+-------------------------------------------------
+
+GNUstep uses the X-windows display postscript extension. The interface
+to that is not the same as the interface to the OPENSTEP/MacOS-X
+windows server. While someone could write a backend library to provide
+the interface, nobody has bothered to date.
+
+ You should, however, be able to use a GNUstep program with an X11
+server running on MacOSX.
+
+Is the Objective C API for GTK related?
+---------------------------------------
+
+No. GNUstep applications provide their GUI via the OpenStep API, which
+provides fully object-oriented access to GUI manipulation.
+
+ The object-oriented nature of the libraries and language make it
+much easier for new users to create their own subclasses rather than
+simply using the supplied widgets as in other frameworks.
+
+How about implementing parts of the Application Kit with GTK?
+-------------------------------------------------------------
+
+Yes and No - The GNUstep architecture provides a single,
+platform-independent, API for handling all aspects of GUI interaction
+(implemented in the gstep-gui library), with a backend architecture
+that permits you to have different display models (display postscript,
+X-windows, win32, berlin ...) while letting you use the same code for
+printing as for displaying. Use of GTK in the frontend gui library
+would remove some of those advantages without adding any.
+
+ That being said, a backend library could be implemented using gtk if
+anyone wanted to do so. Since the frontend library handles most of the
+work involved in implementing the OpenStep API, the backend is a
+relatively thin layer and the advantages of GTK over direct xlib or
+win32 calls is likely to be minimal. If/when GTK is ported to more
+systems, a backend written using it could be a valuable asset -
+volunteers are, as always, welcome.
+
+Compiling and Developing
+========================
+
+How can I get started programming?
+----------------------------------
+
+Good question. Read the tutorials at the GNUstep web site. Also look at
+Apple's documentation (pointers in the Resources section on the GNUstep
+web site.)
+
+How can I help with GNUstep?
+----------------------------
+
+ 1. Write/debug library code
+
+ 2. Write documentation
+
+ 3. Update the task list and library headers
+
+ 4. Write applications
+
+ Let people know what you are doing. Break your project up into the
+smallest units you can. Feed back frequent updates to the maintainers.
+Ask questions in the discussion mailing list.
+
+ Do remember that any changes beyond a few lines of code (or
+documentation) require a disclaimer or copyright assignment to the Free
+Software Foundation before they can be incorporated into the project.
+Get in touch with the maintainer of the library you are working on
+about this.
+
+ Don't start with large-scale reorganization of anything - instead,
+get a general idea in mind of what you want to do, and proceed as much
+as possible with incremental changes that don't break anything - that
+way you can make those incremental changes available to the rest of the
+community at frequent intervals.
+
+ Don't be afraid to give up - there is no shame in finding out that
+you have take on too large/complex a project. It's much better to
+'resign' and take on a smaller job than to just stop without telling
+anyone.
+
+ Please document the code you add or change (using autogsdoc comments
+that begin with a slash and two asterices). But PLEASE, do not copy from
+the Apple documentation or any other copyrighted documentation.
+
+Helping develop GNUstep
+-----------------------
+
+There is plenty of unimplemented stuff in the gui library and backend
+libraries that volunteers can work on - just browse through the code
+and see if it conforms to the documentation.
+
+ Specific tasks are noted in the developers section on the GNUstep
+website.
+
+ Once you have coded something, you could always write a testcase and
+documentation for it :-)
+
+Helping document GNUstep
+------------------------
+
+All class documentation is written directly in the source code itself
+and translated using the autogsdoc program. See the source code and
+documentation for autogsdoc for information on documenting the classes.
+
+ Newcomers could write documentation for individual classes by
+comparing the OpenStep specification, the MacOS-X documentation, and
+the GNUstep source. Documentation should clearly note where individual
+methods are specific to OpenStep, MacOS-X or are GNustep extensions.
+
+ More experienced people could write documentation on general
+programming topics, and tutorials for new users.
+
+ Anyone willing to write documentation, either tutorials for using
+GNUstep, or reference documentation for individual classes, should
+either write it in gsdoc or as plain ascii text for someone else to
+format into gsdoc.
+
+ GNUstep documentation should have copyright assigned to the Free
+Software Foundation.
+
+How do I update the task list?
+------------------------------
+
+The task list (<http://savannah.gnu.org/pm/?group_id=99>) is supposed
+to tell people what jobs are waiting to be done. Feel free to add to it
+or update the tasks that are there (you need to create a login for
+yourself first).
+
+ One job of major importance that pretty much anyone can do is to
+look for jobs to add to the task list. In the case of methods from the
+OpenStep specification or the MacOS-X documentation not being present
+in the GNUstep libraries, it is also helpful to add the method
+prototypes to the library header files.
+
+ Send any changes or additions to <bug-gnustep@gnu.org>.
+
+ A beginner can look through the MacOS-X documentation, the OpenStep
+specification and the GNUstep source and contribute task items.
+
+ If a class or method is in MacOS-X and OpenStep but is not in
+GNUstep - it's a high priority TODO and should at least be added to the
+GNUstep headers and a dummy version added to the source with a FIXME
+comment.
+
+ If a class or method is in MacOS-X but not OpenStep or GNUstep -
+it's a low priority TODO. It should be added to the GNUstep headers
+bracketed in `#ifndef STRICT_OPENSTEP'
+
+ If a class or method is in OpenStep but not in MacOS-X or GNUstep -
+it's a low priority TODO. It should be added to the GNUstep headers
+bracketed in `#ifndef STRICT_MACOS_X'
+
+ There are a couple of people working on this already, so it's a good
+idea to get in touch with Adam or Richard to coordinate efforts.
+
+How do I start writing tests?
+-----------------------------
+
+You can write testcases - where the libraries fail tests, you could
+either fix the problem, or add it to the task list.
+
+ To write testcases, you need to use anonymous CVS to install the
+latest GNUstep snapshots you can find. Then checkout the 'tests' module
+from CVS. In the 'tests' directory, you will find a regression testing
+framework. In order to use this you will also need a recent (v 1.3.2
+or later) copy of Guile (you can get this from a GNU ftp site) and will
+need to check-out, built, and installed the 'guile' package from the
+GNUstep CVS repository.
+
+How do I start writing applications?
+------------------------------------
+
+You can either look at the links on the GNUstep website for
+applications that have been started, and email their owners to
+volunteer to help, or you can start your own project.
+
+How can I help with the GNUstep website?
+----------------------------------------
+
+Talk to Adam Fedor <fedor@gnu.org>, the maintainer.
+
+ The GNUstep website is kept as a CVS module, but the largest portions
+of it (the FAQ and the Documentation) are actually generated from files
+in the individual GNUstep packages.
+
+ If you want to update the FAQ or documentation - grab the latest
+snapshot of the GNUstep core you can find, update it from the CVS
+repository, and work with the contents of the appropriate documentation
+directory.
+
+ If you want to work on other parts of the website, you can grab a
+copy of the website via anonymous CVS. See
+<http://savannah.gnu.org/cvs/?group_id=99> for instructions on how to
+do that.
+
+ The main task with the website is to figure out which bits are
+out-of-date (or wrong) and update/mark-as-outdated as required.
+
+Why doesn't GDB support Objective-C?
+------------------------------------
+
+Um, it does. As of GDB 6.0, gdb supports debugging of Objective-C code.
+
+GNU Objective C Compiler and Runtime
+====================================
+
+What is the Objective C Runtime?
+--------------------------------
+
+The Objective C Runtime Library provides C functions and data structures
+required to execute an Objective C program.
+
+ The GNU Objective C Runtime Library offers everything NeXT's runtime
+does, including Categories, Protocols, `+poseAs:', thread-safety, class
+initialization on demand, delayed loading of classes, and
+initialization of static instances (such as @""-style string objects).
+
+ It also has several differences over NeXT's implementation:
+
+ * GNU's runtime provides "selector-types" along with each selector;
+ NeXT's does not. A selector-type is a string that describes the C
+ variable types for the method's return and argument values. Among
+ other uses, selector-types is extremely helpful for fast
+ distributed objects implementations, (see GNUstep Base Library
+ Section, below).
+
+ * Many of the GNU functions have different names than their
+ corresponding NeXT functions; the GNU names conform to the GNU
+ coding standards. The GNUstep base library contains a
+ compatibility header that works with both runtimes. You should use
+ functions there or use OpenStep Foundation methods/functions
+ instead of the basic runtime functions so that you code can run
+ with either system.
+
+
+Does it allow a mixture of Objective C and C++?
+-----------------------------------------------
+
+No. See *note Can one use the hybrid "Objective-C++"::
+
+Where can I find more information?
+----------------------------------
+
+The FAQ associated with the newsgroup `comp.lang.objective-c' contains
+more information about GNU Objective C.
+
+GNUstep Base Library
+====================
+
+What is the GNUstep Base Library?
+---------------------------------
+
+The GNUstep Base Library is a library of general-purpose, non-graphical
+Objective C objects. For example, it includes classes for strings,
+object collections, byte streams, typed coders, invocations,
+notifications, notification dispatchers, moments in time, network ports,
+remote object messaging support (distributed objects), event loops, and
+random number generators.
+
+ It provides functionality that aims to implement the non-graphical
+portion of the OpenStep standard (the Foundation library).
+
+What is its current state of development?
+-----------------------------------------
+
+GNUstep base is currently stable and, to the best of our knowledge,
+implements all of the OpenStep functionality (except for a few classes
+that we feel are not useful). It also implements most all of the new
+Cocoa classes. However we do some things, like scripting, differently,
+so we don't implement all the Cocoa classes.
+
+What are the features of GNU Distributed Objects?
+-------------------------------------------------
+
+GNU Distributed Objects has many of the features of other distributed
+objects implementations, but, since it is free software, it can be
+ported to platforms for which other distributed objects implementations
+are not available.
+
+ [ NOTE: The GNU distributed object facilities have the same
+ease-of-use as NeXT's; be warned, however, that they are not compatible
+with each other. They have different class hierarchies, different
+instance variables, different method names, different implementation
+strategies and different network message formats. You cannot
+communicate with a NeXT NSConnection using a GNU NSConnection.
+
+ Here are some differences between GNU distributed objects and NeXT's
+distributed objects: NeXT NSDistantObject asks it's remote target for
+the method encoding types and caches the results; GNU NSDistantObject
+gets the types directly from the local GNU "typed selector" mechanism
+if the information is known locally and only queries the remote target
+or caching encoding types when using a method that is not known to the
+local process. The NSProxy for the remote root object always has name
+and, once set, you cannot change the root object of a NSConnection; the
+GNU Proxy for the remote root object has a target address value just
+like all other Proxy's, and you can change the root object as many
+times as you like. ].
+
+GNUstep GUI Library
+===================
+
+What is the GUI Library?
+------------------------
+
+The GNUstep GUI Library is a library of objects useful for writing
+graphical applications. For example, it includes classes for drawing
+and manipulating graphics objects on the screen: windows, menus,
+buttons, sliders, text fields, and events. There are also many
+peripheral classes that offer operating-system-independent interfaces to
+images, cursors, colors, fonts, pasteboards, printing. There are also
+workspace support classes such as data links, open/save panels,
+context-dependent help, spell checking.
+
+ It provides functionality that aims to implement the `AppKit'
+portion of the OpenStep standard. However the implementation has been
+written to take advantage of GNUstep enhancements wherever possible.
+
+Explain the organization of the front- and back-ends
+----------------------------------------------------
+
+The GNUstep GUI Library is divided into a front- and back-end. The
+front-end contains the majority of implementation, but leaves out the
+low-level drawing and event code. A back-end can override whatever
+methods necessary in order to implement low-level drawing event
+receiving. Different back-ends will make GNUstep available on various
+platforms. The default GNU back-end will run on top of X Windows.
+Other back-ends could allow GNUstep to run on OpenGL and WIN32
+graphics/event platforms. Much work will be saved by this clean
+separation between front- and back-end, because it allows different
+platforms to share the large amount of front-end code.
+
+What is the current state of development of the front-end?
+----------------------------------------------------------
+
+Many of the classes are well implemented, if not thoroughly tested.
+See the GNUstep web sites and read status information contained in the
+distribution for the most up-to-date information.
+
+What is the current state of development of the back-ends?
+----------------------------------------------------------
+
+There are several backends currently available:
+
+`xlib'
+ This is the standard backend that runs on X11 and uses standard
+ xlib calls for implementing drawing. It works well, but is limited
+ in many areas due to the limitations of xlib drawing.
+
+`art'
+ This is a very good backend that draws using the libart package and
+ freetype with near PostScript quality and functionality. At some
+ point it will become the standard.
+
+`w32'
+ This backend works on Windows and is currently beta quality.
+
+GNUstep DisplayGhostScript Server
+=================================
+
+What is the Display Ghostscript Server?
+---------------------------------------
+
+It is a free implementation of a Display PostScript server based on the
+GNU Ghostscript program developed by Aladdin Enterprises and now owned
+by artofcode LLC.
+
+ At one point, GNUstep was using this for display purposes. However
+the development of DGS has stopped as it is too difficult to maintain
+and no one wanted to work on it. Now we are using other means of
+drawing.
+
+What is its current state of development?
+-----------------------------------------
+
+GNU contracted with Aladdin Enterprises to add some key features to GNU
+Ghostscript so it could be used as a DPS server. This work has mostly
+been done, although Aladdin did not completely finish the work that they
+were contracted for. (Because the work took longer than specified and
+was not completed, Aladdin agreed to waive approximately $10,000 in
+promised fees for the work that was actually done and delivered.) DGS
+works fairly well with a single context. Alpha channel and compositing
+currently doesn't work.
+
+What is the relationship between the Display Ghostscript Server and X Windows?
+------------------------------------------------------------------------------
+
+Display Ghostscript runs on top of X Windows.
+
--- /dev/null
+# @configure_input@
+#
+# Main GNUmakefile for the GNUstep GNUmakefile Package.
+#
+# Copyright (C) 1997-2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# I've thought about using the Makefile package files
+# to install the GNUmakefile package, a cool little recursion,
+# but there is nothing to made, and the files get installed
+# in a special directory, so it was simpler this way.
+#
+
+include config.make
+
+# To install everything inside a temporary directory (say as part of
+# building a binary package - deb or rpm), use something like `make
+# install special_prefix=/var/tmp/gnustep-make'
+special_prefix =
+
+GNUSTEP_SYSTEM_ROOT = $(special_prefix)@prefix@
+GNUSTEP_LOCAL_ROOT = $(special_prefix)@GNUSTEP_LOCAL_ROOT@
+GNUSTEP_NETWORK_ROOT = $(special_prefix)@GNUSTEP_NETWORK_ROOT@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+GNUSTEP_FLATTENED = @GNUSTEP_FLATTENED@
+GNUSTEP_TARGET_CPU = @clean_target_cpu@
+GNUSTEP_TARGET_VENDOR = @clean_target_vendor@
+GNUSTEP_TARGET_OS = @clean_target_os@
+
+GNUSTEP_LIB_COMBO = @ac_cv_library_combo@
+
+ifeq ($(GNUSTEP_FLATTENED),)
+ GNUSTEP_TARGET_DIR = $(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)
+ GNUSTEP_TARGET_LDIR = $(GNUSTEP_TARGET_DIR)/$(GNUSTEP_LIB_COMBO)
+ MAYBE_LIBRARY_COMBO = $(GNUSTEP_LIB_COMBO)
+else
+ GNUSTEP_TARGET_DIR = .
+ GNUSTEP_TARGET_LDIR = .
+ MAYBE_LIBRARY_COMBO = .
+endif
+
+export GNUSTEP_TARGET_DIR
+export GNUSTEP_TARGET_LDIR
+export MAYBE_LIBRARY_COMBO
+
+makedir = $(GNUSTEP_SYSTEM_ROOT)/@MAKEFILES_SUFFIX@
+tooldir = $(GNUSTEP_SYSTEM_ROOT)/Tools
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+
+VERTAG = $(subst .,_,$(GNUSTEP_MAKE_VERSION))
+
+MAKE_FILES = aggregate.make application.make bundle.make service.make \
+ common.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 \
+ palette.make gswapp.make gswbundle.make clibrary.make \
+ documentation.make \
+ java-executable.template java-tool.make framework.make \
+ native-library.make spec-rules.template spec-debug-rules.template \
+ spec-debug-alone-rules.template \
+ tar-exclude-list
+
+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 \
+ resource-set.make service.make subproject.make test-application.make \
+ test-library.make test-tool.make tool.make
+
+INSTANCE_MAKE_FILES = \
+ 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 \
+ resource-set.make service.make subproject.make test-application.make \
+ test-library.make test-tool.make tool.make
+
+INSTANCE_SHARED_MAKE_FILES = bundle.make headers.make java.make \
+ stamp-string.make strings.make
+
+INSTANCE_DOC_MAKE_FILES = autogsdoc.make gsdoc.make install_files.make \
+ javadoc.make latex.make texi.make
+
+all: generated-files which_lib$(EXEEXT) user_home$(EXEEXT)
+
+# Please note that you should use a bit of care in the following rule,
+# because it must work in a directory which is not the source
+# directory - so for example $<, rather than which_lib.c, must be
+# used. (I mean: 'cd core/make; cd ..; mkdir make-build; cd
+# make-build; ../make/configure --disable-import; make;' must work)
+which_lib$(EXEEXT): which_lib.c config.h
+ $(CC) @CFLAGS@ -Wall -I. -o $@ $<
+
+user_home$(EXEEXT): user_home.c config.h
+ $(CC) @CFLAGS@ -DGNUSTEP_SYSTEM_ROOT=$(GNUSTEP_SYSTEM_ROOT) \
+ -Wall -I. -o $@ $<
+
+ifeq ($(messages),yes)
+ EC =
+else
+ EC = @
+endif
+
+move_obsolete:
+ $(EC)(echo "Moving paths from old heirarchy: "; \
+ $(srcdir)/move_obsolete_paths.sh $(GNUSTEP_SYSTEM_ROOT) $(GNUSTEP_LOCAL_ROOT) $(GNUSTEP_USER_ROOT))
+
+install: all @GNUSTEP_MOVE_OBSOLETE@
+ $(EC)(echo "Creating system domain: $(GNUSTEP_SYSTEM_ROOT)"; \
+ $(srcdir)/create_domain_dir_tree.sh $(GNUSTEP_SYSTEM_ROOT); \
+ echo "Creating local and network dirs: $(GNUSTEP_LOCAL_ROOT), $(GNUSTEP_NETWORK_ROOT)"; \
+ $(srcdir)/mkinstalldirs $(GNUSTEP_LOCAL_ROOT) $(GNUSTEP_NETWORK_ROOT);\
+ echo "Creating makefile directories in: $(makedir)"; \
+ $(srcdir)/mkinstalldirs \
+ $(makedir) \
+ $(makedir)/$(GNUSTEP_TARGET_CPU) \
+ $(makedir)/$(GNUSTEP_TARGET_DIR) \
+ $(makedir)/Additional \
+ $(makedir)/Auxiliary \
+ $(makedir)/Master \
+ $(makedir)/Instance \
+ $(makedir)/Instance/Shared \
+ $(makedir)/Instance/Documentation)
+ -$(EC) rm -f $(GNUSTEP_SYSTEM_ROOT)/Makefiles
+ifeq ($(HAS_LN_S), yes)
+ $(EC) (cd $(GNUSTEP_SYSTEM_ROOT); $(LN_S) @MAKEFILES_SUFFIX@ Makefiles)
+endif
+ $(EC)(echo "Installing gnustep-make support software"; \
+ $(INSTALL_PROGRAM) -m 755 which_lib$(EXEEXT) \
+ $(makedir)/$(GNUSTEP_TARGET_DIR); \
+ $(INSTALL_PROGRAM) -m 755 user_home$(EXEEXT) \
+ $(makedir)/$(GNUSTEP_TARGET_DIR))
+ $(EC)(for f in config.guess config.sub install-sh mkinstalldirs \
+ clean_cpu.sh clean_os.sh \
+ clean_vendor.sh cpu.sh GNUstep-reset.sh \
+ ld_lib_path.sh os.sh transform_paths.sh vendor.sh \
+ ld_lib_path.csh relative_path.sh strip_makefiles.sh; do \
+ $(INSTALL_PROGRAM) -m 755 $(srcdir)/$$f $(makedir); \
+ done)
+ $(EC)($(INSTALL_PROGRAM) -m 755 GNUstep.sh $(makedir); \
+ $(INSTALL_PROGRAM) -m 755 GNUstep.csh $(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))
+ $(EC)(echo "Installing makefiles"; \
+ for f in $(MAKE_FILES); do \
+ $(INSTALL_DATA) $(srcdir)/$$f $(makedir); \
+ done; \
+ for f in $(MASTER_MAKE_FILES); do \
+ $(INSTALL_DATA) $(srcdir)/Master/$$f $(makedir)/Master; \
+ done; \
+ for f in $(INSTANCE_MAKE_FILES); do \
+ $(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; \
+ done; \
+ for f in $(INSTANCE_DOC_MAKE_FILES); do \
+ $(INSTALL_DATA) $(srcdir)/Instance/Documentation/$$f \
+ $(makedir)/Instance/Documentation; \
+ done; \
+ $(INSTALL_DATA) executable.template $(makedir); \
+ $(INSTALL_DATA) config.make $(makedir)/$(GNUSTEP_TARGET_DIR))
+ $(EC)($(srcdir)/mkinstalldirs $(GNUSTEP_SYSTEM_ROOT)/share; \
+ $(INSTALL_DATA) $(srcdir)/config.site $(GNUSTEP_SYSTEM_ROOT)/share)
+ $(EC)(echo "Installing system GNUsteprc"; \
+ $(INSTALL_DATA) GNUsteprc $(GNUSTEP_SYSTEM_ROOT)/.GNUsteprc)
+ $(EC)(if [ "@GNUSTEP_STRIP_MAKEFILES@" = "strip" ]; then \
+ echo "Stripping makefiles and shell scripts..."; \
+ cd $(makedir); ./strip_makefiles.sh; \
+ fi)
+
+#
+# NICOLA - Need to clean the following message and print it at the end
+# of the install rule
+#
+# @echo ""
+# @echo "IMPORTANT: you need to execute a shell initialization script"
+# @echo "before you can use gnustep-make. The command to run the shell"
+# @echo "initialization script is:"
+# @echo ". $(makedir)/GNUstep.sh"
+# @echo "(be careful to put the space after the dot)"
+# @echo "Please run it now."
+# @echo ""
+
+uninstall:
+ rm -f $(makedir)/$(GNUSTEP_TARGET_DIR)/which_lib$(EXEEXT)
+ rm -f $(makedir)/$(GNUSTEP_TARGET_DIR)/user_home$(EXEEXT)
+ 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 \
+ transform_paths.sh vendor.sh \
+ ld_lib_path.csh fixpath.sh \
+ GNUstep.sh GNUstep.csh GNUstep-reset.sh \
+ relative_path.sh strip_makefiles.sh; do \
+ rm -f $(makedir)/$$f; \
+ done
+ rm -f $(tooldir)/openapp; \
+ rm -f $(tooldir)/debugapp; \
+ rm -f $(tooldir)/opentool; \
+ for f in $(MAKE_FILES); do \
+ rm -f $(makedir)/$$f; \
+ done
+ for f in $(MASTER_MAKE_FILES); do \
+ rm -f $(makedir)/Master/$$f; \
+ done
+ for f in $(INSTANCE_MAKE_FILES); do \
+ rm -f $(makedir)/Instance/$$f; \
+ done
+ for f in $(INSTANCE_SHARED_MAKE_FILES); do \
+ rm -f $(makedir)/Instance/Shared/$$f; \
+ done
+ for f in $(INSTANCE_DOC_MAKE_FILES); do \
+ rm -f $(makedir)/Instance/Documentation/$$f; \
+ done
+ rm -f $(makedir)/executable.template
+ rm -f $(GNUSTEP_SYSTEM_ROOT)/share/config.site
+ rm -f $(makedir)/$(GNUSTEP_TARGET_DIR)/config.make
+ rm -f $(GNUSTEP_SYSTEM_ROOT)/.GNUsteprc
+ -for f in $(makedir)/$(GNUSTEP_TARGET_CPU) \
+ $(makedir)/$(GNUSTEP_TARGET_DIR) \
+ $(makedir)/Additional \
+ $(makedir)/Auxiliary \
+ $(makedir)/Master \
+ $(makedir)/Instance/Shared \
+ $(makedir)/Instance/Documentation \
+ $(makedir)/Instance; do \
+ rmdir $$f; \
+ done
+# To really uninstall all of GNUstep, a 'rm -Rf ${GNUSTEP_ROOT}' should do.
+
+clean:
+ rm -f *~ which_lib$(EXEEXT) user_home$(EXEEXT) \
+ Master/*~ Instance/*~ Instance/Shared/*~
+
+distclean: clean
+ rm -f GNUmakefile config.make config.h
+ rm -f config.cache config.log config.status
+ rm -f openapp
+ rm -f debugapp
+ rm -f opentool
+ rm -f executable.template
+ rm -f GNUstep.sh
+ rm -f GNUstep.csh
+ rm -f fixpath.sh
+ rm -f gnustep-make.spec
+ rm -f GNUsteprc
+
+cvs-tag:
+ cvs -z3 rtag make-$(VERTAG) make
+
+cvs-dist:
+ cvs -z3 export -r make-$(VERTAG) make
+ mv make gnustep-make-$(GNUSTEP_MAKE_VERSION)
+ tar --gzip -cf gnustep-make-$(GNUSTEP_MAKE_VERSION).tar.gz gnustep-make-$(GNUSTEP_MAKE_VERSION)
+ rm -rf gnustep-make-$(GNUSTEP_MAKE_VERSION)
+
+cvs-snapshot:
+ cvs -z3 export -D now make
+ mv make gnustep-make-$(GNUSTEP_MAKE_VERSION)
+ tar --gzip -cf gnustep-make-$(GNUSTEP_MAKE_VERSION).tar.gz gnustep-make-$(GNUSTEP_MAKE_VERSION)
+ rm -rf gnustep-make-$(GNUSTEP_MAKE_VERSION)
+
+test-RPM_TOPDIR:
+ @(if [ -z "$(RPM_TOPDIR)" ]; then \
+ echo "Error - RPM_TOPDIR variable not set."; \
+ echo "You need to set it to the top of your rpm directory tree"; \
+ exit 1; \
+ fi)
+
+# The check for rpmbuild is for old RPM versions which didn't have
+# rpmbuild and used 'rpm -ba' instead. It can be removed when we are
+# reasonably sure no more old RPM versions (not having rpmbuild), are
+# still around.
+rpm: test-RPM_TOPDIR dist
+ cp ../gnustep-make-$(GNUSTEP_MAKE_VERSION).tar.gz $(RPM_TOPDIR)/SOURCES/
+ cp gnustep-make.spec $(RPM_TOPDIR)/SPECS/
+ cd $(RPM_TOPDIR)/SPECS/
+ if which rpmbuild > /dev/null 2>/dev/null; then \
+ rpmbuild="rpmbuild"; \
+ else \
+ if which rpm > /dev/null 2>/dev/null; then \
+ rpmbuild="rpm"; \
+ else \
+ echo "Error: You don't have rpm installed!"; \
+ rpmbuild="rpmbuild"; \
+ fi; \
+ fi; \
+ $${rpmbuild} -ba gnustep-make.spec
+
+generated-files: GNUmakefile GNUstep.sh GNUstep.csh fixpath.sh config.h config.make debugapp openapp opentool gnustep-make.spec executable.template
+
+GNUmakefile: GNUmakefile.in config.status
+ $(SHELL) config.status
+
+GNUstep.sh: GNUstep.sh.in
+ $(SHELL) config.status
+
+GNUstep.csh: GNUstep.csh.in
+ $(SHELL) config.status
+
+fixpath.sh: fixpath.sh.in
+ $(SHELL) config.status
+
+config.h: config.h.in
+ $(SHELL) config.status
+
+config.make: config.make.in Version
+ $(SHELL) config.status --recheck
+
+debugapp: debugapp.in
+ $(SHELL) config.status
+
+openapp: openapp.in
+ $(SHELL) config.status
+
+opentool: opentool.in
+ $(SHELL) config.status
+
+gnustep-make.spec: gnustep-make.spec.in Version
+ $(SHELL) config.status --recheck
+
+executable.template: executable.template.in
+ $(SHELL) config.status
--- /dev/null
+#
+# GNUmakefile.postamble
+#
+# Project specific makefile rules
+#
+# Uncomment the targets you want.
+# The double colons (::) are important, do not make them single colons
+# otherwise the normal makefile rules will not be performed.
+#
+
+# Things to do before compiling
+# before-all::
+
+# Things to do after compiling
+# after-all::
+
+# Things to do before installing
+# before-install::
+
+# Things to do after installing
+# after-install::
+
+# Things to do before uninstalling
+# before-uninstall::
+
+# Things to do after uninstalling
+# after-uninstall::
+
+# Things to do before cleaning
+# before-clean::
+
+# Things to do after cleaning
+# after-clean::
+
+# Things to do before distcleaning
+# before-distclean::
+
+# Things to do after distcleaning
+# after-distclean::
+
+# Things to do before checking
+# before-check::
+
+# Things to do after checking
+# after-check::
--- /dev/null
+#
+# GNUmakefile.preamble
+#
+# Project specific makefile variables, and additional
+#
+# Do not put any GNUmakefile rules in this file, instead they should
+# be put into GNUmakefile.postamble.
+#
+
+#
+# Flags dealing with compiling and linking
+#
+
+# Additional flags to pass to the preprocessor
+ADDITIONAL_CPPFLAGS +=
+
+# Additional flags to pass to the Objective-C compiler
+ADDITIONAL_OBJCFLAGS +=
+
+# Additional flags to pass to the C compiler
+ADDITIONAL_CFLAGS +=
+
+# Additional LDFLAGS to pass to the linker
+ADDITIONAL_LDFLAGS +=
+
+# Additional include directories the compiler should search
+ADDITIONAL_INCLUDE_DIRS +=
+
+# Additional library directories the linker should search
+ADDITIONAL_LIB_DIRS +=
+
+# Additional libraries when linking Objective-C programs
+ADDITIONAL_OBJC_LIBS +=
+
+# Additional libraries when linking tools
+ADDITIONAL_TOOL_LIBS +=
+
+# Additional libraries when linking applications
+ADDITIONAL_GUI_LIBS +=
+
+# Libraries that a shared library depends upon
+LIBRARIES_DEPEND_UPON +=
+
+#
+# Flags dealing with installing and uninstalling
+#
+
+# Additional directories to be created during installation
+ADDITIONAL_INSTALL_DIRS +=
+
--- /dev/null
+ GNUstep HOWTO
+ *************
+
+ Last Update: 3 September 2004
+
+ 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.
+
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.1 or
+ any later version published by the Free Software Foundation.
+
+Introduction
+************
+
+This document explains how to build the GNUstep core libraries. The
+core libraries, along with associated tools and other files provide
+everything necessary for a working GNUstep system.
+
+ In order to easily compile and debug GNUstep projects, you will need
+the GNU Objective-C compiler `GCC' as well as various other GNU
+packages.
+
+ You will need at least 80Mb of hard disk space (150Mb prefered) in
+order to compile the GNUstep core libraries.
+
+Summary
+*******
+
+In order to compile the libraries, you need to compile and install the
+following packages first (if you don't already have them):
+
+ * gcc (Version 2.95 or greater, 3.0.4 or greater recommended)
+
+ * GNU make (Version 3.75 or greater)
+
+ * gdb (Version 6.0 or greater recommended), if you plan to do any
+ debugging
+
+ You may also need to install some of the following libraries and
+packages described below. Most of these packages are optional, but some
+are required.
+
+`ffcall libraries (HIGHLY RECOMMENDED)'
+ This is a library that provides stack-frame handling for
+ NSInvocation and NSConnection. This library is highly recommended.
+ The previous builtin method for stack frame handling is no longer
+ supported and may be removed in the future. ffcall is under GNU
+ GPL. As a special exception, if used in GNUstep or in derivate
+ works of GNUstep, the included parts of ffcall are under GNU LGPL.
+
+`libffi library (ALTERNATIVE RECOMMENDATION)'
+ This is a library that provides stack frame handling for
+ NSInvocation and NSConnection similar to ffcall. Use this instead
+ of ffcall. You don't need both.
+
+`libxml2 (RECOMMENDED)'
+ The libxml library (Version 2) is used to translate some of the
+ documentation for GNUstep and to provide suport for MacOS-X
+ compatible XML-based property-lists. It is recommended but not
+ currently required.
+
+`libxslt (OPTIONAL)'
+ Stylesheet support for use with XML.
+
+`openssl (OPTIONAL)'
+ The openssl library is used to provide support for https
+ connections by the NSURL and HSURLHandle classes. This
+ functionality is compiled as a separate bundle since the OpenSSL
+ license is not compatible with GPL, and in the hopes that if
+ someone writes an openssl replacement, it can quickly be used by
+ creating another bundle.
+
+`libiconv (OPTIONAL)'
+ Note: Do not install this library unless you are sure you need it.
+ You probably don't need it except perhaps on MinGW. Unicode
+ support functions (iconv) come with glibc version 2.1 or greater.
+ If you don't have glibc (try iconv -version), you can get the
+ separate libiconv library from
+ <http://clisp.cons.org/~haible/packages-libiconv.html>. However,
+ neither one is required to use GNUstep.
+
+`The TIFF library (libtiff) (Version 3.4beta36 or greater) (REQUIRED)'
+ The GUI library uses this to handle loading and saving TIFF images.
+
+`The JPEG library (libjpeg) (RECOMMENDED)'
+ The GUI library uses this to handle loading JPEG images.
+
+`The PNG library (libpng) (RECOMMENDED)'
+ The GUI library uses this to handle loading PNG images.
+
+`libaudiofile (RECOMMENDED)'
+ The GUI library uses this for the sound server
+
+`freetype2 (RECOMMENDED, REQUIRED for art backend)'
+ This is used for font information
+
+`libart_lgpl2 (REQUIRED for art backend only)'
+ Drawing library for the art backend.
+
+`WindowMaker (Version >= 0.62) (OPTIONAL)'
+ GNUstep and WindowMaker work together to provide a consistant
+ interface. Although it is not required, GNUstep will work much
+ better if you use it with the WindowMaker window manager. Get
+ WindowMaker from <http://www.windowmaker.org>.
+
+`gnustep-objc package (for gcc version < 3.0 ONLY) (RECOMMENDED)'
+ Note: Do not install this library unless you are sure you need it.
+ You probably don't need it except on MinGW. 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. It is
+ available at <ftp://ftp.gnustep.org/pub/gnustep/libs> which
+ compiles using the GNUstep Makefile package (so you don't have to
+ get the entire gcc dist). Make sure to set the THREADING variable
+ in the GNUmakefile. It's possible to compile the library static
+ (make shared=no) and just copy to the place where the gcc libobjc
+ library is (type gcc -v to get this location). Note you have to
+ install gnustep-make (below) before installing this library.
+
+`GDB (OPTIONAL)'
+ GDB can be obtained from <ftp://ftp.gnu.org/gnu/gdb>. As of release
+ 6.0, gdb has special support for debugging Objective-C programs.
+
+`TeX (OPTIONAL)'
+ You need a TeX implementation, like tetex, to compile some of the
+ documentation (although most of that is available on the web).
+
+Compiling and Installing the packages
+*************************************
+
+Get the following individual packages:
+
+ * gnustep-make
+
+ * gnustep-base
+
+ * gnustep-gui
+
+ * gnustep-back
+
+ See <http://www.gnustep.org> for information on where to get these
+packages.
+
+ Make sure you install (if necessary) all the previously mentioned
+libraries first before configuring and building GNUstep.
+
+ You should install these packages as root (read special note for the
+gnustep-base library, below, if you cannot do this).
+
+ For installation on specific systems, read the machine specific
+instructions at the end of this document or appropriate README files in
+the gnustep-make Documentation directory (such as README.MingW for
+Windows).
+
+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:
+
+ ./configure
+
+ 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:
+
+ ./configure --prefix=/usr/local/GNUstep
+
+ 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.
+
+Alternate Library Setup
+-----------------------
+
+Read the installation instructions in the Makefile package (make) for
+more installation options. Make sure you use the same configuration
+options when configuring each GNUstep library.
+
+Building the Package
+--------------------
+
+To build the individual packages, use this familiar set of commands for
+each pacakge (add any additional options you decide upon):
+
+ ./configure
+ make
+ make install
+
+ Start with the Makefile Pacakge (gnustep-make). After installing
+gnustep-make you need to execute GNUstep's shell configuration script,
+as follows:
+
+ . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
+
+ before proceeding any further.
+
+ NOTE for gcc 2.X or MinGW users: Now install gnustep-objc. Before
+building gnustep-objc, edit the `GNUmakefile' and set the THREADING
+variable to the thread library used on your system (usually its posix,
+but you can leave it at single if you don't need threads). At this point
+you should probably re-configure, make and install gnustep-make, so it
+can pick up on any threading information that gnustep-objc provides.
+
+ Now install gnustep-base, gnustep-gui and finally gnustep-back.
+
+ NOTE: If you are trying to install the packages without root
+permission, you may need to change one thing in the base library. Edit
+the file gnustep-base/Tools/gdomap.h to uncomment the last line and
+modify the specified port number to a port which you _know_ is not in
+use on your network. You should only do this if absolutely necessary
+since making this change will break communications with any systems
+where an identical change has not been made. Also, the standard gdomap
+port is the one officially registered with IANA and is reserved for use
+by gdomap - it should only be changed if you can't get your system
+administrator to start the gdomap server using it.
+
+Additional Installation
+***********************
+
+Environment Setup
+=================
+
+Add the shell script `GNUstep.sh' located in the Makefile package to
+your shell startup file (such as `.profile'). For instance, if your
+GNUSTEP_SYSTEM_ROOT is `/usr/GNUstep/System',
+
+ . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
+
+ in your `.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
+`/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 `GNUstep.csh' script. Read
+the make package `README' for more info. Some systems, like GNU/Linux
+have an `/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 `GNUstep.sh' there. For csh or
+tcsh, try
+
+ source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
+
+GNUstep Home
+============
+
+Set up your home GNUstep directory. This should be done automatically
+if you don't do it. 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).
+
+ cd
+ mkdir GNUstep
+
+Time Zone
+=========
+
+Next, set your local time zone. There are four ways to do this, pick
+one (see
+`$GNUSTEP_SYSTEM_ROOT/Library/Libraries/Resources/gnustep-bsae/NSTimeZones/zones'
+for typical time zones):
+
+ 1. Use the defaults utility to set "Local Time Zone" to your local
+ time zone (defaults is installed with GNUstep in the Tools
+ directory). Type something like "defaults write NSGlobalDomain
+ "Local Time Zone" GB".
+
+ 2. Set the GNUSTEP_TZ environment variable.
+
+ 3. Create the file
+ `$GNUSTEP_SYSTEM_ROOT/Library/Libraries/Resources/gnustep-base/NSTimeZones/localtime'
+ with the name of the local time zone in it.
+
+ 4. Set the TZ environment variable (this may conflict with other
+ software on your system though).
+
+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:
+
+ * gdomap - Put this in a system startup file, like `/etc/rc.local'
+ or `/etc/rc.d/rc.local' (customize for your system)
+ GNUSTEP_SYSTEM_ROOT=/usr/GNUstep/System
+ if [ -f $GNUSTEP_SYSTEM_ROOT/Tools/gdomap ]; then
+ $GNUSTEP_SYSTEM_ROOT/Tools/gdomap
+ fi
+
+ * gdnc - Start after sourcing `GNUstep.sh' (e.g. in .profile)
+
+ * gpbs - Same as with gdnc, make sure X-Windows is running.
+
+ if [ `gdomap -L GDNCServer | grep -c Unable` == 1 ]; then
+ echo "Starting GNUstep services..."
+ gdnc
+ gpbs
+ fi
+
+Test Tools and Applications
+***************************
+
+Test programs for the base library are in `base/Testing'. Example
+applications are located in the gstep-examples package. To make these,
+just uncompress and untar this package, cd to the appropriate
+directory, and type make. You will need to install the GNUstep core
+libraries first before doing this.
+
+ To run the examples. Use the openapp utility that is part of the
+GNUstep makefile package (and stored in `$GNUSTEP_SYSTEM_ROOT/Tools').
+Usage is:
+
+ openapp application [additional arguments to app]
+
+ Good Luck!
+
+Machine Specific Instructions
+*****************************
+
+\input texinfo
+
+ Below is a list of machines that people have attempted to compile
+GNUstep on. GNUstep compiles with little or no trouble on many of the
+more popular operating systems. Some machines marked with _Unstable_
+may have some trouble or may not work at all. Platforms marked _Needs
+Testing_ are not actively tested by developers and need someone to help
+with reporting problems and fixes. Platforms marked _Obsolete_ are
+very old distributions. No one really knows if GNUstep works on these
+although they may.
+
+ A recommended compiler is listed for each machine, if known. You
+should try to use the recommended compiler for compiling GNUstep, as
+GNUstep is quite complex and tends provoke a lot of errors in some
+compilers. Even versions newer than the listed compiler may not work,
+so don't just get the latest version of a compiler expecting it to be
+better than previous versions.
+
+ Compiler notes: If a recommended compiler is not listed, take note
+of the following information before choosing the compiler you use.
+`egcs or gcc < 2.95'
+ Might work, but few people use these now.
+
+`gcc 2.95.x'
+ Probably the oldest compiler that GNUstep is regularly tested with.
+
+`gcc 2.96'
+ Not an official gcc release. Some versions (Redhat, Mandrake) have
+ problems that prevent GNUstep from being compiled correctly and
+ cause mysterious errors.
+
+`gcc 3.0.x'
+ A fairly good compiler. Recommended.
+
+`gcc 3.1'
+ Several bugs where introduced in the version. It's probably better
+ to avoid this one, although it might work fine.
+
+`gcc 3.2.x'
+ Pretty good. Recommended.
+
+`gcc 3.3.x'
+ Recommended. Fixes some bugs relating to protocols as well as other
+ improvements.
+
+`gcc 3.4'
+ No info yet.
+
+ If you have compiled GNUstep on a specific machine, please send
+information about what you needed and any special instructions needed to
+GNUstep <bug-gnustep@gnu.org>.
+
+ If your having mysterious trouble with a machine, try compiling
+GNUstep without optimization. Particularly in the newer GCC compilers,
+optimization can break some code. The easiest way to do this is when
+configuring, `CFLAGS="" ./configure'. Or when building, `make
+OPTFLAG=""'.
+
+ Also if you manually upgraded gcc and/or make, we recommend reading
+the documentation at <http://www.LinuxFromScratch.org> for tips on
+compiling and installing gcc and make. If you had GNUstep previously
+installed, make sure you completely remove all of it, including
+installed init scripts.
+
+Darwin/ix86
+===========
+
+Currently tested on Darwin 7.x
+
+`Recommended compiler'
+ gcc 3.3.2. Older versions will not compile on Darwin.
+
+ Default compiler has unknown problems. Use the GNU runtime.
+ Download the gcc compiler and configure it with
+ -enable-threads=posix. You don't need binutils or anything else.
+
+`Extra libs needed'
+
+`Special Instructions'
+ Read the <README.Darwin> file in the gnustep-make/Documentation
+ directory for complete instructions.
+
+
+Darwin/PowerPC
+==============
+
+Currently tested on Darwin 6.x, 7.x
+
+`Recommended compiler'
+ gcc 3.3.2. Older versions will not compile on Darwin.
+
+ Default compiler has unknown problems. Use the GNU runtime.
+ Download the gcc compiler and configure it with
+ -enable-threads=posix. You don't need binutils or anything else.
+
+`Extra libs needed'
+ Use libffi (not ffcall). This should be enabled by default in
+ gnustep-base so you don't have to type -enable-libffi. For 6.x,
+ you need the dlcompat library (from <www.opendarwin.org>) to load
+ bundles (not needed for 7.x).
+
+`Special Instructions'
+ Read the <README.Darwin> file in the gnustep-make/Documentation
+ directory for complete instructions.
+
+
+ See also the MacOSX/PowerPC section
+
+Debian/DEC-Alpha
+================
+
+`Recommended compiler'
+ Unknown
+
+`Extra libs needed'
+ Unknown
+
+`Special Instructions'
+ None
+
+Debian/i386
+===========
+
+Tested on sid.
+`Recommended compiler'
+ Unknown
+
+`Extra libs needed'
+ Unknown
+
+`Special Instructions'
+ None
+
+Debian/PowerPC
+==============
+
+Tested on sid.
+`Recommended compiler'
+ Unknown
+
+`Extra libs needed'
+ Unknown
+
+`Special Instructions'
+ None
+
+Debian/SPARC
+============
+
+Tested on sid.
+`Recommended compiler'
+ Unknown
+
+`Extra libs needed'
+ Unknown
+
+`Special Instructions'
+ None
+
+FreeBSD 5.x
+===========
+
+Tested on 5.0 and 5.1
+`Recommended compiler'
+
+`Extra libs needed'
+ None.
+
+`Special Instructions'
+ Can install via /usr/ports/devel/gnustep, but not all required
+ dependancies are installed. See the GNUstep-HOWTO for list of
+ libraries.
+
+
+FreeBSD 4.x
+===========
+
+`Recommended compiler'
+
+`Extra libs needed'
+ Unknown
+
+`Special Instructions'
+ For gcc 3.0.4, make WANT_THREADS_SUPPORT=YES
+
+ For libxml2 2.4.24, make WITHOUT_PYTHON=YES
+
+
+FreeBSD 3.x
+===========
+
+Compiles "out of the box" on FreeBSD 3.4.
+
+`Recommended compiler'
+ gcc 2.95.2
+
+`Extra libs needed'
+ Unknown
+
+`Special Instructions'
+ You need to use gmake not make to compile the GNUstep packages. A
+ special port of gdb can be used with the Objective-C patches from
+ <ftp://ftp.pcnet.com/users/eischen/FreeBSD/gdb-4.17-port.tar.gz>
+
+ The best compiler for GNUstep is the latest release of the GNU
+ Compiler Collection (GCC). You can find it at
+ <http://egcs.cygnus.com/>.
+
+ If you want to use the native POSIX threads support from `libc_r'
+ pass `--enable-threads=posix' to configure. This is the
+ recommended option as this is the FreeBSD threads package that
+ gives the best results -with others you may be unable to run some
+ examples like `diningPhilosophers'.
+
+ The whole compilation process can fail if you have another threads
+ library installed so watch out for installed packages like `pth'
+ and such. Besides the support for libc_r, GNUstep will also look
+ for `pth' and `pcthreads', so if you have installed them and they
+ aren't detected prepare to write a nice bug report.
+
+ This can be done more much easily by using the port version. Just
+ `cd' to `/usr/ports/lang/egcs' and do a `"make WANT_THREADS=yes
+ install"'. Easy.
+
+ If configure cannot find tiff.h or the tiff library and you have
+ it installed in a non-standard place (even `/usr/local'), you may
+ need to pass these flags to configure:
+ `CFLAGS="-I/usr/local/include"' and `LDFLAGS="-L/usr/local/lib"'.
+
+
+FreeBSD 2.x (_Obsolete,Unstable_)
+=================================
+
+`Recommended compiler'
+ gcc 2.8.x
+
+`Extra libs needed'
+ Unknown
+
+`Special Instructions'
+ Only static libraries work on this system. Use /stand/sysinstall
+ to install these packages if you have not already done so:
+
+ gmake (GNU make)
+ gcc 2.8.x
+
+ Seems to compile ok, but some tests crash. Possibly due to a
+ performace 'hack' in base. Might be a good idea to upgrade to
+ FreeBSD 3.x. You need to use gmake not make to compile the
+ GNUstep packages.
+
+
+Irix 6.5/MIPS
+=============
+
+`Recommended compiler'
+ gcc 3.2.1
+
+ To use threads, it's necessary to bootstrap a compiler yourself:
+ configure with -enable-threads=posix, that will work as long as you
+ link EVERY objective C executable with -lpthread, no matter what
+ warnings the irix linker produces!
+
+`Extra libs needed'
+ Unknown
+
+`Special Instructions'
+ If you cannot link the library because of the very low default
+ limit (20480) for the command line length, then you should either
+ use systune ncargs to increase the value (maximum is 262144) or
+ link the library by hand. No libffi-support: Use ffcall
+
+
+MacOSX/PowerPC
+==============
+
+Currently tested on MacOSX 10.2, 10.3
+
+`Recommended compiler'
+ Default.
+
+`Extra libs needed'
+ None.
+
+`Special Instructions'
+ By default, on Mac OS X, only the GNUstep extensions are built.
+ This is if you want to build gdl2, etc on Mac OS X. Xcode project
+ files exist, but they may not be up-to-date. Try:
+
+ cd make
+ ./configure --with-library-combo=apple-apple-apple
+ make install
+
+ cd ../base
+ ./configure --with-xml-prefix=/usr --disable-xmltest
+ make debug=yes install
+
+
+ See also the Darwin/PowerPC section.
+
+MkLinux/PowerPC
+===============
+
+Tested with R2 RC2 (2004/03/04).
+
+`Recommended compiler'
+ gcc 3.x allthough earlier ones should work if you also install
+ gnustep-objc
+
+`Extra libs needed'
+ None.
+
+`Special Instructions'
+ Unknown.
+
+
+NetBSD
+======
+
+`Recommended compiler'
+ Unknown
+
+`Extra libs needed'
+ libiconv
+
+`Special Instructions'
+ See the <README.NetBSD> file located in the gnustep-make package.
+
+
+Netwinder (_Unstable_)
+======================
+
+`Recommended compiler'
+ Build #12 of the system.
+
+`Extra libs needed'
+ Unknown
+
+`Special Instructions'
+ See <http://www.netwinder.org/~patrix>
+
+OpenBSD 3.x (_Needs Testing_)
+==============================
+
+`Recommended compiler'
+ Unknown
+
+`Extra libs needed'
+ Unknown
+
+`Special Instructions'
+ Try reading the <README.NetBSD> which might work the same on
+ OpenBSD.
+
+OSF Alpha (_Unstable_)
+=======================
+
+Information is for Version 3.2C
+
+`Recommended compiler'
+ egcs-1.1.1/1.1.2, gcc-2.95
+
+`Extra libs needed'
+ Unknown
+
+`Special Instructions'
+ Can only compile with static libraries. Compiler may fail when
+ linking executables (e.g. gdnc). Standard ranlib and ar programs
+ are to feable to create libraries. Should use GNU binutils
+ versions. Linker sometimes fails to find symbols, in which case
+ you may need to link with a library twice. For instance, add an
+ extra -lgnustep-gui in ADDTIONAL_TOOL_LIBS in the
+ GNUmakefile(.preamble).
+
+
+RedHat/Intel
+============
+
+`Recommended compiler'
+ Standard
+
+`Extra libs needed'
+ Standard (ffcall or libffi)
+
+`Special Instructions'
+ None
+
+Slackware/Intel
+===============
+
+`Recommended compiler'
+ Unknown.
+
+`Extra libs needed'
+ Unknown.
+
+`Special Instructions'
+ Unknown.
+
+
+Solaris 2.5.1/Sparc (_Obsolete_)
+================================
+
+This configuration is no longer being tested, but it may still work.
+
+`Recommended compiler'
+ Unknown
+
+`Extra libs needed'
+ tiff, Don't use the one in /usr/openwin
+
+`Special Instructions'
+ See the Solaris 2.6 section for more instructions.
+
+Solaris 2.[678]/Sparc
+=====================
+
+Tested on Solaris version 6, 7, and 8
+
+`Recommended compiler'
+ gcc 3.2.1 or greater gcc 2.95.3. Version 2.95.2 has several bugs
+ that GNUstep tickles. gcc 3.04. Not 3.1 - does not compile parts
+ of GNUstep.
+
+`Extra libs needed'
+ tiff, Don't use the one in /usr/openwin
+
+`Special Instructions'
+ Using a POSIX shell (zsh or bash, which should come with Solaris)
+ is highly recommended. In fact, some functions, such as compiling
+ frameworks, will not work without it.
+
+
+ Some people have reported problems when using binutils assembler and
+linker. Using the native Solaris assmebler and linker should work fine.
+
+ Older Instructions: If you are using threads, make sure the
+Objective-C runtime (libobjc that comes with gcc) is compiled with
+threads enabled (This is true by default) AND that it is compiled with
+the _REENTRANT flag defined (This does not seem to be true by default).
+Or use the gnustep-objc package. Also make sure THREADS is set to
+'posix' not 'solaris'.
+
+Solaris 2.7/Intel
+=================
+
+`Recommended compiler'
+ Unknown.
+
+`Extra libs needed'
+ Unknown
+
+`Special Instructions'
+ Make sure there are no -g compiler flags (i.e. compiling with
+ debug=yes might be a problem). Unsure of correct bundle flags -
+ You might need to use the alternate flags listed in target.make,
+ line 989. Also, configuring gnustep-make with
+ `--disable-backend-bundle' might be necessary if you can't get
+ bundles to work. You will probable get a lot of text relocation
+ warnings, which probably can be ignored. See the other Solaris
+ instructions above for more information.
+
+
+Suse 6.x/Intel
+==============
+
+GNUstep has been tested on version 6.2-6.4 of Suse
+
+`Recommended compiler'
+ Standard
+
+`Extra libs needed'
+ None
+
+`Special Instructions'
+ It seems that there is a problem with the default kernel build
+ distributed with Suse which means that the socket binding used by
+ gdnc doesn't work. If you recompile the kernel then it starts
+ working.
+
+
+Suse/Intel
+==========
+
+GNUstep has been tested on version 7.0, 8.0, 8.1, 8.2, 9.0, and 9.1 of
+Suse
+
+`Recommended compiler'
+ The default compiler that comes with Susu is fine. Also gcc2.95.x,
+ gcc3.0.x, 3.1 and 3.2 work, but 2.95 is faster. Compile with
+ -threads-enabled (non-standard).
+
+`Extra libs needed'
+ None
+
+`Special Instructions'
+ None.
+
+
+Suse 7.x/PPC
+============
+
+GNUstep has been tested on version 7.0 of Suse/PPC
+
+`Recommended compiler'
+ Standard. gcc2.95.x, gcc3.0.x and gc3.1 work, but 2.95 is faster.
+ Compile with -threads-enabled (non-standard).
+
+`Extra libs needed'
+ None
+
+`Special Instructions'
+
+Unixware-2.1.3/Intel
+====================
+
+`Recommended compiler'
+ Unknown
+
+`Extra libs needed'
+ Unknown
+
+
+ Special Instructions for GNUstep installation on Unixware 2.1 systems
+
+1
+ Tune the kernel to increase the argument space so that we can pass
+ long command-line argument strings to processes (which the
+ makefiles do) (/etc/conf/bin/idtune ARG_MAX 102400)
+
+2
+ Install raft of the latest GNU software
+
+ gzip (you need this to unpack other stuff)
+ make (to build everything)
+ m4 (for autoconf etc)
+ autoconf (if you need to change anything)
+ bison
+ flex
+ binutils (required by gcc if you want to debug)
+ gcc-2.8.1
+ (configure --with-gnu-as --with-gnu-ld --with-stabs)
+ NB. gcc-2.8.1 needs a fix to __do_global_dtors_aux()
+ in crtstuff.c on Unixware 2.1.3
+ (and possibly other unixware versions)
+ The fix is already in recent versions of egcs.
+
+ ==================================
+ static void
+ __do_global_dtors_aux ()
+ {
+ static func_ptr *p = __DTOR_LIST__ + 1;
+ static int completed = 0;
+
+ if (completed)
+ return;
+
+ while (*p)
+ {
+ p++;
+ (*(p-1)) ();
+ }
+
+ #ifdef EH_FRAME_SECTION_ASM_OP
+ __deregister_frame_info (__EH_FRAME_BEGIN__);
+ #endif
+ completed = 1;
+ }
+ ======================================
+
+3
+ Having got gcc working - it's probably a good idea to rebuild all
+ your GNU software using it!
+
+4
+ Build gstep as normal.
+
+5
+ The SIOCGIFCONF ioctl sometimes doesn't work on unixware after
+ applying some of the OS patches.
+
+ So I have added a '-a' flag to gdomap to give it the name of a file
+ containing IP address and netmask information for the network
+ interfaces on the system.
+
+ You need to set up a file (I suggest '/etc/gdomap_addresses')
+ containing the information for your machine and modify your system
+ startup files in /etc/rc?.d to run gdomap, telling it to use that
+ file.
+
+ eg. If your machine has an IP address of '193.111.111.2' and is on
+ a class-C network, your /etc/gdomap_addresses file would contain
+ the line
+
+ 193.111.111.2 255.255.255.0
+
+ and your startup file would contain the lines
+
+ . /usr/local/GNUstep/Library/Makefiles/GNUstep.sh
+ gdomap -a /etc/gdomap_addresses
+
+
+ If you don't set gdomap up correctly, Distributed Objects will not
+work.
+
+Windows with CYGWIN (_Needs Testing_)
+=====================================
+
+`Recommended compiler'
+ gcc 3.3.1 or later (with libobjc and libjava (if using libffi))
+
+`Extra libs needed'
+ Objective-C library DLL
+ (<ftp://ftp.gnustep.org/pub/gnustep/windows/cygwin>) for shared
+ libs. It's a good idea to remove the libobjc.a that comes with gcc
+ (gcc -v for location) so that it isn't accidentally found. For
+ ffcall, you should get version 1.8b or above (the earlier ones
+ don't compile). There are still some problems with structure
+ passing, but that is generally not supported on any architecture.
+ libffi also works.
+
+`Special Instructions'
+ Make sure you have good shared libraries for everthing. Sometimes
+ a bad shared library (like libtiff) will cause odd and untraceable
+ problems. See <README.Cygwin> for information on compiling.
+
+
+Windows with MinGW
+==================
+
+`Recommended compiler'
+ See below.
+
+`Extra libs needed'
+ See below.
+
+`Special Instructions'
+ See the <README.MinGW> file located in the gnustep-make
+ Documentation directory for instructions. Windows NT/2000/XP only.
+ Win98 machines and earlier are very buggy and are not supported.
+ Native GUI backend is alpha version.
+
+Yellowdog/PowerPC
+=================
+
+`Recommended compiler'
+ Standard
+
+`Extra libs needed'
+ Standard (ffcall or libffi)
+
+`Special Instructions'
+
+Getting Libraries via Anonymous CVS
+***********************************
+
+If you didn't get one of the snapshots, or if you want to be sure to
+stay on the bleading edge, then you should get the libraries via CVS. Go
+to <http://savannah.gnu.org/cvs/?group_id=99> for information on how to
+get anonymous CVS access.
+
+ If you haven't already done so, change to the directory, where you
+want the source to reside. To get a list of potential modules to check
+out, type
+ cvs -z3 checkout -c
+
+ For instance, to check our `core', which contains all the GNUstep
+code libraries:
+ cvs -z3 checkout core
+
+ After you have checked out the source you can compile it as usual.
+To update the source, go into the directory of the source tree you want
+to update, for example, go into 'base', and type:
+
+ cvs -z3 update -Pd
+
+ You don't have to re-checkout after you have the source, just update!
+
--- /dev/null
+#! /bin/echo This file must be sourced inside (ba)sh using: .
+#
+# GNUstep-reset.sh
+#
+# Shell script resetting the GNUstep environment variables
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+# This file is used to reset your environment. This is needed if you
+# want to change LIBRARY_COMBO. You first reset your environment, then
+# set a new LIBRARY_COMBO variable, then source GNUstep.sh again.
+
+# This file resets variables in reverse order as they are set in the
+# GNUstep.sh file.
+
+# This function resets a path.
+# The only argument is the name of the path variable to be reset. All
+# paths beginning with GNUSTEP_SYSTEM_ROOT, GNUSTEP_LOCAL_ROOT,
+# GNUSTEP_NETWORK_ROOT and GNUSTEP_USER_ROOT are removed from the path
+# variable (yes, we are rather crude). All other paths are kept
+# unchanged.
+function reset_path
+{
+ # Declare local variables
+ local original_path tmp_IFS temp_path dir gnustep_dir found
+
+ # NB: We need to use eval because we want to access a variable
+ # whose name is another variable!
+ original_path=$(eval echo \$$1)
+ tmp_IFS="$IFS"
+ IFS=:
+ temp_path=
+ # Loop on the paths
+ for dir in $original_path; do
+ # For each of them, keep it only if it's not beginning with
+ # a path in GNUSTEP_PATHLIST as prefix
+ found=no;
+ for gnustep_dir in $GNUSTEP_PATHLIST; do
+ if [ -n "$gnustep_dir" ]; then
+ case "$dir" in
+ $gnustep_dir*) found=yes; break;;
+ *);;
+ esac;
+ fi;
+ done;
+ if [ "$found" = "no" ]; then
+ if [ -z "$temp_path" ]; then
+ temp_path="$dir"
+ else
+ temp_path="$temp_path:$dir"
+ fi;
+ fi
+ done
+ IFS="$tmp_IFS"
+
+ # Not set the path variable.
+ eval "$1=\$temp_path"
+ # Export it only if non empty, otherwise remove it completely from
+ # the shell environment.
+ temp_path=`eval echo \$"$1"`
+ if [ -z "$temp_path" ]; then
+ eval "unset $1"
+ else
+ eval "export $1"
+ fi
+}
+
+reset_path CLASSPATH
+reset_path GUILE_LOAD_PATH
+reset_path LD_LIBRARY_PATH
+reset_path DYLD_LIBRARY_PATH
+reset_path DYLD_FRAMEWORK_PATH
+reset_path PATH
+
+# Make sure we destroy the reset_path function after using it - we don't
+# want to pollute the environment with it.
+unset -f reset_path
+
+unset GNUSTEP_PATHLIST
+unset GNUSTEP_USER_ROOT
+unset GNUSTEP_HOST_OS
+unset GNUSTEP_HOST_VENDOR
+unset GNUSTEP_HOST_CPU
+unset GNUSTEP_HOST
+unset GNUSTEP_NETWORK_ROOT
+unset GNUSTEP_LOCAL_ROOT
+unset GNUSTEP_MAKEFILES
+unset GNUSTEP_FLATTENED
+unset GNUSTEP_SYSTEM_ROOT
+unset GNUSTEP_ROOT
+unset LIBRARY_COMBO
--- /dev/null
+#! /bin/echo This file must be sourced inside csh using: source
+#
+# @configure_input@
+#
+# Shell initialization for the GNUstep environment.
+#
+# Copyright (C) 1998-2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Adam Fedor <fedor@gnu.org>
+# Author: Richard Frith-Macdonald <rfm@gnu.org>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+#
+# Set the GNUstep system root and local root
+#
+setenv GNUSTEP_ROOT "@GNUSTEP_ROOT@"
+setenv GNUSTEP_SYSTEM_ROOT "@prefix@"
+setenv GNUSTEP_FLATTENED "@GNUSTEP_FLATTENED@"
+if ( ! ${?LIBRARY_COMBO} ) then
+ setenv LIBRARY_COMBO "@ac_cv_library_combo@"
+endif
+
+setenv GNUSTEP_LOCAL_ROOT "@GNUSTEP_LOCAL_ROOT@"
+setenv GNUSTEP_NETWORK_ROOT "@GNUSTEP_NETWORK_ROOT@"
+
+setenv GNUSTEP_MAKEFILES "${GNUSTEP_SYSTEM_ROOT}/@MAKEFILES_SUFFIX@"
+
+if ( "@GNUSTEP_MULTI_PLATFORM@" == "" ) then
+ setenv GNUSTEP_HOST "@target@"
+ setenv GNUSTEP_HOST_CPU "@clean_target_cpu@"
+ setenv GNUSTEP_HOST_VENDOR "@clean_target_vendor@"
+ setenv GNUSTEP_HOST_OS "@clean_target_os@"
+endif
+
+#
+# Determine the host information
+#
+if ( ! ${?GNUSTEP_HOST} ) then
+ pushd /tmp > /dev/null
+ setenv GNUSTEP_HOST `${GNUSTEP_MAKEFILES}/config.guess`
+ setenv GNUSTEP_HOST `${GNUSTEP_MAKEFILES}/config.sub ${GNUSTEP_HOST}`
+ popd > /dev/null
+endif
+
+if ( ! ${?GNUSTEP_HOST_CPU} ) then
+ setenv GNUSTEP_HOST_CPU `${GNUSTEP_MAKEFILES}/cpu.sh ${GNUSTEP_HOST}`
+ setenv GNUSTEP_HOST_CPU `${GNUSTEP_MAKEFILES}/clean_cpu.sh ${GNUSTEP_HOST_CPU}`
+endif
+
+if ( ! ${?GNUSTEP_HOST_VENDOR} ) then
+ setenv GNUSTEP_HOST_VENDOR `${GNUSTEP_MAKEFILES}/vendor.sh ${GNUSTEP_HOST}`
+ setenv GNUSTEP_HOST_VENDOR `${GNUSTEP_MAKEFILES}/clean_vendor.sh ${GNUSTEP_HOST_VENDOR}`
+endif
+
+if ( ! ${?GNUSTEP_HOST_OS} ) then
+ setenv GNUSTEP_HOST_OS `${GNUSTEP_MAKEFILES}/os.sh ${GNUSTEP_HOST}`
+ setenv GNUSTEP_HOST_OS `${GNUSTEP_MAKEFILES}/clean_os.sh ${GNUSTEP_HOST_OS}`
+endif
+
+if ( "${GNUSTEP_FLATTENED}" == "" ) then
+ setenv GNUSTEP_USER_ROOT `${GNUSTEP_MAKEFILES}/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}/user_home user`
+else
+ setenv GNUSTEP_USER_ROOT `${GNUSTEP_MAKEFILES}/user_home user`
+endif
+
+#
+# Add the GNUstep tools directories to the path
+#
+if ( ! ${?GNUSTEP_PATHLIST} ) then
+ setenv GNUSTEP_PATHLIST \
+ "${GNUSTEP_USER_ROOT}:${GNUSTEP_LOCAL_ROOT}:${GNUSTEP_NETWORK_ROOT}:${GNUSTEP_SYSTEM_ROOT}"
+endif
+
+set temp_path = ""
+foreach dir ( `/bin/sh -c 'IFS=:; for i in ${GNUSTEP_PATHLIST}; do echo $i; done'` )
+ set temp_path="${temp_path}${dir}/Tools:"
+ if ( "${GNUSTEP_FLATTENED}" == "" ) then
+ set temp_path="${temp_path}${dir}/Tools/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}/${LIBRARY_COMBO}:"
+ set temp_path="${temp_path}${dir}/Tools/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}:"
+ endif
+end
+
+if ( ! ${?PATH} ) then
+ setenv PATH "${temp_path}"
+else if ( { (echo "$PATH" | fgrep -v "$temp_path" >/dev/null) } ) then
+ setenv PATH "${temp_path}${PATH}"
+endif
+unset temp_path dir
+
+source "${GNUSTEP_MAKEFILES}/ld_lib_path.csh"
+
+# FIXME/TODO - use GNUSTEP_PATHLIST here
+set gnustep_class_path="${GNUSTEP_USER_ROOT}/Library/Libraries/Java:${GNUSTEP_LOCAL_ROOT}/Library/Libraries/Java:${GNUSTEP_NETWORK_ROOT}/Library/Libraries/Java:${GNUSTEP_SYSTEM_ROOT}/Library/Libraries/Java"
+
+if ( ! ${?CLASSPATH} ) then
+ setenv CLASSPATH "${gnustep_class_path}"
+else if ( { (echo "${CLASSPATH}" | fgrep -v "${gnustep_class_path}" >/dev/null) } ) then
+ setenv CLASSPATH "${CLASSPATH}:${gnustep_class_path}"
+endif
+
+unset gnustep_class_path
+
+set gnustep_guile_path="${GNUSTEP_USER_ROOT}/Libraries/Guile:${GNUSTEP_LOCAL_ROOT}/Libraries/Guile:${GNUSTEP_NETWORK_ROOT}/Libraries/Guile:${GNUSTEP_SYSTEM_ROOT}/Libraries/Guile"
+
+if ( $?GUILE_LOAD_PATH == 0 ) then
+ setenv GUILE_LOAD_PATH "${gnustep_guile_path}"
+else if ( { (echo "${GUILE_LOAD_PATH}" | fgrep -v "${gnustep_guile_path}" >/dev/null) } ) then
+ setenv GUILE_LOAD_PATH "${gnustep_guile_path}:${GUILE_LOAD_PATH}"
+endif
+
+unset gnustep_guile_path
+
+#
+# Perform any user initialization
+#
+if ( -e "$GNUSTEP_USER_ROOT/GNUstep.csh" ) then
+ source "$GNUSTEP_USER_ROOT/GNUstep.csh"
+endif
+
--- /dev/null
+#! /bin/echo This file must be sourced inside (ba)sh using: .
+#
+# @configure_input@
+#
+# Shell initialization for the GNUstep environment.
+#
+# Copyright (C) 1997-2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Adam Fedor <fedor@gnu.org>
+# Author: Richard Frith-Macdonald <rfm@gnu.org>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+# Warning - this shell script is delicate, because it is sourced by
+# using . rather than simply executed. It is sourced because that is
+# the only way to change the shell variables in the calling
+# environment.
+#
+# Sourcing makes the shell script more delicate for the following reasons:
+#
+# * temporary variables are automatically set in the calling
+# environment! WORKAROUND: we need to unset all them after using
+# them to avoid polluting the calling environment;
+#
+# * not only the exit value of the script, but the exit value of each
+# command we execute, might be interpreted by the calling
+# environment. Typically, the calling environment might be using the
+# shell errexit option ('set -e') in bash parlance, which causes the
+# shell to exit if any command returns an error value. If this were
+# a normal script, this option would mean that the shell would exit
+# if the return value of the whole script were an error value; but
+# because we are sourced, it is as all the commands in this script
+# were executed directly in the calling environment, so *all* values
+# returned by *all* commands must be non-error. [this all typically
+# happens in rpm builds, where scripts are run with the errexit
+# option so that errors in scripts abort the build, and now if a
+# script sources GNUstep.sh, then we are exactly in this situation -
+# if any command inside GNUstep.sh returns an error value (even if
+# GNUstep.sh as a whole would be happy and return succes), the whole
+# rpm build process aborts!]. WORKAROUND: we must make sure all
+# commands return success - last resorts hacks like 'command || :'
+# which always returns success whatever command returns.
+#
+
+# If we're running in zsh (auch!) make sure we're using -y
+# (SH_WORD_SPLIT) else our path manipulations won't work.
+if [ -n "$ZSH_VERSION" ]; then
+
+ # If -y is not already set, set it and remember that we
+ # need to set it back to what it was at the end.
+ if ( setopt | grep shwordsplit > /dev/null ); then :; else
+ set -y
+ GS_ZSH_NEED_TO_RESTORE_SET=yes
+ fi
+
+fi
+
+#
+# Set the GNUstep system root and local root
+#
+GNUSTEP_ROOT=@GNUSTEP_ROOT@
+GNUSTEP_SYSTEM_ROOT=@prefix@
+GNUSTEP_FLATTENED=@GNUSTEP_FLATTENED@
+if [ -z "$LIBRARY_COMBO" ]; then
+ LIBRARY_COMBO=@ac_cv_library_combo@
+fi
+export GNUSTEP_ROOT GNUSTEP_SYSTEM_ROOT GNUSTEP_FLATTENED LIBRARY_COMBO
+
+GNUSTEP_MAKEFILES=$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@
+export GNUSTEP_MAKEFILES
+
+GNUSTEP_LOCAL_ROOT=@GNUSTEP_LOCAL_ROOT@
+GNUSTEP_NETWORK_ROOT=@GNUSTEP_NETWORK_ROOT@
+export GNUSTEP_LOCAL_ROOT GNUSTEP_NETWORK_ROOT
+
+# If multi-platform support is disabled, just use the hardcoded cpu,
+# vendor and os determined when gnustep-make was configured. The
+# reason using the hardcoded ones might be better is that config.guess
+# and similar scripts might even require compiling test files to
+# determine the platform - but then you can't source GNUstep.sh
+# without having gcc, binutils, libc6-dev installed. Which can be a
+# problem for end-users who are not developers and have no development
+# tools installed. To prevent this problem, unless we were configured
+# to determine the platform at run time, by default we use the
+# hardcoded values of GNUSTEP_HOST*.
+if [ -z "@GNUSTEP_MULTI_PLATFORM@" ]; then
+ GNUSTEP_HOST=@target@
+ GNUSTEP_HOST_CPU=@clean_target_cpu@
+ GNUSTEP_HOST_VENDOR=@clean_target_vendor@
+ GNUSTEP_HOST_OS=@clean_target_os@
+fi
+
+#
+# Determine the host information
+#
+if [ -z "$GNUSTEP_HOST" ]; then
+ # Not all shells (e.g. /bin/sh on FreeBSD < 4.0 or ash) have pushd/popd
+ tmpdir=`pwd`; cd /tmp
+ GNUSTEP_HOST=`$GNUSTEP_MAKEFILES/config.guess`
+ GNUSTEP_HOST=`$GNUSTEP_MAKEFILES/config.sub $GNUSTEP_HOST`
+ cd "$tmpdir"
+ unset tmpdir
+fi
+
+if [ -z "$GNUSTEP_HOST_CPU" ]; then
+ GNUSTEP_HOST_CPU=`$GNUSTEP_MAKEFILES/cpu.sh $GNUSTEP_HOST`
+ GNUSTEP_HOST_CPU=`$GNUSTEP_MAKEFILES/clean_cpu.sh $GNUSTEP_HOST_CPU`
+fi
+
+if [ -z "$GNUSTEP_HOST_VENDOR" ]; then
+ GNUSTEP_HOST_VENDOR=`$GNUSTEP_MAKEFILES/vendor.sh $GNUSTEP_HOST`
+ GNUSTEP_HOST_VENDOR=`$GNUSTEP_MAKEFILES/clean_vendor.sh $GNUSTEP_HOST_VENDOR`
+fi
+
+if [ -z "$GNUSTEP_HOST_OS" ]; then
+ GNUSTEP_HOST_OS=`$GNUSTEP_MAKEFILES/os.sh $GNUSTEP_HOST`
+ GNUSTEP_HOST_OS=`$GNUSTEP_MAKEFILES/clean_os.sh $GNUSTEP_HOST_OS`
+fi
+
+export GNUSTEP_HOST GNUSTEP_HOST_CPU GNUSTEP_HOST_VENDOR GNUSTEP_HOST_OS
+
+#
+# Ask the user_home tool for the root path.
+#
+if [ -z "$GNUSTEP_FLATTENED" ]; then
+ GNUSTEP_USER_ROOT=`$GNUSTEP_MAKEFILES/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/user_home user`
+else
+ GNUSTEP_USER_ROOT=`$GNUSTEP_MAKEFILES/user_home user`
+fi
+
+export GNUSTEP_USER_ROOT
+
+#
+# GNUSTEP_PATHLIST is like an abstract path-like shell
+# variable, which can be used to search the gnustep directories - and
+# in these scripts, it is also used to set up other shell variables
+#
+if [ -z "$GNUSTEP_PATHLIST" ]; then
+
+ # If we need to convert win32 paths, this is the time!
+ if [ -z "`echo $GNUSTEP_SYSTEM_ROOT | sed 's|^[a-zA-Z]:/.*$||'`" ]; then
+ G_U_R=`$GNUSTEP_MAKEFILES/fixpath.sh -u "$GNUSTEP_USER_ROOT"`
+ G_L_R=`$GNUSTEP_MAKEFILES/fixpath.sh -u "$GNUSTEP_LOCAL_ROOT"`
+ G_N_R=`$GNUSTEP_MAKEFILES/fixpath.sh -u "$GNUSTEP_NETWORK_ROOT"`
+ G_S_R=`$GNUSTEP_MAKEFILES/fixpath.sh -u "$GNUSTEP_SYSTEM_ROOT"`
+ else
+ G_U_R="$GNUSTEP_USER_ROOT"
+ G_L_R="$GNUSTEP_LOCAL_ROOT"
+ G_N_R="$GNUSTEP_NETWORK_ROOT"
+ G_S_R="$GNUSTEP_SYSTEM_ROOT"
+ fi
+
+ # Now we basically want to build
+ # GNUSTEP_PATHLIST="$G_U_R:$G_L_R:$G_N_R:$G_S_R"
+ # but we want to remove duplicates.
+
+ # Start with $G_U_R:$G_L_R - or $G_U_R if they are the same
+ if [ "$G_L_R" != "$G_U_R" ]; then
+ GNUSTEP_PATHLIST="$G_U_R:$G_L_R"
+ else
+ GNUSTEP_PATHLIST="$G_U_R"
+ fi
+
+ # Now append $G_N_R but only if different from what already there
+ if [ "$G_N_R" != "$G_U_R" ]; then
+ if [ "$G_N_R" != "$G_L_R" ]; then
+ GNUSTEP_PATHLIST="$GNUSTEP_PATHLIST:$G_N_R"
+ fi
+ fi
+
+ # Now append $G_S_R but only if different from what already there
+ if [ "$G_S_R" != "$G_U_R" ]; then
+ if [ "$G_S_R" != "$G_L_R" ]; then
+ if [ "$G_S_R" != "$G_N_R" ]; then
+ GNUSTEP_PATHLIST="$GNUSTEP_PATHLIST:$G_S_R"
+ fi
+ fi
+ fi
+
+ unset G_U_R
+ unset G_L_R
+ unset G_N_R
+ unset G_S_R
+
+ export GNUSTEP_PATHLIST
+fi
+
+#
+# Add path to Tools to PATH
+#
+tmp_IFS="$IFS"
+IFS=:
+temp_path=
+for dir in $GNUSTEP_PATHLIST; do
+
+ # Prepare the path_fragment
+ if [ -z "$GNUSTEP_FLATTENED" ]; then
+ path_fragment="$dir/Tools:$dir/Tools/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}/${LIBRARY_COMBO}:$dir/Tools/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}"
+ else
+ path_fragment="$dir/Tools"
+ fi
+
+ # Add it to temp_path
+ if [ -z "$temp_path" ]; then
+ temp_path="$path_fragment"
+ else
+ temp_path="$temp_path:$path_fragment"
+ fi
+
+ unset path_fragment
+
+done
+IFS="$tmp_IFS"
+unset tmp_IFS
+unset dir
+if [ -z "$PATH" ]; then
+ PATH="$temp_path"
+else
+ if ( echo ${PATH}| grep -v "${temp_path}" >/dev/null ); then
+ PATH="${temp_path}:${PATH}"
+ fi
+fi
+unset temp_path
+export PATH
+
+. $GNUSTEP_MAKEFILES/ld_lib_path.sh
+
+tmp_IFS="$IFS"
+IFS=:
+gnustep_class_path=
+for dir in $GNUSTEP_PATHLIST; do
+
+ if [ -z "$gnustep_class_path" ]; then
+ gnustep_class_path="$dir/Library/Libraries/Java"
+ else
+ gnustep_class_path="$gnustep_class_path:$dir/Library/Libraries/Java"
+ fi
+
+done
+IFS="$tmp_IFS"
+unset tmp_IFS
+unset dir
+
+if [ -z "$CLASSPATH" ]; then
+ CLASSPATH="$gnustep_class_path"
+else
+ if ( echo ${CLASSPATH}| grep -v "${gnustep_class_path}" >/dev/null ); then
+ CLASSPATH="$CLASSPATH:$gnustep_class_path"
+ fi
+fi
+
+unset gnustep_class_path
+export CLASSPATH
+
+#
+# Setup path for loading guile modules too.
+#
+old_IFS="$IFS"
+IFS=:
+guile_paths=
+for dir in $GNUSTEP_PATHLIST; do
+
+ if [ -z "$guile_paths" ]; then
+ guile_paths="$dir/Library/Libraries/Guile"
+ else
+ guile_paths="$guile_paths:$dir/Library/Libraries/Guile"
+ fi
+
+done
+IFS="$old_IFS"
+unset old_IFS
+unset dir
+
+if [ -z "$GUILE_LOAD_PATH" ]; then
+ GUILE_LOAD_PATH="$guile_paths"
+else
+ if ( echo ${GUILE_LOAD_PATH}| grep -v "${guile_paths}" >/dev/null ); then
+ GUILE_LOAD_PATH="$guile_paths:$GUILE_LOAD_PATH"
+ fi
+fi
+export GUILE_LOAD_PATH
+unset guile_paths
+
+
+#
+# Perform any user initialization
+#
+if [ -f "$GNUSTEP_USER_ROOT/GNUstep.sh" ]; then
+ . "$GNUSTEP_USER_ROOT/GNUstep.sh"
+fi
+
+if [ -n "$GS_ZSH_NEED_TO_RESTORE_SET" ]; then
+ set +y
+fi
+# EOF
\ No newline at end of file
--- /dev/null
+GNUSTEP_USER_ROOT=@GNUSTEP_USER_ROOT@
+
--- /dev/null
+GNUstep makefile package installation
+*************************************
+
+Introduction
+============
+
+If you are installing this package as part of the GNUstep core
+libraries, read the file GNUstep-HOWTO for more complete instructions on
+how to install the entire GNUstep package (including this package).
+GNUstep-HOWTO comes with this distribution.
+
+ This should be the first GNUstep package you install. Before
+installing this package, install ffcall or libffi and any other
+libraries that GNUstep may need (see the GNUstep-HOWTO). Read and
+follow the instructions on setting up the GNUstep environement below.
+Then install gnustep-base.
+
+ When you configure additional libraries, make sure you use the same
+configuration options as with gstep-make.
+
+ Also make sure you've read the machine-specific instructions for your
+particular operating system and CPU. These instructions come with the
+GNUstep-HOWTO and are also located at the GNUstep web site at
+<http://www.gnustep.org>.
+
+ Quick installation instructions:
+
+ ./configure
+ make
+ make install
+
+ To make and install the documentation:
+
+ cd Documentation
+ make
+ make install
+
+Configuration
+=============
+
+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:
+
+ ./configure
+
+ The GNUstep makefile package needs a root directory. If the
+GNUSTEP_SYSTEM_ROOT environment variable is set then configure will use
+its value as the root directory. You can also specify the root
+directory when you run configure with the prefix paramter; the
+following command makes /usr/local/GNUstep the root directory:
+
+ ./configure --prefix=/usr/local/GNUstep
+
+ 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.
+
+ To see more options you can use with configure, type
+
+ ./configure --help
+
+ Look particularly at the end of the list that configure gives, as
+these options are specific to GNUstep. Some of these are described
+below.
+
+ With the GNUstep packages you can use various switches, such as
+shared and debug, to control compilation. for example, "make shared=no
+debug=yes" compiles using static libraries with debugging information.
+(Make sure you use the same switches for every package you compile, and
+also when you install).
+
+Backend Bundles
+---------------
+
+By default, the gnustep-make package specifies that GUI backends are
+built as a bundle and loaded in at runtime. This allows one to switch
+backends by simply redefining a user default. If you do not want this
+behavior (for instance, if bundles do not work on your platform), it
+can be disabled using
+
+ --disable-backend-bundle
+
+ in the arguments to configure.
+
+Alternate Library Setup
+-----------------------
+
+You can specify compilation of alternate libraries by using the
+with-library-combo option.
+
+ ./configure --with-library-combo=apple-gnu-gnu
+
+ to compile with Apple's runtime on Darwin, for example. See the
+DESIGN document for more examples of the variety of library combos.
+
+Alternate Thread Library
+------------------------
+
+You can specify compilation of an alternate thread library from the one
+that is normally used (or if GNUstep does not know what your normal
+library is) with the with-thread-lib option.
+
+ ./configure --with-thread-lib="-L/usr/local/lib -lgthread -lglib"
+
+ to use libgthread as your threading library. Note that the
+Objective-C runtime (libobjc) must have a compatible threading backend
+in order to use this threading library and you must set the appropriate
+threading backend by hand in the GNUmakefile if you are using
+gnustep-objc. If you also need to set compiler flags, use the CPPFLAGS
+variable when calling configure:
+
+ CPPFLAGS="-I/usr/local/include" ./configure --with-thread-lib="-L/usr/local/lib -lgthread -lglib"
+
+Warnings for #import
+--------------------
+
+Up until gcc 3.4, the #import directive was not implemented correctly.
+As a result, the GCC compiler automatically emitted a warning whenever
+#import was used. As of gcc 3.4, this problem has been fixed, so
+presumable, this warning is no longer emitted when code is compiled. If
+you are using an early compiler, you can supress these warnings by
+adding `-Wno-import' to `CPPFLAGS' in the config.make file.
+
+Configuring for a non-flattened structure
+-----------------------------------------
+
+GNUstep is normally configured to support a single target/combo. If you
+are interested in supporting more than one target and/or combo, it's
+possible to configure GNUstep to use a non-'flattened' directory
+structure. You do this by supplying the `--disable-flattened' argument
+to configure. You might also want to supply the
+`--enable-multi-platform' option.
+
+ In a flattened structure, files are stored at the top-level rather
+than in a `$(GNUSTEP_CPU)/$(GNUSTEP_OS)/$(LIBRARY_COMBO)' subdirectory.
+
+Configuring for a cross-compile target
+--------------------------------------
+
+By default when you run configure, it assumes that you want to create
+executables for the same host that you are compiling on; however, the
+GNUstep makefile package has been designed to support cross-compiling
+just as easily as normal compiling. In order to add a cross-compile
+target to the GNUstep makefile package, you must rerun configure for
+that target and reinstall the makefile package. By rerunning
+configure, the appropriate target settings are determined, and
+reinstalling the makefile package installs the appropriate files for
+that target. The target parameter is used to specify the target
+platform for cross-compiling:
+
+ ./configure --target=i386-mingw32
+ make install
+
+ GNUstep normally is configured to work with only one target. To work
+with multiple targets, you'll need to add `--disable-flattened' and
+`--enable-multi-platform' to the configure flags. Files for the
+different targets will not be overwritten when you configure and install
+the make package several times.
+
+ ./configure --disable-flattened --enable-multi-platform --target=i386-mingw32
+ make install
+ ./configure --disable-flattened --enable-multi-platform --target=sparc-solaris2.5
+ make install
+ ./configure --disable-flattened --enable-multi-platform --target=alpha-linux-gnu
+ make install
+
+Installation
+============
+
+After you configure the GNUstep makefile package, then you need to
+compile the programs that come with the package. Currently there is
+only a single C program which needs to be compiled; all of the other
+files are either shell scripts or makefile fragments, so you can
+compile and install the makefile package in one step with:
+
+ make install
+
+ After you have installed the GNUstep makefile package, there is still
+some minor administration to be performed. Based upon whether you are
+setting up the GNUstep environment for a single user or all users on
+your system, perform the appropriate step below.
+
+Setting up the GNUstep environment
+==================================
+
+Setting up the GNUstep environment for all users
+------------------------------------------------
+
+The GNUstep environment and thus usage of the makefile package is based
+almost solely upon the GNUSTEP_SYSTEM_ROOT environment variable. So
+essentially the setup involved is to make sure that the variable is
+defined for all users. The GNUstep.sh file within the makefile package
+contains all of the environment variable settings required, so you want
+to call that shell. Some systems, like GNU/Linux have an
+`/etc/profile.d' directory where scripts can be executed automatically.
+Just copy GNUstep.sh to this directory for it to work. For other UNIX
+systems, there might be a system wide script that everyone uses, such
+as `/etc/bashrc', where you could add lines similar to these:
+
+ # Setup for the GNUstep environment
+ . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
+
+ This will source in the GNUstep.sh file and set the environment
+variables; thus making them available for all users. Before executing
+this script, you can setup a default path for scripts in the makefiles
+package to use for searching for tools and apps by defining the
+variable GNUSTEP_PATHLIST (and exporting it). By default, it's set to
+
+ $GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_SYSTEM_ROOT
+
+ which might look something like this:
+
+ ~/GNUstep:/usr/GNUstep/Local:/usr/GNUstep/System
+
+ when all is done.
+
+ NB. This path is NOT used by GNUstep tools and applications
+themselves ... they use a standard function
+NSSearchPathForDirectoriesInDomains() to locate files instead.
+
+Setting up the GNUstep environment for a single user
+----------------------------------------------------
+
+The GNUstep environment and thus usage of the makefile package is based
+almost solely upon the GNUSTEP_SYSTEM_ROOT environment variable. So
+essentially the setup involved is to make sure that the variable is
+defined for the user. The GNUstep.sh file within the makefile package
+contains all of the environment variable settings required, so you want
+to call that shell when the user logs in to the system. Most shells
+have some file that you read upon login, for example the BASH shell
+reads the .bash_profile file in the user's home directory. So you can
+add the following lines to that file:
+
+ # Setup for the GNUstep environment
+ if [ -f $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh ]; then
+ . $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/GNUstep.sh
+ fi
+
+ This will source in the GNUstep.sh file and set the environment
+variables; thus making them available for the user.
+
+ The GNUstep.sh file will set up GNUSTEP_USER_ROOT to the GNUstep
+subdirectory of the users home directory by default. This may be
+overridden by a user providing a .GNUsteprc file in their home
+directory. It may be overridden on a system-wide basis by supplying a
+.GNUsteprc file in the GNUSTEP_SYSTEM_ROOT directory.
+
+ # Set up to store GNUstep files directly in my home directory
+ GNUSTEP_USER_ROOT=~
+
--- /dev/null
+# -*-makefile-*-
+# Instance/Documentation/autogsdoc.make
+#
+# Instance Makefile rules to build Autogsdoc documentation.
+#
+# Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(BASE_MAKE_LOADED), yes)
+ifeq ($(GNUSTEP_BASE_HAVE_LIBXML), 1)
+
+ifeq ($(AUTOGSDOC),)
+ AUTOGSDOC = autogsdoc
+endif
+
+AGSDOC_FLAGS = $($(GNUSTEP_INSTANCE)_AGSDOC_FLAGS)
+
+INTERNAL_AGSDOCFLAGS = -Project $(GNUSTEP_INSTANCE)
+INTERNAL_AGSDOCFLAGS += -DocumentationDirectory $(GNUSTEP_INSTANCE)
+INTERNAL_AGSDOCFLAGS += $(AGSDOC_FLAGS)
+
+internal-doc-all_:: $(GNUSTEP_INSTANCE)/dependencies
+
+# Only include (and implicitly automatically rebuild if needed) the
+# dependencies file when we are compiling. Ignore it when cleaning or
+# installing.
+ifeq ($(GNUSTEP_OPERATION), all)
+-include $(GNUSTEP_INSTANCE)/dependencies
+endif
+
+$(GNUSTEP_INSTANCE)/dependencies:
+ $(ECHO_AUTOGSDOC)$(AUTOGSDOC) $(INTERNAL_AGSDOCFLAGS) -MakeDependencies $(GNUSTEP_INSTANCE)/dependencies $(AGSDOC_FILES)$(END_ECHO)
+
+internal-doc-install_::
+ $(ECHO_INSTALLING)rm -rf $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE); \
+ $(TAR) cfX - $(GNUSTEP_MAKEFILES)/tar-exclude-list $(GNUSTEP_INSTANCE) | \
+ (cd $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR); $(TAR) xf -)$(END_ECHO)
+ifneq ($(CHOWN_TO),)
+ $(ECHO_CHOWNING)$(CHOWN) -R $(CHOWN_TO) \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE)$(END_ECHO)
+endif
+
+internal-doc-uninstall_::
+ -$(ECHO_UNINSTALLING)rm -f $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE)$(END_ECHO)
+
+internal-doc-clean::
+ -$(ECHO_NOTHING)rm -Rf $(GNUSTEP_INSTANCE)$(END_ECHO)
+
+else
+
+internal-doc-all_::
+ @echo "No libxml - processing of autogsdoc files skipped"
+
+endif # GNUSTEP_BASE_HAVE_LIBXML
+
+else
+
+internal-doc-all_::
+ @echo "GNUstep-Base not installed - processing of autogsdoc files skipped"
+ @echo "If you want to generate documentation, install GNUstep-base first"
+ @echo "and then rerun make here"
+
+
+endif # BASE_MAKE_LOADED
--- /dev/null
+# -*-makefile-*-
+# Instance/Documentation/gsdoc.make
+#
+# Instance Makefile rules to build gsdoc documentation.
+#
+# Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# The only thing we know is that each %.gsdoc file should generate a
+# %.html file. If any of the %.gsdoc files is newer than a corresponding
+# %.html file, we rebuild them all.
+GSDOC_OBJECT_FILES = $(patsubst %.gsdoc,%.html,$(GSDOC_FILES))
+
+internal-doc-all_:: $(GSDOC_OBJECT_FILES)
+
+$(GSDOC_OBJECT_FILES): $(GSDOC_FILES)
+ autogsdoc $(GSDOC_FILES)
+
+internal-doc-install_:: \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE)
+ $(ECHO_INSTALLING)$(INSTALL_DATA) $(GSDOC_OBJECT_FILES) \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE)$(END_ECHO)
+internal-doc-uninstall_::
+ $(ECHO_UNINSTALLING)rm -f \
+ $(addprefix $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/\
+ $(GNUSTEP_INSTANCE)/,$(GSDOC_OBJECT_FILES))$(END_ECHO)
+
+internal-doc-clean::
+ -$(ECHO_NOTHING)rm -f $(GSDOC_OBJECT_FILES)$(END_ECHO)
--- /dev/null
+# -*-makefile-*-
+# Instance/Documentation/install_files.make
+#
+# Instance Makefile rules to install pre-made documentation
+#
+# Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+internal-doc-install_::
+ $(ECHO_INSTALLING)for file in $($(GNUSTEP_INSTANCE)_INSTALL_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ $(INSTALL_DATA) $$file \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$$file ; \
+ fi; \
+ done$(END_ECHO)
+
+internal-doc-uninstall_::
+ $(ECHO_UNINSTALLING)for file in $($(GNUSTEP_INSTANCE)_INSTALL_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ rm -f $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$$file ; \
+ fi; \
+ done$(END_ECHO)
--- /dev/null
+# -*-makefile-*-
+# Instance/Documentation/javadoc.make
+#
+# Instance Makefile rules to build JavaDoc documentation.
+#
+# Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+JAVADOC_SOURCEPATH = $($(GNUSTEP_INSTANCE)_JAVADOC_SOURCEPATH)
+
+.PHONY: generate-javadoc
+
+ifeq ($(JAVADOC),)
+ JAVADOC = $(JAVA_HOME)/bin/javadoc
+endif
+
+ifeq ($(JAVADOC_SOURCEPATH),)
+ INTERNAL_JAVADOCFLAGS = -sourcepath ./
+else
+ INTERNAL_JAVADOCFLAGS = -sourcepath ./:$(strip $(JAVADOC_SOURCEPATH))
+endif
+
+ALL_JAVADOCFLAGS = $(INTERNAL_CLASSPATHFLAGS) $(INTERNAL_JAVADOCFLAGS) \
+$(ADDITIONAL_JAVADOCFLAGS) $(AUXILIARY_JAVADOCFLAGS)
+
+# incremental compilation with javadoc is not supported - you can only
+# build once, or always. by default we build only once - use
+# `JAVADOC_BUILD_ALWAYS = YES' to force rebuilding it always
+
+ifneq ($(JAVADOC_BUILD_ALWAYS),YES) # Build only once
+
+internal-doc-all_:: $(GNUSTEP_INSTANCE)/index.html
+
+$(GNUSTEP_INSTANCE)/index.html:
+ $(ECHO_NOTHING)$(MKDIRS) $(GNUSTEP_INSTANCE); \
+ $(JAVADOC) $(ALL_JAVADOCFLAGS) $(JAVADOC_FILES) -d $(GNUSTEP_INSTANCE)$(END_ECHO)
+
+else # Build always
+
+internal-doc-all_:: generate-javadoc
+
+generate-javadoc:
+ $(ECHO_NOTHING)$(MKDIRS) $(GNUSTEP_INSTANCE); \
+ $(JAVADOC) $(ALL_JAVADOCFLAGS) $(JAVADOC_FILES) -d $(GNUSTEP_INSTANCE)$(END_ECHO)
+
+endif
+
+
+#
+# Javadoc installation
+#
+ifneq ($(JAVADOC_FILES),)
+
+internal-doc-install_::
+ $(ECHO_INSTALLING)rm -rf $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE); \
+ $(TAR) cfX - $(GNUSTEP_MAKEFILES)/tar-exclude-list $(GNUSTEP_INSTANCE) | \
+ (cd $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR); $(TAR) xf -)$(END_ECHO)
+ifneq ($(CHOWN_TO),)
+ $(ECHO_CHOWNING)$(CHOWN) -R $(CHOWN_TO) \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE)$(END_ECHO)
+endif
+
+internal-doc-uninstall_::
+ -$(ECHO_UNINSTALLING)rm -f $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE)$(END_ECHO)
+
+endif # JAVADOC_FILES
+
+internal-doc-clean::
+ -$(ECHO_NOTHING)rm -Rf $(GNUSTEP_INSTANCE)$(END_ECHO)
+
+internal-doc-distclean::
+
--- /dev/null
+# -*-makefile-*-
+# Instance/Documentation/latex.make
+#
+# Instance Makefile rules to build LaTeX documentation.
+#
+# Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+$(GNUSTEP_INSTANCE).dvi: $(LATEX_FILES)
+ latex $(GNUSTEP_INSTANCE).tex
+ latex $(GNUSTEP_INSTANCE).tex
+
+$(GNUSTEP_INSTANCE).ps: $(GNUSTEP_INSTANCE).dvi
+ $(GNUSTEP_DVIPS) $(GNUSTEP_DVIPS_FLAGS) $(ADDITIONAL_DVIPS_FLAGS) \
+ $(GNUSTEP_INSTANCE).dvi -o $@
+
+$(GNUSTEP_INSTANCE).ps.gz: $(GNUSTEP_INSTANCE).ps
+ gzip $(GNUSTEP_INSTANCE).ps -c > $(GNUSTEP_INSTANCE).ps.gz
+
+internal-doc-all_:: $(GNUSTEP_INSTANCE).ps.gz
+
+internal-doc-install_::
+ $(INSTALL_DATA) $(GNUSTEP_INSTANCE).ps \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)
+internal-doc-uninstall_::
+ $(ECHO_UNINSTALLING)rm -f \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE).ps$(END_ECHO)
+
+internal-doc-clean::
+ -$(ECHO_NOTHING)rm -f $(GNUSTEP_INSTANCE).aux \
+ $(GNUSTEP_INSTANCE).cp \
+ $(GNUSTEP_INSTANCE).cps \
+ $(GNUSTEP_INSTANCE).dvi \
+ $(GNUSTEP_INSTANCE).fn \
+ $(GNUSTEP_INSTANCE).info* \
+ $(GNUSTEP_INSTANCE).ky \
+ $(GNUSTEP_INSTANCE).log \
+ $(GNUSTEP_INSTANCE).pg \
+ $(GNUSTEP_INSTANCE).ps \
+ $(GNUSTEP_INSTANCE).toc \
+ $(GNUSTEP_INSTANCE).tp \
+ $(GNUSTEP_INSTANCE).vr \
+ $(GNUSTEP_INSTANCE).vrs \
+ $(GNUSTEP_INSTANCE)_*.html \
+ $(GNUSTEP_INSTANCE).ps.gz \
+ $(GNUSTEP_INSTANCE).tar.gz \
+ $(GNUSTEP_INSTANCE)/* \
+ *.aux$(END_ECHO)
+
+#
+# Targets built only if we can find `latex2html'
+#
+# NB: you may set LATEX2HTML on the command line if the following doesn't work
+LATEX2HTML = $(shell which latex2html | awk '{print $$1}' | sed -e 's/which://')
+
+ifneq ($(LATEX2HTML),)
+ HAS_LATEX2HTML = yes
+endif
+
+ifeq ($(HAS_LATEX2HTML),yes)
+internal-doc-all_:: $(GNUSTEP_INSTANCE).tar.gz
+
+$(GNUSTEP_INSTANCE)/$(GNUSTEP_INSTANCE).html: $(GNUSTEP_INSTANCE).dvi
+ $(LATEX2HTML) $(GNUSTEP_INSTANCE)
+
+$(GNUSTEP_INSTANCE).tar.gz: $(GNUSTEP_INSTANCE)/$(GNUSTEP_INSTANCE).html
+ $(TAR) cfzX $(GNUSTEP_INSTANCE).tar.gz $(GNUSTEP_MAKEFILES)/tar-exclude-list $(GNUSTEP_INSTANCE)
+
+internal-doc-install_::
+ $(INSTALL_DATA) $(GNUSTEP_INSTANCE)/*.html \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)
+ $(INSTALL_DATA) $(GNUSTEP_INSTANCE)/*.css \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)
+# Yeah - I know - the following is dangerous if you have misused the
+# DOC_INSTALL_DIR - but it's the only way to do it
+internal-doc-uninstall_::
+ -$(ECHO_UNINSTALLING)rm -f $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/*.html; \
+ rm -f $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/*.css$(END_ECHO)
+
+internal-doc-distclean::
+ $(ECHO_NOTHING) if [ -d "$(GNUSTEP_INSTANCE)" ]; then \
+ rm -rf $(GNUSTEP_INSTANCE)/; \
+ fi$(END_ECHO)
+endif # LATEX2HTML
--- /dev/null
+# -*-makefile-*-
+# Instance/Documentation/texi.make
+#
+# Instance Makefile rules to build Texinfo documentation.
+#
+# Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# To override GNUSTEP_MAKEINFO, define it differently in
+# GNUmakefile.preamble
+ifeq ($(GNUSTEP_MAKEINFO),)
+ GNUSTEP_MAKEINFO = makeinfo
+endif
+
+# To override GNUSTEP_MAKEINFO_FLAGS, define it differently in
+# GNUmakefile.premable. To only add new flags to the existing ones,
+# set ADDITIONAL_MAKEINFO_FLAGS in GNUmakefile.preamble.
+ifeq ($(GNUSTEP_MAKEINFO_FLAGS),)
+ GNUSTEP_MAKEINFO_FLAGS = -D NO-TEXI2HTML
+endif
+
+ifeq ($(GNUSTEP_MAKETEXT),)
+ GNUSTEP_MAKETEXT = makeinfo
+endif
+ifeq ($(GNUSTEP_MAKETEXT_FLAGS),)
+ GNUSTEP_MAKETEXT_FLAGS = -D NO-TEXI2HTML -D TEXT-ONLY --no-header --no-split
+endif
+
+ifeq ($(GNUSTEP_TEXI2DVI),)
+ GNUSTEP_TEXI2DVI = texi2dvi
+endif
+ifeq ($(GNUSTEP_TEXI2DVI_FLAGS),)
+ GNUSTEP_TEXI2DVI_FLAGS =
+endif
+
+ifeq ($(GNUSTEP_TEXI2PDF),)
+ GNUSTEP_TEXI2PDF = texi2pdf
+endif
+ifeq ($(GNUSTEP_TEXI2PDF_FLAGS),)
+ GNUSTEP_TEXI2PDF_FLAGS =
+endif
+
+ifeq ($(GNUSTEP_TEXI2HTML),)
+ GNUSTEP_TEXI2HTML = texi2html
+endif
+ifeq ($(GNUSTEP_TEXI2HTML_FLAGS),)
+ GNUSTEP_TEXI2HTML_FLAGS = -split_chapter -expandinfo
+endif
+
+internal-doc-all_:: $(GNUSTEP_INSTANCE).info \
+ $(GNUSTEP_INSTANCE).pdf \
+ $(GNUSTEP_INSTANCE)_toc.html
+
+internal-textdoc-all_:: $(GNUSTEP_INSTANCE)
+
+# If we don't have these programs, just don't build them but don't
+# abort the make. This allows projects to automatically build documentation
+# without worring that the build will crash if the user doesn't have the
+# doc programs. Also don't install them if they haven't been generated.
+
+$(GNUSTEP_INSTANCE).info: $(TEXI_FILES)
+ -$(GNUSTEP_MAKEINFO) $(GNUSTEP_MAKEINFO_FLAGS) $(ADDITIONAL_MAKEINFO_FLAGS) \
+ -o $@ $(GNUSTEP_INSTANCE).texi
+
+$(GNUSTEP_INSTANCE).dvi: $(TEXI_FILES)
+ -$(GNUSTEP_TEXI2DVI) $(GNUSTEP_TEXI2DVI_FLAGS) $(ADDITIONAL_TEXI2DVI_FLAGS) \
+ $(GNUSTEP_INSTANCE).texi
+
+$(GNUSTEP_INSTANCE).ps: $(GNUSTEP_INSTANCE).dvi
+ -$(GNUSTEP_DVIPS) $(GNUSTEP_DVIPS_FLAGS) $(ADDITIONAL_DVIPS_FLAGS) \
+ $(GNUSTEP_INSTANCE).dvi -o $@
+
+$(GNUSTEP_INSTANCE).pdf: $(TEXI_FILES)
+ -$(GNUSTEP_TEXI2PDF) $(GNUSTEP_TEXI2PDF_FLAGS) $(ADDITIONAL_TEXI2PDF_FLAGS) \
+ $(GNUSTEP_INSTANCE).texi -o $@
+
+$(GNUSTEP_INSTANCE)_toc.html: $(TEXI_FILES)
+ -$(GNUSTEP_TEXI2HTML) $(GNUSTEP_TEXI2HTML_FLAGS) $(ADDITIONAL_TEXI2HTML_FLAGS) \
+ $(GNUSTEP_INSTANCE).texi
+
+$(GNUSTEP_INSTANCE): $(TEXI_FILES) $(TEXT_MAIN)
+ -$(GNUSTEP_MAKETEXT) $(GNUSTEP_MAKETEXT_FLAGS) $(ADDITIONAL_MAKETEXT_FLAGS) \
+ -o $@ $(TEXT_MAIN)
+
+internal-doc-clean::
+ -$(ECHO_NOTHING) rm -f $(GNUSTEP_INSTANCE).aux \
+ $(GNUSTEP_INSTANCE).cp \
+ $(GNUSTEP_INSTANCE).cps \
+ $(GNUSTEP_INSTANCE).dvi \
+ $(GNUSTEP_INSTANCE).fn \
+ $(GNUSTEP_INSTANCE).info* \
+ $(GNUSTEP_INSTANCE).ky \
+ $(GNUSTEP_INSTANCE).log \
+ $(GNUSTEP_INSTANCE).pg \
+ $(GNUSTEP_INSTANCE).ps \
+ $(GNUSTEP_INSTANCE).pdf \
+ $(GNUSTEP_INSTANCE).toc \
+ $(GNUSTEP_INSTANCE).tp \
+ $(GNUSTEP_INSTANCE).vr \
+ $(GNUSTEP_INSTANCE).vrs \
+ $(GNUSTEP_INSTANCE).html \
+ $(GNUSTEP_INSTANCE)_*.html \
+ $(GNUSTEP_INSTANCE).ps.gz \
+ $(GNUSTEP_INSTANCE).tar.gz \
+ $(GNUSTEP_INSTANCE)/*$(END_ECHO)
+
+# NB: Only install doc files if they have been generated
+
+# We install all info files in the same directory, which is
+# GNUSTEP_DOCUMENTATION_INFO. TODO: I think we should run
+# install-info too - to keep up-to-date the dir index in that
+# directory.
+internal-doc-install_:: $(GNUSTEP_DOCUMENTATION_INFO)
+ if [ -f $(GNUSTEP_INSTANCE).pdf ]; then \
+ $(INSTALL_DATA) $(GNUSTEP_INSTANCE).pdf \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR); \
+ fi
+ if [ -f $(GNUSTEP_INSTANCE).info ]; then \
+ $(INSTALL_DATA) $(GNUSTEP_INSTANCE).info* $(GNUSTEP_DOCUMENTATION_INFO); \
+ fi
+ if [ -f $(GNUSTEP_INSTANCE)_toc.html ]; then \
+ $(INSTALL_DATA) $(GNUSTEP_INSTANCE)_*.html \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR); \
+ fi
+ if [ -f $(GNUSTEP_INSTANCE).html ]; then \
+ $(INSTALL_DATA) $(GNUSTEP_INSTANCE).html \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR); \
+ fi
+
+$(GNUSTEP_DOCUMENTATION_INFO):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+internal-doc-uninstall_::
+ rm -f \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE).pdf
+ rm -f \
+ $(GNUSTEP_DOCUMENTATION_INFO)/$(GNUSTEP_INSTANCE).info*
+ rm -f \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE)_*.html
+ rm -f \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE).html
+
--- /dev/null
+Makefiles in this directory are only used during the 'Instance' make
+invocation. The 'Master' invocation (see explanation in
+Master/README) decides which tasks are to be done; for each of them,
+it calls a recursive make invocation (called an 'Instance' make
+invocation), setting GNUSTEP_INSTANCE to the instance name (for
+example, 'defaults'), and GNUSTEP_TYPE to the type of instance type
+(for example, 'tool'). The make target to build is as in
+internal-tool-all.
+
+This means that all makefiles in this directory are executed with a
+well defined GNUSTEP_INSTANCE, GNUSTEP_TYPE, and target.
+
+It is safe/required in all these makefiles/makefile fragments to
+access the variables needed to build the target for this instance by
+using $($(GNUSTEP_INSTANCE)_VARIABLE). For example, the list of
+OBJC_FILES needed to compile the `defaults' instance will have been
+defined by the user in the defaults_OBJC_FILES variable. In this
+directory, we access this list using
+$($(GNUSTEP_INSTANCE)_OBJC_FILES).
+
+Please note that this makefiles/makefile fragments can't be included
+in the Master invocation, they are actually useless in the Master
+invocation, because $(GNUSTEP_INSTANCE) is undefined in that case.
--- /dev/null
+Files in this directory are makefile fragments which might be included
+by arbitrary project types during the instance make invocation. You
+can think of it as a little library of makefile fragments which can be
+used to build project types more easily, and to favour code reuse and
+API consistency between different project types.
+
+Each of the makefile fragments will normally contain
+
+ * standalone makefile code
+
+ * make targets and rules
+
+The makefile fragment must document (ie list at the very least) very
+clear which variables are used by the makefile fragment.
+
+Normally, the variables are either
+
+ * $($(GNUSTEP_INSTANCE)_XXX) variables, such as
+ $($(GNUSTEP_INSTANCE)_HEADERS) for a makefile fragment installing headers.
+
+ Because GNUSTEP_INSTANCE is guaranteed to be the name of the instance we
+ process during an instance invocation, this will extract xxx_HEADERS
+ regardless of the type of project. Most variables should be of this type.
+
+ * GNUSTEP_SHARED_XXX_YYY, where XXX should be the makefile fragment name
+ (such as 'HEADERS', or 'JAVA'), and YYY is the variable specific name.
+ These variables are to be thought as arguments being passed from the
+ project makefile to the shared makefile fragment.
+
+ For example, GNUSTEP_SHARED_JAVA_INSTALLATION_DIR will be set to
+ JAVA_INSTALLATION_DIR by Instance/java.make and to
+ JAVA_TOOL_INSTALLATION_DIR/Java by Instance/java-tool.make, before including
+ Shared/java.make. Shared/java.make will install the java files into
+ GNUSTEP_SHARED_JAVA_INSTALLATION_DIR, which will point to the correct
+ location in both cases.
+
+ Please note that in this case you can't use $($(GNUSTEP_INSTANCE)_XXX)
+ variables because the end-user API explicitly allow them to set a single
+ JAVA_[TOOL_]INSTALLATION_DIR for the whole GNUmakefile.
+
+The make fragments rules should be named as follows -
+
+ shared-instance-xxx-yyy where xxx is the name of the makefile fragment
+ (such as 'java' or 'headers'), and yyy is the actual target (such as
+ 'clean', 'install', 'all'). If possible, the standard targets should
+ be provided (all, install, uninstall, clean, distclean). In certain cases,
+ additional targets might be provided, or empty standard targets omitted.
+ It should be clear which ones are 'public' targets, and which ones are
+ 'private' targets (internal to the implementation of the makefile fragment).
+
+The make fragments do not need to be protected against multiple inclusions.
--- /dev/null
+# -*-makefile-*-
+# Shared/bundle.make
+#
+# Makefile fragment with rules to copy resource files
+# into a local bundle
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# input variables:
+#
+
+#
+# GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH : the path to the local
+# resource bundle (this might be a subdirectory of the actual bundle
+# directory). This path must include GNUSTEP_BUILD_DIR. Resource
+# files will be copied into this path. For example, for a normal
+# bundle it would be $(BUNDLE_DIR)/Resources; for an application it
+# would be $(APP_DIR)/Resources; for a library or a tool,
+# $(GNUSTEP_BUILD_DIR)/Resources/$(GNUSTEP_INSTANCE). This variable
+# is used during build, to copy the resources in place.
+#
+# GNUSTEP_BUILD_DIR : Implicitly used to find the bundle.
+#
+# GNUSTEP_SHARED_BUNDLE_MAIN_PATH : the path to the top level bundle
+# directory to install, relative to GNUSTEP_BUILD_DIR during build
+# (and installation dir when installed). For example, for a normal
+# bundle it would be $(BUNDLE_DIR_NAME); for an application it would
+# be $(APP_DIR_NAME); for a library or a tool,
+# Resources/$(GNUSTEP_INSTANCE).
+#
+# GNUSTEP_SHARED_BUNDLE_INSTALL_DIR : the path to the dir
+# in which the bundle is to be installed. For example, for a normal
+# bundle it would be $(BUNDLE_INSTALL_DIR); for an application it would
+# be $(APP_INSTALL_DIR); for a library or tool, $(LIBRARY_INSTALL_DIR),
+# or $(TOOL_INSTALL_DIR).
+#
+# $(GNUSTEP_INSTANCE)_RESOURCE_FILES : a list of resource files to install.
+# They are recursively copied (/symlinked), so it might also include dirs.
+#
+# $(GNUSTEP_INSTANCE)_RESOURCE_DIRS : a list of additional resource dirs
+# to create.
+#
+# $(GNUSTEP_INSTANCE)_LANGUAGES : the list of languages of localized resource
+# files
+#
+# $(GNUSTEP_INSTANCE)_LOCALIZED_RESOURCE_FILES : a list of localized
+# resource files to install.
+#
+# $(GNUSTEP_INSTANCE)_LOCALIZED_RESOURCE_DIRS : a list of additional localized
+# resource dirs to create.
+#
+# $(GNUSTEP_INSTANCE)_COMPONENTS : a list of directories which are
+# recursively copied (/locally symlinked if symlinks are available)
+# into the resource bundle. Basically, they are currently added to
+# $(GNUSTEP_INSTANCE)_RESOURCE_FILES.
+#
+# $(GNUSTEP_INSTANCE)_LOCALIZED_COMPONENTS : a list of localized
+# directories which are recursively copied (/locally symlinked if
+# symlinks are available) into the resource bundle. Currently, they
+# are simply added to $(GNUSTEP_INSTANCE)_LOCALIZED_RESOURCE_FILES.
+#
+# $(GNUSTEP_INSTANCE)_SUBPROJECTS : the list of subprojects is used
+# because the resources from each subproject are merged into the bundle
+# resources (by recursively copying from LLL/Resources/Subproject into
+# the GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH, where $(LLL) is the
+# subproject name.
+#
+# GNUSTEP_TYPE : used when printing the message 'Copying resources into
+# the $(GNUSTEP_TYPE) wrapper...'
+#
+# GSWeb related variables -
+#
+# $(GNUSTEP_INSTANCE)_WEBSERVER_RESOURCE_FILES : a list of resource files to
+# copy from the WebServerResources directory into the WebServer
+# subdirectory of the resource bundle
+#
+# $(GNUSTEP_INSTANCE)_WEBSERVER_LOCALIZED_RESOURCE_FILES : a list of
+# localized resource files to copy from the yyy.lproj subdir of the
+# WebServerResources directory into the yyy.lproj subdir of the
+# WebServer subdirectory of the resource bundle - this for each
+# language yyy.
+#
+# $(GNUSTEP_INSTANCE)_WEBSERVER_COMPONENTS:
+# $(GNUSTEP_INSTANCE)_WEBSERVER_LOCALIZED_COMPONENTS:
+# $(GNUSTEP_INSTANCE)_WEBSERVER_RESOURCE_DIRS:
+# $(GNUSTEP_INSTANCE)_WEBSERVER_LOCALIZED_RESOURCE_DIRS:
+#
+
+#
+# public targets:
+#
+# shared-instance-bundle-all
+#
+# $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH): Creates the bundle
+# resource path (invoked automatically)
+#
+# shared-instance-bundle-install
+# shared-instance-bundle-uninstall
+# shared-instance-bundle-copy_into_dir
+#
+
+#
+# Warning - the bundle install rules depend on the rule to create
+# $(GNUSTEP_SHARED_BUNDLE_INSTALL_DIR) - the rule to build it has to be
+# provided by the caller {we can't provide two rules to build the same
+# target; the caller might need to provide the rule for cases when we
+# are not included, so we let the caller always provide it}
+#
+
+RESOURCE_FILES = $(strip $($(GNUSTEP_INSTANCE)_RESOURCE_FILES) \
+ $($(GNUSTEP_INSTANCE)_COMPONENTS))
+RESOURCE_DIRS = $(strip $($(GNUSTEP_INSTANCE)_RESOURCE_DIRS))
+LANGUAGES = $(strip $($(GNUSTEP_INSTANCE)_LANGUAGES))
+LOCALIZED_RESOURCE_FILES = \
+ $(strip $($(GNUSTEP_INSTANCE)_LOCALIZED_RESOURCE_FILES) \
+ $($(GNUSTEP_INSTANCE)_LOCALIZED_COMPONENTS))
+LOCALIZED_RESOURCE_DIRS = \
+ $(strip $($(GNUSTEP_INSTANCE)_LOCALIZED_RESOURCE_DIRS))
+
+# NB: Use _SUBPROJECTS, not SUBPROJECTS here as that might conflict
+# with what is used in aggregate.make.
+_SUBPROJECTS = $(strip $($(GNUSTEP_INSTANCE)_SUBPROJECTS))
+
+.PHONY: \
+shared-instance-bundle-all \
+shared-instance-bundle-all-resources \
+shared-instance-bundle-all-gsweb \
+shared-instance-bundle-install \
+shared-instance-bundle-uninstall \
+shared-instance-bundle-copy_into_dir
+
+ifneq ($(RESOURCE_DIRS),)
+
+FULL_RESOURCE_DIRS = \
+$(foreach d, $(RESOURCE_DIRS), $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/$(d))
+
+endif
+
+ifeq ($(LANGUAGES),)
+ LANGUAGES = English
+endif
+
+$(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH):
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+$(FULL_RESOURCE_DIRS):
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+
+#
+# We provide two different ways of building bundles, suited to
+# different usages - normal user and developer.
+#
+# `Normal user` builds the bundle once. We optimize for single-build
+# in this case.
+#
+# `Developer` builds and rebuilds the bundle a lot of times with minor
+# changes each time. We optimize for efficient rebuilding in this
+# case.
+#
+# The default behaviour is 'Normal user'. To switch to 'Developer'
+# mode, set GNUSTEP_DEVELOPER=YES in the environment.
+#
+# TODO - implement the `Developer` mode :-)
+#
+
+# Please note the trick when copying subproject resources - if there
+# is nothing inside $$subproject/Resources/Subproject/, in
+# $$subproject/Resources/Subproject/* the * expands to itself. So we
+# check if that is true before trying to copy.
+
+# Please note that if xxx/yyy is specified in RESOURCE_FILES, we
+# create the file {bundle}/yyy (not {bundle}/xxx/yyy), because people
+# usually can put resource files in subdirs, and want to copy them
+# just top-level. That is what currently happens, but often enough
+# you might want the other behaviour ({bundle}/xxx/yyy to be created),
+# and TODO: devise a way to support it.
+#
+# If instead xxx/yyy is specified in LOCALIZED_RESOURCE_FILES, we
+# create the file {bundle}/Language.lproj/xxx/yyy, because we want to
+# mirror the Language.lproj directory faithfully. There is no
+# possible confusion here.
+
+shared-instance-bundle-all: $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH) \
+ $(FULL_RESOURCE_DIRS) \
+ shared-instance-bundle-all-gsweb
+ifneq ($(RESOURCE_FILES),)
+ $(ECHO_COPYING_RESOURCES)for f in $(RESOURCE_FILES); do \
+ if [ -f $$f -o -d $$f ]; then \
+ cp -r $$f $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/; \
+ else \
+ echo "Warning: $$f not found - ignoring"; \
+ fi; \
+ done$(END_ECHO)
+endif
+ifneq ($(LOCALIZED_RESOURCE_DIRS),)
+ $(ECHO_CREATING_LOC_RESOURCE_DIRS)for l in $(LANGUAGES); do \
+ if [ -d $$l.lproj ]; then \
+ $(MKDIRS) $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/$$l.lproj; \
+ for f in $(LOCALIZED_RESOURCE_DIRS); do \
+ $(MKDIRS) $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/$$l.lproj/$$f; \
+ done; \
+ else \
+ echo "Warning: $$l.lproj not found - ignoring"; \
+ fi; \
+ done$(END_ECHO)
+endif
+ifneq ($(LOCALIZED_RESOURCE_FILES),)
+ $(ECHO_COPYING_LOC_RESOURCES)for l in $(LANGUAGES); do \
+ if [ -d $$l.lproj ]; then \
+ $(MKDIRS) $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/$$l.lproj; \
+ for f in $(LOCALIZED_RESOURCE_FILES); do \
+ if [ -f $$l.lproj/$$f -o -d $$l.lproj/$$f ]; then \
+ cp -r $$l.lproj/$$f \
+ $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/$$l.lproj/$$f; \
+ else \
+ echo "Warning: $$l.lproj/$$f not found - ignoring"; \
+ fi; \
+ done; \
+ else \
+ echo "Warning: $$l.lproj not found - ignoring"; \
+ fi; \
+ done$(END_ECHO)
+endif
+ifneq ($(_SUBPROJECTS),)
+ $(ECHO_COPYING_RESOURCES_FROM_SUBPROJS)for subproject in $(_SUBPROJECTS); do \
+ if [ -d $$subproject/Resources/Subproject ]; then \
+ for f in $$subproject/Resources/Subproject/*; do \
+ if [ $$f != $$subproject'/Resources/Subproject/*' ]; then \
+ cp -r $$f $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/; \
+ fi; \
+ done; \
+ fi; \
+ done$(END_ECHO)
+endif
+
+##
+##
+## GSWeb code
+## A main issue here is - executing *nothing* if gsweb is not used :-)
+##
+##
+
+WEBSERVER_RESOURCE_FILES = \
+ $(strip $($(GNUSTEP_INSTANCE)_WEBSERVER_RESOURCE_FILES) \
+ $($(GNUSTEP_INSTANCE)_WEBSERVER_COMPONENTS))
+# For historical reasons, we recognized the old variant
+# xxx_LOCALIZED_WEBSERVER_RESOURCE_FILES - but we recommend to use
+# xxx_WEBSERVER_LOCALIZED_RESOURCE_FILES instead.
+WEBSERVER_LOCALIZED_RESOURCE_FILES = \
+ $(strip $($(GNUSTEP_INSTANCE)_LOCALIZED_WEBSERVER_RESOURCE_FILES) \
+ $($(GNUSTEP_INSTANCE)_WEBSERVER_LOCALIZED_RESOURCE_FILES) \
+ $($(GNUSTEP_INSTANCE)_WEBSERVER_LOCALIZED_COMPONENTS))
+WEBSERVER_RESOURCE_DIRS = \
+ $(strip $($(GNUSTEP_INSTANCE)_WEBSERVER_RESOURCE_DIRS))
+WEBSERVER_LOCALIZED_RESOURCE_DIRS = \
+ $(strip $($(GNUSTEP_INSTANCE)_WEBSERVER_LOCALIZED_RESOURCE_DIRS))
+
+
+ifneq ($(WEBSERVER_RESOURCE_DIRS),)
+
+WEBSERVER_FULL_RESOURCE_DIRS = \
+$(foreach d, $(WEBSERVER_RESOURCE_DIRS), $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/WebServer/$(d))
+
+$(WEBSERVER_FULL_RESOURCE_DIRS):
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+endif
+
+
+.PHONY: shared-instance-bundle-all-webresources \
+ shared-instance-bundle-all-localized-webresources
+
+shared-instance-bundle-all-gsweb: shared-instance-bundle-all-webresources \
+ shared-instance-bundle-all-localized-webresources
+
+ifneq ($(WEBSERVER_RESOURCE_FILES),)
+
+$(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/WebServer:
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+shared-instance-bundle-all-webresources: \
+ $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/WebServer \
+ $(WEBSERVER_FULL_RESOURCE_DIRS)
+ $(ECHO_COPYING_WEBSERVER_RESOURCES)for f in $(WEBSERVER_RESOURCE_FILES); do \
+ if [ -f ./WebServerResources/$$f \
+ -o -d ./WebServerResources/$$f ]; then \
+ cp -r ./WebServerResources/$$f \
+ $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/WebServer/$$f; \
+ else \
+ echo "Warning: WebServerResources/$$f not found - ignoring"; \
+ fi; \
+ done$(END_ECHO)
+else
+
+shared-instance-bundle-all-webresources:
+
+endif
+
+ifneq ($(WEBSERVER_LOCALIZED_RESOURCE_FILES)$(WEBSERVER_LOCALIZED_RESOURCE_DIRS),)
+shared-instance-bundle-all-localized-webresources: \
+ $(WEBSERVER_FULL_RESOURCE_DIRS)
+ifneq ($(WEBSERVER_LOCALIZED_RESOURCE_DIRS),)
+ $(ECHO_CREATING_WEBSERVER_LOC_RESOURCE_DIRS)for l in $(LANGUAGES); do \
+ if [ -d ./WebServerResources/$$l.lproj ]; then \
+ $(MKDIRS) \
+ $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/WebServer/$$l.lproj; \
+ for f in $(WEBSERVER_LOCALIZED_RESOURCE_DIRS); do \
+ $(MKDIRS) \
+ $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/WebServer/$$l.lproj/$$f; \
+ done; \
+ else \
+ echo "Warning: WebServer/$$l.lproj not found - ignoring"; \
+ fi; \
+ done$(END_ECHO)
+endif
+ifneq ($(WEBSERVER_LOCALIZED_RESOURCE_FILES),)
+ $(ECHO_COPYING_WEBSERVER_LOC_RESOURCES)for l in $(LANGUAGES); do \
+ if [ -d ./WebServerResources/$$l.lproj ]; then \
+ $(MKDIRS) \
+ $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/WebServer/$$l.lproj;\
+ for f in $(WEBSERVER_LOCALIZED_RESOURCE_FILES); do \
+ if [ -f ./WebServerResources/$$l.lproj/$$f \
+ -o -d ./WebServerResources/$$l.lproj/$$f ]; then \
+ cp -r ./WebServerResources/$$l.lproj/$$f \
+ $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/WebServer/$$l.lproj/$$f; \
+ else \
+ echo "Warning: WebServerResources/$$l.lproj/$$f not found - ignoring"; \
+ fi; \
+ done; \
+ else \
+ echo "Warning: WebServerResources/$$l.lproj not found - ignoring"; \
+ fi; \
+ done$(END_ECHO)
+endif
+
+else
+
+shared-instance-bundle-all-localized-webresources:
+
+endif
+
+# In the following rule, tar has the 'h' option, which dereferences
+# symbolic links. The idea is that you could specify symbolic links
+# to some templates as some of the resource files; then building the
+# bundle is quick, because you only copy the symlinks - not the actual
+# files; and the symlinks are dereferenced when the bundle is
+# installed (which is why the 'h' option is there). I've never used
+# this feature, but it was requested by some of our users.
+#
+
+# Another common request is to ignore/drop CVS and .svn
+# directories/files from the bundle when installing. You don't really
+# want to install those in case they ended up in the bundle when you
+# recursively copied some resources in it from your source code.
+# This is obtained by using the 'X' flag.
+#
+# Because of compatibility issues with older versions of GNU tar (not
+# to speak of non-GNU tars), we use the X option rather than the
+# --exclude= option. The X option requires as argument a file listing
+# files to exclude. We use a standard exclude file list which we store
+# in GNUSTEP_MAKEFILES.
+#
+shared-instance-bundle-install:: $(GNUSTEP_SHARED_BUNDLE_INSTALL_DIR)
+ $(ECHO_INSTALLING_BUNDLE)rm -rf $(GNUSTEP_SHARED_BUNDLE_INSTALL_DIR)/$(GNUSTEP_SHARED_BUNDLE_MAIN_PATH); \
+ (cd $(GNUSTEP_BUILD_DIR); $(TAR) chfX - $(GNUSTEP_MAKEFILES)/tar-exclude-list $(GNUSTEP_SHARED_BUNDLE_MAIN_PATH)) \
+ | (cd $(GNUSTEP_SHARED_BUNDLE_INSTALL_DIR); $(TAR) xf -)$(END_ECHO)
+ifneq ($(CHOWN_TO),)
+ $(ECHO_CHOWNING)$(CHOWN) -R $(CHOWN_TO) \
+ $(GNUSTEP_SHARED_BUNDLE_INSTALL_DIR)/$(GNUSTEP_SHARED_BUNDLE_MAIN_PATH)$(END_ECHO)
+endif
+
+shared-instance-bundle-copy_into_dir::
+ $(ECHO_COPYING_BUNDLE_INTO_DIR)rm -rf $(COPY_INTO_DIR)/$(GNUSTEP_SHARED_BUNDLE_MAIN_PATH); \
+ (cd $(GNUSTEP_BUILD_DIR); $(TAR) chfX - $(GNUSTEP_MAKEFILES)/tar-exclude-list $(GNUSTEP_SHARED_BUNDLE_MAIN_PATH)) \
+ | (cd $(COPY_INTO_DIR); $(TAR) xf -)$(END_ECHO)
+
+shared-instance-bundle-uninstall::
+ $(ECHO_NOTHING)cd $(GNUSTEP_SHARED_BUNDLE_INSTALL_DIR); rm -rf $(GNUSTEP_SHARED_BUNDLE_MAIN_PATH)$(END_ECHO)
--- /dev/null
+#
+# Shared/headers.make
+#
+# Makefile fragment with rules to install header files
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# input variables:
+#
+# $(GNUSTEP_INSTANCE)_HEADER_FILES : the list of .h files to install
+#
+# $(GNUSTEP_INSTANCE)_HEADER_FILES_DIR : the dir in which the .h files are;
+# defaults to `.' if no set.
+#
+# $(GNUSTEP_INSTANCE)_HEADER_FILES_INSTALL_DIR : the dir in which to install
+# the .h files; defaults to $(GNUSTEP_INSTANCE) if not set. Please set it
+# to `.' if you want it to be like empty.
+#
+
+#
+# public targets:
+#
+# shared-instance-headers-install
+# shared-instance-headers-uninstall
+#
+
+HEADER_FILES = $($(GNUSTEP_INSTANCE)_HEADER_FILES)
+
+.PHONY: \
+shared-instance-headers-install \
+shared-instance-headers-uninstall
+
+ifeq ($(HEADER_FILES),)
+
+shared-instance-headers-install:
+
+shared-instance-headers-uninstall:
+
+else # we have some HEADER_FILES
+
+HEADER_FILES_DIR = $($(GNUSTEP_INSTANCE)_HEADER_FILES_DIR)
+
+ifeq ($(HEADER_FILES_DIR),)
+ HEADER_FILES_DIR = .
+endif
+
+HEADER_FILES_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_HEADER_FILES_INSTALL_DIR)
+
+# Please use `.' to force it to stay empty
+ifeq ($(HEADER_FILES_INSTALL_DIR),)
+ HEADER_FILES_INSTALL_DIR = $(GNUSTEP_INSTANCE)
+endif
+
+#
+# We provide two different algorithms of installing headers.
+#
+
+ifeq ($(GNUSTEP_DEVELOPER),)
+
+#
+# The first one is the standard one. We run a subshell, loop on all the
+# header files, and install all of them. This is the default one.
+#
+
+shared-instance-headers-install: $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)
+ $(ECHO_INSTALLING_HEADERS)for file in $(HEADER_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ $(INSTALL_DATA) $(HEADER_FILES_DIR)/$$file \
+ $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)/$$file; \
+ fi; \
+ done$(END_ECHO)
+
+else
+
+#
+# The second one (which you activate by setting GNUSTEP_DEVELOPER to
+# YES in your shell) is the one specifically optimized for faster
+# development. We only install headers which are newer than the
+# installed version. This is much faster if you are developing and
+# need to install headers often, and normally with just few changes.
+# It is slower the first time you install the headers, because we
+# install them using a lot of subshell processes (which is why it is not
+# the default - `users' install headers only once - the default
+# setup is for users).
+#
+
+shared-instance-headers-install: \
+ $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR) \
+ $(addprefix $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)/,$(HEADER_FILES))
+
+$(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)/% : $(HEADER_FILES_DIR)/%
+ $(ECHO_NOTHING)$(INSTALL_DATA) $< $@$(END_ECHO)
+
+endif
+
+$(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+
+shared-instance-headers-uninstall:
+ $(ECHO_NOTHING)for file in $(HEADER_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ rm -rf $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)/$$file ; \
+ fi; \
+ done$(END_ECHO)
+
+# TODO - during uninstall, it would be pretty to remove
+# $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR) if it's empty.
+
+endif # HEADER_FILES = ''
--- /dev/null
+#
+# Shared/java.make
+#
+# Makefile fragment with rules to compile and install java files,
+# with associated property files.
+#
+# Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# input variables:
+#
+# JAVA_OBJ_FILES, JAVA_JNI_OBJ_FILES, SUBPROJECT_OBJ_FILES :
+# the list of object files (built by Instance/rules.make)
+#
+# $(GNUSTEP_INSTANCE)_JAVA_PROPERTIES_FILES : the list of .properties files
+# to install together with the .java files
+#
+# GNUSTEP_SHARED_JAVA_INSTALLATION_DIR : the base directory where to
+# install the files.
+#
+
+#
+# public targets:
+#
+# shared-instance-java-all
+# shared-instance-java-install
+# shared-instance-java-uninstall
+# shared-instance-java-clean
+#
+
+
+.PHONY: \
+shared-instance-java-all \
+shared-instance-java-install \
+shared-instance-java-install-dirs \
+shared-instance-java-uninstall \
+shared-instance-java-clean
+
+
+shared-instance-java-all: $(JAVA_OBJ_FILES) \
+ $(JAVA_JNI_OBJ_FILES) \
+ $(SUBPROJECT_OBJ_FILES)
+
+# Say that you have a Pisa.java source file. Here we install both
+# Pisa.class (the main class) and also, if they exist, all class files
+# with names beginning wih Pisa$ (such as Pisa$1$Nicola.class); these
+# files are generated for nested/inner classes, and must be installed
+# as well. The fact we need to install these files is the reason why
+# the following is more complicated than you would think at first
+# glance.
+
+# Build efficiently the list of possible inner/nested classes
+
+# We first build a list like in `Pisa[$]*.class Roma[$]*.class' by
+# taking the JAVA_OBJ_FILES and replacing .class with [$]*.class, then
+# we use wildcard to get the list of all files matching the pattern
+UNESCAPED_ADD_JAVA_OBJ_FILES = $(wildcard $(JAVA_OBJ_FILES:.class=[$$]*.class))
+
+# Finally we need to escape the $s before passing the filenames to the
+# shell
+ADDITIONAL_JAVA_OBJ_FILES = $(subst $$,\$$,$(UNESCAPED_ADD_JAVA_OBJ_FILES))
+
+JAVA_PROPERTIES_FILES = $($(GNUSTEP_INSTANCE)_JAVA_PROPERTIES_FILES)
+
+shared-instance-java-install: shared-instance-java-install-dirs
+ifneq ($(JAVA_OBJ_FILES),)
+ $(ECHO_INSTALLING_CLASS_FILES)for file in $(JAVA_OBJ_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ $(INSTALL_DATA) $$file \
+ $(GNUSTEP_SHARED_JAVA_INSTALLATION_DIR)/$$file ; \
+ fi; \
+ done$(END_ECHO)
+endif
+ifneq ($(ADDITIONAL_JAVA_OBJ_FILES),)
+ $(ECHO_INSTALLING_ADD_CLASS_FILES)for file in $(ADDITIONAL_JAVA_OBJ_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ $(INSTALL_DATA) $$file \
+ $(GNUSTEP_SHARED_JAVA_INSTALLATION_DIR)/$$file ; \
+ fi; \
+ done$(END_ECHO)
+endif
+ifneq ($(JAVA_PROPERTIES_FILES),)
+ $(ECHO_INSTALLING_PROPERTIES_FILES)for file in $(JAVA_PROPERTIES_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ $(INSTALL_DATA) $$file \
+ $(GNUSTEP_SHARED_JAVA_INSTALLATION_DIR)/$$file ; \
+ fi; \
+ done$(END_ECHO)
+endif
+
+shared-instance-java-install-dirs: $(GNUSTEP_SHARED_JAVA_INSTALLATION_DIR)
+ifneq ($(JAVA_OBJ_FILES),)
+ $(ECHO_NOTHING)$(MKINSTALLDIRS) \
+ $(addprefix $(GNUSTEP_SHARED_JAVA_INSTALLATION_DIR)/,$(dir $(JAVA_OBJ_FILES)))$(END_ECHO)
+endif
+
+$(GNUSTEP_SHARED_JAVA_INSTALLATION_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+shared-instance-java-clean:
+ $(ECHO_NOTHING)rm -f $(JAVA_OBJ_FILES) \
+ $(ADDITIONAL_JAVA_OBJ_FILES) \
+ $(JAVA_JNI_OBJ_FILES)$(END_ECHO)
+
+shared-instance-java-uninstall:
+ifneq ($(JAVA_OBJ_FILES),)
+ $(ECHO_NOTHING)for file in $(JAVA_OBJ_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ rm -f $(GNUSTEP_SHARED_JAVA_INSTALLATION_DIR)/$$file ; \
+ fi; \
+ done$(END_ECHO)
+endif
+ifneq ($(ADDITIONAL_JAVA_OBJ_FILES),)
+ $(ECHO_NOTHING)for file in $(ADDITIONAL_JAVA_OBJ_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ rm -f $(GNUSTEP_SHARED_JAVA_INSTALLATION_DIR)/$$file ; \
+ fi; \
+ done$(END_ECHO)
+endif
+ifneq ($(JAVA_PROPERTIES_FILES),)
+ $(ECHO_NOTHING)for file in $(JAVA_PROPERTIES_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ rm -f $(GNUSTEP_SHARED_JAVA_INSTALLATION_DIR)/$$file ; \
+ fi; \
+ done$(END_ECHO)
+endif
--- /dev/null
+# -*-makefile-*-
+# Shared/stamp-string.make
+#
+# Makefile fragment with rules to manage stamp strings
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# Normally, make computes dependencies basing on files' timestamps.
+# You can have a target which depedends on some files. When the files
+# have changed since the last time the target was built, the target
+# is rebuilt.
+#
+# Inside gnustep-make, we have also a need for a different type of
+# dependency. We create/patch some .plist files basing on the value
+# of some make variables. In this case, we want some targets to
+# depend on some make variables; when the variables have changed since
+# the last time the target was built, the target is rebuilt.
+#
+# This file provides an efficient implementation of this feature. You
+# can have a target be rebuilt when a certain GNUSTEP_STAMP_STRING has
+# changed since the last time the target was built. By storing the
+# values of some variables, in a fixed order, in the
+# GNUSTEP_STAMP_STRING, you can then in practice have the result of
+# having the target depend on the variable values.
+#
+
+#
+# To use this file, define GNUSTEP_STAMP_STRING to be the string you
+# want to depend upon. This file will store the string into a
+# stamp.make; you need to provide the directory in which to store this
+# file, and a rule to create the directory. In practice, you need to
+# set GNUSTEP_STAMP_DIR and implement a $(GNUSTEP_STAMP_DIR): rule.
+# Then, you can have a target to depend on $(GNUSTEP_STAMP_DEPEND).
+# That will cause the target to store GNUSTEP_STAMP_STRING into
+# $(GNUSTEP_STAMP_DIR)/stamp.make the first time it's executed, and to
+# read it from the same file each time it's executed afterwards.
+# Whenever the stamp string in stamp.make does not match the curret
+# GNUSTEP_STAMP_STRING, the stamp file will be rebuilt, and the target
+# depending on $(GNUSTEP_STAMP_DEPEND) will be forced to be rebuilt.
+#
+
+#
+# Input variables:
+#
+# GNUSTEP_STAMP_STRING: This variable is the stamp; we check that it
+# has not changed since last time the target was rebuilt. You must
+# set this variable to the appropriate stamp string before including
+# this file; usually the stamp string is just a concatenation of the
+# values of the various variables (separated by some character you want,
+# such as '-') you want to depend upon.
+#
+# GNUSTEP_STAMP_DIR: The directory in which you want the stamp file to
+# be placed. Each time the target is rebuilt, GNUSTEP_STAMP_STRING is
+# recorded into the stamp file so that next time it can be compared.
+# Your code must provide a rule to build GNUSTEP_STAMP_DIR.
+# Typically, GNUSTEP_STAMP_DIR is the bundle dir for a bundle, the
+# application dir for an application, and so on.
+#
+
+#
+# Output variables:
+#
+# GNUSTEP_STAMP_DEPEND: If the value of GNUSTEP_STAMP_STRING is the
+# same as the value stored inside stamp.make, then this is set to ''.
+# Else, this is set to shared-instance-stamp-string, and causes both
+# GNUSTEP_STAMP_FILE to be regenerated, and any target depending on
+# GNUSTEP_STAMP_DEPEND to be rebuilt as well.
+#
+
+#
+# public targets:
+#
+# shared-instance-stamp-string: You do not refer this target directly;
+# you should instead depend on $(GNUSTEP_STAMP_DEPEND), which will expand
+# to shared-instance-stamp-string when a change in the stamp string is
+# detected, and to '' when not.
+#
+
+
+# To read the stamp file very quickly, we use a trick: we write the
+# file as a makefile fragment, and include it to read it.
+# This can be considered a trick to read the file very efficiently
+# without spanning a 'cat' subprocess in a subshell.
+GNUSTEP_STAMP_FILE = $(GNUSTEP_STAMP_DIR)/stamp.make
+
+# This rule tells make that GNUSTEP_STAMP_FILE is always up to date.
+# Else, because it is included as a makefile, make would try
+# rebuilding it, and moreover, after rebuilding it, it would run again
+# using the new one! We instead manage rules manually to have control
+# of it.
+$(GNUSTEP_STAMP_FILE):
+
+# By default, GNUSTEP_STAMP_DEPEND causes shared-instance-stamp-string to
+# be executed, and everything depending on GNUSTEP_STAMP_DEPEND to be
+# rebuilt.
+GNUSTEP_STAMP_DEPEND = shared-instance-stamp-string
+
+# We want to make sure the string put in the stamp.make is never empty.
+# To make sure it is so, we add an '_' at the beginning of the string.
+GNUSTEP_STAMP_ASTRING = _$(GNUSTEP_STAMP_STRING)
+
+OLD_GNUSTEP_STAMP_ASTRING =
+# Include the old stamp.make, but only if it exists.
+# stamp.make contains the line
+# OLD_GNUSTEP_STAMP_ASTRING = xxx
+-include $(GNUSTEP_STAMP_FILE)
+
+# If there was a stamp.make, and it contained the same
+# GNUSTEP_STAMP_ASTRING, then we drop GNUSTEP_STAMP_DEPEND, and do
+# nothing.
+ifneq ($(OLD_GNUSTEP_STAMP_ASTRING),)
+ ifeq ($(OLD_GNUSTEP_STAMP_ASTRING), $(GNUSTEP_STAMP_ASTRING))
+ GNUSTEP_STAMP_DEPEND =
+ endif
+endif
+
+# The actual target building the stamp string.
+.PHONY: shared-instance-stamp-string
+
+shared-instance-stamp-string: $(GNUSTEP_STAMP_DIR)
+ $(ECHO_NOTHING)echo "OLD_GNUSTEP_STAMP_ASTRING = $(GNUSTEP_STAMP_ASTRING)" > $(GNUSTEP_STAMP_FILE)$(END_ECHO)
--- /dev/null
+#
+# Shared/strings.make
+#
+# Makefile fragment with rules to run make_strings
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# input variables:
+#
+# $(GNUSTEP_INSTANCE)_LANGUAGES: the list of languages
+#
+# $(GNUSTEP_INSTANCE)_STRINGS_FILES: the list of ObjC/C/.h files to
+# parse; if not set, it defaults to $(GNUSTEP_INSTANCE)_OBJC_FILES and
+# $(GNUSTEP_INSTANCE)_C_FILES and $(GNUSTEP_INSTANCE)_HEADER_FILES
+# (header files interpreted as relative paths to HEADER_FILES_DIR).
+#
+# $(GNUSTEP_INSTANCE)_MAKE_STRINGS_OPTIONS: the make_strings special
+# options; defaults to $(MAKE_STRINGS_OPTIONS) (which defaults to
+# nothing :-) if not set.
+#
+# public targets:
+#
+# internal-$(GNUSTEP_TYPE)-strings
+#
+
+ifneq ($(strip $($(GNUSTEP_INSTANCE)_STRINGS_FILES)),)
+ Str_STRINGS_FILES = $($(GNUSTEP_INSTANCE)_STRINGS_FILES)
+else
+
+ Str1_STRINGS_FILES = \
+ $($(GNUSTEP_INSTANCE)_OBJC_FILES) \
+ $($(GNUSTEP_INSTANCE)_C_FILES) \
+ $(addprefix $($(GNUSTEP_INSTANCE)_HEADER_FILES_DIR),$($(GNUSTEP_INSTANCE)_HEADER_FILES))
+
+ Str_STRINGS_FILES = $(strip $(Str1_STRINGS_FILES))
+
+endif
+
+.PHONY: internal-$(GNUSTEP_TYPE)-strings
+
+ifeq ($(Str_STRINGS_FILES),)
+
+internal-$(GNUSTEP_TYPE)-strings::
+ $(ALWAYS_ECHO_NO_FILES)
+
+else # we have some STRINGS_FILES
+
+Str_LANGUAGES = $(strip $($(GNUSTEP_INSTANCE)_LANGUAGES))
+
+Str_MAKE_STRINGS_OPTIONS = $(strip $($(GNUSTEP_INSTANCE)_MAKE_STRINGS_OPTIONS))
+ifeq ($(Str_MAKE_STRINGS_OPTIONS),)
+ Str_MAKE_STRINGS_OPTIONS = $(MAKE_STRINGS_OPTIONS)
+endif
+
+internal-$(GNUSTEP_TYPE)-strings::
+ifeq ($(Str_LANGUAGES),)
+ $(ALWAYS_ECHO_NO_LANGUAGES)
+else
+ $(ECHO_MAKING_STRINGS)make_strings $(Str_MAKE_STRINGS_OPTIONS) \
+ -L "$(Str_LANGUAGES)" \
+ $(Str_STRINGS_FILES)$(END_ECHO)
+endif
+
+endif # Str_STRING_FILES = ''
--- /dev/null
+# -*-makefile-*-
+# application.make
+#
+# Instance Makefile rules to build GNUstep-based applications.
+#
+# Copyright (C) 1997, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Based on the original version by Scott Christley.
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# Include in the common makefile rules
+#
+ifeq ($(RULES_MAKE_LOADED),)
+ include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+#
+# The name of the application is in the APP_NAME variable.
+# The list of application resource directories is in xxx_RESOURCE_DIRS
+# The list of application resource files is in xxx_RESOURCE_FILES
+# The list of localized resource files is in xxx_LOCALIZED_RESOURCE_FILES
+# The list of supported languages is in xxx_LANGUAGES
+# The name of the application icon (if any) is in xxx_APPLICATION_ICON
+# The name of the app class is xxx_PRINCIPAL_CLASS (defaults to NSApplication).
+# The name of a file containing info.plist entries to be inserted into
+# Info-gnustep.plist (if any) is xxxInfo.plist
+# where xxx is the application name
+#
+
+.PHONY: internal-app-all_ \
+ internal-app-install_ \
+ internal-app-uninstall_ \
+ internal-app-copy_into_dir \
+ internal-application-build-template
+
+#
+# Determine where to install. By default, install into GNUSTEP_APPS.
+#
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ APP_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifeq ($(APP_INSTALL_DIR),)
+ APP_INSTALL_DIR = $(GNUSTEP_APPS)
+endif
+
+ALL_GUI_LIBS = \
+ $(shell $(WHICH_LIB_SCRIPT) \
+ $(ALL_LIB_DIRS) \
+ $(ADDITIONAL_GUI_LIBS) $(AUXILIARY_GUI_LIBS) $(GUI_LIBS) \
+ $(BACKEND_LIBS) $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) \
+ $(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) \
+ $(SYSTEM_LIBS) $(TARGET_SYSTEM_LIBS) \
+ debug=$(debug) profile=$(profile) shared=$(shared) \
+ libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
+
+APP_DIR_NAME = $(GNUSTEP_INSTANCE:=.$(APP_EXTENSION))
+APP_DIR = $(GNUSTEP_BUILD_DIR)/$(APP_DIR_NAME)
+
+#
+# Now include the standard resource-bundle routines from Shared/bundle.make
+#
+
+ifneq ($(FOUNDATION_LIB), apple)
+ # GNUstep bundle
+ GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH = $(APP_DIR)/Resources
+ APP_INFO_PLIST_FILE = $(APP_DIR)/Resources/Info-gnustep.plist
+else
+ # OSX bundle
+ GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH = $(APP_DIR)/Contents/Resources
+ APP_INFO_PLIST_FILE = $(APP_DIR)/Contents/Info.plist
+endif
+GNUSTEP_SHARED_BUNDLE_MAIN_PATH = $(APP_DIR_NAME)
+GNUSTEP_SHARED_BUNDLE_INSTALL_DIR = $(APP_INSTALL_DIR)
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/bundle.make
+
+ifneq ($(FOUNDATION_LIB), apple)
+APP_FILE_NAME = $(APP_DIR_NAME)/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE)$(EXEEXT)
+else
+APP_FILE_NAME = $(APP_DIR_NAME)/Contents/MacOS/$(GNUSTEP_INSTANCE)$(EXEEXT)
+endif
+
+APP_FILE = $(GNUSTEP_BUILD_DIR)/$(APP_FILE_NAME)
+
+
+#
+# Internal targets
+#
+
+$(APP_FILE): $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(LD) $(ALL_LDFLAGS) -o $(LDOUT)$@ $(OBJ_FILES_TO_LINK)\
+ $(ALL_GUI_LIBS)$(END_ECHO)
+ifneq ($(FOUNDATION_LIB), apple)
+ $(ECHO_NOTHING)$(TRANSFORM_PATHS_SCRIPT) $(subst -L,,$(ALL_LIB_DIRS)) \
+ >$(APP_DIR)/$(GNUSTEP_TARGET_LDIR)/library_paths.openapp$(END_ECHO)
+endif
+
+#
+# Compilation targets
+#
+
+ifeq ($(FOUNDATION_LIB), apple)
+internal-app-all_:: $(GNUSTEP_OBJ_DIR) \
+ $(APP_DIR)/Contents/MacOS \
+ $(APP_FILE) \
+ shared-instance-bundle-all \
+ $(APP_INFO_PLIST_FILE)
+
+$(APP_DIR)/Contents/MacOS:
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+else
+
+internal-app-all_:: $(GNUSTEP_OBJ_DIR) \
+ $(APP_DIR)/$(GNUSTEP_TARGET_LDIR) \
+ $(APP_FILE) \
+ internal-application-build-template \
+ $(APP_DIR)/Resources \
+ $(APP_INFO_PLIST_FILE) \
+ $(APP_DIR)/Resources/$(GNUSTEP_INSTANCE).desktop \
+ shared-instance-bundle-all
+
+$(APP_DIR)/$(GNUSTEP_TARGET_LDIR):
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+ifeq ($(GNUSTEP_FLATTENED),)
+internal-application-build-template: $(APP_DIR)/$(GNUSTEP_INSTANCE)
+
+$(APP_DIR)/$(GNUSTEP_INSTANCE):
+ $(ECHO_NOTHING)cp $(GNUSTEP_MAKEFILES)/executable.template \
+ $(APP_DIR)/$(GNUSTEP_INSTANCE); \
+ chmod a+x $(APP_DIR)/$(GNUSTEP_INSTANCE)$(END_ECHO)
+else
+internal-application-build-template:
+
+endif
+endif
+
+PRINCIPAL_CLASS = $(strip $($(GNUSTEP_INSTANCE)_PRINCIPAL_CLASS))
+
+ifeq ($(PRINCIPAL_CLASS),)
+ PRINCIPAL_CLASS = NSApplication
+endif
+
+APPLICATION_ICON = $($(GNUSTEP_INSTANCE)_APPLICATION_ICON)
+
+MAIN_MODEL_FILE = $(strip $(subst .gmodel,,$(subst .gorm,,$(subst .nib,,$($(GNUSTEP_INSTANCE)_MAIN_MODEL_FILE)))))
+
+MAIN_MARKUP_FILE = $(strip $(subst .gsmarkup,,$($(GNUSTEP_INSTANCE)_MAIN_MARKUP_FILE)))
+
+# We must recreate Info.plist if PRINCIPAL_CLASS and/or
+# 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.
+GNUSTEP_STAMP_STRING = $(PRINCIPAL_CLASS)-$(APPLICATION_ICON)-$(MAIN_MODEL_FILE)-$(MAIN_MARKUP_FILE)
+
+ifneq ($(FOUNDATION_LIB),apple)
+GNUSTEP_STAMP_DIR = $(APP_DIR)
+
+# Only for efficiency
+$(GNUSTEP_STAMP_DIR): $(APP_DIR)/$(GNUSTEP_TARGET_LDIR)
+else
+# Everything goes in $(APP_DIR)/Contents on Apple
+GNUSTEP_STAMP_DIR = $(APP_DIR)/Contents
+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
+# 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
+# when using NeXT/OPENStep FoundationKit, and UNKNOWN when using
+# something else, so you can use
+# #ifdef GNUSTEP
+# ... some plist code for GNUstep ...
+# #else
+# ... some plist code for Apple ...
+# #endif
+# 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 =
+endif
+
+# On Apple we assume that xxxInfo.plist has a '{' (and nothing else)
+# on the first line, and the rest of the file is a plain property list
+# dictionary. You must make sure your xxxInfo.plist is in this format
+# to use it on Apple.
+
+# The problem is, we need to add the automatically generated entries
+# to this custom dictionary on Apple - to do that, we generate '{'
+# followed by the custom entries, followed by xxxInfo.plist (with the
+# first line removed), or by '}'. NB: "sed '1d' filename" prints out
+# filename, except the first line.
+
+# On GNUstep we use plmerge which is much slower, but should probably
+# be safer, because as soon as xxxInfo.plist is in plist format, it
+# should always work (even if the first line is not just a '{' and
+# nothing else).
+
+ifeq ($(FOUNDATION_LIB), apple)
+$(APP_INFO_PLIST_FILE): $(GNUSTEP_STAMP_DEPEND) $(GNUSTEP_PLIST_DEPEND)
+ $(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
+ echo " NSExecutable = \"$(GNUSTEP_INSTANCE)\";"; \
+ echo " NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
+ echo " GSMainMarkupFile = \"$(MAIN_MARKUP_FILE)\";"; \
+ if [ "$(APPLICATION_ICON)" != "" ]; then \
+ echo " CFBundleIconFile = \"$(APPLICATION_ICON)\";"; \
+ fi; \
+ echo " NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
+ if [ -r "$(GNUSTEP_INSTANCE)Info.plist" ]; then \
+ sed '1d' "$(GNUSTEP_INSTANCE)Info.plist"; \
+ else \
+ echo "}"; \
+ fi) > $@$(END_ECHO)
+else
+
+$(APP_INFO_PLIST_FILE): $(GNUSTEP_STAMP_DEPEND) $(GNUSTEP_PLIST_DEPEND)
+ $(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
+ echo " NSExecutable = \"$(GNUSTEP_INSTANCE)\";"; \
+ echo " NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
+ echo " GSMainMarkupFile = \"$(MAIN_MARKUP_FILE)\";"; \
+ if [ "$(APPLICATION_ICON)" != "" ]; then \
+ echo " NSIcon = \"$(APPLICATION_ICON)\";"; \
+ fi; \
+ echo " NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
+ echo "}") >$@$(END_ECHO)
+ -$(ECHO_NOTHING)if [ -r "$(GNUSTEP_INSTANCE)Info.plist" ]; then \
+ plmerge $@ "$(GNUSTEP_INSTANCE)Info.plist"; \
+ fi$(END_ECHO)
+endif
+
+$(APP_DIR)/Resources/$(GNUSTEP_INSTANCE).desktop: \
+ $(APP_DIR)/Resources/Info-gnustep.plist
+ $(ECHO_CREATING)pl2link $^ $(APP_DIR)/Resources/$(GNUSTEP_INSTANCE).desktop$(END_ECHO)
+
+
+internal-app-copy_into_dir:: shared-instance-bundle-copy_into_dir
+
+# install/uninstall targets
+
+$(APP_INSTALL_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+internal-app-install_:: shared-instance-bundle-install
+ifeq ($(strip),yes)
+ $(ECHO_STRIPPING)$(STRIP) $(APP_INSTALL_DIR)/$(APP_FILE_NAME)$(END_ECHO)
+endif
+
+internal-app-uninstall_:: shared-instance-bundle-uninstall
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
--- /dev/null
+#
+# Instace/bundle.make
+#
+# Instance makefile rules to build GNUstep-based bundles.
+#
+# Copyright (C) 1997, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/headers.make
+
+# The name of the bundle is in the BUNDLE_NAME variable.
+# The list of bundle resource file are in xxx_RESOURCE_FILES
+# The list of localized bundle resource files is in
+# xxx_LOCALIZED_RESOURCE_FILES
+# The list of languages the bundle supports is in xxx_LANGUAGES
+# The list of bundle resource directories are in xxx_RESOURCE_DIRS
+# The name of the principal class is xxx_PRINCIPAL_CLASS
+# The header files are in xxx_HEADER_FILES
+# The directory where the header files are located is xxx_HEADER_FILES_DIR
+# The directory where to install the header files inside the library
+# installation directory is xxx_HEADER_FILES_INSTALL_DIR
+# where xxx is the bundle name
+#
+
+.PHONY: internal-bundle-all_ \
+ internal-bundle-install_ \
+ internal-bundle-uninstall_ \
+ internal-bundle-copy_into_dir \
+ build-bundle
+
+# In some cases, a bundle without any object file in it is useful - to
+# just store some resources which can be loaded comfortably using the
+# gnustep-base NSBundle API. In this case - which we detect because
+# OBJ_FILES_TO_LINK is empty - we skip any code related to linking etc
+ifneq ($(OBJ_FILES_TO_LINK),)
+# NB: we don't need to link the bundle against the system libraries,
+# which are already linked in the application ... linking them both in
+# the bundle and in the application would just make things more
+# difficult when the bundle is loaded (eg, if the application and the
+# bundle end up being linked to different versions of the system
+# libraries ...)
+
+# On windows, this is unfortunately required.
+ifeq ($(WITH_DLL), yes)
+ LINK_BUNDLE_AGAINST_ALL_LIBS = yes
+endif
+
+# On Apple, two-level namespaces require all symbols in bundles
+# to be resolved at link time.
+ifeq ($(FOUNDATION_LIB), apple)
+ LINK_BUNDLE_AGAINST_ALL_LIBS = yes
+endif
+
+ifeq ($(LINK_BUNDLE_AGAINST_ALL_LIBS), yes)
+BUNDLE_LIBS += $(ADDITIONAL_GUI_LIBS) $(AUXILIARY_GUI_LIBS) $(BACKEND_LIBS) \
+ $(GUI_LIBS) $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) \
+ $(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) \
+ $(SYSTEM_LIBS) $(TARGET_SYSTEM_LIBS)
+endif
+
+ALL_BUNDLE_LIBS = \
+ $(shell $(WHICH_LIB_SCRIPT) \
+ $(ALL_LIB_DIRS) \
+ $(BUNDLE_LIBS) \
+ debug=$(debug) profile=$(profile) shared=$(shared) \
+ libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
+
+ifeq ($(WITH_DLL),yes)
+BUNDLE_OBJ_EXT = $(DLL_LIBEXT)
+endif
+
+endif # OBJ_FILES_TO_LINK
+
+#
+# GNUstep bundles are built in the following way on all platforms:
+# xxx.bundle/Resources/Info-gnustep.plist
+# xxx.bundle/Resources/<all resources here>
+#
+# We also support building Apple bundles using Apple frameworks
+# on Apple platforms - in which case, the bundle has a different
+# structure:
+# xxx.bundle/Contents/Info.plist
+# xxx.bundle/Contents/Resources/<all resources here>
+# This second way of building bundles is triggered by FOUNDATION_LIB =
+# apple.
+#
+
+internal-bundle-all_:: $(GNUSTEP_OBJ_DIR) build-bundle
+
+BUNDLE_DIR_NAME = $(GNUSTEP_INSTANCE:=$(BUNDLE_EXTENSION))
+BUNDLE_DIR = $(GNUSTEP_BUILD_DIR)/$(BUNDLE_DIR_NAME)
+
+ifneq ($(OBJ_FILES_TO_LINK),)
+ ifneq ($(FOUNDATION_LIB), apple)
+ BUNDLE_FILE_NAME = \
+ $(BUNDLE_DIR_NAME)/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE)$(BUNDLE_OBJ_EXT)
+ else
+ BUNDLE_FILE_NAME = \
+ $(BUNDLE_DIR_NAME)/Contents/MacOS/$(GNUSTEP_INSTANCE)$(BUNDLE_OBJ_EXT)
+ endif
+
+ BUNDLE_FILE = $(GNUSTEP_BUILD_DIR)/$(BUNDLE_FILE_NAME)
+endif
+
+#
+# Determine where to install. By default, install into GNUSTEP_BUNDLES.
+#
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ BUNDLE_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifeq ($(BUNDLE_INSTALL_DIR),)
+ BUNDLE_INSTALL_DIR = $(GNUSTEP_BUNDLES)
+endif
+
+ifneq ($(FOUNDATION_LIB), apple)
+ # GNUstep bundle
+ GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH = $(BUNDLE_DIR)/Resources
+ BUNDLE_INFO_PLIST_FILE = $(BUNDLE_DIR)/Resources/Info-gnustep.plist
+else
+ # OSX bundle
+ GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH = $(BUNDLE_DIR)/Contents/Resources
+ BUNDLE_INFO_PLIST_FILE = $(BUNDLE_DIR)/Contents/Info.plist
+endif
+GNUSTEP_SHARED_BUNDLE_MAIN_PATH = $(BUNDLE_DIR_NAME)
+GNUSTEP_SHARED_BUNDLE_INSTALL_DIR = $(BUNDLE_INSTALL_DIR)
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/bundle.make
+
+ifneq ($(OBJ_FILES_TO_LINK),)
+ifneq ($(FOUNDATION_LIB),apple)
+build-bundle:: $(BUNDLE_DIR)/$(GNUSTEP_TARGET_LDIR) \
+ $(BUNDLE_FILE) \
+ $(BUNDLE_INFO_PLIST_FILE) \
+ shared-instance-bundle-all
+else
+build-bundle:: $(BUNDLE_DIR)/Contents/MacOS \
+ $(BUNDLE_FILE) \
+ $(BUNDLE_INFO_PLIST_FILE) \
+ shared-instance-bundle-all
+endif
+
+# The rule to build $(BUNDLE_DIR)/Resources is already provided
+# by Instance/Shared/bundle.make
+
+$(BUNDLE_DIR)/$(GNUSTEP_TARGET_LDIR):
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+ifeq ($(WITH_DLL),yes)
+
+$(BUNDLE_FILE) : $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(DLLWRAP) --driver-name $(CC) \
+ -o $(LDOUT)$(BUNDLE_FILE) \
+ $(OBJ_FILES_TO_LINK) \
+ $(ALL_LDFLAGS) \
+ $(ALL_BUNDLE_LIBS)$(END_ECHO)
+
+else # WITH_DLL
+
+$(BUNDLE_FILE) : $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(BUNDLE_LD) $(BUNDLE_LDFLAGS) $(ALL_LDFLAGS) \
+ -o $(LDOUT)$(BUNDLE_FILE) \
+ $(OBJ_FILES_TO_LINK) \
+ $(ALL_BUNDLE_LIBS)$(END_ECHO)
+
+endif # WITH_DLL
+
+PRINCIPAL_CLASS = $(strip $($(GNUSTEP_INSTANCE)_PRINCIPAL_CLASS))
+
+ifeq ($(PRINCIPAL_CLASS),)
+ PRINCIPAL_CLASS = $(GNUSTEP_INSTANCE)
+endif
+
+else
+# Following code for the case OBJ_FILES_TO_LINK is empty - bundle with
+# no shared object in it.
+build-bundle:: $(BUNDLE_INFO_PLIST_FILE) shared-instance-bundle-all
+endif # OBJ_FILES_TO_LINK
+
+MAIN_MODEL_FILE = $(strip $(subst .gmodel,,$(subst .gorm,,$(subst .nib,,$($(GNUSTEP_INSTANCE)_MAIN_MODEL_FILE)))))
+
+# We must recreate Info.plist if the values of PRINCIPAL_CLASS and/or
+# of MAIN_MODEL_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 if
+# GNUSTEP_STAMP_STRING changes
+GNUSTEP_STAMP_STRING = $(PRINCIPAL_CLASS)-$(MAIN_MODEL_FILE)
+ifneq ($(FOUNDATION_LIB), apple)
+GNUSTEP_STAMP_DIR = $(BUNDLE_DIR)
+else
+# Everything goes in Contents/ on Apple
+GNUSTEP_STAMP_DIR = $(BUNDLE_DIR)/Contents
+endif
+
+ifeq ($(FOUNDATION_LIB), apple)
+# For efficiency, depend on the rule to build
+# BUNDLE_DIR/Contents/Resources (which would be used anyway when
+# building the bundle), so that first we use the rule to create
+# BUNDLE_DIR/Contents/Resources, and then we can avoid executing a
+# separate rule/subshell to create GNUSTEP_STAMP_DIR which has already
+# been implicitly created by the other rule!
+$(GNUSTEP_STAMP_DIR): $(BUNDLE_DIR)/Contents/Resources
+
+else
+$(GNUSTEP_STAMP_DIR): $(BUNDLE_DIR)/Resources
+
+endif
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/stamp-string.make
+
+ifeq ($(FOUNDATION_LIB), apple)
+# MacOSX bundles
+
+$(BUNDLE_DIR)/Contents:
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+$(BUNDLE_DIR)/Contents/MacOS:
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+ifneq ($(OBJ_FILES_TO_LINK),)
+$(BUNDLE_DIR)/Contents/Info.plist: $(BUNDLE_DIR)/Contents \
+ $(GNUSTEP_STAMP_DEPEND)
+ $(ECHO_CREATING)(echo "<?xml version='1.0' encoding='utf-8'?>";\
+ echo "<!DOCTYPE plist SYSTEM 'file://localhost/System/Library/DTDs/PropertyList.dtd'>";\
+ echo "<!-- Automatically generated, do not edit! -->";\
+ echo "<plist version='0.9'>";\
+ echo " <dict>";\
+ echo " <key>CFBundleExecutable</key>";\
+ echo " <string>$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE)${BUNDLE_OBJ_EXT}</string>";\
+ echo " <key>CFBundleInfoDictionaryVersion</key>";\
+ echo " <string>6.0</string>";\
+ echo " <key>CFBundlePackageType</key>";\
+ echo " <string>BNDL</string>";\
+ echo " <key>NSPrincipalClass</key>";\
+ echo " <string>$(PRINCIPAL_CLASS)</string>";\
+ echo " </dict>";\
+ echo "</plist>";\
+ ) >$@$(END_ECHO)
+else
+$(BUNDLE_DIR)/Contents/Info.plist: $(BUNDLE_DIR)/Contents \
+ $(GNUSTEP_STAMP_DEPEND)
+ $(ECHO_CREATING)(echo "<?xml version='1.0' encoding='utf-8'?>";\
+ echo "<!DOCTYPE plist SYSTEM 'file://localhost/System/Library/DTDs/PropertyList.dtd'>";\
+ echo "<!-- Automatically generated, do not edit! -->";\
+ echo "<plist version='0.9'>";\
+ echo " <dict>";\
+ echo " <key>CFBundleInfoDictionaryVersion</key>";\
+ echo " <string>6.0</string>";\
+ echo " <key>CFBundlePackageType</key>";\
+ echo " <string>BNDL</string>";\
+ echo " </dict>";\
+ echo "</plist>";\
+ ) >$@$(END_ECHO)
+endif
+
+else # following executed if FOUNDATION_LIB != apple
+
+ifneq ($(OBJ_FILES_TO_LINK),)
+# GNUstep bundles
+$(BUNDLE_DIR)/Resources/Info-gnustep.plist: $(BUNDLE_DIR)/Resources \
+ $(GNUSTEP_STAMP_DEPEND)
+ $(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
+ echo " NSExecutable = \"$(GNUSTEP_INSTANCE)${BUNDLE_OBJ_EXT}\";"; \
+ echo " NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
+ echo " NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
+ echo "}") >$@$(END_ECHO)
+ $(ECHO_NOTHING)if [ -r "$(GNUSTEP_INSTANCE)Info.plist" ]; then \
+ plmerge $@ $(GNUSTEP_INSTANCE)Info.plist; \
+ fi$(END_ECHO)
+else # following code for when no object file is built
+# GNUstep bundles
+$(BUNDLE_DIR)/Resources/Info-gnustep.plist: $(BUNDLE_DIR)/Resources \
+ $(GNUSTEP_STAMP_DEPEND)
+ $(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
+ echo " NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
+ echo "}") >$@$(END_ECHO)
+ $(ECHO_NOTHING)if [ -r "$(GNUSTEP_INSTANCE)Info.plist" ]; then \
+ plmerge $@ $(GNUSTEP_INSTANCE)Info.plist; \
+ fi$(END_ECHO)
+endif
+
+endif # FOUNDATION_LIB != apple
+
+internal-bundle-copy_into_dir:: shared-instance-bundle-copy_into_dir
+
+$(BUNDLE_INSTALL_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+internal-bundle-install_:: shared-instance-headers-install \
+ shared-instance-bundle-install
+ifeq ($(strip),yes)
+ifneq ($(OBJ_FILES_TO_LINK),)
+ $(ECHO_STRIPPING)$(STRIP) $(BUNDLE_INSTALL_DIR)/$(BUNDLE_FILE_NAME)$(END_ECHO)
+endif
+endif
+
+internal-bundle-uninstall_:: shared-instance-headers-uninstall \
+ shared-instance-bundle-uninstall
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
+
--- /dev/null
+#
+# Instance/clibrary.make
+#
+# Instance Makefile rules to build C libraries.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Warning/TODO - this makefile is not really finished, because it
+# still uses the LIB_LINK_CMD used for normal ObjC libraries. The
+# main difference from library.make, currently, is that it installs
+# outside the library_combo dir. (because this is the status of this
+# makefile, we currently simply inherit from library.make. Once we
+# actually implement C libraries, we might want to make this makefile
+# partially independent from library.make)
+
+#
+# It all works as for library.make but we install outside library-combo
+#
+# Other differences are:
+#
+# The name of the library is in the CLIBRARY_NAME variable, rather
+# than in the LIBRARY_NAME variable as it happens for libraries.
+#
+# Similarly, the install dir is controlled by CLIBRARY_INSTALL_DIR
+# rather than LIBRARY_INSTALL_DIR.
+#
+
+.PHONY: internal-clibrary-all_ \
+ internal-clibrary-install_ \
+ internal-clibrary-uninstall_
+
+# This is the directory where the lib get installed.
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ CLIBRARY_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifeq ($(CLIBRARY_INSTALL_DIR),)
+ CLIBRARY_INSTALL_DIR = $(GNUSTEP_LIBRARIES)
+endif
+
+# And this is used internally - it is the final directory where we put
+# the library - it includes target arch, os dir but not the
+# library_combo - this variable is PRIVATE to gnustep-make
+FINAL_LIBRARY_INSTALL_DIR = $(CLIBRARY_INSTALL_DIR)/$(GNUSTEP_TARGET_DIR)
+
+# Drag in library.make rules
+include $(GNUSTEP_MAKEFILES)/Instance/library.make
+
+# Now call them from our own rules
+internal-clibrary-all_:: internal-library-all_
+
+internal-clibrary-install_:: internal-library-install_
+
+internal-clibrary-uninstall_:: internal-library-uninstall_
+
+internal-clibrary-check:: internal-library-check
+
--- /dev/null
+#
+# Instance/ctool.make
+#
+# Instance Makefile rules to build GNUstep-based command line ctools.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# The name of the ctools is in the CTOOL_NAME variable.
+#
+# xxx We need to prefix the target name when cross-compiling
+#
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+# This is the directory where the ctools get installed. If you don't
+# specify a directory they will get installed in the GNUstep Local
+# root.
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ CTOOL_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifeq ($(CTOOL_INSTALL_DIR),)
+ CTOOL_INSTALL_DIR = $(GNUSTEP_TOOLS)
+endif
+
+.PHONY: internal-ctool-all_ \
+ internal-ctool-install_ \
+ internal-ctool-uninstall_
+
+ALL_TOOL_LIBS = \
+ $(shell $(WHICH_LIB_SCRIPT) \
+ $(ALL_LIB_DIRS) \
+ $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) \
+ $(TARGET_SYSTEM_LIBS) \
+ debug=$(debug) profile=$(profile) shared=$(shared) \
+ libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
+
+#
+# Compilation targets
+#
+internal-ctool-all_:: $(GNUSTEP_OBJ_DIR) \
+ $(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT)
+
+$(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT): $(C_OBJ_FILES) \
+ $(SUBPROJECT_OBJ_FILES)
+ $(ECHO_LINKING)$(LD) $(ALL_LDFLAGS) -o $(LDOUT)$@ \
+ $(C_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) \
+ $(ALL_TOOL_LIBS)$(END_ECHO)
+
+internal-ctool-install_:: $(CTOOL_INSTALL_DIR)/$(GNUSTEP_TARGET_DIR)
+ $(ECHO_INSTALLING)$(INSTALL_PROGRAM) -m 0755 \
+ $(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT) \
+ $(CTOOL_INSTALL_DIR)/$(GNUSTEP_TARGET_DIR)$(END_ECHO)
+
+$(CTOOL_INSTALL_DIR)/$(GNUSTEP_TARGET_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+internal-ctool-uninstall_::
+ $(ECHO_UNINSTALLING)rm -f $(CTOOL_INSTALL_DIR)/$(GNUSTEP_TARGET_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT)$(END_ECHO)
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
+
--- /dev/null
+# -*-makefile-*-
+# Instance/documentation.make
+#
+# Instance Makefile rules to build GNUstep-based documentation.
+#
+# Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+ include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+#
+# The names of the documents are in the DOCUMENT_NAME variable.
+# These final documents will be generated in info, dvi, ps, and html output.
+#
+# The names of text documents are in the DOCUMENT_TEXT_NAME variable.
+#
+# The main file for text document is in the xxx_TEXT_MAIN variable.
+# Files already ready to be installed without pre-processing (eg, html, rtf)
+# are in the xxx_INSTALL_FILES
+# The Texinfo files that needs pre-processing are in xxx_TEXI_FILES
+# The GSDoc files that needs pre-processing are in xxx_GSDOC_FILES
+# The files for processing by autogsdoc are in xxx_AGSDOC_FILES
+# The options for controlling autogsdoc are in xxx_AGSDOC_FLAGS
+#
+# Javadoc support:
+# The Java classes and packages that needs documenting using javadoc
+# are in xxx_JAVADOC_FILES (could contain both packages, as
+# `gnu.gnustep.base', and standalone classes, as
+# `gnu.gnustep.base.NSArray.java')
+#
+# The sourcepath to the Java classes source code in in xxx_JAVADOC_SOURCEPATH
+# (it can contain more than one path, as CLASSPATH or LD_LIBRARY_PATH do).
+# To set special flags for javadoc (eg, -public), use ADDITIONAL_JAVADOCFLAGS
+#
+# The installation directory is in the xxx_DOC_INSTALL_DIR variable
+# (eg, Gui_DOC_INSTALL_DIR = Developer/Gui/Reference
+# Things should be installed under `Developer/YourProjectName' or
+# `User/YourProjectName' - for Javadoc, use `Developer/YourProjectName' or
+# `Developer/YourProjectName/Java' if your project has both java and
+# non java)
+#
+# Where xxx is the name of the document
+#
+
+TEXI_FILES = $($(GNUSTEP_INSTANCE)_TEXI_FILES)
+GSDOC_FILES = $($(GNUSTEP_INSTANCE)_GSDOC_FILES)
+AGSDOC_FILES = $($(GNUSTEP_INSTANCE)_AGSDOC_FILES)
+LATEX_FILES = $($(GNUSTEP_INSTANCE)_LATEX_FILES)
+JAVADOC_FILES = $($(GNUSTEP_INSTANCE)_JAVADOC_FILES)
+DOC_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_DOC_INSTALL_DIR)
+TEXT_MAIN = $($(GNUSTEP_INSTANCE)_TEXT_MAIN)
+
+#
+# GNUSTEP_DVIPS is here because it's common to texi.make and latex.make
+#
+
+# To override GNUSTEP_DVIPS, define it differently in
+# GNUmakefile.preamble
+ifeq ($(GNUSTEP_DVIPS),)
+ GNUSTEP_DVIPS = dvips
+endif
+
+# To override GNUSTEP_DVIPS_FLAGS, define it differently in
+# GNUmakefile.premable. To only add new flags to the existing ones,
+# set ADDITIONAL_DVIPS_FLAGS in GNUmakefile.preamble.
+ifeq ($(GNUSTEP_DVIPS_FLAGS),)
+ GNUSTEP_DVIPS_FLAGS =
+endif
+
+.PHONY: internal-doc-all_ \
+ internal-doc-clean \
+ internal-doc-distclean \
+ internal-doc-install_ \
+ internal-doc-uninstall_ \
+ internal-textdoc-all_ \
+ internal-textdoc-clean \
+ internal-textdoc-distclean \
+ internal-textdoc-install_ \
+ internal-textdoc-uninstall_
+
+#
+# Common code.
+#
+
+# Installation directory - always created. This rule should be before
+# the makefile fragments' internal-doc-install_, so that
+# GNUSTEP_DOCUMENTATION/DOC_INSTALL_DIR is built before their targets
+# are. FIXME: Maybe this dependency should be in the submakefiles
+# themselves.
+internal-doc-install_:: $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)
+
+$(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)$(END_ECHO)
+
+$(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE)$(END_ECHO)
+
+ifneq ($(TEXI_FILES),)
+ include $(GNUSTEP_MAKEFILES)/Instance/Documentation/texi.make
+endif
+
+ifneq ($(GSDOC_FILES),)
+ include $(GNUSTEP_MAKEFILES)/Instance/Documentation/gsdoc.make
+endif
+
+ifneq ($(AGSDOC_FILES),)
+ include $(GNUSTEP_MAKEFILES)/Instance/Documentation/autogsdoc.make
+endif
+
+ifneq ($(LATEX_FILES),)
+ include $(GNUSTEP_MAKEFILES)/Instance/Documentation/latex.make
+endif
+
+ifneq ($(JAVADOC_FILES),)
+ include $(GNUSTEP_MAKEFILES)/Instance/Documentation/javadoc.make
+endif
+
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_FILES),)
+ include $(GNUSTEP_MAKEFILES)/Instance/Documentation/install_files.make
+endif
+
+#
+# textdoc targets - these are meant to be used with texi.make ... maybe
+# they should be moved in there
+#
+internal-textdoc-install_:: $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)
+ $(ECHO_NOTHING)$(INSTALL_DATA) $(GNUSTEP_INSTANCE) \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)$(END_ECHO)
+
+internal-textdoc-uninstall_::
+ $(ECHO_UNINSTALLING)rm -f \
+ $(GNUSTEP_DOCUMENTATION)/$(DOC_INSTALL_DIR)/$(GNUSTEP_INSTANCE)$(END_ECHO)
+
+internal-textdoc-clean::
+ $(ECHO_NOTHING) rm -f $(GNUSTEP_INSTANCE) $(END_ECHO)
+
+internal-textdoc-distclean::
+
--- /dev/null
+# -*-makefile-*-
+# Instance/framework.make
+#
+# Instance Makefile rules to build GNUstep-based frameworks.
+#
+# Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+#
+# Author: Mirko Viviani <mirko.viviani@rccr.cremona.it>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+# FIXME - missing .PHONY declaration
+
+# The name of the framework is in the FRAMEWORK_NAME variable.
+# The list of framework resource files are in xxx_RESOURCE_FILES
+# The list of framework web server resource files are in
+# xxx_WEBSERVER_RESOURCE_FILES
+# The list of localized framework resource files is in
+# xxx_LOCALIZED_RESOURCE_FILES
+# The list of localized framework web server resource files is in
+# xxx_WEBSERVER_LOCALIZED_RESOURCE_FILES
+# The list of framework GSWeb components are in xxx_COMPONENTS
+# The list of languages the framework supports is in xxx_LANGUAGES
+# The list of framework resource directories are in xxx_RESOURCE_DIRS
+# The list of framework subprojects directories are in xxx_SUBPROJECTS
+# The name of the principal class is xxx_PRINCIPAL_CLASS
+# The header files are in xxx_HEADER_FILES
+# The directory where the header files are located is xxx_HEADER_FILES_DIR
+# (defaults to ./)
+# The directory where to install the header files inside the library
+# installation directory is xxx_HEADER_FILES_INSTALL_DIR
+# (defaults to the framework name [without .framework]). Can't be `.'
+# The list of framework web server resource directories are in
+# xxx_WEBSERVER_RESOURCE_DIRS
+# The list of localized framework web server GSWeb components are in
+# xxx_WEBSERVER_LOCALIZED_RESOURCE_DIRS
+# xxx_CURRENT_VERSION_NAME is the compiled version name (default "A")
+# xxx_MAKE_CURRENT_VERSION is used to decide if the framework version
+# we compiling should be made the current/default version or not
+# (default is "yes")
+#
+# where xxx is the framework name
+#
+#
+# The HEADER_FILES_INSTALL_DIR might look somewhat weird - because in
+# most if not all cases, you want it to be the framework name. At the
+# moment, it allows you to put headers for framework XXX in directory
+# YYY, so that you can refer to them by using #include
+# <YYY/MyHeader.h> rather than #include <XXX/MyHeader.h>. It seems to
+# be mostly used to have a framework with name XXX work as a drop-in
+# replacement for another framework, which has name YYY -- and which
+# might be installed at the same time :-).
+#
+
+# Warn about obsolete syntax
+ifneq ($(CURRENT_VERSION_NAME),)
+ $(warning CURRENT_VERSION_NAME is deprecated because it doesnt allow multiple frameworks with different versions to be built from warning the same GNUmakefile! Please replace it with XXX_CURRENT_VERSION_NAME)
+endif
+
+# 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
+endif
+
+# xxx_MAKE_CURRENT_VERSION can be set to 'no' if you do not want the
+# framework version that we are building from becoming the Current
+# one.
+ifneq ($($(GNUSTEP_INSTANCE)_MAKE_CURRENT_VERSION),)
+ MAKE_CURRENT_VERSION = $($(GNUSTEP_INSTANCE)_MAKE_CURRENT_VERSION)
+endif
+
+ifeq ($(MAKE_CURRENT_VERSION),)
+ MAKE_CURRENT_VERSION = yes
+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
+# in an application.
+DYLIB_INSTALL_NAME_BASE = $($(GNUSTEP_INSTANCE)_DYLIB_INSTALL_NAME_BASE)
+
+FRAMEWORK_DIR_NAME = $(GNUSTEP_INSTANCE).framework
+FRAMEWORK_DIR = $(GNUSTEP_BUILD_DIR)/$(FRAMEWORK_DIR_NAME)
+FRAMEWORK_VERSION_DIR_NAME = $(FRAMEWORK_DIR_NAME)/Versions/$(CURRENT_VERSION_NAME)
+FRAMEWORK_VERSION_DIR = $(GNUSTEP_BUILD_DIR)/$(FRAMEWORK_VERSION_DIR_NAME)
+
+# This is not doing much at the moment, but at least is defining
+# HEADER_FILES, HEADER_FILES_DIR and HEADER_FILES_INSTALL_DIR in the
+# standard way. NB: If HEADER_FILES is empty, HEADER_FILES_DIR and
+# HEADER_FILES_INSTALL_DIR are going to be undefined!
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/headers.make
+
+# FIXME - do we really want to link the framework against all libs ?
+# That easily makes problems when the framework is loaded as a bundle,
+# doesn't it ?
+ALL_FRAMEWORK_LIBS = \
+ $(shell $(WHICH_LIB_SCRIPT) \
+ $(ALL_LIB_DIRS) \
+ $(FRAMEWORK_LIBS) \
+ debug=$(debug) profile=$(profile) shared=$(shared) \
+ libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
+
+INTERNAL_LIBRARIES_DEPEND_UPON = \
+ $(shell $(WHICH_LIB_SCRIPT) \
+ $(ALL_LIB_DIRS) \
+ $(LIBRARIES_DEPEND_UPON) \
+ debug=$(debug) profile=$(profile) shared=$(shared) \
+ libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
+
+ifeq ($(FOUNDATION_LIB),gnu)
+ # On GNUstep, build our dummy class to store information which
+ # gnustep-base can find at run time
+ DUMMY_FRAMEWORK = NSFramework_$(GNUSTEP_INSTANCE)
+ DUMMY_FRAMEWORK_FILE = $(DERIVED_SOURCES_DIR)/$(DUMMY_FRAMEWORK).m
+ DUMMY_FRAMEWORK_OBJ_FILE = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(DUMMY_FRAMEWORK).o)
+
+ # The following file will hold the list of classes compiled into the
+ # framework, ready to be included in the .plist file. We include the
+ # list of classes twice, in the object file itself (for when the
+ # framework is loaded) and in the .plist (for tools which let you
+ # browse in frameworks on disk and see lists of classes). Please note
+ # that reading the class list from the .plist requires gnustep-base to
+ # have properly located the framework bundle on disk, while reading
+ # the list from the object file itself does not (and so it's more
+ # likely to work in a portable way), which is why we still save the
+ # list in the object file rather than only putting it in the .plist.
+ # Maybe this point should be discarded, and we should only store the class
+ # list in the .plist file.
+ DUMMY_FRAMEWORK_CLASS_LIST = $(DERIVED_SOURCES_DIR)/$(GNUSTEP_INSTANCE)-class-list
+endif
+
+FRAMEWORK_HEADER_FILES := $(addprefix $(FRAMEWORK_VERSION_DIR)/Headers/,$(HEADER_FILES))
+
+ifneq ($(BUILD_DLL),yes)
+
+FRAMEWORK_CURRENT_DIR_NAME := $(FRAMEWORK_DIR_NAME)/Versions/Current
+FRAMEWORK_CURRENT_DIR := $(GNUSTEP_BUILD_DIR)/$(FRAMEWORK_CURRENT_DIR_NAME)
+FRAMEWORK_LIBRARY_DIR_NAME := $(FRAMEWORK_VERSION_DIR_NAME)/$(GNUSTEP_TARGET_LDIR)
+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)
+
+FRAMEWORK_LIBRARY_FILE = lib$(GNUSTEP_INSTANCE)$(SHARED_LIBEXT)
+VERSION_FRAMEWORK_LIBRARY_FILE = $(FRAMEWORK_LIBRARY_FILE).$(VERSION)
+
+# 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
+SONAME_FRAMEWORK_FILE = $(FRAMEWORK_LIBRARY_FILE).$(INTERFACE_VERSION)
+
+FRAMEWORK_FILE_NAME := $(FRAMEWORK_LIBRARY_DIR_NAME)/$(VERSION_FRAMEWORK_LIBRARY_FILE)
+FRAMEWORK_FILE := $(GNUSTEP_BUILD_DIR)/$(FRAMEWORK_FILE_NAME)
+
+else # BUILD_DLL
+
+FRAMEWORK_FILE_NAME = $(GNUSTEP_INSTANCE)$(FRAMEWORK_NAME_SUFFIX)$(DLL_LIBEXT)
+FRAMEWORK_FILE = $(GNUSTEP_BUILD_DIR)/$(FRAMEWORK_FILE_NAME)
+DLL_NAME = $(shell echo $(LIBRARY_FILE)|cut -b 4-)
+DLL_EXP_LIB = $(GNUSTEP_INSTANCE)$(FRAMEWORK_NAME_SUFFIX)$(SHARED_LIBEXT)
+DLL_EXP_DEF = $(GNUSTEP_INSTANCE)$(FRAMEWORK_NAME_SUFFIX).def
+
+ifeq ($(DLL_INSTALLATION_DIR),)
+ DLL_INSTALLATION_DIR = $(GNUSTEP_TOOLS)/$(GNUSTEP_TARGET_LDIR)
+endif
+
+endif # BUILD_DLL
+
+ifeq ($(WITH_DLL),yes)
+ FRAMEWORK_OBJ_EXT = $(DLL_LIBEXT)
+endif # WITH_DLL
+
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ FRAMEWORK_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifeq ($(FRAMEWORK_INSTALL_DIR),)
+ FRAMEWORK_INSTALL_DIR = $(GNUSTEP_FRAMEWORKS)
+endif
+
+#
+# Emit a warning for old deprecated functionality
+#
+ifneq ($($(GNUSTEP_INSTANCE)_TOOLS),)
+ $(warning "Support for xxx_TOOLS has been removed from gnustep-make! Please rewrite your makefile code by compiling the tools separately, then add a xxx_COPY_INTO_DIR command for each of them to copy them into the framework. Ask for help on gnustep mailing lists if you're confused.")
+endif
+
+#
+# Now prepare the variables which are used by target-dependent commands
+# defined in target.make
+#
+LIB_LINK_OBJ_DIR = $(FRAMEWORK_LIBRARY_DIR)
+LIB_LINK_VERSION_FILE = $(VERSION_FRAMEWORK_LIBRARY_FILE)
+LIB_LINK_SONAME_FILE = $(SONAME_FRAMEWORK_FILE)
+LIB_LINK_FILE = $(FRAMEWORK_LIBRARY_FILE)
+LIB_LINK_INSTALL_DIR = $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_LIBRARY_DIR_NAME)
+
+ifneq ($(DYLIB_INSTALL_NAME_BASE),)
+ LIB_LINK_INSTALL_NAME = $(DYLIB_INSTALL_NAME_BASE)/$(FRAMEWORK_FILE_NAME)
+else
+ # Use a relative path for easy relocation.
+ LIB_LINK_INSTALL_NAME = $(GNUSTEP_INSTANCE).framework/$(GNUSTEP_INSTANCE)
+endif
+
+
+GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH = $(FRAMEWORK_VERSION_DIR)/Resources
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/bundle.make
+
+internal-framework-all_:: $(GNUSTEP_OBJ_DIR) \
+ build-framework
+
+internal-framework-build-headers:: build-framework-dirs \
+ $(FRAMEWORK_HEADER_FILES)
+
+
+ifeq ($(MAKE_CURRENT_VERSION),yes)
+# A target to build/reset the Current symlink to point to the newly
+# compiled framework. Only executed if MAKE_CURRENT_VERSION is yes.
+UPDATE_CURRENT_SYMLINK_RULE = update-current-symlink
+update-current-symlink:: $(FRAMEWORK_VERSION_DIR)
+ $(ECHO_NOTHING)cd $(FRAMEWORK_DIR)/Versions; \
+ rm -f Current; \
+ $(LN_S) $(CURRENT_VERSION_NAME) Current$(END_ECHO)
+
+else
+UPDATE_CURRENT_SYMLINK_RULE =
+endif
+
+# Please note that test -h must be used instead of test -L because on old
+# Sun Solaris, test -h works but test -L does not.
+build-framework-dirs:: $(DERIVED_SOURCES_DIR) \
+ $(FRAMEWORK_LIBRARY_DIR) \
+ $(FRAMEWORK_VERSION_DIR)/Headers \
+ $(FRAMEWORK_VERSION_DIR)/Resources \
+ $(FRAMEWORK_RESOURCE_DIRS) \
+ $(UPDATE_CURRENT_SYMLINK_RULE)
+ $(ECHO_NOTHING)cd $(FRAMEWORK_DIR); \
+ if [ ! -h "Resources" ]; then \
+ rm -f Resources; \
+ $(LN_S) Versions/Current/Resources Resources; \
+ fi; \
+ if [ ! -h "Headers" ]; then \
+ rm -f Headers; \
+ $(LN_S) Versions/Current/Headers Headers; \
+ fi$(END_ECHO)
+ifneq ($(HEADER_FILES),)
+ $(ECHO_NOTHING)cd $(DERIVED_SOURCES_DIR); \
+ if [ ! -h "$(HEADER_FILES_INSTALL_DIR)" ]; then \
+ rm -f ./$(HEADER_FILES_INSTALL_DIR); \
+ $(LN_S) ../$(FRAMEWORK_DIR_NAME)/Headers \
+ ./$(HEADER_FILES_INSTALL_DIR); \
+ fi$(END_ECHO)
+endif
+
+$(FRAMEWORK_LIBRARY_DIR):
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+$(FRAMEWORK_VERSION_DIR)/Headers:
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+$(DERIVED_SOURCES_DIR):
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+# Need to share this code with the headers code ... but how.
+$(FRAMEWORK_HEADER_FILES):: $(HEADER_FILES)
+ifneq ($(HEADER_FILES),)
+ $(ECHO_NOTHING)for file in $(HEADER_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ $(INSTALL_DATA) $(HEADER_FILES_DIR)/$$file \
+ $(FRAMEWORK_VERSION_DIR)/Headers/$$file ; \
+ fi; \
+ done$(END_ECHO)
+endif
+
+OBJC_OBJ_FILES_TO_INSPECT = $(OBJC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES)
+
+# FIXME - We should not depend on GNUmakefile - rather we should use
+# Instance/Shared/stamp-string.make if we need to depend on the value
+# of some make variables. That would also detect a change in
+# FRAMEWORK_INSTALL_DIR from the command line, not currently covered
+# at the moment!
+#
+# To get the list of all classes, we use
+# $(EXTRACT_CLASS_NAMES_COMMAND), which is defined in target.make
+#
+#
+# The following rule will also build the DUMMY_FRAMEWORK_CLASS_LIST
+# file. This file is always created/deleted at the same time as the
+# DUMMY_FRAMEWORK_FILE.
+$(DUMMY_FRAMEWORK_FILE): $(DERIVED_SOURCES_DIR) $(OBJ_FILES_TO_LINK) GNUmakefile
+ $(ECHO_CREATING) classes=""; \
+ for object_file in $(OBJC_OBJ_FILES_TO_INSPECT) __dummy__; do \
+ if [ "$$object_file" != "__dummy__" ]; then \
+ sym=`$(EXTRACT_CLASS_NAMES_COMMAND)`; \
+ classes="$$classes $$sym"; \
+ fi; \
+ done; \
+ classlist=""; \
+ classarray=""; \
+ for f in $$classes __dummy__ ; do \
+ if [ "$$f" != "__dummy__" ]; then \
+ if [ "$$classlist" = "" ]; then \
+ classlist="@\"$$f\""; \
+ classarray="(\"$$f\""; \
+ else \
+ classlist="$$classlist, @\"$$f\""; \
+ classarray="$$classarray, \"$$f\""; \
+ fi; \
+ fi; \
+ done; \
+ if [ "$$classlist" = "" ]; then \
+ classlist="NULL"; \
+ classarray="()"; \
+ else \
+ classlist="$$classlist, NULL"; \
+ classarray="$$classarray)"; \
+ fi; \
+ echo "$$classarray" > $(DUMMY_FRAMEWORK_CLASS_LIST); \
+ if [ "$(findstring $(GNUSTEP_SYSTEM_ROOT), $(FRAMEWORK_INSTALL_DIR))" = $(GNUSTEP_SYSTEM_ROOT) ]; then \
+ fw_env="@\"GNUSTEP_SYSTEM_ROOT\""; \
+ elif [ "$(findstring $(GNUSTEP_LOCAL_ROOT), $(FRAMEWORK_INSTALL_DIR))" = $(GNUSTEP_LOCAL_ROOT) ]; then \
+ fw_env="@\"GNUSTEP_LOCAL_ROOT\""; \
+ elif [ "$(findstring $(GNUSTEP_USER_ROOT), $(FRAMEWORK_INSTALL_DIR))" = $(GNUSTEP_USER_ROOT) ]; then \
+ fw_env="@\"GNUSTEP_USER_ROOT\""; \
+ else \
+ fw_env="nil"; \
+ fi; \
+ fw_path=`echo $(FRAMEWORK_INSTALL_DIR) | sed 's/^$(subst /,\/,$(GNUSTEP_FRAMEWORKS))//'`; \
+ if [ "$$fw_path" = "$(FRAMEWORK_INSTALL_DIR)" ]; then \
+ fw_path="nil"; \
+ elif [ "$$fw_path" = "" ]; then \
+ fw_path="nil"; \
+ else \
+ fw_path="@\"$$fw_path\""; \
+ fi; \
+ echo "#include <Foundation/NSString.h>" > $@; \
+ echo "@interface $(DUMMY_FRAMEWORK)" >> $@; \
+ echo "+ (NSString *)frameworkEnv;" >> $@; \
+ echo "+ (NSString *)frameworkPath;" >> $@; \
+ echo "+ (NSString *)frameworkVersion;" >> $@; \
+ echo "+ (NSString **)frameworkClasses;" >> $@; \
+ echo "@end" >> $@; \
+ echo "@implementation $(DUMMY_FRAMEWORK)" >> $@; \
+ echo "+ (NSString *)frameworkEnv { return $$fw_env; }" >> $@; \
+ echo "+ (NSString *)frameworkPath { return $$fw_path; }" >> $@; \
+ echo "+ (NSString *)frameworkVersion { return @\"$(CURRENT_VERSION_NAME)\"; }" >> $@; \
+ echo "static NSString *allClasses[] = {$$classlist};" >> $@; \
+ echo "+ (NSString **)frameworkClasses { return allClasses; }" >> $@;\
+ echo "@end" >> $@$(END_ECHO)
+
+ifeq ($(FOUNDATION_LIB),gnu)
+$(DUMMY_FRAMEWORK_OBJ_FILE): $(DUMMY_FRAMEWORK_FILE)
+ $(ECHO_COMPILING)$(CC) $< -c $(ALL_CPPFLAGS) $(ALL_OBJCFLAGS) -o $@$(END_ECHO)
+endif
+
+ifeq ($(FOUNDATION_LIB), apple)
+# When building native frameworks on Apple, we need to create a
+# top-level symlink xxx.framework/xxx ---> the framework shared
+# library
+
+build-framework:: $(FRAMEWORK_FILE) \
+ shared-instance-bundle-all \
+ $(FRAMEWORK_VERSION_DIR)/Resources/Info.plist \
+ $(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework/$(GNUSTEP_INSTANCE)
+
+# Please note that the following keeps the top-level symlink pointing
+# to the framework in Current. This is always correct, even if what
+# we are compiling is not made the Current framework version, but if
+# 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_INSTANCE):
+ifeq ($(MAKE_CURRENT_VERSION),yes)
+ $(ECHO_NOTHING)cd $(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework; \
+ rm -f $(GNUSTEP_INSTANCE); \
+ $(LN_S) Versions/Current/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE) $(GNUSTEP_INSTANCE)$(END_ECHO)
+endif
+
+else
+
+build-framework:: $(FRAMEWORK_FILE) \
+ shared-instance-bundle-all \
+ $(FRAMEWORK_VERSION_DIR)/Resources/Info-gnustep.plist
+
+endif
+
+
+
+
+
+ifeq ($(WITH_DLL),yes)
+
+$(FRAMEWORK_FILE) : $(DUMMY_FRAMEWORK_OBJ_FILE) $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(DLLWRAP) --driver-name $(CC) \
+ -o $(LDOUT)$(FRAMEWORK_FILE) \
+ $(OBJ_FILES_TO_LINK) \
+ $(ALL_LDFLAGS) \
+ $(ALL_FRAMEWORK_LIBS)$(END_ECHO)
+
+else # without DLL
+
+$(FRAMEWORK_FILE) : $(DUMMY_FRAMEWORK_OBJ_FILE) $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING) \
+ $(LIB_LINK_CMD); \
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(GNUSTEP_INSTANCE); \
+ $(LN_S) $(LIB_LINK_FILE) $(GNUSTEP_INSTANCE)) \
+ $(END_ECHO)
+
+endif # WITH_DLL
+
+PRINCIPAL_CLASS = $(strip $($(GNUSTEP_INSTANCE)_PRINCIPAL_CLASS))
+
+ifeq ($(PRINCIPAL_CLASS),)
+ PRINCIPAL_CLASS = $(GNUSTEP_INSTANCE)
+endif
+
+MAIN_MODEL_FILE = $(strip $(subst .gmodel,,$(subst .gorm,,$(subst .nib,,$($(GNUSTEP_INSTANCE)_MAIN_MODEL_FILE)))))
+
+# MacOSX-S frameworks
+$(FRAMEWORK_VERSION_DIR)/Resources/Info.plist: $(FRAMEWORK_VERSION_DIR)/Resources
+ $(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
+ echo " NSExecutable = \"$(GNUSTEP_INSTANCE)${FRAMEWORK_OBJ_EXT}\";"; \
+ echo " NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
+ echo " NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
+ echo "}") >$@$(END_ECHO)
+
+# GNUstep frameworks
+$(FRAMEWORK_VERSION_DIR)/Resources/Info-gnustep.plist: $(FRAMEWORK_VERSION_DIR)/Resources $(DUMMY_FRAMEWORK_FILE)
+ $(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
+ echo " NSExecutable = \"$(GNUSTEP_INSTANCE)${FRAMEWORK_OBJ_EXT}\";"; \
+ echo " NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
+ echo " NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
+ echo " Classes = "; \
+ cat $(DUMMY_FRAMEWORK_CLASS_LIST); \
+ echo " ;"; \
+ echo "}") >$@$(END_ECHO)
+ $(ECHO_NOTHING)if [ -r "$(GNUSTEP_INSTANCE)Info.plist" ]; then \
+ plmerge $@ $(GNUSTEP_INSTANCE)Info.plist; \
+ fi$(END_ECHO)
+
+ifneq ($(WITH_DLL),yes)
+
+ifeq ($(FOUNDATION_LIB),gnu)
+
+internal-framework-install_:: $(FRAMEWORK_INSTALL_DIR) \
+ $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR) \
+ $(GNUSTEP_HEADERS)
+ $(ECHO_INSTALLING)rm -rf $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME); \
+ (cd $(GNUSTEP_BUILD_DIR); $(TAR) cfX - $(GNUSTEP_MAKEFILES)/tar-exclude-list $(FRAMEWORK_DIR_NAME)) | (cd $(FRAMEWORK_INSTALL_DIR); $(TAR) xf -)$(END_ECHO)
+ifneq ($(CHOWN_TO),)
+ $(ECHO_CHOWNING)$(CHOWN) -R $(CHOWN_TO) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME)$(END_ECHO)
+endif
+ifeq ($(strip),yes)
+ $(ECHO_STRIPPING)$(STRIP) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_FILE_NAME)$(END_ECHO)
+endif
+ $(ECHO_INSTALLING_HEADERS)cd $(GNUSTEP_HEADERS); \
+ if [ "$(HEADER_FILES)" != "" ]; then \
+ rm -f $(HEADER_FILES_INSTALL_DIR); \
+ $(LN_S) `$(REL_PATH_SCRIPT) $(GNUSTEP_HEADERS) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME)/Headers` $(HEADER_FILES_INSTALL_DIR); \
+ fi;$(END_ECHO)
+ifneq ($(CHOWN_TO),)
+ $(ECHO_CHOWNING)cd $(GNUSTEP_HEADERS); \
+ if [ "$(HEADER_FILES)" != "" ]; then \
+ $(CHOWN) $(CHOWN_TO) $(HEADER_FILES_INSTALL_DIR); \
+ fi$(END_ECHO)
+endif
+ $(ECHO_NOTHING)cd $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR); \
+ rm -f $(FRAMEWORK_LIBRARY_FILE); \
+ rm -f $(SONAME_FRAMEWORK_FILE); \
+ rm -f $(VERSION_FRAMEWORK_LIBRARY_FILE); \
+ $(LN_S) `$(REL_PATH_SCRIPT) $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_CURRENT_LIBRARY_DIR_NAME)/$(FRAMEWORK_LIBRARY_FILE)` $(FRAMEWORK_LIBRARY_FILE); \
+ if test -r "$(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_CURRENT_LIBRARY_DIR_NAME)/$(SONAME_FRAMEWORK_FILE)"; then \
+ $(LN_S) `$(REL_PATH_SCRIPT) $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_CURRENT_LIBRARY_DIR_NAME)/$(SONAME_FRAMEWORK_FILE)` $(SONAME_FRAMEWORK_FILE); \
+ fi; \
+ $(LN_S) `$(REL_PATH_SCRIPT) $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_CURRENT_LIBRARY_DIR_NAME)/$(VERSION_FRAMEWORK_LIBRARY_FILE)` $(VERSION_FRAMEWORK_LIBRARY_FILE)$(END_ECHO)
+ifneq ($(CHOWN_TO),)
+ $(ECHO_CHOWNING)cd $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR); \
+ $(CHOWN) $(CHOWN_TO) $(FRAMEWORK_LIBRARY_FILE); \
+ if test -r "$(SONAME_FRAMEWORK_FILE)"; then \
+ $(CHOWN) $(CHOWN_TO) $(SONAME_FRAMEWORK_FILE); \
+ fi; \
+ $(CHOWN) $(CHOWN_TO) $(VERSION_FRAMEWORK_LIBRARY_FILE)$(END_ECHO)
+endif
+
+else
+
+# This code for Apple OSX
+
+internal-framework-install_:: $(FRAMEWORK_INSTALL_DIR)
+ $(ECHO_INSTALLING)rm -rf $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME); \
+ (cd $(GNUSTEP_BUILD_DIR); $(TAR) cfX - $(GNUSTEP_MAKEFILES)/tar-exclude-list $(FRAMEWORK_DIR_NAME)) | (cd $(FRAMEWORK_INSTALL_DIR); $(TAR) xf -)$(END_ECHO)
+ifneq ($(CHOWN_TO),)
+ $(ECHO_CHOWNING)$(CHOWN) -R $(CHOWN_TO) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME)$(END_ECHO)
+endif
+ifeq ($(strip),yes)
+ $(ECHO_STRIPPING)$(STRIP) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_FILE_NAME)$(END_ECHO)
+endif
+
+endif
+
+else # install DLL
+
+internal-framework-install_:: $(FRAMEWORK_INSTALL_DIR) \
+ $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR) \
+ $(GNUSTEP_HEADERS) \
+ $(DLL_INSTALLATION_DIR)
+ $(ECHO_INSTALLING)rm -rf $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME); \
+ (cd $(GNUSTEP_BUILD_DIR); $(TAR) cfX - $(GNUSTEP_MAKEFILES)/tar-exclude-list $(FRAMEWORK_DIR_NAME)) | (cd $(FRAMEWORK_INSTALL_DIR); $(TAR) xf -)$(END_ECHO)
+ifneq ($(CHOWN_TO),)
+ $(ECHO_CHOWNING)$(CHOWN) -R $(CHOWN_TO) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME)$(END_ECHO)
+endif
+ifeq ($(strip),yes)
+ $(ECHO_STRIPPING)$(STRIP) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_FILE_NAME)$(END_ECHO)
+endif
+ $(ECHO_INSTALLING_HEADERS)cd $(GNUSTEP_HEADERS); \
+ if [ "$(HEADER_FILES)" != "" ]; then \
+ if test -d "$(HEADER_FILES_INSTALL_DIR)"; then \
+ rm -Rf $(HEADER_FILES_INSTALL_DIR); \
+ fi; \
+ $(MKINSTALLDIRS) $(HEADER_FILES_INSTALL_DIR); \
+ cd $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_VERSION_DIR_NAME)/Headers ; \
+ $(TAR) cfX - $(GNUSTEP_MAKEFILES)/tar-exclude-list . | (cd $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR); \
+ $(TAR) xf - ); \
+ fi;$(END_ECHO)
+ifneq ($(CHOWN_TO),)
+ $(ECHO_CHOWNING)cd $(GNUSTEP_HEADERS); \
+ if [ "$(HEADER_FILES)" != "" ]; then \
+ $(CHOWN) -R $(CHOWN_TO) $(HEADER_FILES_INSTALL_DIR); \
+ fi$(END_ECHO)
+endif
+ $(ECHO_NOTHING)cd $(DLL_INSTALLATION_DIR); \
+ if test -r "$(FRAMEWORK_FILE_NAME)"; then \
+ rm -f $(FRAMEWORK_FILE_NAME); \
+ fi$(END_ECHO)
+ $(ECHO_NOTHING)$(INSTALL_PROGRAM) -m 0755 $(FRAMEWORK_FILE) \
+ $(DLL_INSTALLATION_DIR)/$(FRAMEWORK_FILE_NAME)$(END_ECHO)
+
+endif
+
+$(DLL_INSTALLATION_DIR)::
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+$(FRAMEWORK_DIR)/Resources::
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+$(FRAMEWORK_INSTALL_DIR)::
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+$(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR) :
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+$(GNUSTEP_HEADERS) :
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+# NB: We use 'rm -f' to remove the symlinks to insure
+# that we do not remove customized real directories.
+internal-framework-uninstall_::
+ $(ECHO_UNINSTALLING)if [ "$(HEADER_FILES)" != "" ]; then \
+ for file in $(HEADER_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ rm -rf $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)/$$file ; \
+ fi; \
+ done; \
+ fi; \
+ if [ -n "$(HEADER_FILES)" ]; then \
+ rm -f $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR) ; \
+ fi; \
+ rm -rf $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME) ; \
+ cd $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR); \
+ rm -f $(FRAMEWORK_LIBRARY_FILE); \
+ rm -f $(SONAME_FRAMEWORK_FILE); \
+ rm -f $(VERSION_FRAMEWORK_LIBRARY_FILE); \
+ $(END_ECHO)
+
+#
+# Cleaning targets
+#
+internal-framework-clean::
+ $(ECHO_NOTHING)rm -rf $(GNUSTEP_OBJ_DIR) \
+ $(PSWRAP_C_FILES) $(PSWRAP_H_FILES) \
+ $(FRAMEWORK_DIR) $(DERIVED_SOURCES_DIR)$(END_ECHO)
+
+internal-framework-distclean::
+ $(ECHO_NOTHING)cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj \
+ shared_profile_obj static_debug_obj static_profile_obj \
+ shared_profile_debug_obj static_profile_debug_obj$(END_ECHO)
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
--- /dev/null
+#
+# Instance/gswapp.make
+#
+# Instance Makefile rules to build GNUstep web based applications.
+#
+# Copyright (C) 1997-2004 Free Software Foundation, Inc.
+#
+# Author: Manuel Guesdon <mguesdon@sbuilders.com>,
+# Nicola Pero <n.pero@mi.flashnet.it>
+# Based on application.make by Ovidiu Predescu <ovidiu@net-community.com>
+# Based on gswapp.make by Helge Hess, MDlink online service center GmbH.
+# Based on the original version by Scott Christley.
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+# FIXME/TODO - this file has not been updated to use
+# Instance/Shared/bundle.make because it is linking resources instead of
+# copying them.
+
+
+# The name of the application is in the GSWAPP_NAME variable.
+# The list of languages the app is localized in are in xxx_LANGUAGES <==
+# The list of application resource file are in xxx_RESOURCE_FILES
+# The list of localized application resource file are in
+# xxx_LOCALIZED_RESOURCE_FILES <==
+# The list of application resource directories are in xxx_RESOURCE_DIRS
+# The list of application web server resource directories are in
+# xxx_WEBSERVER_RESOURCE_DIRS <==
+# The list of localized application web server resource directories are in
+# xxx_LOCALIZED_WEBSERVER_RESOURCE_DIRS
+# where xxx is the application name <==
+
+# Determine the application directory extension
+ifeq ($(profile), yes)
+ GSWAPP_EXTENSION = profile
+else
+ ifeq ($(debug), yes)
+ GSWAPP_EXTENSION = debug
+ else
+ GSWAPP_EXTENSION = gswa
+ endif
+endif
+
+GNUSTEP_GSWAPPS = $(GNUSTEP_INSTALLATION_DIR)/GSWApps
+
+.PHONY: internal-gswapp-all_ \
+ internal-gswapp-install_ \
+ internal-gswapp-uninstall_ \
+ internal-gswapp-copy_into_dir
+
+#
+# Determine where to install. By default, install into GNUSTEP_GSWAPPS.
+#
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ GSWAPP_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifeq ($(GSWAPP_INSTALL_DIR),)
+ GSWAPP_INSTALL_DIR = $(GNUSTEP_GSWAPPS)
+endif
+
+# Libraries that go before the WO libraries
+ALL_GSW_LIBS = \
+ $(shell $(WHICH_LIB_SCRIPT) \
+ $(ALL_LIB_DIRS) \
+ $(ADDITIONAL_GSW_LIBS) $(AUXILIARY_GSW_LIBS) $(GSW_LIBS) \
+ $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) \
+ $(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) \
+ $(OBJC_LIBS) $(SYSTEM_LIBS) $(TARGET_SYSTEM_LIBS) \
+ debug=$(debug) profile=$(profile) shared=$(shared) \
+ libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
+
+GSWAPP_DIR_NAME = $(GNUSTEP_INSTANCE:=.$(GSWAPP_EXTENSION))
+GSWAPP_DIR = $(GNUSTEP_BUILD_DIR)/$(GSWAPP_DIR_NAME)
+
+#
+# Now include the standard resource-bundle routines from Shared/bundle.make
+#
+
+ifneq ($(FOUNDATION_LIB), apple)
+ # GNUstep bundle
+ GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH = $(GSWAPP_DIR)/Resources
+ GSWAPP_INFO_PLIST_FILE = $(GSWAPP_DIR)/Resources/Info-gnustep.plist
+else
+ # OSX bundle
+ GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH = $(GSWAPP_DIR)/Contents/Resources
+ GSWAPP_INFO_PLIST_FILE = $(GSWAPP_DIR)/Contents/Info.plist
+endif
+GNUSTEP_SHARED_BUNDLE_MAIN_PATH = $(GSWAPP_DIR_NAME)
+GNUSTEP_SHARED_BUNDLE_INSTALL_DIR = $(GSWAPP_INSTALL_DIR)
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/bundle.make
+
+ifneq ($(FOUNDATION_LIB), apple)
+GSWAPP_FILE_NAME = $(GSWAPP_DIR_NAME)/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE)$(EXEEXT)
+else
+GSWAPP_FILE_NAME = $(GSWAPP_DIR_NAME)/Contents/MacOS/$(GNUSTEP_INSTANCE)$(EXEEXT)
+endif
+
+GSWAPP_FILE = $(GNUSTEP_BUILD_DIR)/$(GSWAPP_FILE_NAME)
+
+#
+# Internal targets
+#
+
+$(GSWAPP_FILE): $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(LD) $(ALL_LDFLAGS) -o $(LDOUT)$@ $(OBJ_FILES_TO_LINK)\
+ $(ALL_GSW_LIBS)$(END_ECHO)
+ifneq ($(FOUNDATION_LIB), apple)
+ $(ECHO_NOTHING)$(TRANSFORM_PATHS_SCRIPT) $(subst -L,,$(ALL_LIB_DIRS)) \
+ >$(GSWAPP_DIR)/$(GNUSTEP_TARGET_LDIR)/library_paths.openapp$(END_ECHO)
+endif
+
+#
+# Compilation targets
+#
+ifeq ($(FOUNDATION_LIB), apple)
+internal-gswapp-all_:: \
+ $(GNUSTEP_OBJ_DIR) \
+ $(GSWAPP_DIR)/Contents/MacOS \
+ $(GSWAPP_FILE) \
+ shared-instance-bundle-all \
+ $(GSWAPP_INFO_PLIST_FILE)
+
+$(GSWAPP_DIR)/Contents/MacOS:
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+else
+
+internal-gswapp-all_:: $(GNUSTEP_OBJ_DIR) \
+ $(GSWAPP_DIR)/$(GNUSTEP_TARGET_LDIR) \
+ $(GSWAPP_FILE) \
+ $(GSWAPP_DIR)/Resources \
+ $(GSWAPP_INFO_PLIST_FILE) \
+ shared-instance-bundle-all
+
+$(GSWAPP_DIR)/$(GNUSTEP_TARGET_LDIR):
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+endif
+
+PRINCIPAL_CLASS = $(strip $($(GNUSTEP_INSTANCE)_PRINCIPAL_CLASS))
+
+ifeq ($(PRINCIPAL_CLASS),)
+ PRINCIPAL_CLASS = $(GNUSTEP_INSTANCE)
+endif
+
+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):
+ $(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
+ echo " NSExecutable = \"$(GNUSTEP_INSTANCE)\";"; \
+ echo " NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
+ if [ "$(HAS_GSWCOMPONENTS)" != "" ]; then \
+ echo " HasGSWComponents = \"$(HAS_GSWCOMPONENTS)\";"; \
+ fi; \
+ echo " NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
+ if [ -r "$(GNUSTEP_INSTANCE)Info.plist" ]; then \
+ cat $(GNUSTEP_INSTANCE)Info.plist; \
+ fi; \
+ if [ "$(GSWAPP_INFO_PLIST)" != "" ]; then \
+ cat $(GSWAPP_INFO_PLIST); \
+ fi; \
+ echo "}") >$@$(END_ECHO)
+
+internal-gswapp-copy_into_dir:: shared-instance-bundle-copy_into_dir
+
+# install/uninstall targets
+
+$(GSWAPP_INSTALL_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+internal-gswapp-install_:: shared-instance-bundle-install
+ifeq ($(strip),yes)
+ $(ECHO_STRIPPING)$(STRIP) $(GSWAPP_INSTALL_DIR)/$(GSWAPP_FILE_NAME)$(END_ECHO)
+endif
+
+internal-gswapp-uninstall_:: shared-instance-bundle-uninstall
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
--- /dev/null
+#
+# Instance/gswbundle.make
+#
+# Instance Makefile rules to build GNUstep web bundles.
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Manuel Guesdon <mguesdon@sbuilders.com>
+# Based on WOBundle.make by Helge Hess, MDlink online service center GmbH.
+# Based on bundle.make by Ovidiu Predescu <ovidiu@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+# FIXME - this file has not been updated to use Shared/bundle.make
+# because it is using symlinks rather than copying resources.
+
+COMPONENTS = $($(GNUSTEP_INSTANCE)_COMPONENTS)
+LANGUAGES = $($(GNUSTEP_INSTANCE)_LANGUAGES)
+WEBSERVER_RESOURCE_FILES = $($(GNUSTEP_INSTANCE)_WEBSERVER_RESOURCE_FILES)
+LOCALIZED_WEBSERVER_RESOURCE_FILES = $($(GNUSTEP_INSTANCE)_LOCALIZED_WEBSERVER_RESOURCE_FILES)
+WEBSERVER_RESOURCE_DIRS = $($(GNUSTEP_INSTANCE)_WEBSERVER_RESOURCE_DIRS)
+LOCALIZED_RESOURCE_FILES = $($(GNUSTEP_INSTANCE)_LOCALIZED_RESOURCE_FILES)
+RESOURCE_FILES = $($(GNUSTEP_INSTANCE)_RESOURCE_FILES)
+RESOURCE_DIRS = $($(GNUSTEP_INSTANCE)_RESOURCE_DIRS)
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/headers.make
+
+ifeq ($(strip $(GSWBUNDLE_EXTENSION)),)
+GSWBUNDLE_EXTENSION = .gswbundle
+endif
+
+GSWBUNDLE_LD = $(BUNDLE_LD)
+GSWBUNDLE_LDFLAGS = $(BUNDLE_LDFLAGS)
+
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ GSWBUNDLE_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifeq ($(GSWBUNDLE_INSTALL_DIR),)
+GSWBUNDLE_INSTALL_DIR = $(GNUSTEP_INSTALLATION_DIR)/Library/Libraries
+endif
+# The name of the bundle is in the BUNDLE_NAME variable.
+# The list of languages the bundle is localized in are in xxx_LANGUAGES
+# The list of bundle resource file are in xxx_RESOURCE_FILES
+# The list of localized bundle resource file are in xxx_LOCALIZED_RESOURCE_FILES
+# The list of bundle resource directories are in xxx_RESOURCE_DIRS
+# The name of the principal class is xxx_PRINCIPAL_CLASS
+# The header files are in xxx_HEADER_FILES
+# The directory where the header files are located is xxx_HEADER_FILES_DIR
+# The directory where to install the header files inside the library
+# installation directory is xxx_HEADER_FILES_INSTALL_DIR
+# where xxx is the bundle name
+# xxx_WEBSERVER_RESOURCE_DIRS <==
+# The list of localized application web server resource directories are in
+# xxx_LOCALIZED_WEBSERVER_RESOURCE_DIRS
+# where xxx is the application name <==
+
+.PHONY: internal-gswbundle-all_ \
+ internal-gswbundle-install_ \
+ internal-gswbundle-uninstall_ \
+ build-bundle-dir \
+ build-bundle \
+ gswbundle-components \
+ gswbundle-resource-files \
+ gswbundle-localized-resource-files \
+ gswbundle-webresource-dir \
+ gswbundle-webresource-files \
+ gswbundle-localized-webresource-files
+
+# On Solaris we don't need to specifies the libraries the bundle needs.
+# How about the rest of the systems? ALL_BUNDLE_LIBS is temporary empty.
+#ALL_GSWBUNDLE_LIBS = $(ADDITIONAL_GSW_LIBS) $(AUXILIARY_GSW_LIBS) $(GSW_LIBS) \
+ $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) \
+ $(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) \
+ $(OBJC_LIBS) $(SYSTEM_LIBS) $(TARGET_SYSTEM_LIBS)
+#ALL_GSWBUNDLE_LIBS =
+#ALL_GSWBUNDLE_LIBS = \
+ $(shell $(WHICH_LIB_SCRIPT) $(ALL_LIB_DIRS) $(ALL_GSWBUNDLE_LIBS) \
+ debug=$(debug) profile=$(profile) shared=$(shared) libext=$(LIBEXT) \
+ shared_libext=$(SHARED_LIBEXT))
+
+internal-gswbundle-all_:: $(GNUSTEP_OBJ_DIR) \
+ build-bundle-dir \
+ build-bundle
+
+GSWBUNDLE_DIR_NAME = $(GNUSTEP_INSTANCE:=$(GSWBUNDLE_EXTENSION))
+GSWBUNDLE_DIR = $(GNUSTEP_BUILD_DIR)/$(GSWBUNDLE_DIR_NAME)
+GSWBUNDLE_FILE_NAME = \
+ $(GSWBUNDLE_DIR_NAME)/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE)
+GSWBUNDLE_FILE = $(GNUSTEP_BUILD_DIR)/$(GSWBUNDLE_FILE_NAME)
+GSWBUNDLE_RESOURCE_DIRS = $(foreach d, $(RESOURCE_DIRS), $(GSWBUNDLE_DIR)/Resources/$(d))
+GSWBUNDLE_WEBSERVER_RESOURCE_DIRS = $(foreach d, $(WEBSERVER_RESOURCE_DIRS), $(GSWBUNDLE_DIR)/Resources/WebServer/$(d))
+
+ifeq ($(strip $(LANGUAGES)),)
+ LANGUAGES="English"
+endif
+
+
+build-bundle-dir:: $(GSWBUNDLE_DIR)/Resources \
+ $(GSWBUNDLE_DIR)/$(GNUSTEP_TARGET_LDIR) \
+ $(GSWBUNDLE_RESOURCE_DIRS)
+
+$(GSWBUNDLE_DIR)/$(GNUSTEP_TARGET_LDIR):
+ $(ECHO_CREATING)$(MKDIRS) $(GSWBUNDLE_DIR)/$(GNUSTEP_TARGET_LDIR)$(END_ECHO)
+
+$(GSWBUNDLE_RESOURCE_DIRS):
+ $(ECHO_CREATING)$(MKDIRS) $(GSWBUNDLE_RESOURCE_DIRS)$(END_ECHO)
+
+build-bundle:: $(GSWBUNDLE_FILE) \
+ gswbundle-components \
+ gswbundle-resource-files \
+ gswbundle-localized-resource-files \
+ gswbundle-localized-webresource-files \
+ gswbundle-webresource-files
+
+
+$(GSWBUNDLE_FILE) : $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(GSWBUNDLE_LD) $(GSWBUNDLE_LDFLAGS) \
+ $(ALL_LDFLAGS) -o $(LDOUT)$(GSWBUNDLE_FILE) \
+ $(OBJ_FILES_TO_LINK) \
+ $(ALL_GSWBUNDLE_LIBS)$(END_ECHO)
+
+gswbundle-components :: $(GSWBUNDLE_DIR)
+ifneq ($(strip $(COMPONENTS)),)
+ @(echo "Linking components into the bundle wrapper..."; \
+ cd $(GSWBUNDLE_DIR)/Resources; \
+ for component in $(COMPONENTS); do \
+ if [ -d ../../$$component ]; then \
+ $(LN_S) -f ../../$$component ./;\
+ fi; \
+ done; \
+ echo "Linking localized components into the bundle wrapper..."; \
+ for l in $(LANGUAGES); do \
+ if [ -d ../../$$l.lproj ]; then \
+ $(MKDIRS) $$l.lproj; \
+ cd $$l.lproj; \
+ for f in $(COMPONENTS); do \
+ if [ -d ../../../$$l.lproj/$$f ]; then \
+ $(LN_S) -f ../../../$$l.lproj/$$f .;\
+ fi;\
+ done;\
+ cd ..; \
+ fi;\
+ done)
+endif
+
+gswbundle-resource-files:: $(GSWBUNDLE_DIR)/bundle-info.plist \
+ $(GSWBUNDLE_DIR)/Resources/Info-gnustep.plist
+ifneq ($(strip $(RESOURCE_FILES)),)
+ @(echo "Linking resources into the bundle wrapper..."; \
+ cd $(GSWBUNDLE_DIR)/Resources/; \
+ for ff in $(RESOURCE_FILES); do \
+ $(LN_S) -f ../../$$ff .;\
+ done)
+endif
+
+gswbundle-localized-resource-files:: $(GSWBUNDLE_DIR)/Resources/Info-gnustep.plist
+ifneq ($(strip $(LOCALIZED_RESOURCE_FILES)),)
+ @(echo "Linking localized resources into the bundle wrapper..."; \
+ cd $(GSWBUNDLE_DIR)/Resources; \
+ for l in $(LANGUAGES); do \
+ if [ -d ../../$$l.lproj ]; then \
+ $(MKDIRS) $$l.lproj; \
+ cd $$l.lproj; \
+ for f in $(LOCALIZED_RESOURCE_FILES); do \
+ if [ -f ../../../$$l.lproj/$$f ]; then \
+ $(LN_S) -f ../../../$$l.lproj/$$f .;\
+ fi;\
+ done;\
+ cd ..;\
+ else\
+ echo "Warning - $$l.lproj not found - ignoring";\
+ fi;\
+ done)
+endif
+
+gswbundle-webresource-dir::
+ $(ECHO_CREATING)$(MKDIRS) $(GSWBUNDLE_WEBSERVER_RESOURCE_DIRS)$(END_ECHO)
+
+gswbundle-webresource-files:: $(GSWBUNDLE_DIR)/Resources/WebServer \
+ gswbundle-webresource-dir
+ifneq ($(strip $(WEBSERVER_RESOURCE_FILES)),)
+ @(echo "Linking webserver resources into the application wrapper..."; \
+ cd $(GSWBUNDLE_DIR)/Resources/WebServer; \
+ for ff in $(WEBSERVER_RESOURCE_FILES); do \
+ $(LN_S) -f ../../WebServerResources/$$ff .;\
+ done)
+endif
+
+gswbundle-localized-webresource-files:: $(GSWBUNDLE_DIR)/Resources/WebServer \
+ gswbundle-webresource-dir
+ifneq ($(strip $(LOCALIZED_WEBSERVER_RESOURCE_FILES)),)
+ @(echo "Linking localized web resources into the application wrapper..."; \
+ cd $(GSWBUNDLE_DIR)/Resources/WebServer; \
+ for l in $(LANGUAGES); do \
+ if [ -d ../../WebServerResources/$$l.lproj ]; then \
+ $(MKDIRS) $$l.lproj; \
+ cd $$l.lproj; \
+ for f in $(LOCALIZED_WEBSERVER_RESOURCE_FILES); do \
+ if [ -f ../../../WebServerResources/$$l.lproj/$$f ]; then \
+ if [ ! -r $$f ]; then \
+ $(LN_S) ../../../WebServerResources/$$l.lproj/$$f $$f;\
+ fi;\
+ fi;\
+ done;\
+ cd ..; \
+ else \
+ echo "Warning - WebServerResources/$$l.lproj not found - ignoring";\
+ fi;\
+ done)
+endif
+
+PRINCIPAL_CLASS = $(strip $($(GNUSTEP_INSTANCE)_PRINCIPAL_CLASS))
+
+ifeq ($(PRINCIPAL_CLASS),)
+ PRINCIPAL_CLASS = $(GNUSTEP_INSTANCE)
+endif
+
+$(GSWBUNDLE_DIR)/bundle-info.plist: $(GSWBUNDLE_DIR)
+ @(cd $(GSWBUNDLE_DIR); $(LN_S) -f ../bundle-info.plist .)
+
+HAS_GSWCOMPONENTS = $($(GNUSTEP_INSTANCE)_HAS_GSWCOMPONENTS)
+
+$(GSWBUNDLE_DIR)/Resources/Info-gnustep.plist: $(GSWBUNDLE_DIR)/Resources
+ $(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
+ echo " NSExecutable = \"$(GNUSTEP_INSTANCE)\";"; \
+ echo " NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
+ if [ "$(HAS_GSWCOMPONENTS)" != "" ]; then \
+ echo " HasGSWComponents = \"$(HAS_GSWCOMPONENTS)\";"; \
+ fi; \
+ echo "}") >$@$(END_ECHO)
+
+$(GSWBUNDLE_DIR)/Resources:
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+$(GSWBUNDLE_DIR)/Resources/WebServer:
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+internal-gswbundle-install_:: $(GSWBUNDLE_INSTALL_DIR) shared-instance-headers-install
+ $(ECHO_INSTALLING)rm -rf $(GSWBUNDLE_INSTALL_DIR)/$(GSWBUNDLE_DIR_NAME); \
+ (cd $(GNUSTEP_BUILD_DIR); $(TAR) chX - $(GNUSTEP_MAKEFILES)/tar-exclude-list $(GSWBUNDLE_DIR_NAME)) | (cd $(GSWBUNDLE_INSTALL_DIR); $(TAR) xf -)$(END_ECHO)
+ifneq ($(CHOWN_TO),)
+ $(ECHO_CHOWNING)$(CHOWN) -R $(CHOWN_TO) $(GSWBUNDLE_INSTALL_DIR)/$(GSWBUNDLE_DIR_NAME)$(END_ECHO)
+endif
+ifeq ($(strip),yes)
+ $(ECHO_STRIPPING)$(STRIP) $(GSWBUNDLE_INSTALL_DIR)/$(GSWBUNDLE_FILE_NAME)$(END_ECHO)
+endif
+
+$(GSWBUNDLE_INSTALL_DIR)::
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+internal-gswbundle-uninstall_:: shared-instance-headers-uninstall
+ $(ECHO_UNINSTALLING)rm -rf $(GSWBUNDLE_INSTALL_DIR)/$(GSWBUNDLE_DIR_NAME)$(END_ECHO)
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
--- /dev/null
+#
+# Instance/java-tool.make
+#
+# Instance makefile rules to build Java command-line tools.
+#
+# Copyright (C) 2001 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Why using Java if you can use Objective-C ...
+# Anyway if you really want it, here we go.
+
+#
+# The name of the tools is in the JAVA_TOOL_NAME variable.
+# The main class (the one implementing main) is in the
+# xxx_PRINCIPAL_CLASS variable.
+#
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+.PHONY: internal-java_tool-all_ \
+ internal-java_tool-clean \
+ internal-java_tool-distclean \
+ internal-java_tool-install_ \
+ internal-java_tool-uninstall_ \
+ _FORCE
+
+# This is the directory where the tools get installed. If you don't specify a
+# directory they will get installed in $(GNUSTEP_LOCAL_ROOT)/Tools/.
+ifeq ($(JAVA_TOOL_INSTALLATION_DIR),)
+JAVA_TOOL_INSTALLATION_DIR = $(GNUSTEP_TOOLS)
+endif
+
+GNUSTEP_SHARED_JAVA_INSTALLATION_DIR = $(JAVA_TOOL_INSTALLATION_DIR)/Java
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/java.make
+
+internal-java_tool-all_:: shared-instance-java-all
+
+internal-java_tool-install_:: shared-instance-java-install \
+ $(JAVA_TOOL_INSTALLATION_DIR)/$(GNUSTEP_INSTANCE)
+
+PRINCIPAL_CLASS = $(strip $($(GNUSTEP_INSTANCE)_PRINCIPAL_CLASS))
+
+ifeq ($(PRINCIPAL_CLASS),)
+ $(warning You must specify PRINCIPAL_CLASS)
+ # But then, we are good, and try guessing
+ PRINCIPAL_CLASS = $(word 1 $(JAVA_OBJ_FILES))
+endif
+
+# Remove an eventual extension (.class or .java) from PRINCIPAL_CLASS;
+# only take the first word of it
+NORMALIZED_PRINCIPAL_CLASS = $(basename $(word 1 $(PRINCIPAL_CLASS)))
+
+# Escape '/' so it can be passes to sed
+ESCAPED_PRINCIPAL_CLASS = $(subst /,\/,$(PRINCIPAL_CLASS))
+
+# Always rebuild this because if the PRINCIPAL_CLASS changes...
+$(JAVA_TOOL_INSTALLATION_DIR)/$(GNUSTEP_INSTANCE): _FORCE
+ $(ECHO_NOTHING)sed -e 's/JAVA_OBJ_FILE/$(ESCAPED_PRINCIPAL_CLASS)/g' \
+ $(GNUSTEP_MAKEFILES)/java-executable.template \
+ > $(JAVA_TOOL_INSTALLATION_DIR)/$(GNUSTEP_INSTANCE); \
+ chmod a+x $(JAVA_TOOL_INSTALLATION_DIR)/$(GNUSTEP_INSTANCE)$(END_ECHO)
+ifneq ($(CHOWN_TO),)
+ $(ECHO_CHOWNING)$(CHOWN) $(CHOWN_TO) \
+ $(JAVA_TOOL_INSTALLATION_DIR)/$(GNUSTEP_INSTANCE)$(END_ECHO)
+endif
+
+_FORCE::
+
+
+internal-java_tool-uninstall_:: shared-instance-java-uninstall
+ $(ECHO_UNINSTALLING)rm -f $(JAVA_TOOL_INSTALLATION_DIR)/$(GNUSTEP_INSTANCE)$(END_ECHO)
+
+internal-java_tool-clean:: shared-instance-java-clean
+
+internal-java_tool-distclean::
--- /dev/null
+#
+# Instance/java.make
+#
+# Instance Makefile rules to build java-based (not necessarily
+# GNUstep) packages.
+#
+# Copyright (C) 2000 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+#
+# You can compile any set of java classes, it does not need to be strictly
+# a single package in the java sense. Please put a single class in each
+# source file. Multiple classes in a single source file are not supported.
+#
+# The name of the Java package is in the JAVA_PACKAGE_NAME variable.
+# The java files to be compiled are in the xxx_JAVA_FILES variable;
+# they should be specified in full relative path, such as:
+# test_JAVA_FILES = gnu/gnustep/base/NSArray.java
+#
+# The relative path is important because things will be installed
+# in $(JAVA_INSTALL_DIR)/{relative_path}; for example,
+# the file above would be installed in
+# ${JAVA_INSTALL_DIR)/gnu/gnustep/base/NSArray.class
+#
+# JAVA_INSTALL_DIR contains the directory where you want to
+# install your classes - it defaults to $(GNUSTEP_JAVA), which is
+# $(GNUSTEP_LOCAL_ROOT)/Library/Libraries/Java/.
+#
+# If you have all your files in a directory but want them to be
+# installed with a different relative path, you can simply redefine
+# JAVA_INSTALL_DIR, as in the following example -
+# JAVA_INSTALL_DIR = $(GNUSTEP_JAVA)/gnu/gnustep/base/
+#
+# If you have java sources to be processed throught JAVAH to create
+# JNI headers, specify the files in xxx_JAVA_JNI_FILES. The headers
+# will be placed together with the source file (example: the header of
+# gnu/gnustep/base/NSObject.java will be created as
+# gnu/gnustep/base/NSObject.h) These headers are not installed.
+#
+# If you have properties file to install, put them in the
+# xxx_JAVA_PROPERTIES_FILES
+
+.PHONY: internal-java_package-all_ \
+ internal-java_package-clean \
+ internal-java_package-distclean \
+ internal-java_package-install_ \
+ internal-java_package-uninstall_
+
+#
+# For backwards compatibility ... will be removed!
+#
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ JAVA_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifneq ($(JAVA_INSTALLATION_DIR),)
+JAVA_INSTALL_DIR = $(JAVA_INSTALLATION_DIR)
+endif
+
+# This is the directory where the java classses get
+# installed. Normally this is /usr/GNUstep/Local/Library/Libraries/Java/
+ifeq ($(JAVA_INSTALL_DIR),)
+JAVA_INSTALL_DIR = $(GNUSTEP_JAVA)
+endif
+
+GNUSTEP_SHARED_JAVA_INSTALLATION_DIR = $(JAVA_INSTALL_DIR)
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/java.make
+
+
+internal-java_package-all_:: shared-instance-java-all
+
+internal-java_package-install_:: shared-instance-java-install
+
+internal-java_package-clean:: shared-instance-java-clean
+
+internal-java_package-distclean::
+
+internal-java_package-uninstall_:: shared-instance-java-uninstall
+
--- /dev/null
+ # -*-makefile-*-
+# Instance/library.make
+#
+# Instance Makefile rules to build GNUstep-based libraries.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Ovidiu Predescu <ovidiu@net-community.com>
+# Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/headers.make
+
+#
+# The name of the library (including the 'lib' prefix) is
+# in the LIBRARY_NAME variable.
+# The Objective-C files that gets included in the library are in xxx_OBJC_FILES
+# The C files are in xxx_C_FILES
+# The pswrap files are in xxx_PSWRAP_FILES
+# The header files are in xxx_HEADER_FILES
+# The directory where the header files are located is xxx_HEADER_FILES_DIR
+# The directory where to install the header files inside the library
+# installation directory is xxx_HEADER_FILES_INSTALL_DIR
+# The DLL export file is in xxx_DLL_DEF
+#
+# Where xxx is the name of the library
+#
+
+.PHONY: internal-library-all_ \
+ internal-library-install_ \
+ internal-library-uninstall_ \
+ internal-install-lib \
+ internal-install-dirs
+
+# This is the directory where the libs get installed. This should *not*
+# include the target arch, os directory or library_combo.
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ LIBRARY_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifeq ($(LIBRARY_INSTALL_DIR),)
+ LIBRARY_INSTALL_DIR = $(GNUSTEP_LIBRARIES)
+endif
+
+# And this is used internally - it is the final directory where we put the
+# library - it includes target arch, os dir and library_combo - this variable
+# is PRIVATE to gnustep-make
+#
+# Do not set this variable if it is already set ... this allows other
+# makefiles (Instance/clibrary.make) to use the code in this file with
+# a different FINAL_LIBRARY_INSTALL_DIR !
+#
+ifeq ($(FINAL_LIBRARY_INSTALL_DIR),)
+ FINAL_LIBRARY_INSTALL_DIR = $(LIBRARY_INSTALL_DIR)/$(GNUSTEP_TARGET_LDIR)
+endif
+
+# Set VERSION from xxx_VERSION
+ifneq ($($(GNUSTEP_INSTANCE)_VERSION),)
+ VERSION = $($(GNUSTEP_INSTANCE)_VERSION)
+endif
+
+ifeq ($(VERSION),)
+ # Check if we can guess VERSION from one of the other version variables
+ ifneq ($($(GNUSTEP_INSTANCE)_INTERFACE_VERSION),)
+ VERSION = $($(GNUSTEP_INSTANCE)_INTERFACE_VERSION).0
+ else
+ # For backwards compatibility we also check xxx_SOVERSION, which
+ # is the old name for xxx_INTERFACE_VERSION
+ ifneq ($($(GNUSTEP_INSTANCE)_SOVERSION),)
+ VERSION = $($(GNUSTEP_INSTANCE)_SOVERSION).0
+ else
+ # No luck with those. Use the default.
+ VERSION = 0.0.1
+ endif
+ endif
+endif
+
+#
+# Manage the case that LIBRARY_NAME starts with 'lib', and the case
+# that it doesn't start with 'lib'. In both cases, we need to create
+# a .so file whose name starts with 'lib'.
+#
+ifneq ($(filter lib%,$(GNUSTEP_INSTANCE)),)
+ LIBRARY_NAME_WITH_LIB = $(GNUSTEP_INSTANCE)
+else
+ LIBRARY_NAME_WITH_LIB = lib$(GNUSTEP_INSTANCE)
+endif
+
+INTERNAL_LIBRARIES_DEPEND_UPON = \
+ $(shell $(WHICH_LIB_SCRIPT) \
+ $(ALL_LIB_DIRS) \
+ $(LIBRARIES_DEPEND_UPON) \
+ debug=$(debug) profile=$(profile) shared=$(shared) \
+ libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
+
+ifeq ($(shared), yes)
+
+ifneq ($(BUILD_DLL),yes)
+
+LIBRARY_FILE = $(LIBRARY_NAME_WITH_LIB)$(LIBRARY_NAME_SUFFIX)$(SHARED_LIBEXT)
+LIBRARY_FILE_EXT = $(SHARED_LIBEXT)
+VERSION_LIBRARY_FILE = $(LIBRARY_FILE).$(VERSION)
+
+# Allow the user GNUmakefile to define xxx_INTERFACE_VERSION to
+# replace the default INTERFACE_VERSION for this library.
+
+# Effect of the value of xxx_INTERFACE_VERSION -
+
+# suppose your library is libgnustep-base.1.0.0 - if you do nothing,
+# INTERFACE_VERSION=1, and we prepare the symlink
+# libgnustep-base.so.1 --> libgnustep-base.so.1.0.0 and tell the
+# linker that it should remember that any application compiled
+# against this library need to use version .1 of the library. So at
+# runtime, the dynamical linker will search for libgnustep-base.so.1.
+# This is important if you install multiple versions of the same
+# library. The default is that if you install a new version of a
+# library with the same major number, the new version replaces the
+# old one, and all applications which were using the old one now use
+# the new one. If you install a library with a different major
+# number, the old apps will still use the old library, while newly
+# compiled apps will use the new one.
+
+# If you redefine xxx_INTERFACE_VERSION to be for example 1.0, then
+# we prepare the symlink libgnustep-base.so.1.0 -->
+# libgnustep-base.so.1.0.0 instead, and tell the linker to remember
+# 1.0. So at runtime, the dynamic linker will search for
+# libgnustep-base.so.1.0. The effect of changing
+# xxx_INTERFACE_VERSION to major.minor as in this example is that if
+# you install a new version with the same major.minor version, that
+# replaces the old one also for old applications, but if you install
+# a new library with the same major version but a *different* minor
+# version, that is used in new apps, but old apps still use the old
+# version.
+
+ifeq ($($(GNUSTEP_INSTANCE)_INTERFACE_VERSION),)
+
+ # Backwards compatibility: xxx_SOVERSION was the old name for
+ # xxx_INTERFACE_VERSION. There was no support for setting SOVERSION
+ # (without xxx_), like there is no support for setting
+ # INTERFACE_VERSION (without xxx_) now.
+
+ # TODO: Remove xxx_SOVERSION at some point in the next few
+ # years. NB: Likely the only user of this is Helge Hess, so once he's
+ # upgraded, let's remove the backwards compatibility code. :-)
+ ifneq ($($(GNUSTEP_INSTANCE)_SOVERSION),)
+ INTERFACE_VERSION = $($(GNUSTEP_INSTANCE)_SOVERSION)
+ else
+
+ # This is the current code - by default, if VERSION is
+ # 1.0.0, INTERFACE_VERSION is 1
+ INTERFACE_VERSION = $(word 1,$(subst ., ,$(VERSION)))
+
+ endif
+else
+ INTERFACE_VERSION = $($(GNUSTEP_INSTANCE)_INTERFACE_VERSION)
+endif
+SONAME_LIBRARY_FILE = $(LIBRARY_FILE).$(INTERFACE_VERSION)
+
+else # BUILD_DLL
+
+LIBRARY_FILE = $(LIBRARY_NAME_WITH_LIB)$(LIBRARY_NAME_SUFFIX)$(DLL_LIBEXT)
+LIBRARY_FILE_EXT = $(DLL_LIBEXT)
+DLL_NAME = $(shell echo $(LIBRARY_FILE)|cut -b 4-)
+DLL_EXP_LIB = $(LIBRARY_NAME_WITH_LIB)$(LIBRARY_NAME_SUFFIX)$(SHARED_LIBEXT)
+DLL_EXP_DEF = $(LIBRARY_NAME_WITH_LIB)$(LIBRARY_NAME_SUFFIX).def
+
+ifeq ($(DLL_INSTALLATION_DIR),)
+ DLL_INSTALLATION_DIR = $(GNUSTEP_TOOLS)/$(GNUSTEP_TARGET_LDIR)
+endif
+
+endif # BUILD_DLL
+
+else # shared
+
+LIBRARY_FILE = $(LIBRARY_NAME_WITH_LIB)$(LIBRARY_NAME_SUFFIX)$(LIBEXT)
+LIBRARY_FILE_EXT = $(LIBEXT)
+VERSION_LIBRARY_FILE = $(LIBRARY_FILE)
+SONAME_LIBRARY_FILE = $(LIBRARY_FILE)
+
+endif # shared
+
+#
+# Now prepare the variables which are used by target-dependent commands
+# defined in target.make
+#
+LIB_LINK_OBJ_DIR = $(GNUSTEP_OBJ_DIR)
+LIB_LINK_VERSION_FILE = $(VERSION_LIBRARY_FILE)
+LIB_LINK_SONAME_FILE = $(SONAME_LIBRARY_FILE)
+LIB_LINK_FILE = $(LIBRARY_FILE)
+LIB_LINK_INSTALL_NAME = $(SONAME_LIBRARY_FILE)
+LIB_LINK_INSTALL_DIR = $(FINAL_LIBRARY_INSTALL_DIR)
+
+#
+# Internal targets
+#
+
+#
+# Compilation targets
+#
+
+ifeq ($(BUILD_DLL),yes)
+
+DLL_DEF = $($(GNUSTEP_INSTANCE)_DLL_DEF)
+DLL_DEF_FILES = $(SUBPROJECT_DEF_FILES) $(DLL_DEF)
+
+ifneq ($(strip $(DLL_DEF_FILES)),)
+DLL_DEF_INP = $(DERIVED_SOURCES_DIR)/$(LIBRARY_NAME_WITH_LIB).inp
+
+$(DLL_DEF_INP): $(DLL_DEF_FILES)
+ cat $(DLL_DEF_FILES) > $@
+
+DLL_DEF_FLAG = --input-def $(DLL_DEF_INP)
+endif
+
+# Pass -DBUILD_lib{library_name}_DLL=1 to the preprocessor. The
+# library header files can use this preprocessor define to know that
+# they are included during compilation of the library itself, and can
+# then use __declspec(dllexport) to export symbols
+CLEAN_library_NAME = $(shell echo $(LIBRARY_NAME_WITH_LIB)|tr '-' '_')
+SHARED_CFLAGS += -DBUILD_$(CLEAN_library_NAME)_DLL=1
+
+internal-library-all_:: \
+ $(GNUSTEP_OBJ_DIR) \
+ $(DERIVED_SOURCES_DIR) \
+ $(DLL_DEF_INP) \
+ $(DERIVED_SOURCES_DIR)/$(LIBRARY_NAME_WITH_LIB).def \
+ $(GNUSTEP_OBJ_DIR)/$(DLL_NAME) \
+ $(GNUSTEP_OBJ_DIR)/$(DLL_EXP_LIB)
+
+internal-library-clean::
+ $(ECHO_NOTHING)rm -rf $(DERIVED_SOURCES_DIR)$(END_ECHO)
+
+$(DERIVED_SOURCES_DIR):
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+$(DERIVED_SOURCES_DIR)/$(LIBRARY_NAME_WITH_LIB).def: $(OBJ_FILES_TO_LINK) $(DLL_DEF_INP)
+ $(ECHO_NOTHING)$(DLLTOOL) $(DLL_DEF_FLAG) --output-def $@ $(OBJ_FILES_TO_LINK)$(END_ECHO)
+
+$(GNUSTEP_OBJ_DIR)/$(DLL_EXP_LIB): $(DERIVED_SOURCES_DIR)/$(LIBRARY_NAME_WITH_LIB).def
+ $(ECHO_NOTHING)$(DLLTOOL) --dllname $(DLL_NAME) --def $< --output-lib $@$(END_ECHO)
+
+$(GNUSTEP_OBJ_DIR)/$(DLL_NAME): $(OBJ_FILES_TO_LINK) \
+ $(DERIVED_SOURCES_DIR)/$(LIBRARY_NAME_WITH_LIB).def
+ $(ECHO_LINKING)$(DLLWRAP) --driver-name $(CC) \
+ $(SHARED_LD_PREFLAGS) \
+ --def $(DERIVED_SOURCES_DIR)/$(LIBRARY_NAME_WITH_LIB).def \
+ -o $@ $(OBJ_FILES_TO_LINK) \
+ $(ALL_LDFLAGS) \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) $(TARGET_SYSTEM_LIBS) \
+ $(SHARED_LD_POSTFLAGS)$(END_ECHO)
+
+else # BUILD_DLL
+
+internal-library-all_:: $(GNUSTEP_OBJ_DIR) \
+ $(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE)
+
+$(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE): $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(LIB_LINK_CMD)$(END_ECHO)
+
+endif # BUILD_DLL
+
+#
+# Install and uninstall targets
+#
+internal-library-install_:: internal-install-dirs \
+ internal-install-lib \
+ shared-instance-headers-install
+
+# Depend on creating all the dirs
+internal-install-dirs:: $(FINAL_LIBRARY_INSTALL_DIR) \
+ $(DLL_INSTALLATION_DIR)
+
+# Now the rule to create each dir. NB: Nothing gets executed if the dir
+# already exists
+$(FINAL_LIBRARY_INSTALL_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+$(DLL_INSTALLATION_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+ifeq ($(BUILD_DLL),yes)
+
+internal-install-lib::
+ $(ECHO_INSTALLING)if [ -f $(GNUSTEP_OBJ_DIR)/$(DLL_NAME) ]; then \
+ $(INSTALL_PROGRAM) $(GNUSTEP_OBJ_DIR)/$(DLL_NAME) \
+ $(DLL_INSTALLATION_DIR) ; \
+ fi; \
+ if [ -f $(GNUSTEP_OBJ_DIR)/$(DLL_EXP_LIB) ]; then \
+ $(INSTALL_PROGRAM) $(GNUSTEP_OBJ_DIR)/$(DLL_EXP_LIB) \
+ $(FINAL_LIBRARY_INSTALL_DIR) ; \
+ fi$(END_ECHO)
+
+else
+
+internal-install-lib::
+ $(ECHO_INSTALLING)if [ -f $(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE) ]; then \
+ $(INSTALL_PROGRAM) $(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE) \
+ $(FINAL_LIBRARY_INSTALL_DIR) ; \
+ $(AFTER_INSTALL_LIBRARY_CMD) \
+ fi$(END_ECHO)
+
+endif
+
+ifeq ($(BUILD_DLL),yes)
+
+internal-library-uninstall_:: shared-instance-headers-uninstall
+ $(ECHO_UNINSTALLING)rm -f $(DLL_INSTALLATION_DIR)/$(DLL_NAME) \
+ $(FINAL_LIBRARY_INSTALL_DIR)/$(DLL_EXP_LIB)$(END_ECHO)
+
+else
+
+internal-library-uninstall_:: shared-instance-headers-uninstall
+ $(ECHO_UNINSTALLING)rm -f $(FINAL_LIBRARY_INSTALL_DIR)/$(VERSION_LIBRARY_FILE) \
+ $(FINAL_LIBRARY_INSTALL_DIR)/$(LIBRARY_FILE) \
+ $(FINAL_LIBRARY_INSTALL_DIR)/$(SONAME_LIBRARY_FILE)$(END_ECHO)
+endif
+
+#
+# Testing targets
+#
+internal-library-check::
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
--- /dev/null
+#
+# Instance/objc.make
+#
+# Instance Makefile rules to build ObjC-based (but not GNUstep) programs.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# The name of the ObjC program(s) is in the OBJC_PROGRAM_NAME variable.
+#
+# xxx We need to prefix the target name when cross-compiling
+#
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+.PHONY: internal-objc_program-all_ \
+ internal-objc_program-install_ \
+ internal-objc_program-uninstall_
+
+# This is the directory where the objc programs get installed. If you
+# don't specify a directory they will get installed in the Tools
+# directory in GNUSTEP_LOCAL_ROOT.
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ OBJC_PROGRAM_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifeq ($(OBJC_PROGRAM_INSTALL_DIR),)
+OBJC_PROGRAM_INSTALL_DIR = $(GNUSTEP_TOOLS)
+endif
+
+ALL_OBJC_LIBS = \
+ $(shell $(WHICH_LIB_SCRIPT) \
+ $(ALL_LIB_DIRS) \
+ $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) \
+ $(TARGET_SYSTEM_LIBS) \
+ debug=$(debug) profile=$(profile) shared=$(shared) \
+ libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
+
+internal-objc_program-all_:: \
+ $(GNUSTEP_OBJ_DIR) \
+ $(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT)
+
+$(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT): $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(LD) $(ALL_LDFLAGS) -o $(LDOUT)$@ $(OBJ_FILES_TO_LINK)\
+ $(ALL_OBJC_LIBS)$(END_ECHO)
+
+internal-objc_program-install_:: $(OBJC_PROGRAM_INSTALL_DIR)/$(GNUSTEP_TARGET_LDIR)
+ $(ECHO_INSTALLING)$(INSTALL_PROGRAM) -m 0755 \
+ $(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT) \
+ $(OBJC_PROGRAM_INSTALL_DIR)/$(GNUSTEP_TARGET_LDIR)$(END_ECHO)
+
+$(OBJC_PROGRAM_INSTALL_DIR)/$(GNUSTEP_TARGET_LDIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+internal-objc_program-uninstall_::
+ $(ECHO_UNINSTALLING)rm -f $(OBJC_PROGRAM_INSTALL_DIR)/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE)$(EXEEXT)$(END_ECHO)
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
--- /dev/null
+#
+# Instance/palette.make
+#
+# Instance Makefile rules to build GNUstep-based palettes.
+#
+# Copyright (C) 1999 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Author: Richard Frith-Macdonald <richard@brainstorm.co.uk>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+# The name of the palette is in the PALETTE_NAME variable.
+# The list of palette resource file are in xxx_RESOURCE_FILES
+# The list of palette resource directories are in xxx_RESOURCE_DIRS
+# The name of the palette class is xxx_PRINCIPAL_CLASS
+# The name of the palette nib is xxx_MAIN_MODEL_FILE
+# The name of the palette icon is xxx_PALETTE_ICON
+# The name of a file containing info.plist entries to be inserted into
+# Info-gnustep.plist (if any) is xxxInfo.plist where xxx is the palette name
+# The name of a file containing palette.table entries to be inserted into
+# palette.table (if any) is xxxpalette.table where xxx is the palette name
+#
+
+.PHONY: internal-palette-all_ \
+ internal-palette-install_ \
+ internal-palette-uninstall_ \
+ internal-palette-copy_into_dir
+
+# On Solaris we don't need to specifies the libraries the palette needs.
+# How about the rest of the systems? ALL_PALETTE_LIBS is temporary empty.
+#ALL_PALETTE_LIBS = $(ADDITIONAL_GUI_LIBS) $(AUXILIARY_GUI_LIBS) $(BACKEND_LIBS) \
+# $(GUI_LIBS) $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) \
+# $(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) \
+# $(SYSTEM_LIBS) $(TARGET_SYSTEM_LIBS)
+
+#ALL_PALETTE_LIBS := \
+# $(shell $(WHICH_LIB_SCRIPT) $(ALL_LIB_DIRS) $(ALL_PALETTE_LIBS) \
+# debug=$(debug) profile=$(profile) shared=$(shared) libext=$(LIBEXT) \
+# shared_libext=$(SHARED_LIBEXT))
+# On windows, this is unfortunately required.
+
+ifeq ($(WITH_DLL), yes)
+ LINK_PALETTE_AGAINST_ALL_LIBS = yes
+endif
+
+# On Apple, two-level namespaces require all symbols in bundles
+# to be resolved at link time.
+ifeq ($(FOUNDATION_LIB), apple)
+ LINK_PALETTE_AGAINST_ALL_LIBS = yes
+endif
+
+ifeq ($(LINK_PALETTE_AGAINST_ALL_LIBS), yes)
+PALETTE_LIBS += $(ADDITIONAL_GUI_LIBS) $(AUXILIARY_GUI_LIBS) $(BACKEND_LIBS) \
+ $(GUI_LIBS) $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) \
+ $(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) \
+ $(SYSTEM_LIBS) $(TARGET_SYSTEM_LIBS)
+endif
+
+ALL_PALETTE_LIBS = \
+ $(shell $(WHICH_LIB_SCRIPT) \
+ $(ALL_LIB_DIRS) \
+ $(PALETTE_LIBS) \
+ debug=$(debug) profile=$(profile) shared=$(shared) \
+ libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
+
+ifeq ($(WITH_DLL),yes)
+PALETTE_OBJ_EXT = $(DLL_LIBEXT)
+endif
+
+PALETTE_DIR_NAME = $(GNUSTEP_INSTANCE).palette
+PALETTE_DIR = $(GNUSTEP_BUILD_DIR)/$(PALETTE_DIR_NAME)
+PALETTE_FILE_NAME = $(PALETTE_DIR_NAME)/$(GNUSTEP_TARGET_LDIR)/$(PALETTE_NAME)$(PALETTE_OBJ_EXT)
+PALETTE_FILE = $(GNUSTEP_BUILD_DIR)/$(PALETTE_FILE_NAME)
+
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ PALETTE_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifeq ($(PALETTE_INSTALL_DIR),)
+ PALETTE_INSTALL_DIR = $(GNUSTEP_PALETTES)
+endif
+
+GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH = $(PALETTE_DIR)/Resources
+GNUSTEP_SHARED_BUNDLE_MAIN_PATH = $(PALETTE_DIR_NAME)
+GNUSTEP_SHARED_BUNDLE_INSTALL_DIR = $(PALETTE_INSTALL_DIR)
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/bundle.make
+
+internal-palette-all_:: $(GNUSTEP_OBJ_DIR) \
+ $(PALETTE_DIR)/Resources \
+ $(PALETTE_DIR)/$(GNUSTEP_TARGET_LDIR) \
+ $(PALETTE_FILE) \
+ $(PALETTE_DIR)/Resources/Info-gnustep.plist \
+ $(PALETTE_DIR)/Resources/palette.table \
+ shared-instance-bundle-all
+
+$(PALETTE_DIR)/$(GNUSTEP_TARGET_LDIR):
+ $(ECHO_CREATING)$(MKDIRS) $(PALETTE_DIR)/$(GNUSTEP_TARGET_LDIR)$(END_ECHO)
+
+ifeq ($(WITH_DLL),yes)
+
+$(PALETTE_FILE) : $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(DLLWRAP) --driver-name $(CC) \
+ -o $(LDOUT)$(PALETTE_FILE) \
+ $(OBJ_FILES_TO_LINK) \
+ $(ALL_LDFLAGS) \
+ $(ALL_PALETTE_LIBS)$(END_ECHO)
+
+else # WITH_DLL
+
+$(PALETTE_FILE) : $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(BUNDLE_LD) $(BUNDLE_LDFLAGS) $(ALL_LDFLAGS) \
+ -o $(LDOUT)$(PALETTE_FILE) \
+ $(OBJ_FILES_TO_LINK) \
+ $(ALL_PALETTE_LIBS)$(END_ECHO)
+
+endif # WITH_DLL
+
+PRINCIPAL_CLASS = $(strip $($(GNUSTEP_INSTANCE)_PRINCIPAL_CLASS))
+
+ifeq ($(PRINCIPAL_CLASS),)
+ PRINCIPAL_CLASS = $(GNUSTEP_INSTANCE)
+endif
+
+PALETTE_ICON = $($(GNUSTEP_INSTANCE)_PALETTE_ICON)
+
+ifeq ($(PALETTE_ICON),)
+ PALETTE_ICON = $(GNUSTEP_INSTANCE)
+endif
+
+$(PALETTE_DIR)/Resources/Info-gnustep.plist: $(PALETTE_DIR)/Resources
+ $(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
+ echo " NSExecutable = \"$(GNUSTEP_INSTANCE)\";"; \
+ if [ -r "$(GNUSTEP_INSTANCE)Info.plist" ]; then \
+ cat $(GNUSTEP_INSTANCE)Info.plist; \
+ fi; \
+ echo "}") >$@$(END_ECHO)
+
+MAIN_MODEL_FILE = $(strip $(subst .gmodel,,$(subst .gorm,,$(subst .nib,,$($(GNUSTEP_INSTANCE)_MAIN_MODEL_FILE)))))
+
+$(PALETTE_DIR)/Resources/palette.table: $(PALETTE_DIR)/Resources
+ $(ECHO_CREATING)(echo "{";\
+ echo ' NOTE = "Automatically generated, do not edit!";'; \
+ echo " NibFile = \"$(MAIN_MODEL_FILE)\";"; \
+ echo " Class = \"$(PRINCIPAL_CLASS)\";"; \
+ echo " Icon = \"$(PALETTE_ICON)\";"; \
+ echo "}"; \
+ if [ -r "$(GNUSTEP_INSTANCE)palette.table" ]; then \
+ cat $(GNUSTEP_INSTANCE)palette.table; \
+ fi; \
+ ) >$@$(END_ECHO)
+
+internal-palette-copy_into_dir:: shared-instance-bundle-copy_into_dir
+
+#
+# Install targets
+#
+$(PALETTE_INSTALL_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+internal-palette-install_:: shared-instance-bundle-install
+ifeq ($(strip),yes)
+ $(ECHO_STRIPPING)$(STRIP) $(PALETTE_INSTALL_DIR)/$(PALETTE_FILE_NAME)$(END_ECHO)
+endif
+
+internal-palette-uninstall_:: shared-instance-bundle-uninstall
+
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
--- /dev/null
+# -*-makefile-*-
+# Instace/resource-set.make
+#
+# Instance makefile rules to install resource files
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+#
+# 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 directories to create are in xxx_RESOURCE_DIRS
+# The directory in which to install the resources is in the
+# xxx_RESOURCE_FILES_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
+# into $(RESOURCE_FILES_INSTALL_DIR)/yyy.lproj for each language yyy
+# is in the xxx_LOCALIZED_RESOURCE_FILES variable.
+#
+
+.PHONY: internal-resource_set-install_ \
+ internal-resource_set-uninstall_
+
+# Determine installation dir
+RESOURCE_FILES_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_RESOURCE_FILES_INSTALL_DIR)
+RESOURCE_FILES_FULL_INSTALL_DIR = $(GNUSTEP_INSTALLATION_DIR)/$(RESOURCE_FILES_INSTALL_DIR)
+
+# Rule to build the installation dir
+$(RESOURCE_FILES_FULL_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_FULL_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),)
+ RESOURCE_FILES_DIR = ./
+endif
+
+
+# Determine the list of resource files
+RESOURCE_FILES = $($(GNUSTEP_INSTANCE)_RESOURCE_FILES)
+
+
+# Determine the list of languages
+override LANGUAGES = $($(GNUSTEP_INSTANCE)_LANGUAGES)
+ifeq ($(LANGUAGES),)
+ override LANGUAGES = English
+endif
+
+
+# Determine the list of localized resource files
+LOCALIZED_RESOURCE_FILES = $($(GNUSTEP_INSTANCE)_LOCALIZED_RESOURCE_FILES)
+
+#
+# We provide two different algorithms of installing resource files.
+#
+
+ifeq ($(GNUSTEP_DEVELOPER),)
+
+# Standard one - just run a subshell and loop, and install everything.
+internal-resource_set-install_: \
+ $(RESOURCE_FILES_FULL_INSTALL_DIR) \
+ $(addprefix $(RESOURCE_FILES_FULL_INSTALL_DIR)/,$(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_FULL_INSTALL_DIR)/$$file; \
+ fi; \
+ done$(END_ECHO)
+endif
+ifneq ($(LOCALIZED_RESOURCE_FILES),)
+ $(ECHO_NOTHING)for l in $(LANGUAGES); do \
+ if [ -d $$l.lproj ]; then \
+ $(MKINSTALLDIRS) $(RESOURCE_FILES_FULL_INSTALL_DIR)/$$l.lproj; \
+ for f in $(LOCALIZED_RESOURCE_FILES); do \
+ if [ -f $$l.lproj/$$f ]; then \
+ $(INSTALL_DATA) $$l.lproj/$$f \
+ $(RESOURCE_FILES_FULL_INSTALL_DIR)/$$l.lproj; \
+ else \
+ echo "Warning: $$l.lproj/$$f not found - ignoring"; \
+ fi; \
+ done; \
+ else \
+ echo "Warning: $$l.lproj not found - ignoring"; \
+ fi; \
+ done$(END_ECHO)
+endif
+
+else # Following code turned on by setting GNUSTEP_DEVELOPER=YES in the shell
+
+.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_FULL_INSTALL_DIR)/% : $(RESOURCE_FILES_DIR)/%
+ $(ECHO_NOTHING)$(INSTALL_DATA) $< $@$(END_ECHO)
+
+# This rule depends on having installed all files
+internal-resource_set-install_: \
+ $(RESOURCE_FILES_FULL_INSTALL_DIR) \
+ $(addprefix $(RESOURCE_FILES_FULL_INSTALL_DIR)/,$(RESOURCE_DIRS)) \
+ $(addprefix $(RESOURCE_FILES_FULL_INSTALL_DIR)/,$(RESOURCE_FILES)) \
+ internal-resource-set-install-languages
+
+ifeq ($(LOCALIZED_RESOURCE_FILES),)
+internal-resource-set-install-languages:
+
+else
+
+# Rule to build the language installation directories
+$(addsuffix .lproj,$(addprefix $(RESOURCE_FILES_FULL_INSTALL_DIR)/,$(LANGUAGES))):
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+# install the localized resources, checking the installation date by
+# using test -nt ... this doesn't seem to be easy to do using make
+# rules because we want to issue a warning if the directory/file can't
+# be found, rather than aborting with an error as make would do.
+internal-resource-set-install-languages: \
+$(addsuffix .lproj,$(addprefix $(RESOURCE_FILES_FULL_INSTALL_DIR)/,$(LANGUAGES)))
+ $(ECHO_NOTHING)for l in $(LANGUAGES); do \
+ if [ -d $$l.lproj ]; then \
+ for f in $(LOCALIZED_RESOURCE_FILES); do \
+ if [ -f $$l.lproj/$$f ]; then \
+ if [ $$l.lproj -nt $(RESOURCE_FILES_FULL_INSTALL_DIR)/$$l.lproj/$$f ]; then \
+ $(INSTALL_DATA) $$l.lproj/$$f \
+ $(RESOURCE_FILES_FULL_INSTALL_DIR)/$$l.lproj; \
+ fi; \
+ else \
+ echo "Warning: $$l.lproj/$$f not found - ignoring"; \
+ fi; \
+ done; \
+ else \
+ echo "Warning: $$l.lproj not found - ignoring"; \
+ fi; \
+ done$(END_ECHO)
+
+
+endif # LOCALIZED_RESOURCE_FILES
+
+endif
+
+
+internal-resource_set-uninstall_:
+ifneq ($(LOCALIZED_RESOURCE_FILES),)
+ -$(ECHO_NOTHING)for language in $(LANGUAGES); do \
+ for file in $(LOCALIZED_RESOURCE_FILES); do \
+ rm -rf $(RESOURCE_FILES_FULL_INSTALL_DIR)/$$language.lproj/$$file;\
+ done; \
+ rmdir $(RESOURCE_FILES_FULL_INSTALL_DIR)/$$language.lproj; \
+ done$(END_ECHO)
+endif
+ifneq ($(RESOURCE_FILES),)
+ $(ECHO_NOTHING)for file in $(RESOURCE_FILES); do \
+ rm -rf $(RESOURCE_FILES_FULL_INSTALL_DIR)/$$file ; \
+ done$(END_ECHO)
+ -rmdir $(RESOURCE_FILES_FULL_INSTALL_DIR)
+endif
--- /dev/null
+#
+# rules.make
+#
+# Makefile rules for the Instance invocation.
+#
+# Copyright (C) 1997, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+# Every project should have its internal-xxx-all depend first on
+# before-$(GNUSTEP_INSTANCE)-all, and last on
+# after-$(GNUSTEP_INSTANCE)-all. We declare them here, empty, so that
+# the user can add them if he wants, but if he doesn't, make doesn't
+# complain about missing targets.
+
+# NB: internal-$(GNUSTEP_TYPE)-all_ should not be declared .PHONY
+# here, because it's not implemented here. (example of how could go
+# wrong otherwise: if say internal-clibrary-all_ depends on
+# internal-library-all_, both of them should be declared .PHONY, while
+# here we would only declare one of them .PHONY, so it should be done
+# by the project specific makefile fragments).
+.PHONY: \
+ before-$(GNUSTEP_INSTANCE)-all after-$(GNUSTEP_INSTANCE)-all \
+ internal-$(GNUSTEP_TYPE)-all \
+ before-$(GNUSTEP_INSTANCE)-install after-$(GNUSTEP_INSTANCE)-install \
+ internal-$(GNUSTEP_TYPE)-install \
+ before-$(GNUSTEP_INSTANCE)-uninstall after-$(GNUSTEP_INSTANCE)-uninstall \
+ internal-$(GNUSTEP_TYPE)-uninstall
+
+# By adding the line
+# xxx_COPY_INTO_DIR = ../Vanity.framework/Resources
+# to you GNUmakefile, you cause the after-xxx-all:: stage of
+# compilation of xxx to copy the created stuff into the *local*
+# directory ../Vanity.framework/Resources (this path should be
+# relative). It also disables installation of xxx.
+#
+# This is normally used, for example, to bundle a tool into a
+# framework. You compile the framework, then the tool, then you can
+# request the tool to be copied into the framework, becoming part of
+# the framework (it is installed with the framework etc).
+#
+COPY_INTO_DIR = $(strip $($(GNUSTEP_INSTANCE)_COPY_INTO_DIR))
+
+# If COPY_INTO_DIR is non-empty, we'll execute below an additional
+# target at the end of compilation:
+# internal-$(GNUSTEP_TYPE)-copy_into_dir
+
+# Centrally disable standard installation if COPY_INTO_DIR is non-empty.
+ifneq ($(COPY_INTO_DIR),)
+ $(GNUSTEP_INSTANCE)_STANDARD_INSTALL = no
+endif
+
+before-$(GNUSTEP_INSTANCE)-all::
+
+after-$(GNUSTEP_INSTANCE)-all::
+
+# Automatically run before-$(GNUSTEP_INSTANCE)-all before building,
+# and after-$(GNUSTEP_INSTANCE)-all after building.
+# The project-type specific makefile instance fragment only needs to provide
+# the internal-$(GNUSTEP_TYPE)-all_ rule.
+
+ifeq ($(COPY_INTO_DIR),)
+internal-$(GNUSTEP_TYPE)-all:: before-$(GNUSTEP_INSTANCE)-all \
+ internal-$(GNUSTEP_TYPE)-all_ \
+ after-$(GNUSTEP_INSTANCE)-all
+else
+internal-$(GNUSTEP_TYPE)-all:: before-$(GNUSTEP_INSTANCE)-all \
+ internal-$(GNUSTEP_TYPE)-all_ \
+ after-$(GNUSTEP_INSTANCE)-all \
+ internal-$(GNUSTEP_TYPE)-copy_into_dir
+
+# To copy into a dir, we always have to first make sure the dir exists :-)
+$(COPY_INTO_DIR):
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+# The specific project-type makefiles will add more commands.
+internal-$(GNUSTEP_TYPE)-copy_into_dir:: $(COPY_INTO_DIR)
+endif
+
+before-$(GNUSTEP_INSTANCE)-install::
+
+after-$(GNUSTEP_INSTANCE)-install::
+
+before-$(GNUSTEP_INSTANCE)-uninstall::
+
+after-$(GNUSTEP_INSTANCE)-uninstall::
+
+# By adding the line
+# xxxx_STANDARD_INSTALL = no
+# to your GNUmakefile, you can disable the standard installation code
+# for a certain GNUSTEP_INSTANCE. This can be useful if you are
+# installing manually in some other way (or for some other reason you
+# don't want installation to be performed ever) and don't want the
+# standard installation to be performed. Please note that
+# before-xxx-install and after-xxx-install are still executed, so if
+# you want, you can add your code in those targets to perform your
+# custom installation.
+
+ifeq ($($(GNUSTEP_INSTANCE)_STANDARD_INSTALL),no)
+
+internal-$(GNUSTEP_TYPE)-install:: before-$(GNUSTEP_INSTANCE)-install \
+ after-$(GNUSTEP_INSTANCE)-install
+ @echo "Skipping standard installation of $(GNUSTEP_INSTANCE) as requested by makefile"
+
+internal-$(GNUSTEP_TYPE)-uninstall:: before-$(GNUSTEP_INSTANCE)-uninstall \
+ after-$(GNUSTEP_INSTANCE)-uninstall
+ @echo "Skipping standard uninstallation of $(GNUSTEP_INSTANCE) as requested by makefile"
+
+else
+
+# By adding an ADDITIONAL_INSTALL_DIRS variable (or xxx_INSTALL_DIRS)
+# you can request additional installation directories to be created
+# before the first installation target is executed.
+ADDITIONAL_INSTALL_DIRS += $($(GNUSTEP_INSTANCE)_INSTALL_DIRS)
+
+$(ADDITIONAL_INSTALL_DIRS):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+internal-$(GNUSTEP_TYPE)-install:: $(ADDITIONAL_INSTALL_DIRS) \
+ before-$(GNUSTEP_INSTANCE)-install \
+ internal-$(GNUSTEP_TYPE)-install_ \
+ after-$(GNUSTEP_INSTANCE)-install
+
+# It would be nice to remove ADDITIONAL_INSTALL_DIRS here, if empty.
+internal-$(GNUSTEP_TYPE)-uninstall:: before-$(GNUSTEP_INSTANCE)-uninstall \
+ internal-$(GNUSTEP_TYPE)-uninstall_ \
+ after-$(GNUSTEP_INSTANCE)-uninstall
+
+endif
+
+# before-$(GNUSTEP_INSTANCE)-clean and similar for after and distclean
+# are not supported -- they wouldn't be executed most of the times, since
+# most of the times we don't perform an Instance invocation at all on
+# make clean or make distclean.
+
+
+#
+# The list of Objective-C source files to be compiled
+# are in the OBJC_FILES variable.
+#
+# The list of C source files to be compiled
+# are in the C_FILES variable.
+#
+# The list of C++ source files to be compiled
+# are in the CC_FILES variable.
+#
+# The list of PSWRAP source files to be compiled
+# are in the PSWRAP_FILES variable.
+#
+# The list of JAVA source files to be compiled
+# are in the JAVA_FILES variable.
+#
+# The list of JAVA source files from which to generate jni headers
+# are in the JAVA_JNI_FILES variable.
+#
+
+#
+# Please note the subtle difference:
+#
+# At `user' level (ie, in the user's GNUmakefile),
+# the SUBPROJECTS variable is reserved for use with aggregate.make;
+# the xxx_SUBPROJECTS variable is reserved for use with subproject.make.
+#
+# This separation *must* be enforced strictly, because nothing prevents
+# a GNUmakefile from including both aggregate.make and subproject.make!
+#
+
+ifneq ($($(GNUSTEP_INSTANCE)_SUBPROJECTS),)
+SUBPROJECT_OBJ_FILES = $(foreach d, $($(GNUSTEP_INSTANCE)_SUBPROJECTS), \
+ $(addprefix $(GNUSTEP_BUILD_DIR)/$(d)/, $(GNUSTEP_OBJ_DIR_NAME)/$(SUBPROJECT_PRODUCT)))
+endif
+
+ifneq ($($(GNUSTEP_INSTANCE)_SUBPROJECTS),)
+SUBPROJECT_DEF_FILES = $(foreach d, $($(GNUSTEP_INSTANCE)_SUBPROJECTS), \
+ $(addprefix $(GNUSTEP_BUILD_DIR)/$(d)/, subproject.def))
+endif
+
+OBJC_OBJS = $(patsubst %.m,%$(OEXT),$($(GNUSTEP_INSTANCE)_OBJC_FILES))
+OBJC_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(OBJC_OBJS))
+
+JAVA_OBJS = $(patsubst %.java,%.class,$($(GNUSTEP_INSTANCE)_JAVA_FILES))
+JAVA_OBJ_FILES = $(JAVA_OBJS)
+
+JAVA_JNI_OBJS = $(patsubst %.java,%.h,$($(GNUSTEP_INSTANCE)_JAVA_JNI_FILES))
+JAVA_JNI_OBJ_FILES = $(JAVA_JNI_OBJS)
+
+PSWRAP_C_FILES = $(patsubst %.psw,%.c,$($(GNUSTEP_INSTANCE)_PSWRAP_FILES))
+PSWRAP_H_FILES = $(patsubst %.psw,%.h,$($(GNUSTEP_INSTANCE)_PSWRAP_FILES))
+PSWRAP_OBJS = $(patsubst %.psw,%$(OEXT),$($(GNUSTEP_INSTANCE)_PSWRAP_FILES))
+PSWRAP_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(PSWRAP_OBJS))
+
+C_OBJS = $(patsubst %.c,%$(OEXT),$($(GNUSTEP_INSTANCE)_C_FILES))
+C_OBJ_FILES = $(PSWRAP_OBJ_FILES) $(addprefix $(GNUSTEP_OBJ_DIR)/,$(C_OBJS))
+
+# C++ files might end in .C, .cc, .cpp, .cxx, .cp so we replace multiple times
+CC_OBJS = $(patsubst %.cc,%$(OEXT),\
+ $(patsubst %.C,%$(OEXT),\
+ $(patsubst %.cp,%$(OEXT),\
+ $(patsubst %.cpp,%$(OEXT),\
+ $(patsubst %.cxx,%$(OEXT),$($(GNUSTEP_INSTANCE)_CC_FILES))))))
+CC_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(CC_OBJS))
+
+OBJ_FILES = $($(GNUSTEP_INSTANCE)_OBJ_FILES)
+
+# OBJ_FILES_TO_LINK is the set of all .o files which will be linked
+# into the result - please note that you can add to OBJ_FILES_TO_LINK
+# by defining manually some special xxx_OBJ_FILES for your
+# tool/app/whatever. Strip the variable so that by comparing
+# OBJ_FILES_TO_LINK to '' we know if there is a link stage to be
+# performed at all (useful for example in bundles which can contain an
+# object file, or not).
+OBJ_FILES_TO_LINK = $(strip $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(CC_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) $(OBJ_FILES))
+
+ifeq ($(AUTO_DEPENDENCIES),yes)
+ ifneq ($(strip $(OBJ_FILES_TO_LINK)),)
+ -include $(addsuffix .d, $(basename $(OBJ_FILES_TO_LINK)))
+ endif
+endif
+
+
+##
+## Library and related special flags.
+##
+BUNDLE_LIBS += $($(GNUSTEP_INSTANCE)_BUNDLE_LIBS)
+
+ADDITIONAL_INCLUDE_DIRS += $($(GNUSTEP_INSTANCE)_INCLUDE_DIRS)
+
+ADDITIONAL_GUI_LIBS += $($(GNUSTEP_INSTANCE)_GUI_LIBS)
+
+ADDITIONAL_TOOL_LIBS += $($(GNUSTEP_INSTANCE)_TOOL_LIBS)
+
+ADDITIONAL_OBJC_LIBS += $($(GNUSTEP_INSTANCE)_OBJC_LIBS)
+
+ADDITIONAL_LIBRARY_LIBS += $($(GNUSTEP_INSTANCE)_LIBS) \
+ $($(GNUSTEP_INSTANCE)_LIBRARY_LIBS)
+
+ADDITIONAL_NATIVE_LIBS += $($(GNUSTEP_INSTANCE)_NATIVE_LIBS)
+
+ADDITIONAL_LIB_DIRS += $($(GNUSTEP_INSTANCE)_LIB_DIRS)
+
+ADDITIONAL_CPPFLAGS += $($(GNUSTEP_INSTANCE)_CPPFLAGS)
+
+ADDITIONAL_CFLAGS += $($(GNUSTEP_INSTANCE)_CFLAGS)
+
+ADDITIONAL_OBJCFLAGS += $($(GNUSTEP_INSTANCE)_OBJCFLAGS)
+
+ADDITIONAL_CCFLAGS += $($(GNUSTEP_INSTANCE)_CCFLAGS)
+
+ADDITIONAL_LDFLAGS += $($(GNUSTEP_INSTANCE)_LDFLAGS)
+
+ADDITIONAL_CLASSPATH += $($(GNUSTEP_INSTANCE)_CLASSPATH)
+
+LIBRARIES_DEPEND_UPON += $($(GNUSTEP_INSTANCE)_LIBRARIES_DEPEND_UPON)
+
--- /dev/null
+#
+# Instance/service.make
+#
+# Instance Makefile rules to build GNUstep-based services.
+#
+# Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+#
+# Author: Richard Frith-Macdonald <richard@brainstorm.co.uk>
+# Based on the makefiles by Scott Christley.
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+#
+# The name of the service is in the SERVICE_NAME variable.
+# The NSServices info should be in $(SERVICE_NAME)Info.plist
+# The list of service resource file are in xxx_RESOURCE_FILES
+# The list of service resource directories are in xxx_RESOURCE_DIRS
+# where xxx is the service name
+#
+
+.PHONY: internal-service-all_ \
+ internal-service-install_ \
+ internal-service-uninstall_ \
+ internal-service-copy_into_dir \
+ service-resource-files
+
+# Libraries that go before the GUI libraries
+ALL_SERVICE_LIBS = \
+ $(shell $(WHICH_LIB_SCRIPT) \
+ $(ALL_LIB_DIRS) \
+ $(ADDITIONAL_GUI_LIBS) $(AUXILIARY_GUI_LIBS) \
+ $(GUI_LIBS) $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) \
+ $(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) \
+ $(OBJC_LIBS) $(SYSTEM_LIBS) $(TARGET_SYSTEM_LIBS) \
+ debug=$(debug) profile=$(profile) shared=$(shared) \
+ libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
+
+# Don't include these definitions the first time make is invoked. This part is
+# included when make is invoked the second time from the %.build rule (see
+# rules.make).
+SERVICE_DIR_NAME = $(GNUSTEP_INSTANCE:=.service)
+SERVICE_DIR = $(GNUSTEP_BUILD_DIR)/$(SERVICE_DIR_NAME)
+
+#
+# Internal targets
+#
+SERVICE_FILE_NAME = $(SERVICE_DIR_NAME)/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE)
+SERVICE_FILE = $(GNUSTEP_BUILD_DIR)/$(SERVICE_FILE_NAME)
+
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ SERVICE_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifeq ($(SERVICE_INSTALL_DIR),)
+ SERVICE_INSTALL_DIR = $(GNUSTEP_SERVICES)
+endif
+
+GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH = $(SERVICE_DIR)/Resources
+GNUSTEP_SHARED_BUNDLE_MAIN_PATH = $(SERVICE_DIR_NAME)
+GNUSTEP_SHARED_BUNDLE_INSTALL_DIR = $(SERVICE_INSTALL_DIR)
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/bundle.make
+
+internal-service-all_:: $(GNUSTEP_OBJ_DIR) \
+ $(SERVICE_DIR)/$(GNUSTEP_TARGET_LDIR) \
+ $(SERVICE_FILE) \
+ $(SERVICE_DIR)/Resources/Info-gnustep.plist \
+ shared-instance-bundle-all
+
+$(SERVICE_FILE): $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(LD) $(ALL_LDFLAGS) -o $(LDOUT)$@ $(OBJ_FILES_TO_LINK)\
+ $(ALL_SERVICE_LIBS)$(END_ECHO)
+
+$(SERVICE_DIR)/$(GNUSTEP_TARGET_LDIR):
+ $(ECHO_CREATING)$(MKDIRS) $(SERVICE_DIR)/$(GNUSTEP_TARGET_LDIR)$(END_ECHO)
+
+
+# Allow the gui library to redefine make_services to use its local one
+ifeq ($(GNUSTEP_MAKE_SERVICES),)
+ GNUSTEP_MAKE_SERVICES = make_services
+endif
+
+$(SERVICE_DIR)/Resources/Info-gnustep.plist: \
+ $(SERVICE_DIR)/Resources $(GNUSTEP_INSTANCE)Info.plist
+ $(ECHO_CREATING)(echo "{"; echo ' NOTE = "Automatically generated, do not edit!";'; \
+ echo " NSExecutable = \"$(GNUSTEP_INSTANCE)\";"; \
+ cat $(GNUSTEP_INSTANCE)Info.plist; \
+ echo "}") >$@ ;\
+ if $(GNUSTEP_MAKE_SERVICES) --test $@; then : ; else rm -f $@; false; \
+ fi$(END_ECHO)
+
+internal-service-copy_into_dir:: shared-instance-bundle-copy_into_dir
+
+#
+# Install targets
+#
+$(SERVICE_INSTALL_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+internal-service-install_:: shared-instance-bundle-install
+ifeq ($(strip),yes)
+ $(ECHO_STRIPPING)$(STRIP) $(SERVICE_INSTALL_DIR)/$(SERVICE_FILE_NAME)$(END_ECHO)
+endif
+
+internal-service-uninstall_:: shared-instance-bundle-uninstall
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
--- /dev/null
+# -*-makefile-*-
+# Instance/subproject.make
+#
+# Instance Makefile rules to build subprojects in GNUstep projects.
+#
+# Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+#
+# Author: Jonathan Gapen <jagapen@whitewater.chem.wisc.edu>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+.PHONY: internal-subproject-all_ \
+ internal-subproject-install_ \
+ internal-subproject-uninstall_
+
+#
+# Compilation targets
+#
+internal-subproject-all_:: $(GNUSTEP_OBJ_DIR) \
+ $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT)
+
+ifeq ($(BUILD_DLL),yes)
+
+DLL_DEF = $($(GNUSTEP_INSTANCE)_DLL_DEF)
+DLL_DEF_FILES = $(SUBPROJECT_DEF_FILES) $(DLL_DEF)
+
+ifneq ($(strip $(DLL_DEF_FILES)),)
+DLL_DEF_INP = $(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).inp
+
+$(DLL_DEF_INP): $(DLL_DEF_FILES)
+ $(ECHO_CREATING)cat $(DLL_DEF_FILES) > $@$(END_ECHO)
+
+DLL_DEF_FLAG = --input-def $(DLL_DEF_INP)
+endif
+
+internal-subproject-clean::
+ $(ECHO_NOTHING)rm -rf $(DLL_DEF_INP)$(END_ECHO)
+
+internal-subproject-all_:: $(GNUSTEP_BUILD_DIR)/subproject.def
+
+$(GNUSTEP_BUILD_DIR)/subproject.def: $(OBJ_FILES_TO_LINK) $(DLL_DEF) \
+ $(DLL_DEF_INP)
+ $(ECHO_NOTHING)$(DLLTOOL) $(DLL_DEF_FLAG) --output-def $@ $(OBJ_FILES_TO_LINK)$(END_ECHO)
+
+endif
+
+# We need to depend on SUBPROJECT_OBJ_FILES to account for sub-subprojects.
+$(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT): $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(OBJ_MERGE_CMD)$(END_ECHO)
+
+#
+# Build-header target for framework subprojects
+#
+# If we are called with OWNING_PROJECT_HEADER_DIR_NAME which is not empty,
+# we need to copy our headers into that directory during the
+# build-headers stage, and to disable installation/uninstallation of
+# headers.
+#
+ifneq ($(OWNING_PROJECT_HEADER_DIR_NAME),)
+.PHONY: internal-subproject-build-headers
+
+OWNING_PROJECT_HEADER_DIR = $(GNUSTEP_BUILD_DIR)/$(OWNING_PROJECT_HEADER_DIR_NAME)
+HEADER_FILES = $($(GNUSTEP_INSTANCE)_HEADER_FILES)
+OWNING_PROJECT_HEADER_FILES = $(patsubst %.h,$(OWNING_PROJECT_HEADER_DIR)/%.h,$(HEADER_FILES))
+
+internal-subproject-build-headers:: $(OWNING_PROJECT_HEADER_FILES)
+
+# We need to build the OWNING_PROJECT_HEADER_DIR directory here
+# because this rule could be executed before the top-level framework
+# has built his dirs
+$(OWNING_PROJECT_HEADER_FILES):: $(HEADER_FILES) $(OWNING_PROJECT_HEADER_DIR)
+ifneq ($(HEADER_FILES),)
+ $(ECHO_NOTHING)for file in $(HEADER_FILES) __done; do \
+ if [ $$file != __done ]; then \
+ $(INSTALL_DATA) ./$$file $(OWNING_PROJECT_HEADER_DIR)/$$file ; \
+ fi; \
+ done$(END_ECHO)
+endif # we got HEADER_FILES
+
+$(OWNING_PROJECT_HEADER_DIR):
+ $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+
+# End FRAMEWORK code
+else
+# Start no FRAMEWORK code
+
+#
+# Installation targets - we only need to install headers and only
+# if this is not in a framework
+#
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/headers.make
+
+internal-subproject-install_:: shared-instance-headers-install
+
+internal-subproject-uninstall_:: shared-instance-headers-uninstall
+
+endif # no FRAMEWORK
+
+
+#
+# A subproject can have resources, which it stores into the
+# Resources/Subproject directory. If you want your subproject
+# to have resources, you need to put
+# xxx_HAS_RESOURCE_BUNDLE = yes
+# in your GNUmakefile. The project which owns us can then
+# copy recursively this directory into its own Resources directory
+# (that is done automatically if the project uses
+# Instance/Shared/bundle.make to manage its own resource bundle)
+#
+ifeq ($($(GNUSTEP_INSTANCE)_HAS_RESOURCE_BUNDLE), yes)
+
+GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH = Resources/Subproject
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/bundle.make
+
+# Only build, not install
+internal-subproject-all_:: shared-instance-bundle-all
+
+endif
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
--- /dev/null
+# -*-makefile-*-
+# Instance/test-application.make
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+# Just inherit the build rule from application.make
+
+include $(GNUSTEP_MAKEFILES)/Instance/application.make
+
+internal-test_app-all_:: internal-app-all_
+
--- /dev/null
+#
+# Instance/test-library.make
+#
+# Instance Makefile rules for dejagnu/GNUstep based testing
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+#
+# The three main components to perform a test in the framework
+# a) code to be tested
+# b) scripts which say what/how to test
+# c) test driver
+#
+# Component A can be any (or all) of the possible build targets
+# supported by the GNUstep Makefile Package: library, tool,
+# application, or bundle. The code is assumed to be compiled
+# elsewhere and just needs to be accessed to run the tests.
+#
+# Component B are written by the user. The GNUstep Makefile Package
+# does not interpret these scripts; it require that you specify
+# a list of directories which contain the scripts for the code to be
+# tested, so that this information can be passed to dejagnu.
+#
+# Component C is dependent upon the type of code to be tested; generally
+# an interactive program is its own test driver as it can communicate
+# directly with dejagnu. Libraries, however, require a test driver which
+# interactively accepts commands from dejagnu; the Objective-C Testing
+# Framework is the default test driver.
+#
+# Test drivers for the various build targets; the names should be unique
+# across all of the test drivers:
+#
+# TEST_LIBRARY_NAME
+#
+# xxx_OBJC_FILES, xxx_C_FILES, and xxx_PSWRAP_FILES holds the files
+# to be compiled for the xxx test driver.
+#
+# xxx_SCRIPT_DIRS is a list of directories containing the test scripts
+# which will be performed by dejagnu for the xxx test driver.
+#
+# xxx_SCRIPTS_DIRECTORY is the directory where the xxx_SCRIPT_DIRS
+# are located for the xxx test driver.
+#
+# xxx_INCLUDE_DIRS are additional headers directories to be searched
+#
+# xxx_LIB_DIRS and xxx_LIBS are additional libraries directories and
+# libraries to link against, respectively to link the xxx test driver.
+# The same paths are passed to the dynamic linker.
+#
+
+SCRIPTS_DIRECTORY = $($(GNUSTEP_INSTANCE)_SCRIPTS_DIRECTORY)
+CHECK_SCRIPT_DIRS = $($(GNUSTEP_INSTANCE)_SCRIPT_DIRS)
+
+ifeq ($(SCRIPTS_DIRECTORY),)
+SCRIPTS_DIRECTORY = .
+endif
+
+ALL_TEST_LIBRARY_LIBS = \
+ $(shell $(WHICH_LIB_SCRIPT) \
+ $(ALL_LIB_DIRS) \
+ $(ADDITIONAL_LIBRARY_LIBS) $(AUXILIARY_LIBS) \
+ $(AUXILIARY_TOOL_LIBS) $(FND_LIBS) $(OBJC_LIBS) \
+ $(TARGET_SYSTEM_LIBS) \
+ debug=$(debug) profile=$(profile) shared=$(shared) \
+ libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
+
+internal-test_lib-all_:: $(GNUSTEP_OBJ_DIR) \
+ $(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE)
+
+$(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE): $(OBJ_FILES_TO_LINK)
+ $(LD) $(ALL_LDFLAGS) -o $(LDOUT)$@ \
+ $(OBJ_FILES_TO_LINK) \
+ $(ALL_TEST_LIBRARY_LIBS)
+
+dejagnu_vars = "FOUNDATION_LIBRARY=$(FOUNDATION_LIB)" \
+ "OBJC_RUNTIME=$(OBJC_RUNTIME)"
+
+internal-test_lib-check:: $(SCRIPTS_DIRECTORY)/config/unix.exp \
+ really-testlib-check
+
+really-test_lib-check:
+ @(additional_library_paths="`echo $(ADDITIONAL_LIB_DIRS) | sed 's/-L//g'`"; \
+ additional_library_paths="`$(GNUSTEP_MAKEFILES)/transform_paths.sh $$additional_library_paths`"; \
+ . $(GNUSTEP_MAKEFILES)/ld_lib_path.sh; \
+ for f in $(CHECK_SCRIPT_DIRS); do \
+ if [ "$(SCRIPTS_DIRECTORY)" != "" ]; then \
+ echo "cd $(SCRIPTS_DIRECTORY); runtest --tool $$f --srcdir . PROG=../$(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE) $(dejagnu_vars) $(ADDITIONAL_DEJAGNU_VARS)"; \
+ (cd $(SCRIPTS_DIRECTORY); runtest --tool $$f --srcdir . PROG=../$(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE) $(dejagnu_vars) $(ADDITIONAL_DEJAGNU_VARS)); \
+ else \
+ runtest --tool $$f --srcdir . PROG=./$(GNUSTEP_INSTANCE) \
+ $(dejagnu_vars) $(ADDITIONAL_DEJAGNU_VARS); \
+ fi; \
+ done)
+
+_FORCE::
+
+$(SCRIPTS_DIRECTORY)/config/unix.exp: _FORCE
+ $(ECHO_CREATING)$(MKDIRS) $(SCRIPTS_DIRECTORY)/config$(END_ECHO)
+ @(echo "Creating the $@ file..."; \
+ echo "## Do Not Edit ##" > $@; \
+ (echo "# Contents generated automatically by Makefile"; \
+ echo "#"; \
+ echo ""; \
+ echo "set OBJC_RUNTIME $(OBJC_RUNTIME)"; \
+ echo "set FOUNDATION_LIBRARY $(FOUNDATION_LIB)"; \
+ echo ""; \
+ echo "if {[file isdirectory $(GNUSTEP_USER_ROOT)/Library/Libraries/ObjCTest]} {"; \
+ echo " set OBJCTEST_DIR $(GNUSTEP_USER_ROOT)/Library/Libraries/ObjCTest"; \
+ echo "} elseif {[file isdirectory $(GNUSTEP_LOCAL_ROOT)/Library/Libraries/ObjCTest]} {"; \
+ echo " set OBJCTEST_DIR $(GNUSTEP_LOCAL_ROOT)/Library/Libraries/ObjCTest"; \
+ echo "} elseif {[file isdirectory $(GNUSTEP_SYSTEM_ROOT)/Library/Libraries/ObjCTest]} {"; \
+ echo " set OBJCTEST_DIR $(GNUSTEP_SYSTEM_ROOT)/Library/Libraries/ObjCTest"; \
+ echo "}"; \
+ echo "set objdir `pwd`"; \
+ echo "source \"\$$OBJCTEST_DIR/common.exp\""; \
+ echo ""; \
+ echo "# Maintain your own code in local.exp"; \
+ echo "source \"config/local.exp\"") >>$@)
+
+internal-test_lib-install_::
+
+internal-test_lib-uninstall_::
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
--- /dev/null
+# -*-makefile-*-
+# Instance/test-tool.make
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+# Just inherit the build rule from tool.make
+
+include $(GNUSTEP_MAKEFILES)/Instance/tool.make
+
+internal-test_tool-all_:: internal-tool-all_
+
--- /dev/null
+# -*-makefile-*-
+# Instance/tool.make
+#
+# Instance Makefile rules to build GNUstep-based command line tools.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# The name of the tools is in the TOOL_NAME variable.
+#
+# xxx We need to prefix the target name when cross-compiling
+#
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+.PHONY: internal-tool-all_ \
+ internal-tool-install_ \
+ internal-tool-uninstall_ \
+ internal-tool-copy_into_dir
+
+# This is the directory where the tools get installed. If you don't specify a
+# directory they will get installed in the GNUstep Local Root.
+ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
+ TOOLD_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
+endif
+
+ifeq ($(TOOL_INSTALL_DIR),)
+ TOOL_INSTALL_DIR = $(GNUSTEP_TOOLS)
+endif
+
+# This is the 'final' directory in which we copy the tool executable, including
+# the target and library-combo paths. You can override it in special occasions
+# (eg, installing an executable into a web server's cgi dir).
+ifeq ($(FINAL_TOOL_INSTALL_DIR),)
+ FINAL_TOOL_INSTALL_DIR = $(TOOL_INSTALL_DIR)/$(GNUSTEP_TARGET_LDIR)
+endif
+
+ALL_TOOL_LIBS = \
+ $(shell $(WHICH_LIB_SCRIPT) \
+ $(ALL_LIB_DIRS) \
+ $(ADDITIONAL_TOOL_LIBS) $(AUXILIARY_TOOL_LIBS) $(FND_LIBS) \
+ $(ADDITIONAL_OBJC_LIBS) $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) \
+ $(TARGET_SYSTEM_LIBS) \
+ debug=$(debug) profile=$(profile) shared=$(shared) \
+ libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
+
+#
+# Compilation targets
+#
+internal-tool-all_:: $(GNUSTEP_OBJ_DIR) \
+ $(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT)
+
+$(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT): $(OBJ_FILES_TO_LINK)
+ $(ECHO_LINKING)$(LD) $(ALL_LDFLAGS) -o $(LDOUT)$@ \
+ $(OBJ_FILES_TO_LINK) \
+ $(ALL_TOOL_LIBS)$(END_ECHO)
+
+internal-tool-copy_into_dir::
+ $(ECHO_COPYING_INTO_DIR)$(MKDIRS) $(COPY_INTO_DIR)/$(GNUSTEP_TARGET_LDIR);\
+ $(INSTALL_PROGRAM) -m 0755 \
+ $(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT) \
+ $(COPY_INTO_DIR)/$(GNUSTEP_TARGET_LDIR)$(END_ECHO)
+
+# This rule runs $(MKDIRS) only if needed
+$(FINAL_TOOL_INSTALL_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+internal-tool-install_:: $(FINAL_TOOL_INSTALL_DIR)
+ $(ECHO_INSTALLING)$(INSTALL_PROGRAM) -m 0755 \
+ $(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT) \
+ $(FINAL_TOOL_INSTALL_DIR)$(END_ECHO)
+
+internal-tool-uninstall_::
+ rm -f $(FINAL_TOOL_INSTALL_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT)
+
+# NB: We don't have any cleaning targets for tools here, because we
+# clean during the Master make invocation.
+
+#
+# If the user makefile contains the command
+# xxx_HAS_RESOURCE_BUNDLE = yes
+# then we need to build a resource bundle for the tool, and install it.
+# You can then add resources to the tool, any sort of, with the usual
+# xxx_RESOURCE_FILES, xxx_LOCALIZED_RESOURCE_FILES, xxx_LANGUAGES, etc.
+# The tool resource bundle (and all resources inside it) can be
+# accessed at runtime very comfortably, by using gnustep-base's
+# [NSBundle +mainBundle] (exactly as you would do for an application).
+#
+ifeq ($($(GNUSTEP_INSTANCE)_HAS_RESOURCE_BUNDLE),yes)
+
+# Include the rules to build resource bundles
+GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH = Resources/$(GNUSTEP_INSTANCE)
+GNUSTEP_SHARED_BUNDLE_MAIN_PATH = Resources/$(GNUSTEP_INSTANCE)
+GNUSTEP_SHARED_BUNDLE_INSTALL_DIR = $(TOOL_INSTALL_DIR)
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/bundle.make
+
+internal-tool-all_:: shared-instance-bundle-all
+internal-tool-copy_into_dir:: shared-instance-bundle-copy_into_dir
+
+$(TOOL_INSTALL_DIR):
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+$(TOOL_INSTALL_DIR)/Resources:
+ $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
+
+internal-tool-install_:: $(TOOL_INSTALL_DIR)/Resources \
+ shared-instance-bundle-install
+
+internal-tool-uninstall:: shared-instance-bundle-uninstall
+
+endif
+
+include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
--- /dev/null
+The 'Master' invocation is the first time that 'make' is run on any
+GNUmakefile in your project.
+
+During the 'Master' invocation, gnustep-make determines exactly what
+it needs to build. For example, in the following GNUmakefile -
+
+include $(GNUSTEP_MAKEFILES)/common.make
+
+LIBRARY_NAME = libquantum
+TOOL_NAME = create destroy
+
+create_OBJC_FILES = create.m
+destroy_OBJC_FILES = destroy.m
+libquantum_OBJC_FILES = quantum.m
+
+include $(GNUSTEP_MAKEFILES)/library.make
+include $(GNUSTEP_MAKEFILES)/tool.make
+
+the 'Master' invocation will determine that we need to perform the
+following logically separated operations -
+
+type:library name:libquantum operation:all
+type:tool name:create operation:all
+type:tool name:destroy operation:all
+
+It will then run an 'Instance' invocation for each of these tasks.
+The 'Instance' invocation is a submake invocation, with some special
+variables set telling it exactly what task it needs to perform out of
+all the available ones. The 'Instance' invocation will read the same
+user GNUmakefile(s) as the 'Master' invocation, but will use different
+system makefiles. The 'Instance' invocation will actually include and
+use all the code to perform the required tasks.
+
+The role of the 'Master' invocation is very limited. It needs to
+determine which 'Instance' invocations to run, and then exit.
+
+Please note that we have a 'Master' invocation per each GNUmakefile in
+your project. We have an 'Instance' invocation per each logically
+separate thing to do in your project.
+
+You might wonder why we use 'Instance' invocations at all, and why we
+don't actually perform each instance task inside the 'Master'
+invocation itself. The explanation is very technical ... in a few
+words, we can't because of limitations of make. The problem is that
+if you have multiple instances of the same type, say multiple
+libraries or multiple tools or multiple yyys (or all of them), each
+one might require an arbitrarily complex makefile code to be built,
+which should change according to the value of xxx_ANY_VARIABLE_HERE,
+where xxx is the library/tool/yyy name. So we have the problem that
+we need to execute the same makefile code with an arbitrary value of
+xxx, for each xxx. That is difficult to do in the same make
+invocation, because the make grammar doesn't contain any looping
+construct allowing us to include the same makefile multiple times, one
+for each value of xxx. What we do to work around this problem is, we
+run a separate submake invocation per instance to be built.
--- /dev/null
+#
+# aggregate.make
+#
+# Master Makefile rules to build a set of GNUstep-base subprojects.
+#
+# Copyright (C) 1997-2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+#
+# The list of aggregate project directory names is in the makefile
+# variable SUBPROJECTS. The name is unforunate, because it is confusingly
+# similar to xxx_SUBPROJECTS, which is used for subprojects.
+#
+# SUBPROJECTS - which is implemented in this file - are just a list of
+# directories; we step in each directory in turn, and run a submake in
+# there. The project types in the directories can be anything -
+# tools, documentation, libraries, bundles, applications, whatever.
+# For example, if your package is composed by a library and then by
+# some tools using the library, you could have the library in one
+# directory, the tools in another directory, and have a top level
+# GNUmakefile which has the two as SUBPROJECTS.
+#
+# xxx_SUBPROJECTS - which is *not* implemented in this file, I'm just
+# explaining it here to make clear the difference - are again a list
+# of directories, each of which should contain a *subproject* project
+# type (as implemented by subproject.make), which builds stuff into a
+# .o file, which is then automatically linked into the xxx instance by
+# gnustep-make when the top-level xxx is built. For example, a
+# library might be broken into many separate subprojects, each of
+# which implementing a logically separated part of the library; the
+# top-level GNUmakefile will then build the library, specifying
+# xxx_SUBPROJECTS for the library to be those directories.
+# gnustep-make will step in all dirs, compile the subprojects, and
+# then finally automatically link the subprojects into the main
+# library.
+SUBPROJECTS := $(strip $(SUBPROJECTS))
+
+ifneq ($(SUBPROJECTS),)
+internal-all internal-install internal-uninstall internal-clean \
+ internal-distclean internal-check internal-strings::
+ @ operation=$(subst internal-,,$@); \
+ abs_build_dir="$(ABS_GNUSTEP_BUILD_DIR)"; \
+ for f in $(SUBPROJECTS); do \
+ echo "Making $$operation in $$f..."; \
+ mf=$(MAKEFILE_NAME); \
+ if [ ! -f "$$f/$$mf" -a -f "$$f/Makefile" ]; then \
+ mf=Makefile; \
+ echo "WARNING: No $(MAKEFILE_NAME) found for aggregate project $$f; using 'Makefile'"; \
+ fi; \
+ if [ "$${abs_build_dir}" = "." ]; then \
+ gsbuild="."; \
+ else \
+ gsbuild="$${abs_build_dir}/$$f"; \
+ fi; \
+ if $(MAKE) -C $$f -f $$mf --no-keep-going $$operation \
+ GNUSTEP_BUILD_DIR="$$gsbuild"; then \
+ :; else exit $$?; \
+ fi; \
+ done
+endif
+
--- /dev/null
+#
+# application.make
+#
+# Master makefile rules to build GNUstep-based applications.
+#
+# Copyright (C) 1997, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Based on the original version by Scott Christley.
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+APP_NAME := $(strip $(APP_NAME))
+
+internal-all:: $(APP_NAME:=.all.app.variables)
+
+internal-install:: $(APP_NAME:=.install.app.variables)
+
+internal-uninstall:: $(APP_NAME:=.uninstall.app.variables)
+
+# Compute them manually to avoid having to do an Instance make
+# invocation just to remove them.
+_PSWRAP_C_FILES = $(foreach app,$(APP_NAME),$($(app)_PSWRAP_FILES:.psw=.c))
+_PSWRAP_H_FILES = $(foreach app,$(APP_NAME),$($(app)_PSWRAP_FILES:.psw=.h))
+# The following intricate code computes the list of xxxInfo.plist files
+# for all applications xxx which have xxx_PREPROCESS_INFO_PLIST=yes.
+_PLIST_INFO_FILES = $(addsuffix Info.plist,$(foreach app,$(APP_NAME),$(patsubst yes,$(app),$($(app)_PREPROCESS_INFO_PLIST))))
+
+internal-clean::
+ifeq ($(GNUSTEP_FLATTENED),)
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES) \
+ $(_PLIST_INFO_FILES) *.$(APP_EXTENSION)/$(GNUSTEP_TARGET_LDIR))
+else
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES) \
+ $(_PLIST_INFO_FILES) *.$(APP_EXTENSION))
+endif
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj *.app *.debug *.profile)
+
+# The following make trick extracts all tools in APP_NAME for which
+# the xxx_SUBPROJECTS variable is set to something non-empty.
+# For those apps (and only for them), we need to run 'clean' and
+# 'distclean' in subprojects too.
+#
+# Please note that newer GNU make has a $(if condition,then,else)
+# function, which would be so handy here! But unfortunately it's not
+# available in older GNU makes, so we must not use it. This trick
+# works around this problem.
+
+APPS_WITH_SUBPROJECTS = $(strip $(foreach app,$(APP_NAME),$(patsubst %,$(app),$($(app)_SUBPROJECTS))))
+ifneq ($(APPS_WITH_SUBPROJECTS),)
+internal-clean:: $(APPS_WITH_SUBPROJECTS:=.clean.app.subprojects)
+internal-distclean:: $(APPS_WITH_SUBPROJECTS:=.distclean.app.subprojects)
+endif
+
+internal-strings:: $(APP_NAME:=.strings.app.variables)
+
+# FIXME - GNUSTEP_BUILD_DIR here. Btw should we remove this or
+# provide a better more general way of doing it ?
+$(APP_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory $@.all.app.variables
--- /dev/null
+#
+# Master/bundle.make
+#
+# Master makefile rules to build GNUstep-based bundles.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+BUNDLE_NAME := $(strip $(BUNDLE_NAME))
+
+internal-all:: $(BUNDLE_NAME:=.all.bundle.variables)
+
+internal-install:: $(BUNDLE_NAME:=.install.bundle.variables)
+
+internal-uninstall:: $(BUNDLE_NAME:=.uninstall.bundle.variables)
+
+_PSWRAP_C_FILES = $(foreach bundle,$(BUNDLE_NAME),$($(bundle)_PSWRAP_FILES:.psw=.c))
+_PSWRAP_H_FILES = $(foreach bundle,$(BUNDLE_NAME),$($(bundle)_PSWRAP_FILES:.psw=.h))
+
+internal-clean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES) \
+ $(addsuffix $(BUNDLE_EXTENSION),$(BUNDLE_NAME)))
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj)
+
+BUNDLES_WITH_SUBPROJECTS = $(strip $(foreach bundle,$(BUNDLE_NAME),$(patsubst %,$(bundle),$($(bundle)_SUBPROJECTS))))
+
+ifneq ($(BUNDLES_WITH_SUBPROJECTS),)
+internal-clean:: $(BUNDLES_WITH_SUBPROJECTS:=.clean.bundle.subprojects)
+internal-distclean:: $(BUNDLES_WITH_SUBPROJECTS:=.distclean.bundle.subprojects)
+endif
+
+internal-strings:: $(BUNDLE_NAME:=.strings.bundle.variables)
+
+$(BUNDLE_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.bundle.variables
--- /dev/null
+#
+# Master/clibrary.make
+#
+# Master Makefile rules to build C libraries.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Ovidiu Predescu <ovidiu@net-community.com>
+# Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+CLIBRARY_NAME := $(strip $(CLIBRARY_NAME))
+
+internal-all:: $(CLIBRARY_NAME:=.all.clibrary.variables)
+
+internal-install:: $(CLIBRARY_NAME:=.install.clibrary.variables)
+
+internal-uninstall:: $(CLIBRARY_NAME:=.uninstall.clibrary.variables)
+
+_PSWRAP_C_FILES = $(foreach lib,$(CLIBRARY_NAME),$($(lib)_PSWRAP_FILES:.psw=.c))
+_PSWRAP_H_FILES = $(foreach lib,$(CLIBRARY_NAME),$($(lib)_PSWRAP_FILES:.psw=.h))
+
+internal-clean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES))
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj)
+
+CLIBRARIES_WITH_SUBPROJECTS = $(strip $(foreach clibrary,$(CLIBRARY_NAME),$(patsubst %,$(clibrary),$($(clibrary)_SUBPROJECTS))))
+ifneq ($(CLIBRARIES_WITH_SUBPROJECTS),)
+internal-clean:: $(CLIBRARIES_WITH_SUBPROJECTS:=.clean.clibrary.subprojects)
+internal-distclean:: $(CLIBRARIES_WITH_SUBPROJECTS:=.distclean.clibrary.subprojects)
+endif
+
+internal-strings:: $(CLIBRARY_NAME:=.strings.clibrary.variables)
+
+$(CLIBRARY_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.clibrary.variables
--- /dev/null
+#
+# Master/ctool.make
+#
+# Master Makefile rules to build GNUstep-based command line ctools.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+CTOOL_NAME := $(strip $(CTOOL_NAME))
+
+internal-all:: $(CTOOL_NAME:=.all.ctool.variables)
+
+internal-install:: $(CTOOL_NAME:=.install.ctool.variables)
+
+internal-uninstall:: $(CTOOL_NAME:=.uninstall.ctool.variables)
+
+internal-clean::
+ rm -rf $(GNUSTEP_OBJ_DIR)
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj)
+
+CTOOLS_WITH_SUBPROJECTS = $(strip $(foreach ctool,$(CTOOL_NAME),$(patsubst %,$(ctool),$($(ctool)_SUBPROJECTS))))
+ifneq ($(CTOOLS_WITH_SUBPROJECTS),)
+internal-clean:: $(CTOOLS_WITH_SUBPROJECTS:=.clean.ctool.subprojects)
+internal-distclean:: $(CTOOLS_WITH_SUBPROJECTS:=.distclean.ctool.subprojects)
+endif
+
+internal-strings:: $(CTOOL_NAME:=.strings.ctool.variables)
+
+$(CTOOL_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.ctool.variables
--- /dev/null
+# -*-makefile-*-
+# Master/documentation.make
+#
+# Master Makefile rules to build GNUstep-based documentation.
+#
+# Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+DOCUMENT_NAME := $(strip $(DOCUMENT_NAME))
+DOCUMENT_TEXT_NAME := $(strip $(DOCUMENT_TEXT_NAME))
+
+internal-all:: $(DOCUMENT_NAME:=.all.doc.variables) \
+ $(DOCUMENT_TEXT_NAME:=.all.textdoc.variables)
+
+internal-install:: $(DOCUMENT_NAME:=.install.doc.variables) \
+ $(DOCUMENT_TEXT_NAME:=.install.textdoc.variables)
+
+internal-uninstall:: $(DOCUMENT_NAME:=.uninstall.doc.variables) \
+ $(DOCUMENT_TEXT_NAME:=.uninstall.textdoc.variables)
+
+internal-clean:: $(DOCUMENT_NAME:=.clean.doc.variables) \
+ $(DOCUMENT_TEXT_NAME:=.clean.textdoc.variables)
+
+internal-distclean:: $(DOCUMENT_NAME:=.distclean.doc.variables) \
+ $(DOCUMENT_TEXT_NAME:=.distclean.textdoc.variables)
+
+#$(DOCUMENT_NAME):
+# @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+# $@.all.doc.variables
+
--- /dev/null
+#
+# Master/framework.make
+#
+# Master Makefile rules to build GNUstep-based frameworks.
+#
+# Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+#
+# Author: Mirko Viviani <mirko.viviani@rccr.cremona.it>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+FRAMEWORK_NAME := $(strip $(FRAMEWORK_NAME))
+
+# A framework has a special task to do before-all, which is to build
+# the public framework headers.
+before-all:: $(FRAMEWORK_NAME:=.build-headers.framework.variables)
+
+internal-all:: $(FRAMEWORK_NAME:=.all.framework.variables)
+
+internal-install:: $(FRAMEWORK_NAME:=.install.framework.variables)
+
+internal-uninstall:: $(FRAMEWORK_NAME:=.uninstall.framework.variables)
+
+internal-clean:: $(FRAMEWORK_NAME:=.clean.framework.variables)
+
+internal-distclean:: $(FRAMEWORK_NAME:=.distclean.framework.variables)
+
+internal-strings:: $(FRAMEWORK_NAME:=.strings.framework.variables)
+
+$(FRAMEWORK_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory --no-keep-going \
+ $@.all.framework.variables
--- /dev/null
+#
+# Master/gswapp.make
+#
+# Master Makefile rules to build GNUstep web based applications.
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Manuel Guesdon <mguesdon@sbuilders.com>
+# Based on application.make by Ovidiu Predescu <ovidiu@net-community.com>
+# Based on gswapp.make by Helge Hess, MDlink online service center GmbH.
+# Based on the original version by Scott Christley.
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+# Determine the application directory extension
+ifeq ($(profile), yes)
+ GSWAPP_EXTENSION=profile
+else
+ ifeq ($(debug), yes)
+ GSWAPP_EXTENSION=debug
+ else
+ GSWAPP_EXTENSION=gswa
+ endif
+endif
+
+GSWAPP_NAME := $(strip $(GSWAPP_NAME))
+
+internal-all:: $(GSWAPP_NAME:=.all.gswapp.variables)
+
+internal-install:: $(GSWAPP_NAME:=.install.gswapp.variables)
+
+internal-uninstall:: $(GSWAPP_NAME:=.uninstall.gswapp.variables)
+
+internal-clean::
+ifeq ($(GNUSTEP_FLATTENED),)
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) \
+ *.$(GSWAPP_EXTENSION)/$(GNUSTEP_TARGET_LDIR))
+else
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) *.$(GSWAPP_EXTENSION))
+endif
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj *.gswa *.debug *.profile)
+
+GSWAPPS_WITH_SUBPROJECTS = $(strip $(foreach gswapp,$(GSWAPP_NAME),$(patsubst %,$(gswapp),$($(gswapp)_SUBPROJECTS))))
+ifneq ($(GSWAPPS_WITH_SUBPROJECTS),)
+internal-clean:: $(GSWAPPS_WITH_SUBPROJECTS:=.clean.gswapp.subprojects)
+internal-distclean:: $(GSWAPPS_WITH_SUBPROJECTS:=.distclean.gswapp.subprojects)
+endif
+
+internal-strings:: $(GSWAPP_NAME:=.strings.gswapp.variables)
+
+$(GSWAPP_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.gswapp.variables
--- /dev/null
+#
+# Master/gswbundle.make
+#
+# Master Makefile rules to build GNUstep web bundles.
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Manuel Guesdon <mguesdon@sbuilders.com>
+# Based on WOBundle.make by Helge Hess, MDlink online service center GmbH.
+# Based on bundle.make by Ovidiu Predescu <ovidiu@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+ifeq ($(strip $(GSWBUNDLE_EXTENSION)),)
+GSWBUNDLE_EXTENSION = .gswbundle
+endif
+
+GSWBUNDLE_NAME := $(strip $(GSWBUNDLE_NAME))
+
+internal-all:: $(GSWBUNDLE_NAME:=.all.gswbundle.variables)
+
+internal-install:: $(GSWBUNDLE_NAME:=.install.gswbundle.variables)
+
+internal-uninstall:: $(GSWBUNDLE_NAME:=.uninstall.gswbundle.variables)
+
+internal-clean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) \
+ $(addsuffix $(GSWBUNDLE_EXTENSION),$(GSWBUNDLE_NAME)))
+
+internal-distclean::
+ (CD $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj)
+
+GSWBUNDLES_WITH_SUBPROJECTS = $(strip $(foreach gswbundle,$(GSWBUNDLE_NAME),$(patsubst %,$(gswbundle),$($(gswbundle)_SUBPROJECTS))))
+ifneq ($(GSWBUNDLES_WITH_SUBPROJECTS),)
+internal-clean:: $(GSWBUNDLES_WITH_SUBPROJECTS:=.clean.gswbundle.subprojects)
+internal-distclean:: $(GSWBUNDLES_WITH_SUBPROJECTS:=.distclean.gswbundle.subprojects)
+endif
+
+internal-all:: $(GSWBUNDLE_NAME:=.all.gswbundle.variables)
+
+$(GSWBUNDLE_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.gswbundle.variables
--- /dev/null
+#
+# Master/java-tool.make
+#
+# Master Makefile rules to build Java command-line tools.
+#
+# Copyright (C) 2001 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Why using Java if you can use Objective-C ...
+# Anyway if you really want it, here we go.
+
+#
+# The name of the tools is in the JAVA_TOOL_NAME variable.
+# The main class (the one implementing main) is in the
+# xxx_PRINCIPAL_CLASS variable.
+#
+
+JAVA_TOOL_NAME := $(strip $(JAVA_TOOL_NAME))
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+internal-all:: $(JAVA_TOOL_NAME:=.all.java_tool.variables)
+
+internal-install:: $(JAVA_TOOL_NAME:=.install.java_tool.variables)
+
+internal-uninstall:: $(JAVA_TOOL_NAME:=.uninstall.java_tool.variables)
+
+internal-clean:: $(JAVA_TOOL_NAME:=.clean.java_tool.variables)
+
+internal-distclean::
+
+JAVA_TOOLS_WITH_SUBPROJECTS = $(strip $(foreach java_tool,$(JAVA_TOOL_NAME),$(patsubst %,$(java_tool),$($(java_tool)_SUBPROJECTS))))
+ifneq ($(JAVA_TOOLS_WITH_SUBPROJECTS),)
+internal-distclean:: $(JAVA_TOOLS_WITH_SUBPROJECTS:=.distclean.java_tool.subprojects)
+endif
+
+$(JAVA_TOOL_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.java_tool.variables
--- /dev/null
+#
+# Master/java.make
+#
+# Master Makefile rules to build java-based (not necessarily
+# GNUstep) packages.
+#
+# Copyright (C) 2000 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+JAVA_PACKAGE_NAME := $(strip $(JAVA_PACKAGE_NAME))
+
+internal-all:: $(JAVA_PACKAGE_NAME:=.all.java-package.variables)
+
+internal-install:: $(JAVA_PACKAGE_NAME:=.install.java-package.variables)
+
+internal-uninstall:: $(JAVA_PACKAGE_NAME:=.uninstall.java-package.variables)
+
+internal-clean:: $(JAVA_PACKAGE_NAME:=.clean.java-package.variables)
+
+internal-distclean::
+
+JAVA_PACKAGES_WITH_SUBPROJECTS = $(strip $(foreach java-package,$(JAVA_PACKAGE_NAME),$(patsubst %,$(java-package),$($(java-package)_SUBPROJECTS))))
+ifneq ($(JAVA_PACKAGES_WITH_SUBPROJECTS),)
+internal-distclean:: $(JAVA_PACKAGES_WITH_SUBPROJECTS:=.distclean.java-package.subprojects)
+endif
+
+$(JAVA_PACKAGE_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.java-package.variables
--- /dev/null
+#
+# Master/library.make
+#
+# Master Makefile rules to build GNUstep-based libraries.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Ovidiu Predescu <ovidiu@net-community.com>
+# Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+LIBRARY_NAME := $(strip $(LIBRARY_NAME))
+
+internal-all:: $(LIBRARY_NAME:=.all.library.variables)
+
+internal-install:: $(LIBRARY_NAME:=.install.library.variables)
+
+internal-uninstall:: $(LIBRARY_NAME:=.uninstall.library.variables)
+
+_PSWRAP_C_FILES = $(foreach lib,$(LIBRARY_NAME),$($(lib)_PSWRAP_FILES:.psw=.c))
+_PSWRAP_H_FILES = $(foreach lib,$(LIBRARY_NAME),$($(lib)_PSWRAP_FILES:.psw=.h))
+
+internal-clean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES))
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj)
+
+LIBRARIES_WITH_SUBPROJECTS = $(strip $(foreach library,$(LIBRARY_NAME),$(patsubst %,$(library),$($(library)_SUBPROJECTS))))
+ifneq ($(LIBRARIES_WITH_SUBPROJECTS),)
+internal-clean:: $(LIBRARIES_WITH_SUBPROJECTS:=.clean.library.subprojects)
+internal-distclean:: $(LIBRARIES_WITH_SUBPROJECTS:=.distclean.library.subprojects)
+endif
+
+internal-strings:: $(LIBRARY_NAME:=.strings.library.variables)
+
+$(LIBRARY_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.library.variables
--- /dev/null
+#
+# Master/objc.make
+#
+# Master Makefile rules to build ObjC-based (but not GNUstep) programs.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+OBJC_PROGRAM_NAME := $(strip $(OBJC_PROGRAM_NAME))
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+internal-all:: $(OBJC_PROGRAM_NAME:=.all.objc-program.variables)
+
+internal-install:: $(OBJC_PROGRAM_NAME:=.install.objc-program.variables)
+
+internal-uninstall:: $(OBJC_PROGRAM_NAME:=.uninstall.objc-program.variables)
+
+internal-clean::
+ rm -rf $(GNUSTEP_OBJ_DIR)
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj)
+
+OBJC_PROGRAMS_WITH_SUBPROJECTS = $(strip $(foreach objc_program,$(OBJC_PROGRAM_NAME),$(patsubst %,$(objc_program),$($(objc_program)_SUBPROJECTS))))
+ifneq ($(OBJC_PROGRAMS_WITH_SUBPROJECTS),)
+internal-clean:: $(OBJC_PROGRAMS_WITH_SUBPROJECTS:=.clean.objc-program.subprojects)
+internal-distclean:: $(OBJC_PROGRAMS_WITH_SUBPROJECTS:=.distclean.objc-program.subprojects)
+endif
+
+internal-strings:: $(OBJC_PROGRAM_NAME:=.strings.objc-program.variables)
+
+$(OBJC_PROGRAM_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.objc-program.variables
--- /dev/null
+#
+# Master/palette.make
+#
+# Master Makefile rules to build GNUstep-based palettes.
+#
+# Copyright (C) 1999 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Author: Richard Frith-Macdonald <richard@brainstorm.co.uk>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+PALETTE_NAME:=$(strip $(PALETTE_NAME))
+
+internal-all:: $(PALETTE_NAME:=.all.palette.variables)
+
+internal-install:: $(PALETTE_NAME:=.install.palette.variables)
+
+internal-uninstall:: $(PALETTE_NAME:=.uninstall.palette.variables)
+
+_PSWRAP_C_FILES = $(foreach palette,$(PALETTE_NAME),$($(palette)_PSWRAP_FILES:.psw=.c))
+_PSWRAP_H_FILES = $(foreach palette,$(PALETTE_NAME),$($(palette)_PSWRAP_FILES:.psw=.h))
+
+internal-clean::
+ifeq ($(GNUSTEP_FLATTENED),)
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES) \
+ *.palette/$(GNUSTEP_TARGET_LDIR))
+else
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES) \
+ *.palette)
+endif
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj *.palette)
+
+PALETTES_WITH_SUBPROJECTS = $(strip $(foreach palette,$(PALETTE_NAME),$(patsubst %,$(palette),$($(palette)_SUBPROJECTS))))
+ifneq ($(PALETTES_WITH_SUBPROJECTS),)
+internal-clean:: $(PALETTES_WITH_SUBPROJECTS:=.clean.palette.subprojects)
+endif
+
+internal-strings:: $(PALETTE_NAME:=.strings.palette.variables)
+
+$(PALETTE_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.palette.variables
--- /dev/null
+#
+# Master/resource-set.make
+#
+# Master makefile rules to install resource files
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+RESOURCE_SET_NAME := $(strip $(RESOURCE_SET_NAME))
+
+# Only install and uninstall are actually performed for this project type
+
+internal-all::
+
+internal-install:: $(RESOURCE_SET_NAME:=.install.resource-set.variables)
+
+internal-uninstall:: $(RESOURCE_SET_NAME:=.uninstall.resource-set.variables)
+
+internal-clean::
+
+internal-distclean::
+
--- /dev/null
+#
+# rpm.make
+#
+# Makefile rules to build a RPM spec files and RPM packages
+#
+# Copyright (C) 2001 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# FIXME: Move all this documentation into the documentation
+#
+
+#
+# FIXME/TODO: Update for GNUSTEP_BUILD_DIR
+#
+
+# rpm puts all tools, bundles, applications, subprojects, libraries,
+# etc specified in the GNUmakefile into a single rpm. There aren't any
+# provisions for putting separate apps/tools/etc in separate rpms
+# (other than putting them in separate dirs).
+#
+# Note: we don't make development packages separated from the standard
+# ones. Every package containing a library's object files will also
+# contain the header files for the library <only the ones which were
+# declared in the makefile of course>.
+#
+#
+# You can build two kind of packages:
+# - normal packages
+# - debugging packages
+#
+# First we describe normal packages.
+#
+# the make package generates automatically:
+# * the .tgz source file to be copied into where_you_build_rpms/SOURCES/
+# <generated by source-dist.make>
+#
+# * the spec file to be copied into where_you_build_rpms/SPECS/
+# <generate by rpm.make>
+#
+# at this point, to build the rpm you just do
+# cd where_you_build_rpms/SPECS/
+# rpm -ba my_package.spec
+#
+# If you are *very* lazy, typing `make rpm' will do it all automatically
+# for you. But in that case, you need to have set the shell environment
+# variable `RPM_TOPDIR' to the top dir of where you build rpms (eg,
+# /usr/src/redhat/).
+#
+
+# To build the spec file for a package, you need to do two things:
+
+# [1] Add - after common.make - the following lines in your GNUmakefile:
+#
+# PACKAGE_NAME = Gomoku
+# PACKAGE_VERSION = 1.1.1
+#
+# (replace them with name, version of your software). This is mainly
+# needed so that when you build the .tgz and the spec file, they have
+# names which are in sync. Make sure to keep the library version and
+# the package version in sync.
+#
+# The other important variable you may want to set in your makefiles is
+#
+# GNUSTEP_INSTALLATION_DIR - Installation dir (defaults to GNUSTEP_LOCAL_ROOT)
+#
+# If your package is relocatable (this is true by default - see below
+# for how to make it non-relocatable) the user will be able to install
+# the package elsewhere by using something like `rpm -Uvh --prefix
+# /home/nicola/GNUstep your_package.rpm' when installing the package.
+#
+
+# [2] Provide a $(PACKAGE_NAME).spec.in file, which contains the RPM
+# spec preamble. Here is an example:
+
+# Summary: A table board game
+# Release: 1
+# Copyright: GPL
+# Group: Amusements/Games
+# Source: http://www.gnustep.it/nicola/Applications/Gomoku/%{gs_name}-%{gs_version}.tar.gz
+#
+# %description
+# Gomoku is an extended TicTacToe game for GNUstep. You win the game if
+# you are able to put 5 of your pieces in a row, column or diagonal. You
+# loose if the computer does it before you. You can play the game on
+# boards of different size; the default size is 8 but 10 is also nice to
+# play. The game has 6 different difficulty levels.
+
+# Comments:
+# you must not include: `Name', `Version', `BuildRoot' and `Prefix'
+# entries. These are generated automatically; `Name' and `Version'
+# from $(PACKAGE_NAME) and $(PACKAGE_VERSION), and so for BuildRoot
+# and Prefix. you might include all the other tags listed in the RPM
+# doc if you want. The `Prefix:' entry is automatically included only
+# if your package is relocatable (should be the default for all
+# non-system packages. If you want your package to be non-relocatable
+# (to be used only for system packages which *must* be installed in
+# GNUSTEP_SYSTEM_ROOT), add the line
+#
+# RPM_DISABLE_RELOCATABLE=YES
+#
+# (FIXME improve variable name) to your GNUmakefile. This will not generate
+# a `Prefix:' line in the spec file.
+#
+#
+# You can use the following if you need:
+# %{gs_name} expands to the value of the make variable PACKAGE_NAME
+# %{gs_version} expands to the value of the make variable PACKAGE_VERSION
+# (make sure you use them in `Source:' as shown).
+#
+#
+
+# A special note: if you need `./configure --prefix=/usr/GNUstep'
+# (/usr/GNUstep being replaced by your GNUSTEP_SYSTEM_ROOT) to be run
+# before compilation (usually only needed for GNUstep core libraries
+# themselves), define the following make variable:
+#
+# PACKAGE_NEEDS_CONFIGURE = YES
+#
+# in your makefile.
+
+#
+# At this point, typing
+# `make dist' will generate the .tgz (can be used outside rpm.make)
+# `make specfile' will generate the (matching) specfile.
+#
+
+#
+# Debugging packages.
+#
+
+#
+# A debugging package is called
+# $(PACKAGE_NAME)-debug-$(PACKAGE_VERSION) rather than
+# $(PACKAGE_NAME)-$(PACKAGE_VERSION). The source .tgz have the same
+# name though. The source rpm package instead has a different name
+# because it contains the .spec file, which is different between debug
+# and non debug version.
+#
+# To build the spec for the debugging package, type `make debug=yes specfile'.
+# This builds a specfile as for the non-debugging package, except:
+#
+# It uses $(PACKAGE_NAME)-debug.spec.in rather than
+# ${PACKAGE_NAME).spec.in if found. (this allows you to customize
+# package description, summary, release number, group for the
+# debugging case).
+#
+# It will compile everything with debugging enabled when building the
+# debugging package.
+#
+# It will manage the package having a different name (eg
+# Gomoku-debug-1.1.1) than the .tgz (eg Gomoku-1.1.1.tgz).
+#
+# Unless `standalone=yes' (ie, unless you create the specfile using
+# `make debug=yes standalone=yes specfile') it will perform the following
+# additional tasks:
+#
+# * build and install the non-debugging software before the debugging one;
+# * remove from the debugging package all files already included in the
+# non-debugging one (this is why it needs to build the non-debugging
+# software first);
+# * add a dependency of the debugging package from the non-debugging one.
+#
+# <FIXME: Add comments about when is appropriate one and when the other one>
+
+#
+# As said before, if you are very lazy, typing something like
+#
+# make distclean
+# `RPM_TOPDIR=/usr/src/redhat' make rpm
+#
+# will do the whole job once you have written your '.spec.in' file,
+# and set the PACKAGE_NAME and PACKAGE_VERSION variables in the makefile.
+# The generated rpm will be in /usr/src/redhat/RPMS/.
+#
+
+#
+# Internal targets
+#
+
+# If we have been called with something like
+#
+# make INSTALL_ROOT_DIR=/var/tmp/package-build/ \
+# GNUSTEP_INSTALLATION_DIR=/var/tmp/package-build/usr/GNUstep/Local \
+# filelist=yes install
+#
+# we are being called inside the rpm installation stage, and we need
+# to produce the file list from the installed files.
+
+ifeq ($(filelist),yes)
+
+ # Build the file-list only at top level
+# ifeq ($(MAKELEVEL),0)
+
+ # Determine which file list to build
+ ifeq ($(debug),yes)
+ FILE_LIST = $(shell pwd)/file-list-debug
+ else
+ FILE_LIST = $(shell pwd)/file-list
+ endif
+
+ # Remove the old file list before installing, and initialize the new one.
+ before-install::
+ -rm -f $(FILE_LIST)
+ echo "%attr (-, root, root)" >> $(FILE_LIST)
+
+ # install - done by other GNUmakefiles - NB: must install everything inside
+ # GNUSTEP_INSTALLATION_DIR, or prefix all installation dirs with
+ # $INSTALL_ROOT_DIR such as
+ # $(INSTALL_DATA) page.html $(INSTALL_ROOT_DIR)/usr/local/MySoftware/
+ # instead of $(INSTALL_DATA) page.html /usr/local/MySoftware/
+
+ # Get the list of files inside GNUSTEP_INSTALL_BASE
+ internal-after-install::
+ for file in `$(TAR) Pcf - $(INSTALL_ROOT_DIR) | $(TAR) t`; do \
+ if [ -d "$$file" ]; then \
+ echo "%dir $$file" > /dev/null; \
+ else \
+ echo "$$file" >> $(FILE_LIST); \
+ fi; \
+ done
+ sed -e "s|$(INSTALL_ROOT_DIR)||" $(FILE_LIST) > file-list.tmp
+ mv file-list.tmp $(FILE_LIST)
+
+# endif # MAKELEVEL
+
+endif # filelist == yes
+
+
+#
+# Manage debug vs non-debug
+#
+ifneq ($(debug), yes)
+ SPEC_FILE=$(PACKAGE_NAME).spec
+ SPEC_RULES_TEMPLATE=$(GNUSTEP_MAKEFILES)/spec-rules.template
+ SPEC_IN=$(PACKAGE_NAME).spec.in
+ SPEC_SCRIPT_IN=$(PACKAGE_NAME).script.spec.in
+ PACKAGE_EXTENSION=""
+else
+ SPEC_FILE=$(PACKAGE_NAME)-debug.spec
+ ifeq ($(standalone),yes)
+ SPEC_RULES_TEMPLATE=$(GNUSTEP_MAKEFILES)/spec-debug-alone-rules.template
+ else
+ SPEC_RULES_TEMPLATE=$(GNUSTEP_MAKEFILES)/spec-debug-rules.template
+ endif
+ SPEC_IN=$(PACKAGE_NAME)-debug.spec.in
+ SPEC_SCRIPT_IN=$(PACKAGE_NAME)-debug.script.spec.in
+ PACKAGE_EXTENSION="-debug"
+endif
+
+.PHONY: specfile rpm check-RPM_TOPDIR
+
+#
+# The user will type `make specfile' to generate the specfile
+#
+specfile: $(SPEC_FILE)
+
+#
+# Issue a warning if the $(PACKAGE_NAME)-debug.spec.in file is not found
+#
+$(PACKAGE_NAME)-debug.spec.in:
+ @echo "WARNING - $(PACKAGE_NAME)-debug.spec.in not found!"
+ @echo "You need to create it to build the debugging package."
+ @echo "If you already have a $(PACKAGE_NAME).spec.in, just take it as"
+ @echo "a start for the $(PACKAGE_NAME)-debug.spec.in - and make"
+ @echo "the little necessary changes in summary and description."
+ @echo ""
+
+#
+# This is the real target - depends on having a correct .spec.in file
+#
+$(SPEC_FILE): $(SPEC_IN)
+ @echo "Generating the spec file..."
+ @-rm -f $@
+ @echo "##" >> $@
+ @echo "## Generated automatically by GNUstep make - do not edit!" >> $@
+ @echo "## Edit the $(SPEC_IN) file instead" >> $@
+ @echo "##" >> $@
+ @echo " " >> $@
+ @echo "## Code dynamically generated" >> $@
+ @echo "%define gs_root $(GNUSTEP_SYSTEM_ROOT)" >> $@
+ @echo "%define gs_install_dir $(GNUSTEP_INSTALLATION_DIR)" >> $@
+ @echo "%define gs_name $(PACKAGE_NAME)" >> $@
+ @echo "%define gs_version $(PACKAGE_VERSION)" >> $@
+ifeq ($(PACKAGE_NEEDS_CONFIGURE),YES)
+ @echo "%define gs_configure YES" >> $@
+else
+ @echo "%define gs_configure NO" >> $@
+endif
+ @echo " " >> $@
+ @echo "Name: %{gs_name}$(PACKAGE_EXTENSION)" >> $@
+ @echo "Version: %{gs_version}" >> $@
+ @echo "BuildRoot: /var/tmp/%{gs_name}-buildroot" >> $@
+ifeq ($(RPM_DISABLE_RELOCATABLE),YES)
+ @echo "Prefix: %{gs_install_dir}" >> $@
+endif
+ifeq ($(debug),yes)
+ifneq ($(standalone),yes)
+ @echo "requires: %{gs_name} = %{gs_version}" >> $@
+endif
+endif
+ @echo "" >> $@
+ @echo "## Code from $(SPEC_IN)" >> $@
+ @cat $(SPEC_IN) >> $@
+ @echo "" >> $@
+ @echo "## Fixed rules from $(SPEC_RULES_TEMPLATE)" >> $@
+ @cat $(SPEC_RULES_TEMPLATE) >> $@
+ @ if [ -f $(SPEC_SCRIPT_IN) ]; then \
+ echo "" >> $@; \
+ echo "## Script rules from $(SPEC_SCRIPT_IN)" >> $@; \
+ cat $(SPEC_SCRIPT_IN) >> $@; \
+ fi
+
+check-RPM_TOPDIR:
+ @if [ "$(RPM_TOPDIR)" = "" ]; then \
+ echo "I can't build the RPM if you do not set your RPM_TOPDIR"; \
+ echo "shell variable"; \
+ exit 1; \
+ fi;
+
+# In old RPM versions, building was done using 'rpm -ba'; in newer RPM
+# versions, it can only be done using 'rpmbuild -ba'. Try to support
+# the old RPM versions by using 'rpm' instead of 'rpmbuild', if
+# 'rpmbuild' is not available. This hack can presumably be removed
+# when all RPM versions on earth will have been updated to the new
+# setup (it might take a while).
+
+rpm: check-RPM_TOPDIR dist specfile
+ @echo "Generating the rpm...";
+ifneq ($(RELEASE_DIR),)
+ @cp $(RELEASE_DIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz \
+ $(RPM_TOPDIR)/SOURCES/;
+else
+ @cp ../$(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz $(RPM_TOPDIR)/SOURCES/;
+endif
+ @cp $(SPEC_FILE) $(RPM_TOPDIR)/SPECS/; \
+ cd $(RPM_TOPDIR)/SPECS/; \
+ if which rpmbuild > /dev/null 2>/dev/null; then \
+ rpmbuild="rpmbuild"; \
+ else \
+ if which rpm > /dev/null 2>/dev/null; then \
+ rpmbuild="rpm"; \
+ else \
+ echo "Error: You don't have rpm installed!"; \
+ rpmbuild="rpmbuild"; \
+ fi; \
+ fi; \
+ $${rpmbuild} -ba $(SPEC_FILE)
+
+ifneq ($(PACKAGE_NAME),)
+internal-distclean::
+ rm -rf $(PACKAGE_NAME).spec $(PACKAGE_NAME)-debug.spec
+endif
--- /dev/null
+# -*-makefile-*-
+# rules.make
+#
+# Makefile rules for the Master invocation.
+#
+# Copyright (C) 1997, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# Quick explanation -
+#
+# Say that you run `make all'. The rule for `all' is below here, and
+# depends on internal-all. Rules for internal-all are found in
+# tool.make, library.make etc; there, internal-all will depend on a
+# list of appropriate %.variables targets, such as
+# gsdoc.tool.all.variables <which means we need to make `all' for the
+# `tool' called `gsdoc'> - to process these prerequisites, the
+# %.variables rule below is used. this rule gets an appropriate make
+# subprocess going, with the task of building that specific
+# instance-type-operation prerequisite. The make subprocess will be run
+# as in `make internal-tool-all INTERNAL_tool_NAME=gsdoc ...<and other
+# variables>' and this make subprocess wil find the internal-tool-all
+# rule in tool.make, and execute that, building the tool.
+#
+# Hint: run make with `make -n' to see the recursive method invocations
+# with the parameters used
+#
+
+#
+# Global targets
+#
+
+# The first time you invoke `make', if you have not given a target,
+# `all' is executed as it is the first one. If a GNUSTEP_BUILD_DIR is
+# specifed, make sure to create it before anything else is done.
+ifeq ($(GNUSTEP_BUILD_DIR),.)
+all:: before-all internal-all after-all
+else
+all:: $(GNUSTEP_BUILD_DIR) before-all internal-all after-all
+endif
+
+# internal-after-install is used by packaging to get the list of files
+# installed (see rpm.make); it must come after *all* the installation
+# rules have been executed.
+# internal-check-installation-permissions comes before everything so
+# that we run any command if we aren't allowed to install
+# install depends on all as per GNU/Unix habits, conventions and standards.
+ifeq ($(MAKELEVEL),0)
+install:: internal-check-install-permissions all \
+ before-install internal-install after-install internal-after-install
+else
+install:: before-install internal-install after-install internal-after-install
+endif
+
+uninstall:: before-uninstall internal-uninstall after-uninstall
+
+clean:: before-clean internal-clean after-clean
+
+ifeq ($(MAKELEVEL),0)
+distclean:: clean before-distclean internal-distclean after-distclean
+else
+distclean:: before-distclean internal-distclean after-distclean
+endif
+
+check:: before-check internal-check after-check
+
+strings:: before-strings internal-strings after-strings
+
+#
+# Placeholders for internal targets
+#
+
+before-all::
+
+internal-all::
+
+after-all::
+
+# In case of problems, we print a message trying to educate the user
+# about how to install elsewhere, except if the installation dir is
+# GNUSTEP_SYSTEM_ROOT, in that case we don't want to suggest to
+# install the software elsewhere, because it is likely to be system
+# software like the gnustep-base library. NB: the check of
+# GNUSTEP_INSTALLATION_DIR against GNUSTEP_SYSTEM_ROOT is not perfect
+# as /usr/GNUstep/System/ might not match /usr/GNUstep/System (note
+# the missing '/' at the end) but what we really want to catch is the
+# GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_SYSTEM_ROOT) command in the
+# makefiles, and the check of course works with it.
+internal-check-install-permissions:
+ @if [ -d "$(GNUSTEP_INSTALLATION_DIR)" \
+ -a ! -w "$(GNUSTEP_INSTALLATION_DIR)" ]; then \
+ echo "*ERROR*: the software is configured to install itself into $(GNUSTEP_INSTALLATION_DIR)"; \
+ echo "but you do not have permissions to write in that directory:";\
+ echo "Aborting installation."; \
+ echo ""; \
+ if [ "$(GNUSTEP_INSTALLATION_DIR)" != "$(GNUSTEP_SYSTEM_ROOT)" ]; then \
+ echo "Suggestion: if you can't get permissions to install there, you can try";\
+ echo "to install the software in a different directory by setting";\
+ echo "GNUSTEP_INSTALLATION_DIR. For example, to install into";\
+ echo "$(GNUSTEP_USER_ROOT), which is your own GNUstep directory, just type"; \
+ echo ""; \
+ echo "make install GNUSTEP_INSTALLATION_DIR=\"$(GNUSTEP_USER_ROOT)\""; \
+ echo ""; \
+ echo "You should always be able to install into $(GNUSTEP_USER_ROOT),";\
+ echo "so this might be a good option. The other meaningful values for";\
+ echo "GNUSTEP_INSTALLATION_DIR on your system are:";\
+ echo "$(GNUSTEP_SYSTEM_ROOT) (the System directory)";\
+ echo "$(GNUSTEP_LOCAL_ROOT) (the Local directory)";\
+ echo "$(GNUSTEP_NETWORK_ROOT) (the Network directory)";\
+ echo "but you might need special permissions to install in those directories.";\
+ fi; \
+ exit 1; \
+ fi
+
+before-install::
+
+internal-install::
+
+after-install::
+
+# The following for exclusive use of packaging code
+internal-after-install::
+
+before-uninstall::
+
+internal-uninstall::
+
+after-uninstall::
+
+before-clean::
+
+internal-clean::
+ rm -rf $(GNUSTEP_BUILD_DIR)/*~ $(GNUSTEP_BUILD_DIR)/obj
+
+after-clean::
+
+before-distclean::
+
+internal-distclean::
+ rm -f $(GNUSTEP_BUILD_DIR)/core
+
+after-distclean::
+
+before-check::
+
+internal-check::
+
+after-check::
+
+before-strings::
+
+internal-strings::
+
+after-strings::
+
+# declare targets as PHONY
+
+.PHONY: all before-all internal-all after-all \
+ install before-install internal-install after-install \
+ internal-after-install \
+ uninstall before-uninstall internal-uninstall after-uninstall \
+ clean before-clean internal-clean after-clean \
+ distclean before-distclean internal-distclean after-distclean \
+ check before-check internal-check after-check \
+ strings before-strings internal-strings after-strings
+
+# Prevent make from trying to remove stuff like
+# libcool.library.all.subprojects thinking that it is a temporary file
+.PRECIOUS: %.variables %.subprojects
+
+#
+## The magical %.variables rules, thank you GNU make!
+#
+
+# The %.variables target has to be called with the name of the actual
+# instance, followed by the operation, then the makefile fragment to be
+# called and then the variables word. Suppose for example we build the
+# library libgmodel, the target should look like:
+#
+# libgmodel.all.library.variables
+#
+# when the rule is executed, $* is libgmodel.all.libray;
+# instance will be libgmodel
+# operation will be all
+# type will be library
+#
+# this rule might be executed many times, for different targets to build.
+
+# the rule then calls a submake, which runs the real code
+
+# the following is the code used in %.variables and %.subprojects
+# to extract the instance, operation and type from the $* (the stem) of the
+# rule. with GNU make => 3.78, we could define the following as macros
+# and use $(call ...) to call them; but because we have users who are using
+# GNU make older than that, we have to manually `paste' this code
+# wherever we need to access instance or type or operation.
+#
+# Anyway, the following table tells you what these commands do -
+#
+# instance=$(basename $(basename $(1)))
+# operation=$(subst .,,$(suffix $(basename $(1))))
+# type=$(subst -,_,$(subst .,,$(suffix $(1))))
+#
+# It's very important to notice that $(basename $(basename $*)) in
+# these rules is simply the instance (such as libgmodel).
+
+# NB: INTERNAL_$${type}_NAME and TARGET are deprecated - use
+# GNUSTEP_INSTANCE instead.
+
+# Before building the real thing, we must build the subprojects
+
+# If we are at the very first make invocation, convert
+# GNUSTEP_BUILD_DIR into an absolute path. All other make invocations
+# can then assume it is already an absolute path form, and avoid the
+# shell invocation to convert into absolute path. Let's avoid the
+# shell invocation unless strictly necessary - it's slow.
+ifeq ($(MAKELEVEL),0)
+ ifneq ($(GNUSTEP_BUILD_DIR),.)
+
+ # We can't use ':=' here (which we'd like, since it would guarantee
+ # that the shell command is executed only once) because ':=' would
+ # cause the shell command to be executed immediately, which is *now*
+ # during parsing, before any rule has been executed; in particular,
+ # before the rule which creates GNUSTEP_BUILD_DIR has been executed
+ # (if it had to be executed), and that might cause the 'cd' in the
+ # following shell command to fail. So what we do, is we define this
+ # as a simple variable with '=', which means it will be evaluated
+ # every time it is used, but not before, and then we make sure to
+ # use it as little as possible and only in rules which are executed
+ # after the rule to build GNUSTEP_BUILD_DIR. Please note that in
+ # this setup, *any* reference to this variable causes a slow
+ # subshell invocation. At the moment, it's used when running
+ # the subprojects/variables and when running the aggregate
+ # projects.
+
+ # That makes 1 invocation per type of project per type of target
+ # used in the top-level makefile. For example, if the top-level
+ # makefile includes aggregate.make and documentation.make and does
+ # a make all, we evaluate this variable twice. If it does a make
+ # distclean (which automatically invokes make clean as well) we
+ # evaluate this variable 4 times. All non-top-level make code
+ # is free from overhead.
+ # In the rules which need the ABS_GNUSTEP_BUILD_DIR variable more
+ # than once we copy it into a shell variable and reuse the shell
+ # variable to avoid evaluating ABS_GNUSTEP_BUILD_DIR multiple
+ # times in the same rule.
+ # DO NOT EVER USE THIS VARIABLE UNLESS YOU FULLY UNDERSTAND THE
+ # PERFORMANCE IMPLICATIONS JUST DESCRIBED.
+ ABS_GNUSTEP_BUILD_DIR = $(shell (cd "$(GNUSTEP_BUILD_DIR)"; pwd))
+ else
+ ABS_GNUSTEP_BUILD_DIR = .
+ endif
+else
+ ABS_GNUSTEP_BUILD_DIR = $(strip $(GNUSTEP_BUILD_DIR))
+endif
+
+# If you change the subprojects code here, make sure to update the
+# %.subprojects rule below too! The code from the %.subprojects rule
+# below is 'inlined' here for speed (so that we don't run a separate
+# shell just to execute that code).
+%.variables:
+ @ \
+instance=$(basename $(basename $*)); \
+operation=$(subst .,,$(suffix $(basename $*))); \
+type=$(subst -,_,$(subst .,,$(suffix $*))); \
+abs_build_dir="$(ABS_GNUSTEP_BUILD_DIR)"; \
+if [ "$($(basename $(basename $*))_SUBPROJECTS)" != "" ]; then \
+ echo Making $$operation in subprojects of $$type $$instance...; \
+ for f in $($(basename $(basename $*))_SUBPROJECTS) __done; do \
+ if [ $$f != __done ]; then \
+ mf=$(MAKEFILE_NAME); \
+ if [ ! -f $$f/$$mf -a -f $$f/Makefile ]; then \
+ mf=Makefile; \
+ echo "WARNING: No $(MAKEFILE_NAME) found for subproject $$f; using 'Makefile'"; \
+ fi; \
+ if [ "$${abs_build_dir}" = "." ]; then \
+ gsbuild="."; \
+ else \
+ gsbuild="$${abs_build_dir}/$$f"; \
+ fi; \
+ if [ "$(OWNING_PROJECT_HEADER_DIR_NAME)" = "" ]; then \
+ if [ "$$type" = "framework" ]; then \
+ framework_version="$($(basename $(basename $*))_CURRENT_VERSION_NAME)"; \
+ if [ "$$framework_version" = "" ]; then framework_version="A"; fi; \
+ owning_project_header_dir="../$${instance}.framework/Versions/$${framework_version}/Headers"; \
+ else owning_project_header_dir=""; \
+ fi; \
+ else \
+ owning_project_header_dir="../$(OWNING_PROJECT_HEADER_DIR_NAME)"; \
+ fi; \
+ if $(MAKE) -C $$f -f $$mf --no-keep-going $$operation \
+ OWNING_PROJECT_HEADER_DIR_NAME="$${owning_project_header_dir}" \
+ DERIVED_SOURCES="../$(DERIVED_SOURCES)" \
+ GNUSTEP_BUILD_DIR="$$gsbuild" \
+ ; then \
+ :; \
+ else exit $$?; \
+ fi; \
+ fi; \
+ done; \
+fi; \
+echo Making $$operation for $$type $$instance...; \
+$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory --no-keep-going \
+ internal-$${type}-$$operation \
+ GNUSTEP_TYPE=$$type \
+ GNUSTEP_INSTANCE=$$instance \
+ GNUSTEP_OPERATION=$$operation \
+ INTERNAL_$${type}_NAME=$$instance \
+ TARGET=$$instance \
+ GNUSTEP_BUILD_DIR="$${abs_build_dir}"
+
+#
+# This rule provides exactly the same code as the %.variables one with
+# respect to subprojects; it is available for clean targets when they
+# want to run make clean in subprojects but do not need a full Instance
+# invocation. In that case, they can depend on %.subprojects only.
+#
+# NB: The OWNING_PROJECT_HEADER_DIR_NAME hack in this rule is sort of
+# horrible, because it pollutes this general rule with code specific
+# to the framework implementation (eg, where the framework headers are
+# located). Still, it's the least evil we could think of at the
+# moment :-) The framework code is now completely confined into
+# framework.make makefiles, except for this little hack in here. It
+# would be nice to remove this hack without loosing functionality (or
+# polluting other general-purpose makefiles).
+%.subprojects:
+ @ \
+instance=$(basename $(basename $*)); \
+operation=$(subst .,,$(suffix $(basename $*))); \
+type=$(subst -,_,$(subst .,,$(suffix $*))); \
+abs_build_dir="$(ABS_GNUSTEP_BUILD_DIR)"; \
+if [ "$($(basename $(basename $*))_SUBPROJECTS)" != "" ]; then \
+ echo Making $$operation in subprojects of $$type $$instance...; \
+ for f in $($(basename $(basename $*))_SUBPROJECTS) __done; do \
+ if [ $$f != __done ]; then \
+ mf=$(MAKEFILE_NAME); \
+ if [ ! -f $$f/$$mf -a -f $$f/Makefile ]; then \
+ mf=Makefile; \
+ echo "WARNING: No $(MAKEFILE_NAME) found for subproject $$f; using 'Makefile'"; \
+ fi; \
+ if [ "$${abs_build_dir}" = "." ]; then \
+ gsbuild="."; \
+ else \
+ gsbuild="$${abs_build_dir}/$$f"; \
+ fi; \
+ if [ "$(OWNING_PROJECT_HEADER_DIR_NAME)" = "" ]; then \
+ if [ "$$type" = "framework" ]; then \
+ framework_version="$($(basename $(basename $*))_CURRENT_VERSION_NAME)"; \
+ if [ "$$framework_version" = "" ]; then framework_version="A"; fi; \
+ owning_project_header_dir="../$${instance}.framework/Versions/$${framework_version}/Headers"; \
+ else owning_project_header_dir=""; \
+ fi; \
+ else \
+ owning_project_header_dir="../$(OWNING_PROJECT_HEADER_DIR_NAME)"; \
+ fi; \
+ if $(MAKE) -C $$f -f $$mf --no-keep-going $$operation \
+ OWNING_PROJECT_HEADER_DIR_NAME="$${owning_project_header_dir}" \
+ DERIVED_SOURCES="../$(DERIVED_SOURCES)" \
+ GNUSTEP_BUILD_DIR="$$gsbuild" \
+ ; then \
+ :; \
+ else exit $$?; \
+ fi; \
+ fi; \
+ done; \
+fi
+
+#
+# Now rules for packaging - all automatically included
+#
+
+PACKAGE_NAME := $(strip $(PACKAGE_NAME))
+
+ifeq ($(PACKAGE_NAME),)
+ # Use a default of unnamed-package if nothing better is provided.
+ PACKAGE_NAME := unnamed-package
+endif
+
+# For backwards compatibility, take value of PACKAGE_VERSION from
+# VERSION. New GNUmakefiles should all use the PACKAGE_VERSION
+# variable rather than the VERSION variable.
+ifeq ($(PACKAGE_VERSION),)
+
+ PACKAGE_VERSION = $(VERSION)
+
+ # Use a default of 0.0.1 if nothing better is provided.
+ ifeq ($(PACKAGE_VERSION),)
+ PACKAGE_VERSION = 0.0.1
+ endif
+
+endif
+
+#
+# Rules for building source distributions
+#
+include $(GNUSTEP_MAKEFILES)/Master/source-distribution.make
+
+#
+# Rules for building spec files/file lists for RPMs, and RPMs
+#
+include $(GNUSTEP_MAKEFILES)/Master/rpm.make
+
+#
+# Rules for building debian/* scripts for DEBs, and DEBs
+#
+#include $(GNUSTEP_MAKEFILES)/Master/deb.make <TODO>
--- /dev/null
+#
+# Master/service.make
+#
+# Master Makefile rules to build GNUstep-based services.
+#
+# Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+#
+# Author: Richard Frith-Macdonald <richard@brainstorm.co.uk>
+# Based on the makefiles by Scott Christley.
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+SERVICE_NAME := $(strip $(SERVICE_NAME))
+
+internal-all:: $(SERVICE_NAME:=.all.service.variables)
+
+internal-install:: $(SERVICE_NAME:=.install.service.variables)
+
+internal-uninstall:: $(SERVICE_NAME:=.uninstall.service.variables)
+
+_PSWRAP_C_FILES = $(foreach service,$(SERVICE_NAME),$($(service)_PSWRAP_FILES:.psw=.c))
+_PSWRAP_H_FILES = $(foreach service,$(SERVICE_NAME),$($(service)_PSWRAP_FILES:.psw=.h))
+
+internal-clean::
+ifeq ($(GNUSTEP_FLATTENED),)
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES) \
+ *.service/$(GNUSTEP_TARGET_LDIR))
+else
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES) \
+ *.service)
+endif
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj *.service)
+
+SERVICES_WITH_SUBPROJECTS = $(strip $(foreach service,$(SERVICE_NAME),$(patsubst %,$(service),$($(service)_SUBPROJECTS))))
+ifneq ($(SERVICES_WITH_SUBPROJECTS),)
+internal-clean:: $(SERVICES_WITH_SUBPROJECTS:=.clean.service.subprojects)
+internal-distclean:: $(SERVICES_WITH_SUBPROJECTS:=.distclean.service.subprojects)
+endif
+
+internal-strings:: $(SERVICE_NAME:=.strings.service.variables)
+
+$(SERVICE_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.service.variables
--- /dev/null
+#
+# source-distribution.make
+#
+# Makefile rules to build snapshots from cvs, source .tar.gz etc
+#
+# Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+#
+# Author: Adam Fedor <fedor@gnu.org>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# Interesting variables to define in your GNUmakefile:
+#
+# PACKAGE_NAME = gnustep-base
+# PACKAGE_VERSION = 1.0.0
+#
+# For CVS exports, you may want to define something like:
+#
+# CVS_MODULE_NAME = base
+# CVS_FLAGS = -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/gnustep
+#
+# CVS_TAG_NAME is the same as CVS_MODULE_NAME if not set and is used to
+# tag and retreive a module version
+#
+# You can also pass/override them on the command line if you want,
+# make cvs-snapshot CVS_FLAGS="-d :pserver:anoncvs@subversions.gnu.org:/cvsroot/gnustep -z9"
+#
+# If you set the RELEASE_DIR variable, all generated .tar.gz files will
+# be automatically moved to that directory after having being created.
+# RELEASE_DIR is either an absolute path, or a relative path to the
+# current directory.
+#
+#
+# By default, .tar.gz archives will be created for distributions.
+# You can change the compression mechanism used by setting COMPRESSION
+# to any of the following variables -
+#
+# none (no compression used)
+# gzip (gzip, it's the default)
+# bzip2 (bzip2)
+#
+# For example, 'make dist COMPRESSION=bzip2' creates a .tar.bz2 for
+# distribution.
+#
+#
+# If you want to omit some files from the distribution archive, add a
+# .dist-ignore file in the top-level directory of your package, listing
+# all files (/directories) you want to exclude from distribution.
+#
+
+ifeq ($(CVS_MODULE_NAME),)
+ CVS_MODULE_NAME = $(PACKAGE_NAME)
+endif
+ifeq ($(CVS_TAG_NAME),)
+ CVS_TAG_NAME = $(CVS_MODULE_NAME)
+endif
+
+ifeq ($(CVS_FLAGS),)
+ CVS_FLAGS = -z3
+endif
+
+# Set the cvs command we use. Most of the times, this is 'cvs' and
+# you need to do nothing. But you can override 'cvs' with something
+# else. Useful for example when you need cvs to go through runsocks
+# you can do make cvs-snapshot CVS='runsocks cvs'
+ifeq ($(CVS),)
+ CVS = cvs
+endif
+
+#
+# You can set COMPRESSION_PROGRAM and COMPRESSION_EXT by hand if your
+# COMPRESSION type is not listed here.
+#
+# Otherwise, set COMPRESSION to '' or 'gzip' (for gzip), to 'none'
+# (for no compression), to 'bzip2' (for bzip2), and
+# COMPRESSION_PROGRAM, COMPRESSION_EXT is set for you.
+#
+
+ifeq ($(COMPRESSION_PROGRAM),)
+
+ifeq ($(COMPRESSION), none)
+ COMPRESSION_PROGRAM = cat
+ COMPRESSION_EXT =
+else
+ifeq ($(COMPRESSION), bzip2)
+ COMPRESSION_PROGRAM = bzip2
+ COMPRESSION_EXT = .bz2
+else
+ifeq ($(COMPRESSION),)
+ COMPRESSION_PROGRAM = gzip
+ COMPRESSION_EXT = .gz
+else
+ifeq ($(COMPRESSION), gzip)
+ COMPRESSION_PROGRAM = gzip
+ COMPRESSION_EXT = .gz
+else
+ $(warning "Unrecognized COMPRESSION - available are 'none', 'gzip', 'bzip2'")
+ $(warning "Unrecognized COMPRESSION - using gzip")
+ COMPRESSION_PROGRAM = gzip
+ COMPRESSION_EXT = .gz
+endif
+endif
+endif
+endif
+
+endif # COMPRESSION
+
+VERSION_NAME = $(PACKAGE_NAME)-$(PACKAGE_VERSION)
+
+ARCHIVE_FILE = $(VERSION_NAME).tar$(COMPRESSION_EXT)
+
+VERTAG = $(subst .,_,$(PACKAGE_VERSION))
+
+.PHONY: dist cvs-tag cvs-dist cvs-snapshot internal-cvs-export
+
+#
+# Build a .tar.gz with the whole directory tree
+#
+dist: distclean
+ @echo "Generating $(ARCHIVE_FILE) in the parent directory..."; \
+ SNAPSHOT_DIR=`basename $$(pwd)`; \
+ cd ..; \
+ if [ "$$SNAPSHOT_DIR" != "$(VERSION_NAME)" ]; then \
+ if [ -d "$(VERSION_NAME)" ]; then \
+ echo "$(VERSION_NAME) already exists in parent directory (?):"; \
+ echo "Saving old version in $(VERSION_NAME)~"; \
+ mv $(VERSION_NAME) $(VERSION_NAME)~; \
+ fi; \
+ mv $$SNAPSHOT_DIR $(VERSION_NAME);\
+ fi; \
+ if [ -f $(ARCHIVE_FILE) ]; then \
+ echo "$(ARCHIVE_FILE) already exists:"; \
+ echo "Saving old version in $(ARCHIVE_FILE)~"; \
+ mv $(ARCHIVE_FILE) $(ARCHIVE_FILE)~; \
+ fi; \
+ if [ -f $(VERSION_NAME)/.dist-ignore ]; then \
+ tar cfX - $(VERSION_NAME)/.dist-ignore $(VERSION_NAME) \
+ | $(COMPRESSION_PROGRAM) > $(ARCHIVE_FILE); \
+ else \
+ tar cf - $(VERSION_NAME) \
+ | $(COMPRESSION_PROGRAM) > $(ARCHIVE_FILE); \
+ fi; \
+ if [ "$$SNAPSHOT_DIR" != "$(VERSION_NAME)" ]; then \
+ mv $(VERSION_NAME) $$SNAPSHOT_DIR; \
+ fi; \
+ if [ ! -f $(ARCHIVE_FILE) ]; then \
+ echo "*Error* creating .tar$(COMPRESSION_EXT) archive"; \
+ exit 1; \
+ fi;
+ifneq ($(RELEASE_DIR),)
+ @echo "Moving $(ARCHIVE_FILE) to $(RELEASE_DIR)..."; \
+ if [ ! -d $(RELEASE_DIR) ]; then \
+ $(MKDIRS) $(RELEASE_DIR); \
+ fi; \
+ if [ -f $(RELEASE_DIR)/$(ARCHIVE_FILE) ]; then \
+ echo "$(RELEASE_DIR)/$(ARCHIVE_FILE) already exists:"; \
+ echo "Saving old version in $(RELEASE_DIR)/$(ARCHIVE_FILE)~";\
+ mv $(RELEASE_DIR)/$(ARCHIVE_FILE) \
+ $(RELEASE_DIR)/$(ARCHIVE_FILE)~;\
+ fi; \
+ mv ../$(ARCHIVE_FILE) $(RELEASE_DIR)
+endif
+
+#
+# Tag the CVS source with the $(CVS_TAG_NAME)-$(VERTAG) tag
+#
+cvs-tag:
+ $(CVS) $(CVS_FLAGS) rtag $(CVS_TAG_NAME)-$(VERTAG) $(CVS_MODULE_NAME)
+
+#
+# Build a .tar.gz from the CVS sources using revision/tag
+# $(CVS_TAG_NAME)-$(VERTAG)
+#
+cvs-dist: EXPORT_CVS_FLAGS = -r $(CVS_TAG_NAME)-$(VERTAG)
+cvs-dist: internal-cvs-export
+
+#
+# Build a .tar.gz from the CVS source as they are now
+#
+cvs-snapshot: EXPORT_CVS_FLAGS = -D now
+cvs-snapshot: internal-cvs-export
+
+internal-cvs-export:
+ @echo "Exporting from module $(CVS_MODULE_NAME) on CVS..."; \
+ if [ -e $(CVS_MODULE_NAME) ]; then \
+ echo "*Error* cannot export: $(CVS_MODULE_NAME) already exists"; \
+ exit 1; \
+ fi; \
+ $(CVS) $(CVS_FLAGS) export $(EXPORT_CVS_FLAGS) $(CVS_MODULE_NAME); \
+ echo "Generating $(ARCHIVE_FILE)"; \
+ mv $(CVS_MODULE_NAME) $(VERSION_NAME); \
+ if [ -f $(ARCHIVE_FILE) ]; then \
+ echo "$(ARCHIVE_FILE) already exists:"; \
+ echo "Saving old version in $(ARCHIVE_FILE)~"; \
+ mv $(ARCHIVE_FILE) $(ARCHIVE_FILE)~; \
+ fi; \
+ if [ -f $(VERSION_NAME)/.dist-ignore ]; then \
+ tar cfX - $(VERSION_NAME)/.dist-ignore $(VERSION_NAME) \
+ | $(COMPRESSION_PROGRAM) > $(ARCHIVE_FILE); \
+ else \
+ tar cf - $(VERSION_NAME) \
+ | $(COMPRESSION_PROGRAM) > $(ARCHIVE_FILE); \
+ fi; \
+ rm -rf $(VERSION_NAME); \
+ if [ ! -f $(ARCHIVE_FILE) ]; then \
+ echo "*Error* creating .tar$(COMPRESSION_EXT) archive"; \
+ exit 1; \
+ fi;
+ifneq ($(RELEASE_DIR),)
+ @echo "Moving $(ARCHIVE_FILE) to $(RELEASE_DIR)..."; \
+ if [ ! -d $(RELEASE_DIR) ]; then \
+ $(MKDIRS) $(RELEASE_DIR); \
+ fi; \
+ if [ -f $(RELEASE_DIR)/$(ARCHIVE_FILE) ]; then \
+ echo "$(RELEASE_DIR)/$(ARCHIVE_FILE) already exists:"; \
+ echo "Saving old version in $(RELEASE_DIR)/$(ARCHIVE_FILE)~";\
+ mv $(RELEASE_DIR)/$(ARCHIVE_FILE) \
+ $(RELEASE_DIR)/$(ARCHIVE_FILE)~;\
+ fi; \
+ mv $(ARCHIVE_FILE) $(RELEASE_DIR)
+endif
--- /dev/null
+#
+# Master/subproject.make
+#
+# Master Makefile rules to build subprojects in GNUstep projects.
+#
+# Copyright (C) 1998, 2001 Free Software Foundation, Inc.
+#
+# Author: Jonathan Gapen <jagapen@whitewater.chem.wisc.edu>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+#
+# The name of the subproject is in the SUBPROJECT_NAME variable.
+#
+
+SUBPROJECT_NAME := $(strip $(SUBPROJECT_NAME))
+
+# Count the number of subprojects - we can support only one!
+ifneq ($(words $(SUBPROJECT_NAME)), 1)
+
+SUBPROJECT_NAME := $(word 1, $(SUBPROJECT_NAME))
+$(warning Only a single subproject can be built in any directory!)
+$(warning Ignoring all subprojects and building only $(SUBPROJECT_NAME))
+
+endif
+
+.PHONY: build-headers
+build-headers:: $(SUBPROJECT_NAME:=.build-headers.subproject.variables)
+
+internal-all:: $(SUBPROJECT_NAME:=.all.subproject.variables)
+
+internal-install:: $(SUBPROJECT_NAME:=.install.subproject.variables)
+
+internal-uninstall:: $(SUBPROJECT_NAME:=.uninstall.subproject.variables)
+
+_PSWRAP_C_FILES = $($(SUBPROJECT_NAME)_PSWRAP_FILES:.psw=.c)
+_PSWRAP_H_FILES = $($(SUBPROJECT_NAME)_PSWRAP_FILES:.psw=.h)
+
+internal-clean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES))
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj)
+
+SUBPROJECTS_WITH_SUBPROJECTS = $(strip $(patsubst %,$(SUBPROJECT_NAME),$($(SUBPROJECT_NAME)_SUBPROJECTS)))
+ifneq ($(SUBPROJECTS_WITH_SUBPROJECTS),)
+internal-clean:: $(SUBPROJECTS_WITH_SUBPROJECTS:=.clean.subproject.subprojects)
+internal-distclean:: $(SUBPROJECTS_WITH_SUBPROJECTS:=.distclean.subproject.subprojects)
+endif
+
+# If the subproject has a resource bundle, destroy it on distclean
+ifeq ($($(SUBPROJECT_NAME)_HAS_RESOURCE_BUNDLE), yes)
+internal-distclean::
+ rm -rf Resources
+endif
+
+internal-strings:: $(SUBPROJECT_NAME:=.strings.subproject.variables)
+
+$(SUBPROJECT_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.subproject.variables
--- /dev/null
+#
+# Master/test-application.make
+#
+# Copyright (C) 1997, 2001, 2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+TEST_APP_NAME := $(strip $(TEST_APP_NAME))
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+# Building of test applications works as in application.make, except
+# you can't install them!
+
+internal-all:: $(TEST_APP_NAME:=.all.test-app.variables)
+
+_PSWRAP_C_FILES = $(foreach app,$(TEST_APP_NAME),$($(app)_PSWRAP_FILES:.psw=.c))
+_PSWRAP_H_FILES = $(foreach app,$(TEST_APP_NAME),$($(app)_PSWRAP_FILES:.psw=.h))
+
+internal-clean::
+ifeq ($(GNUSTEP_FLATTENED),)
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES) \
+ *.$(APP_EXTENSION)/$(GNUSTEP_TARGET_LDIR))
+else
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES) \
+ *.$(APP_EXTENSION))
+endif
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj *.app *.debug *.profile)
+
+TEST_APPS_WITH_SUBPROJECTS = $(strip $(foreach test-app,$(TEST_APP_NAME),$(patsubst %,$(test-app),$($(test-app)_SUBPROJECTS))))
+ifneq ($(TEST_APPS_WITH_SUBPROJECTS),)
+internal-clean:: $(TEST_APPS_WITH_SUBPROJECTS:=.clean.test-app.subprojects)
+internal-distclean:: $(TEST_APPS_WITH_SUBPROJECTS:=.distclean.test-app.subprojects)
+endif
+
+internal-strings:: $(TEST_APP_NAME:=.strings.test-app.variables)
+
+$(TEST_APP_NAME)::
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.test-app.variables
+
+internal-install::
+ @ echo Skipping installation of test apps...
+
+internal-uninstall::
+ @ echo Skipping uninstallation of test apps...
--- /dev/null
+#
+# Master/test-library.make
+#
+# Master Makefile rules for dejagnu/GNUstep based testing
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+TEST_LIBRARY_NAME := $(strip $(TEST_LIBRARY_NAME))
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+internal-all:: $(TEST_LIBRARY_NAME:=.all.test-lib.variables)
+
+internal-install:: $(TEST_LIBRARY_NAME:=.install.test-lib.variables)
+
+internal-uninstall:: $(TEST_LIBRARY_NAME:=.uninstall.test-lib.variables)
+
+_PSWRAP_C_FILES = $(foreach lib,$(TEST_LIBRARY_NAME),$($(lib)_PSWRAP_FILES:.psw=.c))
+_PSWRAP_H_FILES = $(foreach lib,$(TEST_LIBRARY_NAME),$($(lib)_PSWRAP_FILES:.psw=.h))
+
+internal-clean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf $(GNUSTEP_OBJ_DIR_NAME) $(_PSWRAP_C_FILES) $(_PSWRAP_H_FILES))
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj)
+
+TEST_LIBRARIES_WITH_SUBPROJECTS = $(strip $(foreach test-library,$(TEST_LIBRARY_NAME),$(patsubst %,$(test-library),$($(test-library)_SUBPROJECTS))))
+ifneq ($(TEST_LIBRARIES_WITH_SUBPROJECTS),)
+internal-clean:: $(TEST_LIBRARIES_WITH_SUBPROJECTS:=.clean.test-library.subprojects)
+internal-distclean:: $(TEST_LIBRARIES_WITH_SUBPROJECTS:=.distclean.test-library.subprojects)
+endif
+
+internal-check:: $(TEST_LIBRARY_NAME:=.check.test-lib.variables)
+
+internal-strings:: $(TEST_LIBRARY_NAME:=.strings.test-lib.variables)
+
+$(TEST_LIBRARY_NAME)::
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.test-lib.variables
--- /dev/null
+#
+# Master/test-tool.make
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+TEST_TOOL_NAME := $(strip $(TEST_TOOL_NAME))
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+# Building of test tools works as in tool.make, except we don't install them.
+
+internal-all:: $(TEST_TOOL_NAME:=.all.test-tool.variables)
+
+internal-clean::
+ rm -rf $(GNUSTEP_OBJ_DIR)
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj)
+
+TEST_TOOLS_WITH_SUBPROJECTS = $(strip $(foreach test-tool,$(TEST_TOOL_NAME),$(patsubst %,$(test-tool),$($(test-tool)_SUBPROJECTS))))
+ifneq ($(TEST_TOOLS_WITH_SUBPROJECTS),)
+internal-clean:: $(TEST_TOOLS_WITH_SUBPROJECTS:=.clean.test-tool.subprojects)
+internal-distclean:: $(TEST_TOOLS_WITH_SUBPROJECTS:=.distclean.test-tool.subprojects)
+endif
+
+internal-strings:: $(TEST_TOOL_NAME:=.strings.test-tool.variables)
+
+$(TEST_TOOL_NAME)::
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory \
+ $@.all.test-tool.variables
+
+internal-install::
+ @ echo Skipping installation of test tools...
+
+internal-uninstall::
+ @ echo Skipping uninstallation of test tools...
--- /dev/null
+#
+# Master/tool.make
+#
+# Master Makefile rules to build GNUstep-based command line tools.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+TOOL_NAME := $(strip $(TOOL_NAME))
+
+ifeq ($(RULES_MAKE_LOADED),)
+include $(GNUSTEP_MAKEFILES)/rules.make
+endif
+
+internal-all:: $(TOOL_NAME:=.all.tool.variables)
+
+internal-install:: $(TOOL_NAME:=.install.tool.variables)
+
+internal-uninstall:: $(TOOL_NAME:=.uninstall.tool.variables)
+
+internal-clean::
+ rm -rf $(GNUSTEP_OBJ_DIR)
+
+internal-distclean::
+ (cd $(GNUSTEP_BUILD_DIR); \
+ rm -rf shared_obj static_obj shared_debug_obj shared_profile_obj \
+ static_debug_obj static_profile_obj shared_profile_debug_obj \
+ static_profile_debug_obj)
+
+TOOLS_WITH_SUBPROJECTS = $(strip $(foreach tool,$(TOOL_NAME),$(patsubst %,$(tool),$($(tool)_SUBPROJECTS))))
+ifneq ($(TOOLS_WITH_SUBPROJECTS),)
+internal-clean:: $(TOOLS_WITH_SUBPROJECTS:=.clean.tool.subprojects)
+internal-distclean:: $(TOOLS_WITH_SUBPROJECTS:=.distclean.tool.subprojects)
+endif
+
+# On distclean, we also want to efficiently wipe out the Resources/
+# directory if (and only if) there are tools for which
+# xxx_HAS_RESOURCE_BUNDLE=yes
+TOOLS_WITH_RESOURCE_BUNDLES = $(strip $(foreach tool,$(TOOL_NAME),$($(tool)_HAS_RESOURCE_BUNDLE:yes=$(tool))))
+
+ifneq ($(TOOLS_WITH_RESOURCE_BUNDLES),)
+internal-distclean::
+ rm -rf Resources
+endif
+
+internal-strings:: $(TOOL_NAME:=.strings.tool.variables)
+
+$(TOOL_NAME):
+ @$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory --no-keep-going \
+ $@.all.tool.variables
--- /dev/null
+NEWS
+****
+
+The currently released version is `1.10.0'.
+
+Changes in version `1.10.0'
+===========================
+
+ * a GNUsteprc file is now automatically created and installed in
+ $GNUSTEP_SYSTEM_ROOT, which sets the system-wide default for the
+ user root directory (default=~/GNUstep, which can be overriden
+ with the `--with-user-root' argument to configure, or by modifying
+ GNUsteprc after configuration.)
+
+ * make_services is not run by GNUstep.sh anymore. You must run this
+ manually now (see the gnustep-gui documentation).
+
+ * Palettes use a plist instead of a strings format file now for the
+ palette.table file.
+
+ * You can use the `--enable-native-objc-exceptions' argument to
+ configure to enable use of built in objc exceptions with compilers
+ that support it.
+
+Changes in version `1.9.2'
+==========================
+
+ * Application and Bundles use the latest convention on Apple.
+
+ * Improve/Simplify dependency checking when making docs
+
+Changes in version `1.9.1'
+==========================
+
+ * Remove `--disable-import' option
+
+ * README.Darwin for darwin/MacOSX install
+
+ * Framework version and naming clarified.
+
+Changes in version `1.9.0'
+==========================
+
+ * Support for building in a separate build dir.
+
+ * Add `--enable-strip-makefiles' option to configure
+
+ * List of classes in a framework gets written to the plist file.
+
+Changes in version `1.8.0'
+==========================
+
+Read the NEWS file for a complete list of changes since the last stable
+release. The major difference from 1.6.0 is that the locations of
+certain directories have changed. Generally this will not cause a
+problem unless your GNUstep directory is shared by multiple machines
+running this and earlier (1.6.x) versions of the software.
+
+Changes in version `1.7.4'
+==========================
+
+Bug fixes.
+
+Changes in version `1.7.3'
+==========================
+
+ * Adds library combo to Headers directory if not flattened.
+
+ * Add Markup file (Renaissance) support.
+
+Changes in version `1.7.2'
+==========================
+
+-enable-flattened (Flat directory structure) is on by default.
+
+ * On WIN32 use HOMEPATH in preference to USERPROFILE
+
+ * netbsd and openbsd compile fixes.
+
+Changes in version `1.7.1'
+==========================
+
+Bug fixes.
+
+Changes in version `1.7.0'
+==========================
+
+This version contains a major change in the location of certain
+directories and installed files as detailed in the `filesystem.texi'
+document. When installing this version for the first time, all old
+directories and files in those directories will be moved to the new
+locations automatically. However, you should update all GNUstep versions
+on any machine you have them installed on in order to avoid any
+incompatibilities.
+
+ Other changes:
+
+ * Support for preprocessed Info.plists.
+
+Changes in version `1.6.0'
+==========================
+
+Make now configures by default for only one system. To compile and run
+GNUstep for multiple platforms from the same directory, use the
+configure argument -enable-multi-platform.
+
+ * Auto-build def file for DLLs
+
+ * Work natively on MacOSX systems. Now use apple-apple-apple instead
+ of nx-nx-nx on OSX systems.
+
+ * More efficient checks for re-making a project.
+
+Changes in version `1.5.1'
+==========================
+
+ * Framework support rewritten, also supports multiple names.
+
+ * API change: Replace frameowork's xxx_TOOLS by xxx_COPY_INTO_DIR.
+
+ * Unified link commands between libraries and frameworks
+ (LIB_LINK_*).
+
+ * New 'make strings' target for localization support.
+
+ * Speed improvements.
+
+ * Doesn't try to build OSX bundle on GNUstep and vice versa.
+
+ * API change: Tools/Subproj can have resources.
+
+ * API change: TOOL_INSTALL_DIR.
+
+Changes in version `1.5.0'
+==========================
+
+ * Add NetBSD Elf support
+
+Changes in version `1.4.0'
+==========================
+
+ * Update Darwin/GNU gcc and Irix targets
+
+Changes in version `1.3.4'
+==========================
+
+This is a first prerelease version for 1.4.
+
+ * Use gnugc-gnu-gnu library combo for garbage collecting version.
+
+ * Add support for -library-combo in opentool
+
+ * Change GNUSTEP_PATHPREFIX_LIST to GNUSTEP_PATHLIST
+
+ * Add verbosity levels. Use make messages=yes for full messages.
+
+Changes in version `1.3.3'
+==========================
+
+ * Recognizes XXX_STANDARD_INSTALL=no to not do installation.
+
+ * Updated instructions for MingW/MSYS installation.
+
+Changes in version `1.3.2'
+==========================
+
+ * Instructions for building on Windows with MSYS
+
+ * Resolve library dependencies better on Windows
+
+ * Fix frameworks in RPMs and DEBs
+
+ * Continued reorganization.
+
+Changes in version `1.3.0'
+==========================
+
+The package has gone through an extensive reorganization to break up
+each sub-make into two separate components. This allows for much
+simplified code and lots of code sharing between components. As a side
+effect, it also increased the speed of the code by at least a factor of
+2.
+
+ * Force shared=yes for cygwin and mingw
+
+ * Bundles copy resources from subprojects.
+
+ * Better resource management. Resources handled accross all project
+ types.
+
+ * Simplified and fixed user root location between make and base
+ libraries.
+
+ * Changed Apps directory to Applications
+
+ * Fixes for MacOSX, MingW
+
+Changes in version `1.2.1'
+==========================
+
+ * the source distribution code has been rewritten to be more general
+ and extended. Packages built using gnustep-make now automatically
+ have handy targets building tarballs from sources or from CVS
+ imports.
+
+ * implemented support for auto-dependencies, which means that any
+ object file automatically depends on all the header files which
+ were used to build it. Only works with newer compilers.
+
+ * implemented INSTALL_AS_USER and INSTALL_AS_GROUP.
+
+ * implemented a strip=yes option.
+
+ * various bug fixes and minor improvements.
+
+Changes in version `1.2.0'
+==========================
+
+ * The core rules and internals of gnustep-make have been
+ fundamentally redesigned and rewritten. notably, gnustep-make now
+ works using only a single recursive sub-make invocation rather
+ than two, which makes it consistently faster and simpler in all
+ circumstances.
+
+ * The clean rules have been heavily optimized - they no longer use
+ recursive sub-make invocations at all and so they are really fast.
+
+ * Many improvements to java support. Optimized management of nested
+ classes
+
+ * Better conformance to make conventions.
+
+ * File specific compilation flags
+
+ * Fixed darwin support
+
+ * Support for C++ files.
+
+ * Made use of library installation dir consistent with other
+ installation.
+
+ * Much improved Windows path support
+
+Changes in version `1.0.1'
+==========================
+
+ * Support for Java tools.
+
+ * Build GUI backend as a bundle (default).
+
+ * Remove backend part of LIBRARY_COMBO.
+
+ * Fixes to run on FreeBSD, Solaris.
+
+Changes in version `1.0.0'
+==========================
+
+ * Optimizations that in many cases more than double the speed.
+
+ * Added preliminary darwin support.
+
+ * rpm packeing improvements.
+
+ * Better checking for mingw and cygwin
+
+Changes in version `0.9.2'
+==========================
+
+ * HOWTO and faq files moved from core package to here
+
+ * Configurable GNUSTEP_LOCAL_ROOT and GNUSTEP_NETWORK_ROOT
+
+Changes in version `0.9.1'
+==========================
+
+Make has been reoganized so that it only relies on libraries and other
+things that are necessary for the Makefile package itself. Any
+libraries wanting to add extra package information can do so by
+installing a make stub in the `Additional' directory. This greatly
+simplifies compilation and packaging.
+
+ * Javadoc support added.
+
+ * debian directory added for dpkg
+
+ * RPM support rewritten from scratch.
+
+Changes in version `0.9.0'
+==========================
+
+ffcall library is highly recommended for use with the GNUstep base
+library. You need to have installed it prior to configuring the Makefile
+package. See the INSTALL file.
+
+ * Support for automatically generating RPM spec files.
+
+ * Build suitable files for MacOS bundles
+
+ * Add option for flattened directory structure.
+
+ * LaText documentation support.
+
+ * Added support for Frameworks
+
+Noteworthy changes in version `0.6.6'
+=====================================
+
+The GNUstep system libraries are now installed in a separate system root
+directory (default /usr/GNUstep/System) rather than the GNUstep root
+directory (default /usr/GNUstep). You can revert to the old behavior
+using a configure option `--without-system-root'. We also recommend
+removing any previous GNUstep versions before installing the new one in
+order to avoid problems with the system finding the correct binary
+and/or library.
+
+ * Support for Windows compilation (cygwin and mingw) and DLL creation
+ and usage.
+
+ * Java support rewritten and extended.
+
--- /dev/null
+GNUstep makefile package
+************************
+
+Here is some introductory info to get you started:
+
+What is the GNUstep makefile package?
+=====================================
+
+The makefile package is a simple, powerful and extensible way to write
+makefiles for a GNUstep-based project. It allows the user to write a
+project without having to deal with the complex issues associated with
+configuration, building, installation, and packaging. It also allows
+the user to easily create cross-compiled binaries.
+
+Information
+===========
+
+The file `NEWS' has this packages feature history.
+
+ The files `INSTALL' or `GNUstep-HOWTO' give instructions for
+installing the packages. Also see the `machines' documentation and
+various machine specific READMEs in the Documentation directory.
+
+ Files in the `Documentation' directory have information on the
+design of the Makefile system and how to write your own makefiles that
+work with it.
+
+License
+=======
+
+The GNUstep libraries are covered under the GNU Lesser Public License.
+This means you can use these libraries in any program (even non-free
+programs). If you distribute the libraries along with your program, you
+must make the improvements you have made to the libraries freely
+available. You should read the COPYING.LIB file for more information.
+
+ GNUstep tools, test programs, and other files are covered under the
+GNU General Public License. The GNU GPL is a free software license,
+which requires that all the released improved versions be free software
+as well. You should read the COPYING file for more information.
+
+ With GNUstep-Base, we strongly recommend the use of the ffcall
+libraries, which provides stack frame handling for NSInvocation and
+NSConnection. "Ffcall is under GNU GPL. As a special exception, if used
+in GNUstep or in derivate works of GNUstep, the included parts of ffcall
+are under GNU LGPL" (Text in quotes provided by the author of ffcall).
+
+History
+=======
+
+The GNUstep makefile package was designed by Scott Christley
+<scottc@net-community.com> and Ovidiu Predescu
+<ovidiu@net-community.com>.
+
+ Flags for building shared libraries and bundles on several systems
+were originally identified by Mircea Oancea <mircea@pathcom.com>.
+
+ Richard Frith-Macdonald <richard@brainstorm.co.uk> also contributed
+with ideas.
+
+ Nicola Pero <nicola@brainstorm.co.uk> rewrote much of the rule
+procedures to increase the speed of the package by over a factor of 7.
+He also rewrote much of the rest of the system to make it simpler and
+more effective.
+
+How can you help?
+=================
+
+ * Give us feedback! Tell us what you like; tell us what you think
+ could be better. Send bug reports to <bug-gnustep@gnu.org>.
+
+
--- /dev/null
+# This file is included in various Makefile's to get version information.
+# Compatible with Bourne shell syntax, so it can included there too.
+
+# The version number of this release.
+GNUSTEP_MAKE_MAJOR_VERSION=1
+GNUSTEP_MAKE_MINOR_VERSION=10
+GNUSTEP_MAKE_SUBMINOR_VERSION=0
+GNUSTEP_MAKE_VERSION=${GNUSTEP_MAKE_MAJOR_VERSION}.${GNUSTEP_MAKE_MINOR_VERSION}.${GNUSTEP_MAKE_SUBMINOR_VERSION}
+
+
+
--- /dev/null
+#
+# aggregate.make
+#
+# Makefile rules to build a set of GNUstep-base subprojects.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# prevent multiple inclusions
+ifeq ($(AGGREGATE_MAKE_LOADED),)
+AGGREGATE_MAKE_LOADED=yes
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/aggregate.make
+endif
+
+endif
+# aggregate.make loaded
--- /dev/null
+#
+# application.make
+#
+# Makefile rules to build GNUstep-based applications.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/application.make
+else
+ifeq ($(GNUSTEP_TYPE),app)
+include $(GNUSTEP_MAKEFILES)/Instance/application.make
+endif
+# Else, it's the Instance invocation for something which is not an
+# application - include nothing
+endif
--- /dev/null
+#
+# bundle.make
+#
+# Makefile rules to build GNUstep-based bundles.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/bundle.make
+else
+
+ifeq ($(GNUSTEP_TYPE),bundle)
+include $(GNUSTEP_MAKEFILES)/Instance/bundle.make
+endif
+
+endif
--- /dev/null
+#!/bin/sh
+#
+# clean_cpu.sh
+#
+# Clean up the target cpu name.
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+case "$1" in
+ # Intel processors are made equivalent
+ i[3456]86)
+ echo ix86
+ exit 0
+ ;;
+ # Make all alpha variants the same
+ alpha*)
+ echo alpha
+ exit 0
+ ;;
+ # Make all hppa variants the same
+ hppa*)
+ echo hppa
+ exit 0
+ ;;
+ *)
+ echo $1
+ exit 0
+ ;;
+esac
--- /dev/null
+#!/bin/sh
+#
+# clean_os.sh
+#
+# Clean up the target OS name for GNUstep.
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Nothing to clean right now
+case "$1" in
+ # Remove version number for FreeBSD
+ freebsd2*)
+ echo freebsdaout
+ exit 0
+ ;;
+ freebsd*)
+ echo freebsd
+ exit 0
+ ;;
+ # Remove version number for NetBSD ELF targets
+ netbsdelf* | netbsd1.6* | netbsd2*)
+ echo netbsdelf
+ exit 0
+ ;;
+ # Remove version number for Darwin
+ darwin7*)
+ echo darwin7
+ exit 0
+ ;;
+ darwin6*)
+ echo darwin6
+ exit 0
+ ;;
+ darwin5*)
+ echo darwin5
+ exit 0
+ ;;
+ *)
+ echo $1
+ exit 0
+ ;;
+esac
--- /dev/null
+#!/bin/sh
+#
+# clean_vendor.sh
+#
+# Clean up the target vendor name.
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Nothing to clean right now
+echo $1
--- /dev/null
+#
+# clibrary.make
+#
+# Makefile rules to build GNUstep-based clibraries.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/clibrary.make
+else
+
+ifeq ($(GNUSTEP_TYPE),clibrary)
+include $(GNUSTEP_MAKEFILES)/Instance/clibrary.make
+endif
+
+endif
--- /dev/null
+# -*-makefile-*-
+# common.make
+#
+# Set all of the common environment variables.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(COMMON_MAKE_LOADED),)
+COMMON_MAKE_LOADED = yes
+
+SHELL = /bin/sh
+
+# GNUSTEP_BASE_INSTALL by default is `' - this is correct
+
+# GNUSTEP_BUILD_DIR is the directory in which anything generated
+# during the build will be placed. '.' means it's the same as the
+# source directory; this case is the default/common and we optimize
+# for it whenever possible.
+ifeq ($(GNUSTEP_BUILD_DIR),)
+ GNUSTEP_BUILD_DIR = .
+endif
+
+#
+# Scripts to run for parsing canonical names
+#
+CONFIG_GUESS_SCRIPT = $(GNUSTEP_MAKEFILES)/config.guess
+CONFIG_SUB_SCRIPT = $(GNUSTEP_MAKEFILES)/config.sub
+CONFIG_CPU_SCRIPT = $(GNUSTEP_MAKEFILES)/cpu.sh
+CONFIG_VENDOR_SCRIPT = $(GNUSTEP_MAKEFILES)/vendor.sh
+CONFIG_OS_SCRIPT = $(GNUSTEP_MAKEFILES)/os.sh
+CLEAN_CPU_SCRIPT = $(GNUSTEP_MAKEFILES)/clean_cpu.sh
+CLEAN_VENDOR_SCRIPT = $(GNUSTEP_MAKEFILES)/clean_vendor.sh
+CLEAN_OS_SCRIPT = $(GNUSTEP_MAKEFILES)/clean_os.sh
+ifeq ($(GNUSTEP_FLATTENED),)
+ WHICH_LIB_SCRIPT \
+ = $(GNUSTEP_MAKEFILES)/$(GNUSTEP_HOST_CPU)/$(GNUSTEP_HOST_OS)/which_lib
+else
+ WHICH_LIB_SCRIPT = $(GNUSTEP_MAKEFILES)/which_lib
+endif
+LD_LIB_PATH_SCRIPT = $(GNUSTEP_MAKEFILES)/ld_lib_path.sh
+TRANSFORM_PATHS_SCRIPT = $(GNUSTEP_MAKEFILES)/transform_paths.sh
+REL_PATH_SCRIPT = $(GNUSTEP_MAKEFILES)/relative_path.sh
+
+# Take the makefiles from the system root
+ifeq ($(GNUSTEP_MAKEFILES),)
+ GNUSTEP_MAKEFILES = $(GNUSTEP_SYSTEM_ROOT)/Library/Makefiles
+endif
+
+#
+# Determine the compilation host and target
+#
+include $(GNUSTEP_MAKEFILES)/names.make
+
+ifeq ($(GNUSTEP_FLATTENED),)
+ GNUSTEP_HOST_DIR = $(GNUSTEP_HOST_CPU)/$(GNUSTEP_HOST_OS)
+ GNUSTEP_TARGET_DIR = $(GNUSTEP_TARGET_CPU)/$(GNUSTEP_TARGET_OS)
+ GNUSTEP_HOST_LDIR = $(GNUSTEP_HOST_DIR)/$(LIBRARY_COMBO)
+ GNUSTEP_TARGET_LDIR = $(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO)
+else
+ GNUSTEP_HOST_DIR = .
+ GNUSTEP_TARGET_DIR = .
+ GNUSTEP_HOST_LDIR = .
+ GNUSTEP_TARGET_LDIR = .
+endif
+
+#
+# Get the config information
+#
+include $(GNUSTEP_MAKEFILES)/$(GNUSTEP_TARGET_DIR)/config.make
+
+#
+# Sanity checks - only performed at the first make invocation
+#
+ifeq ($(MAKELEVEL),0)
+
+# Sanity check on GNUSTEP_*_ROOT. We want them all to be non-empty.
+GNUSTEP_ERROR =
+
+ifeq ($(GNUSTEP_USER_ROOT),)
+ GNUSTEP_ERROR=GNUSTEP_USER_ROOT
+endif
+ifeq ($(GNUSTEP_LOCAL_ROOT),)
+ GNUSTEP_ERROR=GNUSTEP_LOCAL_ROOT
+endif
+ifeq ($(GNUSTEP_NETWORK_ROOT),)
+ GNUSTEP_ERROR=GNUSTEP_NETWORK_ROOT
+endif
+ifeq ($(GNUSTEP_SYSTEM_ROOT),)
+ GNUSTEP_ERROR=GNUSTEP_SYSTEM_ROOT
+endif
+
+ifneq ($(GNUSTEP_ERROR),)
+ $(warning ERROR: Your $(GNUSTEP_ERROR) environment variable is empty !)
+ $(error Please try again after running ". $(GNUSTEP_MAKEFILES)/GNUstep.sh")
+endif
+
+# Sanity check on $PATH - NB: if PATH is wrong, we can't do certain things
+# because we can't run the tools (not even using opentool as we can't even
+# run opentool if PATH is wrong) - this is particularly bad for gui stuff
+
+# Skip the check if we are on an Apple system. I was told that you can't
+# source GNUstep.sh before running Apple's PB and that the only
+# friendly solution is to disable the check.
+ifneq ($(FOUNDATION_LIB), apple)
+
+# NB - we can't trust PATH here because it's what we are trying to
+# check ... but hopefully if we (common.make) have been found, we
+# can trust that at least $(GNUSTEP_MAKEFILES) is set up correctly :-)
+
+# We want to check that this path is in the PATH
+SYS_TOOLS_PATH = $(GNUSTEP_SYSTEM_ROOT)/Tools
+
+# But on cygwin we might need to first fix it up ...
+ifeq ($(findstring cygwin, $(GNUSTEP_HOST_OS)), cygwin)
+ ifeq ($(shell echo "$(SYS_TOOLS_PATH)" | sed 's/^\([a-zA-Z]:.*\)//'),)
+ SYS_TOOLS_PATH := $(shell $(GNUSTEP_MAKEFILES)/fixpath.sh -u $(SYS_TOOLS_PATH))
+ endif
+endif
+
+# Under mingw paths are so confused this warning is not worthwhile
+ifneq ($(findstring mingw, $(GNUSTEP_HOST_OS)), mingw)
+ ifeq ($(findstring $(SYS_TOOLS_PATH),$(PATH)),)
+ $(warning WARNING: Your PATH may not be set up correctly !)
+ $(warning Please try again after running ". $(GNUSTEP_MAKEFILES)/GNUstep.sh")
+ endif
+endif
+
+endif # code used when FOUNDATION_LIB != apple
+
+endif # End of sanity checks run only at makelevel 0
+
+#
+# Get standard messages
+#
+include $(GNUSTEP_MAKEFILES)/messages.make
+
+#
+# Get flags/config options for core libraries
+#
+
+# First, work out precisely library combos etc
+include $(GNUSTEP_MAKEFILES)/library-combo.make
+# Then include custom makefiles with flags/config options
+# This is meant to be used by the core libraries to override loading
+# of the system makefiles from $(GNUSTEP_MAKEFILES)/Additional/*.make
+# with their local copy (presumably more up-to-date)
+ifneq ($(GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES),)
+include $(GNUSTEP_LOCAL_ADDITIONAL_MAKEFILES)
+endif
+# Then include makefiles with flags/config options installed by the
+# libraries themselves
+-include $(GNUSTEP_MAKEFILES)/Additional/*.make
+
+#
+# Determine target specific settings
+#
+include $(GNUSTEP_MAKEFILES)/target.make
+
+#
+# GNUSTEP_INSTALLATION_DIR is the directory where all the things go. If you
+# don't specify it defaults to GNUSTEP_LOCAL_ROOT.
+#
+ifeq ($(GNUSTEP_INSTALLATION_DIR),)
+ GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_LOCAL_ROOT)
+endif
+
+# Make it public and available to all submakes invocations
+export GNUSTEP_INSTALLATION_DIR
+
+#
+# Variables specifying the installation directory paths
+#
+GNUSTEP_APPS = $(GNUSTEP_INSTALLATION_DIR)/Applications
+GNUSTEP_TOOLS = $(GNUSTEP_INSTALLATION_DIR)/Tools
+GNUSTEP_LIBRARY = $(GNUSTEP_INSTALLATION_DIR)/Library
+GNUSTEP_SERVICES = $(GNUSTEP_LIBRARY)/Services
+ifeq ($(GNUSTEP_FLATTENED),yes)
+ GNUSTEP_HEADERS = $(GNUSTEP_INSTALLATION_DIR)/Library/Headers
+else
+ GNUSTEP_HEADERS = $(GNUSTEP_INSTALLATION_DIR)/Library/Headers/$(LIBRARY_COMBO)
+endif
+GNUSTEP_APPLICATION_SUPPORT = $(GNUSTEP_LIBRARY)/ApplicationSupport
+GNUSTEP_BUNDLES = $(GNUSTEP_LIBRARY)/Bundles
+GNUSTEP_FRAMEWORKS = $(GNUSTEP_LIBRARY)/Frameworks
+GNUSTEP_PALETTES = $(GNUSTEP_LIBRARY)/ApplicationSupport/Palettes
+GNUSTEP_LIBRARIES = $(GNUSTEP_INSTALLATION_DIR)/Library/Libraries
+GNUSTEP_RESOURCES = $(GNUSTEP_LIBRARY)/Libraries/Resources
+GNUSTEP_JAVA = $(GNUSTEP_LIBRARY)/Libraries/Java
+GNUSTEP_DOCUMENTATION = $(GNUSTEP_LIBRARY)/Documentation
+GNUSTEP_DOCUMENTATION_MAN = $(GNUSTEP_DOCUMENTATION)/man
+GNUSTEP_DOCUMENTATION_INFO = $(GNUSTEP_DOCUMENTATION)/info
+
+# The default name of the makefile to be used in recursive invocations of make
+ifeq ($(MAKEFILE_NAME),)
+MAKEFILE_NAME = GNUmakefile
+endif
+
+# Now prepare the library and header flags - we first prepare the list
+# of directories (trying to avoid duplicates in the list), then
+# optionally remove the empty ones, then prepend -I / -L to them.
+ifeq ($(GNUSTEP_FLATTENED),)
+
+# The following variables have to be evaluated after setting dir to
+# something, such as GNUSTEP_USER_ROOT. When you evaluate them in
+# that situation, they will generate paths according to the following
+# definition. Later, we'll systematically replace dir with
+# GNUSTEP_USER_ROOT, the GNUSTEP_LOCAL_ROOT, then
+# GNUSTEP_NETWORK_ROOT, then GNUSTEP_SYSTEM_ROOT.
+GS_HEADER_PATH = \
+ $(dir)/Library/Headers/$(LIBRARY_COMBO)/$(GNUSTEP_TARGET_DIR) \
+ $(dir)/Library/Headers/$(LIBRARY_COMBO)
+
+GS_LIBRARY_PATH = \
+ $(dir)/Library/Libraries/$(GNUSTEP_TARGET_LDIR) \
+ $(dir)/Library/Libraries/$(GNUSTEP_TARGET_DIR)
+
+else
+
+# In the flattened case, the paths to generate are considerably simpler.
+
+GS_HEADER_PATH = $(dir)/Library/Headers
+GS_LIBRARY_PATH = $(dir)/Library/Libraries
+
+endif
+
+ifeq ($(FOUNDATION_LIB), apple)
+GS_FRAMEWORK_PATH = $(dir)/Library/Frameworks
+else
+GS_FRAMEWORK_PATH =
+endif
+
+# First, we add paths based on GNUSTEP_USER_ROOT.
+
+# Please note that the following causes GS_HEADER_PATH to be evaluated
+# with the variable dir equal $(GNUSTEP_USER_ROOT), which gives the
+# effect we wanted.
+GNUSTEP_HEADERS_DIRS = $(foreach dir,$(GNUSTEP_USER_ROOT),$(GS_HEADER_PATH))
+GNUSTEP_LIBRARIES_DIRS = $(foreach dir,$(GNUSTEP_USER_ROOT),$(GS_LIBRARY_PATH))
+GNUSTEP_FRAMEWORKS_DIRS = $(foreach dir,$(GNUSTEP_USER_ROOT),$(GS_FRAMEWORK_PATH))
+
+# Second, if GNUSTEP_LOCAL_ROOT is different from GNUSTEP_USER_ROOT
+# (which has already been added), we add the paths based on
+# GNUSTEP_LOCAL_ROOT too.
+ifneq ($(GNUSTEP_LOCAL_ROOT), $(GNUSTEP_USER_ROOT))
+GNUSTEP_HEADERS_DIRS += $(foreach dir,$(GNUSTEP_LOCAL_ROOT),$(GS_HEADER_PATH))
+GNUSTEP_LIBRARIES_DIRS += $(foreach dir,$(GNUSTEP_LOCAL_ROOT),$(GS_LIBRARY_PATH))
+GNUSTEP_FRAMEWORKS_DIRS += $(foreach dir,$(GNUSTEP_LOCAL_ROOT),$(GS_FRAMEWORK_PATH))
+endif
+
+# Third, if GNUSTEP_NETWORK_ROOT is different from GNUSTEP_USER_ROOT and
+# GNUSTEP_LOCAL_ROOT (which have already been added), we add the paths
+# based on GNUSTEP_NETWORK_ROOT too.
+ifneq ($(GNUSTEP_NETWORK_ROOT), $(GNUSTEP_USER_ROOT))
+ifneq ($(GNUSTEP_NETWORK_ROOT), $(GNUSTEP_LOCAL_ROOT))
+GNUSTEP_HEADERS_DIRS += $(foreach dir,$(GNUSTEP_NETWORK_ROOT),$(GS_HEADER_PATH))
+GNUSTEP_LIBRARIES_DIRS += $(foreach dir,$(GNUSTEP_NETWORK_ROOT),$(GS_LIBRARY_PATH))
+GNUSTEP_FRAMEWORKS_DIRS += $(foreach dir,$(GNUSTEP_NETWORK_ROOT),$(GS_FRAMEWORK_PATH))
+endif
+endif
+
+# Last, if GNUSTEP_SYSTEM_ROOT is different from GNUSTEP_USER_ROOT,
+# GNUSTEP_LOCAL_ROOT and GNUSTEP_NETWORK_ROOT (which have already been
+# added), we add the pathe paths based on GNUSTEP_SYSTEM_ROOT too.
+ifneq ($(GNUSTEP_SYSTEM_ROOT), $(GNUSTEP_USER_ROOT))
+ifneq ($(GNUSTEP_SYSTEM_ROOT), $(GNUSTEP_LOCAL_ROOT))
+ifneq ($(GNUSTEP_SYSTEM_ROOT), $(GNUSTEP_NETWORK_ROOT))
+GNUSTEP_HEADERS_DIRS += $(foreach dir,$(GNUSTEP_SYSTEM_ROOT),$(GS_HEADER_PATH))
+GNUSTEP_LIBRARIES_DIRS += $(foreach dir,$(GNUSTEP_SYSTEM_ROOT),$(GS_LIBRARY_PATH))
+GNUSTEP_FRAMEWORKS_DIRS += $(foreach dir,$(GNUSTEP_SYSTEM_ROOT),$(GS_FRAMEWORK_PATH))
+endif
+endif
+endif
+
+ifeq ($(REMOVE_EMPTY_DIRS),yes)
+ # This variable, when evaluated, gives $(dir) if dir is non-empty, and
+ # nothing if dir is empty.
+ remove_if_empty = $(dir $(word 1,$(wildcard $(dir)/*)))
+
+ # Build the GNUSTEP_HEADER_FLAGS by removing the empty dirs from
+ # GNUSTEP_HEADER_DIRS, then prepending -I to each of them
+ #
+ # Important - because this variable is defined with = and not :=, it
+ # is only evaluated when it is used. Which is good - it means we don't
+ # scan the directories and try to remove the empty one on each make
+ # invocation (eg, on 'make clean') - we only scan the dirs when we are using
+ # GNUSTEP_HEADERS_FLAGS to compile. Please make sure to keep this
+ # behaviour otherwise scanning the directories each time a makefile is
+ # read might slow down the package unnecessarily for operations like
+ # make clean, make distclean etc.
+ #
+ # Doing this filtering still gives a 5% to 10% slowdown in compilation times
+ # due to directory scanning, which is why is normally turned off by
+ # default - by default we put all directories in compilation commands.
+ GNUSTEP_HEADERS_FLAGS = \
+ $(addprefix -I,$(foreach dir,$(GNUSTEP_HEADERS_DIRS),$(remove_if_empty)))
+ GNUSTEP_LIBRARIES_FLAGS = \
+ $(addprefix -L,$(foreach dir,$(GNUSTEP_LIBRARIES_DIRS),$(remove_if_empty)))
+ GNUSTEP_FRAMEWORKS_FLAGS = \
+ $(addprefix -F,$(foreach dir,$(GNUSTEP_FRAMEWORKS_DIRS),$(remove_if_empty)))
+else
+ # Default case, just add -I / -L
+ GNUSTEP_HEADERS_FLAGS = $(addprefix -I,$(GNUSTEP_HEADERS_DIRS))
+ GNUSTEP_LIBRARIES_FLAGS = $(addprefix -L,$(GNUSTEP_LIBRARIES_DIRS))
+ GNUSTEP_FRAMEWORKS_FLAGS = $(addprefix -F,$(GNUSTEP_FRAMEWORKS_DIRS))
+endif
+
+ifeq ($(FOUNDATION_LIB), fd)
+
+# Map OBJC_RUNTIME_LIB values to OBJC_RUNTIME values as used by
+# libFoundation. TODO/FIXME: Drop all this stuff and have
+# libFoundation use OBJC_RUNTIME_LIB directly.
+
+# TODO: Remove all this cruft. Standardize.
+ifeq ($(OBJC_RUNTIME_LIB), nx)
+ OBJC_RUNTIME = NeXT
+endif
+ifeq ($(OBJC_RUNTIME_LIB), sun)
+ OBJC_RUNTIME = Sun
+endif
+ifeq ($(OBJC_RUNTIME_LIB), apple)
+ OBJC_RUNTIME = apple
+endif
+ifeq ($(OBJC_RUNTIME_LIB), gnu)
+ OBJC_RUNTIME = GNU
+endif
+ifeq ($(OBJC_RUNTIME_LIB), gnugc)
+ OBJC_RUNTIME = GNU
+endif
+
+# If all of the following really needed ? If the system is not
+# flattened, multiple Foundation libraries are not permitted anyway,
+# so libFoundation could just put his headers in Foundation/. If
+# library combos are used, all headers are in a library-combo
+# directory, so libFoundation could still put his headers in
+# Foundation/ and no conflict should arise. As for the
+# GNUSTEP_TARGET_DIR, maybe we should key all of our headers in a
+# GNUSTEP_TARGET_LDIR directory (rather than just a LIBRARY_COMBO
+# directory). But does it really matter in practice anyway ?
+ifeq ($(GNUSTEP_FLATTENED),yes)
+GNUSTEP_HEADERS_FND_DIRS = \
+ $(GNUSTEP_USER_ROOT)/Library/Headers/libFoundation \
+ $(GNUSTEP_LOCAL_ROOT)/Library/Headers/libFoundation \
+ $(GNUSTEP_NETWORK_ROOT)/Library/Headers/libFoundation \
+ $(GNUSTEP_SYSTEM_ROOT)/Library/Headers/libFoundation \
+ $(GNUSTEP_USER_ROOT)/Library/Headers/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) \
+ $(GNUSTEP_LOCAL_ROOT)/Library/Headers/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) \
+ $(GNUSTEP_NETWORK_ROOT)/Library/Headers/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) \
+ $(GNUSTEP_SYSTEM_ROOT)/Library/Headers/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME)
+else
+GNUSTEP_HEADERS_FND_DIRS = \
+ $(GNUSTEP_USER_ROOT)/Library/Headers/$(LIBRARY_COMBO)/libFoundation \
+ $(GNUSTEP_LOCAL_ROOT)/Library/Headers/$(LIBRARY_COMBO)/libFoundation \
+ $(GNUSTEP_NETWORK_ROOT)/Library/Headers/$(LIBRARY_COMBO)/libFoundation \
+ $(GNUSTEP_SYSTEM_ROOT)/Library/Headers/$(LIBRARY_COMBO)/libFoundation \
+ $(GNUSTEP_USER_ROOT)/Library/Headers/$(LIBRARY_COMBO)/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) \
+ $(GNUSTEP_LOCAL_ROOT)/Library/Headers/$(LIBRARY_COMBO)/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) \
+ $(GNUSTEP_NETWORK_ROOT)/Library/Headers/$(LIBRARY_COMBO)/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME) \
+ $(GNUSTEP_SYSTEM_ROOT)/Library/Headers/$(LIBRARY_COMBO)/libFoundation/$(GNUSTEP_TARGET_DIR)/$(OBJC_RUNTIME)
+endif
+
+ifeq ($(REMOVE_EMPTY_DIRS), yes)
+ # Build the GNUSTEP_HEADERS_FND_FLAG by removing the empty dirs
+ # from GNUSTEP_HEADERS_FND_DIRS, then prepending -I to each of them
+ GNUSTEP_HEADERS_FND_FLAG = \
+ $(addprefix -I,$(foreach dir,$(GNUSTEP_HEADERS_FND_DIRS),$(remove_if_empty)))
+else
+ # default case - simply prepend -I
+ GNUSTEP_HEADERS_FND_FLAG = $(addprefix -I,$(GNUSTEP_HEADERS_FND_DIRS))
+endif
+
+# Just add the result of all this to the standard header flags.
+GNUSTEP_HEADERS_FLAGS += $(GNUSTEP_HEADERS_FND_FLAG)
+
+endif
+
+
+#
+# Overridable compilation flags
+#
+# FIXME: We use -fno-strict-aliasing to prevent annoying gcc3.3
+# compiler warnings. But we really need to investigate why the
+# warning appear in the first place, if they are serious or not, and
+# what can be done about it.
+OBJCFLAGS = -fno-strict-aliasing
+CFLAGS =
+OBJ_DIR_PREFIX =
+
+# 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
+endif
+
+#
+# Now decide whether to build shared objects or not. Nothing depending
+# on the value of the shared variable is allowed before this point!
+#
+
+#
+# Fixup bundles to be always built as shared even when shared=no is given
+#
+ifeq ($(shared), no)
+ ifeq ($(GNUSTEP_TYPE), bundle)
+ $(warning "Static bundles are meaningless! I am using shared=yes!")
+ override shared = yes
+ export shared
+ endif
+ ifeq ($(GNUSTEP_TYPE), framework)
+ $(warning "Static frameworks are meaningless! I am using shared=yes!")
+ override shared = yes
+ export shared
+ endif
+endif
+
+# Enable building shared libraries by default. If the user wants to build a
+# static library, he/she has to specify shared=no explicitly.
+ifeq ($(HAVE_SHARED_LIBS), yes)
+ # Unless shared=no has been purposedly set ...
+ ifneq ($(shared), no)
+ # ... set shared = yes
+ shared = yes
+ endif
+endif
+
+ifeq ($(shared), yes)
+ LIB_LINK_CMD = $(SHARED_LIB_LINK_CMD)
+ OBJ_DIR_PREFIX += shared_
+ INTERNAL_OBJCFLAGS += $(SHARED_CFLAGS)
+ INTERNAL_CFLAGS += $(SHARED_CFLAGS)
+ AFTER_INSTALL_LIBRARY_CMD = $(AFTER_INSTALL_SHARED_LIB_CMD)
+else
+ LIB_LINK_CMD = $(STATIC_LIB_LINK_CMD)
+ OBJ_DIR_PREFIX += static_
+ AFTER_INSTALL_LIBRARY_CMD = $(AFTER_INSTALL_STATIC_LIB_CMD)
+ LIBRARY_NAME_SUFFIX := s$(LIBRARY_NAME_SUFFIX)
+endif
+
+ifeq ($(profile), yes)
+ ADDITIONAL_FLAGS += -pg
+ ifeq ($(LD), $(CC))
+ INTERNAL_LDFLAGS += -pg
+ endif
+ OBJ_DIR_PREFIX += profile_
+ LIBRARY_NAME_SUFFIX := p$(LIBRARY_NAME_SUFFIX)
+endif
+
+ifeq ($(debug), yes)
+ OPTFLAG := $(filter-out -O%, $(OPTFLAG))
+ ADDITIONAL_FLAGS += -g -Wall -DDEBUG -fno-omit-frame-pointer
+ INTERNAL_JAVACFLAGS += -g -deprecation
+ OBJ_DIR_PREFIX += debug_
+ LIBRARY_NAME_SUFFIX := d$(LIBRARY_NAME_SUFFIX)
+else
+ INTERNAL_JAVACFLAGS += -O
+endif
+
+OBJ_DIR_PREFIX += obj
+
+ifeq ($(warn), no)
+ ADDITIONAL_FLAGS += -UGSWARN
+else
+ ADDITIONAL_FLAGS += -DGSWARN
+endif
+
+ifeq ($(diagnose), no)
+ ADDITIONAL_FLAGS += -UGSDIAGNOSE
+else
+ ADDITIONAL_FLAGS += -DGSDIAGNOSE
+endif
+
+ifneq ($(LIBRARY_NAME_SUFFIX),)
+ LIBRARY_NAME_SUFFIX := _$(LIBRARY_NAME_SUFFIX)
+endif
+
+AUXILIARY_CPPFLAGS += $(GNUSTEP_DEFINE) \
+ $(FND_DEFINE) $(GUI_DEFINE) $(BACKEND_DEFINE) \
+ $(RUNTIME_DEFINE) $(FOUNDATION_LIBRARY_DEFINE)
+
+INTERNAL_OBJCFLAGS += $(ADDITIONAL_FLAGS) $(OPTFLAG) $(OBJCFLAGS) \
+ $(RUNTIME_FLAG)
+INTERNAL_CFLAGS += $(ADDITIONAL_FLAGS) $(OPTFLAG)
+
+# trick needed to replace a space with nothing
+empty:=
+space:= $(empty) $(empty)
+GNUSTEP_OBJ_PREFIX = $(subst $(space),,$(OBJ_DIR_PREFIX))
+
+#
+# Support building of Multiple Architecture Binaries (MAB). The object files
+# directory will be something like shared_obj/ix86_m68k_sun/
+#
+ifeq ($(arch),)
+ ARCH_OBJ_DIR = $(GNUSTEP_TARGET_DIR)
+else
+ ARCH_OBJ_DIR = \
+ $(shell echo $(CLEANED_ARCH) | sed -e 's/ /_/g')/$(GNUSTEP_TARGET_OS)
+endif
+
+ifeq ($(GNUSTEP_FLATTENED),)
+ GNUSTEP_OBJ_DIR_NAME = $(GNUSTEP_OBJ_PREFIX)/$(ARCH_OBJ_DIR)/$(LIBRARY_COMBO)
+else
+ GNUSTEP_OBJ_DIR_NAME = $(GNUSTEP_OBJ_PREFIX)
+endif
+
+GNUSTEP_OBJ_DIR = $(GNUSTEP_BUILD_DIR)/$(GNUSTEP_OBJ_DIR_NAME)
+
+#
+# Common variables for subprojects
+#
+SUBPROJECT_PRODUCT = subproject$(OEXT)
+
+#
+# Set JAVA_HOME if not set.
+#
+ifeq ($(JAVA_HOME),)
+ # Else, try JDK_HOME
+ ifeq ($(JDK_HOME),)
+ # Else, try by finding the path of javac and removing 'bin/javac' from it
+ ifeq ($(JAVAC),)
+ JAVA_HOME = $(shell which javac | sed "s/bin\/javac//g")
+ else # $(JAVAC) != ""
+ JAVA_HOME = $(shell which $(JAVAC) | sed "s/bin\/javac//g")
+ endif
+ else # $(JDK_HOME) != ""
+ JAVA_HOME = $(JDK_HOME)
+ endif
+endif
+
+#
+# The java compiler.
+#
+ifeq ($(JAVAC),)
+ JAVAC = $(JAVA_HOME)/bin/javac
+endif
+
+#
+# The java header compiler.
+#
+ifeq ($(JAVAH),)
+ JAVAH = $(JAVA_HOME)/bin/javah
+endif
+
+#
+# Common variables - default values
+#
+# Because this file is included at the beginning of the user's
+# GNUmakefile, the user can override these variables by setting them
+# in the GNUmakefile.
+BUNDLE_EXTENSION = .bundle
+ifeq ($(profile), yes)
+ APP_EXTENSION = profile
+else
+ ifeq ($(debug), yes)
+ APP_EXTENSION = debug
+ else
+ APP_EXTENSION = app
+ endif
+endif
+
+
+
+# We want total control over GNUSTEP_INSTANCE.
+# GNUSTEP_INSTANCE determines wheter it's a Master or an Instance
+# invocation. Whenever we run a submake, we want it to be a Master
+# invocation, unless we specifically set it to run as an Instance
+# invocation by adding the GNUSTEP_INSTANCE=xxx flag. Tell make not
+# to mess with our games by passing this variable to submakes himself
+unexport GNUSTEP_INSTANCE
+unexport GNUSTEP_TYPE
+
+endif # COMMON_MAKE_LOADED
--- /dev/null
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002 Free Software Foundation, Inc.
+
+timestamp='2002-02-12'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+
+dummy=dummy-$$
+trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script.
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int dummy(){}" > $dummy.c ;
+ for c in cc gcc c89 ; do
+ ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
+ if test $? = 0 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ rm -f $dummy.c $dummy.o $dummy.rel ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ UNAME_MACHINE_ARCH=`(uname -p) 2>/dev/null` || \
+ UNAME_MACHINE_ARCH=unknown
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ELF__ >/dev/null
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit 0 ;;
+ amiga:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ arc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ hp300:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mac68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvmeppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ pmax:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sgi:OpenBSD:*:*)
+ echo mipseb-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sun3:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ wgrisc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:OpenBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ alpha:OSF1:*:*)
+ if test $UNAME_RELEASE = "V4.0"; then
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ fi
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ cat <<EOF >$dummy.s
+ .data
+\$Lformat:
+ .byte 37,100,45,37,120,10,0 # "%d-%x\n"
+
+ .text
+ .globl main
+ .align 4
+ .ent main
+main:
+ .frame \$30,16,\$26,0
+ ldgp \$29,0(\$27)
+ .prologue 1
+ .long 0x47e03d80 # implver \$0
+ lda \$2,-1
+ .long 0x47e20c21 # amask \$2,\$1
+ lda \$16,\$Lformat
+ mov \$0,\$17
+ not \$1,\$18
+ jsr \$26,printf
+ ldgp \$29,0(\$26)
+ mov 0,\$16
+ jsr \$26,exit
+ .end main
+EOF
+ eval $set_cc_for_build
+ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
+ if test "$?" = 0 ; then
+ case `./$dummy` in
+ 0-0)
+ UNAME_MACHINE="alpha"
+ ;;
+ 1-0)
+ UNAME_MACHINE="alphaev5"
+ ;;
+ 1-1)
+ UNAME_MACHINE="alphaev56"
+ ;;
+ 1-101)
+ UNAME_MACHINE="alphapca56"
+ ;;
+ 2-303)
+ UNAME_MACHINE="alphaev6"
+ ;;
+ 2-307)
+ UNAME_MACHINE="alphaev67"
+ ;;
+ 2-1307)
+ UNAME_MACHINE="alphaev68"
+ ;;
+ esac
+ fi
+ rm -f $dummy.s $dummy
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit 0 ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit 0 ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit 0 ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit 0;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit 0 ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit 0 ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit 0 ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit 0;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit 0;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit 0 ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit 0 ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ i86pc:SunOS:5.*:*)
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit 0 ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit 0 ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit 0 ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit 0 ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit 0 ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit 0 ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD $dummy.c -o $dummy \
+ && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+ && rm -f $dummy.c $dummy && exit 0
+ rm -f $dummy.c $dummy
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit 0 ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit 0 ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit 0 ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit 0 ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit 0 ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit 0 ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit 0 ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit 0 ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit 0 ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit 0 ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
+ rm -f $dummy.c $dummy
+ echo rs6000-ibm-aix3.2.5
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit 0 ;;
+ *:AIX:*:[45])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit 0 ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit 0 ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit 0 ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit 0 ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit 0 ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit 0 ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit 0 ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`./$dummy`
+ if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
+ rm -f $dummy.c $dummy
+ fi ;;
+ esac
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
+ rm -f $dummy.c $dummy
+ echo unknown-hitachi-hiuxwe2
+ exit 0 ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit 0 ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit 0 ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit 0 ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit 0 ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit 0 ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit 0 ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit 0 ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ CRAY*X-MP:*:*:*)
+ echo xmp-cray-unicos
+ exit 0 ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*T3D:*:*:*)
+ echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY-2:*:*:*)
+ echo cray2-cray-unicos
+ exit 0 ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:FreeBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit 0 ;;
+ i*:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit 0 ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit 0 ;;
+ x86:Interix*:3*)
+ echo i386-pc-interix3
+ exit 0 ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i386-pc-interix
+ exit 0 ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit 0 ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit 0 ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ *:GNU:*:*)
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit 0 ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit 0 ;;
+ arm*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux
+ exit 0 ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ mips:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips
+ #undef mipsel
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mipsel
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ rm -f $dummy.c
+ test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
+ ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit 0 ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit 0 ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit 0 ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit 0 ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit 0 ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit 0 ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+ exit 0 ;;
+ i*86:Linux:*:*)
+ # The BFD linker knows what the default object file format is, so
+ # first see if it will tell us. cd to the root directory to prevent
+ # problems with other programs or directories called `ld' in the path.
+ # Set LC_ALL=C to ensure ld outputs messages in English.
+ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+ | sed -ne '/supported targets:/!d
+ s/[ ][ ]*/ /g
+ s/.*supported targets: *//
+ s/ .*//
+ p'`
+ case "$ld_supported_targets" in
+ elf32-i386)
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+ ;;
+ a.out-i386-linux)
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ exit 0 ;;
+ coff-i386)
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ exit 0 ;;
+ "")
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
+ # one that does not give us useful --help.
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+ exit 0 ;;
+ esac
+ # Determine whether the default compiler is a.out or elf
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #ifdef __ELF__
+ # ifdef __GLIBC__
+ # if __GLIBC__ >= 2
+ LIBC=gnu
+ # else
+ LIBC=gnulibc1
+ # endif
+ # else
+ LIBC=gnulibc1
+ # endif
+ #else
+ #ifdef __INTEL_COMPILER
+ LIBC=gnu
+ #else
+ LIBC=gnuaout
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ rm -f $dummy.c
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+ ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit 0 ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit 0 ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit 0 ;;
+ i*86:*:5:[78]*)
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit 0 ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit 0 ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit 0 ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i386.
+ echo i386-pc-msdosdjgpp
+ exit 0 ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit 0 ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit 0 ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit 0 ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit 0 ;;
+ M68*:*:R3V[567]*:*)
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4 && exit 0 ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit 0 ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit 0 ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit 0 ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit 0 ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit 0 ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit 0 ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit 0 ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit 0 ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit 0 ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit 0 ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit 0 ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit 0 ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Darwin:*:*)
+ echo `uname -p`-apple-darwin${UNAME_RELEASE}
+ exit 0 ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ if test "${UNAME_MACHINE}" = "x86pc"; then
+ UNAME_MACHINE=pc
+ echo i386-${UNAME_MACHINE}-nto-qnx
+ else
+ echo `uname -p`-${UNAME_MACHINE}-nto-qnx
+ fi
+ exit 0 ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit 0 ;;
+ NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit 0 ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit 0 ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit 0 ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit 0 ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit 0 ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit 0 ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit 0 ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit 0 ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit 0 ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit 0 ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit 0 ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit 0 ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
+rm -f $dummy.c $dummy
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ c34*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ c38*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ c4*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ ftp://ftp.gnu.org/pub/gnu/config/
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
--- /dev/null
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_DIRENT_H
+
+/* Define to 1 if you have the <dir.h> header file. */
+#undef HAVE_DIR_H
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
+/* Define to 1 if you have the `geteuid' function. */
+#undef HAVE_GETEUID
+
+/* Define to 1 if you have the `getlogin' function. */
+#undef HAVE_GETLOGIN
+
+/* Define to 1 if you have the `getpwnam' function. */
+#undef HAVE_GETPWNAM
+
+/* Define to 1 if you have the `getpwuid' function. */
+#undef HAVE_GETPWUID
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#undef HAVE_NDIR_H
+
+/* Define to 1 if you have the <pwd.h> header file. */
+#undef HAVE_PWD_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strchr' function. */
+#undef HAVE_STRCHR
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_DIR_H
+
+/* Define to 1 if you have the <sys/file.h> header file. */
+#undef HAVE_SYS_FILE_H
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_NDIR_H
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the <utime.h> header file. */
+#undef HAVE_UTIME_H
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
--- /dev/null
+#
+# config.make.in
+#
+# All of the settings required by the makefile package
+# that are determined by configure.
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# The GNUstep Make Package Version
+#
+GNUSTEP_MAKE_MAJOR_VERSION=@GNUSTEP_MAKE_MAJOR_VERSION@
+GNUSTEP_MAKE_MINOR_VERSION=@GNUSTEP_MAKE_MINOR_VERSION@
+GNUSTEP_MAKE_SUBMINOR_VERSION=@GNUSTEP_MAKE_SUBMINOR_VERSION@
+GNUSTEP_MAKE_VERSION=@GNUSTEP_MAKE_VERSION@
+
+#
+# Binary and compile tools
+#
+CC = @CC@
+OPTFLAG = @CFLAGS@
+OBJCFLAGS= @OBJCFLAGS@
+CPPFLAGS = @CPPFLAGS@
+CPP = @CPP@
+
+EXEEXT = @EXEEXT@
+OEXT = .@OBJEXT@
+LIBEXT = .a
+
+LN_S = @LN_S@
+
+# This is the best we can do given the current autoconf, which only
+# returns LN_S
+ifeq ($(LN_S), ln -s)
+ HAS_LN_S = yes
+endif
+
+ifeq (@target_os@,mingw32)
+ HAS_LN_S = no
+endif
+
+LD = $(CC)
+LDOUT =
+LDFLAGS = @LDFLAGS@
+
+AR = @AR@
+AROUT =
+ARFLAGS = rc
+RANLIB = @RANLIB@
+
+DLLTOOL = @DLLTOOL@
+
+# NB: These variables are defined here only so that they can be
+# overridden on the command line (so you can type 'AWK=mawk make' to
+# use a different awk for that particular run of make). We should
+# *NOT* set them to the full path of these tools at configure time,
+# because otherwise when you change/update the tools you would need to
+# reconfigure and reinstall gnustep-make! We can normally assume that
+# typing 'awk' and 'sed' on the command line cause the preferred awk
+# and sed programs on the system to be used. Hardcoding the full path
+# (or the name) of the specific awk or sed program on this sytem here
+# would make it lot more inflexible. In other words, the following
+# definitions should remain like in 'AWK = awk' on all systems.
+AWK = awk
+SED = sed
+YACC = yacc
+BISON = bison
+FLEX = flex
+LEX = lex
+CHOWN = chown
+STRIP = strip
+
+INSTALL = @HOST_INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+TAR = @TAR@
+MKDIRS = $(GNUSTEP_MAKEFILES)/mkinstalldirs
+
+# Darwin specific flags
+CC_CPPPRECOMP = @cc_cppprecomp@
+CC_BUNDLE = @cc_bundle@
+
+# The default library combination
+default_library_combo = @ac_cv_library_combo@
+
+# Backend bundle
+BACKEND_BUNDLE=@BACKEND_BUNDLE@
+
+#
+# Do threading stuff.
+#
+# Warning - the base library's configure.in will extract the thread
+# flags from the following line using grep/sed - so if you change the
+# following lines you *need* to update the base library configure.in
+# too.
+#
+ifndef objc_threaded
+ objc_threaded:=@objc_threaded@
+endif
+
+# Any user specified libs
+CONFIG_SYSTEM_INCL=@INCLUDES@
+CONFIG_SYSTEM_LIBS = @LIBS@
+CONFIG_SYSTEM_LIB_DIR = @LIB_DIR@
+
+#
+# Whether the C/ObjC/C++ compiler supports auto-dependencies
+# (generating dependencies of the object files from the include files
+# used to compile them) via -MMD -MP flags
+#
+AUTO_DEPENDENCIES = @AUTO_DEPENDENCIES@
+
+#
+# Whether the ObjC compiler supports native ObjC exceptions via
+# @try/@catch/@finally/@throw.
+#
+USE_OBJC_EXCEPTIONS = @USE_OBJC_EXCEPTIONS@
--- /dev/null
+#
+# config.site
+#
+# GNUstep site configuration. This allows Autoconf packages to
+# be installed within the GNUstep directory structure.
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+echo Processing GNUstep site configuration
+
+# Determine the target
+if test -z "$target" -o "$target" = NONE; then
+ # The user did not specify one so the target is the host
+ GNUSTEP_TARGET=$GNUSTEP_HOST
+ GNUSTEP_TARGET_CPU=$GNUSTEP_HOST_CPU
+ GNUSTEP_TARGET_VENDOR=$GNUSTEP_HOST_VENDOR
+ GNUSTEP_TARGET_OS=$GNUSTEP_HOST_OS
+else
+ # The user did specify a target, so canonicalize and clean
+ GNUSTEP_TARGET=`$GNUSTEP_MAKEFILES/config.sub $target`
+ GNUSTEP_TARGET_CPU=`$GNUSTEP_MAKEFILES/cpu.sh $GNUSTEP_TARGET`
+ GNUSTEP_TARGET_VENDOR=`$GNUSTEP_MAKEFILES/vendor.sh $GNUSTEP_TARGET`
+ GNUSTEP_TARGET_OS=`$GNUSTEP_MAKEFILES/os.sh $GNUSTEP_TARGET`
+fi
+
+# Clean the target
+GNUSTEP_TARGET_OS=`$GNUSTEP_MAKEFILES/clean_os.sh $GNUSTEP_TARGET_OS`
+GNUSTEP_TARGET_VENDOR=`$GNUSTEP_MAKEFILES/clean_vendor.sh $GNUSTEP_TARGET_VENDOR`
+GNUSTEP_TARGET_CPU=`$GNUSTEP_MAKEFILES/clean_cpu.sh $GNUSTEP_TARGET_CPU`
+
+# Set the installation prefix
+if test "$prefix" = NONE ; then
+ prefix="${GNUSTEP_SYSTEM_ROOT}"
+fi
+
+# Change the binary directory default
+if test "$bindir" = "\${exec_prefix}/bin" ; then
+ if [ -z "$GNUSTEP_FLATTENED" ]; then
+ bindir="\${exec_prefix}/Tools/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}"
+ else
+ bindir="\${exec_prefix}/Tools"
+ fi
+ bindirtop="\${exec_prefix}/Tools"
+fi
+if test "$DIR_BIN" = "/usr/local/bin" ; then
+ if [ -z "$GNUSTEP_FLATTENED" ]; then
+ DIR_BIN="\${prefix}/Tools/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}"
+ else
+ DIR_BIN="\${exec_prefix}/Tools"
+ fi
+ bindirtop="\${exec_prefix}/Tools"
+fi
+
+# xxx What about sbin?
+# xxx What about libexec?
+
+# Change the data directory default
+if test "$datadir" = "\${prefix}/share" ; then
+ datadir="\${prefix}/Library/Libraries/share"
+fi
+
+# xxx What about sysconfdir?
+# xxx What about sharedstatedir?
+# xxx What about localstatedir?
+
+# Change the library directory default
+if test "$libdir" = "\${exec_prefix}/lib" ; then
+ if [ -z "$GNUSTEP_FLATTENED" ]; then
+ libdir="\${exec_prefix}/Library/Libraries/${GNUSTEP_TARGET_CPU}/${GNUSTEP_TARGET_OS}"
+ else
+ libdir="\${exec_prefix}/Library/Libraries"
+ fi
+fi
+
+# Change the include directory default
+if test "$includedir" = "\${prefix}/include" ; then
+ if [ -z "$GNUSTEP_FLATTENED" ]; then
+ includedir="\${prefix}/Library/Headers/${LIBRARY_COMBO}"
+ else
+ includedir="\${prefix}/Library/Headers"
+ fi
+fi
+
+# xxx What about oldincludedir?
+
+# Change the info directory default
+if test "$infodir" = "\${prefix}/info" ; then
+ infodir="\${prefix}/Library/Documentation/info"
+fi
+
+# Change the man directory default
+if test "$mandir" = "\${prefix}/man" ; then
+ mandir="\${prefix}/Library/Documentation/man"
+fi
+
--- /dev/null
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002 Free Software Foundation, Inc.
+
+timestamp='2002-02-12'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit 0;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis)
+ os=
+ basic_machine=$1
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+ | c4x | clipper \
+ | d10v | d30v | dsp16xx \
+ | fr30 \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | i370 | i860 | i960 | ia64 \
+ | m32r | m68000 | m68k | m88k | mcore \
+ | mips16 | mips64 | mips64el | mips64orion | mips64orionel \
+ | mips64vr4100 | mips64vr4100el | mips64vr4300 \
+ | mips64vr4300el | mips64vr5000 | mips64vr5000el \
+ | mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \
+ | mipsisa32 \
+ | mn10200 | mn10300 \
+ | ns16k | ns32k \
+ | openrisc | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | pyramid \
+ | sh | sh[34] | sh[34]eb | shbe | shle | sh64 \
+ | sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \
+ | strongarm \
+ | tahoe | thumb | tic80 | tron \
+ | v850 | v850e \
+ | we32k \
+ | x86 | xscale | xstormy16 | xtensa \
+ | z8k)
+ basic_machine=$basic_machine-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armv*-* \
+ | avr-* \
+ | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c54x-* \
+ | clipper-* | cray2-* | cydra-* \
+ | d10v-* | d30v-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fr30-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | m32r-* \
+ | m68000-* | m680[01234]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | mcore-* \
+ | mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
+ | mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipseb-* \
+ | mipsle-* | mipsel-* | mipstx39-* | mipstx39el-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | pyramid-* \
+ | romp-* | rs6000-* \
+ | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* | sh64-* \
+ | sparc-* | sparc64-* | sparc86x-* | sparclite-* \
+ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+ | t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
+ | v850-* | v850e-* | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xmp-* | xps100-* | xscale-* | xstormy16-* \
+ | xtensa-* \
+ | ymp-* \
+ | z8k-*)
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ cray2)
+ basic_machine=cray2-cray
+ os=-unicos
+ ;;
+ [cjt]90)
+ basic_machine=${basic_machine}-cray
+ os=-unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mipsel*-linux*)
+ basic_machine=mipsel-unknown
+ os=-linux-gnu
+ ;;
+ mips*-linux*)
+ basic_machine=mips-unknown
+ os=-linux-gnu
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ mmix*)
+ basic_machine=mmix-knuth
+ os=-mmixware
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ or32 | or32-*)
+ basic_machine=or32-unknown
+ os=-coff
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2)
+ basic_machine=i686-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc) basic_machine=powerpc-unknown
+ ;;
+ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=t3e-cray
+ os=-unicos
+ ;;
+ tic54x | c54x*)
+ basic_machine=tic54x-unknown
+ os=-coff
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ windows32)
+ basic_machine=i386-pc
+ os=-windows32-msvcrt
+ ;;
+ xmp)
+ basic_machine=xmp-cray
+ os=-unicos
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ mips)
+ if [ x$os = x-linux-gnu ]; then
+ basic_machine=mips-unknown
+ else
+ basic_machine=mips-mips
+ fi
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh3 | sh4 | sh3eb | sh4eb)
+ basic_machine=sh-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparc | sparcv9 | sparcv9b)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ c4x*)
+ basic_machine=c4x-none
+ os=-coff
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto*)
+ os=-nto-qnx
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ # This also exists in the configure program, but was not the
+ # default.
+ # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -vxsim* | -vxworks*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
--- /dev/null
+/* Test whether Objective-C runtime was compiled with thread support */
+
+#ifndef NeXT_RUNTIME
+/* Dummy NXConstantString impl for so libobjc that doesn't include it */
+#include <objc/NXConstStr.h>
+@implementation NXConstantString
+@end
+#endif
+
+#include <objc/thr.h>
+#include <objc/Object.h>
+
+int
+main()
+{
+ id o = [Object new];
+
+ return (objc_thread_detach (@selector(hash), o, nil) == NULL) ? -1 : 0;
+}
--- /dev/null
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.59.
+#
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)$' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+ /^X\/\(\/\/\)$/{ s//\1/; q; }
+ /^X\/\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" || {
+ # Find who we are. Look in the path if we contain no path at all
+ # relative or not.
+ case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+ ;;
+ esac
+ # We did not find ourselves, most probably we were run as `sh COMMAND'
+ # in which case we are not to be found in the path.
+ if test "x$as_myself" = x; then
+ as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+ { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+ { (exit 1); exit 1; }; }
+ fi
+ case $CONFIG_SHELL in
+ '')
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for as_base in sh bash ksh sh5; do
+ case $as_dir in
+ /*)
+ if ("$as_dir/$as_base" -c '
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ CONFIG_SHELL=$as_dir/$as_base
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+ fi;;
+ esac
+ done
+done
+;;
+ esac
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line before each line; the second 'sed' does the real
+ # work. The second script uses 'N' to pair each line-number line
+ # with the numbered line, and appends trailing '-' during
+ # substitution so that $LINENO is not a special case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
+ sed '=' <$as_myself |
+ sed '
+ N
+ s,$,-,
+ : loop
+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+ t loop
+ s,-$,,
+ s,^['$as_cr_digits']*\n,,
+ ' >$as_me.lineno &&
+ chmod +x $as_me.lineno ||
+ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+ { (exit 1); exit 1; }; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensible to this).
+ . ./$as_me.lineno
+ # Exit status is that of the last command.
+ exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete. It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+
+ac_unique_file="application.make"
+ac_default_prefix=`if test "x$GNUSTEP_SYSTEM_ROOT" = "x"; then
+ if test -d C: ; then
+ echo C:/GNUstep;
+ else
+ echo /usr/GNUstep ;
+ fi
+else
+ echo "$GNUSTEP_SYSTEM_ROOT" ;
+fi`
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+# include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os ac_cv_library_combo cc_cppprecomp cc_bundle CYGWIN RANLIB AR DLLTOOL ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S TAR CHOWN GNUSTEP_ROOT root_prefix MAKEFILES_SUFFIX HOST_INSTALL GNUSTEP_LOCAL_ROOT GNUSTEP_NETWORK_ROOT GNUSTEP_USER_ROOT GNUSTEP_FLATTENED GNUSTEP_MULTI_PLATFORM BACKEND_BUNDLE EGREP objc_threaded ac_cv_objc_threaded USE_OBJC_EXCEPTIONS AUTO_DEPENDENCIES INCLUDES LIB_DIR OBJCFLAGS GNUSTEP_STRIP_MAKEFILES GNUSTEP_MOVE_OBSOLETE GNUSTEP_MAKE_VERSION GNUSTEP_MAKE_MAJOR_VERSION GNUSTEP_MAKE_MINOR_VERSION GNUSTEP_MAKE_SUBMINOR_VERSION clean_target_os clean_target_cpu clean_target_vendor LIBOBJS LTLIBOBJS'
+ac_subst_files=''
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+ac_prev=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_option in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ eval "enable_$ac_feature=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_$ac_feature='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_$ac_package='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package | sed 's/-/_/g'`
+ eval "with_$ac_package=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+ { (exit 1); exit 1; }; }
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+ { (exit 1); exit 1; }; }
+ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+ eval "$ac_envvar='$ac_optarg'"
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ { echo "$as_me: error: missing argument to $ac_option" >&2
+ { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+ localstatedir libdir includedir oldincludedir infodir mandir
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) ;;
+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$0" : 'X\(//\)[^/]' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+ { (exit 1); exit 1; }; }
+ else
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+ { (exit 1); exit 1; }; }
+ fi
+fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+ { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+ { (exit 1); exit 1; }; }
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+ cat <<_ACEOF
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --infodir=DIR info documentation [PREFIX/info]
+ --mandir=DIR man documentation [PREFIX/man]
+_ACEOF
+
+ cat <<\_ACEOF
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+ --target=TARGET configure for building compilers for TARGET [HOST]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+--disable-flattened Disable flattened directory structure
+--enable-multi-platform Use run time multi-platform support
+
+--disable-backend-bundle Compile gui backend as a library
+ --enable-native-objc-exceptions
+ use native objective-c exceptions
+--enable-strip-makefiles Enable stripping makefiles after installation
+--disable-move-obsolete Disable moving obsolete dir structure
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+
+--with-library-combo Define the default library combination
+
+--with-tar Set the name of the tar program to use
+--without-system-root Don't use separate system root directory
+--with-local-root
+ Set the GNUSTEP_LOCAL_ROOT directory. Use this option if you want
+to have the GNUSTEP_LOCAL_ROOT directory in a non-standard place. Example:
+--with-local-root=/usr/local/GNUstep/Local
+
+--with-network-root
+ Set the GNUSTEP_NETWORK_ROOT directory. Use this option if you want
+to have the GNUSTEP_NETWORK_ROOT directory. Example:
+--with-network-root=/usr/local/GNUstep/Network
+
+--with-user-root
+ Set the GNUSTEP_USER_ROOT directory for all users. '~' is allowed
+ at the beginning to mean the user's home directory. Use this
+ option if you want to have the GNUSTEP_USER_ROOT directory in a non
+ default place for all users.
+ Example: --with-user-root='~/gnustep'
+
+--with-thread-lib Specify alternate thread library
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
+ headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ ac_popdir=`pwd`
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d $ac_dir || continue
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
+
+ cd $ac_dir
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_srcdir/configure.gnu; then
+ echo
+ $SHELL $ac_srcdir/configure.gnu --help=recursive
+ elif test -f $ac_srcdir/configure; then
+ echo
+ $SHELL $ac_srcdir/configure --help=recursive
+ elif test -f $ac_srcdir/configure.ac ||
+ test -f $ac_srcdir/configure.in; then
+ echo
+ $ac_configure --help
+ else
+ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi
+ cd $ac_popdir
+ done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+ cat <<\_ACEOF
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ echo "PATH: $as_dir"
+done
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_sep=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+ 2)
+ ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+ # Get rid of the leading space.
+ ac_sep=" "
+ ;;
+ esac
+ done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+{
+ (set) 2>&1 |
+ case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ sed -n \
+ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+ ;;
+ *)
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+}
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=$`echo $ac_var`
+ echo "$ac_var='"'"'$ac_val'"'"'"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=$`echo $ac_var`
+ echo "$ac_var='"'"'$ac_val'"'"'"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ sed "/^$/d" confdefs.h | sort
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ echo "$as_me: caught signal $ac_signal"
+ echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core &&
+ rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+ ' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+ { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . $cache_file;;
+ *) . ./$cache_file;;
+ esac
+ fi
+else
+ { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+ eval ac_new_val="\$ac_env_${ac_var}_value"
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
+echo "$as_me: former value: $ac_old_val" >&2;}
+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
+echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_headers="$ac_config_headers config.h"
+
+
+#--------------------------------------------------------------------
+# Setup the library combination
+#--------------------------------------------------------------------
+targetArgument=${target}
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ CC=$ac_ct_CC
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ CC=$ac_ct_CC
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_CC" && break
+done
+
+ CC=$ac_ct_CC
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+ "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+ (eval $ac_link_default) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Find the output, starting from the most likely. This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+ ;;
+ conftest.$ac_ext )
+ # This is the source file.
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ # FIXME: I believe we export ac_cv_exeext for Libtool,
+ # but it would be cool to find out if it's true. Does anybody
+ # maintain Libtool? --akim.
+ export ac_cv_exeext
+ break;;
+ * )
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+ { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ export ac_cv_exeext
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std1 is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std1. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX -qlanglvl=ansi
+# Ultrix and OSF/1 -std1
+# HP-UX 10.20 and later -Ae
+# HP-UX older versions -Aa -D_HPUX_SOURCE
+# SVR4 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+ x|xno)
+ echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+ *)
+ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+ CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+# Some people use a C++ compiler to compile C. Since we use `exit',
+# in C++ we need to declare it. In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+ choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ for ac_declaration in \
+ '' \
+ 'extern "C" void std::exit (int) throw (); using std::exit;' \
+ 'extern "C" void std::exit (int); using std::exit;' \
+ 'extern "C" void exit (int) throw ();' \
+ 'extern "C" void exit (int);' \
+ 'void exit (int);'
+do
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+ echo '#ifdef __cplusplus' >>confdefs.h
+ echo $ac_declaration >>confdefs.h
+ echo '#endif' >>confdefs.h
+fi
+
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ :
+else
+ { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f $ac_dir/shtool; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+# Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+ { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+ { (exit 1); exit 1; }; }
+
+echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+ ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+ { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+ { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+ ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking target system type" >&5
+echo $ECHO_N "checking target system type... $ECHO_C" >&6
+if test "${ac_cv_target+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_target_alias=$target_alias
+test "x$ac_cv_target_alias" = "x" &&
+ ac_cv_target_alias=$ac_cv_host_alias
+ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_target" >&5
+echo "${ECHO_T}$ac_cv_target" >&6
+target=$ac_cv_target
+target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+echo "$as_me:$LINENO: checking for library combo" >&5
+echo $ECHO_N "checking for library combo... $ECHO_C" >&6
+
+# Check whether --with-library-combo or --without-library-combo was given.
+if test "${with_library_combo+set}" = set; then
+ withval="$with_library_combo"
+ ac_cv_library_combo=$withval
+else
+ ac_cv_library_combo=$ac_cv_library_combo
+
+fi;
+
+if test "$ac_cv_library_combo" = ""; then
+ case "$host_os" in
+ darwin*) ac_cv_library_combo=apple-apple-apple ;;
+ nextstep4) ac_cv_library_combo=nx-nx-nx ;;
+ openstep4) ac_cv_library_combo=nx-nx-nx ;;
+ *) ac_cv_library_combo=gnu-gnu-gnu ;;
+ esac
+fi
+
+case "$ac_cv_library_combo" in
+ apple) ac_cv_library_combo=apple-apple-apple ;;
+ gnu) ac_cv_library_combo=gnu-gnu-gnu ;;
+ nx) ac_cv_library_combo=nx-nx-nx ;;
+esac
+
+
+echo "$as_me:$LINENO: result: $ac_cv_library_combo" >&5
+echo "${ECHO_T}$ac_cv_library_combo" >&6
+
+OBJC_RUNTIME_LIB=`echo $ac_cv_library_combo | awk -F- '{print $1}'`
+
+#--------------------------------------------------------------------
+# Check if we are using Apple cc
+#--------------------------------------------------------------------
+cc_cppprecomp=0
+cc_byndle=0
+echo "$as_me:$LINENO: checking for apple compiler flags" >&5
+echo $ECHO_N "checking for apple compiler flags... $ECHO_C" >&6
+cc_cppprecomp=`${CC} -no-cpp-precomp 2>&1 | grep -c "unrecognized"`
+cc_bundle=`${CC} -bundle 2>&1 | grep -c "couldn"`
+# 0 means we have the flag
+if test $cc_cppprecomp = 0; then
+ cc_cppprecomp=yes
+else
+ cc_cppprecomp=no
+fi
+if test $cc_bundle = 0; then
+ cc_bundle=yes
+else
+ cc_bundle=no
+fi
+echo "$as_me:$LINENO: result: $cc_bundle" >&5
+echo "${ECHO_T}$cc_bundle" >&6
+
+
+
+#--------------------------------------------------------------------
+# specific target_os options
+#--------------------------------------------------------------------
+case "$target_os" in
+ freebsd* | openbsd* )
+ INCLUDES="$INCLUDES -I/usr/local/include"
+ LIB_DIR="$LIB_DIR -L/usr/local/lib";;
+ netbsd*) INCLUDES="$INCLUDES -I/usr/pkg/include"
+ LIB_DIR="$LIB_DIR -Wl,-R/usr/pkg/lib -L/usr/pkg/lib";;
+esac
+
+#--------------------------------------------------------------------
+# Determine the host, build, and target systems
+#--------------------------------------------------------------------
+case $host_os in
+ *cygwin* ) CYGWIN=yes;;
+ *mingw32* ) MINGW32=yes;;
+ * ) MINGW32=no
+ CYGWIN=no;;
+esac
+
+
+
+
+if test "$MINGW32" = yes; then
+ echo "hosted on mingw32 .."
+ export INSTALL=install
+ export SHELL=sh
+ export CC=${CC:-gcc}
+ export AR=${AR:-ar}
+ export RANLIB=${RANLIB:-ranlib}
+ export DLLTOOL=${DLLTOOL:-dlltool}
+elif test "$CYGWIN" = yes; then
+ echo "hosted on cygwin .."
+ export CC=${CC:-gcc}
+ export AR=${AR:-ar}
+ export RANLIB=${RANLIB:-ranlib}
+ export DLLTOOL=${DLLTOOL:-dlltool}
+fi
+
+#--------------------------------------------------------------------
+# Find the binary and compile tools
+#--------------------------------------------------------------------
+if test "x$target" != "x$host"; then
+ echo "cross compiling from $host to $target .."
+ cross_compiling="yes"
+ # Extract the first word of ""${targetArgument}-gcc"", so it can be a program name with args.
+set dummy "${targetArgument}-gcc"; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC=" "${targetArgument}-gcc""
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="gcc"
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ # Extract the first word of ""${targetArgument}-ranlib"", so it can be a program name with args.
+set dummy "${targetArgument}-ranlib"; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB=" "${targetArgument}-ranlib""
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB="ranlib"
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ # Extract the first word of ""${targetArgument}-ar"", so it can be a program name with args.
+set dummy "${targetArgument}-ar"; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR=" "${targetArgument}-ar""
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ echo "$as_me:$LINENO: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ # Extract the first word of ""${targetArgument}-dlltool"", so it can be a program name with args.
+set dummy "${targetArgument}-dlltool"; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_DLLTOOL+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL=" "${targetArgument}-dlltool""
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_DLLTOOL" && ac_cv_prog_DLLTOOL="dlltool"
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ echo "$as_me:$LINENO: result: $DLLTOOL" >&5
+echo "${ECHO_T}$DLLTOOL" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+else
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="ar"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ echo "$as_me:$LINENO: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_DLLTOOL+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL="dlltool"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ echo "$as_me:$LINENO: result: $DLLTOOL" >&5
+echo "${ECHO_T}$DLLTOOL" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ RANLIB=$ac_ct_RANLIB
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+fi
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+ ./ | .// | /cC/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+done
+
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL=$ac_install_sh
+ fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo "$as_me:$LINENO: checking whether ln -s works" >&5
+echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+ echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+echo "${ECHO_T}no, using $LN_S" >&6
+fi
+
+
+for ac_prog in gnutar gtar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_TAR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$TAR"; then
+ ac_cv_prog_TAR="$TAR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_TAR="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+TAR=$ac_cv_prog_TAR
+if test -n "$TAR"; then
+ echo "$as_me:$LINENO: result: $TAR" >&5
+echo "${ECHO_T}$TAR" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$TAR" && break
+done
+test -n "$TAR" || TAR="tar"
+
+
+# Check whether --with-tar or --without-tar was given.
+if test "${with_tar+set}" = set; then
+ withval="$with_tar"
+ TAR="$withval"
+fi;
+
+# Extract the first word of "chown", so it can be a program name with args.
+set dummy chown; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CHOWN+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CHOWN"; then
+ ac_cv_prog_CHOWN="$CHOWN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CHOWN="chown"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_prog_CHOWN" && ac_cv_prog_CHOWN="none"
+fi
+fi
+CHOWN=$ac_cv_prog_CHOWN
+if test -n "$CHOWN"; then
+ echo "$as_me:$LINENO: result: $CHOWN" >&5
+echo "${ECHO_T}$CHOWN" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test "$MINGW32" = no; then
+ if test "$CHOWN" = "none"; then
+ { { echo "$as_me:$LINENO: error: \"Could not find chown.\"" >&5
+echo "$as_me: error: \"Could not find chown.\"" >&2;}
+ { (exit 1); exit 1; }; };
+ fi
+fi
+
+#-------------------------------------------------------------------
+# GNUstep specific options follow
+#-------------------------------------------------------------------
+
+#--------------------------------------------------------------------
+# The GNUstep root directory.
+# The user should have the GNUSTEP_SYSTEM_ROOT environment variable
+# defined, but if not then we have a global default.
+# Also test for the C: directory, which means we're on Windows
+#--------------------------------------------------------------------
+echo "$as_me:$LINENO: checking for GNUSTEP_SYSTEM_ROOT to use" >&5
+echo $ECHO_N "checking for GNUSTEP_SYSTEM_ROOT to use... $ECHO_C" >&6
+
+if test "x$prefix" = "xNONE"; then
+ prefix="$ac_default_prefix" ;
+fi
+
+# Check whether --with-system-root or --without-system-root was given.
+if test "${with_system_root+set}" = set; then
+ withval="$with_system_root"
+ ac_cv_system_root="$withval"
+else
+ ac_cv_system_root=yes
+fi;
+
+GNUSTEP_ROOT="$prefix"
+root_prefix='${prefix}'
+if test $ac_cv_system_root = yes; then
+ if test "x`basename $prefix`" = xSystem; then
+ GNUSTEP_ROOT=`dirname $prefix`
+ else
+ if test "x$prefix" = "x/"; then
+ prefix=/System
+ else
+ prefix="$prefix/System"
+ fi
+ fi
+ root_prefix='${prefix}/..'
+fi
+
+
+echo "$as_me:$LINENO: result: $prefix" >&5
+echo "${ECHO_T}$prefix" >&6
+
+# Makefiles directory location is in a bit of flux now. To keep the
+# Makefiles dir in the previous location, reset this variable to
+# 'Makefiles' and regenerate configure. Note this doesn't change all
+# occurances.
+MAKEFILES_SUFFIX=Library/Makefiles
+
+
+# HOST_INSTALL is the name of the install program in config.make so set it up
+# to point to the install-sh script in the GNUstep tree if no system install is
+# found.
+
+if test "$INSTALL" = "$ac_install_sh"; then
+ HOST_INSTALL="$prefix/$MAKEFILES_SUFFIX/$INSTALL"
+else
+ HOST_INSTALL="$INSTALL"
+fi
+
+#--------------------------------------------------------------------
+# Process --with-defaults-root, --with-user-root,
+# --with-local-root and --with-network-root
+#--------------------------------------------------------------------
+echo "$as_me:$LINENO: checking for GNUSTEP_LOCAL_ROOT to use" >&5
+echo $ECHO_N "checking for GNUSTEP_LOCAL_ROOT to use... $ECHO_C" >&6
+
+# Check whether --with-local-root or --without-local-root was given.
+if test "${with_local_root+set}" = set; then
+ withval="$with_local_root"
+ GNUSTEP_LOCAL_ROOT="$withval"
+else
+ GNUSTEP_LOCAL_ROOT="$GNUSTEP_ROOT/Local"
+
+fi;
+echo "$as_me:$LINENO: result: $GNUSTEP_LOCAL_ROOT" >&5
+echo "${ECHO_T}$GNUSTEP_LOCAL_ROOT" >&6
+
+echo "$as_me:$LINENO: checking for GNUSTEP_NETWORK_ROOT to use" >&5
+echo $ECHO_N "checking for GNUSTEP_NETWORK_ROOT to use... $ECHO_C" >&6
+
+# Check whether --with-network-root or --without-network-root was given.
+if test "${with_network_root+set}" = set; then
+ withval="$with_network_root"
+ GNUSTEP_NETWORK_ROOT="$withval"
+else
+ # By default we disable network root, by setting GNUSTEP_NETWORK_ROOT
+# to be the same as GNUSTEP_LOCAL_ROOT. GNUSTEP_NETWORK_ROOT is very
+# rarely used, and most users prefer simpler systems with shorter
+# paths and shorter command lines. To turn on GNUSTEP_NETWORK_ROOT
+# again, you can use the --with-network-root=xxx option; pass
+# something like --with-network-root=/usr/GNUstep/Network on the
+# configure command line.
+GNUSTEP_NETWORK_ROOT="$GNUSTEP_LOCAL_ROOT"
+
+fi;
+echo "$as_me:$LINENO: result: $GNUSTEP_NETWORK_ROOT" >&5
+echo "${ECHO_T}$GNUSTEP_NETWORK_ROOT" >&6
+
+
+
+
+echo "$as_me:$LINENO: checking for GNUSTEP_USER_ROOT to use" >&5
+echo $ECHO_N "checking for GNUSTEP_USER_ROOT to use... $ECHO_C" >&6
+
+# Check whether --with-user-root or --without-user-root was given.
+if test "${with_user_root+set}" = set; then
+ withval="$with_user_root"
+ GNUSTEP_USER_ROOT="$withval"
+else
+ # The default is to have user roots in ~/GNUstep
+GNUSTEP_USER_ROOT="~/GNUstep"
+
+fi;
+echo "$as_me:$LINENO: result: $GNUSTEP_USER_ROOT" >&5
+echo "${ECHO_T}$GNUSTEP_USER_ROOT" >&6
+
+
+#--------------------------------------------------------------------
+# Is the system flattened?
+#--------------------------------------------------------------------
+echo "$as_me:$LINENO: checking for flattened directory structure" >&5
+echo $ECHO_N "checking for flattened directory structure... $ECHO_C" >&6
+# Check whether --enable-flattened or --disable-flattened was given.
+if test "${enable_flattened+set}" = set; then
+ enableval="$enable_flattened"
+ ac_cv_flattened=$enableval
+else
+ ac_cv_flattened="undefined"
+fi;
+
+if test "$ac_cv_flattened" = "no"; then
+ GNUSTEP_FLATTENED=;
+else
+ GNUSTEP_FLATTENED=yes;
+fi
+
+
+if test "$GNUSTEP_FLATTENED" = "yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6;
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6;
+fi
+
+
+#--------------------------------------------------------------------
+# Is the system multi-platform?
+#--------------------------------------------------------------------
+#
+# Multi-platform means that GNUstep.sh will determine the host
+# platform (by running config.guess) each time that it is sourced.
+# This is good if you are sharing your GNUstep.sh across your network
+# (for example, mounting the makefiles via NFS), but it requires you
+# to be able to run config.guess on your machine(s), which usually
+# requires a development environment (compiler, libc etc).
+#
+# The default instead is not using multi-platform, which means the
+# local host os, cpu and version is hardcoded in GNUstep.sh. This
+# works nicely for a single machine using this gnustep-make
+# installation, and it works even if you don't have development
+# packages (gcc, binutils, libc-dev etc) installed. We had to make
+# this the default after end-users (with no development packages
+# installed) complained that binary packages wouldn't work (and the
+# reason turned out to be that GNUstep.sh was running config.guess
+# which was returning the wrong platform because the development
+# tools needed/used to determine the platform were not available).
+#
+# Unless you know what you are doing, stick with the default, which is
+# also much faster when sourcing GNUstep.sh.
+#
+# Check whether --enable-multi-platform or --disable-multi-platform was given.
+if test "${enable_multi_platform+set}" = set; then
+ enableval="$enable_multi_platform"
+ ac_cv_multi_platform=$enableval
+else
+ ac_cv_multi_platform="undefined"
+fi;
+
+if test "$ac_cv_multi_platform" = "yes"; then
+ GNUSTEP_MULTI_PLATFORM=yes;
+else
+ GNUSTEP_MULTI_PLATFORM=;
+fi
+
+
+#--------------------------------------------------------------------
+# Build backend bundles (on by default)
+#--------------------------------------------------------------------
+# Check whether --enable-backend-bundle or --disable-backend-bundle was given.
+if test "${enable_backend_bundle+set}" = set; then
+ enableval="$enable_backend_bundle"
+ ac_cv_backend=$enableval
+else
+ ac_cv_backend="yes"
+fi;
+
+if test "$ac_cv_backend" = "yes"; then
+ BACKEND_BUNDLE=yes;
+else
+ BACKEND_BUNDLE=;
+fi
+
+
+#--------------------------------------------------------------------
+# Miscellaneous flags and setup
+#--------------------------------------------------------------------
+# Strip '-g' off of CFLAGS, since debug=yes adds that anyway
+CFLAGS=`echo $CFLAGS | sed -e 's/-g //'`
+
+# Set location of GNUstep dirs for later use
+if test "$GNUSTEP_FLATTENED" = yes; then
+ GNUSTEP_LDIR="$prefix/Library/Libraries"
+ GNUSTEP_HDIR="$prefix/Library/Headers"
+else
+ clean_target_os=`$srcdir/clean_os.sh $target_os`
+ clean_target_cpu=`$srcdir/clean_cpu.sh $target_cpu`
+ obj_dir="$clean_target_cpu/$clean_target_os"
+ GNUSTEP_LDIR="$prefix/Library/Libraries/$obj_dir"
+ GNUSTEP_HDIR="$prefix/Library/Headers/${ac_cv_library_combo}"
+fi
+
+# Check to see if the libobjc library is in our GNUSTEP_SYSTEM_ROOT.
+# If so, there are probably other libraries that we want there also, so
+# leave the proper includes in CPPFLAGS and LDFLAGS
+echo "$as_me:$LINENO: checking for custom shared objc library" >&5
+echo $ECHO_N "checking for custom shared objc library... $ECHO_C" >&6
+if test "${gs_cv_objc_libdir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ gs_cv_objc_libdir=NONE
+if test -f "$GNUSTEP_HDIR/objc/objc.h"; then
+ if test -f "$GNUSTEP_LDIR/libobjc.a" -o -f "$GNUSTEP_LDIR/libobjc.so"; then
+ gs_cv_objc_libdir="$GNUSTEP_LDIR"
+ else
+ gs_cv_objc_libdir=NONE
+ fi
+fi
+#gcc_shared_libobjc=`gcc -print-file-name=libobjc.so`
+#if test -f "$gcc_shared_libobjc"; then
+# gs_cv_objc_libdir=`dirname $gcc_shared_libobjc`
+#fi
+
+fi
+
+echo "$as_me:$LINENO: result: $gs_cv_objc_libdir" >&5
+echo "${ECHO_T}$gs_cv_objc_libdir" >&6
+
+# The following are needed to compile the test programs
+if test "$gs_cv_objc_libdir" = "$GNUSTEP_LDIR"; then
+ if test "$GNUSTEP_FLATTENED" = yes; then
+ OBJC_CPPFLAGS="$CPPFLAGS $INCLUDES -I$prefix/Library/Headers"
+ else
+ OBJC_CPPFLAGS="$CPPFLAGS $INCLUDES -I$prefix/Library/Headers/${ac_cv_library_combo}"
+ fi
+ OBJC_LDFLAGS="$LDFLAGS $LIB_DIR -L$gs_cv_objc_libdir"
+fi
+
+# And the following to execute them
+LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gs_cv_objc_libdir"
+export LD_LIBRARY_PATH
+
+#--------------------------------------------------------------------
+# Miscellaneous headers (only used for compiling which_lib.c and user_home.c)
+#--------------------------------------------------------------------
+
+
+
+
+
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
+echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ echo "$as_me:$LINENO: checking for library containing opendir" >&5
+echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
+if test "${ac_cv_search_opendir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+ac_cv_search_opendir=no
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir ();
+int
+main ()
+{
+opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_opendir="none required"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_opendir" = no; then
+ for ac_lib in dir; do
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir ();
+int
+main ()
+{
+opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_opendir="-l$ac_lib"
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+echo "${ECHO_T}$ac_cv_search_opendir" >&6
+if test "$ac_cv_search_opendir" != no; then
+ test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
+
+fi
+
+else
+ echo "$as_me:$LINENO: checking for library containing opendir" >&5
+echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
+if test "${ac_cv_search_opendir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+ac_cv_search_opendir=no
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir ();
+int
+main ()
+{
+opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_opendir="none required"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_opendir" = no; then
+ for ac_lib in x; do
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir ();
+int
+main ()
+{
+opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_opendir="-l$ac_lib"
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+echo "${ECHO_T}$ac_cv_search_opendir" >&6
+if test "$ac_cv_search_opendir" != no; then
+ test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
+
+fi
+
+fi
+
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+ then ac_cv_prog_egrep='grep -E'
+ else ac_cv_prog_egrep='egrep'
+ fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_stdc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ exit(2);
+ exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+for ac_header in sys/param.h sys/file.h dir.h string.h stdlib.h sys/types.h fcntl.h limits.h utime.h sys/stat.h pwd.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists. ##
+## ------------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+for ac_func in getpwnam getpwuid geteuid getlogin strchr
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+#--------------------------------------------------------------------
+# Check if libobjc was compiled with thread support.
+#--------------------------------------------------------------------
+OBJC_THREAD=
+
+# Check whether --with-thread-lib or --without-thread-lib was given.
+if test "${with_thread_lib+set}" = set; then
+ withval="$with_thread_lib"
+ OBJC_THREAD=$withval
+else
+ OBJC_THREAD=
+
+fi;
+
+
+echo "$as_me:$LINENO: checking whether objc has thread support" >&5
+echo $ECHO_N "checking whether objc has thread support... $ECHO_C" >&6
+saved_CFLAGS="$CFLAGS"
+saved_LIBS="$LIBS"
+CFLAGS="$CFLAGS -x objective-c -I$srcdir $OBJC_CPPFLAGS $OBJC_LDFLAGS"
+if test "$OBJC_RUNTIME_LIB" = "gnu"; then
+ CFLAGS="$CFLAGS -fgnu-runtime"
+fi
+if test "$OBJC_RUNTIME_LIB" = "nx"; then
+ CFLAGS="$CFLAGS -DNeXT_RUNTIME"
+fi
+if test "$OBJC_RUNTIME_LIB" = "apple"; then
+ CFLAGS="$CFLAGS -DNeXT_RUNTIME"
+fi
+if test "$OBJC_THREAD" != ""; then
+ LIBS="-lobjc $LIBS $OBJC_THREAD"
+ if test "$cross_compiling" = yes; then
+ objc_threaded=""
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include "config_thread.m"
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ objc_threaded="$OBJC_THREAD"
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+objc_threaded=""
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+elif test "$host_os" = linux-gnu; then
+ LIBS="-lobjc -lpthread"
+ if test "$cross_compiling" = yes; then
+ objc_threaded="-lpthread"
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include "config_thread.m"
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ objc_threaded="-lpthread"
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+objc_threaded=""
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+elif test "`echo $host_os|sed 's/[0-9].*//'|sed s/elf//`" = freebsd; then
+ LIBS="-pthread -lobjc"
+ if test "$cross_compiling" = yes; then
+ objc_threaded="-pthread"
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include "config_thread.m"
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ objc_threaded="-pthread"
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+objc_threaded=""
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ if test x"$objc_threaded" = x""; then
+ LIBS="-lpthread -lobjc"
+ if test "$cross_compiling" = yes; then
+ objc_threaded="-lpthread"
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include "config_thread.m"
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ objc_threaded="-lpthread"
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+objc_threaded=""
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ fi
+ if test x"$objc_threaded" = x""; then
+ LIBS="-lobjc -lpcthread"
+ if test "$cross_compiling" = yes; then
+ objc_threaded="-lpcthread"
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include "config_thread.m"
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ objc_threaded="-lpcthread"
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+objc_threaded=""
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ fi
+elif test "$MINGW32" = yes; then
+ # Mingw doesn't need anything extra for threads
+ LIBS="-lobjc $LIBS"
+ if test "$cross_compiling" = yes; then
+ objc_threaded="works"
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include "config_thread.m"
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ objc_threaded="works"
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+objc_threaded=""
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+else
+ LIBS="-lobjc $LIBS"
+ if test "$cross_compiling" = yes; then
+ objc_threaded=""
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include "config_thread.m"
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ objc_threaded="works"
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+objc_threaded=""
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ if test x"$objc_threaded" = x""; then
+ LIBS="-lobjc $saved_LIBS -lpthread "
+ if test "$cross_compiling" = yes; then
+ objc_threaded=""
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include "config_thread.m"
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ objc_threaded="-lpthread"
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+objc_threaded=""
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ fi
+ if test x"$objc_threaded" = x""; then
+ # Solaris, OpenBSD/sparc
+ LIBS="-lobjc $saved_LIBS -lpthread -lposix4"
+ if test "$cross_compiling" = yes; then
+ objc_threaded=""
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include "config_thread.m"
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ objc_threaded="-lpthread -lposix4"
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+objc_threaded=""
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ fi
+ if test x"$objc_threaded" = x""; then
+ LIBS="-lobjc $saved_LIBS -lthread "
+ if test "$cross_compiling" = yes; then
+ objc_threaded=""
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include "config_thread.m"
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ objc_threaded="-lthread"
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+objc_threaded=""
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ fi
+fi
+if test x"$objc_threaded" = x""; then
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+else
+ if test x"$objc_threaded" = x"works"; then
+ objc_threaded=""
+ fi
+ echo "$as_me:$LINENO: result: yes: $objc_threaded" >&5
+echo "${ECHO_T}yes: $objc_threaded" >&6
+fi
+ac_cv_objc_threaded="$objc_threaded"
+
+
+
+# Do not restore LIBS and CFLAGS yet as we need to test if the
+# compiler supports native exceptions.
+
+#--------------------------------------------------------------------
+# Check if GCC supports -fobjc-exceptions, and if so, turn it on!
+#--------------------------------------------------------------------
+
+# Check whether --enable-native-objc-exceptions or --disable-native-objc-exceptions was given.
+if test "${enable_native_objc_exceptions+set}" = set; then
+ enableval="$enable_native_objc_exceptions"
+ USE_OBJC_EXCEPTIONS=$enableval
+else
+ USE_OBJC_EXCEPTIONS=no
+fi;
+
+echo "$as_me:$LINENO: checking whether we should use native ObjC exceptions" >&5
+echo $ECHO_N "checking whether we should use native ObjC exceptions... $ECHO_C" >&6
+if test x"$USE_OBJC_EXCEPTIONS" = x"yes"; then
+ # What we want to do: set USE_OBJC_EXCEPTIONS to yes if we can compile
+ # something with @try/@catch/@finally in it.
+ if test ! ${GCC} = "yes" ; then
+ USE_OBJC_EXCEPTIONS=no
+ 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"
+ 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
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+else
+ cat >conftest.$ac_ext <<_ACEOF
+
+#include <stdlib.h>
+#include <objc/Object.h>
+
+int main(int argc, char **argv)
+{
+ Object *o=nil;
+ @try
+ {
+ o=[Object new];
+ @throw o;
+ }
+ @catch (id foo)
+ {
+ if (o!=foo)
+ return 1;
+ }
+ return 0;
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ USE_OBJC_EXCEPTIONS=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+USE_OBJC_EXCEPTIONS=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ echo "$as_me:$LINENO: result: $USE_OBJC_EXCEPTIONS" >&5
+echo "${ECHO_T}$USE_OBJC_EXCEPTIONS" >&6
+ fi
+ if test x$USE_OBJC_EXCEPTIONS = xno; then
+ { echo "$as_me:$LINENO: Native objective-c exceptions were requested, but the compiler" >&5
+echo "$as_me: Native objective-c exceptions were requested, but the compiler" >&6;}
+ { echo "$as_me:$LINENO: doesn't support them." >&5
+echo "$as_me: doesn't support them." >&6;}
+ { { echo "$as_me:$LINENO: error: compiler doesn't support native objective-c exceptions" >&5
+echo "$as_me: error: compiler doesn't support native objective-c exceptions" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+else
+ echo "$as_me:$LINENO: result: not requested by user" >&5
+echo "${ECHO_T}not requested by user" >&6
+fi
+
+
+
+# Restore LIBS and CFLAGS - we are going to compile C code in the next
+# test.
+LIBS="$saved_LIBS"
+CFLAGS="$saved_CFLAGS"
+
+#--------------------------------------------------------------------
+# Check if compiler supports -MMD -MP to generate %.d files ...
+#--------------------------------------------------------------------
+
+echo "$as_me:$LINENO: checking if the compiler supports autodependencies" >&5
+echo $ECHO_N "checking if the compiler supports autodependencies... $ECHO_C" >&6
+
+# What we want to do: set AUTO_DEPENDENCIES to yes if gcc => 3.x
+
+if test ! ${GCC} = "yes" ; then
+ AUTO_DEPENDENCIES=""
+ echo "$as_me:$LINENO: result: no: it's not gcc" >&5
+echo "${ECHO_T}no: it's not gcc" >&6
+else
+ # Running gcc -dumpversion we get something like 2.95.4 or
+ # egcs-2.91.66 or 3.0.2 or 3.1 20011211
+ # We want to discard anything but the major number.
+ # Explanation of the regexp -
+ # \(^[^0-9]*\) matches beginning of line and following non numeric chars
+ # \([0-9][0-9]*\) matches 1 or more numeric chars (this is the 2^nd
+ # subpattern)
+ # \([^0-9].*\) matches a non numeric char followed by anything
+ # /\2/ replace the whole lot with the 2^nd subpattern
+ gs_cv_gcc_major_version=`${CC} -dumpversion | sed "s/\([^0-9]*\)\([0-9][0-9]*\)\([^0-9].*\)/\2/"`;
+
+ if test "${gs_cv_gcc_major_version}" -ge "3" ; then
+ AUTO_DEPENDENCIES=yes
+ echo "$as_me:$LINENO: result: yes: gcc major version is ${gs_cv_gcc_major_version}" >&5
+echo "${ECHO_T}yes: gcc major version is ${gs_cv_gcc_major_version}" >&6
+ else
+ AUTO_DEPENDENCIES=""
+ echo "$as_me:$LINENO: result: no: gcc major version is ${gs_cv_gcc_major_version}" >&5
+echo "${ECHO_T}no: gcc major version is ${gs_cv_gcc_major_version}" >&6
+ fi
+fi
+
+
+
+
+
+
+#--------------------------------------------------------------------
+# Shall we strip makefiles upon installation ?
+#--------------------------------------------------------------------
+
+# Stripping makefiles removes comments and newlines from them. The
+# resulting stripped makefiles execute around 5% faster on average.
+# Too little for it to be worth for the common user who's more
+# interested in the comments :-) so it's disabled by default.
+echo "$as_me:$LINENO: checking if we should strip makefiles after installation" >&5
+echo $ECHO_N "checking if we should strip makefiles after installation... $ECHO_C" >&6
+# Check whether --enable-strip-makefiles or --disable-strip-makefiles was given.
+if test "${enable_strip_makefiles+set}" = set; then
+ enableval="$enable_strip_makefiles"
+ ac_cv_strip_makefiles=$enableval
+else
+ ac_cv_strip_makefiles="undefined"
+fi;
+
+if test "$ac_cv_strip_makefiles" = "yes"; then
+ GNUSTEP_STRIP_MAKEFILES=strip;
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6;
+else
+ GNUSTEP_STRIP_MAKEFILES=;
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6;
+fi
+
+
+
+#--------------------------------------------------------------------
+# Disable updating the obsolete directory structure
+#--------------------------------------------------------------------
+gs_move_obsolete=yes
+# Check whether --enable-move-obsolete or --disable-move-obsolete was given.
+if test "${enable_move_obsolete+set}" = set; then
+ enableval="$enable_move_obsolete"
+ gs_move_obsolete=$enableval
+else
+ gs_move_obsolete=yes
+fi;
+
+if test "$gs_move_obsolete" = "yes"; then
+ GNUSTEP_MOVE_OBSOLETE=move_obsolete;
+else
+ GNUSTEP_MOVE_OBSOLETE=
+ { echo "$as_me:$LINENO: Old GNUstep directories will not be moved" >&5
+echo "$as_me: Old GNUstep directories will not be moved" >&6;}
+fi
+
+
+#--------------------------------------------------------------------
+# Record the version
+#--------------------------------------------------------------------
+echo "$as_me:$LINENO: checking for the version of gnustep-make we are compiling" >&5
+echo $ECHO_N "checking for the version of gnustep-make we are compiling... $ECHO_C" >&6
+. "$srcdir/Version"
+echo "$as_me:$LINENO: result: $GNUSTEP_MAKE_VERSION" >&5
+echo "${ECHO_T}$GNUSTEP_MAKE_VERSION" >&6
+
+
+
+
+
+#-------------------------------------------------------------------
+# Record the 'clean' target_os, target_cpu and target_vendor
+#-------------------------------------------------------------------
+# This is just for efficiency, so that core/make/GNUmakefile does not
+# have to compute clean_target_os from target_os (and similar) by
+# running shell scripts each time you 'make' something inside
+# gnustep-make. We basically compute them once now, and cache them
+# forever. It is also used by GNUstep.sh when multi-platform is
+# disabled.
+clean_target_os=`$srcdir/clean_os.sh $target_os`
+clean_target_cpu=`$srcdir/clean_cpu.sh $target_cpu`
+clean_target_vendor=`$srcdir/clean_cpu.sh $target_vendor`
+
+
+
+
+
+#--------------------------------------------------------------------
+# Produce the output files
+#--------------------------------------------------------------------
+ ac_config_files="$ac_config_files config.make openapp debugapp opentool executable.template GNUmakefile GNUstep.sh GNUstep.csh fixpath.sh gnustep-make.spec GNUsteprc"
+
+ ac_config_commands="$ac_config_commands default"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+ (set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+} |
+ sed '
+ t clear
+ : clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ : end' >>confcache
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
+ if test -w $cache_file; then
+ test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+ cat confcache >$cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ ]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_i=`echo "$ac_i" |
+ sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+ # 2. Add them.
+ ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+ ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)$' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+ /^X\/\(\/\/\)$/{ s//\1/; q; }
+ /^X\/\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" || {
+ # Find who we are. Look in the path if we contain no path at all
+ # relative or not.
+ case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+ ;;
+ esac
+ # We did not find ourselves, most probably we were run as `sh COMMAND'
+ # in which case we are not to be found in the path.
+ if test "x$as_myself" = x; then
+ as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+ { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ case $CONFIG_SHELL in
+ '')
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for as_base in sh bash ksh sh5; do
+ case $as_dir in
+ /*)
+ if ("$as_dir/$as_base" -c '
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ CONFIG_SHELL=$as_dir/$as_base
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+ fi;;
+ esac
+ done
+done
+;;
+ esac
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line before each line; the second 'sed' does the real
+ # work. The second script uses 'N' to pair each line-number line
+ # with the numbered line, and appends trailing '-' during
+ # substitution so that $LINENO is not a special case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
+ sed '=' <$as_myself |
+ sed '
+ N
+ s,$,-,
+ : loop
+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+ t loop
+ s,-$,,
+ s,^['$as_cr_digits']*\n,,
+ ' >$as_me.lineno &&
+ chmod +x $as_me.lineno ||
+ { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+ { (exit 1); exit 1; }; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensible to this).
+ . ./$as_me.lineno
+ # Exit status is that of the last command.
+ exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling. Logging --version etc. is OK.
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.59. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+ echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+ echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+ echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+ echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.59,
+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value. By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "x$1" : 'x\([^=]*\)='`
+ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ -*)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ *) # This is not an option, so the user has probably given explicit
+ # arguments.
+ ac_option=$1
+ ac_need_defaults=false;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --vers* | -V )
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+ { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; };;
+ --help | --hel | -h )
+ echo "$ac_cs_usage"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+ ac_need_defaults=false;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; } ;;
+
+ *) ac_config_targets="$ac_config_targets $1" ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+ echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+ exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+#
+# INIT-COMMANDS section.
+#
+
+
+
+_ACEOF
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+ case "$ac_config_target" in
+ # Handling of arguments.
+ "config.make" ) CONFIG_FILES="$CONFIG_FILES config.make" ;;
+ "openapp" ) CONFIG_FILES="$CONFIG_FILES openapp" ;;
+ "debugapp" ) CONFIG_FILES="$CONFIG_FILES debugapp" ;;
+ "opentool" ) CONFIG_FILES="$CONFIG_FILES opentool" ;;
+ "executable.template" ) CONFIG_FILES="$CONFIG_FILES executable.template" ;;
+ "GNUmakefile" ) CONFIG_FILES="$CONFIG_FILES GNUmakefile" ;;
+ "GNUstep.sh" ) CONFIG_FILES="$CONFIG_FILES GNUstep.sh" ;;
+ "GNUstep.csh" ) CONFIG_FILES="$CONFIG_FILES GNUstep.csh" ;;
+ "fixpath.sh" ) CONFIG_FILES="$CONFIG_FILES fixpath.sh" ;;
+ "gnustep-make.spec" ) CONFIG_FILES="$CONFIG_FILES gnustep-make.spec" ;;
+ "GNUsteprc" ) CONFIG_FILES="$CONFIG_FILES GNUsteprc" ;;
+ "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+ "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./confstat$$-$RANDOM
+ (umask 077 && mkdir $tmp)
+} ||
+{
+ echo "$me: cannot create a temporary directory in ." >&2
+ { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@LIBS@,$LIBS,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@CPP@,$CPP,;t t
+s,@build@,$build,;t t
+s,@build_cpu@,$build_cpu,;t t
+s,@build_vendor@,$build_vendor,;t t
+s,@build_os@,$build_os,;t t
+s,@host@,$host,;t t
+s,@host_cpu@,$host_cpu,;t t
+s,@host_vendor@,$host_vendor,;t t
+s,@host_os@,$host_os,;t t
+s,@target@,$target,;t t
+s,@target_cpu@,$target_cpu,;t t
+s,@target_vendor@,$target_vendor,;t t
+s,@target_os@,$target_os,;t t
+s,@ac_cv_library_combo@,$ac_cv_library_combo,;t t
+s,@cc_cppprecomp@,$cc_cppprecomp,;t t
+s,@cc_bundle@,$cc_bundle,;t t
+s,@CYGWIN@,$CYGWIN,;t t
+s,@RANLIB@,$RANLIB,;t t
+s,@AR@,$AR,;t t
+s,@DLLTOOL@,$DLLTOOL,;t t
+s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@LN_S@,$LN_S,;t t
+s,@TAR@,$TAR,;t t
+s,@CHOWN@,$CHOWN,;t t
+s,@GNUSTEP_ROOT@,$GNUSTEP_ROOT,;t t
+s,@root_prefix@,$root_prefix,;t t
+s,@MAKEFILES_SUFFIX@,$MAKEFILES_SUFFIX,;t t
+s,@HOST_INSTALL@,$HOST_INSTALL,;t t
+s,@GNUSTEP_LOCAL_ROOT@,$GNUSTEP_LOCAL_ROOT,;t t
+s,@GNUSTEP_NETWORK_ROOT@,$GNUSTEP_NETWORK_ROOT,;t t
+s,@GNUSTEP_USER_ROOT@,$GNUSTEP_USER_ROOT,;t t
+s,@GNUSTEP_FLATTENED@,$GNUSTEP_FLATTENED,;t t
+s,@GNUSTEP_MULTI_PLATFORM@,$GNUSTEP_MULTI_PLATFORM,;t t
+s,@BACKEND_BUNDLE@,$BACKEND_BUNDLE,;t t
+s,@EGREP@,$EGREP,;t t
+s,@objc_threaded@,$objc_threaded,;t t
+s,@ac_cv_objc_threaded@,$ac_cv_objc_threaded,;t t
+s,@USE_OBJC_EXCEPTIONS@,$USE_OBJC_EXCEPTIONS,;t t
+s,@AUTO_DEPENDENCIES@,$AUTO_DEPENDENCIES,;t t
+s,@INCLUDES@,$INCLUDES,;t t
+s,@LIB_DIR@,$LIB_DIR,;t t
+s,@OBJCFLAGS@,$OBJCFLAGS,;t t
+s,@GNUSTEP_STRIP_MAKEFILES@,$GNUSTEP_STRIP_MAKEFILES,;t t
+s,@GNUSTEP_MOVE_OBSOLETE@,$GNUSTEP_MOVE_OBSOLETE,;t t
+s,@GNUSTEP_MAKE_VERSION@,$GNUSTEP_MAKE_VERSION,;t t
+s,@GNUSTEP_MAKE_MAJOR_VERSION@,$GNUSTEP_MAKE_MAJOR_VERSION,;t t
+s,@GNUSTEP_MAKE_MINOR_VERSION@,$GNUSTEP_MAKE_MINOR_VERSION,;t t
+s,@GNUSTEP_MAKE_SUBMINOR_VERSION@,$GNUSTEP_MAKE_SUBMINOR_VERSION,;t t
+s,@clean_target_os@,$clean_target_os,;t t
+s,@clean_target_cpu@,$clean_target_cpu,;t t
+s,@clean_target_vendor@,$clean_target_vendor,;t t
+s,@LIBOBJS@,$LIBOBJS,;t t
+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+CEOF
+
+_ACEOF
+
+ cat >>$CONFIG_STATUS <<\_ACEOF
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_lines=48
+ ac_sed_frag=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_lines # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ else
+ sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ fi
+ if test ! -s $tmp/subs.frag; then
+ ac_more_lines=false
+ else
+ # The purpose of the label and of the branching condition is to
+ # speed up the sed processing (if there are no `@' at all, there
+ # is no need to browse any of the substitutions).
+ # These are the two extra sed commands mentioned above.
+ (echo ':t
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+ fi
+ ac_sed_frag=`expr $ac_sed_frag + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_lines`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
+
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+ esac
+
+ if test x"$ac_file" != x-; then
+ { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+ configure_input=
+ else
+ configure_input="$ac_file. "
+ fi
+ configure_input=$configure_input"Generated from `echo $ac_file_in |
+ sed 's,.*/,,'` by configure."
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo "$f";;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+ sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+ rm -f $tmp/stdin
+ if test x"$ac_file" != x-; then
+ mv $tmp/out $ac_file
+ else
+ cat $tmp/out
+ rm -f $tmp/out
+ fi
+
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='[ ].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ # Do quote $f, to prevent DOS paths from being IFS'd.
+ echo "$f";;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+ # Remove the trailing spaces.
+ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
+
+_ACEOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h. The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status. Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+t end
+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless. Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments. This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\_ACEOF
+s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo ' :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+ # Write a limited-size here document to $tmp/defines.sed.
+ echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+ # Speed up: don't consider the non `#define' lines.
+ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
+ # Work around the forget-to-reset-the-flag bug.
+ echo 't clr' >>$CONFIG_STATUS
+ echo ': clr' >>$CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+ echo 'CEOF
+ sed -f $tmp/defines.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+ rm -f conftest.defines
+ mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo ' fi # grep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+ # Write a limited-size here document to $tmp/undefs.sed.
+ echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+ # Speed up: don't consider the non `#undef'
+ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
+ # Work around the forget-to-reset-the-flag bug.
+ echo 't clr' >>$CONFIG_STATUS
+ echo ': clr' >>$CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+ echo 'CEOF
+ sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+ rm -f conftest.undefs
+ mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+ echo "/* Generated by configure. */" >$tmp/config.h
+ else
+ echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
+ fi
+ cat $tmp/in >>$tmp/config.h
+ rm -f $tmp/in
+ if test x"$ac_file" != x-; then
+ if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+ { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ rm -f $ac_file
+ mv $tmp/config.h $ac_file
+ fi
+ else
+ cat $tmp/config.h
+ rm -f $tmp/config.h
+ fi
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+ ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+ ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_dest" : 'X\(//\)[^/]' \| \
+ X"$ac_dest" : 'X\(//\)$' \| \
+ X"$ac_dest" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
+
+
+ { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
+ case $ac_dest in
+ default ) chmod a+x openapp debugapp opentool fixpath.sh executable.template ;;
+ esac
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || { (exit 1); exit 1; }
+fi
+
--- /dev/null
+#
+# configure.ac
+#
+# Copyright (C) 1997-2004 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Ovidiu Predescu <ovidiu@net-community.com>
+# Rewrite: Adam Fedor <fedor@gnu.org>
+# Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+AC_INIT
+AC_PREREQ(2.57)
+AC_CONFIG_SRCDIR([application.make])
+AC_CONFIG_HEADER(config.h)
+
+#--------------------------------------------------------------------
+# Setup the library combination
+#--------------------------------------------------------------------
+targetArgument=${target}
+AC_PROG_CC
+AC_PROG_CPP
+AC_CANONICAL_TARGET([])
+
+AC_MSG_CHECKING(for library combo)
+AC_ARG_WITH(library-combo,[
+--with-library-combo Define the default library combination
+],
+ac_cv_library_combo=$withval,
+ac_cv_library_combo=$ac_cv_library_combo
+)
+
+if test "$ac_cv_library_combo" = ""; then
+ case "$host_os" in
+ darwin*) ac_cv_library_combo=apple-apple-apple ;;
+ nextstep4) ac_cv_library_combo=nx-nx-nx ;;
+ openstep4) ac_cv_library_combo=nx-nx-nx ;;
+ *) ac_cv_library_combo=gnu-gnu-gnu ;;
+ esac
+fi
+
+case "$ac_cv_library_combo" in
+ apple) ac_cv_library_combo=apple-apple-apple ;;
+ gnu) ac_cv_library_combo=gnu-gnu-gnu ;;
+ nx) ac_cv_library_combo=nx-nx-nx ;;
+esac
+
+AC_SUBST(ac_cv_library_combo)
+AC_MSG_RESULT($ac_cv_library_combo)
+
+OBJC_RUNTIME_LIB=`echo $ac_cv_library_combo | awk -F- '{print $1}'`
+
+#--------------------------------------------------------------------
+# Check if we are using Apple cc
+#--------------------------------------------------------------------
+cc_cppprecomp=0
+cc_byndle=0
+AC_MSG_CHECKING([for apple compiler flags])
+cc_cppprecomp=`${CC} -no-cpp-precomp 2>&1 | grep -c "unrecognized"`
+cc_bundle=`${CC} -bundle 2>&1 | grep -c "couldn"`
+# 0 means we have the flag
+if test $cc_cppprecomp = 0; then
+ cc_cppprecomp=yes
+else
+ cc_cppprecomp=no
+fi
+if test $cc_bundle = 0; then
+ cc_bundle=yes
+else
+ cc_bundle=no
+fi
+AC_MSG_RESULT($cc_bundle)
+AC_SUBST(cc_cppprecomp)
+AC_SUBST(cc_bundle)
+
+#--------------------------------------------------------------------
+# specific target_os options
+#--------------------------------------------------------------------
+case "$target_os" in
+ freebsd* | openbsd* )
+ INCLUDES="$INCLUDES -I/usr/local/include"
+ LIB_DIR="$LIB_DIR -L/usr/local/lib";;
+ netbsd*) INCLUDES="$INCLUDES -I/usr/pkg/include"
+ LIB_DIR="$LIB_DIR -Wl,-R/usr/pkg/lib -L/usr/pkg/lib";;
+esac
+
+#--------------------------------------------------------------------
+# Determine the host, build, and target systems
+#--------------------------------------------------------------------
+case $host_os in
+ *cygwin* ) CYGWIN=yes;;
+ *mingw32* ) MINGW32=yes;;
+ * ) MINGW32=no
+ CYGWIN=no;;
+esac
+AC_SUBST(CYGWIN)
+
+AC_EXEEXT
+AC_OBJEXT
+if test "$MINGW32" = yes; then
+ echo "hosted on mingw32 .."
+ export INSTALL=install
+ export SHELL=sh
+ export CC=${CC:-gcc}
+ export AR=${AR:-ar}
+ export RANLIB=${RANLIB:-ranlib}
+ export DLLTOOL=${DLLTOOL:-dlltool}
+elif test "$CYGWIN" = yes; then
+ echo "hosted on cygwin .."
+ export CC=${CC:-gcc}
+ export AR=${AR:-ar}
+ export RANLIB=${RANLIB:-ranlib}
+ export DLLTOOL=${DLLTOOL:-dlltool}
+fi
+
+#--------------------------------------------------------------------
+# Find the binary and compile tools
+#--------------------------------------------------------------------
+if test "x$target" != "x$host"; then
+ echo "cross compiling from $host to $target .."
+ cross_compiling="yes"
+ AC_CHECK_PROG(CC, "${targetArgument}-gcc", dnl
+ "${targetArgument}-gcc", gcc)
+ AC_CHECK_PROG(RANLIB, "${targetArgument}-ranlib", dnl
+ "${targetArgument}-ranlib", ranlib)
+ AC_CHECK_PROG(AR, "${targetArgument}-ar", dnl
+ "${targetArgument}-ar", ar)
+ AC_CHECK_PROG(DLLTOOL, "${targetArgument}-dlltool", dnl
+ "${targetArgument}-dlltool", dlltool)
+else
+ AC_CHECK_PROG(AR, ar, ar)
+ AC_CHECK_PROG(DLLTOOL, dlltool, dlltool)
+ AC_PROG_RANLIB
+fi
+
+AC_PROG_INSTALL
+AC_PROG_LN_S([])
+
+AC_CHECK_PROGS(TAR, gnutar gtar, tar)
+AC_ARG_WITH(tar,
+[--with-tar Set the name of the tar program to use],
+ TAR="$withval",)
+
+AC_CHECK_PROG(CHOWN, chown, chown, none)
+if test "$MINGW32" = no; then
+ if test "$CHOWN" = "none"; then
+ AC_MSG_ERROR("Could not find chown.");
+ fi
+fi
+
+#-------------------------------------------------------------------
+# GNUstep specific options follow
+#-------------------------------------------------------------------
+
+#--------------------------------------------------------------------
+# The GNUstep root directory.
+# The user should have the GNUSTEP_SYSTEM_ROOT environment variable
+# defined, but if not then we have a global default.
+# Also test for the C: directory, which means we're on Windows
+#--------------------------------------------------------------------
+AC_MSG_CHECKING(for GNUSTEP_SYSTEM_ROOT to use)
+AC_PREFIX_DEFAULT(`if test "x$GNUSTEP_SYSTEM_ROOT" = "x"; then
+ if test -d C: ; then
+ echo C:/GNUstep;
+ else
+ echo /usr/GNUstep ;
+ fi
+else
+ echo "$GNUSTEP_SYSTEM_ROOT" ;
+fi`)
+if test "x$prefix" = "xNONE"; then
+ prefix="$ac_default_prefix" ;
+fi
+AC_ARG_WITH(system-root,
+[--without-system-root Don't use separate system root directory],
+ ac_cv_system_root="$withval",
+ ac_cv_system_root=yes)
+
+GNUSTEP_ROOT="$prefix"
+root_prefix='${prefix}'
+if test $ac_cv_system_root = yes; then
+ if test "x`basename $prefix`" = xSystem; then
+ GNUSTEP_ROOT=`dirname $prefix`
+ else
+ if test "x$prefix" = "x/"; then
+ prefix=/System
+ else
+ prefix="$prefix/System"
+ fi
+ fi
+ root_prefix='${prefix}/..'
+fi
+AC_SUBST(GNUSTEP_ROOT)
+AC_SUBST(root_prefix)
+AC_MSG_RESULT($prefix)
+
+# Makefiles directory location is in a bit of flux now. To keep the
+# Makefiles dir in the previous location, reset this variable to
+# 'Makefiles' and regenerate configure. Note this doesn't change all
+# occurances.
+MAKEFILES_SUFFIX=Library/Makefiles
+AC_SUBST(MAKEFILES_SUFFIX)
+
+# HOST_INSTALL is the name of the install program in config.make so set it up
+# to point to the install-sh script in the GNUstep tree if no system install is
+# found.
+AC_SUBST(HOST_INSTALL)
+if test "$INSTALL" = "$ac_install_sh"; then
+ HOST_INSTALL="$prefix/$MAKEFILES_SUFFIX/$INSTALL"
+else
+ HOST_INSTALL="$INSTALL"
+fi
+
+#--------------------------------------------------------------------
+# Process --with-defaults-root, --with-user-root,
+# --with-local-root and --with-network-root
+#--------------------------------------------------------------------
+AC_MSG_CHECKING(for GNUSTEP_LOCAL_ROOT to use)
+AC_ARG_WITH(local-root,
+[--with-local-root
+ Set the GNUSTEP_LOCAL_ROOT directory. Use this option if you want
+to have the GNUSTEP_LOCAL_ROOT directory in a non-standard place. Example:
+--with-local-root=/usr/local/GNUstep/Local
+],
+GNUSTEP_LOCAL_ROOT="$withval",
+GNUSTEP_LOCAL_ROOT="$GNUSTEP_ROOT/Local"
+)
+AC_MSG_RESULT($GNUSTEP_LOCAL_ROOT)
+
+AC_MSG_CHECKING(for GNUSTEP_NETWORK_ROOT to use)
+AC_ARG_WITH(network-root,
+[--with-network-root
+ Set the GNUSTEP_NETWORK_ROOT directory. Use this option if you want
+to have the GNUSTEP_NETWORK_ROOT directory. Example:
+--with-network-root=/usr/local/GNUstep/Network
+],
+GNUSTEP_NETWORK_ROOT="$withval",
+# By default we disable network root, by setting GNUSTEP_NETWORK_ROOT
+# to be the same as GNUSTEP_LOCAL_ROOT. GNUSTEP_NETWORK_ROOT is very
+# rarely used, and most users prefer simpler systems with shorter
+# paths and shorter command lines. To turn on GNUSTEP_NETWORK_ROOT
+# again, you can use the --with-network-root=xxx option; pass
+# something like --with-network-root=/usr/GNUstep/Network on the
+# configure command line.
+GNUSTEP_NETWORK_ROOT="$GNUSTEP_LOCAL_ROOT"
+)
+AC_MSG_RESULT($GNUSTEP_NETWORK_ROOT)
+
+AC_SUBST(GNUSTEP_LOCAL_ROOT)
+AC_SUBST(GNUSTEP_NETWORK_ROOT)
+
+AC_MSG_CHECKING(for GNUSTEP_USER_ROOT to use)
+AC_ARG_WITH(user-root,
+[--with-user-root
+ Set the GNUSTEP_USER_ROOT directory for all users. '~' is allowed
+ at the beginning to mean the user's home directory. Use this
+ option if you want to have the GNUSTEP_USER_ROOT directory in a non
+ default place for all users.
+ Example: --with-user-root='~/gnustep'
+],
+GNUSTEP_USER_ROOT="$withval",
+# The default is to have user roots in ~/GNUstep
+GNUSTEP_USER_ROOT="~/GNUstep"
+)
+AC_MSG_RESULT($GNUSTEP_USER_ROOT)
+AC_SUBST(GNUSTEP_USER_ROOT)
+
+#--------------------------------------------------------------------
+# Is the system flattened?
+#--------------------------------------------------------------------
+AC_MSG_CHECKING(for flattened directory structure)
+AC_ARG_ENABLE(flattened,
+[--disable-flattened Disable flattened directory structure],
+ ac_cv_flattened=$enableval,
+ ac_cv_flattened="undefined")
+
+if test "$ac_cv_flattened" = "no"; then
+ GNUSTEP_FLATTENED=;
+else
+ GNUSTEP_FLATTENED=yes;
+fi
+AC_SUBST(GNUSTEP_FLATTENED)
+
+if test "$GNUSTEP_FLATTENED" = "yes"; then
+ AC_MSG_RESULT(yes);
+else
+ AC_MSG_RESULT(no);
+fi
+
+
+#--------------------------------------------------------------------
+# Is the system multi-platform?
+#--------------------------------------------------------------------
+#
+# Multi-platform means that GNUstep.sh will determine the host
+# platform (by running config.guess) each time that it is sourced.
+# This is good if you are sharing your GNUstep.sh across your network
+# (for example, mounting the makefiles via NFS), but it requires you
+# to be able to run config.guess on your machine(s), which usually
+# requires a development environment (compiler, libc etc).
+#
+# The default instead is not using multi-platform, which means the
+# local host os, cpu and version is hardcoded in GNUstep.sh. This
+# works nicely for a single machine using this gnustep-make
+# installation, and it works even if you don't have development
+# packages (gcc, binutils, libc-dev etc) installed. We had to make
+# this the default after end-users (with no development packages
+# installed) complained that binary packages wouldn't work (and the
+# reason turned out to be that GNUstep.sh was running config.guess
+# which was returning the wrong platform because the development
+# tools needed/used to determine the platform were not available).
+#
+# Unless you know what you are doing, stick with the default, which is
+# also much faster when sourcing GNUstep.sh.
+#
+AC_ARG_ENABLE(multi-platform,
+[--enable-multi-platform Use run time multi-platform support],
+ ac_cv_multi_platform=$enableval,
+ ac_cv_multi_platform="undefined")
+
+if test "$ac_cv_multi_platform" = "yes"; then
+ GNUSTEP_MULTI_PLATFORM=yes;
+else
+ GNUSTEP_MULTI_PLATFORM=;
+fi
+AC_SUBST(GNUSTEP_MULTI_PLATFORM)
+
+#--------------------------------------------------------------------
+# Build backend bundles (on by default)
+#--------------------------------------------------------------------
+AC_ARG_ENABLE(backend-bundle, [
+--disable-backend-bundle Compile gui backend as a library],
+ ac_cv_backend=$enableval,
+ ac_cv_backend="yes")
+
+if test "$ac_cv_backend" = "yes"; then
+ BACKEND_BUNDLE=yes;
+else
+ BACKEND_BUNDLE=;
+fi
+AC_SUBST(BACKEND_BUNDLE)
+
+#--------------------------------------------------------------------
+# Miscellaneous flags and setup
+#--------------------------------------------------------------------
+# Strip '-g' off of CFLAGS, since debug=yes adds that anyway
+CFLAGS=`echo $CFLAGS | sed -e 's/-g //'`
+
+# Set location of GNUstep dirs for later use
+if test "$GNUSTEP_FLATTENED" = yes; then
+ GNUSTEP_LDIR="$prefix/Library/Libraries"
+ GNUSTEP_HDIR="$prefix/Library/Headers"
+else
+ clean_target_os=`$srcdir/clean_os.sh $target_os`
+ clean_target_cpu=`$srcdir/clean_cpu.sh $target_cpu`
+ obj_dir="$clean_target_cpu/$clean_target_os"
+ GNUSTEP_LDIR="$prefix/Library/Libraries/$obj_dir"
+ GNUSTEP_HDIR="$prefix/Library/Headers/${ac_cv_library_combo}"
+fi
+
+# Check to see if the libobjc library is in our GNUSTEP_SYSTEM_ROOT.
+# If so, there are probably other libraries that we want there also, so
+# leave the proper includes in CPPFLAGS and LDFLAGS
+AC_MSG_CHECKING(for custom shared objc library)
+AC_CACHE_VAL(gs_cv_objc_libdir,
+[dnl
+gs_cv_objc_libdir=NONE
+if test -f "$GNUSTEP_HDIR/objc/objc.h"; then
+ if test -f "$GNUSTEP_LDIR/libobjc.a" -o -f "$GNUSTEP_LDIR/libobjc.so"; then
+ gs_cv_objc_libdir="$GNUSTEP_LDIR"
+ else
+ gs_cv_objc_libdir=NONE
+ fi
+fi
+#gcc_shared_libobjc=`gcc -print-file-name=libobjc.so`
+#if test -f "$gcc_shared_libobjc"; then
+# gs_cv_objc_libdir=`dirname $gcc_shared_libobjc`
+#fi
+])
+AC_MSG_RESULT($gs_cv_objc_libdir)
+
+# The following are needed to compile the test programs
+if test "$gs_cv_objc_libdir" = "$GNUSTEP_LDIR"; then
+ if test "$GNUSTEP_FLATTENED" = yes; then
+ OBJC_CPPFLAGS="$CPPFLAGS $INCLUDES -I$prefix/Library/Headers"
+ else
+ OBJC_CPPFLAGS="$CPPFLAGS $INCLUDES -I$prefix/Library/Headers/${ac_cv_library_combo}"
+ fi
+ OBJC_LDFLAGS="$LDFLAGS $LIB_DIR -L$gs_cv_objc_libdir"
+fi
+
+# And the following to execute them
+LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gs_cv_objc_libdir"
+export LD_LIBRARY_PATH
+
+#--------------------------------------------------------------------
+# Miscellaneous headers (only used for compiling which_lib.c and user_home.c)
+#--------------------------------------------------------------------
+AC_HEADER_DIRENT
+AC_CHECK_HEADERS(sys/param.h sys/file.h dir.h string.h stdlib.h sys/types.h dnl
+ fcntl.h limits.h utime.h sys/stat.h pwd.h unistd.h)
+AC_CHECK_FUNCS(getpwnam getpwuid geteuid getlogin strchr)
+
+#--------------------------------------------------------------------
+# Check if libobjc was compiled with thread support.
+#--------------------------------------------------------------------
+OBJC_THREAD=
+AC_ARG_WITH(thread-lib,
+[--with-thread-lib Specify alternate thread library],
+OBJC_THREAD=$withval,
+OBJC_THREAD=
+)
+
+
+AC_MSG_CHECKING(whether objc has thread support)
+saved_CFLAGS="$CFLAGS"
+saved_LIBS="$LIBS"
+CFLAGS="$CFLAGS -x objective-c -I$srcdir $OBJC_CPPFLAGS $OBJC_LDFLAGS"
+if test "$OBJC_RUNTIME_LIB" = "gnu"; then
+ CFLAGS="$CFLAGS -fgnu-runtime"
+fi
+if test "$OBJC_RUNTIME_LIB" = "nx"; then
+ CFLAGS="$CFLAGS -DNeXT_RUNTIME"
+fi
+if test "$OBJC_RUNTIME_LIB" = "apple"; then
+ CFLAGS="$CFLAGS -DNeXT_RUNTIME"
+fi
+if test "$OBJC_THREAD" != ""; then
+ LIBS="-lobjc $LIBS $OBJC_THREAD"
+ AC_TRY_RUN([#include "config_thread.m"],
+ objc_threaded="$OBJC_THREAD",
+ objc_threaded="", objc_threaded="")
+elif test "$host_os" = linux-gnu; then
+ LIBS="-lobjc -lpthread"
+ AC_TRY_RUN([#include "config_thread.m"], objc_threaded="-lpthread",
+ objc_threaded="", objc_threaded="-lpthread")
+elif test "`echo $host_os|sed 's/[[0-9]].*//'|sed s/elf//`" = freebsd; then
+ LIBS="-pthread -lobjc"
+ AC_TRY_RUN([#include "config_thread.m"], objc_threaded="-pthread",
+ objc_threaded="", objc_threaded="-pthread")
+ if test x"$objc_threaded" = x""; then
+ LIBS="-lpthread -lobjc"
+ AC_TRY_RUN([#include "config_thread.m"], objc_threaded="-lpthread",
+ objc_threaded="", objc_threaded="-lpthread")
+ fi
+ if test x"$objc_threaded" = x""; then
+ LIBS="-lobjc -lpcthread"
+ AC_TRY_RUN([#include "config_thread.m"], objc_threaded="-lpcthread",
+ objc_threaded="", objc_threaded="-lpcthread")
+ fi
+elif test "$MINGW32" = yes; then
+ # Mingw doesn't need anything extra for threads
+ LIBS="-lobjc $LIBS"
+ AC_TRY_RUN([#include "config_thread.m"],
+ objc_threaded="works",
+ objc_threaded="", objc_threaded="works")
+else
+ LIBS="-lobjc $LIBS"
+ AC_TRY_RUN([#include "config_thread.m"],
+ objc_threaded="works",
+ objc_threaded="", objc_threaded="")
+ if test x"$objc_threaded" = x""; then
+ LIBS="-lobjc $saved_LIBS -lpthread "
+ AC_TRY_RUN([#include "config_thread.m"],
+ objc_threaded="-lpthread",
+ objc_threaded="", objc_threaded="")
+ fi
+ if test x"$objc_threaded" = x""; then
+ # Solaris, OpenBSD/sparc
+ LIBS="-lobjc $saved_LIBS -lpthread -lposix4"
+ AC_TRY_RUN([#include "config_thread.m"],
+ objc_threaded="-lpthread -lposix4",
+ objc_threaded="", objc_threaded="")
+ fi
+ if test x"$objc_threaded" = x""; then
+ LIBS="-lobjc $saved_LIBS -lthread "
+ AC_TRY_RUN([#include "config_thread.m"],
+ objc_threaded="-lthread",
+ objc_threaded="", objc_threaded="")
+ fi
+fi
+if test x"$objc_threaded" = x""; then
+ AC_MSG_RESULT(no)
+else
+ if test x"$objc_threaded" = x"works"; then
+ objc_threaded=""
+ fi
+ AC_MSG_RESULT(yes: $objc_threaded)
+fi
+ac_cv_objc_threaded="$objc_threaded"
+AC_SUBST(objc_threaded)
+AC_SUBST(ac_cv_objc_threaded)
+
+# Do not restore LIBS and CFLAGS yet as we need to test if the
+# compiler supports native exceptions.
+
+#--------------------------------------------------------------------
+# Check if GCC supports -fobjc-exceptions, and if so, turn it on!
+#--------------------------------------------------------------------
+
+AC_ARG_ENABLE(native-objc-exceptions,
+ AC_HELP_STRING([--enable-native-objc-exceptions],
+ [use native objective-c exceptions]),
+ USE_OBJC_EXCEPTIONS=$enableval,
+ USE_OBJC_EXCEPTIONS=no)
+
+AC_MSG_CHECKING(whether we should use native ObjC exceptions)
+if test x"$USE_OBJC_EXCEPTIONS" = x"yes"; then
+ # What we want to do: set USE_OBJC_EXCEPTIONS to yes if we can compile
+ # something with @try/@catch/@finally in it.
+ if test ! ${GCC} = "yes" ; then
+ USE_OBJC_EXCEPTIONS=no
+ AC_MSG_RESULT(no: compiler isn't gcc)
+ else
+ CFLAGS="$CFLAGS -fobjc-exceptions"
+ AC_RUN_IFELSE([[
+#include <stdlib.h>
+#include <objc/Object.h>
+
+int main(int argc, char **argv)
+{
+ Object *o=nil;
+ @try
+ {
+ o=[Object new];
+ @throw o;
+ }
+ @catch (id foo)
+ {
+ if (o!=foo)
+ return 1;
+ }
+ return 0;
+}
+ ]], USE_OBJC_EXCEPTIONS=yes, USE_OBJC_EXCEPTIONS=no)
+ AC_MSG_RESULT($USE_OBJC_EXCEPTIONS)
+ fi
+ if test x$USE_OBJC_EXCEPTIONS = xno; then
+ AC_MSG_NOTICE([Native objective-c exceptions were requested, but the compiler])
+ AC_MSG_NOTICE([doesn't support them.])
+ AC_MSG_ERROR([compiler doesn't support native objective-c exceptions])
+ fi
+else
+ AC_MSG_RESULT(not requested by user)
+fi
+
+AC_SUBST(USE_OBJC_EXCEPTIONS)
+
+# Restore LIBS and CFLAGS - we are going to compile C code in the next
+# test.
+LIBS="$saved_LIBS"
+CFLAGS="$saved_CFLAGS"
+
+#--------------------------------------------------------------------
+# Check if compiler supports -MMD -MP to generate %.d files ...
+#--------------------------------------------------------------------
+
+AC_MSG_CHECKING(if the compiler supports autodependencies)
+
+# What we want to do: set AUTO_DEPENDENCIES to yes if gcc => 3.x
+
+if test ! ${GCC} = "yes" ; then
+ AUTO_DEPENDENCIES=""
+ AC_MSG_RESULT(no: it's not gcc)
+else
+ # Running gcc -dumpversion we get something like 2.95.4 or
+ # egcs-2.91.66 or 3.0.2 or 3.1 20011211
+ # We want to discard anything but the major number.
+ # Explanation of the regexp -
+ # \(^[^0-9]*\) matches beginning of line and following non numeric chars
+ # \([0-9][0-9]*\) matches 1 or more numeric chars (this is the 2^nd
+ # subpattern)
+ # \([^0-9].*\) matches a non numeric char followed by anything
+ # /\2/ replace the whole lot with the 2^nd subpattern
+ gs_cv_gcc_major_version=`${CC} -dumpversion | sed "s/\([[^0-9]]*\)\([[0-9]][[0-9]]*\)\([[^0-9]].*\)/\2/"`;
+
+ if test "${gs_cv_gcc_major_version}" -ge "3" ; then
+ AUTO_DEPENDENCIES=yes
+ AC_MSG_RESULT(yes: gcc major version is ${gs_cv_gcc_major_version})
+ else
+ AUTO_DEPENDENCIES=""
+ AC_MSG_RESULT(no: gcc major version is ${gs_cv_gcc_major_version})
+ fi
+fi
+
+AC_SUBST(AUTO_DEPENDENCIES)
+AC_SUBST(INCLUDES)
+AC_SUBST(LIB_DIR)
+AC_SUBST(OBJCFLAGS)
+
+#--------------------------------------------------------------------
+# Shall we strip makefiles upon installation ?
+#--------------------------------------------------------------------
+
+# Stripping makefiles removes comments and newlines from them. The
+# resulting stripped makefiles execute around 5% faster on average.
+# Too little for it to be worth for the common user who's more
+# interested in the comments :-) so it's disabled by default.
+AC_MSG_CHECKING(if we should strip makefiles after installation)
+AC_ARG_ENABLE(strip-makefiles,
+[--enable-strip-makefiles Enable stripping makefiles after installation],
+ ac_cv_strip_makefiles=$enableval,
+ ac_cv_strip_makefiles="undefined")
+
+if test "$ac_cv_strip_makefiles" = "yes"; then
+ GNUSTEP_STRIP_MAKEFILES=strip;
+ AC_MSG_RESULT(yes);
+else
+ GNUSTEP_STRIP_MAKEFILES=;
+ AC_MSG_RESULT(no);
+fi
+AC_SUBST(GNUSTEP_STRIP_MAKEFILES)
+
+
+#--------------------------------------------------------------------
+# Disable updating the obsolete directory structure
+#--------------------------------------------------------------------
+gs_move_obsolete=yes
+AC_ARG_ENABLE(move-obsolete,
+[--disable-move-obsolete Disable moving obsolete dir structure],
+ gs_move_obsolete=$enableval,
+ gs_move_obsolete=yes)
+
+if test "$gs_move_obsolete" = "yes"; then
+ GNUSTEP_MOVE_OBSOLETE=move_obsolete;
+else
+ GNUSTEP_MOVE_OBSOLETE=
+ AC_MSG_NOTICE(Old GNUstep directories will not be moved)
+fi
+AC_SUBST(GNUSTEP_MOVE_OBSOLETE)
+
+#--------------------------------------------------------------------
+# Record the version
+#--------------------------------------------------------------------
+AC_MSG_CHECKING(for the version of gnustep-make we are compiling)
+. "$srcdir/Version"
+AC_MSG_RESULT($GNUSTEP_MAKE_VERSION)
+AC_SUBST(GNUSTEP_MAKE_VERSION)
+AC_SUBST(GNUSTEP_MAKE_MAJOR_VERSION)
+AC_SUBST(GNUSTEP_MAKE_MINOR_VERSION)
+AC_SUBST(GNUSTEP_MAKE_SUBMINOR_VERSION)
+
+#-------------------------------------------------------------------
+# Record the 'clean' target_os, target_cpu and target_vendor
+#-------------------------------------------------------------------
+# This is just for efficiency, so that core/make/GNUmakefile does not
+# have to compute clean_target_os from target_os (and similar) by
+# running shell scripts each time you 'make' something inside
+# gnustep-make. We basically compute them once now, and cache them
+# forever. It is also used by GNUstep.sh when multi-platform is
+# disabled.
+clean_target_os=`$srcdir/clean_os.sh $target_os`
+clean_target_cpu=`$srcdir/clean_cpu.sh $target_cpu`
+clean_target_vendor=`$srcdir/clean_cpu.sh $target_vendor`
+AC_SUBST(clean_target_os)
+AC_SUBST(clean_target_cpu)
+AC_SUBST(clean_target_vendor)
+AC_SUBST(target)
+
+#--------------------------------------------------------------------
+# Produce the output files
+#--------------------------------------------------------------------
+AC_CONFIG_FILES([config.make openapp debugapp opentool
+executable.template GNUmakefile GNUstep.sh GNUstep.csh fixpath.sh
+gnustep-make.spec GNUsteprc])
+AC_CONFIG_COMMANDS([default],
+ [[chmod a+x openapp debugapp opentool fixpath.sh executable.template]],
+ [[]])
+AC_OUTPUT
--- /dev/null
+#! /bin/sh
+#
+# cpu.sh
+#
+# Print out the CPU from a canonical name.
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+echo $1 | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'
--- /dev/null
+#!/bin/sh
+# create_domain_dir_tree.sh
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+# Date: October 2002
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Take a single argument - a directory name -, and create the GNUstep
+# domain directory structure inside the directory.
+
+# It is automatically called with argument ${GNUSTEP_SYSTEM_ROOT} when
+# gnustep-make is installed; you can call it with argument
+# ${GNUSTEP_LOCAL_ROOT} or ${GNUSTEP_NETWORK_ROOT} (or your own
+# GNUstep user dir) if you need to create manually a GNUstep domain
+# directory tree in there.
+
+if [ -z "$*" ]; then
+ echo "No arguments specified" >&2
+ exit 0
+fi
+
+# The original code
+# mydir=`dirname "$0"`
+
+# But it seems that on OpenStep, dirname is not available, so we use
+# the following trick. The sed expression replaces /[^/]*$ (which
+# means '/' followed by a sequence of zero or more non-'/' characters,
+# followed by end-of-line) with nothing (that is, it deletes it), and
+# what remains is the dirname.
+mydir=`echo "$0" | sed -e "s#/[^/]*\\\$##"`
+
+basepath="$1"
+
+${mydir}/mkinstalldirs "$basepath" \
+ "$basepath"/Applications \
+ "$basepath"/Tools/${GNUSTEP_TARGET_LDIR} \
+ "$basepath"/Tools/Resources \
+ "$basepath"/Tools/Java \
+ "$basepath"/Library/ApplicationSupport \
+ "$basepath"/Library/Bundles \
+ "$basepath"/Library/ColorPickers \
+ "$basepath"/Library/Colors \
+ "$basepath"/Library/DocTemplates \
+ "$basepath"/Library/Documentation/Developer \
+ "$basepath"/Library/Documentation/User \
+ "$basepath"/Library/Documentation/info \
+ "$basepath"/Library/Documentation/man \
+ "$basepath"/Library/Fonts \
+ "$basepath"/Library/Frameworks \
+ "$basepath"/Library/Headers/${MAYBE_LIBRARY_COMBO}/${GNUSTEP_TARGET_DIR} \
+ "$basepath"/Library/Images \
+ "$basepath"/Library/KeyBindings \
+ "$basepath"/Library/Libraries/${GNUSTEP_TARGET_LDIR} \
+ "$basepath"/Library/Libraries/Resources \
+ "$basepath"/Library/Libraries/Java \
+ "$basepath"/Library/PostScript \
+ "$basepath"/Library/Services \
+ "$basepath"/Library/Sounds
+
--- /dev/null
+#
+# ctool.make
+#
+# Makefile rules to build GNUstep-based command line ctools.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/ctool.make
+else
+
+ifeq ($(GNUSTEP_TYPE),ctool)
+include $(GNUSTEP_MAKEFILES)/Instance/ctool.make
+endif
+
+endif
--- /dev/null
+#!/bin/sh
+#
+# @configure_input@
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Date: October 1997
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Execute gdb for the application passed as argument. The application is
+# searched through the GNUstep directories if a complete or relative path name
+# is not specified. The arguments passed after the application name are passed
+# unmodified to the application.
+
+if [ -z "$1" ]; then
+ echo usage: `basename "$0"` [--library-combo=...] [--gdb=...] application [arguments...]
+ echo `basename "$0"` --help for help
+ exit 1
+fi
+
+if [ -z "$EXEEXT" ]; then
+ EXEEXT=@EXEEXT@
+fi
+if [ -z "$LIBRARY_COMBO" ]; then
+ LIBRARY_COMBO=@ac_cv_library_combo@
+fi
+if [ -z "$GDB" ]; then
+ GDB=gdb
+fi
+
+# Read command line arguments now
+while [ x"$1" != x ]; do
+ case "$1" in
+ --help)
+ echo usage: `basename "$0"` [--library-combo=...] [--gbd=...] application [arguments...]
+ echo
+ echo [--library-combo=...] specifies a GNUstep backend to use.
+ echo It overrides the default LIBRARY_COMBO environment variable.
+ echo --library-combo=gnu for GNUstep
+ echo --library-combo=nx for NeXT OPENSTEP
+ echo --library-combo=apple for Apple OSX
+ echo
+ echo [--gdb=...] specifies the debugger to use.
+ echo It overrides the default GDB environment variable. If the --gdb=...
+ echo flag is not used, and the GDB variable is not set, then the program
+ echo called \"gdb\" is invoked.
+ echo
+ echo application is the complete or relative name of the application
+ echo program with the .app or .debug extension, like Edit.debug.
+ echo
+ echo [arguments...] are the arguments to the application.
+ exit 0
+ ;;
+
+ --library-combo=*)
+ LIBRARY_COMBO=`echo "$1" | sed 's/--library-combo=//'`
+ shift;;
+
+ --gdb=*)
+ GDB=`echo "$1" | sed 's/--gdb=//'`
+ shift;;
+
+ *)
+ app="$1";
+ shift;;
+ esac
+done
+
+if [ "$LIBRARY_COMBO" = nx ]; then
+ LIBRARY_COMBO=nx-nx-nx
+elif [ "$LIBRARY_COMBO" = gnu ]; then
+ LIBRARY_COMBO=gnu-gnu-gnu
+elif [ "$LIBRARY_COMBO" = fd ]; then
+ LIBRARY_COMBO=gnu-fd
+elif [ "$LIBRARY_COMBO" = apple ]; then
+ LIBRARY_COMBO=apple-apple-apple
+fi
+
+# Remove leading slashes at the end of the application name
+app="`echo \"$app\" | sed 's%/*$%%'`"
+
+case "$app" in
+ /*) # An absolute path.
+ full_appname="$app";;
+ */*) # A relative path
+ full_appname="`(cd \"$app\"; pwd)`";;
+ *) # A path that should be searched into the GNUstep paths
+ if [ -n "$GNUSTEP_PATHLIST" ]; then
+ SPATH="$GNUSTEP_PATHLIST"
+ else
+ SPATH="$PATH"
+ fi
+ SPATH=".:$SPATH"
+ IFS=:
+ for dir in $SPATH; do
+ if [ -d "$dir/Applications/$app" ]; then
+ full_appname="`(cd \"$dir/Applications/$app\"; pwd)`"
+ break;
+ fi
+ if [ -d "$dir/$app" ]; then
+ full_appname="`(cd \"$dir/$app\"; pwd)`"
+ break;
+ fi
+ done;;
+esac
+
+# Search for a core file in the current directory.
+corearg=
+corefiles="core*"
+for corefile in $corefiles; do
+ if [ -f "$corefile" ]; then
+ echo -e "Core image ($corefile) has been found in working directory. Use it (y/n)? ";
+ # Need an argument here for Solaris
+ read REPLY;
+ if [ $REPLY = y ]; then
+ echo -e "Using it.";
+ corearg="--core=$corefile";
+ break;
+ else
+ echo -e "Ignoring it.";
+ fi
+ fi
+done
+unset corefile
+unset corefiles
+
+if [ -z "$full_appname" ]; then
+ echo "Can't find the required application: $app!"
+ exit 1
+fi
+
+if [ -z "$GNUSTEP_FLATTENED" ]; then
+ #
+ # Determine the host information
+ #
+ if [ -z "$GNUSTEP_HOST" ]; then
+ GNUSTEP_HOST=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/config.guess`
+ GNUSTEP_HOST=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/config.sub $GNUSTEP_HOST`
+ export GNUSTEP_HOST
+ fi
+ if [ -z "$GNUSTEP_HOST_CPU" ]; then
+ GNUSTEP_HOST_CPU=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/cpu.sh $GNUSTEP_HOST`
+ GNUSTEP_HOST_CPU=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/clean_cpu.sh $GNUSTEP_HOST_CPU`
+ export GNUSTEP_HOST_CPU
+ fi
+ if [ -z "$GNUSTEP_HOST_VENDOR" ]; then
+ GNUSTEP_HOST_VENDOR=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/vendor.sh $GNUSTEP_HOST`
+ GNUSTEP_HOST_VENDOR=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/clean_vendor.sh $GNUSTEP_HOST_VENDOR`
+ export GNUSTEP_HOST_VENDOR
+ fi
+ if [ -z "$GNUSTEP_HOST_OS" ]; then
+ GNUSTEP_HOST_OS=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/os.sh $GNUSTEP_HOST`
+ GNUSTEP_HOST_OS=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/clean_os.sh $GNUSTEP_HOST_OS`
+ export GNUSTEP_HOST_OS
+ fi
+
+ if [ "$LIBRARY_COMBO" = nx-nx-nx -a "$GNUSTEP_HOST_OS" = nextstep4 ]; then
+ if [ -f "$full_appname/library_paths.openapp" ]; then
+ additional_library_paths="`cat \"$full_appname/library_paths.openapp\"`"
+ fi
+ fi
+else
+ if [ -f "$full_appname/library_paths.openapp" ]; then
+ additional_library_paths="`cat \"$full_appname/library_paths.openapp\"`"
+ fi
+fi
+
+appname="`echo \"$app\" | sed 's/\.[a-z]*$//'`"
+appname="`basename \"$appname\"`"
+appname="$appname$EXEEXT"
+. "$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/ld_lib_path.sh"
+
+
+if [ "$LIBRARY_COMBO" = "apple-apple-apple" ]; then
+ if [ ! -f "$full_appname/Contents/MacOS/$appname" ]; then
+ echo "$full_appname application does not have a binary for this kind of machine and operating system."
+ exit 1
+ fi
+
+ if [ -z "$corearg" ]; then
+ "$GDB" "$full_appname/Contents/MacOS/$appname"
+ else
+ "$GDB" "$full_appname/Contents/MacOS/$appname" "$corearg"
+ fi
+
+else
+ # Determine if the application has a binary for this operating system
+ if [ -z "$GNUSTEP_FLATTENED" -a ! -d "$full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS" ]; then
+ echo "$full_appname application does not have a binary for this kind of machine and operating system."
+ exit 1
+ fi
+
+ if [ -z "$GNUSTEP_FLATTENED" -a ! -d "$full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO" ]; then
+ echo "$full_appname application does not have a binary for this combination of libraries: $LIBRARY_COMBO."
+ exit 1
+ fi
+
+ if [ -z "$GNUSTEP_FLATTENED" ]; then
+ file_appname="$full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$appname"
+ else
+ file_appname="$full_appname/$appname"
+ fi
+
+ # Old versions of gdb don't support --args, so we only use it if
+ # 'gdb --help' lists it.
+ args=
+ if (gdb --help | grep -e '\-\-args' > /dev/null); then
+ args="--args"
+ fi
+
+ if [ -z "$corearg" ]; then
+
+ # Arguments passed to debugapp are passed over to the
+ # application, in the same way as it happens for openapp.
+ "$GDB" $args "$file_appname" "$@"
+ else
+ "$GDB" "$file_appname" "$corearg"
+ fi
+fi
--- /dev/null
+#
+# documentation.make
+#
+# Makefile rules to build documentation
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/documentation.make
+else
+
+ifeq ($(GNUSTEP_TYPE),doc)
+include $(GNUSTEP_MAKEFILES)/Instance/documentation.make
+else
+
+ifeq ($(GNUSTEP_TYPE),textdoc)
+include $(GNUSTEP_MAKEFILES)/Instance/documentation.make
+endif
+
+endif
+
+endif
--- /dev/null
+#!/bin/sh
+#
+# @configure_input@
+#
+# Copyright (C) 1999-2002 Free Software Foundation, Inc.
+#
+# Author: Adam Fedor <fedor@gnu.org>
+# Date: May 1999
+#
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+# Date: 2001, 2002
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# This is a shell script which attempts to find the GNUstep executable
+# of the same name based on the current host and library_combo.
+
+#--------------------------------------------------------------------------
+# Main body
+#--------------------------------------------------------------------------
+if [ -z "$EXEEXT" ]; then
+ EXEEXT=@EXEEXT@
+fi
+if [ -z "$LIBRARY_COMBO" ]; then
+ LIBRARY_COMBO=@ac_cv_library_combo@
+fi
+
+# Process arguments
+app="$0"
+show_available_platforms=0
+show_relative_path=0
+show_full_path=0
+while true
+do
+ case "$1" in
+
+ --script-help)
+ echo usage: `basename "$0"` [--library-combo=...]
+ echo " [--available-platforms][--full-executable-path]"
+ echo " [--relative-executable-path] [arguments...]"
+ echo
+ echo " --library-combo=... specifies a GNUstep backend to use."
+ echo " It overrides the default LIBRARY_COMBO environment variable."
+ echo
+ echo " --available-platforms displays a list of valid exec hosts"
+ echo " --full-executable-path displays full path to executable"
+ echo " --relative-executable-path displays subdirectory path"
+ echo " arguments... are the arguments to the application."
+ exit 0
+ ;;
+ --library-combo=*)
+ tmp_root="$GNUSTEP_SYSTEM_ROOT"
+ . "$tmp_root/@MAKEFILES_SUFFIX@/GNUstep-reset.sh"
+ LIBRARY_COMBO=`echo "$1" | sed 's/--library-combo=//'`
+ . "$tmp_root/@MAKEFILES_SUFFIX@/GNUstep.sh"
+ shift
+ ;;
+ --available-platforms)
+ show_available_platforms=1
+ exit 0
+ ;;
+ --full-executable-path)
+ show_full_path=1
+ break
+ ;;
+ --relative-executable-path)
+ show_relative_path=1
+ break
+ ;;
+ *)
+ break;;
+ esac
+done
+
+if [ "$LIBRARY_COMBO" = nx ]; then
+ LIBRARY_COMBO=nx-nx-nx
+elif [ "$LIBRARY_COMBO" = gnu ]; then
+ LIBRARY_COMBO=gnu-gnu-gnu
+elif [ "$LIBRARY_COMBO" = fd ]; then
+ LIBRARY_COMBO=gnu-fd-gnu
+elif [ "$LIBRARY_COMBO" = apple ]; then
+ LIBRARY_COMBO=apple-apple-apple
+fi
+export LIBRARY_COMBO
+
+# Find path to ourself
+dir="`dirname \"$app\"`"
+
+case "$app" in
+ /*) # An absolute path.
+ full_appname="$dir";;
+ */*) # A relative path
+ full_appname="`(cd \"$dir\"; pwd)`";;
+ *) # A path that needs to be searched
+ if [ -n "$GNUSTEP_PATHLIST" ]; then
+ SPATH="$GNUSTEP_PATHLIST"
+ else
+ SPATH="$PATH"
+ fi
+ SPATH=".:$SPATH"
+ IFS=:
+ for path_dir in $SPATH; do
+ if [ -d "$path_dir/$dir" ]; then
+ full_appname="`(cd \"$path_dir/$dir\"; pwd)`"
+ break;
+ fi
+ if [ -d "$path_dir/Applications/$dir" ]; then
+ full_appname="`(cd \"$path_dir/Applications/$dir\"; pwd)`"
+ break;
+ fi
+ done;;
+esac
+
+if [ -z "$full_appname" ]; then
+ echo "Can't find absolute path for $app! Please specify full path when"
+ echo "invoking executable"
+ exit 1
+fi
+
+#
+# get base app name
+#
+appname=
+if [ -f "$full_appname/Resources/Info-gnustep.plist" ]; then
+# -n disable auto-print (for portability reasons)
+# /^ *NSExecutable *=/ matches every line beginning with
+# zero or more spaces, followed by 'NSExecutable', followed by zero or
+# more spaces, followed by '='
+# to this line we apply the following commands:
+# s/"//g; which deletes all " in the line.
+# s/^ *NSExecutable *= *\([^ ;]*\) *;.*/\1/p;
+# which replaces 'NSExecutable = Gorm; ' with 'Gorm', then, because
+# of the 'p' at the end, prints out the result
+# q; which quits sed since we know there must be only a single line
+# to replace.
+ appname=`sed -n -e '/^ *NSExecutable *=/ \
+ {s/"//g; s/^ *NSExecutable *= *\([^ ;]*\) *;.*/\1/p; q;}' \
+ "$full_appname/Resources/Info-gnustep.plist"`
+fi
+if [ -z "$appname" ]; then
+ appname="`basename \"$app\"`"
+fi
+
+appname="$appname$EXEEXT"
+
+if [ $show_available_platforms = 1 ]; then
+ cd "$full_appname"
+ #available_platforms
+ exit 0
+fi
+
+#
+# Determine the host information
+#
+if [ -z "$GNUSTEP_HOST" ]; then
+ GNUSTEP_HOST=`(cd /tmp; $GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/config.guess)`
+ GNUSTEP_HOST=`(cd /tmp; $GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/config.sub $GNUSTEP_HOST)`
+ export GNUSTEP_HOST
+fi
+if [ -z "$GNUSTEP_HOST_CPU" ]; then
+ GNUSTEP_HOST_CPU=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/cpu.sh $GNUSTEP_HOST`
+ GNUSTEP_HOST_CPU=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/clean_cpu.sh $GNUSTEP_HOST_CPU`
+ export GNUSTEP_HOST_CPU
+fi
+if [ -z "$GNUSTEP_HOST_VENDOR" ]; then
+ GNUSTEP_HOST_VENDOR=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/vendor.sh $GNUSTEP_HOST`
+ GNUSTEP_HOST_VENDOR=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/clean_vendor.sh $GNUSTEP_HOST_VENDOR`
+ export GNUSTEP_HOST_VENDOR
+fi
+if [ -z "$GNUSTEP_HOST_OS" ]; then
+ GNUSTEP_HOST_OS=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/os.sh $GNUSTEP_HOST`
+ GNUSTEP_HOST_OS=`$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/clean_os.sh $GNUSTEP_HOST_OS`
+ export GNUSTEP_HOST_OS
+fi
+
+#
+# Make sure the executable is there
+#
+if [ -x "$full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$appname" ]; then
+ relative_path="$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$appname"
+elif [ -x "$full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$appname" ]; then
+ relative_path="$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$appname"
+elif [ -x "$full_appname/$GNUSTEP_HOST_CPU/$appname" ]; then
+ relative_path="$GNUSTEP_HOST_CPU/$appname"
+elif [ "$full_appname/$appname" != "$0" -a -x "$full_appname/$appname" ]; then
+ relative_path="$appname"
+else
+ # Search for a binary for this machine but a different library combo
+ if [ -d "$full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS" ]; then
+ tmp_path="`pwd`"
+ cd "$full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS";
+ found=no
+ for lib_combo in * ; do
+ if [ "$lib_combo" != '*' ]; then
+ if [ -x "$lib_combo/$appname" ]; then
+ # Switch LIBRARY_COMBO on the fly
+ tmp_root="$GNUSTEP_SYSTEM_ROOT"
+ . "$tmp_root/@MAKEFILES_SUFFIX@/GNUstep-reset.sh"
+ LIBRARY_COMBO="$lib_combo"
+ . "$tmp_root/@MAKEFILES_SUFFIX@/GNUstep.sh"
+ # Use the found executable
+ relative_path="$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$appname"
+ found=yes
+ break
+ fi
+ fi
+ done
+ cd "$tmp_path"
+ if [ "$found" != yes ]; then
+ echo "$full_appname application does not have a binary for this kind of machine/operating system ($GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS)."
+ exit 1
+ fi
+ fi
+fi
+
+if [ $show_relative_path = 1 ]; then
+ echo "$relative_path"
+ exit 0
+fi
+if [ $show_full_path = 1 ]; then
+ echo "$full_appname/$relative_path"
+ exit 0
+fi
+
+if [ "$LIBRARY_COMBO" = nx-nx-nx -a "$GNUSTEP_HOST_OS" = nextstep4 ]; then
+ if [ -f "$full_appname/library_paths.openapp" ]; then
+ additional_library_paths="`cat $full_appname/library_paths.openapp`"
+ fi
+else
+ if [ -f "$full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/library_paths.openapp" ]; then
+ additional_library_paths="`cat \"$full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/library_paths.openapp\"`"
+ fi
+fi
+
+# Load up LD_LIBRARY_PATH
+. "$GNUSTEP_SYSTEM_ROOT/@MAKEFILES_SUFFIX@/ld_lib_path.sh"
+
+exec "$full_appname/$relative_path" "$@"
+
--- /dev/null
+#! /bin/sh
+#
+# @configure_input@
+#
+# Script for converting between windows and unix-style paths.
+#
+# Copyright (C) 2001,2002 Free Software Foundation, Inc.
+#
+# Author: Stephen Brandon <stephen@brandonitconsulting.co.uk>
+# Modified by: Richard Frith-Macdonald <rfm@gnu.org>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+#
+# Define CYGWIN to "yes" to force cygwin style path handling, or
+# to anything else for MINGW32/MSYS style path handling.
+#
+CYGWIN="@CYGWIN@"
+
+if [ ! $# -eq 2 ]; then
+ quit="yes"
+fi
+
+test "$1" = '-u' || test "$1" = '-w' || quit="yes"
+
+
+if [ "$quit" = "yes" ]; then
+ echo "Usage: $0 (-u)|(-w) filename"
+ echo "Options:"
+ echo " -u print Unix form of filename"
+ echo " -w print Windows form of filename"
+ exit 1
+fi
+
+operation=$1
+file=$2
+
+if [ "$operation" = "-u" ]; then
+ #
+ # convert to Unix style file name
+ #
+ if [ "$CYGWIN" = "yes" ]; then
+ #
+ # drive:directory --> /cygdrive/drive/directory
+ #
+ echo $file | \
+ tr '\\' '/' | \
+ sed 's/^\([a-zA-Z]\):\(.*\)$/\/cygdrive\/\1\2/'
+ else
+ #
+ # drive:directory --> /drive/directory
+ #
+ echo $file | \
+ tr '\\' '/' | \
+ sed 's/^\([a-zA-Z]\):\(.*\)$/\/\1\2/' | \
+ sed 's/\/\//\//'
+ fi
+else
+ #
+ # convert to Windows style file name
+ #
+ if [ "$CYGWIN" = "yes" ]; then
+ #
+ # /cygdrive/drive/directory --> drive:directory
+ #
+ echo $file | \
+ sed 's/^\(\/cygdrive\)\?\/\([a-zA-Z]\)\(\/.*\)$/\2:\3/' | \
+ tr '/' '\\'
+ else
+ #
+ # /drive/directory --> drive:directory
+ #
+ echo $file | \
+ sed 's/^\/\([a-zA-Z]\)\(\/.*\)$/\1:\2/' | \
+ tr '/' '\\'
+ fi
+fi
+
+exit 0
+
+
--- /dev/null
+#
+# framework.make
+#
+# Makefile rules to build GNUstep-based frameworks.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/framework.make
+else
+
+ifeq ($(GNUSTEP_TYPE),framework)
+include $(GNUSTEP_MAKEFILES)/Instance/framework.make
+endif
+
+endif
--- /dev/null
+#
+# This file is to be manually edited
+#
+# This package is not relocatable
+#
+%define gs_version @GNUSTEP_MAKE_VERSION@
+%define gs_name gnustep-make
+%define gs_prefix /usr/GNUstep
+%define gs_libcombo gnu-gnu-gnu
+#
+Name: %{gs_name}
+Version: %{gs_version}
+Release: 1
+Source: ftp://ftp.gnustep.org/pub/gnustep/core/%{gs_name}-%{gs_version}.tar.gz
+Copyright: GPL
+Group: System Environment/Base
+Summary: GNUstep Makefile package
+Packager: GNUstep Development <bug-gnustep@gnu.org>
+Vendor: The GNUstep Project
+URL: http://www.gnustep.org/
+BuildRoot: /var/tmp/build-%{gs_name}
+#
+
+%description
+This package contains the basic scripts, makefiles and directory layout
+needed to run and compile any GNUstep software. This package was configured
+for library combo %{gs_libcombo}.
+
+%prep
+%setup -n %{gs_name}-%{gs_version}
+
+%build
+CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{gs_prefix} --with-library-combo=%{gs_libcombo}
+make
+
+%install
+make install special_prefix=${RPM_BUILD_ROOT}
+
+%ifos Linux
+mkdir -p ${RPM_BUILD_ROOT}/etc/profile.d
+
+# Create profile files
+
+echo "#!/bin/sh" > mygnustep.sh
+echo ". %{gs_prefix}/System/@MAKEFILES_SUFFIX@/GNUstep.sh" >> mygnustep.sh
+
+#echo "#!/bin/csh" > mygnustep.csh
+#echo "source %{gs_prefix}/System/@MAKEFILES_SUFFIX@/GNUstep.csh" >> mygnustep.csh
+
+chmod 755 mygnustep.*
+mv mygnustep.sh $RPM_BUILD_ROOT/etc/profile.d/GNUstep.sh
+#mv mygnustep.csh $RPM_BUILD_ROOT/etc/profile.d/GNUstep.csh
+%endif # Linux
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr (-, root, root)
+
+# Well - this is the simplest trick you could think of. We include in
+# the package everything which was installed inside /usr/GNUstep/
+%{gs_prefix}
+
+# Add the profiles for linux as configuration files <FIXME gdomap etc>
+%ifos Linux
+%config /etc/profile.d/GNUstep.sh
+#%config /etc/profile.d/GNUstep.csh
+%endif # Linux
+
+#
+# FIXME - do we want to add dirs to the library path or not
+#
+
+#%post
+#if [ $1 = 1]; then
+#%ifos Linux
+# if [ -z "$GNUSTEP_SYSTEM_ROOT" ]; then
+# . %{gs_root}/@MAKEFILES_SUFFIX@/GNUstep.sh
+# fi
+# grep -q '%{gs_prefix}/System/Library/Libraries/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/%{gs_libcombo}' /etc/ld.so.conf || echo "%{gs_prefix}/System/Library/Libraries/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/%{gs_libcombo}" >> /etc/ld.so.conf
+#%endif
+#fi
+
+#%postun
+#if [ $1 = 0 ]; then
+#%ifos Linux
+# if [ -z "$GNUSTEP_SYSTEM_ROOT" ]; then
+# . %{gs_root}/@MAKEFILES_SUFFIX@/GNUstep.sh
+# fi
+# mv -f /etc/ld.so.conf /etc/ld.so.conf.orig
+# grep -v "^%{gs_prefix}/System/Library/Libraries/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/%{gs_libcombo}" /etc/ld.so.conf.orig > /etc/ld.so.conf
+# rm -f /etc/ld.so.conf.orig
+#%endif
+#fi
+
+
+%changelog
+* Thu Jul 19 2001 Adam Fedor <fedor@gnu.org>
+- Remove csh script
+
+* Thu Apr 12 2001 Adam Fedor <fedor@gnu.org>
+- Changed default combo to gnu-gnu-gnu
+
+* Mon Feb 19 2001 Nicola Pero <nicola@brainstorm.co.uk>
+- Updated for new special_prefix option
+
+* Wed Jan 17 2001 Nicola Pero <nicola@brainstorm.co.uk>
+- Updated; heavily simplified and mostly rewritten
+
+* Sat Sep 18 1999 Christopher Seawood <cls@seawood.org>
+- Version 0.6.0
+- Added nodupsh patch
+
+* Sat Aug 07 1999 Christopher Seawood <cls@seawood.org>
+- Updated to cvs dawn_6 branch
+
+* Fri Jun 25 1999 Christopher Seawood <cls@seawood.org>
+- Split into separate rpm from gnustep-core
+- Build from cvs snapshot
+- Added services patch
+
--- /dev/null
+#
+# gswapp.make
+#
+# Makefile rules to build GNUstep web based applications.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/gswapp.make
+else
+
+ifeq ($(GNUSTEP_TYPE),gswapp)
+include $(GNUSTEP_MAKEFILES)/Instance/gswapp.make
+endif
+
+endif
--- /dev/null
+#
+# gswbundle.make
+#
+# Makefile rules to build GNUstep web bundles.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/gswbundle.make
+else
+
+ifeq ($(GNUSTEP_TYPE),gswbundle)
+include $(GNUSTEP_MAKEFILES)/Instance/gswbundle.make
+endif
+
+endif
--- /dev/null
+#!/bin/sh
+
+#
+# install - install a program, script, or datafile
+# This comes from X11R5; it is not part of GNU.
+#
+# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+#
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+
+instcmd="$cpprog"
+chmodcmd=""
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+
+while [ x"$1" != x ]; do
+ case $1 in
+ -c) instcmd="$cpprog"
+ shift
+ continue;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd="$stripprog"
+ shift
+ continue;;
+
+ *) if [ x"$src" = x ]
+ then
+ src=$1
+ else
+ dst=$1
+ fi
+ shift
+ continue;;
+ esac
+done
+
+if [ x"$src" = x ]
+then
+ echo "install: no input file specified"
+ exit 1
+fi
+
+if [ x"$dst" = x ]
+then
+ echo "install: no destination specified"
+ exit 1
+fi
+
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+if [ -d $dst ]
+then
+ dst="$dst"/`basename $src`
+fi
+
+# Make a temp file name in the proper directory.
+
+dstdir=`dirname $dst`
+dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+$doit $instcmd $src $dsttmp
+
+# and set any options; do chmod last to preserve setuid bits
+
+if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi
+if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi
+if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi
+if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi
+
+# Now rename the file to the real destination.
+
+$doit $rmcmd $dst
+$doit $mvcmd $dsttmp $dst
+
+
+exit 0
--- /dev/null
+#!/bin/sh
+#
+# Copyright (C) 2001 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+# Date: April 2001
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# This is a shell script which attempts to execute a specific Java
+# class (hardcoded when the shell script is installed), preparing
+# CLASSPATH and LD_LIBRARY_PATH for it.
+
+#
+# The name of the script
+#
+tool=$0
+
+#
+# The directory we are in
+#
+tool_dir=`dirname $tool`
+
+#
+# The java class to execute - harcoded when the template is intalled
+# by java-tool.make.
+#
+java_obj_file=JAVA_OBJ_FILE
+
+#
+# Check that the java class exists
+#
+full_java_obj_file=${tool_dir}/Java/${java_obj_file}.class
+
+if [ ! -f "$full_java_obj_file" ]; then
+ echo "$tool: Installation problem: Can't find java class $java_obj_file !"
+ exit 1
+fi
+
+#
+# Determine the host information if needed
+#
+if [ -z "$GNUSTEP_HOST" ]; then
+ GNUSTEP_HOST=`(cd /tmp; $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/config.guess)`
+ GNUSTEP_HOST=`(cd /tmp; $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/config.sub $GNUSTEP_HOST)`
+ export GNUSTEP_HOST
+fi
+if [ -z "$GNUSTEP_HOST_CPU" ]; then
+ GNUSTEP_HOST_CPU=`$GNUSTEP_SYSTEM_ROOT/Library/Makefiles/cpu.sh $GNUSTEP_HOST`
+ GNUSTEP_HOST_CPU=`$GNUSTEP_SYSTEM_ROOT/Library/Makefiles/clean_cpu.sh $GNUSTEP_HOST_CPU`
+ export GNUSTEP_HOST_CPU
+fi
+if [ -z "$GNUSTEP_HOST_VENDOR" ]; then
+ GNUSTEP_HOST_VENDOR=`$GNUSTEP_SYSTEM_ROOT/Library/Makefiles/vendor.sh $GNUSTEP_HOST`
+ GNUSTEP_HOST_VENDOR=`$GNUSTEP_SYSTEM_ROOT/Library/Makefiles/clean_vendor.sh $GNUSTEP_HOST_VENDOR`
+ export GNUSTEP_HOST_VENDOR
+fi
+if [ -z "$GNUSTEP_HOST_OS" ]; then
+ GNUSTEP_HOST_OS=`$GNUSTEP_SYSTEM_ROOT/Library/Makefiles/os.sh $GNUSTEP_HOST`
+ GNUSTEP_HOST_OS=`$GNUSTEP_SYSTEM_ROOT/Library/Makefiles/clean_os.sh $GNUSTEP_HOST_OS`
+ export GNUSTEP_HOST_OS
+fi
+
+#
+# Load up LD_LIBRARY_PATH
+#
+. $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/ld_lib_path.sh
+
+#
+# Load up CLASSPATH
+#
+gnustep_class_path="$GNUSTEP_USER_ROOT/Library/Libraries/Java:$GNUSTEP_LOCAL_ROOT/Library/Libraries/Java:$GNUSTEP_NETWORK_ROOT/Library/Libraries/Java:$GNUSTEP_SYSTEM_ROOT/Library/Libraries/Java"
+
+if [ -z "$CLASSPATH" ]; then
+ CLASSPATH="$gnustep_class_path"
+else
+ if ( echo ${CLASSPATH} | grep -v "${gnustep_class_path}" >/dev/null ); then
+ CLASSPATH="$CLASSPATH:$gnustep_class_path"
+ fi
+fi
+
+if ( echo ${CLASSPATH} | grep -v "\./" >/dev/null ); then
+ CLASSPATH="$CLASSPATH:./"
+fi
+
+export CLASSPATH
+
+#
+# Find java
+#
+java_vm=java
+if [ ! -z "$JAVA_HOME" ]; then
+ java_vm=${JAVA_HOME}/bin/java
+else
+ if [ ! -z "$JDK_HOME" ]; then
+ java_vm=${JDK_HOME}/bin/java
+ fi
+fi
+
+#
+# Run java on the object file
+#
+cd ${tool_dir}/Java
+exec $java_vm $java_obj_file "$@"
+
--- /dev/null
+#
+# java-tool.make
+#
+# Makefile rules to build Java command-line tools.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/java-tool.make
+else
+ifeq ($(GNUSTEP_TYPE),java_tool)
+include $(GNUSTEP_MAKEFILES)/Instance/java-tool.make
+endif
+
+endif
--- /dev/null
+#
+# java.make
+#
+# Makefile rules to build GNUstep-based javas.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/java.make
+else
+ifeq ($(GNUSTEP_TYPE),java_package)
+include $(GNUSTEP_MAKEFILES)/Instance/java.make
+endif
+
+endif
--- /dev/null
+#
+# jni.make
+#
+# Makefile to include to compile JNI code.
+#
+# Copyright (C) 2000 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+# Include this file if you need to compile JNI code.
+# This files simply adds automatically the compiler flags to find the
+# jni headers.
+#
+
+# prevent multiple inclusions
+ifeq ($(JNI_MAKE_LOADED),)
+JNI_MAKE_LOADED=yes
+
+# Default
+JAVA_OS = linux
+
+# MacOS-X
+ifeq ($(findstring darwin, $(GNUSTEP_TARGET_OS)), darwin)
+ JAVA_OS = darwin
+# JNI_INCLUDE_HEADERS = -I/System/Library/Frameworks/JavaVM.framework/Versions/1.3.1/Headers
+ JNI_INCLUDE_HEADERS = -I/System/Library/Frameworks/JavaVM.framework/Headers
+
+else
+
+# Solaris
+ifeq ($(findstring solaris, $(GNUSTEP_TARGET_OS)), solaris)
+ JAVA_OS = solaris
+endif
+
+# Windows
+ifeq ($(findstring mingw32, $(GNUSTEP_TARGET_OS)), mingw32)
+ JAVA_OS = win32
+endif
+
+# Add more platforms here
+
+#
+# This should be where your jni.h and jni_md.h are located.
+#
+JNI_INCLUDE_HEADERS = -I$(JAVA_HOME)/include/ \
+ -I$(JAVA_HOME)/include/$(JAVA_OS)
+endif
+
+ADDITIONAL_INCLUDE_DIRS += $(JNI_INCLUDE_HEADERS)
+
+endif # jni.make loaded
--- /dev/null
+#!/bin/csh
+#
+# ld_lib_path.csh
+#
+# Set up the LD_LIBRARY_PATH (or similar env variable for your system)
+#
+# Copyright (C) 1998 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+# The first (and only) parameter to this script is the canonical
+# operating system name.
+
+if ( "$GNUSTEP_FLATTENED" == "" ) then
+ set last_path_part="Library/Libraries/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}/${LIBRARY_COMBO}"
+ set tool_path_part="Library/Libraries/${GNUSTEP_HOST_CPU}/${GNUSTEP_HOST_OS}"
+else
+ set last_path_part="Library/Libraries"
+ set tool_path_part="Library/Libraries"
+endif
+
+set host_os=${GNUSTEP_HOST_OS}
+
+if ( "${host_os}" == "" ) then
+ set host_os=${1}
+endif
+
+set lib_paths="${GNUSTEP_USER_ROOT}/${last_path_part}:${GNUSTEP_USER_ROOT}/${tool_path_part}:${GNUSTEP_LOCAL_ROOT}/${last_path_part}:${GNUSTEP_LOCAL_ROOT}/${tool_path_part}:${GNUSTEP_NETWORK_ROOT}/${last_path_part}:${GNUSTEP_NETWORK_ROOT}/${tool_path_part}:${GNUSTEP_SYSTEM_ROOT}/${last_path_part}:${GNUSTEP_SYSTEM_ROOT}/${tool_path_part}"
+
+set last_path_part="Library/Frameworks"
+
+set fw_paths="${GNUSTEP_USER_ROOT}/${last_path_part}:${GNUSTEP_LOCAL_ROOT}/${last_path_part}:${GNUSTEP_NETWORK_ROOT}/${last_path_part}:${GNUSTEP_SYSTEM_ROOT}/${last_path_part}"
+
+switch ( "${host_os}" )
+
+ case *nextstep4* :
+ if ( $?DYLD_LIBRARY_PATH == 0 ) then
+ setenv DYLD_LIBRARY_PATH "${lib_paths}"
+ else if ( { (echo "${DYLD_LIBRARY_PATH}" | fgrep -v "${lib_paths}" >/dev/null) } ) then
+ setenv DYLD_LIBRARY_PATH "${lib_paths}:${DYLD_LIBRARY_PATH}"
+ endif
+ if ( $?additional_lib_paths == 1) then
+ foreach dir (${additional_lib_paths})
+ set additional="${additional}${dir}:"
+ end
+ endif
+
+ if ( "${?additional}" == "1" ) then
+ if ( { (echo "${DYLD_LIBRARY_PATH}" | fgrep -v "${additional}" >/dev/null) } ) then
+ setenv DYLD_LIBRARY_PATH="${additional}${DYLD_LIBRARY_PATH}"
+ endif
+ endif
+ breaksw
+
+ case *darwin* :
+ if ( $?DYLD_LIBRARY_PATH == 0 ) then
+ setenv DYLD_LIBRARY_PATH "${lib_paths}"
+ else if ( { (echo "${DYLD_LIBRARY_PATH}" | fgrep -v "${lib_paths}" >/dev/null) } ) then
+ setenv DYLD_LIBRARY_PATH "${lib_paths}:${DYLD_LIBRARY_PATH}"
+ endif
+ if ( $?additional_lib_paths == 1) then
+ foreach dir (${additional_lib_paths})
+ set additional="${additional}${dir}:"
+ end
+ endif
+
+ if ( "${?additional}" == "1" ) then
+ if ( { (echo "${DYLD_LIBRARY_PATH}" | fgrep -v "${additional}" >/dev/null) } ) then
+ setenv DYLD_LIBRARY_PATH="${additional}${DYLD_LIBRARY_PATH}"
+ endif
+ endif
+
+# The code below has been temporarily removed, because...
+# With GNUstep -make on any platform, when you compile a
+# framework, it is supported by creating a link like
+# Librairies/libMyFramework.dylib ->
+# Frameworks/MyFramework.framework/Versions/Current/libMyFramework.dylib, to
+# mitigate the fact that FSF GCC supports to link frameworks with the -frameworks
+# flag only on Darwin .
+# Well concerning library GNUstep -make on Darwin, the problem lies in the fact
+# the Darwin linker seems to be unable to link the library when you pass the
+# flag -lMyFramework to compile an application which depends on it, strangely it
+# links the framework directly. You can see that with otool -L
+# Whatever/MyApplication.app/MyApplication which will output
+# MyFramework.framework/MyFramework and not libMyFramework.dylib .
+# So because a framework is linked when it is present even when you want to
+# link the equivalent library, the application will not find the framework when
+# you launch it with DYLD_FRAMEWORK_PATH empty. To correct that, we must
+# set DYLD_FRAMEWORK_PATH in any cases until the Darwin linker behaves correctly.
+#
+#Â Â if ( ( "${LIBRARY_COMBO}" == "apple-apple-apple" ) \Â
+#Â Â Â Â Â || ( "${LIBRARY_COMBO}" == "apple") ) then
+
+ unset additional
+
+ if ( $?DYLD_FRAMEWORK_PATH == 0 ) then
+ setenv DYLD_FRAMEWORK_PATH "${fw_paths}"
+ else if ( { (echo "${DYLD_FRAMEWORK_PATH}" | fgrep -v "${fw_paths}" >/dev/null) } ) then
+ setenv DYLD_FRAMEWORK_PATH "${fw_paths}:${DYLD_FRAMEWORK_PATH}"
+ endif
+ if ( $?additional_framework_paths == 1) then
+ foreach dir (${additional_framework_paths})
+ set additional="${additional}${dir}:"
+ end
+ endif
+
+ if ( "${?additional}" == "1" ) then
+ if ( { (echo "${DYLD_FRAMEWORK_PATH}" | fgrep -v "${additional}" >/dev/null) } ) then
+ setenv DYLD_FRAMEWORK_PATH="${additional}${DYLD_FRAMEWORK_PATH}"
+ endif
+ endif
+ breaksw
+
+ case *hpux* :
+ if ( $?SHLIB_PATH == 0 ) then
+ setenv SHLIB_PATH "${lib_paths}"
+ else if ( { (echo "${SHLIB_PATH}" | fgrep -v "${lib_paths}" >/dev/null) } ) then
+ setenv SHLIB_PATH "${lib_paths}:${SHLIB_PATH}"
+ endif
+ if ( $?additional_lib_paths == 1) then
+ foreach dir (${additional_lib_paths})
+ set additional="${additional}${dir}:"
+ end
+ endif
+
+ if ( "${?additional}" == "1" ) then
+ if ( { (echo "${SHLIB_PATH}" | fgrep -v "${additional}" >/dev/null) } ) then
+ setenv SHLIB_PATH="${additional}${SHLIB_PATH}"
+ endif
+ endif
+
+ if ( $?LD_LIBRARY_PATH == 0 ) then
+ setenv LD_LIBRARY_PATH "${lib_paths}"
+ else if ( { (echo "${LD_LIBRARY_PATH}" | fgrep -v "${lib_paths}" >/dev/null) } ) then
+ setenv LD_LIBRARY_PATH "${lib_paths}:${LD_LIBRARY_PATH}"
+ endif
+
+ if ( $?additional_lib_paths == 1) then
+ foreach dir (${additional_lib_paths})
+ set additional="${additional}${dir}:"
+ end
+ endif
+
+ if ( "${?additional}" == "1" ) then
+ if ( { (echo "${LD_LIBRARY_PATH}" | fgrep -v "${additional}" >/dev/null) } ) then
+ setenv LD_LIBRARY_PATH="${additional}${LD_LIBRARY_PATH}"
+ endif
+ endif
+ breaksw
+
+ case * :
+ if ( $?LD_LIBRARY_PATH == 0 ) then
+ setenv LD_LIBRARY_PATH "${lib_paths}"
+ else if ( { (echo "${LD_LIBRARY_PATH}" | fgrep -v "${lib_paths}" >/dev/null) } ) then
+ setenv LD_LIBRARY_PATH "${lib_paths}:${LD_LIBRARY_PATH}"
+ endif
+ if ( $?additional_lib_paths == 1) then
+ foreach dir (${additional_lib_paths})
+ set additional="${additional}${dir}:"
+ end
+ endif
+
+ if ( "${?additional}" == "1" ) then
+ if ( { (echo "${LD_LIBRARY_PATH}" | fgrep -v "${additional}" >/dev/null) } ) then
+ setenv LD_LIBRARY_PATH="${additional}${LD_LIBRARY_PATH}"
+ endif
+ endif
+ breaksw
+
+endsw
+
+unset tool_path_part last_path_part host_os additional dir lib_paths fw_paths
+
--- /dev/null
+#! /bin/sh
+#
+# ld_lib_path.sh
+#
+# Set up the LD_LIBRARY_PATH (or similar env variable for your system)
+#
+# Copyright (C) 1997-2002 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Rewrite: Richard Frith-Macdonald <richard@brainstorm.co.uk>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+# This file is sourced. This means extra care is needed when changing
+# it. Please read the comments on GNUstep.sh.in before touching it.
+
+# The first (and only) parameter to this script is the canonical
+# operating system name.
+
+host_os=$GNUSTEP_HOST_OS
+
+if [ -z "$host_os" ]; then
+ host_os=$1
+fi
+
+
+old_IFS="$IFS"
+IFS=:
+lib_paths=
+fw_paths=
+for dir in $GNUSTEP_PATHLIST; do
+
+ # prepare the path_fragment for libraries and this dir
+ if [ -z "$GNUSTEP_FLATTENED" ]; then
+ path_fragment="$dir/Library/Libraries/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$dir/Library/Libraries/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS"
+ else
+ path_fragment="$dir/Library/Libraries"
+ fi
+
+ # Append the path_fragment to lib_paths
+ if [ -z "$lib_paths" ]; then
+ lib_paths="$path_fragment"
+ else
+ lib_paths="$lib_paths:$path_fragment"
+ fi
+
+ # prepare the path_fragment for frameworks and this dir
+ path_fragment="$dir/Library/Frameworks"
+
+ # Append the path_fragment to fw_paths
+ if [ -z "$fw_paths" ]; then
+ fw_paths="$path_fragment"
+ else
+ fw_paths="$fw_paths:$path_fragment"
+ fi
+
+ unset path_fragment
+
+done
+IFS="$old_IFS"
+unset old_IFS
+unset dir
+
+
+if [ -n "$additional_library_paths" ]; then
+ old_IFS="$IFS"
+ IFS="
+"
+ additional=""
+ for dir in $additional_library_paths; do
+ additional="${additional}${dir}:"
+ done
+ unset dir
+
+ lib_paths="${additional}${lib_paths}"
+
+ unset additional
+ IFS="$old_IFS"
+ unset old_IFS
+fi
+
+if [ -n "$additional_framework_paths" ]; then
+ old_IFS="$IFS"
+ IFS="
+"
+ additional=""
+ for dir in $additional_framework_paths; do
+ additional="${additional}${dir}:"
+ done
+ unset dir
+
+ fw_paths="${additional}${fw_paths}"
+
+ unset additional
+ IFS="$old_IFS"
+ unset old_IFS
+fi
+
+case "$host_os" in
+
+ *nextstep4*)
+ if [ -z "$DYLD_LIBRARY_PATH" ]; then
+ DYLD_LIBRARY_PATH="$lib_paths"
+ else
+ if ( echo ${DYLD_LIBRARY_PATH}|fgrep -v "${lib_paths}" >/dev/null ); then
+ DYLD_LIBRARY_PATH="$lib_paths:$DYLD_LIBRARY_PATH"
+ fi
+ fi
+ export DYLD_LIBRARY_PATH
+ ;;
+
+ *darwin*)
+ if [ -z "$DYLD_LIBRARY_PATH" ]; then
+ DYLD_LIBRARY_PATH="$lib_paths"
+ else
+ if ( echo ${DYLD_LIBRARY_PATH}|fgrep -v "${lib_paths}" >/dev/null ); then
+ DYLD_LIBRARY_PATH="$lib_paths:$DYLD_LIBRARY_PATH"
+ fi
+ fi
+ export DYLD_LIBRARY_PATH
+
+# The code below has been temporarily removed, because...
+# With GNUstep -make on any platform, when you compile a
+# framework, it is supported by creating a link like
+# Librairies/libMyFramework.dylib ->
+# Frameworks/MyFramework.framework/Versions/Current/libMyFramework.dylib, to
+# mitigate the fact that FSF GCC supports to link frameworks with the -frameworks
+# flag only on Darwin .
+# Well concerning library GNUstep -make on Darwin, the problem lies in the fact
+# the Darwin linker seems to be unable to link the library when you pass the
+# flag -lMyFramework to compile an application which depends on it, strangely it
+# links the framework directly. You can see that with otool -L
+# Whatever/MyApplication.app/MyApplication which will output
+# MyFramework.framework/MyFramework and not libMyFramework.dylib .
+# So because a framework is linked when it is present even when you want to
+# link the equivalent library, the application will not find the framework when
+# you launch it with DYLD_FRAMEWORK_PATH empty. To correct that, we must
+# set DYLD_FRAMEWORK_PATH in any cases until the Darwin linker behaves correctly.
+#
+# if [ "$LIBRARY_COMBO" = "apple-apple-apple" -o \
+#Â Â Â "$LIBRARY_COMBO" = "apple" ]; then
+
+ if [ -z "$DYLD_FRAMEWORK_PATH" ]; then
+ DYLD_FRAMEWORK_PATH="$fw_paths"
+ else
+ if ( echo ${DYLD_FRAMEWORK_PATH}|
+ fgrep -v "${fw_paths}" >/dev/null ); then
+ DYLD_FRAMEWORK_PATH="$fw_paths:$DYLD_FRAMEWORK_PATH"
+ fi
+ fi
+ export DYLD_FRAMEWORK_PATH;;
+
+ *hpux*)
+ if [ -z "$SHLIB_PATH" ]; then
+ SHLIB_PATH="$lib_paths"
+ else
+ if ( echo ${SHLIB_PATH}|fgrep -v "${lib_paths}" >/dev/null ); then
+ SHLIB_PATH="$lib_paths:$SHLIB_PATH"
+ fi
+ fi
+ export SHLIB_PATH;
+ if [ -z "$LD_LIBRARY_PATH" ]; then
+ LD_LIBRARY_PATH="$lib_paths"
+ else
+ if ( echo ${LD_LIBRARY_PATH}| grep -v "${lib_paths}" >/dev/null ); then
+ LD_LIBRARY_PATH="$lib_paths:$LD_LIBRARY_PATH"
+ fi
+ fi
+ export LD_LIBRARY_PATH;;
+
+ *)
+ if [ -z "$LD_LIBRARY_PATH" ]; then
+ LD_LIBRARY_PATH="$lib_paths"
+ else
+ if ( echo ${LD_LIBRARY_PATH}| grep -v "${lib_paths}" >/dev/null ); then
+ LD_LIBRARY_PATH="$lib_paths:$LD_LIBRARY_PATH"
+ fi
+ fi
+ export LD_LIBRARY_PATH;;
+
+esac
+
+unset host_os
+unset lib_paths
+unset fw_paths
+
--- /dev/null
+# -*-makefile-*-
+# library-combo.make
+#
+# Determine which runtime, foundation and gui library to use.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Get library_combo from LIBRARY_COMBO or default_library_combo (or
+# from the command line if the user defined it on the command line by
+# invoking `make library_combo=gnu-gnu-gnu'; command line
+# automatically takes the precedence over makefile definitions, so
+# setting library_combo here has no effect if the user already defined
+# it on the command line).
+ifdef LIBRARY_COMBO
+ library_combo := $(LIBRARY_COMBO)
+else
+ library_combo := $(default_library_combo)
+endif
+
+# Handle abbreviations for library combinations.
+the_library_combo = $(library_combo)
+
+ifeq ($(the_library_combo), nx)
+ the_library_combo = nx-nx-nx
+endif
+
+ifeq ($(the_library_combo), apple)
+ the_library_combo = apple-apple-apple
+endif
+
+ifeq ($(the_library_combo), gnu)
+ the_library_combo = gnu-gnu-gnu
+endif
+
+ifeq ($(the_library_combo), fd)
+ the_library_combo = gnu-fd-gnu
+endif
+
+# Strip out the individual libraries from the library_combo string
+combo_list = $(subst -, ,$(the_library_combo))
+
+# NB: The user can always specify any of the OBJC_RUNTIME_LIB, the
+# FOUNDATION_LIB and the GUI_LIB variable manually overriding our
+# determination.
+
+# gc=yes is just another way of saying you want OBJC_RUNTIME_LIB = gnugc
+# to be used!
+ifeq ($(gc), yes)
+ OBJC_RUNTIME_LIB = gnugc
+endif
+
+ifeq ($(OBJC_RUNTIME_LIB),)
+ OBJC_RUNTIME_LIB = $(word 1,$(combo_list))
+endif
+
+ifeq ($(FOUNDATION_LIB),)
+ FOUNDATION_LIB = $(word 2,$(combo_list))
+endif
+
+ifeq ($(GUI_LIB),)
+ GUI_LIB = $(word 3,$(combo_list))
+endif
+
+# Now build and export the final LIBRARY_COMBO variable, which is the
+# only variable (together with OBJC_RUNTIME_LIB, FOUNDATION_LIB and
+# GUI_LIB) the other makefiles need to know about. This LIBRARY_COMBO
+# might be different from the original one, because we might have
+# replaced it with a library_combo provided on the command line, or we
+# might have fixed up parts of it in accordance to some custom
+# OBJC_RUNTIME_LIB, FOUNDATION_LIB and/or GUI_LIB !
+export LIBRARY_COMBO = $(OBJC_RUNTIME_LIB)-$(FOUNDATION_LIB)-$(GUI_LIB)
+
+OBJC_LDFLAGS =
+OBJC_LIBS =
+#
+# Set the appropriate ObjC runtime library and other information
+#
+ifeq ($(OBJC_RUNTIME_LIB), gnu)
+ OBJC_LDFLAGS =
+ OBJC_LIB_DIR =
+ OBJC_LIBS = -lobjc
+ RUNTIME_FLAG = -fgnu-runtime
+ RUNTIME_DEFINE = -DGNU_RUNTIME=1
+endif
+
+ifeq ($(OBJC_RUNTIME_LIB), gnugc)
+ OBJC_LDFLAGS =
+ OBJC_LIB_DIR =
+ OBJC_LIBS = -lobjc_gc -lgc
+ RUNTIME_FLAG = -fgnu-runtime
+ RUNTIME_DEFINE = -DGNU_RUNTIME=1 -DOBJC_WITH_GC=1
+ ifeq ($(debug),yes)
+ RUNTIME_DEFINE += -DGC_DEBUG
+ endif
+endif
+
+ifeq ($(OBJC_RUNTIME_LIB), nx)
+ RUNTIME_FLAG = -fnext-runtime
+ RUNTIME_DEFINE = -DNeXT_RUNTIME=1
+ ifeq ($(FOUNDATION_LIB), gnu)
+ OBJC_LIBS = -lobjc
+ endif
+endif
+
+ifeq ($(OBJC_RUNTIME_LIB), sun)
+ RUNTIME_DEFINE = -DSun_RUNTIME=1
+endif
+
+ifeq ($(OBJC_RUNTIME_LIB), apple)
+ RUNTIME_FLAG = -fnext-runtime
+ RUNTIME_DEFINE = -DNeXT_RUNTIME=1
+ ifeq ($(FOUNDATION_LIB), gnu)
+ OBJC_LIBS = -lobjc
+ endif
+endif
+
+FND_LDFLAGS =
+FND_LIBS =
+#
+# Set the appropriate Foundation library
+#
+ifeq ($(FOUNDATION_LIB),gnu)
+ FOUNDATION_LIBRARY_NAME = gnustep-base
+ FOUNDATION_LIBRARY_DEFINE = -DGNUSTEP_BASE_LIBRARY=1
+endif
+
+#
+# Third-party foundations not using make package
+# Our own foundation will install a base.make file into
+# $GNUSTEP_MAKEFILES/Additional/ to set the needed flags
+#
+ifeq ($(FOUNDATION_LIB), nx)
+ # -framework Foundation is used both to find headers, and to link
+ INTERNAL_OBJCFLAGS += -framework Foundation
+ FND_LIBS = -framework Foundation
+ FND_DEFINE = -DNeXT_Foundation_LIBRARY=1
+ LIBRARIES_DEPEND_UPON += -framework Foundation
+ BUNDLE_LIBS += -framework Foundation
+endif
+
+ifeq ($(FOUNDATION_LIB), sun)
+ FND_DEFINE = -DSun_Foundation_LIBRARY=1
+endif
+
+ifeq ($(FOUNDATION_LIB), apple)
+ # -framework Foundation is used only to link
+ FND_LIBS = -framework Foundation
+ FND_DEFINE = -DNeXT_Foundation_LIBRARY=1
+ LIBRARIES_DEPEND_UPON += -framework Foundation
+endif
+
+#
+# FIXME - Ask Helge to move this inside his libFoundation, and have
+# it installed as a $(GNUSTEP_MAKEFILES)/Additional/libFoundation.make
+#
+ifeq ($(FOUNDATION_LIB),fd)
+ -include $(GNUSTEP_MAKEFILES)/libFoundation.make
+
+ FND_DEFINE = -DLIB_FOUNDATION_LIBRARY=1
+ FND_LIBS = -lFoundation
+
+ # If gc=yes was passed and libFoundation was compiled with Boehm's
+ # GC support, use the appropriate libraries
+
+ ifeq ($(gc), yes)
+ ifeq ($(LIBFOUNDATION_WITH_GC), yes)
+ ifeq ($(leak), yes)
+ AUXILIARY_CPPFLAGS += -DLIB_FOUNDATION_LEAK_GC=1
+ else
+ AUXILIARY_CPPFLAGS += -DLIB_FOUNDATION_BOEHM_GC=1
+ endif
+ endif
+ endif
+
+endif
+
+GUI_LDFLAGS =
+GUI_LIBS =
+#
+# Third-party GUI libraries - our own sets its flags into
+# $(GNUSTEP_MAKEFILES)/Additional/gui.make
+#
+ifeq ($(GUI_LIB), nx)
+ GUI_DEFINE = -DNeXT_GUI_LIBRARY=1
+ # -framework AppKit is used both to find headers, and to link
+ INTERNAL_OBJCFLAGS += -framework AppKit
+ GUI_LIBS = -framework AppKit
+ LIBRARIES_DEPEND_UPON += -framework AppKit
+ BUNDLE_LIBS += -framework AppKit
+endif
+
+ifeq ($(GUI_LIB), apple)
+ GUI_DEFINE = -DNeXT_GUI_LIBRARY=1
+ # -framework AppKit is used only to link
+ GUI_LIBS = -framework AppKit
+ LIBRARIES_DEPEND_UPON += -framework AppKit
+endif
+
+SYSTEM_INCLUDES = $(CONFIG_SYSTEM_INCL)
+SYSTEM_LDFLAGS = $(LDFLAGS)
+SYSTEM_LIB_DIR = $(CONFIG_SYSTEM_LIB_DIR)
+SYSTEM_LIBS =
--- /dev/null
+#
+# library.make
+#
+# Makefile rules to build GNUstep-based libraries.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/library.make
+else
+
+ifeq ($(GNUSTEP_TYPE),library)
+include $(GNUSTEP_MAKEFILES)/Instance/library.make
+endif
+
+endif
--- /dev/null
+#
+# messages.make
+#
+# Prepare messages
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Helpful messages which are always printed
+
+# Instance/Shared/strings.make
+ALWAYS_ECHO_NO_FILES = @(echo " No files specified ... nothing done.")
+ALWAYS_ECHO_NO_LANGUAGES = @(echo " No LANGUAGES specified ... nothing done.")
+
+# Eventual translation of the ALWAYS_ECHO_XXX messages should be done
+# here ...
+
+ifneq ($(messages),yes)
+
+ # General messages
+ ECHO_PREPROCESSING = @(echo " Preprocessing file $< ...";
+ ECHO_COMPILING = @(echo " Compiling file $< ...";
+ ECHO_LINKING = @(echo " Linking $(GNUSTEP_TYPE) $(GNUSTEP_INSTANCE) ...";
+ ECHO_JAVAHING = @(echo " Running javah on $< ...";
+ ECHO_INSTALLING = @(echo " Installing $(GNUSTEP_TYPE) $(GNUSTEP_INSTANCE)...";
+ ECHO_UNINSTALLING = @(echo " Uninstalling $(GNUSTEP_TYPE) $(GNUSTEP_INSTANCE)...";
+ ECHO_COPYING_INTO_DIR = @(echo " Copying $(GNUSTEP_TYPE) $(GNUSTEP_INSTANCE) into $(COPY_INTO_DIR)...";
+ ECHO_CREATING = @(echo " Creating $@...";
+ ECHO_CHOWNING = @(echo " Fixing ownership of installed file(s)...";
+ ECHO_STRIPPING = @(echo " Stripping object file...";
+
+ # ECHO_NOTHING is still better than hardcoding @(, because ECHO_NOTHING
+ # prints nothing if messages=no, but it prints all messages when
+ # messages=yes, while hardcoding @( never prints anything.
+ ECHO_NOTHING = @(
+
+ # Instance/Shared/bundle.make
+ ECHO_COPYING_RESOURCES = @(echo " Copying resources into the $(GNUSTEP_TYPE) wrapper...";
+ ECHO_COPYING_LOC_RESOURCES = @(echo " Copying localized resources into the $(GNUSTEP_TYPE) wrapper...";
+ ECHO_CREATING_LOC_RESOURCE_DIRS = @(echo " Creating localized resource dirs into the $(GNUSTEP_TYPE) wrapper...";
+ ECHO_COPYING_RESOURCES_FROM_SUBPROJS = @(echo " Copying resources from subprojects into the $(GNUSTEP_TYPE) wrapper...";
+ ECHO_COPYING_WEBSERVER_RESOURCES = @(echo " Copying webserver resources into the $(GNUSTEP_TYPE) wrapper...";
+ ECHO_COPYING_WEBSERVER_LOC_RESOURCES = @(echo " Copying localized webserver resources into the $(GNUSTEP_TYPE) wrapper...";
+ ECHO_CREATING_WEBSERVER_LOC_RESOURCE_DIRS = @(echo " Creating localized webserver resource dirs into the $(GNUSTEP_TYPE) wrapper...";
+ ECHO_INSTALLING_BUNDLE = @(echo " Installing bundle directory...";
+ ECHO_COPYING_BUNDLE_INTO_DIR = @(echo " Copying bundle directory into $(COPY_INTO_DIR)...";
+
+ # Instance/Shared/headers.make
+ ECHO_INSTALLING_HEADERS = @(echo " Installing headers...";
+
+ # Instance/Shared/java.make
+ ECHO_INSTALLING_CLASS_FILES = @(echo " Installing class files...";
+ ECHO_INSTALLING_ADD_CLASS_FILES = @(echo " Installing nested class files...";
+ ECHO_INSTALLING_PROPERTIES_FILES = @(echo " Installing property files...";
+
+ # Instance/Shared/strings.make
+ ECHO_MAKING_STRINGS = @(echo " Making/updating strings files...";
+
+ # Instance/Documentation/autogsdoc.make
+ ECHO_AUTOGSDOC = @(echo " Generating reference documentation...";
+
+ END_ECHO = )
+
+#
+# Translation of messages:
+#
+# In case a translation is appropriate (FIXME - decide how to
+# determine if this is the case), here we will determine which
+# translated messages.make file to use, and include it here; this file
+# can override any of the ECHO_XXX variables providing new definitions
+# which print out the translated messages. (if it fails to provide a
+# translation of any variable, the original untranslated message would
+# then be automatically print out).
+#
+
+else
+
+ ECHO_PREPROCESSING =
+ ECHO_COMPILING =
+ ECHO_LINKING =
+ ECHO_JAVAHING =
+ ECHO_INSTALLING =
+ ECHO_UNINSTALLING =
+ ECHO_COPYING_INTO_DIR =
+ ECHO_CREATING =
+ ECHO_NOTHING =
+ ECHO_CHOWNING =
+ ECHO_STRIPPING =
+
+ ECHO_COPYING_RESOURCES =
+ ECHO_COPYING_LOC_RESOURCES =
+ ECHO_CREATING_LOC_RESOURCE_DIRS =
+ ECHO_COPYING_RESOURCES_FROM_SUBPROJS =
+ ECHO_COPYING_WEBSERVER_RESOURCES =
+ ECHO_COPYING_WEBSERVER_LOC_RESOURCES =
+ ECHO_CREATING_WEBSERVER_LOC_RESOURCE_DIRS =
+ ECHO_INSTALLING_BUNDLE =
+ ECHO_COPYING_BUNDLE_INTO_DIR =
+
+ ECHO_INSTALLING_HEADERS =
+
+ ECHO_INSTALLING_CLASS_FILES =
+ ECHO_INSTALLING_ADD_CLASS_FILES =
+ ECHO_INSTALLING_PROPERTIES_FILES =
+
+ ECHO_MAKING_STRINGS =
+ ECHO_AUTOGSDOC =
+
+ END_ECHO =
+
+endif
+
--- /dev/null
+#!/bin/sh
+# Make directory hierarchy.
+# Written by Noah Friedman <friedman@prep.ai.mit.edu>
+# Public domain.
+# Modified by Adam Fedor, Nicola Pero
+
+if test "$1" = "-c"; then
+ CHOWN_TO="$2"
+ shift 2
+else
+ CHOWN_TO=""
+fi
+
+MKDIR="mkdir"
+
+defaultIFS='
+'
+IFS="${IFS-${defaultIFS}}"
+
+errstatus=0
+
+for file in ${1+"$@"} ; do
+ oIFS="${IFS}"
+ # Some sh's can't handle IFS=/ for some reason.
+ IFS='%'
+ set - `echo ${file} | sed -e 's@/@%@g' -e 's@^%@/@'`
+ IFS="${oIFS}"
+
+ pathcomp=''
+
+ for d in ${1+"$@"} ; do
+ pathcomp="${pathcomp}${d}"
+
+ if test ! -d "${pathcomp}"; then
+ #echo "$MKDIR $pathcomp" 1>&2
+ if test ! -z "${CHOWN_TO}"; then
+ #echo "chown $CHOWN_TO $pathcomp" 1>&2
+ ($MKDIR "${pathcomp}" && chown $CHOWN_TO "${pathcomp}") || errstatus=$?
+ else
+ $MKDIR "${pathcomp}" || errstatus=$?
+ fi;
+ fi
+
+ pathcomp="${pathcomp}/"
+ done
+done
+
+exit $errstatus
+
+# eof
--- /dev/null
+#!/bin/sh
+# move_obsolete_paths.sh
+#
+# Copyright (C) 2003 Free Software Foundation, Inc.
+#
+# Author: Adam Fedor <fedor@doc.com>
+# Date: April 2003
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Move old paths from previous filesystem heirarchy to new location
+
+if [ -z "$*" ]; then
+ exit 0
+fi
+
+for dir in $@; do
+ #
+ # Move from root to root/Library
+ #
+ subpath=Makefiles
+ if [ -d $dir/$subpath ]; then
+ echo -n " $dir/$subpath: "
+ if [ -d $dir/Library/$subpath ]; then
+ echo Cannot move. Already exists in new location
+ else
+ mv $dir/$subpath $dir/Library/$subpath
+ echo done
+ fi
+ fi
+
+ subpath=Libraries
+ if [ -d $dir/$subpath ]; then
+ echo -n " $dir/$subpath: "
+ if [ -d $dir/Library/$subpath ]; then
+ echo Cannot move. Already exists in new location
+ else
+ mv $dir/$subpath $dir/Library/$subpath
+ echo done
+ fi
+ fi
+
+ subpath=Headers
+ if [ -d $dir/$subpath ]; then
+ echo -n " $dir/$subpath: "
+ if [ -d $dir/Library/$subpath ]; then
+ echo Cannot move. Already exists in new location
+ else
+ mv $dir/$subpath $dir/Library/$subpath
+ echo done
+ fi
+ fi
+
+ subpath=Documentation
+ if [ -d $dir/$subpath ]; then
+ echo -n " $dir/$subpath: "
+ if [ -d $dir/Library/$subpath ]; then
+ echo Cannot move. Already exists in new location
+ else
+ mv $dir/$subpath $dir/Library/$subpath
+ echo done
+ fi
+ fi
+
+ subpath=Services
+ if [ -d $dir/$subpath ]; then
+ echo -n " $dir/$subpath: "
+ if [ -d $dir/Library/$subpath ]; then
+ echo Cannot move. Already exists in new location
+ else
+ mv $dir/$subpath $dir/Library/$subpath
+ echo done
+ fi
+ fi
+
+ #
+ # Move from root/Library/Libraries/Resources to root/Library
+ #
+ resourcedir=$dir/Libraries/Resources
+ subpath=DocTemplates
+ if [ -d $resourcedir/$subpath ]; then
+ echo -n " $resourcedir/$subpath: "
+ if [ -d $dir/Library/$subpath ]; then
+ echo Cannot move. Already exists in new location
+ else
+ mv $resourcedir/$subpath $dir/Library/$subpath
+ echo done
+ fi
+ fi
+
+ subpath=DTDs
+ if [ -d $resourcedir/$subpath ]; then
+ echo -n " $resourcedir/$subpath: "
+ if [ -d $dir/Library/$subpath ]; then
+ echo Cannot move. Already exists in new location
+ else
+ mv $resourcedir/$subpath $dir/Library/$subpath
+ echo done
+ fi
+ fi
+
+ subpath=Images
+ if [ -d $resourcedir/$subpath ]; then
+ echo -n " $resourcedir/$subpath: "
+ if [ -d $dir/Library/$subpath ]; then
+ echo Cannot move. Already exists in new location
+ else
+ mv $resourcedir/$subpath $dir/Library/$subpath
+ echo done
+ fi
+ fi
+
+ subpath=KeyBindings
+ if [ -d $resourcedir/$subpath ]; then
+ echo -n " $resourcedir/$subpath: "
+ if [ -d $dir/Library/$subpath ]; then
+ echo Cannot move. Already exists in new location
+ else
+ mv $resourcedir/$subpath $dir/Library/$subpath
+ echo done
+ fi
+ fi
+
+ #
+ # Remove these - will get reinstalled with gnustep-base
+ #
+ subpath=English.lproj
+ if [ -d $resourcedir/$subpath ]; then
+ rm -rf $resourcedir/$subpath
+ echo Removed $resourcedir/$subpath
+ fi
+ subpath=French.lproj
+ if [ -d $resourcedir/$subpath ]; then
+ rm -rf $resourcedir/$subpath
+ echo Removed $resourcedir/$subpath
+ fi
+ subpath=German.lproj
+ if [ -d $resourcedir/$subpath ]; then
+ rm -rf $resourcedir/$subpath
+ echo Removed $resourcedir/$subpath
+ fi
+ subpath=Italian.lproj
+ if [ -d $resourcedir/$subpath ]; then
+ rm -rf $resourcedir/$subpath
+ echo Removed $resourcedir/$subpath
+ fi
+ subpath=Languages
+ if [ -d $resourcedir/$subpath ]; then
+ rm -rf $resourcedir/$subpath
+ echo Removed $resourcedir/$subpath
+ fi
+ subpath=NSCharacterSets
+ if [ -d $resourcedir/$subpath ]; then
+ rm -rf $resourcedir/$subpath
+ echo Removed $resourcedir/$subpath
+ fi
+ subpath=NSTimeZones
+ if [ -d $resourcedir/$subpath ]; then
+ rm -rf $resourcedir/$subpath
+ echo Removed $resourcedir/$subpath
+ fi
+
+ #
+ # Remove these - will get reinstalled with gnustep-gui
+ #
+ subpath=PrinterTypes
+ if [ -d $resourcedir/$subpath ]; then
+ rm -rf $resourcedir/$subpath
+ echo Removed $resourcedir/$subpath
+ fi
+
+ #
+ # Remove these - obsolete
+ #
+ #if [ -d $dir/Developer ]; then
+ # rm -rf $dir/Developer
+ # echo Removed $dir/Developer
+ #fi
+
+done
--- /dev/null
+#
+# names.make
+#
+# Determine the host and target systems
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Date: October 1997
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Run config.guess to guess the host
+
+ifeq ($(GNUSTEP_HOST),)
+GNUSTEP_HOST_GUESS := $(shell (cd /tmp; $(CONFIG_GUESS_SCRIPT)))
+GNUSTEP_HOST := $(shell (cd /tmp; $(CONFIG_SUB_SCRIPT) $(GNUSTEP_HOST_GUESS)))
+
+GNUSTEP_HOST_CPU := $(shell (cd /tmp; $(CONFIG_CPU_SCRIPT) $(GNUSTEP_HOST)))
+GNUSTEP_HOST_VENDOR := $(shell (cd /tmp; $(CONFIG_VENDOR_SCRIPT) $(GNUSTEP_HOST)))
+GNUSTEP_HOST_OS := $(shell (cd /tmp; $(CONFIG_OS_SCRIPT) $(GNUSTEP_HOST)))
+
+GNUSTEP_HOST_CPU := $(shell (cd /tmp; $(CLEAN_CPU_SCRIPT) $(GNUSTEP_HOST_CPU)))
+GNUSTEP_HOST_VENDOR := $(shell (cd /tmp; $(CLEAN_VENDOR_SCRIPT) $(GNUSTEP_HOST_VENDOR)))
+GNUSTEP_HOST_OS := $(shell (cd /tmp; $(CLEAN_OS_SCRIPT) $(GNUSTEP_HOST_OS)))
+endif
+
+#
+# The user can specify a `target' variable when running make
+#
+
+ifeq ($(strip $(target)),)
+
+# The host is the default target
+GNUSTEP_TARGET := $(GNUSTEP_HOST)
+GNUSTEP_TARGET_CPU := $(GNUSTEP_HOST_CPU)
+GNUSTEP_TARGET_VENDOR := $(GNUSTEP_HOST_VENDOR)
+GNUSTEP_TARGET_OS := $(GNUSTEP_HOST_OS)
+
+else
+
+#
+# Parse the target variable
+#
+
+GNUSTEP_TARGET := $(shell (cd /tmp; $(CONFIG_SUB_SCRIPT) $(target)))
+
+GNUSTEP_TARGET_CPU := $(shell (cd /tmp; $(CONFIG_CPU_SCRIPT) $(GNUSTEP_TARGET)))
+GNUSTEP_TARGET_VENDOR := $(shell (cd /tmp; $(CONFIG_VENDOR_SCRIPT) $(GNUSTEP_TARGET)))
+GNUSTEP_TARGET_OS := $(shell (cd /tmp; $(CONFIG_OS_SCRIPT) $(GNUSTEP_TARGET)))
+
+GNUSTEP_TARGET_CPU := $(shell (cd /tmp; $(CLEAN_CPU_SCRIPT) $(GNUSTEP_TARGET_CPU)))
+GNUSTEP_TARGET_VENDOR := $(shell (cd /tmp; $(CLEAN_VENDOR_SCRIPT) $(GNUSTEP_TARGET_VENDOR)))
+GNUSTEP_TARGET_OS := $(shell (cd /tmp; $(CLEAN_OS_SCRIPT) $(GNUSTEP_TARGET_OS)))
+
+endif
+
+ifneq ($(arch),)
+export CLEANED_ARCH = $(foreach a, $(arch), $(shell (cd /tmp; $(CLEAN_CPU_SCRIPT) $(a))))
+endif
--- /dev/null
+#
+# native-library.make
+#
+# Makefile rules to build native libraries.
+#
+# Copyright (C) 2003 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# A "native library" is a project which is to be built as a shared
+# library on unix/windows, and as a framework on apple. In other
+# words, it is to be built as the most appropriate native equivalent
+# of a traditional unix shared library.
+
+# NATIVE_LIBRARY_NAME should be the name of the native library,
+# without the 'lib'. All the other variables are the same as
+# the ones used in libraries and frameworks.
+
+# To compile something against a native library, you can use
+# ADDITIONAL_NATIVE_LIBS += MyLibrary
+# This will be converted into -lMyLibrary link flag on unix/windows, and
+# into -framework MyLibrary link flag on apple.
+
+ifeq ($(FOUNDATION_LIB), apple)
+
+ FRAMEWORK_NAME = $(NATIVE_LIBRARY_NAME)
+ include $(GNUSTEP_MAKEFILES)/framework.make
+
+else
+
+ LIBRARY_NAME = $(NATIVE_LIBRARY_NAME)
+ include $(GNUSTEP_MAKEFILES)/library.make
+
+endif
--- /dev/null
+#
+# objc.make
+#
+# Makefile rules to build ObjC (but not GNUstep) tools.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/objc.make
+else
+
+ifeq ($(GNUSTEP_TYPE),objc_program)
+include $(GNUSTEP_MAKEFILES)/Instance/objc.make
+endif
+
+endif
--- /dev/null
+#!/bin/sh
+#
+# @configure_input@
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Date: October 1997
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+# Date: 2002
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Try to execute the application passed as argument. The application is
+# searched through the GNUstep directories if a complete or relative path name
+# is not specified. The arguments passed after the application name are passed
+# unmodified to the application.
+
+if [ -z "$1" ]; then
+ echo usage: openapp [--find] application [arguments...]
+ echo openapp --help for more help
+ exit 1
+fi
+
+if [ -z "$GNUSTEP_FLATTENED" ]; then
+ GNUSTEP_FLATTENED=@GNUSTEP_FLATTENED@
+fi
+
+only_find=
+
+# TODO: implement a --library-combo parameter
+case "$1" in
+ --help)
+ echo usage: openapp [--find] 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
+ echo If --find is used as first argument, openapp prints out
+ echo the full path of the application executable which would be
+ echo executed, without actually executing it as it would normally do.
+ echo
+ exit 0
+ ;;
+ --find)
+ only_find=yes;
+ if [ -z "$2" ]; then
+ echo Missing application name. Please try openapp --help for more help.
+ exit 1
+ fi
+ app="$2"; shift; shift;;
+ *)
+ app="$1"; shift;;
+esac
+
+# Remove leading slashes at the end of the application name
+app="`echo \"$app\" | sed 's%/*$%%'`"
+
+# Now build the list of directory names we look for. If the user has
+# given us a full application directory name (for example, Gorm.app)
+# then we only search for the given directory name; if instead the
+# user has given us the application name without the suffix (for
+# example, 'Gorm') we want to search for Gorm.app, then for
+# Gorm.debug, then for Gorm.profile (in that order).
+# If the appname is known, save it to avoid running a grep later to get it.
+case "$app" in
+ *.app) app_list="$app"; appname="";;
+ *.debug) app_list="$app"; appname="";;
+ *.profile) app_list="$app"; appname="";;
+ *) app_list="$app.app:$app.debug:$app.profile"; appname="$app";
+esac
+
+old_IFS="$IFS"
+IFS=:
+case "$app" in
+ /*) # An absolute path.
+ for appdir in $app_list; do
+ #echo "$appdir"
+ if [ -d "$appdir" ]; then
+ full_appname="$appdir"
+ break
+ fi
+ done;;
+ */*) # A relative path
+ for appdir in $app_list; do
+ #echo "$appdir"
+ if [ -d "$appdir" ]; then
+ full_appname="`(cd \"$appdir\"; pwd)`"
+ break
+ fi
+ done;;
+ *) # A path that should be searched into the GNUstep paths
+ if [ -n "$GNUSTEP_PATHLIST" ]; then
+ SPATH="$GNUSTEP_PATHLIST"
+ else
+ SPATH="$PATH"
+ fi
+ SPATH=".:$SPATH"
+
+ for dir in $SPATH; do
+ for appdir in $app_list; do
+ # First, search in $dir/Applications/any_path_here/$appdir
+ #echo "$dir/Applications/"'*'"/$appdir"
+ for d in $dir/Applications/*/$appdir ; do
+ # If nothing is found, * expands to '*'. Check that it's
+ # not the case, and that we have a real match.
+ if [ "$d" != "$dir/Applications/"'*'"/$appdir" ]; then
+ #echo " $d"
+ if [ -d "$d" ]; then
+ full_appname="`(cd \"$d\"; pwd)`"
+ break 3
+ fi
+ fi
+ done
+ # Now, in $dir/Applications/$appdir
+ #echo "$dir/Applications/$appdir"
+ if [ -d "$dir/Applications/$appdir" ]; then
+ full_appname="`(cd \"$dir/Applications/$appdir\"; pwd)`"
+ break 2
+ fi
+ # Finally, in $dir/$appdir
+ #echo "$dir/$appdir"
+ if [ -d "$dir/$appdir" ]; then
+ full_appname="`(cd \"$dir/$appdir\"; pwd)`"
+ break 2
+ fi
+ done
+ done;;
+esac
+IFS="$old_IFS"
+unset app_list
+unset appdir
+
+if [ -z "$full_appname" ]; then
+ echo "Can't find the required application: $app!"
+ exit 1
+fi
+
+#echo "found: $full_appname"
+
+# get base app name
+if [ -z "$appname" ]; then
+ appname="`echo \"$app\" | sed 's/\.[a-z]*$//'`"
+fi
+appname="`basename \"$appname\"`"
+
+if [ -n "$GNUSTEP_FLATTENED" ]; then
+
+ if [ -z "$EXEEXT" ]; then
+ EXEEXT=@EXEEXT@
+ fi
+
+ if [ -n "$EXEEXT" ]; then
+ appname="$appname$EXEEXT"
+ fi
+
+fi
+
+case "$LIBRARY_COMBO" in
+ apple-*) app_executable="$full_appname/Contents/MacOS/$appname";;
+ *) app_executable="$full_appname/$appname";;
+esac
+
+if [ ! -f "$app_executable" ]; then
+ echo "Could not find $app_executable executable/script"
+ exit 1
+fi
+
+if [ -n "$only_find" ]; then
+ echo "$app_executable"
+ exit 0
+fi
+
+exec "$app_executable" "$@"
--- /dev/null
+#! /bin/sh
+#
+# @configure_input@
+#
+# Copyright (C) 1997, 1999 Free Software Foundation, Inc.
+#
+# Author: Scott Predescu <ovidiu@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Date: February 1999
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Try to execute the GNUstep tool passed as argument. The tool is
+# searched through the GNUstep directories if a complete or relative path name
+# is not specified. The arguments passed after the tool name are passed
+# unmodified to the tool.
+
+if [ -z "$GNUSTEP_PATHLIST" ]; then
+ echo "The GNUSTEP_PATHLIST environment variable is missing."
+ echo "Did you forget to set up your environment using GNUstep.sh ?"
+ exit 1
+fi
+
+if [ -z "$1" ]; then
+ echo usage: `basename "$0"` [--library-combo=...] tool [arguments...]
+ echo `basename "$0"` --help for help
+ exit 1
+fi
+
+if [ -z "$EXEEXT" ]; then
+ EXEEXT=@EXEEXT@
+fi
+
+# traps the parameters
+while true
+do
+ case "$1" in
+ --library-combo=*)
+ tmp_root="$GNUSTEP_SYSTEM_ROOT"
+ . "$tmp_root/@MAKEFILES_SUFFIX@/GNUstep-reset.sh"
+ LIBRARY_COMBO=`echo "$1" | sed 's/--library-combo=//'`
+ . "$tmp_root/@MAKEFILES_SUFFIX@/GNUstep.sh"
+ echo "Switched to library combo $LIBRARY_COMBO"
+ shift
+ ;;
+ --help)
+ echo usage: `basename "$0"` [--library-combo=...] tool [arguments...]
+ echo
+ echo tool is the complete or relative name of the tool executable
+ echo without any extension, like defaults
+ echo
+ echo [arguments...] are the arguments to the tool.
+ exit 0
+ ;;
+ *)
+ break;;
+ esac
+done
+
+tool="$1";
+shift;
+
+if [ -n "$EXEEXT" ]; then
+ tool="$tool$EXEEXT"
+fi
+
+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\"`";
+ full_toolname="${tool_dir}/${tool_name}";;
+ *) # A path that should be searched into GNUstep tool paths
+
+ # Search for a local tool
+
+ # We used to scan all ./*/$(GNUSTEP_HOST_LDIR)/ directories,
+ # but this facility was removed (GNUSTEP_HOST_LDIR is no
+ # longer even defined in this file), now we perform a much
+ # simpler search.
+
+ # The really important one is looking into ./obj, anyway here
+ # is the order in which we search local directories -
+ # First, we search in ./
+ # Second, we search in ./obj
+ # Third, we search in ./Tools/
+ # Fourth, we search in ./Tools/obj
+ for dir in . obj Tools Tools/obj; do
+ # echo "$dir/$tool";
+ if [ -x "$dir/$tool" ]; then
+ full_toolname="$dir/$tool"
+ # echo "Found: $dir/$tool";
+ break;
+ fi
+ done
+
+ if [ -z "$full_toolname" ]; then
+
+ # Local tool not found - Search for an installed one
+ # we search in GNUSTEP_PATHLIST, which means we
+ # search in the order in:
+ # GNUSTEP_USER_ROOT
+ # GNUSTEP_LOCAL_ROOT
+ # GNUSTEP_NETWORK_ROOT
+ # GNUSTEP_SYSTEM_ROOT
+ #
+ # We look in the GNUSTEP_HOST_CPU/GNUSTEP_HOST_OS/LIBRARY_COMBO
+ # subdirectory first, then the GNUSTEP_HOST_CPU/GNUSTEP_HOST_OS
+ # subdirectory, then the top-level directory.
+ # (For flattened systems we skip the first two options.
+ #
+ if [ -n "$GNUSTEP_PATHLIST" ]; then
+ SPATH="$GNUSTEP_PATHLIST"
+ IFS=:
+ for dir in $SPATH; do
+ tmpdir="$dir/Tools"
+ if [ -z "$GNUSTEP_FLATTENED" ]; then
+ tmpgnudir="$dir/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS"
+ tmplibdir="$tmpgnudir/$LIBRARY_COMBO"
+ # echo "$tmplibdir/$tool";
+ if [ -x "$tmplibdir/$tool" ]; then
+ # echo "Found: $tmplibdir/$tool";
+ full_toolname="$tmplibdir/$tool"
+ break;
+ fi
+ if [ -x "$tmpgnudir/$tool" ]; then
+ # echo "Found: $tmpgnudir/$tool";
+ full_toolname="$tmpgnudir/$tool"
+ break;
+ fi
+ fi
+ # echo "$tmpdir/$tool";
+ if [ -x "$tmpdir/$tool" ]; then
+ # echo "Found: $tmpdir/$tool";
+ full_toolname="$tmpdir/$tool"
+ break;
+ fi
+ done
+ unset tmpdir
+ unset tmpgnudir
+ unset tmplibdir
+ IFS=" "
+ fi
+ fi
+ ;;
+esac
+
+if [ -z "$full_toolname" ]; then
+ echo "Can't find the required tool: $tool!"
+ exit 1
+fi
+
+IFS=" "
+exec "$full_toolname" "$@"
--- /dev/null
+#! /bin/sh
+#
+# os.sh
+#
+# Print out the OS from a canonical name.
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+echo $1 | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'
--- /dev/null
+#
+# palette.make
+#
+# Makefile rules to build GNUstep-based palettes.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/palette.make
+else
+
+ifeq ($(GNUSTEP_TYPE),palette)
+include $(GNUSTEP_MAKEFILES)/Instance/palette.make
+endif
+
+endif
--- /dev/null
+#!/bin/sh
+# relative_path.sh
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+# Date: April 2001
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# This script gets two paths as argument - and outputs a relative path
+# which, when appended to the first one, gives the second one ... more
+# precisely, the path of minimum length with this property.
+#
+# <NB: the paths must be absolute.>
+#
+# for example,
+#
+# $GNUSTEP_MAKEFILES/relative_path.sh /usr/GNUstep/Local /usr/GNUstep/System
+#
+# returns ../System (and not ../../GNUstep/System which is not the minimum).
+#
+# This is needed by `ln -s' to properly create symlinks between
+# directories which are related ... but we don't know how. We only
+# need this for frameworks, which are particularly complex and
+# delicate. For example, to create the link
+#
+# /usr/GNUstep/System/Library/Libraries/ix86/linux-gnu/gnu-gnu-gnu/libnicola.so
+# --> ../../../../Frameworks/nicola.framework/Versions/Current/ix86/linux-gnu/gnu-gnu-gnu/libnicola.so
+#
+# (and where the paths are actually computed by make variables which
+# might depend on variables in user makefiles outside our control, so
+# it's not obvious what the relationship is between the two paths, and
+# you only have the absolute paths) we do -
+#
+# cd /usr/GNUstep/System/Library/Libraries/ix86/linux-gnu/gnu-gnu-gnu/
+# $(LN_S) `$(RELATIVE_PATH_SCRIPT) /usr/GNUstep/System/Frameworks/nicola.framework/Versions/Current/ix86/linux-gnu/gnu-gnu-gnu/libnicola.so /usr/GNUstep/System/Library/Libraries/ix86/linux-gnu/gnu-gnu-gnu/` libnicola.so
+#
+# which creates the link. We need to use the minimum path because
+# that is the most relocatable possible path. I consider all this a
+# trick and a hack and recommend to use libraries and bundles instead
+# of frameworks, since libraries and bundles are much more portable
+# and stable, anyway here we are.
+#
+
+
+if [ "$#" != 2 ]; then
+ exit 1
+fi
+
+a="$1";
+b="$2";
+
+if [ "$a" = "" ]; then
+ exit 1
+fi
+
+if [ "$b" = "" ]; then
+ exit 1
+fi
+
+
+#
+# Our first argument is a path like /xxx/yyy/zzz/ccc/ttt
+# Our second argument is a path like /xxx/yyy/kkk/nnn/ppp
+#
+
+# Step zero is normalizing the paths by removing any /./ component
+# inside the given paths (these components can occur for example when
+# enable-flattened is used).
+tmp_IFS="$IFS"
+IFS=/
+
+# Normalize a by removing any '.' path component.
+normalized_a=""
+for component in $a; do
+ if [ -n "$component" ]; then
+ if [ "$component" != "." ]; then
+ normalized_a="$normalized_a/$component"
+ fi
+ fi
+done
+a="$normalized_a"
+
+# Normalize b by removing any '.' path component.
+normalized_b=""
+for component in $b; do
+ if [ -n "$component" ]; then
+ if [ "$component" != "." ]; then
+ normalized_b="$normalized_b/$component"
+ fi
+ fi
+done
+b="$normalized_b"
+
+IFS="$tmp_IFS"
+
+
+
+# Step one: we first want to remove the common root -- we want to get
+# into having /zzz/ccc/tt and /kkk/nnn/ppp.
+
+# We first try to match as much as possible between the first and the second
+# So we loop on the fields in the second. The common root must not contain
+# empty path components (/./) for this to work, but we have already filtered
+# those out at step zero.
+tmp_IFS="$IFS"
+IFS=/
+partial_b=""
+partial_match=""
+for component in $b; do
+ if [ -n "$component" ]; then
+ partial_b="$partial_b/$component"
+ case "$a" in
+ "$partial_b"*) partial_match="$partial_b";;
+ *) break;;
+ esac
+ fi
+done
+IFS="$tmp_IFS"
+
+if [ "$partial_match" != "" ]; then
+ # Now partial_match is the substring which matches (/xxx/yyy/) in the
+ # example. Remove it from both a and b.
+ a=`echo $a | sed -e "s#$partial_match##"`
+ b=`echo $b | sed -e "s#$partial_match##"`
+fi
+
+# Ok - now ready to build the result
+result=""
+
+# First add as many ../ as there are components in a
+tmp_IFS="$IFS"
+IFS=/
+for component in $a; do
+ if [ -n "$component" -a "$component" != "." ]; then
+ if [ -z "$result" ]; then
+ result=".."
+ else
+ result="$result/.."
+ fi
+ fi
+done
+IFS="$tmp_IFS"
+
+# Then, append b
+if [ -n "$result" ]; then
+ result="$result$b"
+else
+ result="$b"
+fi
+
+echo "$result"
--- /dev/null
+#
+# resource-set.make
+#
+# Makefile rules to install resource files.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/resource-set.make
+else
+
+ifeq ($(GNUSTEP_TYPE),resource_set)
+include $(GNUSTEP_MAKEFILES)/Instance/resource-set.make
+endif
+
+endif
--- /dev/null
+# -*-makefile-*-
+# rules.make
+#
+# All of the common makefile rules.
+#
+# Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# prevent multiple inclusions
+
+# NB: This file is internally protected against multiple inclusions.
+# But for perfomance reasons, you might want to check the
+# RULES_MAKE_LOADED variable yourself and include this file only if it
+# is empty. That allows make to skip reading the file entirely when it
+# has already been read. We use this trick for all system makefiles.
+ifeq ($(RULES_MAKE_LOADED),)
+RULES_MAKE_LOADED=yes
+
+# Include the Master rules at the beginning because the 'all' rule must be
+# first on the first invocation without a specified target.
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/rules.make
+endif
+
+#
+# If INSTALL_AS_USER and/or INSTALL_AS_GROUP are defined, pass them down
+# to submakes. There are two reasons -
+#
+# 1. so that if you set them in a GNUmakefile, they get passed down
+# to automatically generated sources/GNUmakefiles (such as Java wrappers)
+# 2. so that if you type `make install INSTALL_AS_USER=nicola' in a directory,
+# the INSTALL_AS_USER=nicola gets automatically used in all subdirectories.
+#
+# Warning - if you want to hardcode a INSTALL_AS_USER in a GNUmakefile, then
+# you shouldn't rely on us to pass it down to subGNUmakefiles - you should
+# rather hardcode INSTALL_AS_USER in all your GNUmakefiles (or better have
+# a makefile fragment defining INSTALL_AS_USER in the top-level and include
+# it in all GNUmakefiles) - otherwise what happens is that if you go in a
+# subdirectory and type 'make install' there, it will not get the
+# INSTALL_AS_USER from the higher level GNUmakefile, so it will install with
+# the wrong user! For this reason, if you need to hardcode INSTALL_AS_USER
+# in GNUmakefiles, make sure it's hardcoded *everywhere*.
+#
+ifneq ($(INSTALL_AS_USER),)
+ export INSTALL_AS_USER
+endif
+
+ifneq ($(INSTALL_AS_GROUP),)
+ export INSTALL_AS_GROUP
+endif
+
+
+# In subprojects, will be set by the recursive make invocation on the
+# make command line to be [../../]../derived_src
+DERIVED_SOURCES = derived_src
+DERIVED_SOURCES_DIR = $(GNUSTEP_BUILD_DIR)/$(DERIVED_SOURCES)
+
+# Always include all the compilation flags and generic compilation
+# rules, because the user, in his GNUmakefile.postamble, might want to
+# add manual commands for example to after-all, which are processed
+# during the Master invocation, but yet can compile or install stuff
+# and need access to all compilation/installation flags and locations
+# and basic rules.
+
+#
+# Manage stripping
+#
+ifeq ($(strip),yes)
+INSTALL_PROGRAM += -s
+export strip
+endif
+
+#
+# Prepare the arguments to install to set user/group of installed files
+#
+INSTALL_AS =
+
+ifneq ($(INSTALL_AS_USER),)
+INSTALL_AS += -o $(INSTALL_AS_USER)
+endif
+
+ifneq ($(INSTALL_AS_GROUP),)
+INSTALL_AS += -g $(INSTALL_AS_GROUP)
+endif
+
+# Redefine INSTALL to include these flags. This automatically
+# redefines INSTALL_DATA and INSTALL_PROGRAM as well, because they are
+# define in terms of INSTALL.
+INSTALL += $(INSTALL_AS)
+
+# Sometimes, we install without using INSTALL - typically using tar.
+# In those cases, we run chown after having installed, in order to
+# fixup the user/group.
+
+#
+# Prepare the arguments to chown to set user/group of installed files.
+#
+ifneq ($(INSTALL_AS_GROUP),)
+CHOWN_TO = $(strip $(INSTALL_AS_USER)).$(strip $(INSTALL_AS_GROUP))
+else
+CHOWN_TO = $(strip $(INSTALL_AS_USER))
+endif
+
+# You need to run CHOWN manually, but only if CHOWN_TO is non-empty.
+
+#
+# Pass the CHOWN_TO argument to MKINSTALLDIRS
+# All installation directories should be created using MKINSTALLDIRS
+# to make sure we set the correct user/group. Local directories should
+# be created using MKDIRS instead because we don't want to set user/group.
+#
+ifneq ($(CHOWN_TO),)
+ MKINSTALLDIRS = $(MKDIRS) -c $(CHOWN_TO)
+ # Fixup the library installation commands if needed so that we change
+ # ownership of the links as well
+ ifeq ($(shared),yes)
+ AFTER_INSTALL_LIBRARY_CMD += ; $(AFTER_INSTALL_SHARED_LIB_CHOWN)
+ endif
+else
+ MKINSTALLDIRS = $(MKDIRS)
+endif
+
+#
+# If this is part of the compilation of a framework,
+# add -I[$GNUSTEP_BUILD_DIR][../../../etc]derived_src so that the code
+# can include framework headers simply using `#include
+# <MyFramework/MyHeader.h>'
+#
+# If it's a framework makefile, FRAMEWORK_NAME will be non-empty. If
+# it's a framework subproject, OWNING_PROJECT_HEADER_DIR_NAME will be
+# non-empty.
+#
+ifneq ($(FRAMEWORK_NAME)$(OWNING_PROJECT_HEADER_DIR_NAME),)
+ DERIVED_SOURCES_HEADERS_FLAG = -I$(DERIVED_SOURCES_DIR)
+endif
+
+#
+# Include rules to built the instance
+#
+# this fixes up ADDITIONAL_XXXFLAGS as well, which is why we include it
+# before using ADDITIONAL_XXXFLAGS
+#
+ifneq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Instance/rules.make
+endif
+
+#
+# Implement ADDITIONAL_NATIVE_LIBS
+#
+# A native lib is a framework on apple, and a shared library
+# everywhere else. Here we provide the appropriate link flags
+# to support it transparently on the two platforms.
+#
+ifeq ($(FOUNDATION_LIB),apple)
+ ADDITIONAL_OBJC_LIBS += $(foreach lib,$(ADDITIONAL_NATIVE_LIBS),-framework $(lib))
+else
+ ADDITIONAL_OBJC_LIBS += $(foreach lib,$(ADDITIONAL_NATIVE_LIBS),-l$(lib))
+endif
+
+#
+# Auto dependencies
+#
+# -MMD -MP tells gcc to generate a .d file for each compiled file,
+# which includes makefile rules adding dependencies of the compiled
+# file on all the header files the source file includes ...
+#
+# next time `make' is run, we include the .d files for the previous
+# run (if we find them) ... this automatically adds dependencies on
+# the appropriate header files
+#
+
+# Warning - the following variable name might change
+ifeq ($(AUTO_DEPENDENCIES),yes)
+ifeq ($(AUTO_DEPENDENCIES_FLAGS),)
+ AUTO_DEPENDENCIES_FLAGS = -MMD -MP
+endif
+endif
+
+# The difference between ADDITIONAL_XXXFLAGS and AUXILIARY_XXXFLAGS is the
+# following:
+#
+# ADDITIONAL_XXXFLAGS are set freely by the user GNUmakefile
+#
+# AUXILIARY_XXXFLAGS are set freely by makefile fragments installed by
+# auxiliary packages. For example, gnustep-db installs
+# a gdl.make file. If you want to use gnustep-db in
+# your tool, you `include $(GNUSTEP_MAKEFILES)/gdl.make'
+# and that will add the appropriate flags to link against
+# gnustep-db. Those flags are added to AUXILIARY_XXXFLAGS.
+#
+# Why can't ADDITIONAL_XXXFLAGS and AUXILIARY_XXXFLAGS be the same variable ?
+# Good question :-) I'm not sure but I think the original reason is that
+# users tend to think they can do whatever they want with ADDITIONAL_XXXFLAGS,
+# like writing
+# ADDITIONAL_XXXFLAGS = -Verbose
+# (with a '=' instead of a '+=', thus discarding the previous value of
+# ADDITIONAL_XXXFLAGS) without caring for the fact that other makefiles
+# might need to add something to ADDITIONAL_XXXFLAGS.
+#
+# So the idea is that ADDITIONAL_XXXFLAGS is reserved for the users to
+# do whatever mess they like with them, while in makefile fragments
+# from packages we use a different variable, which is subject to a stricter
+# control, requiring package authors to always write
+#
+# AUXILIARY_XXXFLAGS += -Verbose
+#
+# in their auxiliary makefile fragments, to make sure they don't
+# override flags from different packages, just add to them.
+#
+# When building up command lines inside gnustep-make, we always need
+# to add both AUXILIARY_XXXFLAGS and ADDITIONAL_XXXFLAGS to all
+# compilation/linking/etc command.
+#
+
+ALL_CPPFLAGS = $(AUTO_DEPENDENCIES_FLAGS) $(CPPFLAGS) $(ADDITIONAL_CPPFLAGS) \
+ $(AUXILIARY_CPPFLAGS)
+
+ALL_OBJCFLAGS = $(INTERNAL_OBJCFLAGS) $(ADDITIONAL_OBJCFLAGS) \
+ $(AUXILIARY_OBJCFLAGS) $(ADDITIONAL_INCLUDE_DIRS) \
+ $(AUXILIARY_INCLUDE_DIRS) \
+ $(DERIVED_SOURCES_HEADERS_FLAG) \
+ -I. $(SYSTEM_INCLUDES) \
+ $(GNUSTEP_HEADERS_FLAGS) \
+ $(GNUSTEP_FRAMEWORKS_FLAGS)
+
+ALL_CFLAGS = $(INTERNAL_CFLAGS) $(ADDITIONAL_CFLAGS) \
+ $(AUXILIARY_CFLAGS) $(ADDITIONAL_INCLUDE_DIRS) \
+ $(AUXILIARY_INCLUDE_DIRS) \
+ $(DERIVED_SOURCES_HEADERS_FLAG) \
+ -I. $(SYSTEM_INCLUDES) \
+ $(GNUSTEP_HEADERS_FLAGS) \
+ $(GNUSTEP_FRAMEWORKS_FLAGS)
+
+# if you need, you can define ADDITIONAL_CCFLAGS to add C++ specific flags
+ALL_CCFLAGS = $(ADDITIONAL_CCFLAGS) $(AUXILIARY_CCFLAGS)
+
+INTERNAL_CLASSPATHFLAGS = -classpath ./$(subst ::,:,:$(strip $(ADDITIONAL_CLASSPATH)):)$(CLASSPATH)
+
+ALL_JAVACFLAGS = $(INTERNAL_CLASSPATHFLAGS) $(INTERNAL_JAVACFLAGS) \
+$(ADDITIONAL_JAVACFLAGS) $(AUXILIARY_JAVACFLAGS)
+
+ALL_JAVAHFLAGS = $(INTERNAL_CLASSPATHFLAGS) $(ADDITIONAL_JAVAHFLAGS) \
+$(AUXILIARY_JAVAHFLAGS)
+
+ifeq ($(shared),no)
+ ALL_LDFLAGS = $(STATIC_LDFLAGS)
+else
+ ALL_LDFLAGS =
+endif
+ALL_LDFLAGS += $(ADDITIONAL_LDFLAGS) $(AUXILIARY_LDFLAGS) $(GUI_LDFLAGS) \
+ $(BACKEND_LDFLAGS) $(SYSTEM_LDFLAGS) $(INTERNAL_LDFLAGS)
+
+ALL_LIB_DIRS = $(ADDITIONAL_FRAMEWORK_DIRS) $(AUXILIARY_FRAMEWORK_DIRS) \
+ $(ADDITIONAL_LIB_DIRS) $(AUXILIARY_LIB_DIRS) \
+ $(GNUSTEP_LIBRARIES_FLAGS) \
+ $(GNUSTEP_FRAMEWORKS_FLAGS) \
+ $(SYSTEM_LIB_DIR)
+
+# We use .plist (property-list files, see gnustep-base) in quite a few
+# cases. Whenever a .plist file is required, you can/will be allowed
+# to provide a .cplist file instead (at the moment, it is only
+# implemented for applications' xxxInfo.plist). A .cplist file is a
+# property-list file with C preprocessor conditionals. gnustep-make
+# will automatically generate the .plist file from the .cplist file by
+# running the C preprocessor.
+
+# The CPLISTFLAGS are the flags used when running the C preprocessor
+# to generate a .plist file from a .cplist file.
+ALL_CPLISTFLAGS = -P -x c -traditional
+
+ifeq ($(FOUNDATION_LIB), gnu)
+ ALL_CPLISTFLAGS += -DGNUSTEP
+else
+ ifeq ($(FOUNDATION_LIB), apple)
+ ALL_CPLISTFLAGS += -DAPPLE
+ else
+ ifeq ($(FOUNDATION_LIB), nx)
+ ALL_CPLISTFLAGS += -DNEXT
+ else
+ ALL_CPLISTFLAGS += -DUNKNOWN
+ endif
+ endif
+endif
+
+ALL_CPLISTFLAGS += $(ADDITIONAL_CPLISTFLAGS) $(AUXILIARY_CPLISTFLAGS)
+
+
+# If we are using Windows32 DLLs, we pass -DGNUSTEP_WITH_DLL to the
+# compiler. This preprocessor define might be used by library header
+# files to know they are included from external code needing to use
+# the library symbols, so that the library header files can in this
+# case use __declspec(dllimport) to mark symbols as needing to be put
+# into the import table for the executable/library/whatever that is
+# being compiled.
+ifeq ($(WITH_DLL),yes)
+ALL_CPPFLAGS += -DGNUSTEP_WITH_DLL
+endif
+
+# General rules
+VPATH = .
+
+# Disable all built-in suffixes for performance.
+.SUFFIXES:
+
+# Then define our own.
+.SUFFIXES: .m .c .psw .java .h .cpp .cxx .C .cc .cp
+
+.PRECIOUS: %.c %.h $(GNUSTEP_OBJ_DIR)/%${OEXT}
+
+# Disable all built-in rules with a vague % as target, for performance.
+%: %.c
+
+%: %.cpp
+
+%: %.cc
+
+%: %.C
+
+(%): %
+
+%:: %,v
+
+%:: RCS/%,v
+
+%:: RCS/%
+
+%:: s.%
+
+%:: SCCS/s.%
+
+#
+# In exceptional conditions, you might need to want to use different compiler
+# flags for a file (for example, if a file doesn't compile with optimization
+# turned on, you might want to compile that single file with optimizations
+# turned off). gnustep-make allows you to do this - you can specify special
+# flags to be used when compiling a *specific* file in two ways -
+#
+# xxx_FILE_FLAGS (where xxx is the file name, such as main.m)
+# are special compilation flags to be used when compiling xxx
+#
+# xxx_FILE_FILTER_OUT_FLAGS (where xxx is the file name, such as mframe.m)
+# is a filter-out make pattern of flags to be filtered out
+# from the compilation flags when compiling xxx.
+#
+# Typical examples:
+#
+# Disable optimization flags for the file NSInvocation.m:
+# NSInvocation.m_FILE_FILTER_OUT_FLAGS = -O%
+#
+# Disable optimization flags for the same file, and also remove
+# -fomit-frame-pointer:
+# NSInvocation.m_FILE_FILTER_OUT_FLAGS = -O% -fomit-frame-pointer
+#
+# Force the compiler to warn for #import if used in file file.m:
+# file.m_FILE_FLAGS = -Wimport
+# file.m_FILE_FILTER_OUT_FLAGS = -Wno-import
+#
+
+# Please don't be scared by the following rules ... In normal
+# situations, $<_FILTER_OUT_FLAGS is empty, and $<_FILE_FLAGS is empty
+# as well, so the following rule is simply equivalent to
+# $(CC) $< -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) -o $@
+# and similarly all the rules below
+$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.c
+ $(ECHO_COMPILING)$(CC) $< -c \
+ $(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
+ $(ALL_CFLAGS)) \
+ $($<_FILE_FLAGS) -o $@$(END_ECHO)
+
+$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.m
+ $(ECHO_COMPILING)$(CC) $< -c \
+ $(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
+ $(ALL_OBJCFLAGS)) \
+ $($<_FILE_FLAGS) -o $@$(END_ECHO)
+
+$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.C
+ $(ECHO_COMPILING)$(CC) $< -c \
+ $(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
+ $(ALL_CFLAGS) \
+ $(ALL_CCFLAGS)) \
+ $($<_FILE_FLAGS) -o $@$(END_ECHO)
+
+$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cc
+ $(ECHO_COMPILING)$(CC) $< -c \
+ $(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
+ $(ALL_CFLAGS) \
+ $(ALL_CCFLAGS)) \
+ $($<_FILE_FLAGS) -o $@$(END_ECHO)
+
+$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cpp
+ $(ECHO_COMPILING)$(CC) $< -c \
+ $(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
+ $(ALL_CFLAGS) \
+ $(ALL_CCFLAGS)) \
+ $($<_FILE_FLAGS) -o $@$(END_ECHO)
+
+$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cxx
+ $(ECHO_COMPILING)$(CC) $< -c \
+ $(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
+ $(ALL_CFLAGS) \
+ $(ALL_CCFLAGS)) \
+ $($<_FILE_FLAGS) -o $@$(END_ECHO)
+
+$(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cp
+ $(ECHO_COMPILING)$(CC) $< -c \
+ $(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPPFLAGS) \
+ $(ALL_CFLAGS) \
+ $(ALL_CCFLAGS)) \
+ $($<_FILE_FLAGS) -o $@$(END_ECHO)
+
+%.class : %.java
+ $(ECHO_COMPILING)$(JAVAC) \
+ $(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_JAVACFLAGS)) \
+ $($<_FILE_FLAGS) $<$(END_ECHO)
+
+# A jni header file which is created using JAVAH
+# Example of how this rule will be applied:
+# gnu/gnustep/base/NSObject.h : gnu/gnustep/base/NSObject.java
+# javah -o gnu/gnustep/base/NSObject.h gnu.gnustep.base.NSObject
+%.h : %.java
+ $(ECHO_JAVAHING)$(JAVAH) \
+ $(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_JAVAHFLAGS)) \
+ $($<_FILE_FLAGS) -o $@ $(subst /,.,$*)$(END_ECHO)
+
+%.c : %.psw
+ pswrap -h $*.h -o $@ $<
+
+# The following rule is needed because in frameworks you might need
+# the .h files before the .c files are compiled.
+%.h : %.psw
+ pswrap -h $@ -o $*.c $<
+
+# Rule to generate a .plist file (a property list file) by running the
+# preprocessor on a .cplist file (a property list file with embedded C
+# preprocessor conditionals). Useful in order to have a single
+# xxxInfo.plist file for multiple platforms (read GNUstep and Apple)
+# for the same application (to make portability easier). You can have
+# a single xxxInfo.cplist file, and xxxInfo.plist will automatically
+# be generated by gnustep-make from xxxInfo.cplist by running the
+# preprocessor.
+#
+# Unfortunately, on some platforms (Apple) the preprocessor emits
+# unwanted and unrequested #pragma statements. We use sed to filter
+# them out.
+#
+%.plist : %.cplist
+ $(ECHO_PREPROCESSING)$(CPP) \
+ $(filter-out $($<_FILE_FILTER_OUT_FLAGS),$(ALL_CPLISTFLAGS))\
+ $($<_FILE_FLAGS) $< | sed '/^#pragma/d' > $@$(END_ECHO)
+
+# The following rule builds a .c file from a lex .l file.
+# You can define LEX_FLAGS if you need them.
+%.c: %.l
+ $(LEX) $(LEX_FLAGS) -t $< > $@
+
+# The following rule builds a .c file from a yacc/bison .y file.
+# You can define YACC_FLAGS if you need them.
+%.c: %.y
+ $(YACC) $(YACC_FLAGS) $<
+ mv -f y.tab.c $@
+
+# The following dummy rules are needed for performance - we need to
+# prevent make from spending time trying to compute how/if to rebuild
+# the system makefiles! the following rules tell him that these files
+# are always up-to-date
+
+$(GNUSTEP_MAKEFILES)/*.make: ;
+
+$(GNUSTEP_MAKEFILES)/$(GNUSTEP_TARGET_DIR)/config.make: ;
+
+$(GNUSTEP_MAKEFILES)/Additional/*.make: ;
+
+$(GNUSTEP_MAKEFILES)/Master/*.make: ;
+
+$(GNUSTEP_MAKEFILES)/Instance/*.make: ;
+
+$(GNUSTEP_MAKEFILES)/Instance/Shared/*.make: ;
+
+$(GNUSTEP_MAKEFILES)/Instance/Documentation/*.make: ;
+
+# The rule to create the GNUSTEP_BUILD_DIR if any.
+ifneq ($(GNUSTEP_BUILD_DIR),.)
+$(GNUSTEP_BUILD_DIR):
+ $(ECHO_CREATING)$(MKDIRS) $(GNUSTEP_BUILD_DIR)$(END_ECHO)
+endif
+
+# The rule to create the objects file directory.
+$(GNUSTEP_OBJ_DIR):
+ $(ECHO_NOTHING)cd $(GNUSTEP_BUILD_DIR); \
+ $(MKDIRS) ./$(GNUSTEP_OBJ_DIR_NAME); \
+ rm -f obj; \
+ $(LN_S) ./$(GNUSTEP_OBJ_DIR_NAME) obj$(END_ECHO)
+
+endif
+# rules.make loaded
--- /dev/null
+#
+# service.make
+#
+# Makefile rules to build GNUstep services.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/service.make
+else
+
+ifeq ($(GNUSTEP_TYPE),service)
+include $(GNUSTEP_MAKEFILES)/Instance/service.make
+endif
+
+endif
--- /dev/null
+#! /bin/sh
+#
+# setlocaltz.sh
+#
+# Determine local timezone, ask user for input, save timzone
+# in GNUstep timezone file (or defaults database)
+#
+# Copyright (C) 1999 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+#
+# Date: February 1999
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+echo " "
+echo "Enter the name of your timezone file"
+echo "press ^D on its own line when you are done"
+TZNAME=`cat`
+echo " "
+
+GNUSTEP_TIMEZONE=$GNUSTEP_SYSTEM_ROOT/Library/Libraries/Resources/gnustep-base/NSTimeZones
+if [ -f $GNUSTEP_TIMEZONE/zones/$TZNAME ]; then
+ echo Setting timezone to $TZNAME
+ defaults write NSGlobalDomain "Local Time Zone" $TZNAME
+ echo defaults database says local time zone is:
+ defaults read NSGlobalDomain "Local Time Zone"
+else
+ echo ERROR: Cannot find timezone file: $TZNAME
+ echo in $GNUSTEP_TIMEZONE/zones
+ exit 1
+fi
--- /dev/null
+#
+# Setup sources
+#
+%prep
+%setup -n %{gs_name}-%{gs_version}
+
+#
+# Build commands
+#
+%build
+if [ -z "$GNUSTEP_SYSTEM_ROOT" ]; then
+ . %{gs_root}/Library/Makefiles/GNUstep.sh
+fi
+if [ "%{gs_configure}" = "YES" ]; then
+ CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{gs_root}
+fi
+make debug=yes
+
+#
+# Install commands (generate file list too)
+#
+%install
+if [ -z "$GNUSTEP_SYSTEM_ROOT" ]; then
+ . %{gs_root}/Library/Makefiles/GNUstep.sh
+fi
+
+make debug=yes \
+ INSTALL_ROOT_DIR=$RPM_BUILD_ROOT \
+ GNUSTEP_INSTALLATION_DIR=$RPM_BUILD_ROOT%{gs_install_dir} \
+ filelist=yes install
+
+#
+# Clean commands
+#
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+#
+# File list (generated by install)
+#
+%files -f file-list-debug
--- /dev/null
+#
+# Setup sources
+#
+%prep
+%setup -n %{gs_name}-%{gs_version}
+
+#
+# Build commands
+#
+%build
+if [ -z "$GNUSTEP_SYSTEM_ROOT" ]; then
+ . %{gs_root}/Library/Makefiles/GNUstep.sh
+fi
+if [ "%{gs_configure}" = "YES" ]; then
+ CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{gs_root}
+fi
+make debug=no
+make debug=yes
+
+#
+# Install commands (generate file list too)
+#
+%install
+if [ -z "$GNUSTEP_SYSTEM_ROOT" ]; then
+ . %{gs_root}/Library/Makefiles/GNUstep.sh
+fi
+# build the non debugging file list
+mkdir tmp-rpm-build-%{gs_name}
+make debug=no \
+ INSTALL_ROOT_DIR=`pwd`/tmp-rpm-build-%{gs_name} \
+ GNUSTEP_INSTALLATION_DIR=`pwd`/tmp-rpm-build-%{gs_name}/%{gs_install_dir} \
+ filelist=yes install
+rm -rf tmp-rpm-build-%{gs_name}
+
+# build the debugging file list
+make debug=yes \
+ INSTALL_ROOT_DIR=$RPM_BUILD_ROOT \
+ GNUSTEP_INSTALLATION_DIR=$RPM_BUILD_ROOT%{gs_install_dir} \
+ filelist=yes install
+
+# Now filter the debugging file list against the non debugging one
+#
+# We use `grep':
+# `-f file-list' gets the lines to match from file-list
+# `-x' gets only matches which match whole lines
+# `-v' inverts the matching, so lines which do not match are outputted
+#
+mv file-list-debug file-list.tmp
+for file in `cat file-list`; do
+ grep -v -x $file file-list.tmp >> file-list-debug.tmp
+ mv file-list-debug.tmp file-list.tmp
+done
+
+rm -f file-list-debug.tmp
+mv file-list.tmp file-list-debug
+
+#
+# Clean commands
+#
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+#
+# File list (generated by install)
+#
+%files -f file-list-debug
--- /dev/null
+#
+# Setup sources
+#
+%prep
+%setup -n %{gs_name}-%{gs_version}
+
+#
+# Build commands
+#
+%build
+if [ -z "$GNUSTEP_SYSTEM_ROOT" ]; then
+ . %{gs_root}/Library/Makefiles/GNUstep.sh
+fi
+if [ "%{gs_configure}" = "YES" ]; then
+ CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{gs_root}
+fi
+make
+
+#
+# Install commands (generate file list too)
+#
+%install
+if [ -z "$GNUSTEP_SYSTEM_ROOT" ]; then
+ . %{gs_root}/Library/Makefiles/GNUstep.sh
+fi
+
+make INSTALL_ROOT_DIR=$RPM_BUILD_ROOT \
+ GNUSTEP_INSTALLATION_DIR=$RPM_BUILD_ROOT%{gs_install_dir} \
+ filelist=yes install
+
+#
+# Clean commands
+#
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+#
+# File list (generated by install)
+#
+%files -f file-list
--- /dev/null
+#!/bin/sh
+# strip_makefiles.sh
+#
+# Copyright (C) 2003 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <n.pero@mi.flashnet.it>
+# Date: October 2003
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# This script "strips" the makefiles and shell scripts.
+
+# By "stripping" a makefile we mean removing all comments, and all
+# empty lines. This reduces considerably the size of makefiles and
+# the amount of data that each make invocation has to read; the
+# makefiles execute slightly faster. You shouldn't over-estimate the
+# performance issue though - stripped makefiles execute only 5% faster
+# on my machine.
+
+# The disadvantage of stripped makefiles is that we remove comments
+# and makefiles become almost unreadable.
+
+for makefile in *.make Master/*.make Instance/*.make Instance/Shared/*.make Instance/Documentation/*.make; do
+ sed -e '/^ *#/d' -e '/^$/d' ${makefile} > ${makefile}.stripped;
+ mv ${makefile}.stripped ${makefile};
+done
+
+for shell_script in *.sh *.csh; do
+ sed -e '/^ *#/d' -e '/^$/d' ${shell_script} > ${shell_script}.stripped;
+ mv ${shell_script}.stripped ${shell_script};
+ chmod 755 ${shell_script};
+done
+
--- /dev/null
+#
+# subproject.make
+#
+# Makefile rules to build GNUstep-based subprojects (which is not the
+# same thing as aggregate projects!).
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/subproject.make
+else
+
+ifeq ($(GNUSTEP_TYPE),subproject)
+include $(GNUSTEP_MAKEFILES)/Instance/subproject.make
+endif
+
+endif
--- /dev/null
+CVS
+.svn
\ No newline at end of file
--- /dev/null
+#
+# target.make
+#
+# Determine target specific settings
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# This file should not contain any conditional based on the value of
+# the 'shared' variable, because we have not set it up yet when this
+# file is processed!
+
+#
+# Host and target specific settings
+#
+ifeq ($(findstring solaris, $(GNUSTEP_TARGET_OS)), solaris)
+X_INCLUDES := $(X_INCLUDES)/X11
+endif
+
+#
+# Target specific libraries
+#
+TARGET_SYSTEM_LIBS = $(CONFIG_SYSTEM_LIBS) -lm
+ifneq ("$(objc_threaded)","")
+ INTERNAL_CFLAGS = -D_REENTRANT
+ INTERNAL_OBJCFLAGS = -D_REENTRANT
+ AUXILIARY_OBJC_LIBS += $(objc_threaded)
+ifeq ($(shared), no)
+ TARGET_SYSTEM_LIBS += $(objc_threaded)
+endif
+endif
+
+ifeq ($(findstring mingw32, $(GNUSTEP_TARGET_OS)), mingw32)
+ TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) \
+ -lws2_32 -ladvapi32 -lcomctl32 -luser32 -lcomdlg32 \
+ -lmpr -lnetapi32 -lm -I. # the -I is a dummy to avoid -lm^M
+endif
+ifeq ($(findstring cygwin, $(GNUSTEP_TARGET_OS)), cygwin)
+ TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) -lm -I.
+endif
+ifeq ($(findstring solaris, $(GNUSTEP_TARGET_OS)), solaris)
+ TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) -lsocket -lnsl -lm
+endif
+ifeq ($(findstring sysv4.2, $(GNUSTEP_TARGET_OS)), sysv4.2)
+ TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) -lsocket -lnsl -lm
+endif
+
+#
+# Specific settings for building shared libraries, static libraries,
+# and bundles on various systems
+#
+
+#
+# For each target, a few target-specific variables need to be set.
+#
+# The first one is SHARED_LIB_LINK_CMD - which should be set to the
+# command(s) to use to link a shared library on that platform. Please
+# note that the variables (stuff like $(CC)) in it are not expanded
+# until SHARED_LIB_LINK_CMD is actually used (STATIC_LIB_LINK_CMD is
+# the equivalent variable, used for static libraries).
+#
+# SHARED_LIB_LINK_CMD will be used to link standard shared libraries,
+# and frameworks. It should use the following variables (which are set
+# by library.make or framework.make before executing
+# SHARED_LIB_LINK_CMD) to refer to what it needs to link (please note
+# that STATIC_LIB_LINK_CMD will also use these variables with similar
+# meanings; but not all of them, as noted):
+#
+# LIB_LINK_OBJ_DIR: where the newly created library should be.
+# Usually GNUSTEP_OBJ_DIR for libraries, and FRAMEWORK_LIBRARY_DIR_NAME
+# for frameworks.
+# LIB_LINK_VERSION_FILE: the final file to create, having full
+# version information: typically `libgnustep-base.so.1.5.3' for shared
+# libraries, and `libgnustep-base.a' for static libraries.
+# LIB_LINK_SONAME_FILE: this is only used for shared libraries; it
+# should be passed in the -Wl,-soname argument of most linkers when
+# building the LIB_LINK_VERSION_FILE. Typically `libgnustep-base.so.1'
+# (but might also be `libgnustep-base.so.1.0' if INTERFACE_VERSION
+# has been manually changed when using library.make). On many
+# platforms, it's appropriate/standard to also create this file as
+# a symlink to LIB_LINK_VERSION_FILE. If LIB_LINK_VERSION_FILE is
+# the same as LIB_LINK_SONAME_FILE, then the symlink should not be
+# created.
+# LIB_LINK_FILE: this is only used for shared libraries; it should
+# be created as a symlink to LIB_LINK_VERSION_FILE (or to
+# LIB_LINK_SONAME_FILE if it's created on that platform).
+# Typically `libgnustep-base.so'.
+# LIB_LINK_INSTALL_NAME: on some platforms, when a shared library is
+# linked, a default install name of the library is hardcoded into
+# the library. This is that name.
+#
+# AFTER_INSTALL_SHARED_LIB_CMD provides commands to be executed after
+# installation (at least for libraries, not for frameworks at the
+# moment), and is supposed to setup symlinks properly in the
+# installation directory. It uses the same variables, except for
+# LIB_LINK_INSTALL_DIR which is the full final path to where the
+# library (and symlinks) is going to be installed.
+#
+# AFTER_INSTALL_STATIC_LIB_CMD is similar.
+#
+
+# For frameworks on unusual platforms, you might also need to set
+# EXTRACT_CLASS_NAMES_COMMAND. This should be a command which is
+# evaluated on $(object_file) and returns a list of classes
+# implemented in the object_file. Our default command is the
+# following (you can override it with another one in your target's
+# section if you need), which runs 'nm' on the object file, and
+# retrieve all symbols of the form __objc_class_name_NSObject which
+# are not 'U' (undefined) ... an __objc_class_name_NSObject is defined
+# in the module implementing the class, and referenced by all other
+# modules needing to use the class. So if we have an
+# __objc_class_name_XXX which is not 'U' (which would be a reference
+# to a class implemented elsewhere), it must be a class implemented in
+# this module.
+#
+# The 'sed' command parses a set of lines, and extracts lines starting
+# with __objc_class_name_XXXX Y, where XXXX is a string of characters
+# from A-Za-z_. and Y is not 'U'. It then replaces the whole line
+# with XXXX, and prints the result. '-n' disables automatic printing
+# for portability, so we are sure we only print what we want on all
+# platforms.
+EXTRACT_CLASS_NAMES_COMMAND = nm -Pg $$object_file | sed -n -e '/^__objc_class_name_[A-Za-z_.]* [^U]/ {s/^__objc_class_name_\([A-Za-z_.]*\) [^U].*/\1/p;}'
+
+#
+# This is the generic version - if the target is not in the following list,
+# this setup will be used. It the target does not override variables here
+# with its own version, these generic definitions will be used.
+#
+HAVE_SHARED_LIBS = no
+STATIC_LIB_LINK_CMD = \
+ $(AR) $(ARFLAGS) $(AROUT)$(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE) $^;\
+ $(RANLIB) $(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE)
+AFTER_INSTALL_STATIC_LIB_CMD = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ $(RANLIB) $(LIB_LINK_VERSION_FILE))
+SHARED_LIB_LINK_CMD =
+SHARED_CFLAGS =
+SHARED_LIBEXT =
+AFTER_INSTALL_SHARED_LIB_CMD = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+AFTER_INSTALL_SHARED_LIB_CHOWN = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ chown $(CHOWN_TO) $(LIB_LINK_FILE))
+HAVE_BUNDLES = no
+
+####################################################
+#
+# Start of system specific settings
+#
+####################################################
+
+####################################################
+#
+# MacOSX-Server 1.0
+#
+ifeq ($(findstring rhapsody5, $(GNUSTEP_TARGET_OS)), rhapsody5)
+ifeq ($(OBJC_RUNTIME_LIB), apple)
+HAVE_BUNDLES = yes
+endif
+
+HAVE_SHARED_LIBS = yes
+SHARED_LIBEXT = .dylib
+
+ifeq ($(FOUNDATION_LIB), apple)
+ # Use the NeXT compiler
+ CC = cc
+ OBJC_COMPILER = NeXT
+ ifneq ($(arch),)
+ ARCH_FLAGS = $(foreach a, $(arch), -arch $(a))
+ INTERNAL_OBJCFLAGS += $(ARCH_FLAGS)
+ INTERNAL_CFLAGS += $(ARCH_FLAGS)
+ INTERNAL_LDFLAGS += $(ARCH_FLAGS)
+ endif
+endif
+
+TARGET_LIB_DIR = \
+ Library/Libraries/$(GNUSTEP_TARGET_LDIR)
+
+ifneq ($(OBJC_COMPILER), NeXT)
+SHARED_LIB_LINK_CMD = \
+ $(CC) $(SHARED_LD_PREFLAGS) \
+ -dynamiclib $(ARCH_FLAGS) -dynamic \
+ -compatibility_version 1 -current_version 1 \
+ -install_name $(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIB_LINK_FILE) \
+ $(ALL_LDFLAGS) -o $@ \
+ -framework Foundation \
+ -framework System \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
+ -lobjc -lgcc $^ $(SHARED_LD_POSTFLAGS); \
+ (cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+else # OBJC_COMPILER=NeXT
+SHARED_LIB_LINK_CMD = \
+ $(CC) $(SHARED_LD_PREFLAGS) \
+ -dynamiclib $(ARCH_FLAGS) -dynamic \
+ -compatibility_version 1 -current_version 1 \
+ -read_only_relocs warning -undefined warning \
+ -install_name $(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIB_LINK_FILE) \
+ $(ALL_LDFLAGS) -o $@ \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
+ -framework Foundation \
+ $^ $(SHARED_LD_POSTFLAGS); \
+ (cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+endif # OBJC_COMPILER
+
+OBJ_MERGE_CMD = \
+ $(CC) -nostdlib -r -d $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
+
+STATIC_LIB_LINK_CMD = \
+ /usr/bin/libtool $(STATIC_LD_PREFLAGS) -static $(ARCH_FLAGS) $(ALL_LDFLAGS) -o $@ $^ \
+ $(STATIC_LD_POSTFLAGS)
+
+# This doesn't work with 4.1, what about others?
+#ADDITIONAL_LDFLAGS += -Wl,-read_only_relocs,suppress
+
+AFTER_INSTALL_STATIC_LIB_CMD =
+
+SHARED_CFLAGS += -dynamic
+SHARED_LIBEXT = .dylib
+
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -bundle -undefined suppress $(ARCH_FLAGS)
+endif
+#
+# end MacOSX-Server 1.0
+#
+####################################################
+
+####################################################
+#
+# MacOSX 10.[12], darwin[567]
+#
+ifeq ($(findstring darwin, $(GNUSTEP_TARGET_OS)), darwin)
+ifeq ($(OBJC_RUNTIME_LIB), apple)
+ HAVE_BUNDLES = yes
+ # Set flags to ignore the MacOSX headers
+ ifneq ($(FOUNDATION_LIB), apple)
+ INTERNAL_OBJCFLAGS += -no-cpp-precomp -nostdinc -I/usr/include
+ endif
+endif
+
+HAVE_SHARED_LIBS = yes
+SHARED_LIBEXT = .dylib
+
+# The output of nm is slightly different on Darwin, it doesn't support -P
+EXTRACT_CLASS_NAMES_COMMAND = nm -g $$object_file | sed -n -e '/[^U] ___objc_class_name_/ {s/[0-9a-f]* [^U] ___objc_class_name_//p;}'
+
+ifeq ($(FOUNDATION_LIB), apple)
+ ifneq ($(arch),)
+ ARCH_FLAGS = $(foreach a, $(arch), -arch $(a))
+ INTERNAL_OBJCFLAGS += $(ARCH_FLAGS)
+ INTERNAL_CFLAGS += $(ARCH_FLAGS)
+ INTERNAL_LDFLAGS += $(ARCH_FLAGS)
+ endif
+endif
+
+# The developer should set this explicitly
+#DYLIB_COMPATIBILITY_VERSION = -compatibility_version $(VERSION)
+DYLIB_CURRENT_VERSION = -current_version $(VERSION)
+
+# Remove empty dirs from the compiler/linker flags (ie, remove -Idir and
+# -Ldir flags where dir is empty).
+REMOVE_EMPTY_DIRS = yes
+
+ifeq ($(FOUNDATION_LIB), apple)
+DYLIB_DEF_FRAMEWORKS += -framework Foundation
+endif
+
+
+ifeq ($(CC_BUNDLE), no)
+# GNU compiler
+SHARED_LD_PREFLAGS += -noall_load -read_only_relocs warning \
+ -flat_namespace -undefined warning
+# Useful flag: -Wl,-single_module. This flag only
+# works starting with 10.3. libs w/ffcall don't link on darwin/ix86 without it.
+ifeq ($(findstring darwin7, $(GNUSTEP_TARGET_OS)), darwin7)
+ SHARED_LD_PREFLAGS += -single_module
+endif
+SHARED_LIB_LINK_CMD = \
+ /usr/bin/libtool \
+ $(SHARED_LD_PREFLAGS) \
+ $(ARCH_FLAGS) -dynamic \
+ $(DYLIB_COMPATIBILITY_VERSION) \
+ $(DYLIB_CURRENT_VERSION) \
+ -install_name $(LIB_LINK_INSTALL_NAME) \
+ $(ALL_LDFLAGS) -o $@ \
+ $(DYLIB_DEF_FRAMEWORKS) \
+ $^ $(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
+ $(SHARED_LD_POSTFLAGS); \
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+
+BUNDLE_LD = /usr/bin/ld
+BUNDLE_LDFLAGS += -bundle -flat_namespace -undefined suppress /usr/lib/bundle1.o
+
+else
+# Apple Compiler
+
+#DYLIB_EXTRA_FLAGS = -read_only_relocs warning -undefined warning -fno-common
+DYLIB_EXTRA_FLAGS = -flat_namespace -undefined warning
+# Useful optimization flag: -Wl,-single_module. This flag only
+# works starting with 10.3.
+ifeq ($(findstring darwin7, $(GNUSTEP_TARGET_OS)), darwin7)
+ DYLIB_EXTRA_FLAGS += -Wl,-single_module
+endif
+
+SHARED_LIB_LINK_CMD = \
+ $(CC) $(SHARED_LD_PREFLAGS) \
+ -dynamiclib $(ARCH_FLAGS) \
+ $(DYLIB_COMPATIBILITY_VERSION) \
+ $(DYLIB_CURRENT_VERSION) \
+ -install_name $(LIB_LINK_INSTALL_NAME) \
+ $(DYLIB_EXTRA_FLAGS) \
+ $(ALL_LDFLAGS) -o $@ \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
+ $^ $(SHARED_LD_POSTFLAGS); \
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+
+SHARED_CFLAGS += -dynamic
+
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -bundle -undefined error $(ARCH_FLAGS)
+
+endif # CC_TYPE
+
+AFTER_INSTALL_SHARED_LIB_CMD = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE) )
+
+OBJ_MERGE_CMD = \
+ $(CC) -nostdlib -r -d $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
+
+STATIC_LIB_LINK_CMD = \
+ /usr/bin/libtool $(STATIC_LD_PREFLAGS) -static $(ARCH_FLAGS) $(ALL_LDFLAGS) -o $@ $^ \
+ $(STATIC_LD_POSTFLAGS)
+
+AFTER_INSTALL_STATIC_LIB_CMD = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ $(RANLIB) $(LIB_LINK_VERSION_FILE))
+
+SHARED_CFLAGS += -fno-common
+
+endif
+#
+# end MacOSX 10.2, darwin6
+#
+####################################################
+
+####################################################
+#
+# OpenStep 4.x
+#
+ifeq ($(GNUSTEP_TARGET_OS), nextstep4)
+ifeq ($(OBJC_RUNTIME_LIB), nx)
+ HAVE_BUNDLES = yes
+ OBJC_COMPILER = NeXT
+endif
+
+HAVE_SHARED_LIBS = yes
+
+ifeq ($(FOUNDATION_LIB), nx)
+ # Use the NeXT compiler
+ CC = cc
+ ifneq ($(arch),)
+ ARCH_FLAGS = $(foreach a, $(arch), -arch $(a))
+ INTERNAL_OBJCFLAGS += $(ARCH_FLAGS)
+ INTERNAL_CFLAGS += $(ARCH_FLAGS)
+ INTERNAL_LDFLAGS += $(ARCH_FLAGS)
+ endif
+endif
+
+TARGET_LIB_DIR = \
+ Library/Libraries/$(GNUSTEP_TARGET_LDIR)
+
+ifneq ($(OBJC_COMPILER), NeXT)
+SHARED_LIB_LINK_CMD = \
+ /bin/libtool $(SHARED_LD_PREFLAGS) \
+ -dynamic -read_only_relocs suppress $(ARCH_FLAGS) \
+ -install_name $(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIB_LINK_FILE) \
+ $(ALL_LDFLAGS) -o $@ \
+ -framework System \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
+ -lobjc -lgcc $^ $(SHARED_LD_POSTFLAGS); \
+ (cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+else
+SHARED_LIB_LINK_CMD = \
+ /bin/libtool $(SHARED_LD_PREFLAGS) \
+ -dynamic -read_only_relocs suppress $(ARCH_FLAGS) \
+ -install_name $(GNUSTEP_SYSTEM_ROOT)/$(TARGET_LIB_DIR)/$(LIB_LINK_FILE) \
+ $(ALL_LDFLAGS) $@ \
+ -framework System \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) \
+ $(LIBRARIES_FOUNDATION_DEPEND_UPON) $^ \
+ $(SHARED_LD_POSTFLAGS); \
+ (cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+endif
+
+STATIC_LIB_LINK_CMD = \
+ /bin/libtool $(STATIC_LD_PREFLAGS) -static $(ARCH_FLAGS) $(ALL_LDFLAGS) -o $@ $^ \
+ $(STATIC_LD_POSTFLAGS)
+
+# This doesn't work with 4.1, what about others?
+#ADDITIONAL_LDFLAGS += -Wl,-read_only_relocs,suppress
+
+AFTER_INSTALL_STATIC_LIB_CMD =
+
+SHARED_CFLAGS += -dynamic
+SHARED_LIBEXT = .a
+
+BUNDLE_LD = ld
+BUNDLE_LDFLAGS += -r $(ARCH_FLAGS)
+endif
+#
+# end OpenStep 4.x
+#
+####################################################
+
+####################################################
+#
+# NEXTSTEP 3.x
+#
+ifeq ($(GNUSTEP_TARGET_OS), nextstep3)
+ifeq ($(OBJC_RUNTIME_LIB), nx)
+ HAVE_BUNDLES = yes
+ OBJC_COMPILER = NeXT
+endif
+
+HAVE_SHARED_LIBS = yes
+
+ifeq ($(FOUNDATION_LIB), nx)
+ # Use the NeXT compiler
+ CC = cc
+ ifneq ($(arch),)
+ ARCH_FLAGS = $(foreach a, $(arch), -arch $(a))
+ INTERNAL_OBJCFLAGS += $(ARCH_FLAGS)
+ INTERNAL_CFLAGS += $(ARCH_FLAGS)
+ INTERNAL_LDFLAGS += $(ARCH_FLAGS)
+ endif
+endif
+
+TARGET_LIB_DIR = \
+ Library/Libraries/$(GNUSTEP_TARGET_LDIR)
+
+ifneq ($(OBJC_COMPILER), NeXT)
+SHARED_LIB_LINK_CMD = \
+ /bin/libtool $(SHARED_LD_PREFLAGS) -dynamic -read_only_relocs suppress \
+ $(ARCH_FLAGS) $(ALL_LDFLAGS) -o $@ -framework System \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) -lobjc -lgcc -undefined warning $^ \
+ $(SHARED_LD_POSTFLAGS); \
+ (cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+else
+SHARED_LIB_LINK_CMD = \
+ /bin/libtool $(SHARED_LD_PREFLAGS) \
+ -dynamic -read_only_relocs suppress $(ARCH_FLAGS) $(ALL_LDFLAGS) -o $@ \
+ -framework System \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) $^ \
+ $(SHARED_LD_POSTFLAGS); \
+ (cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+endif
+
+STATIC_LIB_LINK_CMD = \
+ /bin/libtool $(STATIC_LD_PREFLAGS) \
+ -static $(ARCH_FLAGS) $(ALL_LDFLAGS) -o $@ $^ $(STATIC_LD_POSTFLAGS)
+
+ADDITIONAL_LDFLAGS += -Wl,-read_only_relocs,suppress
+
+AFTER_INSTALL_STATIC_LIB_CMD =
+
+SHARED_CFLAGS += -dynamic
+SHARED_LIBEXT = .a
+
+BUNDLE_LD = ld
+BUNDLE_LDFLAGS += -r $(ARCH_FLAGS)
+endif
+#
+# end NEXTSTEP 3.x
+#
+####################################################
+
+####################################################
+#
+# Linux ELF or GNU/Hurd
+#
+# The following ifeq matches both 'linux-gnu' (which is GNU/Linux ELF)
+# and 'gnu0.3' (I've been told GNUSTEP_TARGET_OS is 'gnu0.3' on
+# GNU/Hurd at the moment). We want the same code in both cases.
+ifeq ($(findstring gnu, $(GNUSTEP_TARGET_OS)), gnu)
+HAVE_SHARED_LIBS = yes
+SHARED_LIB_LINK_CMD = \
+ $(CC) $(SHARED_LD_PREFLAGS) -shared -Wl,-soname,$(LIB_LINK_SONAME_FILE) \
+ $(ALL_LDFLAGS) -o $(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE) $^ \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) \
+ $(SHARED_LD_POSTFLAGS);\
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
+ )
+AFTER_INSTALL_SHARED_LIB_CMD = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
+ )
+AFTER_INSTALL_SHARED_LIB_CHOWN = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ chown $(CHOWN_TO) $(LIB_LINK_SONAME_FILE); \
+ chown $(CHOWN_TO) $(LIB_LINK_FILE))
+
+OBJ_MERGE_CMD = \
+ $(CC) -nostdlib -r $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
+
+SHARED_CFLAGS += -fPIC
+SHARED_LIBEXT = .so
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -shared
+ADDITIONAL_LDFLAGS += -rdynamic
+STATIC_LDFLAGS += -static
+
+endif
+#
+# end Linux ELF
+#
+####################################################
+
+####################################################
+#
+# FreeBSD a.out (2.2.x)
+#
+ifeq ($(findstring freebsdaout, $(GNUSTEP_TARGET_OS)), freebsdaout)
+freebsdaout = yes
+
+HAVE_SHARED_LIBS = no
+SHARED_LIB_LINK_CMD = \
+ $(CC) -shared -Wl,-soname,$(LIB_LINK_VERSION_FILE) \
+ $(ALL_LDFLAGS) -o $(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE) $^ /usr/lib/c++rt0.o;\
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+
+SHARED_CFLAGS += -fPIC
+SHARED_LIBEXT = .so
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -shared
+ADDITIONAL_LDFLAGS += -rdynamic
+STATIC_LDFLAGS += -static
+endif
+#
+# end FreeBSD A.out
+#
+####################################################
+
+####################################################
+#
+# FreeBSD ELF
+#
+ifeq ($(findstring freebsd, $(GNUSTEP_TARGET_OS)), freebsd)
+ifneq ($(freebsdaout), yes)
+HAVE_SHARED_LIBS = yes
+SHARED_LIB_LINK_CMD = \
+ $(CC) -shared -Wl,-soname,$(LIB_LINK_SONAME_FILE) \
+ $(ALL_LDFLAGS) -o $(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE) $^ \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) \
+ $(SHARED_LD_POSTFLAGS);\
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE))
+AFTER_INSTALL_SHARED_LIB_CMD = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
+ )
+AFTER_INSTALL_SHARED_LIB_CHOWN = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ chown $(CHOWN_TO) $(LIB_LINK_SONAME_FILE); \
+ chown $(CHOWN_TO) $(LIB_LINK_FILE))
+OBJ_MERGE_CMD = \
+ $(CC) -nostdlib -r $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
+
+SHARED_CFLAGS += -fPIC
+SHARED_LIBEXT = .so
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -shared
+ADDITIONAL_LDFLAGS += -rdynamic
+STATIC_LDFLAGS += -static
+endif
+endif
+#
+# end FreeBSD
+#
+####################################################
+
+####################################################
+#
+# NetBSD
+#
+ifeq ($(findstring netbsd, $(GNUSTEP_TARGET_OS)), netbsd)
+# This is disabled temporarily, because I don't know exactly how
+# to link shared libs. Everything seems to link correctly now but
+# constructor functions in the shared lib failed to get called
+# when the lib is loaded in. I don't know why. ASF.
+HAVE_SHARED_LIBS = no
+SHARED_LD = ld
+SHARED_LIB_LINK_CMD = \
+ $(SHARED_LD) -x -Bshareable -Bforcearchive \
+ $(ALL_LDFLAGS) -o $(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE) $^ /usr/lib/c++rt0.o;\
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+
+SHARED_CFLAGS += -shared -fpic
+SHARED_LIBEXT = .so
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -shared -fpic
+#ADDITIONAL_LDFLAGS += -rdynamic
+STATIC_LDFLAGS += -static
+endif
+#
+# end NetBSD
+#
+####################################################
+
+####################################################
+#
+# NetBSD ELF
+#
+ifeq ($(findstring netbsdelf, $(GNUSTEP_TARGET_OS)), netbsdelf)
+HAVE_SHARED_LIBS = yes
+SHARED_LD_POSTFLAGS = -Wl,-R/usr/pkg/lib -L/usr/pkg/lib
+SHARED_LIB_LINK_CMD = \
+ $(CC) -shared -Wl,-soname,$(LIB_LINK_VERSION_FILE) \
+ $(ALL_LDFLAGS) -o $(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE) \
+ $^ $(INTERNAL_LIBRARIES_DEPEND_UPON) \
+ $(SHARED_LD_POSTFLAGS); \
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+OBJ_MERGE_CMD = \
+ $(CC) -nostdlib -r $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
+
+SHARED_CFLAGS += -fPIC
+SHARED_LIBEXT = .so
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -shared
+ADDITIONAL_LDFLAGS += -rdynamic -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -Wl,-R/usr/X11R6/lib -L/usr/X11R6/lib
+ADDITIONAL_INCLUDE_DIRS += -I/usr/pkg/include
+STATIC_LDFLAGS += -static
+endif
+#
+# end NetBSD
+#
+####################################################
+
+####################################################
+#
+# OpenBSD 3.x (though set for 3.3)
+#
+ifeq ($(findstring openbsd, $(GNUSTEP_TARGET_OS)), openbsd)
+# This is disabled temporarily, because I don't know exactly how
+# to link shared libs. Everything seems to link correctly now but
+# constructor functions in the shared lib failed to get called
+# when the lib is loaded in. I don't know why. ASF.
+HAVE_SHARED_LIBS = yes
+SHARED_LIB_LINK_CMD = \
+ $(CC) -shared -Wl,-soname,$(LIB_LINK_SONAME_FILE) \
+ $(ALL_LDFLAGS) -o $(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE) $^ \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) \
+ $(SHARED_LD_POSTFLAGS);\
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE))
+AFTER_INSTALL_SHARED_LIB_CMD = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
+ )
+
+OBJ_MERGE_CMD = \
+ $(CC) -nostdlib -r $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
+
+SHARED_CFLAGS += -fPIC
+SHARED_LIBEXT = .so
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -shared -fPIC
+#ADDITIONAL_LDFLAGS += -rdynamic
+STATIC_LDFLAGS += -static
+endif
+#
+# end OpenBSD 3.x
+#
+####################################################
+
+####################################################
+#
+# OSF
+#
+ifeq ($(findstring osf, $(GNUSTEP_TARGET_OS)), osf)
+HAVE_SHARED_LIBS = yes
+SHARED_LIB_LINK_CMD = \
+ $(CC) -shared -Wl,-soname,$(LIB_LINK_VERSION_FILE) \
+ $(ALL_LDFLAGS) -o $(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE) $^ ;\
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+OBJ_MERGE_CMD = \
+ $(CC) -nostdlib -r $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
+
+SHARED_CFLAGS += -fPIC
+SHARED_LIBEXT = .so
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -shared
+ADDITIONAL_LDFLAGS += -rdynamic
+STATIC_LDFLAGS += -static
+# Newer gcc's don't define this in Objective-C programs:
+AUXILIARY_CPPFLAGS += -D__LANGUAGES_C__
+endif
+#
+# end OSF
+#
+####################################################
+
+####################################################
+#
+# IRIX
+#
+ifeq ($(findstring irix, $(GNUSTEP_TARGET_OS)), irix)
+HAVE_SHARED_LIBS = yes
+
+SHARED_LIB_LINK_CMD = \
+ $(CC) $(SHARED_LD_PREFLAGS) -shared -Wl,-soname,$(LIB_LINK_SONAME_FILE) \
+ $(ALL_LDFLAGS) -o $(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE) $^ \
+ -Wl,-rpath,$(LIB_LINK_INSTALL_DIR) \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) \
+ $(SHARED_LD_POSTFLAGS);\
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
+ )
+AFTER_INSTALL_SHARED_LIB_CMD = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
+ )
+AFTER_INSTALL_SHARED_LIB_CHOWN = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ chown $(CHOWN_TO) $(LIB_LINK_SONAME_FILE); \
+ chown $(CHOWN_TO) $(LIB_LINK_FILE))
+
+SHARED_CFLAGS += -fPIC
+SHARED_LIBEXT = .so
+
+OBJ_MERGE_CMD = \
+ /usr/bin/ld -r $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
+
+ADDITIONAL_LDFLAGS +=
+STATIC_LDFLAGS +=
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -shared
+endif
+
+# end IRIX
+#
+####################################################
+
+####################################################
+#
+# Mingw32
+#
+ifeq ($(findstring mingw32, $(GNUSTEP_TARGET_OS)), mingw32)
+shared = yes
+HAVE_SHARED_LIBS = yes
+BUILD_DLL = yes
+WITH_DLL = yes
+SHARED_LIBEXT = .a
+DLL_LIBEXT = .dll
+DLLTOOL = dlltool
+DLLWRAP = dllwrap
+#SHARED_CFLAGS +=
+
+OBJ_MERGE_CMD = \
+ $(CC) -nostdlib -r $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -nodefaultlibs -Xlinker -r
+endif
+
+# end Mingw32
+#
+####################################################
+
+####################################################
+#
+# Cygwin
+#
+ifeq ($(findstring cygwin, $(GNUSTEP_TARGET_OS)), cygwin)
+shared = yes
+HAVE_SHARED_LIBS = yes
+BUILD_DLL = yes
+WITH_DLL = yes
+SHARED_LIBEXT = .a
+DLL_LIBEXT = .dll
+DLLTOOL = dlltool
+DLLWRAP = dllwrap
+#SHARED_CFLAGS +=
+
+OBJ_MERGE_CMD = \
+ $(CC) -nostdlib -r $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -nodefaultlibs -Xlinker -r
+endif
+
+# end Cygwin
+#
+####################################################
+
+
+####################################################
+#
+# Solaris
+#
+ifeq ($(findstring solaris, $(GNUSTEP_TARGET_OS)), solaris)
+HAVE_SHARED_LIBS = yes
+SHARED_LIB_LINK_CMD = \
+ $(CC) $(SHARED_LD_PREFLAGS) -G -Wl,-h,$(LIB_LINK_SONAME_FILE) \
+ $(ALL_LDFLAGS) -o $(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE) $^ \
+ $(INTERNAL_LIBRARIES_DEPEND_UPON) \
+ $(SHARED_LD_POSTFLAGS);\
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
+ )
+AFTER_INSTALL_SHARED_LIB_CMD = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
+ rm -f $(LIB_LINK_SONAME_FILE);\
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
+ fi; \
+ $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
+ )
+AFTER_INSTALL_SHARED_LIB_CHOWN = \
+ (cd $(LIB_LINK_INSTALL_DIR); \
+ chown $(CHOWN_TO) $(LIB_LINK_SONAME_FILE); \
+ chown $(CHOWN_TO) $(LIB_LINK_FILE))
+
+OBJ_MERGE_CMD = \
+ $(CC) -nostdlib -r $(ALL_LDFLAGS) -o $(GNUSTEP_OBJ_DIR)/$(SUBPROJECT_PRODUCT) $^ ;
+
+SHARED_CFLAGS += -fpic -fPIC
+SHARED_LIBEXT = .so
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS = -shared -mimpure-text
+#BUNDLE_LDFLAGS = -nodefaultlibs -Xlinker -r
+endif
+
+# end Solaris
+#
+####################################################
+
+
+####################################################
+#
+# Unixware
+#
+ifeq ($(findstring sysv4.2, $(GNUSTEP_TARGET_OS)), sysv4.2)
+HAVE_SHARED_LIBS = yes
+SHARED_LIB_LINK_CMD = \
+ $(CC) $(SHARED_LD_PREFLAGS) -shared $(ALL_LDFLAGS) -o $(LIB_LINK_VERSION_FILE) $^ \
+ $(SHARED_LD_POSTFLAGS);\
+ mv $(LIB_LINK_VERSION_FILE) $(LIB_LINK_OBJ_DIR);\
+ (cd $(LIB_LINK_OBJ_DIR); \
+ rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+
+SHARED_CFLAGS += -fpic -fPIC
+SHARED_LIBEXT = .so
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+#BUNDLE_LDFLAGS += -shared -mimpure-text
+BUNDLE_LDFLAGS += -nodefaultlibs -Xlinker -r
+endif
+
+# end Unixware
+#
+####################################################
+
+
+####################################################
+#
+# HP-UX
+#
+ifeq ($(findstring hpux, $(GNUSTEP_TARGET_OS)), hpux)
+HAVE_SHARED_LIBS = yes
+SHARED_LIB_LINK_CMD = \
+ (cd $(LIB_LINK_OBJ_DIR); \
+ $(CC) $(SHARED_LD_PREFLAGS) \
+ -v $(SHARED_CFLAGS) -shared \
+ $(ALL_LDFLAGS) -o $(LIB_LINK_VERSION_FILE) `ls -1 *\.o */*\.o` \
+ $(SHARED_LD_POSTFLAGS) ;\
+ rm -f $(LIB_LINK_FILE); \
+ $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
+
+ifeq ($(CC), cc)
+SHARED_CFLAGS += +z
+else
+SHARED_CFLAGS += -fPIC
+endif
+
+ifeq ($(GNUSTEP_HOST_CPU), ia64)
+SHARED_LIBEXT = .so
+else
+SHARED_LIBEXT = .sl
+endif
+
+HAVE_BUNDLES = yes
+BUNDLE_LD = $(CC)
+BUNDLE_LDFLAGS += -nodefaultlibs -Xlinker -r
+ADDITIONAL_LDFLAGS += -Xlinker +s
+STATIC_LDFLAGS += -static
+endif
+
+# end HP-UX
+#
+####################################################
--- /dev/null
+#
+# test-application.make
+#
+# Makefile rules to build GNUstep-based test applications.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/test-application.make
+else
+
+ifeq ($(GNUSTEP_TYPE),test_app)
+include $(GNUSTEP_MAKEFILES)/Instance/test-application.make
+endif
+
+endif
--- /dev/null
+#
+# test-library.make
+#
+# Makefile rules to build GNUstep-based dejagnu testing stuff.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/test-library.make
+else
+
+ifeq ($(GNUSTEP_TYPE),test_lib)
+include $(GNUSTEP_MAKEFILES)/Instance/test-library.make
+endif
+
+endif
--- /dev/null
+#
+# test-tool.make
+#
+# Makefile rules to build GNUstep-based test tools.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/test-tool.make
+else
+
+ifeq ($(GNUSTEP_TYPE),test_tool)
+include $(GNUSTEP_MAKEFILES)/Instance/test-tool.make
+endif
+
+endif
--- /dev/null
+#
+# tool.make
+#
+# Makefile rules to build GNUstep-based command line tools.
+#
+# Copyright (C) 2002 Free Software Foundation, Inc.
+#
+# Author: Nicola Pero <nicola@brainstorm.co.uk>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ifeq ($(GNUSTEP_INSTANCE),)
+include $(GNUSTEP_MAKEFILES)/Master/tool.make
+else
+
+ifeq ($(GNUSTEP_TYPE),tool)
+include $(GNUSTEP_MAKEFILES)/Instance/tool.make
+endif
+
+endif
--- /dev/null
+#!/bin/sh
+# transform_paths.sh
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Ovidiu Predescu <ovidiu@net-community.com>
+# Date: October 1997
+# Rewritten: Nicola Pero <n.pero@mi.flashnet.it>
+# Date: March 2001
+#
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Takes a list of paths possibly containing relative paths and outputs a
+# list containing only absolute paths based upon the current directory.
+
+if [ -z "$*" ]; then
+ exit 0
+fi
+
+curdir="`pwd`"
+
+for dir in $@; do
+ if [ -d "$curdir/$dir" ]; then
+ echo "$curdir/$dir"
+ else
+ echo "$dir"
+ fi
+done
--- /dev/null
+/*
+ user_home.c
+ Copyright (C) 2002 Free Software Foundation, Inc.
+
+ Author: Richard Frith-Macdonald <richard@brainstorm.co.uk>
+ Date: February 2002
+
+ This file is part of the GNUstep Makefile Package.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ You should have received a copy of the GNU General Public
+ License along with this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#include "config.h"
+
+#ifdef __MINGW32__
+#ifndef __MINGW__
+#define __MINGW__
+#endif
+#ifndef __WIN32__
+#define __WIN32__
+#endif
+#endif
+
+#include <stdio.h>
+#include <ctype.h>
+
+#if defined(__MINGW__)
+# include <windows.h>
+#endif
+
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
+#if HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#if HAVE_STRING_H
+# include <string.h>
+#endif
+
+#if HAVE_PWD_H
+# include <pwd.h>
+#endif
+
+#define lowlevelstringify(X) #X
+#define stringify(X) lowlevelstringify(X)
+
+#define SEP "/"
+
+/*
+ * This tool is intended to produce a definitive form of the
+ * user specific root directories for a GNUstep user. It must
+ * remain consistent with the code in the GNUstep base library
+ * which provides path information for all GNUstep applications.
+ *
+ *
+ * How to run this tool ...
+ *
+ * 1. With no arguments ... the tool should print the home directory of
+ * the current user to stdout.
+ *
+ * 2. With a 'user' argument ... the tool should print the
+ * GNUSTEP_USER_ROOT directory to stdout.
+ *
+ * 3. With a 'defaults' argument ... the tool should print the
+ * GNUSTEP_DEFAULTS_ROOT directory to stdout.
+ *
+ * Any other arguments will be ignored.
+ * On success the tool will terminate with an exit status of zero
+ * On failure, the tool will terminate with an exit status of one
+ * and will print an error message to stderr.
+ */
+
+/* NOTE FOR DEVELOPERS.
+ * If you change the behavior of this method you must also change
+ * NSUser.m in the base library package to match.
+ */
+int main (int argc, char** argv)
+{
+ char buf0[1024];
+ char path[2048];
+ char home[2048];
+ char *loginName = 0;
+ enum { NONE, DEFS, USER } type = NONE;
+#if defined(__MINGW__)
+ char buf1[1024];
+ int len0;
+ int len1;
+#else
+ struct passwd *pw;
+#endif
+
+ if (argc > 1)
+ {
+ if (strcmp(argv[1], "defaults") == 0)
+ {
+ type = DEFS;
+ }
+ else if (strcmp(argv[1], "user") == 0)
+ {
+ type = USER;
+ }
+ }
+
+ if (loginName == 0)
+ {
+#if defined(__WIN32__)
+ /* The GetUserName function returns the current user name */
+ DWORD n = 1024;
+
+ len0 = GetEnvironmentVariable("LOGNAME", buf0, 1024);
+ if (len0 > 0 && len0 < 1024)
+ {
+ loginName = buf0;
+ loginName[len0] = '\0';
+ }
+ else if (GetUserName(buf0, &n))
+ {
+ loginName = buf0;
+ }
+#else
+#if HAVE_GETPWUID
+#if HAVE_GETEUID
+ int uid = geteuid();
+#else
+ int uid = getuid();
+#endif /* HAVE_GETEUID */
+ struct passwd *pwent = getpwuid (uid);
+ loginName = pwent->pw_name;
+#endif /* HAVE_GETPWUID */
+#endif
+ if (loginName == 0)
+ {
+ fprintf(stderr, "Unable to determine current user name.\n");
+ return 1;
+ }
+ }
+
+#if !defined(__MINGW__)
+ pw = getpwnam (loginName);
+ if (pw == 0)
+ {
+ fprintf(stderr, "Unable to locate home directory for '%s'\n", loginName);
+ return 1;
+ }
+ strncpy(home, pw->pw_dir, sizeof(home));
+#else
+ home[0] = '\0';
+ /*
+ * The environment variable HOMEPATH holds the home directory
+ * for the user on Windows NT; Win95 has no concept of home.
+ * For OPENSTEP compatibility (and because USERPROFILE is usually
+ * unusable because it contains spaces), we use HOMEPATH in
+ * preference to USERPROFILE.
+ */
+ len0 = GetEnvironmentVariable("HOMEPATH", buf0, 1024);
+ if (len0 > 0 && len0 < 1024)
+ {
+ buf0[len0] = '\0';
+ /*
+ * Only use HOMEDRIVE is HOMEPATH does not already contain drive.
+ */
+ if (len0 < 2 || buf0[1] != ':')
+ {
+ len1 = GetEnvironmentVariable("HOMEDRIVE", buf1, 128);
+ if (len1 > 0 && len1 < 128)
+ {
+ buf1[len1] = '\0';
+ sprintf(home, "%s%s", buf1, buf0);
+ }
+ else
+ {
+ sprintf(home, "C:%s", buf0);
+ }
+ }
+ }
+ else
+ {
+ /* The environment variable USERPROFILE may hold the home directory
+ for the user on modern versions of windoze. */
+ len0 = GetEnvironmentVariable("USERPROFILE", buf0, 1024);
+ if (len0 > 0 && len0 < 1024)
+ {
+ buf0[len0] = '\0';
+ strcpy(home, buf0);
+ }
+ }
+ if (home[0] != '\0')
+ {
+ int i;
+
+ for (i = 0; i < strlen(home); i++)
+ {
+ if (isspace((unsigned int)home[i]))
+ {
+ /*
+ * GNU make doesn't handle spaces in paths.
+ * Broken, wrong and totally unfixable.
+ */
+ fprintf(stderr, "Make cannot handle spaces in paths so the " \
+ "home directory '%s' may cause problems!\n", home);
+ break;
+ }
+ }
+ }
+#endif
+
+ if (type == NONE)
+ {
+ strcpy(path, home);
+ }
+ else
+ {
+ FILE *fptr;
+ char *user = "";
+ char *defs = "";
+ int forceD = 0;
+ int forceU = 0;
+
+#if defined (__MINGW32__)
+ len0 = GetEnvironmentVariable("GNUSTEP_SYSTEM_ROOT", buf0, sizeof(buf0));
+ if (len0 > 0)
+ {
+ strcpy(path, buf0);
+ }
+#else
+ {
+ const char *gnustep_system_root = (const char*)getenv("GNUSTEP_SYSTEM_ROOT");
+
+ if (gnustep_system_root != 0)
+ {
+ strcpy(path, gnustep_system_root);
+ }
+ else
+ {
+ /* On my machine the strcpy was segfaulting when
+ * gnustep_system_root == 0. */
+ path[0] = '\0';
+ }
+ }
+#endif
+ strcat(path, SEP);
+ strcat(path, ".GNUsteprc");
+ fptr = fopen(path, "r");
+ if (fptr != 0)
+ {
+ while (fgets(buf0, sizeof(buf0), fptr) != 0)
+ {
+ char *pos = strchr(buf0, '=');
+ char *key = buf0;
+ char *val;
+
+ if (pos != 0)
+ {
+ val = pos;
+ *val++ = '\0';
+ while (isspace((int)*key))
+ key++;
+ while (strlen(key) > 0 && isspace((int)key[strlen(key)-1]))
+ key[strlen(key)-1] = '\0';
+ while (isspace(*val))
+ val++;
+ while (strlen(val) > 0 && isspace((int)val[strlen(val)-1]))
+ val[strlen(val)-1] = '\0';
+ }
+ else
+ {
+ while (isspace((int)*key))
+ key++;
+ while (strlen(key) > 0 && isspace((int)key[strlen(key)-1]))
+ key[strlen(key)-1] = '\0';
+ val = "";
+ }
+
+ if (strcmp(key, "GNUSTEP_USER_ROOT") == 0)
+ {
+ if (*val == '~')
+ {
+ user = malloc(strlen(val) + strlen(home));
+ strcpy(user, home);
+ strcat(user, &val[1]);
+ }
+ else
+ {
+ user = malloc(strlen(val) + 1);
+ strcpy(user, val);
+ }
+ }
+ else if (strcmp(key, "GNUSTEP_DEFAULTS_ROOT") == 0)
+ {
+ if (*val == '~')
+ {
+ defs = malloc(strlen(val) + strlen(home));
+ strcpy(defs, home);
+ strcat(defs, &val[1]);
+ }
+ else
+ {
+ defs = malloc(strlen(val) + 1);
+ strcpy(defs, val);
+ }
+ }
+ else if (strcmp(key, "FORCE_USER_ROOT") == 0)
+ {
+ forceU = 1;
+ }
+ else if (strcmp(key, "FORCE_DEFAULTS_ROOT") == 0)
+ {
+ forceD = 1;
+ }
+ }
+ fclose(fptr);
+ }
+
+ if (*user == '\0' || forceU == 0 || *defs == '\0' || forceD == 0)
+ {
+ strcpy(path, home);
+ strcat(path, SEP);
+ strcat(path, ".GNUsteprc");
+ fptr = fopen(path, "r");
+ if (fptr != 0)
+ {
+ while (fgets(buf0, sizeof(buf0), fptr) != 0)
+ {
+ char *pos = strchr(buf0, '=');
+
+ if (pos != 0)
+ {
+ char *key = buf0;
+ char *val = pos;
+
+ *val++ = '\0';
+ while (isspace((int)*key))
+ key++;
+ while (strlen(key) > 0
+ && isspace((int)key[strlen(key)-1]))
+ key[strlen(key)-1] = '\0';
+ while (isspace((int)*val))
+ val++;
+ while (strlen(val) > 0
+ && isspace((int)val[strlen(val)-1]))
+ val[strlen(val)-1] = '\0';
+
+ if (strcmp(key, "GNUSTEP_USER_ROOT") == 0)
+ {
+ if (*user == '\0' || forceU == 0)
+ {
+ if (*val == '~')
+ {
+ user = malloc(strlen(val) + strlen(home));
+ strcpy(user, home);
+ strcat(user, &val[1]);
+ }
+ else
+ {
+ user = malloc(strlen(val) + 1);
+ strcpy(user, val);
+ }
+ }
+ }
+ else if (strcmp(key, "GNUSTEP_DEFAULTS_ROOT") == 0)
+ {
+ if (*defs == '\0' || forceD == 0)
+ {
+ if (*val == '~')
+ {
+ defs = malloc(strlen(val) + strlen(home));
+ strcpy(defs, home);
+ strcat(defs, &val[1]);
+ }
+ else
+ {
+ defs = malloc(strlen(val) + 1);
+ strcpy(defs, val);
+ }
+ }
+ }
+ }
+ }
+ fclose(fptr);
+ }
+ }
+
+ if (type == DEFS)
+ {
+ strcpy(path, defs);
+ if (*path == '\0')
+ {
+ strcpy(path, user);
+ }
+ }
+ else
+ {
+ strcpy(path, user);
+ }
+
+ if (*path == '\0')
+ {
+ strcpy(path, home);
+ strcat(path, SEP);
+ strcat(path, "GNUstep");
+ }
+ }
+#if defined(__MINGW__)
+ /*
+ * We always want to use unix style paths.
+ */
+ if (strlen(path) > 1 && path[1] == ':')
+ {
+ char *ptr = path;
+
+ while (*ptr != '\0')
+ {
+ if (*ptr == '\\')
+ {
+ *ptr = '/';
+ }
+ if (*ptr == '/' && ptr > path && ptr[-1] == '/')
+ {
+ memmove(ptr, &ptr[1], strlen(ptr)+1);
+ }
+ else
+ {
+ ptr++;
+ }
+ }
+ if (path[2] == '/' || path[2] == '\0')
+ {
+ path[1] = path[0];
+ }
+ else
+ {
+ memmove(&path[1], path, strlen(path)+1);
+ path[2] = '/';
+ }
+ path[0] = '/';
+ }
+#endif
+ printf("%s", path);
+ return 0;
+}
+
--- /dev/null
+#! /bin/sh
+#
+# vendor.sh
+#
+# Print out the VENDOR from a canonical name.
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+#
+# Author: Scott Christley <scottc@net-community.com>
+#
+# This file is part of the GNUstep Makefile Package.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; see the file COPYING.LIB.
+# If not, write to the Free Software Foundation,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+echo $1 | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'
--- /dev/null
+/*
+ which_lib.c
+ Copyright (C) 1997, 2001, 2002 Free Software Foundation, Inc.
+
+ Author: Nicola Pero <nicola@brainstorm.co.uk>
+ Date: January 2002
+
+ Based on the original which_lib.c by Ovidiu Predescu,
+ Author: Ovidiu Predescu <ovidiu@net-community.com>
+ Date: October 1997
+
+ This file is part of the GNUstep Makefile Package.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ You should have received a copy of the GNU General Public
+ License along with this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+/*
+
+ Command line arguments are:
+
+ * a list of library search paths in the GCC notation, as in
+ -L/usr/lib/opt/hack/
+ -L/usr/GNUstep/Local/Library/Libraries/ix86/linux-gnu/gnu-gnu-gnu
+ -L/usr/GNUstep/System/Library/Libraries/ix86/linux-gnu/gnu-gnu-gnu
+ (order is important, paths are searched in the order they are listed);
+
+ * a list of libraries in the GCC notation, as in
+ -lgnustep-base -lgnustep-gui -lobjc
+
+ * flags specifying whether a debug, profile, static/shared library is
+ to be preferred, as in
+ debug=no profile=yes shared=yes
+
+ The tool outputs the same list of library search paths and the list
+ of libraries it received in input, with an important modification:
+ each library name is modified to match the available version of the
+ library (by appending nothing for a normal library, _d for a debug
+ version of the library, _p for a profile one, _s for a static one,
+ and the various combinations, _dp, _ds, _ps, _dps) -- giving
+ preference to libraries matching the specified debug, profile,
+ shared library flags. For example, if a debug=yes profile=no
+ shared=yes is specified, and libgnustep-base_d.so is in the library
+ search path, which_lib will replace -lgnustep-base with
+ -lgnustep-base_d in the output.
+
+ Here is exactly how the search is performed:
+
+ The tool first searches into the list of directories for a library
+ exactly matching the name and the type required. If found, it's
+ used.
+
+ If none is found, the library looks for an approximate match, as
+ detailed in the following list. Each search in the following list
+ is performed on the list of directories, and uses the shared flags
+ as specified.
+
+ If (debug=yes and profile=yes), the tool looks for a debug=yes
+ profile=no, then a debug=no profile=yes.
+
+ If (debug=yes and profile=no), the tool looks for a debug=no
+ profile=no.
+
+ If (debug=no and profile=yes), the tool looks for a debug=no
+ profile=no.
+
+ If (debug=no and profile=no), the tool looks for a debug=yes
+ profile=no.
+
+ If none is still found and shared=yes, the tool looks for any
+ available shared library with that name (regardless of wheter it's
+ debug/profile/nothing).
+
+ If none is still found, the tool looks for any available static
+ library with that name (regardless of any debug/profile/shared
+ flag).
+
+ If still not found, the tool outputs the unmodified library name (as
+ in -lgnustep-base) ... perhaps the library is somewhere else in the
+ linker path ... otherwise that will normally result in a linker
+ error later on.
+
+*/
+
+#include "config.h"
+
+#include <stdio.h>
+
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
+#if HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+#if HAVE_STRING_H
+# include <string.h>
+#endif
+
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+
+#include <fcntl.h>
+
+#if HAVE_DIRENT_H
+# include <dirent.h>
+#else
+# define dirent direct
+# if HAVE_SYS_NDIR_H
+# include <sys/ndir.h>
+# endif
+# if HAVE_SYS_DIR_H
+# include <sys/dir.h>
+# endif
+# if HAVE_NDIR_H
+# include <ndir.h>
+# endif
+#endif
+
+
+/* determine filesystem max path length */
+
+# include <limits.h> /* for PATH_MAX */
+
+#ifdef _POSIX_VERSION
+# include <utime.h>
+#else
+# if HAVE_SYS_PARAM_H
+# include <sys/param.h> /* for MAXPATHLEN */
+# endif
+#endif
+
+#ifndef PATH_MAX
+# ifdef _POSIX_VERSION
+# define PATH_MAX _POSIX_PATH_MAX
+# else
+# ifdef MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+# else
+# define PATH_MAX 1024
+# endif
+# endif
+#endif
+
+#if HAVE_SYS_FILE_H
+#include <sys/file.h>
+#endif
+
+/* Extension used for shared and non-shared libraries. */
+char* libext = ".a";
+char* shared_libext = ".so";
+
+/* If set to 1, all code will print out information about what it
+ does. */
+int show_all = 0;
+
+/* Strips off carriage returns, newlines and spaces at the end of the
+ string. (this removes some \r\n issues on Windows) */
+static void stripstr (unsigned char *s)
+{
+ unsigned len;
+
+ if (s == NULL)
+ {
+ return;
+ }
+
+ len = strlen (s);
+
+ while (len > 0)
+ {
+ len--;
+ if (s[len] < 33)
+ {
+ s[len] = '\0';
+ }
+ }
+}
+
+/* Normalize the directory, and checks that it exists on disk and is a
+ directory. Return the normalized path, or NULL if the path does
+ not exist on disk, or is not a valid directory. */
+static char *normalize_and_check_dir (char *path)
+{
+ int length = strlen (path);
+ char *normalized_path = NULL;
+ struct stat statbuf;
+
+#ifdef __MINGW32__
+ if (path[0] == '/' && path[1] == '/')
+ {
+ /* Convert //server/ to a format Windows functions understand. */
+ char *s;
+
+ /* Convert //server/path/to/ --> server/path/to/ */
+ normalized_path = malloc (length * sizeof (char));
+ strcpy (normalized_path, &(path[2]));
+
+ /* Convert server/path/to/ --> server:/path/to/ */
+ s = strchr (normalized_path, '/');
+ if (s)
+ {
+ /* The index of the '/' after 'server' in the original path. */
+ int index = 2 + (s - normalized_path);
+
+ *s = ':';
+ strcpy (s + 1, &(path[index]));
+ }
+ }
+ else
+#endif
+ {
+ normalized_path = malloc ((length + 1) * sizeof (char));
+ strcpy (normalized_path, path);
+ }
+
+ /* Now check that the path exists and is a directory. */
+ if (stat (normalized_path, &statbuf) < 0)
+ /* Error occured or dir doesn't exist */
+ {
+ if (show_all)
+ {
+ fprintf (stderr, "Library path '%s' doesn't exist - ignored\n",
+ normalized_path);
+ }
+ free (normalized_path);
+ return NULL;
+ }
+ else if ((statbuf.st_mode & S_IFMT) != S_IFDIR)
+ /* Not a directory */
+ {
+ if (show_all)
+ {
+ fprintf (stderr, "Library path '%s' isn't a directory - ignored\n",
+ normalized_path);
+ }
+ free (normalized_path);
+ return NULL;
+ }
+
+ stripstr (normalized_path);
+ return normalized_path;
+}
+
+/* Search for a library with library_name, suffix suffix and
+ extension ext.
+
+ library_name must not contain the suffix, so library_name should
+ be something like 'gnustep-base'.
+
+ suffix is the wanted suffix (valid suffixes are "", _d, _p, _s,
+ _ds, _dp, _ps, _dps). Must not be NULL.
+
+ ext is the wanted extension (normally, either .so or .a). Must
+ not be NULL.
+
+ Return 0 if it doesn't find anything matching.
+
+ Return 1 if a library with the appropriate suffix/extension/type
+ matches in 'path' and print to stdout the name of the library. */
+
+static int search_for_lib_with_suffix_and_ext (const char *library_name,
+ char **library_paths,
+ int paths_no,
+ char *suffix,
+ char *ext)
+{
+ /* Iterate over the library_paths, looking for the library. */
+ int i;
+
+ for (i = 0; i < paths_no; i++)
+ {
+ char full_filename[PATH_MAX + 1];
+ struct stat statbuf;
+
+ strcpy (full_filename, library_paths[i]);
+ strcat (full_filename, "/lib");
+ strcat (full_filename, library_name);
+ strcat (full_filename, suffix);
+ strcat (full_filename, ext);
+
+ if (show_all)
+ {
+ fprintf (stderr, " %s\n", full_filename);
+ }
+
+ if (stat (full_filename, &statbuf) < 0)
+ /* Error - likely that file doesn't exist. */
+ {
+ continue;
+ }
+
+ if ((statbuf.st_mode & S_IFMT) == S_IFREG)
+ /* Found it! */
+ {
+ if (show_all)
+ {
+ fprintf (stderr, " Found!\n");
+ }
+ printf (" -l%s", library_name);
+ if (*suffix)
+ {
+ printf ("%s", suffix);
+ }
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+/* Search for a library with library_name, extension ext and any
+ valid suffix.
+
+ The same comments as for 'search_for_lib_with_suffix_and_ext' apply,
+ except that any valid suffix is accepted (valid suffixes are: "",
+ _d, _p, _s, _ds, _dp, _ps, _dps).
+*/
+
+static int search_for_lib_with_ext (const char *library_name,
+ int library_name_len,
+ char **library_paths,
+ int paths_no,
+ char *ext)
+{
+ /* Iterate over the library_paths, looking for the library. */
+ int i;
+
+ for (i = 0; i < paths_no; i++)
+ {
+ DIR* dir;
+ struct dirent* dirbuf;
+ int found = 0;
+
+ if (show_all)
+ {
+ fprintf (stderr, " %s/lib%s??%s\n", library_paths[i],
+ library_name, ext);
+ }
+
+ dir = opendir (library_paths[i]);
+
+ if (dir == NULL)
+ {
+ /* For some reasons, we can't read that path. Perhaps
+ someone removed the directory while we were running :-) */
+ continue;
+ }
+
+ while ((dirbuf = readdir (dir)))
+ {
+ /* Skip if it doesn't begin with 'lib'. This implicitly
+ skips "." and ".." in case they are returned. */
+ if (dirbuf->d_name[0] != 'l')
+ {
+ continue;
+ }
+ if (dirbuf->d_name[1] != 'i')
+ {
+ continue;
+ }
+ if (dirbuf->d_name[2] != 'b')
+ {
+ continue;
+ }
+
+ /* Skip if it does not match the library name. */
+ if (strncmp (dirbuf->d_name + 3, library_name, library_name_len))
+ {
+ continue;
+ }
+ else
+ {
+ int filelen, extlen;
+
+ filelen = strlen (dirbuf->d_name);
+ extlen = strlen (ext);
+
+ if (filelen - extlen <= 0)
+ {
+ /* Quite worrying this case. */
+ continue;
+ }
+
+ if (show_all)
+ {
+ fprintf (stderr, " Considering %s\n", dirbuf->d_name);
+ }
+
+ /* First check if the extension matches */
+ if (strcmp (dirbuf->d_name + filelen - extlen, ext))
+ {
+ /* No luck, skip this file */
+ continue;
+ }
+
+ /* The extension matches. Check the last remaining bit
+ - that the remaining string we have not checked is
+ one of the allowed suffixes. The allowed suffixes
+ are: "", _d, _p, _s, _dp, _ds, _ps, _dps. */
+ {
+ char f_suffix[5];
+ int j;
+ int suffix_len = filelen - (3 /* 'lib' */
+
+ + library_name_len
+ /* library_name */
+
+ + extlen /* .so/.a */);
+
+ switch (suffix_len)
+ {
+ /* In the following cases, 'break' means found,
+ 'continue' means not found. */
+ case 0:
+ {
+ /* nothing - it's Ok. */
+ break;
+ }
+ case 1:
+ {
+ continue;
+ }
+ case 2:
+ {
+ /* Must be one of _d, _p, _s */
+ char c;
+
+ if (dirbuf->d_name[3 + library_name_len] != '_')
+ {
+ continue;
+ }
+
+ c = dirbuf->d_name[3 + library_name_len + 1];
+ if (c != 'd' || c != 'p' || c != 's')
+ {
+ continue;
+ }
+ break;
+ }
+ case 3:
+ {
+ /* Must be one of _dp, _ds, _ps */
+ char c, d;
+
+ if (dirbuf->d_name[3 + library_name_len] != '_')
+ {
+ continue;
+ }
+
+ c = dirbuf->d_name[3 + library_name_len + 1];
+ d = dirbuf->d_name[3 + library_name_len + 2];
+ if ((c == 'd' && (d == 'p' || d == 's'))
+ || (c == 'p' && d == 's'))
+ {
+ break;
+ }
+ continue;
+ }
+ case 4:
+ {
+ if (dirbuf->d_name[3 + library_name_len] != '_')
+ {
+ continue;
+ }
+ if (dirbuf->d_name[3 + library_name_len] != 'd')
+ {
+ continue;
+ }
+ if (dirbuf->d_name[3 + library_name_len] != 'p')
+ {
+ continue;
+ }
+ if (dirbuf->d_name[3 + library_name_len] != 's')
+ {
+ continue;
+ }
+ break;
+ }
+ default:
+ {
+ continue;
+ }
+ }
+
+ /* If we're here, it's because it was found! */
+ if (show_all)
+ {
+ fprintf (stderr, " Found!\n");
+ }
+
+ for (j = 0; j < suffix_len; j++)
+ {
+ f_suffix[j] = dirbuf->d_name[library_name_len + 3 + j];
+ }
+ f_suffix[j] = '\0';
+ printf (" -l%s%s", library_name, f_suffix);
+ found = 1;
+ break;
+ }
+ }
+ }
+ closedir (dir);
+ if (found)
+ {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+/* Search for the library everywhere, and returns the library name. */
+static void output_library_name (const char *library_name,
+ char** library_paths, int paths_no,
+ int debug, int profile, int shared,
+ char *libname_suffix)
+{
+ char *extension = shared ? shared_libext : libext;
+ int library_name_len = strlen (library_name);
+
+ if (show_all)
+ {
+ fprintf (stderr, "\n>>Library %s:\n", library_name);
+ }
+
+ /* We first perform the search of a matching library in all dirs. */
+ if (show_all)
+ {
+ fprintf (stderr, "Scanning all paths for an exact match\n");
+ }
+
+ if (search_for_lib_with_suffix_and_ext (library_name,
+ library_paths, paths_no,
+ libname_suffix,
+ extension))
+ {
+ return;
+ }
+
+
+ /* The library was not found. Try various approximations first,
+ slightly messing the original debug/profile requests, but still
+ honouring the shared=yes|no requirement. */
+ if (show_all)
+ {
+ fprintf (stderr, "Scanning all paths for an approximate match\n");
+ }
+
+ /* _dp case: try _d, then _p */
+ if (debug && profile)
+ {
+ if (search_for_lib_with_suffix_and_ext (library_name,
+ library_paths, paths_no,
+ shared ? "_d" : "_ds",
+ extension))
+ {
+ return;
+ }
+
+ if (search_for_lib_with_suffix_and_ext (library_name,
+ library_paths, paths_no,
+ shared ? "_p" : "_ps",
+ extension))
+ {
+ return;
+ }
+ }
+
+ /* _d or _p: try nothing. */
+ if ((debug && !profile) || (!debug && profile))
+ {
+ if (search_for_lib_with_suffix_and_ext (library_name,
+ library_paths, paths_no,
+ shared ? "" : "_s",
+ extension))
+ {
+ return;
+ }
+ }
+
+ /* nothing: try _d. */
+ if (!debug && !profile)
+ {
+ if (search_for_lib_with_suffix_and_ext (library_name,
+ library_paths, paths_no,
+ shared ? "_d" : "_ds",
+ extension))
+ {
+ return;
+ }
+ }
+
+ /* The library was still not found. Try to get whatever library we
+ have there. */
+
+ /* If a shared library is needed try to find a shared one first.
+ Any shared library is all right. */
+ if (shared)
+ {
+ if (show_all)
+ {
+ fprintf (stderr,
+ "Scanning all paths for any shared lib with that name\n");
+ }
+ if (search_for_lib_with_ext (library_name, library_name_len,
+ library_paths, paths_no, shared_libext))
+ {
+ return;
+ }
+ }
+
+ /* Last hope - return a static library with name 'library_name'.
+ Any static library is all right. */
+ if (show_all)
+ {
+ fprintf (stderr,
+ "Scanning all paths for any static lib with that name\n");
+ }
+ if (search_for_lib_with_ext (library_name, library_name_len,
+ library_paths, paths_no, libext))
+ {
+ return;
+ }
+
+ /* We couldn't locate the library. Output the library name we were
+ given, without any modification. Possibly it's somewhere else on
+ the linker path, otherwise (more likely) a linker error will
+ occur. Nothing we can do about it. */
+ if (show_all)
+ {
+ fprintf (stderr, "Library not found, using unmodified library name\n");
+ }
+ printf (" -l%s", library_name);
+ return;
+}
+
+int main (int argc, char** argv)
+{
+ int i;
+
+ /* Type of libraries we prefer. */
+ int debug = 0;
+ int profile = 0;
+ int shared = 1;
+
+ /* Suffix of the libraries we prefer - something like "" or "_d" or
+ "_dp" or "_ps" */
+ char libname_suffix[5];
+
+ /* Array of strings that are the library paths passed on the command
+ line. If we are on Windows, we convert library paths to a format
+ that Windows functions understand before we save the paths in
+ library_paths, so that you could pass them to Windows functions
+ accessing the filesystem. We also check that the paths actually
+ exist on disk, and are directories, before putting them in the
+ array. */
+ int paths_no = 0;
+ char** library_paths = NULL;
+
+ /* The list of libraries */
+ int libraries_no = 0;
+ char** all_libraries = NULL;
+
+ /* Other flags which are printed to the output as they are. */
+ int other_flags_no = 0;
+ char** other_flags = NULL;
+
+
+
+#ifdef __WIN32__
+ setmode(1, O_BINARY);
+ setmode(2, O_BINARY);
+#endif
+
+ if (argc == 1)
+ {
+ printf ("usage: %s [-Lpath ...] -llibrary shared=yes|no debug=yes|no "
+ "profile=yes|no libext=string shared_libext=string "
+ "[show_all=yes]\n", argv[0]);
+ exit (1);
+ }
+
+ for (i = 1; i < argc; i++)
+ {
+ /* First switch basing on the first letter of each argument,
+ then compare. */
+ switch (argv[i][0])
+ {
+ case '-':
+ {
+ if (argv[i][1] == 'l')
+ {
+ if (all_libraries)
+ {
+ all_libraries = realloc (all_libraries,
+ (libraries_no + 1)
+ * sizeof (char*));
+ }
+ else
+ {
+ all_libraries = malloc ((libraries_no + 1)
+ * sizeof (char*));
+ }
+ all_libraries[libraries_no] = malloc (strlen (argv[i]) - 1);
+ strcpy (all_libraries[libraries_no], argv[i] + 2);
+ stripstr (all_libraries[libraries_no]);
+ libraries_no++;
+ continue;
+ }
+ else if (argv[i][1] == 'L')
+ {
+ char *lib_path = normalize_and_check_dir (argv[i] + 2);
+
+ /* Always print out the library search path flag,
+ regardless. */
+ printf (" %s", argv[i]);
+
+ if (lib_path != NULL)
+ {
+ if (library_paths)
+ {
+ library_paths = realloc (library_paths,
+ (paths_no + 1)
+ * sizeof (char*));
+ }
+ else
+ {
+ library_paths = malloc ((paths_no + 1)
+ * sizeof(char*));
+ }
+ library_paths[paths_no] = lib_path;
+ paths_no++;
+ }
+ continue;
+ }
+ break;
+ }
+ case 'd':
+ {
+ if (!strncmp (argv[i], "debug=", 6))
+ {
+ debug = !strncmp (argv[i] + 6, "yes", 3);
+ continue;
+ }
+ break;
+ }
+ case 'l':
+ {
+ if (!strncmp (argv[i], "libext=", 7))
+ {
+ libext = malloc (strlen (argv[i] + 7) + 1);
+ strcpy (libext, argv[i] + 7);
+ continue;
+ }
+ break;
+ }
+ case 'p':
+ {
+ if (!strncmp (argv[i], "profile=", 8))
+ {
+ profile = !strncmp (argv[i] + 8, "yes", 3);
+ continue;
+ }
+ break;
+ }
+ case 's':
+ {
+ if (!strncmp (argv[i], "shared=", 7))
+ {
+ shared = !strncmp (argv[i] + 7, "yes", 3);
+ continue;
+ }
+ else if (!strncmp (argv[i], "shared_libext=", 14))
+ {
+ shared_libext = malloc (strlen (argv[i] + 14) + 1);
+ strcpy (shared_libext, argv[i] + 14);
+ continue;
+ }
+ else if (!strncmp (argv[i], "show_all=", 9))
+ {
+ show_all = !strncmp (argv[i] + 9, "yes", 3);
+ continue;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ /* The flag is something different; keep it in the `other_flags' */
+ if (other_flags)
+ {
+ other_flags = realloc (other_flags,
+ (other_flags_no + 1) * sizeof (char*));
+ }
+ else
+ {
+ other_flags = malloc ((other_flags_no + 1) * sizeof (char*));
+ }
+ other_flags[other_flags_no] = malloc (strlen (argv[i]) + 1);
+ strcpy (other_flags[other_flags_no], argv[i]);
+ other_flags_no++;
+ }
+
+ /* Determine the exact libname_suffix of the libraries we are
+ looking for. */
+ libname_suffix[0] = '_';
+ libname_suffix[1] = '\0';
+ libname_suffix[2] = '\0';
+ libname_suffix[3] = '\0';
+ libname_suffix[4] = '\0';
+
+ i = 1;
+
+ if (debug)
+ {
+ libname_suffix[i] = 'd';
+ i++;
+ }
+
+ if (profile)
+ {
+ libname_suffix[i] = 'p';
+ i++;
+ }
+
+ if (!shared)
+ {
+ libname_suffix[i] = 's';
+ i++;
+ }
+
+ if (i == 1)
+ {
+ libname_suffix[0] = '\0';
+ }
+
+
+ if (show_all)
+ {
+ fprintf (stderr, ">>Input:\n");
+ fprintf (stderr, "shared = %d\n", shared);
+ fprintf (stderr, "debug = %d\n", debug);
+ fprintf (stderr, "profile = %d\n", profile);
+ fprintf (stderr, "libname_suffix = %s\n", libname_suffix);
+ fprintf (stderr, "libext = %s\n", libext);
+ fprintf (stderr, "shared_libext = %s\n", shared_libext);
+
+ fprintf (stderr, "library names:\n");
+ for (i = 0; i < libraries_no; i++)
+ {
+ fprintf (stderr, " %s\n", all_libraries[i]);
+ }
+
+ fprintf (stderr, "library paths:\n");
+ for (i = 0; i < paths_no; i++)
+ {
+ fprintf (stderr, " %s\n", library_paths[i]);
+ }
+
+ fprintf (stderr, "other flags:\n");
+ for (i = 0; i < other_flags_no; i++)
+ {
+ fprintf (stderr, " %s\n", other_flags[i]);
+ }
+ }
+
+ /* Now output the libraries. */
+ for (i = 0; i < libraries_no; i++)
+ {
+ /* Search for the library, and print (using -l%s) the library
+ name to standard output. */
+ output_library_name (all_libraries[i], library_paths,
+ paths_no, debug, profile, shared, libname_suffix);
+ }
+
+ /* Output the other flags */
+ for (i = 0; i < other_flags_no; i++)
+ {
+ printf (" %s", other_flags[i]);
+ }
+
+ printf (" ");
+
+ return 0;
+}