]> err.no Git - sope/commitdiff
added gnustep-make vendor branch to trunk
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Fri, 3 Jun 2005 14:06:36 +0000 (14:06 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Fri, 3 Jun 2005 14:06:36 +0000 (14:06 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@824 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

167 files changed:
gnustep-make/.cvsignore [new file with mode: 0644]
gnustep-make/ANNOUNCE [new file with mode: 0644]
gnustep-make/COPYING [new file with mode: 0644]
gnustep-make/ChangeLog [new file with mode: 0644]
gnustep-make/ChangeLog.1 [new file with mode: 0644]
gnustep-make/Documentation/.cvsignore [new file with mode: 0644]
gnustep-make/Documentation/.latex2html-init [new file with mode: 0644]
gnustep-make/Documentation/DESIGN [new file with mode: 0644]
gnustep-make/Documentation/GNUmakefile [new file with mode: 0644]
gnustep-make/Documentation/GNUstep.7 [new file with mode: 0644]
gnustep-make/Documentation/README.Cygwin [new file with mode: 0644]
gnustep-make/Documentation/README.Darwin [new file with mode: 0644]
gnustep-make/Documentation/README.MinGW [new file with mode: 0644]
gnustep-make/Documentation/README.MinGWOnCygwin [new file with mode: 0644]
gnustep-make/Documentation/README.NetBSD [new file with mode: 0644]
gnustep-make/Documentation/announce.texi [new file with mode: 0644]
gnustep-make/Documentation/end.texi [new file with mode: 0644]
gnustep-make/Documentation/faq.texi [new file with mode: 0644]
gnustep-make/Documentation/filesystem.texi [new file with mode: 0644]
gnustep-make/Documentation/gnustep-howto.texi [new file with mode: 0644]
gnustep-make/Documentation/gnustep.init [new file with mode: 0644]
gnustep-make/Documentation/install.texi [new file with mode: 0644]
gnustep-make/Documentation/internals.tex [new file with mode: 0644]
gnustep-make/Documentation/machines.texi [new file with mode: 0644]
gnustep-make/Documentation/make.texi [new file with mode: 0644]
gnustep-make/Documentation/news.texi [new file with mode: 0644]
gnustep-make/Documentation/openapp.1 [new file with mode: 0644]
gnustep-make/Documentation/readme.texi [new file with mode: 0644]
gnustep-make/Documentation/userfaq.texi [new file with mode: 0644]
gnustep-make/FAQ [new file with mode: 0644]
gnustep-make/GNUmakefile.in [new file with mode: 0644]
gnustep-make/GNUmakefile.postamble [new file with mode: 0644]
gnustep-make/GNUmakefile.preamble [new file with mode: 0644]
gnustep-make/GNUstep-HOWTO [new file with mode: 0644]
gnustep-make/GNUstep-reset.sh [new file with mode: 0644]
gnustep-make/GNUstep.csh.in [new file with mode: 0755]
gnustep-make/GNUstep.sh.in [new file with mode: 0755]
gnustep-make/GNUsteprc.in [new file with mode: 0644]
gnustep-make/INSTALL [new file with mode: 0644]
gnustep-make/Instance/Documentation/autogsdoc.make [new file with mode: 0644]
gnustep-make/Instance/Documentation/gsdoc.make [new file with mode: 0644]
gnustep-make/Instance/Documentation/install_files.make [new file with mode: 0644]
gnustep-make/Instance/Documentation/javadoc.make [new file with mode: 0644]
gnustep-make/Instance/Documentation/latex.make [new file with mode: 0644]
gnustep-make/Instance/Documentation/texi.make [new file with mode: 0644]
gnustep-make/Instance/README [new file with mode: 0644]
gnustep-make/Instance/Shared/README [new file with mode: 0644]
gnustep-make/Instance/Shared/bundle.make [new file with mode: 0644]
gnustep-make/Instance/Shared/headers.make [new file with mode: 0644]
gnustep-make/Instance/Shared/java.make [new file with mode: 0644]
gnustep-make/Instance/Shared/stamp-string.make [new file with mode: 0644]
gnustep-make/Instance/Shared/strings.make [new file with mode: 0644]
gnustep-make/Instance/application.make [new file with mode: 0644]
gnustep-make/Instance/bundle.make [new file with mode: 0644]
gnustep-make/Instance/clibrary.make [new file with mode: 0644]
gnustep-make/Instance/ctool.make [new file with mode: 0644]
gnustep-make/Instance/documentation.make [new file with mode: 0644]
gnustep-make/Instance/framework.make [new file with mode: 0644]
gnustep-make/Instance/gswapp.make [new file with mode: 0644]
gnustep-make/Instance/gswbundle.make [new file with mode: 0644]
gnustep-make/Instance/java-tool.make [new file with mode: 0644]
gnustep-make/Instance/java.make [new file with mode: 0644]
gnustep-make/Instance/library.make [new file with mode: 0644]
gnustep-make/Instance/objc.make [new file with mode: 0644]
gnustep-make/Instance/palette.make [new file with mode: 0644]
gnustep-make/Instance/resource-set.make [new file with mode: 0644]
gnustep-make/Instance/rules.make [new file with mode: 0644]
gnustep-make/Instance/service.make [new file with mode: 0644]
gnustep-make/Instance/subproject.make [new file with mode: 0644]
gnustep-make/Instance/test-application.make [new file with mode: 0644]
gnustep-make/Instance/test-library.make [new file with mode: 0644]
gnustep-make/Instance/test-tool.make [new file with mode: 0644]
gnustep-make/Instance/tool.make [new file with mode: 0644]
gnustep-make/Master/README [new file with mode: 0644]
gnustep-make/Master/aggregate.make [new file with mode: 0644]
gnustep-make/Master/application.make [new file with mode: 0644]
gnustep-make/Master/bundle.make [new file with mode: 0644]
gnustep-make/Master/clibrary.make [new file with mode: 0644]
gnustep-make/Master/ctool.make [new file with mode: 0644]
gnustep-make/Master/documentation.make [new file with mode: 0644]
gnustep-make/Master/framework.make [new file with mode: 0644]
gnustep-make/Master/gswapp.make [new file with mode: 0644]
gnustep-make/Master/gswbundle.make [new file with mode: 0644]
gnustep-make/Master/java-tool.make [new file with mode: 0644]
gnustep-make/Master/java.make [new file with mode: 0644]
gnustep-make/Master/library.make [new file with mode: 0644]
gnustep-make/Master/objc.make [new file with mode: 0644]
gnustep-make/Master/palette.make [new file with mode: 0644]
gnustep-make/Master/resource-set.make [new file with mode: 0644]
gnustep-make/Master/rpm.make [new file with mode: 0644]
gnustep-make/Master/rules.make [new file with mode: 0644]
gnustep-make/Master/service.make [new file with mode: 0644]
gnustep-make/Master/source-distribution.make [new file with mode: 0644]
gnustep-make/Master/subproject.make [new file with mode: 0644]
gnustep-make/Master/test-application.make [new file with mode: 0644]
gnustep-make/Master/test-library.make [new file with mode: 0644]
gnustep-make/Master/test-tool.make [new file with mode: 0644]
gnustep-make/Master/tool.make [new file with mode: 0644]
gnustep-make/NEWS [new file with mode: 0644]
gnustep-make/README [new file with mode: 0644]
gnustep-make/Version [new file with mode: 0644]
gnustep-make/aggregate.make [new file with mode: 0644]
gnustep-make/application.make [new file with mode: 0644]
gnustep-make/bundle.make [new file with mode: 0644]
gnustep-make/clean_cpu.sh [new file with mode: 0755]
gnustep-make/clean_os.sh [new file with mode: 0755]
gnustep-make/clean_vendor.sh [new file with mode: 0755]
gnustep-make/clibrary.make [new file with mode: 0644]
gnustep-make/common.make [new file with mode: 0644]
gnustep-make/config.guess [new file with mode: 0755]
gnustep-make/config.h.in [new file with mode: 0644]
gnustep-make/config.make.in [new file with mode: 0644]
gnustep-make/config.site [new file with mode: 0644]
gnustep-make/config.sub [new file with mode: 0755]
gnustep-make/config_thread.m [new file with mode: 0644]
gnustep-make/configure [new file with mode: 0755]
gnustep-make/configure.ac [new file with mode: 0644]
gnustep-make/cpu.sh [new file with mode: 0755]
gnustep-make/create_domain_dir_tree.sh [new file with mode: 0755]
gnustep-make/ctool.make [new file with mode: 0644]
gnustep-make/debugapp.in [new file with mode: 0644]
gnustep-make/documentation.make [new file with mode: 0644]
gnustep-make/executable.template.in [new file with mode: 0755]
gnustep-make/fixpath.sh.in [new file with mode: 0755]
gnustep-make/framework.make [new file with mode: 0644]
gnustep-make/gnustep-make.spec.in [new file with mode: 0644]
gnustep-make/gswapp.make [new file with mode: 0644]
gnustep-make/gswbundle.make [new file with mode: 0644]
gnustep-make/install-sh [new file with mode: 0755]
gnustep-make/java-executable.template [new file with mode: 0644]
gnustep-make/java-tool.make [new file with mode: 0644]
gnustep-make/java.make [new file with mode: 0644]
gnustep-make/jni.make [new file with mode: 0644]
gnustep-make/ld_lib_path.csh [new file with mode: 0755]
gnustep-make/ld_lib_path.sh [new file with mode: 0755]
gnustep-make/library-combo.make [new file with mode: 0644]
gnustep-make/library.make [new file with mode: 0644]
gnustep-make/messages.make [new file with mode: 0644]
gnustep-make/mkinstalldirs [new file with mode: 0755]
gnustep-make/move_obsolete_paths.sh [new file with mode: 0755]
gnustep-make/names.make [new file with mode: 0644]
gnustep-make/native-library.make [new file with mode: 0644]
gnustep-make/objc.make [new file with mode: 0644]
gnustep-make/openapp.in [new file with mode: 0755]
gnustep-make/opentool.in [new file with mode: 0644]
gnustep-make/os.sh [new file with mode: 0755]
gnustep-make/palette.make [new file with mode: 0644]
gnustep-make/relative_path.sh [new file with mode: 0755]
gnustep-make/resource-set.make [new file with mode: 0644]
gnustep-make/rules.make [new file with mode: 0644]
gnustep-make/service.make [new file with mode: 0644]
gnustep-make/setlocaltz.sh [new file with mode: 0755]
gnustep-make/spec-debug-alone-rules.template [new file with mode: 0644]
gnustep-make/spec-debug-rules.template [new file with mode: 0644]
gnustep-make/spec-rules.template [new file with mode: 0644]
gnustep-make/strip_makefiles.sh [new file with mode: 0755]
gnustep-make/subproject.make [new file with mode: 0644]
gnustep-make/tar-exclude-list [new file with mode: 0644]
gnustep-make/target.make [new file with mode: 0644]
gnustep-make/test-application.make [new file with mode: 0644]
gnustep-make/test-library.make [new file with mode: 0644]
gnustep-make/test-tool.make [new file with mode: 0644]
gnustep-make/tool.make [new file with mode: 0644]
gnustep-make/transform_paths.sh [new file with mode: 0755]
gnustep-make/user_home.c [new file with mode: 0644]
gnustep-make/vendor.sh [new file with mode: 0755]
gnustep-make/which_lib.c [new file with mode: 0644]

diff --git a/gnustep-make/.cvsignore b/gnustep-make/.cvsignore
new file mode 100644 (file)
index 0000000..ad3026d
--- /dev/null
@@ -0,0 +1,16 @@
+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
diff --git a/gnustep-make/ANNOUNCE b/gnustep-make/ANNOUNCE
new file mode 100644 (file)
index 0000000..d392770
--- /dev/null
@@ -0,0 +1,43 @@
+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>.
+
diff --git a/gnustep-make/COPYING b/gnustep-make/COPYING
new file mode 100644 (file)
index 0000000..60549be
--- /dev/null
@@ -0,0 +1,340 @@
+                   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.
diff --git a/gnustep-make/ChangeLog b/gnustep-make/ChangeLog
new file mode 100644 (file)
index 0000000..0e6585e
--- /dev/null
@@ -0,0 +1,1851 @@
+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
diff --git a/gnustep-make/ChangeLog.1 b/gnustep-make/ChangeLog.1
new file mode 100644 (file)
index 0000000..0514c74
--- /dev/null
@@ -0,0 +1,7067 @@
+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.
diff --git a/gnustep-make/Documentation/.cvsignore b/gnustep-make/Documentation/.cvsignore
new file mode 100644 (file)
index 0000000..833edd8
--- /dev/null
@@ -0,0 +1,22 @@
+GNUmakefile
+version.texi
+*.log
+*.dvi
+*.ps
+*.html
+*.info
+*.aux
+*.toc
+*.cp
+*.fn
+*.vr
+*.tp
+*.ky
+*.pg
+*.vrs
+*.gz
+INSTALL
+README
+NEWS
+GNUstep-HOWTO
+internals
diff --git a/gnustep-make/Documentation/.latex2html-init b/gnustep-make/Documentation/.latex2html-init
new file mode 100644 (file)
index 0000000..cc4b5dc
--- /dev/null
@@ -0,0 +1,47 @@
+
+# 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) 
+}
diff --git a/gnustep-make/Documentation/DESIGN b/gnustep-make/Documentation/DESIGN
new file mode 100644 (file)
index 0000000..e5ec0f3
--- /dev/null
@@ -0,0 +1,484 @@
+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
diff --git a/gnustep-make/Documentation/GNUmakefile b/gnustep-make/Documentation/GNUmakefile
new file mode 100644 (file)
index 0000000..2385681
--- /dev/null
@@ -0,0 +1,191 @@
+#
+# 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
diff --git a/gnustep-make/Documentation/GNUstep.7 b/gnustep-make/Documentation/GNUstep.7
new file mode 100644 (file)
index 0000000..027700d
--- /dev/null
@@ -0,0 +1,147 @@
+.\"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>.
diff --git a/gnustep-make/Documentation/README.Cygwin b/gnustep-make/Documentation/README.Cygwin
new file mode 100644 (file)
index 0000000..de2726c
--- /dev/null
@@ -0,0 +1,233 @@
+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 *** ---
diff --git a/gnustep-make/Documentation/README.Darwin b/gnustep-make/Documentation/README.Darwin
new file mode 100644 (file)
index 0000000..d4b6202
--- /dev/null
@@ -0,0 +1,465 @@
+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.
diff --git a/gnustep-make/Documentation/README.MinGW b/gnustep-make/Documentation/README.MinGW
new file mode 100644 (file)
index 0000000..81810ca
--- /dev/null
@@ -0,0 +1,343 @@
+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.
diff --git a/gnustep-make/Documentation/README.MinGWOnCygwin b/gnustep-make/Documentation/README.MinGWOnCygwin
new file mode 100644 (file)
index 0000000..e8dda11
--- /dev/null
@@ -0,0 +1,205 @@
+
+
+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>
diff --git a/gnustep-make/Documentation/README.NetBSD b/gnustep-make/Documentation/README.NetBSD
new file mode 100644 (file)
index 0000000..e2628b5
--- /dev/null
@@ -0,0 +1,311 @@
+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
+
+
+
diff --git a/gnustep-make/Documentation/announce.texi b/gnustep-make/Documentation/announce.texi
new file mode 100644 (file)
index 0000000..cade3b8
--- /dev/null
@@ -0,0 +1,26 @@
+@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}.
diff --git a/gnustep-make/Documentation/end.texi b/gnustep-make/Documentation/end.texi
new file mode 100644 (file)
index 0000000..9ad8eb1
--- /dev/null
@@ -0,0 +1,2 @@
+@bye
+\bye
diff --git a/gnustep-make/Documentation/faq.texi b/gnustep-make/Documentation/faq.texi
new file mode 100644 (file)
index 0000000..54ae279
--- /dev/null
@@ -0,0 +1,611 @@
+\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
diff --git a/gnustep-make/Documentation/filesystem.texi b/gnustep-make/Documentation/filesystem.texi
new file mode 100644 (file)
index 0000000..30a7636
--- /dev/null
@@ -0,0 +1,480 @@
+\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
diff --git a/gnustep-make/Documentation/gnustep-howto.texi b/gnustep-make/Documentation/gnustep-howto.texi
new file mode 100644 (file)
index 0000000..f4b091f
--- /dev/null
@@ -0,0 +1,441 @@
+\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
diff --git a/gnustep-make/Documentation/gnustep.init b/gnustep-make/Documentation/gnustep.init
new file mode 100644 (file)
index 0000000..cc5e203
--- /dev/null
@@ -0,0 +1,23 @@
+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 = \&nothing;
+$T2H_SECTION_NAVIGATION = 0;
+$T2H_print_navigation = \&nothing;
diff --git a/gnustep-make/Documentation/install.texi b/gnustep-make/Documentation/install.texi
new file mode 100644 (file)
index 0000000..64c4085
--- /dev/null
@@ -0,0 +1,306 @@
+
+@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
diff --git a/gnustep-make/Documentation/internals.tex b/gnustep-make/Documentation/internals.tex
new file mode 100644 (file)
index 0000000..9370801
--- /dev/null
@@ -0,0 +1,198 @@
+\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}
diff --git a/gnustep-make/Documentation/machines.texi b/gnustep-make/Documentation/machines.texi
new file mode 100644 (file)
index 0000000..54387a4
--- /dev/null
@@ -0,0 +1,792 @@
+\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
diff --git a/gnustep-make/Documentation/make.texi b/gnustep-make/Documentation/make.texi
new file mode 100644 (file)
index 0000000..978a9ce
--- /dev/null
@@ -0,0 +1,1383 @@
+\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
diff --git a/gnustep-make/Documentation/news.texi b/gnustep-make/Documentation/news.texi
new file mode 100644 (file)
index 0000000..19c3171
--- /dev/null
@@ -0,0 +1,284 @@
+@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
diff --git a/gnustep-make/Documentation/openapp.1 b/gnustep-make/Documentation/openapp.1
new file mode 100644 (file)
index 0000000..cb701c2
--- /dev/null
@@ -0,0 +1,106 @@
+.\"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>.
diff --git a/gnustep-make/Documentation/readme.texi b/gnustep-make/Documentation/readme.texi
new file mode 100644 (file)
index 0000000..1f75ced
--- /dev/null
@@ -0,0 +1,71 @@
+@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
diff --git a/gnustep-make/Documentation/userfaq.texi b/gnustep-make/Documentation/userfaq.texi
new file mode 100644 (file)
index 0000000..7b23846
--- /dev/null
@@ -0,0 +1,477 @@
+\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
diff --git a/gnustep-make/FAQ b/gnustep-make/FAQ
new file mode 100644 (file)
index 0000000..03223e1
--- /dev/null
@@ -0,0 +1,529 @@
+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.
+
diff --git a/gnustep-make/GNUmakefile.in b/gnustep-make/GNUmakefile.in
new file mode 100644 (file)
index 0000000..c833ddb
--- /dev/null
@@ -0,0 +1,348 @@
+#   @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
diff --git a/gnustep-make/GNUmakefile.postamble b/gnustep-make/GNUmakefile.postamble
new file mode 100644 (file)
index 0000000..dec5a0b
--- /dev/null
@@ -0,0 +1,45 @@
+#
+#   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::
diff --git a/gnustep-make/GNUmakefile.preamble b/gnustep-make/GNUmakefile.preamble
new file mode 100644 (file)
index 0000000..069ba77
--- /dev/null
@@ -0,0 +1,50 @@
+#
+#   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 +=
+
diff --git a/gnustep-make/GNUstep-HOWTO b/gnustep-make/GNUstep-HOWTO
new file mode 100644 (file)
index 0000000..0775238
--- /dev/null
@@ -0,0 +1,1004 @@
+   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!
+
diff --git a/gnustep-make/GNUstep-reset.sh b/gnustep-make/GNUstep-reset.sh
new file mode 100644 (file)
index 0000000..8373948
--- /dev/null
@@ -0,0 +1,106 @@
+#! /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
diff --git a/gnustep-make/GNUstep.csh.in b/gnustep-make/GNUstep.csh.in
new file mode 100755 (executable)
index 0000000..138549a
--- /dev/null
@@ -0,0 +1,133 @@
+#! /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
+
diff --git a/gnustep-make/GNUstep.sh.in b/gnustep-make/GNUstep.sh.in
new file mode 100755 (executable)
index 0000000..640f7ed
--- /dev/null
@@ -0,0 +1,308 @@
+#! /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
diff --git a/gnustep-make/GNUsteprc.in b/gnustep-make/GNUsteprc.in
new file mode 100644 (file)
index 0000000..cb1fd20
--- /dev/null
@@ -0,0 +1,2 @@
+GNUSTEP_USER_ROOT=@GNUSTEP_USER_ROOT@
+
diff --git a/gnustep-make/INSTALL b/gnustep-make/INSTALL
new file mode 100644 (file)
index 0000000..df7f00e
--- /dev/null
@@ -0,0 +1,251 @@
+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=~
+
diff --git a/gnustep-make/Instance/Documentation/autogsdoc.make b/gnustep-make/Instance/Documentation/autogsdoc.make
new file mode 100644 (file)
index 0000000..dff1b66
--- /dev/null
@@ -0,0 +1,78 @@
+#   -*-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
diff --git a/gnustep-make/Instance/Documentation/gsdoc.make b/gnustep-make/Instance/Documentation/gsdoc.make
new file mode 100644 (file)
index 0000000..578a5f0
--- /dev/null
@@ -0,0 +1,43 @@
+#   -*-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)
diff --git a/gnustep-make/Instance/Documentation/install_files.make b/gnustep-make/Instance/Documentation/install_files.make
new file mode 100644 (file)
index 0000000..489bc5d
--- /dev/null
@@ -0,0 +1,36 @@
+#   -*-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)
diff --git a/gnustep-make/Instance/Documentation/javadoc.make b/gnustep-make/Instance/Documentation/javadoc.make
new file mode 100644 (file)
index 0000000..25fa4a9
--- /dev/null
@@ -0,0 +1,86 @@
+#   -*-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::
+
diff --git a/gnustep-make/Instance/Documentation/latex.make b/gnustep-make/Instance/Documentation/latex.make
new file mode 100644 (file)
index 0000000..ba8bedb
--- /dev/null
@@ -0,0 +1,98 @@
+#   -*-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
diff --git a/gnustep-make/Instance/Documentation/texi.make b/gnustep-make/Instance/Documentation/texi.make
new file mode 100644 (file)
index 0000000..a9c4dc4
--- /dev/null
@@ -0,0 +1,156 @@
+#   -*-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
+
diff --git a/gnustep-make/Instance/README b/gnustep-make/Instance/README
new file mode 100644 (file)
index 0000000..cb8f92e
--- /dev/null
@@ -0,0 +1,23 @@
+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.
diff --git a/gnustep-make/Instance/Shared/README b/gnustep-make/Instance/Shared/README
new file mode 100644 (file)
index 0000000..1543055
--- /dev/null
@@ -0,0 +1,51 @@
+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.
diff --git a/gnustep-make/Instance/Shared/bundle.make b/gnustep-make/Instance/Shared/bundle.make
new file mode 100644 (file)
index 0000000..d87074c
--- /dev/null
@@ -0,0 +1,394 @@
+#   -*-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)
diff --git a/gnustep-make/Instance/Shared/headers.make b/gnustep-make/Instance/Shared/headers.make
new file mode 100644 (file)
index 0000000..9a619d5
--- /dev/null
@@ -0,0 +1,125 @@
+#
+#   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 = ''
diff --git a/gnustep-make/Instance/Shared/java.make b/gnustep-make/Instance/Shared/java.make
new file mode 100644 (file)
index 0000000..8e4c170
--- /dev/null
@@ -0,0 +1,140 @@
+#
+#   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
diff --git a/gnustep-make/Instance/Shared/stamp-string.make b/gnustep-make/Instance/Shared/stamp-string.make
new file mode 100644 (file)
index 0000000..0ccee7a
--- /dev/null
@@ -0,0 +1,136 @@
+#   -*-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)
diff --git a/gnustep-make/Instance/Shared/strings.make b/gnustep-make/Instance/Shared/strings.make
new file mode 100644 (file)
index 0000000..2f1f46f
--- /dev/null
@@ -0,0 +1,79 @@
+#
+#   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 = ''
diff --git a/gnustep-make/Instance/application.make b/gnustep-make/Instance/application.make
new file mode 100644 (file)
index 0000000..4965301
--- /dev/null
@@ -0,0 +1,286 @@
+#   -*-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
diff --git a/gnustep-make/Instance/bundle.make b/gnustep-make/Instance/bundle.make
new file mode 100644 (file)
index 0000000..3c8db39
--- /dev/null
@@ -0,0 +1,319 @@
+#
+#   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
+
diff --git a/gnustep-make/Instance/clibrary.make b/gnustep-make/Instance/clibrary.make
new file mode 100644 (file)
index 0000000..a98fa40
--- /dev/null
@@ -0,0 +1,71 @@
+#
+#   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
+
diff --git a/gnustep-make/Instance/ctool.make b/gnustep-make/Instance/ctool.make
new file mode 100644 (file)
index 0000000..71d2dfb
--- /dev/null
@@ -0,0 +1,80 @@
+#
+#   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
+
diff --git a/gnustep-make/Instance/documentation.make b/gnustep-make/Instance/documentation.make
new file mode 100644 (file)
index 0000000..8161a15
--- /dev/null
@@ -0,0 +1,154 @@
+#   -*-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::
+
diff --git a/gnustep-make/Instance/framework.make b/gnustep-make/Instance/framework.make
new file mode 100644 (file)
index 0000000..c756e4f
--- /dev/null
@@ -0,0 +1,622 @@
+#   -*-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
diff --git a/gnustep-make/Instance/gswapp.make b/gnustep-make/Instance/gswapp.make
new file mode 100644 (file)
index 0000000..7fcc7c5
--- /dev/null
@@ -0,0 +1,194 @@
+#
+#   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
diff --git a/gnustep-make/Instance/gswbundle.make b/gnustep-make/Instance/gswbundle.make
new file mode 100644 (file)
index 0000000..2474a54
--- /dev/null
@@ -0,0 +1,269 @@
+#
+#   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
diff --git a/gnustep-make/Instance/java-tool.make b/gnustep-make/Instance/java-tool.make
new file mode 100644 (file)
index 0000000..fb8013d
--- /dev/null
@@ -0,0 +1,90 @@
+#
+#   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::
diff --git a/gnustep-make/Instance/java.make b/gnustep-make/Instance/java.make
new file mode 100644 (file)
index 0000000..6d63262
--- /dev/null
@@ -0,0 +1,96 @@
+#
+#   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
+
diff --git a/gnustep-make/Instance/library.make b/gnustep-make/Instance/library.make
new file mode 100644 (file)
index 0000000..b330df0
--- /dev/null
@@ -0,0 +1,339 @@
+ #  -*-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
diff --git a/gnustep-make/Instance/objc.make b/gnustep-make/Instance/objc.make
new file mode 100644 (file)
index 0000000..f62cd66
--- /dev/null
@@ -0,0 +1,75 @@
+#
+#   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
diff --git a/gnustep-make/Instance/palette.make b/gnustep-make/Instance/palette.make
new file mode 100644 (file)
index 0000000..a682b98
--- /dev/null
@@ -0,0 +1,185 @@
+#
+#   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
diff --git a/gnustep-make/Instance/resource-set.make b/gnustep-make/Instance/resource-set.make
new file mode 100644 (file)
index 0000000..81d45d2
--- /dev/null
@@ -0,0 +1,187 @@
+#   -*-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
diff --git a/gnustep-make/Instance/rules.make b/gnustep-make/Instance/rules.make
new file mode 100644 (file)
index 0000000..81779b2
--- /dev/null
@@ -0,0 +1,269 @@
+#
+#   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)
+
diff --git a/gnustep-make/Instance/service.make b/gnustep-make/Instance/service.make
new file mode 100644 (file)
index 0000000..22ad912
--- /dev/null
@@ -0,0 +1,121 @@
+#
+#   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
diff --git a/gnustep-make/Instance/subproject.make b/gnustep-make/Instance/subproject.make
new file mode 100644 (file)
index 0000000..22e0f9a
--- /dev/null
@@ -0,0 +1,136 @@
+#   -*-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
diff --git a/gnustep-make/Instance/test-application.make b/gnustep-make/Instance/test-application.make
new file mode 100644 (file)
index 0000000..5e87e34
--- /dev/null
@@ -0,0 +1,29 @@
+#   -*-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_
+
diff --git a/gnustep-make/Instance/test-library.make b/gnustep-make/Instance/test-library.make
new file mode 100644 (file)
index 0000000..84b53f2
--- /dev/null
@@ -0,0 +1,143 @@
+#
+#   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
diff --git a/gnustep-make/Instance/test-tool.make b/gnustep-make/Instance/test-tool.make
new file mode 100644 (file)
index 0000000..ca0f75f
--- /dev/null
@@ -0,0 +1,29 @@
+#   -*-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_
+
diff --git a/gnustep-make/Instance/tool.make b/gnustep-make/Instance/tool.make
new file mode 100644 (file)
index 0000000..cbcfb4e
--- /dev/null
@@ -0,0 +1,130 @@
+#   -*-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
diff --git a/gnustep-make/Master/README b/gnustep-make/Master/README
new file mode 100644 (file)
index 0000000..7897e92
--- /dev/null
@@ -0,0 +1,55 @@
+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.
diff --git a/gnustep-make/Master/aggregate.make b/gnustep-make/Master/aggregate.make
new file mode 100644 (file)
index 0000000..6851f6a
--- /dev/null
@@ -0,0 +1,80 @@
+#
+#   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
+
diff --git a/gnustep-make/Master/application.make b/gnustep-make/Master/application.make
new file mode 100644 (file)
index 0000000..bc33359
--- /dev/null
@@ -0,0 +1,82 @@
+#
+#   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
diff --git a/gnustep-make/Master/bundle.make b/gnustep-make/Master/bundle.make
new file mode 100644 (file)
index 0000000..8c4f7d9
--- /dev/null
@@ -0,0 +1,61 @@
+#
+#   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
diff --git a/gnustep-make/Master/clibrary.make b/gnustep-make/Master/clibrary.make
new file mode 100644 (file)
index 0000000..82fe119
--- /dev/null
@@ -0,0 +1,59 @@
+#
+#   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
diff --git a/gnustep-make/Master/ctool.make b/gnustep-make/Master/ctool.make
new file mode 100644 (file)
index 0000000..7dfbdc6
--- /dev/null
@@ -0,0 +1,54 @@
+#
+#   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
diff --git a/gnustep-make/Master/documentation.make b/gnustep-make/Master/documentation.make
new file mode 100644 (file)
index 0000000..3aa5a6e
--- /dev/null
@@ -0,0 +1,48 @@
+#   -*-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
+
diff --git a/gnustep-make/Master/framework.make b/gnustep-make/Master/framework.make
new file mode 100644 (file)
index 0000000..2e8f1b9
--- /dev/null
@@ -0,0 +1,47 @@
+#
+#   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
diff --git a/gnustep-make/Master/gswapp.make b/gnustep-make/Master/gswapp.make
new file mode 100644 (file)
index 0000000..f078274
--- /dev/null
@@ -0,0 +1,74 @@
+#
+#   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
diff --git a/gnustep-make/Master/gswbundle.make b/gnustep-make/Master/gswbundle.make
new file mode 100644 (file)
index 0000000..bb2c33a
--- /dev/null
@@ -0,0 +1,61 @@
+#
+#   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
diff --git a/gnustep-make/Master/java-tool.make b/gnustep-make/Master/java-tool.make
new file mode 100644 (file)
index 0000000..4f36312
--- /dev/null
@@ -0,0 +1,54 @@
+#
+#   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
diff --git a/gnustep-make/Master/java.make b/gnustep-make/Master/java.make
new file mode 100644 (file)
index 0000000..08129bb
--- /dev/null
@@ -0,0 +1,46 @@
+#
+#   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
diff --git a/gnustep-make/Master/library.make b/gnustep-make/Master/library.make
new file mode 100644 (file)
index 0000000..6dac241
--- /dev/null
@@ -0,0 +1,59 @@
+#
+#   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
diff --git a/gnustep-make/Master/objc.make b/gnustep-make/Master/objc.make
new file mode 100644 (file)
index 0000000..e81640e
--- /dev/null
@@ -0,0 +1,54 @@
+#
+#   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
diff --git a/gnustep-make/Master/palette.make b/gnustep-make/Master/palette.make
new file mode 100644 (file)
index 0000000..4cb4fd2
--- /dev/null
@@ -0,0 +1,66 @@
+#
+#   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
diff --git a/gnustep-make/Master/resource-set.make b/gnustep-make/Master/resource-set.make
new file mode 100644 (file)
index 0000000..a64ce35
--- /dev/null
@@ -0,0 +1,39 @@
+#
+#   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:: 
+
diff --git a/gnustep-make/Master/rpm.make b/gnustep-make/Master/rpm.make
new file mode 100644 (file)
index 0000000..57721c6
--- /dev/null
@@ -0,0 +1,366 @@
+#
+#   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
diff --git a/gnustep-make/Master/rules.make b/gnustep-make/Master/rules.make
new file mode 100644 (file)
index 0000000..97e036c
--- /dev/null
@@ -0,0 +1,421 @@
+#   -*-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>
diff --git a/gnustep-make/Master/service.make b/gnustep-make/Master/service.make
new file mode 100644 (file)
index 0000000..ed55845
--- /dev/null
@@ -0,0 +1,66 @@
+#
+#   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
diff --git a/gnustep-make/Master/source-distribution.make b/gnustep-make/Master/source-distribution.make
new file mode 100644 (file)
index 0000000..6c35f62
--- /dev/null
@@ -0,0 +1,233 @@
+#
+#   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
diff --git a/gnustep-make/Master/subproject.make b/gnustep-make/Master/subproject.make
new file mode 100644 (file)
index 0000000..6229206
--- /dev/null
@@ -0,0 +1,80 @@
+#
+#   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
diff --git a/gnustep-make/Master/test-application.make b/gnustep-make/Master/test-application.make
new file mode 100644 (file)
index 0000000..048f8a3
--- /dev/null
@@ -0,0 +1,68 @@
+#
+#   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...
diff --git a/gnustep-make/Master/test-library.make b/gnustep-make/Master/test-library.make
new file mode 100644 (file)
index 0000000..a80c8ff
--- /dev/null
@@ -0,0 +1,61 @@
+#
+#   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
diff --git a/gnustep-make/Master/test-tool.make b/gnustep-make/Master/test-tool.make
new file mode 100644 (file)
index 0000000..f399420
--- /dev/null
@@ -0,0 +1,56 @@
+#
+#   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...
diff --git a/gnustep-make/Master/tool.make b/gnustep-make/Master/tool.make
new file mode 100644 (file)
index 0000000..a9ea6d8
--- /dev/null
@@ -0,0 +1,64 @@
+#
+#   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
diff --git a/gnustep-make/NEWS b/gnustep-make/NEWS
new file mode 100644 (file)
index 0000000..4adc2f0
--- /dev/null
@@ -0,0 +1,320 @@
+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.
+
diff --git a/gnustep-make/README b/gnustep-make/README
new file mode 100644 (file)
index 0000000..4d8037d
--- /dev/null
@@ -0,0 +1,72 @@
+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>.
+
+
diff --git a/gnustep-make/Version b/gnustep-make/Version
new file mode 100644 (file)
index 0000000..b977a01
--- /dev/null
@@ -0,0 +1,11 @@
+# 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}
+
+
+
diff --git a/gnustep-make/aggregate.make b/gnustep-make/aggregate.make
new file mode 100644 (file)
index 0000000..76a71e4
--- /dev/null
@@ -0,0 +1,31 @@
+#
+#   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
diff --git a/gnustep-make/application.make b/gnustep-make/application.make
new file mode 100644 (file)
index 0000000..a033ddd
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/bundle.make b/gnustep-make/bundle.make
new file mode 100644 (file)
index 0000000..03ffc02
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/clean_cpu.sh b/gnustep-make/clean_cpu.sh
new file mode 100755 (executable)
index 0000000..8256d3d
--- /dev/null
@@ -0,0 +1,43 @@
+#!/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
diff --git a/gnustep-make/clean_os.sh b/gnustep-make/clean_os.sh
new file mode 100755 (executable)
index 0000000..a43dbfc
--- /dev/null
@@ -0,0 +1,56 @@
+#!/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
diff --git a/gnustep-make/clean_vendor.sh b/gnustep-make/clean_vendor.sh
new file mode 100755 (executable)
index 0000000..af5e415
--- /dev/null
@@ -0,0 +1,24 @@
+#!/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
diff --git a/gnustep-make/clibrary.make b/gnustep-make/clibrary.make
new file mode 100644 (file)
index 0000000..682b876
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/common.make b/gnustep-make/common.make
new file mode 100644 (file)
index 0000000..bebff12
--- /dev/null
@@ -0,0 +1,587 @@
+#   -*-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
diff --git a/gnustep-make/config.guess b/gnustep-make/config.guess
new file mode 100755 (executable)
index 0000000..182c2a1
--- /dev/null
@@ -0,0 +1,1326 @@
+#! /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:
diff --git a/gnustep-make/config.h.in b/gnustep-make/config.h.in
new file mode 100644 (file)
index 0000000..9736014
--- /dev/null
@@ -0,0 +1,97 @@
+/* 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
diff --git a/gnustep-make/config.make.in b/gnustep-make/config.make.in
new file mode 100644 (file)
index 0000000..e77c1de
--- /dev/null
@@ -0,0 +1,132 @@
+#
+#   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@
diff --git a/gnustep-make/config.site b/gnustep-make/config.site
new file mode 100644 (file)
index 0000000..8609904
--- /dev/null
@@ -0,0 +1,110 @@
+#
+#   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
+
diff --git a/gnustep-make/config.sub b/gnustep-make/config.sub
new file mode 100755 (executable)
index 0000000..d1f7cb9
--- /dev/null
@@ -0,0 +1,1451 @@
+#! /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:
diff --git a/gnustep-make/config_thread.m b/gnustep-make/config_thread.m
new file mode 100644 (file)
index 0000000..fbab98b
--- /dev/null
@@ -0,0 +1,19 @@
+/* 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;
+}
diff --git a/gnustep-make/configure b/gnustep-make/configure
new file mode 100755 (executable)
index 0000000..c0989ad
--- /dev/null
@@ -0,0 +1,6260 @@
+#! /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
+
diff --git a/gnustep-make/configure.ac b/gnustep-make/configure.ac
new file mode 100644 (file)
index 0000000..27aedbe
--- /dev/null
@@ -0,0 +1,679 @@
+#
+#   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
diff --git a/gnustep-make/cpu.sh b/gnustep-make/cpu.sh
new file mode 100755 (executable)
index 0000000..24fd04d
--- /dev/null
@@ -0,0 +1,23 @@
+#! /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/'
diff --git a/gnustep-make/create_domain_dir_tree.sh b/gnustep-make/create_domain_dir_tree.sh
new file mode 100755 (executable)
index 0000000..758e303
--- /dev/null
@@ -0,0 +1,72 @@
+#!/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
+
diff --git a/gnustep-make/ctool.make b/gnustep-make/ctool.make
new file mode 100644 (file)
index 0000000..da577c4
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/debugapp.in b/gnustep-make/debugapp.in
new file mode 100644 (file)
index 0000000..9b77756
--- /dev/null
@@ -0,0 +1,231 @@
+#!/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
diff --git a/gnustep-make/documentation.make b/gnustep-make/documentation.make
new file mode 100644 (file)
index 0000000..b2fb7ee
--- /dev/null
@@ -0,0 +1,36 @@
+#
+#   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
diff --git a/gnustep-make/executable.template.in b/gnustep-make/executable.template.in
new file mode 100755 (executable)
index 0000000..68303f1
--- /dev/null
@@ -0,0 +1,249 @@
+#!/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" "$@"
+
diff --git a/gnustep-make/fixpath.sh.in b/gnustep-make/fixpath.sh.in
new file mode 100755 (executable)
index 0000000..c164e01
--- /dev/null
@@ -0,0 +1,92 @@
+#! /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
+
+
diff --git a/gnustep-make/framework.make b/gnustep-make/framework.make
new file mode 100644 (file)
index 0000000..b6fce4a
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/gnustep-make.spec.in b/gnustep-make/gnustep-make.spec.in
new file mode 100644 (file)
index 0000000..36ac39e
--- /dev/null
@@ -0,0 +1,122 @@
+#
+# 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
+
diff --git a/gnustep-make/gswapp.make b/gnustep-make/gswapp.make
new file mode 100644 (file)
index 0000000..aeab6aa
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/gswbundle.make b/gnustep-make/gswbundle.make
new file mode 100644 (file)
index 0000000..267fb2f
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/install-sh b/gnustep-make/install-sh
new file mode 100755 (executable)
index 0000000..240d8f4
--- /dev/null
@@ -0,0 +1,119 @@
+#!/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
diff --git a/gnustep-make/java-executable.template b/gnustep-make/java-executable.template
new file mode 100644 (file)
index 0000000..1bf1bff
--- /dev/null
@@ -0,0 +1,115 @@
+#!/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 "$@"
+
diff --git a/gnustep-make/java-tool.make b/gnustep-make/java-tool.make
new file mode 100644 (file)
index 0000000..a28d9e0
--- /dev/null
@@ -0,0 +1,29 @@
+#
+#   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
diff --git a/gnustep-make/java.make b/gnustep-make/java.make
new file mode 100644 (file)
index 0000000..ba95156
--- /dev/null
@@ -0,0 +1,29 @@
+#
+#   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
diff --git a/gnustep-make/jni.make b/gnustep-make/jni.make
new file mode 100644 (file)
index 0000000..3a10884
--- /dev/null
@@ -0,0 +1,64 @@
+#
+#   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
diff --git a/gnustep-make/ld_lib_path.csh b/gnustep-make/ld_lib_path.csh
new file mode 100755 (executable)
index 0000000..2187075
--- /dev/null
@@ -0,0 +1,187 @@
+#!/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
+
diff --git a/gnustep-make/ld_lib_path.sh b/gnustep-make/ld_lib_path.sh
new file mode 100755 (executable)
index 0000000..1b9b626
--- /dev/null
@@ -0,0 +1,199 @@
+#! /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
+
diff --git a/gnustep-make/library-combo.make b/gnustep-make/library-combo.make
new file mode 100644 (file)
index 0000000..4459b69
--- /dev/null
@@ -0,0 +1,217 @@
+#   -*-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 =
diff --git a/gnustep-make/library.make b/gnustep-make/library.make
new file mode 100644 (file)
index 0000000..b193731
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/messages.make b/gnustep-make/messages.make
new file mode 100644 (file)
index 0000000..9bc09e7
--- /dev/null
@@ -0,0 +1,125 @@
+#
+#   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
+
diff --git a/gnustep-make/mkinstalldirs b/gnustep-make/mkinstalldirs
new file mode 100755 (executable)
index 0000000..0eb69f8
--- /dev/null
@@ -0,0 +1,50 @@
+#!/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
diff --git a/gnustep-make/move_obsolete_paths.sh b/gnustep-make/move_obsolete_paths.sh
new file mode 100755 (executable)
index 0000000..2c2af93
--- /dev/null
@@ -0,0 +1,190 @@
+#!/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
diff --git a/gnustep-make/names.make b/gnustep-make/names.make
new file mode 100644 (file)
index 0000000..9eb351a
--- /dev/null
@@ -0,0 +1,70 @@
+#
+#   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
diff --git a/gnustep-make/native-library.make b/gnustep-make/native-library.make
new file mode 100644 (file)
index 0000000..06deb38
--- /dev/null
@@ -0,0 +1,46 @@
+#
+#   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
diff --git a/gnustep-make/objc.make b/gnustep-make/objc.make
new file mode 100644 (file)
index 0000000..835c1e6
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/openapp.in b/gnustep-make/openapp.in
new file mode 100755 (executable)
index 0000000..aa68403
--- /dev/null
@@ -0,0 +1,186 @@
+#!/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" "$@"
diff --git a/gnustep-make/opentool.in b/gnustep-make/opentool.in
new file mode 100644 (file)
index 0000000..5b7f9d3
--- /dev/null
@@ -0,0 +1,166 @@
+#! /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" "$@"
diff --git a/gnustep-make/os.sh b/gnustep-make/os.sh
new file mode 100755 (executable)
index 0000000..7f68e7f
--- /dev/null
@@ -0,0 +1,23 @@
+#! /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/'
diff --git a/gnustep-make/palette.make b/gnustep-make/palette.make
new file mode 100644 (file)
index 0000000..5bf6086
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/relative_path.sh b/gnustep-make/relative_path.sh
new file mode 100755 (executable)
index 0000000..2268a9f
--- /dev/null
@@ -0,0 +1,163 @@
+#!/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"
diff --git a/gnustep-make/resource-set.make b/gnustep-make/resource-set.make
new file mode 100644 (file)
index 0000000..9a1ffa0
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/rules.make b/gnustep-make/rules.make
new file mode 100644 (file)
index 0000000..332e369
--- /dev/null
@@ -0,0 +1,510 @@
+#   -*-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
diff --git a/gnustep-make/service.make b/gnustep-make/service.make
new file mode 100644 (file)
index 0000000..0db1471
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/setlocaltz.sh b/gnustep-make/setlocaltz.sh
new file mode 100755 (executable)
index 0000000..0f70f1a
--- /dev/null
@@ -0,0 +1,42 @@
+#! /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
diff --git a/gnustep-make/spec-debug-alone-rules.template b/gnustep-make/spec-debug-alone-rules.template
new file mode 100644 (file)
index 0000000..a43a079
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# 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
diff --git a/gnustep-make/spec-debug-rules.template b/gnustep-make/spec-debug-rules.template
new file mode 100644 (file)
index 0000000..1abfe4f
--- /dev/null
@@ -0,0 +1,66 @@
+#
+# 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
diff --git a/gnustep-make/spec-rules.template b/gnustep-make/spec-rules.template
new file mode 100644 (file)
index 0000000..c79c7fe
--- /dev/null
@@ -0,0 +1,40 @@
+#
+# 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
diff --git a/gnustep-make/strip_makefiles.sh b/gnustep-make/strip_makefiles.sh
new file mode 100755 (executable)
index 0000000..2cbbbd2
--- /dev/null
@@ -0,0 +1,43 @@
+#!/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
+
diff --git a/gnustep-make/subproject.make b/gnustep-make/subproject.make
new file mode 100644 (file)
index 0000000..2d52332
--- /dev/null
@@ -0,0 +1,31 @@
+#
+#   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
diff --git a/gnustep-make/tar-exclude-list b/gnustep-make/tar-exclude-list
new file mode 100644 (file)
index 0000000..39e87fd
--- /dev/null
@@ -0,0 +1,2 @@
+CVS
+.svn
\ No newline at end of file
diff --git a/gnustep-make/target.make b/gnustep-make/target.make
new file mode 100644 (file)
index 0000000..c46b5af
--- /dev/null
@@ -0,0 +1,1017 @@
+#
+#   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
+#
+####################################################
diff --git a/gnustep-make/test-application.make b/gnustep-make/test-application.make
new file mode 100644 (file)
index 0000000..f980eb4
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/test-library.make b/gnustep-make/test-library.make
new file mode 100644 (file)
index 0000000..c1fd964
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/test-tool.make b/gnustep-make/test-tool.make
new file mode 100644 (file)
index 0000000..7e6d3e1
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/tool.make b/gnustep-make/tool.make
new file mode 100644 (file)
index 0000000..e6d83ae
--- /dev/null
@@ -0,0 +1,30 @@
+#
+#   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
diff --git a/gnustep-make/transform_paths.sh b/gnustep-make/transform_paths.sh
new file mode 100755 (executable)
index 0000000..66875ec
--- /dev/null
@@ -0,0 +1,39 @@
+#!/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
diff --git a/gnustep-make/user_home.c b/gnustep-make/user_home.c
new file mode 100644 (file)
index 0000000..623210d
--- /dev/null
@@ -0,0 +1,455 @@
+/*
+   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;
+}
+
diff --git a/gnustep-make/vendor.sh b/gnustep-make/vendor.sh
new file mode 100755 (executable)
index 0000000..f3e6d34
--- /dev/null
@@ -0,0 +1,23 @@
+#! /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/'
diff --git a/gnustep-make/which_lib.c b/gnustep-make/which_lib.c
new file mode 100644 (file)
index 0000000..cf02287
--- /dev/null
@@ -0,0 +1,895 @@
+/*
+   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;
+}