]> err.no Git - sope/commitdiff
merging gnustep-make 1.11.0 into trunk
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Tue, 16 Aug 2005 23:16:10 +0000 (23:16 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Tue, 16 Aug 2005 23:16:10 +0000 (23:16 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@1043 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

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

index ad3026da9cff2afd5f76ba4ba2159f45df41f8a7..c68c77665de3a8540b7100d0f3c4142aabafe26e 100644 (file)
@@ -14,3 +14,4 @@ executable.template
 opentool
 gnustep-make.spec
 fixpath.sh
+GNUsteprc
index d39277048e6f16e9fff4601e73019eeaf704700b..ed2af410dd5170622d09cf16d3b2521fffcebb26 100644 (file)
@@ -1,7 +1,7 @@
 Announcement
 ************
 
-The GNUstep Makefile Package version 1.10.0 is now available.
+The GNUstep Makefile Package version 1.11.0 is now available.
 
 What is the GNUstep makefile package?
 =====================================
@@ -12,29 +12,33 @@ 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'
+Changes in version `1.11.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.)
+NOTE: The libobjc library is now linked in with the base library and
+NOT with individual applications or tools (except on MingW). This
+requires that you do a complete rebuild of all libraries, tools and
+apps when switching to this new version.
 
-   * make_services is not run by GNUstep.sh anymore. You must run this
-     manually now (see the gnustep-gui documentation).
+   * New rules for building and using DLLs were implemented. Now gcc
+     and other tricks are used to properly export symbols, so no .def
+     file should be needed.
 
-   * Palettes use a plist instead of a strings format file now for the
-     palette.table file.
+   * The GNUsteprc file in $GNUSTEP_SYSTEM_ROOT is deprecated. See the
+     new GNUstep.conf file (which is not installed by default).
+
+   * Psuedo-framwork support was implemented on MingW. This essentially
+     involves copying the framework to several places so it can be used
+     without links, which Windows does not really support.  There's no
+     other clean way to do it.
+
+   * Support for xxx_WINDRES_FILES on MinGW was implemented.
 
-   * 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
+You can get the gstep-make-1.11.0.tar.gz distribution file at
 <ftp://ftp.gnustep.org/pub/gnustep/core>
 
    Please log bug reports on the GNUstep project page
index 60549be514af76c5db0c17ce6bbe01b2f81e2d9e..ebb24a85e9d03577a11a89e54b306b4808eb0bcc 100644 (file)
@@ -2,7 +2,7 @@
                       Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+                       51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
 
     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
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
 
 Also add information on how to contact you by electronic and paper mail.
index 6c8acb28e068f07b93aa48d42d77e52e02def40e..f9586464520d774f2e5ced2ca7fe13bca6c27a87 100644 (file)
@@ -1,6 +1,330 @@
-2005-08-10  Helge Hess  <helge.hess@opengroupware.org>
+2005-07-21  Adam Fedor  <fedor@gnu.org>
 
-       * Instance/framework.make: fixed header lookup
+       * Version 1.11.0
+
+2005-07-20  Jeremy Bettis <jeremy@deadbeef.com>,
+           Nicola Pero  <n.pero@mi.flashnet.it>
+
+       * config.make.in: Set FRAMEWORK_VERSION_SUPPORT here.
+       * Instance/framework.make: And do not set it here.
+       * Master/rules.make (%.variables, %.subprojects): if
+       FRAMEWORK_VERSION_SUPPORT is not set to yes, use
+       non-Versions directories for frameworks.
+       * config.make.in (HAS_LN_S): Make sure it's set to no
+       when it's not set to yes.
+       
+2005-07-14  Jeremy Bettis <jeremy@deadbeef.com>, 
+           Nicola Pero  <n.pero@mi.flashnet.it>
+
+       Implemented support for xxx_WINDRES_FILES on mingw32.
+       * rules.make ($(GNUSTEP_OBJ_DIR)/%${OEXT}): New mingw32 rule to
+       compile a .rc (windres) file into an object file.
+       (.SUFFIXES): On mingw32, add .rc.
+       * Instance/rules.make (WINDRES_OBJS, WINDRES_OBJ_FILES): New
+       variables for mingw32; generate them from xxx_WINDRES_FILES.
+       (OBJ_FILES_TO_LINK): Add WINDRES_OBJ_FILES to the list of files to
+       link.
+
+2005-07-14 Jeremy Bettis <jeremy@deadbeef.com>, 
+          Nicola Pero <n.pero@mi.flashnet.it>
+
+       Implemented pseudo-framework support for mingw32 (Windows).
+       * Instance/framework.make: disable versioning on Windows, switch
+       to use the new DLL building system already used by libraries, and
+       clean up all the small details of pseudo-frameworks on mingw32.
+       
+2005-07-13  Nicola Pero  <n.pero@mi.flashnet.it>
+
+       * target.make (EXTRACT_CLASS_NAMES_COMMAND): New define for
+       mingw32 where class name symbols start with '___' rather than
+       '__'.
+
+2005-07-12  Nicola Pero  <n.pero@mi.flashnet.it>
+
+       * target.make (FreeBSD ELF): if -pthread is being used for
+       threads, add -pthread to INTERNAL_CFLAGS, INTERNAL_OBJCFLAGS,
+       INTERNAL_LDFLAGS.
+       
+2005-07-12  Nicola Pero  <n.pero@mi.flashnet.it>
+
+       * Instance/framework.make (DUMMY_FRAMEWORK): Mangle
+       framework names into valid ObjC class names.
+
+2005-07-12  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * Documentation/README.MinGW: Updated.
+       
+2005-07-08  Adam Fedor  <fedor@gnu.org>
+
+       * Documentation/news.texi: Update for next version.
+
+2005-07-06  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * Instance/bundle.make: Removed usage of :: rules for all but the
+       internal- rules.  Can't see a reason why we were using :: rules in
+       the other cases, probably a tradition that was followed without
+       really understanding why.
+       * Instance/gswbundle.make: Same change.
+       * Instance/framework.make: Same change.
+       * Instance/subproject.make: Same change.
+
+2005-06-17  Adam Fedor  <fedor@gnu.org>
+
+       * Documentation/GNUmakefile: Don't try to install README.NetBSD
+       * Documentation/machines.texi: Updates.
+
+2005-06-10  Adam Fedor  <fedor@gnu.org>
+
+       * Instance/test-library.make: Remove dejagnu code and replace
+       with rules to inherit from library.make
+
+2005-06-10  Adam Fedor  <fedor@gnu.org>
+
+       * Master/source-distribution.make (dist): Tar/copy the directory
+       instead of moving it to make the distribution. Fixes bug #13305
+
+       * Documentation/machines.texi: Update Suse.
+
+2005-06-06  Adam Fedor  <fedor@gnu.org>
+
+       * Instance/application.make (ALL_GUI_LIBS): Remove OBJC_LIBS,
+       AUXILIARY_OBJC_LIBS, and TARGET_SYSTEM_LIBS
+       * Instance/gswapp.make (ALL_GSW_LIBS): Idem.
+       * Instance/service.make (ALL_SERVICE_LIBS): Idem.
+       * Instance/test-library.make (ALL_TEST_LIBRARY_LIBS): Idem.
+       * Instance/tool.make (ALL_TOOL_LIBS): Idem.
+       Fixes bug #9920.
+
+2005-05-31  Nicola Pero  <n.pero@mi.flashnet.it>
+
+       * Documentation/README.MinGW: Rewritten with updated instructions.
+
+2005-05-23  David Lazaro Saz  <dlazaro@acm.org>
+
+       * Documentation/userfaq.texi: Updated style, trademark usage and some
+       spelling mistakes.
+
+2005-05-21  Adam Fedor  <fedor@gnu.org>
+
+       * Update FSF Address.
+       * Documentation/gnustep-howto.texi: Update required libs.
+
+2005-04-19  Adam Fedor  <fedor@gnu.org>
+
+       * GNUmakefile.in (install): Don't make Makefiles link
+       * target.make (darwin/GNU): Use $(CC) to link library.
+       * Instance/framework.make: More comments.
+
+2005-04-15  Adam Fedor  <fedor@gnu.org>
+
+       * Instance/framework.make: Add top-level symlink for all darwin
+       * ld_lib_path.[c]sh: Clarify framework comment.
+
+       * Documentation/machines.texi: Update
+       * Documentation/README.NetBSD: Remove, obsolete.
+
+2005-04-06  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * GNUstep.conf (USER_GNUSTEP_RC): Fixed typo, it was spelt
+       as .GNusteprc instead of .GNUsteprc.
+
+2005-04-06  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * Instance/framework.make: Create header directories and copy them
+       even if HEADER_FILES is empty.  This fixes problems when
+       subprojects have headers, but the top-level framework does not.
+       * Instance/Shared/headers.make (HEADER_FILES_DIR,
+       HEADER_FILES_INSTALL_DIR): Always compute those two variables
+       even if HEADER_FILES is empty.
+
+2005-04-06  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * Instance/framework.make ($(FRAMEWORK_HEADER_FILES)): Fixed
+       depending on HEADER_FILES, which wasn't taking HEADER_FILES_DIR
+       into account (Fix suggested by Matt Rice <ratmice@yahoo.com>).
+       
+2005-03-22  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * Instance/application.make (ALL_LDFLAGS): When on a platform
+       where DLLs are built (such as Mingw), automatically generate a
+       .exe.a library for the application.  Required by Gorm.
+
+2005-03-21  Adam Fedor  <fedor@gnu.org>
+
+       * GNUmakefile.in: Don't install .GNUsteprc file
+       * GNUstep.conf: New file.
+       * Documentation/README.Darwin,  Documentation/README.MinGW,
+       Documentation/faq.texi, Documentation/machines.texi: Updates.
+
+2005-03-21  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * Instance/palette.make (internal-palette-all_): Use the old dll
+       rules only if OLD_DLL_SUPPORT is YES.  In all other cases,
+       including Mingw, use the standard ones.
+       (Info-gnustep.plist): Include PALETTE_OBJ_EXT in NSExecutable.
+
+2005-03-21  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * Instance/bundle.make: Use make quotes, not shell quotes, for
+       BUNDLE_OBJ_EXT when used in rules.
+       
+2005-03-21  Nicola Pero <n.pero@mi.flashnet.it>
+       
+       * target.make (SHARED_LIBEXT): Set to .dll.a for Mingw so that
+       which_lib manages to find the libs and building with debug=yes now
+       works on Mingw.
+
+2005-03-10  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * Instance/library.make: On Windows, try to link against all 
+       libraries, except the one we are compiling.
+       * Instance/bundle.make: Replaced all occurrences of WITH_DLL with
+       BUILD_DLL.
+       * Instance/framework.make: Same change.
+       * Instance/palette.make:  Same change.
+       * Instance/bundle.make (build-bundle): Use the old DLL rules to
+       build bundles only if OLD_DLL_SUPPORT is defined.  Else, use the
+       rules specified in target.make for that platform.
+       * target.make (BUNDLE_LD): Just use -shared on Mingw.
+       
+2005-03-10  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * user_home.c (main): Fixed missing case for Windows ... if
+       HOMEPATH was already a full path, the code would forget to copy
+       the path into home.
+
+2005-03-09  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * configure.ac: Detect libobjc.dll.a as a custom ObjC library.
+       * configure: Regenerated.
+
+2005-03-01  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * target.make (WITH_DLL): Variable removed.
+       (OLD_DLL_SUPPORT): New variable which is set to yes for cygwin,
+       but to no for mingw.
+       (DLLTOOL): Do not define for mingw.
+       (DLLWRAP): Do not define for mingw.
+       (SHARED_LIB_LINK_CMD): New variable for mingw.
+       (AFTER_INSTALL_SHARED_LIB_CMD): The same.
+       (AFTER_INSTALL_SHARED_LIB_CHOWN): The same.
+       (SHARED_LIBEXT): Do not define to be .a on mingw; that is only
+       confusing; use LIBEXT instead.
+       (LIBEXT): Define to be .a on mingw.
+       (TARGET_SYSTEM_LIBS): Define using =, not :=.
+       
+       * rules.make (ALL_CPPFLAGS): Check BUILD_DLL instead of WITH_DLL
+       when adding -DGNUSTEP_WITH_DLL.
+
+       * Instance/library.make (LIBRARY_NAME_WITHOUT_LIB): New variable.
+       (LIBRARY_FILE_EXT): Unused variable removed.
+       (CLEAN_library_NAME): Generate using make functions rather than
+       firing external shell scripts to increase building speed.
+       Execute existing DLL code when OLD_DLL_SUPPORT is set to yes.  For
+       BUILD_DLL but not OLD_DLL_SUPPORT, added brand new code which uses
+       the new target.make mingw variables and takes advantage of the new
+       DLL support in GCC and mingw.
+
+2005-02-19  Adam Fedor  <fedor@gnu.org>
+
+       * Documentation/README.MinGW: Minor edit.
+       * Documentation/faq.texi: Add question.
+       * Documentation/gnustep-howto.texi: Add service
+       * Documentation/machines.texi: Edit FreeBSD 5.x 
+
+2005-02-18  Richard Frith-Macdonald <rfm@gnu.org>
+
+       * Documentation/README.MinGW: Update with my latest experiences.
+
+2005-01-31  Adam Fedor  <fedor@gnu.org>
+
+       * Documentation/GNUmakefile: Install README.* docs
+       * Documentation/machines.texi: Typo.
+
+2005-01-14  Armando Di Cianno <fafhrd@gentoo.org>
+
+       * GNUstep-reset.sh (reset-path): Add new argument with a path
+       fragment to make the path removal more accurate.  Use it with
+       appropriate arguments for each variable. (with small changes by
+       Nicola).
+
+2005-01-05  Sergii Stoian <stoian255@ukr.net>
+
+       * Instance/Shared/bundle.make (shared-instance-bundle-all): Fixed
+       copying resource files and localized resource files into the
+       bundle when they are in subdirs.
+       
+2004-12-27  Quentin Mathe <qmathe@club-internet.fr>
+       
+        * Documentation/README.Darwin: Rewritten the base library install
+        instructions (libxslt support with Fink explained) and other minor
+        updates.
+        * Documentation/machines.texi: Made the GNUstep on MacOSX section a bit
+        more clear.
+        * GNUstep-HOWTO: Synchronized with Documentation/machines.texi and made
+        the spacing more consistent.
+
+2004-12-26  Quentin Mathe <qmathe@club-internet.fr>
+       
+        * Documentation/README.Darwin: Updated to take in account the latest 
+        feedback by Uli Kusterer.
+        * Documentation/machines.texi: 
+        * GNUstep-HOWTO:
+        Updated the current GCC state for GNUstep on Darwin.
+
+2004-12-26  Quentin Mathe <qmathe@club-internet.fr>
+       
+        * Documentation/README.Darwin: Improved indentation and presentation.
+
+2004-12-19 Richard Frith-Macdonald <rfm@gnu.org>
+
+        * target.make: For gnu compiler on darwin, use flat namespace and
+       undefined warning for executables as well as libraries/bundles so
+       that we can link with libraries/bundles without havint to explictly
+       name all the libraries that thay depend upon.
+
+2004-12-06  Adam Fedor  <fedor@gnu.org>
+
+       * Documentation/machines.texi (MacOSX): Update (info from Markus
+       Hitter).
+
+       * Documentation/README.Darwin: Clean up, simplify.
+
+Sun Nov  7 04:18:39 2004  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * tar-exclude-list: Use *.svn instead of .svn to have
+       .svn dirs excluded.
+
+Sun Nov  7 04:07:50 2004  David Wetzel <dave@turbocat.de>
+
+       * Instance/Shared/bundle.make: Everywhere use the '-f' flag to 'cp
+       -r' so that read-only files such as subversions dirs can be
+       written and overwritten.
+
+Thu Nov  4 08:39:29 2004  Nicola Pero <n.pero@mi.flashnet.it>
+
+       * common.make (RM_LN_S): New variable.
+       * target.make: Replaced 'rm -f', when used before creating a
+       symlink, with $(RM_LN_S).
+       * rules.make ($(GNUSTEP_OBJ_DIR)): Same change.
+       * Instance/framework.make: Same change.
+       * Instance/gswbundle.make: Same change.
+
+2004-10-29  Adam Fedor  <fedor@gnu.org>
+
+       * Documentation/README.Cygwin: Updated
+       * Documentation/README.Darwin: Minor update
+       * Documentation/gnustep.init: Add navigation tags back
+
+2004-10-18  Adam Fedor  <fedor@gnu.org>
+
+       * Documentation/README.MinGW: Mention Windows installer. Update links
+       * Documentation/gnustep-howto.texi: Some setup no longer needed.
+       * Documentation/gnustep.init: Don't add links - currently not 
+       referenced correctly.
+       * Documentation/machines.texi: Add compilers section.
+
+       * Instance/tool.make: Fix a typo.
 
 2004-09-07  Adam Fedor  <fedor@gnu.org>
 
index 23856818dd43ba2ebbf7e0a16d6de509cccfdb4e..a321e1603eacf7aeb55af4d1c10112d4d6827291 100644 (file)
@@ -68,6 +68,9 @@ DOCUMENT_NAME = gnustep-howto faq filesystem internals machines make userfaq
 DOCUMENT_TEXT_NAME = FAQ INSTALL README NEWS GNUstep-HOWTO ANNOUNCE
 
 TOP_DOC_FILES = FAQ INSTALL README NEWS GNUstep-HOWTO ANNOUNCE
+README_FILES = README.Darwin README.MinGWOnCygwin README.Cygwin \
+       README.MinGW
+
 
 GNUstep-HOWTO_TEXI_FILES = version.texi
 GNUstep-HOWTO_TEXT_MAIN = gnustep-howto.texi
@@ -146,8 +149,11 @@ version.texi: ../Version
         > version.texi
 
 # Install manually man pages
-after-install:: $(GNUSTEP_DOCUMENTATION)/Developer/Make/Manual
+after-install:: $(GNUSTEP_DOCUMENTATION)/Developer/Make/Manual $(GNUSTEP_DOCUMENTATION)/User/GNUstep
        $(INSTALL_DATA) DESIGN $(GNUSTEP_DOCUMENTATION)/Developer/Make/Manual
+       for file in $(README_FILES); do \
+         $(INSTALL_DATA) $$file $(GNUSTEP_DOCUMENTATION)/User/GNUstep/$$file; \
+       done;
        if [ ! -f $(GNUSTEP_DOCUMENTATION_MAN) ]; then \
          $(MKDIRS) $(GNUSTEP_DOCUMENTATION_MAN); \
        fi; \
index de2726c8bf9d597edf478cb064b5611790993c7a..604228234b4a1522dc8d76d1d61dcf278ff8b937 100644 (file)
@@ -1,5 +1,8 @@
 Date:  17-Sep-2002 (tested under windows-xp)
 Author: Ildar Mulyukov <ildar@users.sourceforge.net>
+Update:        23-Oct-2004 (tested under windows-2000)
+Author: Adam Fedor <fedor@gnu.org>
+
 
 PURPOSE
 -------
@@ -22,7 +25,7 @@ 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
+unforseen problems. You should be relatively confident at working with
 Cygwin before attempting to install GNUstep.
 
 ADDITIONAL COMMENTS
@@ -60,59 +63,39 @@ 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.  
+Cygwin already contains every package needed for GNUstep. The default
+installation, however, does not include every package needed. See the
+GNUstep-HOWTO lists all the packages you might need. A probably incomplete
+list is given below:
 
-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.  
+For base (non-GUI):
+gcc-objc
+libxml2
+libxslt
 
-Note2: You can make packages from programs you built with utility
-provided in APPENDIX A. These packages can be installed with setup.exe
+For GUI:
+X11 installation
+libtiff
+libtiff-devel
+libjpg
+libpng
 
-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.
+can get the latest release of the following libraries. 
 
-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)
+You need these packages:
 
+GNUstep-make 
+ffcall
+GNUstep-objc
+GNUstep-base
 
+GNUstep-gui 
+GNUstep-back
 
 
 Building and installing libraries
@@ -121,86 +104,61 @@ 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
+As ususal. e.g. 
+
+./configure
+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)
+DLLs and it's DLL.
 
-Go to gnustep-objc (or from CVS, into dev-apps/libobjc), and type
+Unpack gnustep-objc, 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.
+Note: do not use configure.
 
 
 Building and installing GNUstep-base
 ------------------------------------
 
-Go to gnustep-base (or from CVS into the core/base directory), and type
+Unpack gnustep-base, 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).
-
+base library and some tools, and install the whole lot.
 
 
 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
+Unpack to gnustep-gui, 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
 ----------
 
index d4b62028aa1d9c848d890014dd6ada758ea4fc95..ff92523f9551ee0476ccb361c9e8413c45c5b59c 100644 (file)
@@ -1,5 +1,5 @@
 Date : 15-Jan-2004
-Last update: 20040727 (tested under Mac OS X 10.3 / Darwin 7)
+Last update: 20041227 (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>
@@ -8,7 +8,7 @@ Authors: Adam Fedor <fedor@gnu.org>
 PURPOSE
 -------
 
-This document is intended to provide a step by step instruction on how to get
+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
@@ -19,143 +19,124 @@ 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
+actual values from your system. For instance, if you installed GCC in /opt/local
    
-   ./configure CC='<gcc install dir>/bin/gcc'
+     ./configure CC=<gcc install dir>/bin/gcc
    
-   will become
+will become:
    
-   ./configure CC='/opt/local/bin/gcc'
+     ./configure CC=/opt/local/bin/gcc
    
 [] denotes an optional parameter. For instance:
 
-  ./configure [--enable-graphics=art]
+     ./configure [--enable-graphics=art]
   
-  can be either:
+can be either:
   
-  ./configure
+     ./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
+or:
 
+     ./configure --enable-graphics=art
 
 PRELIMINAIRES
 -------------
 
-For all targets, get the following software:
+For all targets, get the following software. I'd recommend installing Fink (and 
+FinkCommander on Mac OS X) to get all this software. If you use Fink, you 
+probably need to add the two lines below to your .bashrc or .profile (or similar 
+startup) file:
+
+     test -r /sw/bin/init.sh && . /sw/bin/init.sh
+     export DYLD_LIBRARY_PATH=/sw/lib:$DYLD_LIBRARY_PATH
 
-libxml2  (Optional, highly recommended, already in Mac OS X 10.3 / Darwin 7)
-libtiff  (Required)
-libjpeg  (Optional, highly recommended)
-libpng   (Optional, highly recommended)
+Remember you usually need root access to install software. That means when you 
+see an instruction like 'make install', you usually need to use sudo 
+('sudo make install') or be logged in as root (not recommended).
 
-libffi   (Required, only contained in the gcc distributions and pyobjc)
-ffcall   (On Darwin x86 - use instead of libffi)
+     libxml2  (Optional, highly recommended, already in 
+               Mac OS X 10.3 / Darwin 7)
+     libxslt  (Optional)
+     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)
+     Xfree86  (Required, already in Mac OS X 10.3/Darwin 7)
 
-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)
+     libart2   (Optional, but required for art backend)
+     freetype2 (Optional, but required for art backend)
 
-dlcompat (Required, to be able to load bundles, included with Fink installation)
+     dlcompat (Required, already in Mac OS X 10.3 or later)
 
 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.
-
+The main GNUstep project pages tell you how to get hold of this. You can get the 
+latest release of the following libraries.
 You need these gnustep packages:
 
-GNUstep-make
-GNUstep-base
-GNUstep-gui
-GNUstep-back
+     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
+library and Application Kit library possible, called library combos. The usual
 notation is:
 
-objcruntime-foundation-applicationkit
+     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.
+     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
+                       # academic 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
+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
+     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. 
+Unfortunately, using Apple GCC with gnu-gnu-gnu doesn't appear to work currently 
+(see below for more info), so this option really isn't open now.  In addition, 
+if you are on Mac OS X, you can also use the Apple Foundation and AppKit 
+frameworks to do GNUstep development with Cocoa, but this only works with the 
+Apple compiler:
 
-In addition, if you are on Mac OS X, you can also use the Apple Foundation and
-AppKit frameworks to do GNUstep development with Cocoa, but this only works with
-the Apple compiler:
-
-Apple GCC, apple-apple-apple
+     Apple GCC, apple-apple-apple
 
 GNUstep on Darwin x86 
 ---------------------
 
-For GNUstep on Darwin x86, Apple GCC compiles GNUstep-base, but causes strange
+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.
+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.
 
 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)
+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.
+Version 3.3.5 seems to cause the fewest headaches, but later versions 3.4.x
+don't work on Mac OS X / Darwin (because libobjc cannot be compiled, the 
+related GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).
 
 Building FSF-GCC
 ----------------
@@ -164,104 +145,113 @@ 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:
+     ln -s /usr/bin/c++filt /usr/bin/c++filt3          # Missing on Darwin 7.0.1
+                                                       # x86 but not necessary 
+                                                       # on OpenDarwin 7.2.1
+                                                       
+and then configure GCC with:
 
-mkdir build                                            # create a sibling to the
+     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
+     cd build
+     <dir>/gcc-X.X.X/configure \                       # Don't try to build c++
+      --enable-languages=c,objc
+
+     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.
+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
+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
+     mkdir build
+     cd build
+     <dir>/gcc-x.x.x/configure \                       # The first option
+     [--prefix=<gcc install dir>] \                    # permits to change the
+     [--enable-languages=c,objc]                       # fact GCC installs by     
+                                                       # default in /usr/local
+                                                       # The second option 
+                                                       # permits to speed the 
+                                                       # GCC compilation in the
+                                                       # case you will not use 
+                                                       # languages other than c 
+                                                       # and objc
+                                           
+     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):
+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
+     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
+     echo 'setenv CC <gcc install dir>/bin/gcc' >> ~/.tcshrc
 
-else use [CC='<gcc install dir>/bin/gcc'] option when running configure.
+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']
+     ./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
+(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']
+     ./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
+     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
+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:
+Untar the GNU GCC distribution, at least a version 3.4.x (even if you are not 
+compiling the compiler) and:
 
-mkdir libffi-build
-cd libffi-build
-<gcc-3.4 install dir>/libffi/configure [CC='<gcc install dir>/bin/gcc']
-make
-make install
+     mkdir libffi-build
+     cd libffi-build
+     <gcc-3.4.x 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.
+Note: some 3.4.x versions doesn't have a working libffi on Mac OS X / Darwin. 
+Use PyObjC libffi from http://pyobjc.sourceforge.net, in the case libffi 
+install doesn't work with the 3.4.x version.
+(This libffi issue needs to be tested with the various GCC 3.4.x versions)
 
-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
+     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
@@ -269,73 +259,75 @@ Warning ! Don't install libffi in <gcc install dir>, let it just install in
 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
+     ./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
+     make
+     make install
 
 Source GNUstep.sh
 -----------------
 
 If you are using bourne shell like bash, type:
 
-. <GNUstep install dir>/System/Makefiles/GNUstep.sh
+     . <GNUstep install dir>/System/Makefiles/GNUstep.sh
 
 If you are using c shell like tcsh, type:
 
-source <GNUstep install dir>/System/Makefiles/GNUstep.csh
+     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: 
+Go to GNUstep-base (or from CVS into the core/base directory).
+
+Note: If you are using .
+
+If you are using the FSF GCC (with the Apple GCC which only works currently 
+with the apple-apple-apple library combo, you don't need to run the configure 
+yourself unless you need special options), type:
+
+     ./configure [--with-xml-prefix=/usr] [--disable-xmltest] [--disable-do] \
+     [LDFLAGS=-L/sw/lib] [CPPFLAGS=-I/sw/include] [CC=<gcc install dir>/bin/gcc]
+
+To know which options you need to use with your environment:
+     
+     --disable-xmltest is needed with the latest Mac OS X 10.3 / Darwin 7 
+     versions xml2-config tool and libxml2 headers reports differents versions, 
+     because of this versions conflict the GNUstep xmltest fails.
+     
+     --with-xml-prefix=/usr is needed with Mac OS X 10.3 / Darwin 7 when you
+     want to build the base library with xslt support and you have installed
+     libxslt with Fink (because Fink installs lixml2 without the headers when 
+     you install lixslt, and by default the base library tries to link Fink
+     libxml2 first, then the configuration fails because configure looks for 
+     the libxml2 headers).
+     
+     --disable-do is needed when you decide to not build libffi or ffcall.
+     
+     LDFLAGS=-L/sw/lib is needed when you installed libxslt with Fink and you
+     want to compile the base library with libxslt support.
+     
+     CPPFLAGS=-I/sw/include is needed when you installed libxslt with Fink and 
+     you want to compile the base library with libxslt support.
 
-  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']
+  
+followed when you are using the Apple GCC by: 
 
-or if you decided not to build libffi or ffcall:
+     make install
+     
+Note: this should automatically run the configure script for you (in the case 
+you  haven't done it).
 
-  ./configure --disable-do [CC='<gcc install dir>/bin/gcc']
-  
-followed by
+otherwise (with the FSF GCC) followed by:
 
-  make
-  make install
+     make
+     make install
   
-On the apple-apple-apple target, it will only build the GNUstep additions
+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.
@@ -343,33 +335,34 @@ GNUstep-gui.
 Building and installing GNUstep-gui
 -----------------------------------
 
-Go to GNUstep-gui (or from CVS into the core/gui directory), and type
+Go to GNUstep-gui (or from CVS into the core/gui directory).
 
-If you are using the Apple GCC or the FSF GCC type: 
+If you are using the Apple GCC (doesn't work currently) or the FSF GCC type: 
 
-  ./configure --disable-gsnd  [CC='<gcc install dir>/bin/gcc']
+     ./configure --disable-gsnd  [CC=<gcc install dir>/bin/gcc]
   
-followed by
+followed by:
 
-  make
-  make install
+     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.
+In the case configure didn't found libjpeg, use 
+--with-jpeg-library=<jpeg libdir> --with-jpeg-include=<jpeg include dir> to have
+the libjpeg detected.
 
 Example with Fink:
 
-./configure --disable-gsnd --with-jpeg-library=/sw/lib
---with-jpeg-include=/sw/include
+     ./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
+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
@@ -378,44 +371,69 @@ 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
+     ./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
+     export DYLD_LIBRARY_PATH=/sw/lib:$DYLD_LIBRARY_PATH
 
-Then you should be able to configure back and install it.
+NOTE: I found also that even though the X11SDK.pkg package has freetype2,
+it is missing a crucial include file and also has some undefined symbols. I
+had to install the freetype2-dev package from fink and add this to my path
+so that it could be found:
+PATH=/sw/lib/freetype/bin:$PATH
+make sure in config.make that -L/sw/lib/freetype2/lib is included before -L/usr/X11R6/lib (Adam Fedor <fedor@gnu.org>)
 
-  ./configure --enable-graphics=art [CC='<gcc install dir>/bin/gcc']
-  make
-  make install
+Then you should be able to configure back and install it:
 
-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].
+     ./configure --enable-graphics=art [CC='<gcc install dir>/bin/gcc']
+     make
+     make install
 
-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.
+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). 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
+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) :
+it later):
 
-  defaults write NSGlobalDomain XWindowBufferUseXShm NO
+     defaults write NSGlobalDomain XWindowBufferUseXShm NO
 
-because Apple X11 doesn't support well shared memory for buffering (wich libart2
-uses by default).
+because Apple X11 doesn't support well shared memory for buffering (which 
+libart2 uses by default).
+
+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
 
 More informations on the art backend
 ------------------------------------
 
-To have a working art backend... You will also need to download and install
+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
@@ -431,7 +449,8 @@ 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
+
+     /sw/bin/wmaker.inst
 
 GNUstep daemons
 ---------------
@@ -440,25 +459,64 @@ 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:
+su, the DYLD_LIBRARY_PATH environment variable of your user isn't used, 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
+     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
+     . $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
+     source $GNUSTEP_SYSTEM_ROOT/Library/Makesfiles/GNUstep.csh
 
 and just do:
 
-opentool gdnc
-opentool gpbs
+     opentool gdnc
+     opentool gpbs
+
+GNUstep applications
+--------------------
+
+Now you can install GNUstep applications like Gorm, ProjectCenter etc.
+Remember the fact that when you do 'sudo make install', the $DYLD_LIBRARY_PATH 
+variable of your user is not used by root. In that case, GNUstep-make could 
+complain for the undefined library path, the solution is identical to the one we 
+used to launch the GNUstep daemons above:
+
+     su root
+
+then with bourne shell like bash (Mac OS X 10.3):
+
+     . $GNUSTEP_SYSTEM_ROOT/Library/MakeFiles/GNUstep.sh
+
+or with c shell like tcsh (Mac OS X 10.2):
+
+     . $GNUSTEP_SYSTEM_ROOT/Library/MakeFiles/GNUstep.sh
+
+and just do:
+
+     make install
+
+Note: upon launching applications like Project Center which links a framework, 
+you will probably get an error message about the library 
+<Framework name>.framework/<Framework name> which cannot be found, to fix that, 
+just create a symbolic link to the actual library file, which is installed 
+deeper in the hierarchy:
+
+     cd $GNUSTEP_SYSTEM_ROOT/Library/Frameworks/<Framework name>.framework
+     sudo ln -s Versions/<Current version>/lib<Framework name>.dylib <Framework name>
+
+Example with the ProjectCenter framework (0.4.0 version):
+
+     cd $GNUSTEP_SYSTEM_ROOT/Library/Frameworks/ProjectCenter.framework
+     sudo ln -s Versions/0.4.0/libProjectCenter.dylib.0.4.0 ProjectCenter
 
 ---
 
index 81810ca374b4e5155c4dcad17995a1fc55eedf36..0e33f79e11d83e0af779b418a14d1b539b2248ae 100644 (file)
@@ -1,6 +1,6 @@
-Date:  09-Jan-2003 (tested under Windows XP)
-Update: 23-Feb-2003 (also tested under Windows 2000)
-Author: Richard Frith-Macdonald <rfm@gnu.org>
+Date:  31-May-2005 (tested under Windows XP)
+Author: Nicola Pero <n.pero@mi.flashnet.it>, 
+        after Richard Frith-Macdonald <rfm@gnu.org> and others
 
 PURPOSE
 -------
@@ -20,142 +20,128 @@ 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.
+environment, please read README.Cygwin instead.
 
+The gui library is only partially ported to run under MinGW. The look
+and behavior may not be consistant.
 
 PRELIMINARIES
 -------------
 
-Before we start, we need to get some preliminary Windows software -
-a tool for fetching source code via CVS.
+One way to vastly simplify installing GNUstep, is to use the Windows-based
+GNUstep installer. Currently, this installer only installs the non-gui
+portion of GNUstep. Get it from
+
+http://www.gnustep.org/resources/sources.html#windows
+
+If you have already installed this, you can skip to the section
+'Additional gui libraries '. Although you may want to read the rest of
+the instructions for other helpful information.
+
+
+STEP BY STEP INSTALLATION INSTRUCTIONS
+--------------------------------------
+
+1. Install MinGW
+================
+
+Download MinGW-4.1.0 or later from
+http://sourceforge.net/projects/mingw Install it into
+
+C:/xxx/msys/1.0/mingw
+
+(where /xxx/ is the top-level path you want to use, I use Nicola/GNUstep so
+I install it into C:/Nicola/GNUstep/msys/1.0/mingw) (earlier versions of 
+MinGW might not work)
+
+PS: Download MinGW-4.1.0.exe, then start it up.  Select the
+installation path C:\xxx\msys\1.0\mingw; then install all the Current
+versions of everything (but not the sources).
 
-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.
+2. Install msys
+===============
 
+Download MSYS-1.0.10 or later from the same site.  Install it into
+C:/xxx/msys/1.0
 
-Installing and setting up MINGW and MSYS
-----------------------------------------
+The postinstall script should ask you for the mingw location, then
+detect it and be happy that it's there and all is setup properly.
 
-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)
+3. Install msys developer toolkit
+=================================
 
-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.
+Download msysDTK-1.0.1 or later from the same site.  Install it into
+C:/xxx/msys/1.0
+
+
+Now your MSYS/MinGW system should be setup!  There should be an icon
+on your desktop called 'MSYS'.  Double-clicking on it will launch a
+Unix-like shell.  Go around and make sure you know how to use it.  Log
+into it and work in it.
+
+
+4. Additional Windows steps
+===========================
 
 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
+some versions of Windows have changed the layout of this structure.
+This modification may be 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.
+It's a good idea to remove the libobjc.a and libobjc.la and
+include/objc headers 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
------------------
+5. 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:
+export CVS_RSH=ssh
+cvs -z3 -d:ext:anoncvs@savannah.gnu.org:/cvsroot/gnustep co core
 
-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)
+6. Installing gnustep-make
+==========================
 
-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.
+go in core/make and do
 
+./configure --prefix=/C/xxx/GNUstep
+make
+make install
 
-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!
+7. setup your GNUstep environment
+=================================
 
-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).
+NB: you will need to do the same every time you start up your MSYS
+shell to do development
 
-Now you can type 'make install' to build and install the make package.
+. /C/xxx/GNUstep/System/Library/Makefiles/GNUstep.sh
 
-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:
+Also, set HOMEPATH, HOMEDRIVE and HOME ... add the following lines to
+your ~/.profile:
 
 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
+export HOMEPATH=/home/Nicola
+export HOME=/C/xxx/msys/1.0/home/Nicola
+. /C/xxx/GNUstep/System/Library/Makefiles/GNUstep.sh
+
+(obviously replacing 'Nicola' with your Login name) (not sure if this 
+setting of HOMEDRIVE etc is really required, will investigate)
 
 NOTE: Sometimes the HOME variable may already be set by Windows to be
 %USERPROFILE% (which is the Windows variable that contains the path of
@@ -168,176 +154,138 @@ into errors.
      no compatibility symlink to $GNUSTEP_SYSTEM_ROOT/Library/Makefiles
 
 
+8. Installing gnustep-objc
+==========================
 
-Building and installing libobjc
--------------------------------
+Download gnustep-objc, and compile it:
 
-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.
+make
+make install
 
-Go to gnustep-objc (or from CVS, into dev-libs/libobjc), and type
 
-  make install
+9. Reinstalling gnustep-make
+============================
 
-This should build and install the ObjectiveC runtime and headers for you.
+Go in core/make and reconfigure/recompile again so that gnustep-objc
+is detected:
 
+make distclean
+./configure
+make 
+make install
 
+gnustep-make should have detected your custom libobjc.
 
-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
+10. Installing ffcall
+=====================
 
-Ignore any other instructions for building this ...
+Download ffcall from the GNUstep website, and type:
 
-First, in the shell window in which you have set up your GNUstep
-environment, type
+./configure --prefix=$GNUSTEP_SYSTEM_ROOT
+make
+make install
 
-./configure --prefix=$GNUSTEP_SYSTEM_ROOT \
- --libdir=$GNUSTEP_SYSTEM_ROOT/Library/Libraries \
- --includedir=$GNUSTEP_SYSTEM_ROOT/Library/Headers
+(if you get a popup about contest.exe failing, just ignore it)
 
-Now you can now build and install it simply by typing:
+11. Installing additional packages
+=======================
 
-  make
-  make install
+Download the following packages:
 
+ libintl-0.11.5-2.bin.zip
+ libintl-0.11.5-2.lib.zip
+ (important: libintl-0.14.4 is untested, use 0.11.5 to be safe)
 
+ libiconv-1.8.1-bin.zip 
+ libiconv-1.8.1-lib.zip 
 
-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
+ zlib-1.2.2-bin.zip
+ zlib-1.2.2-lib.zip
 
-  make install
+from http://gnuwin32.sourceforge.net, and install them.  To
+install them, simply unzip them into /C/xxx/msys/1.0/mingw.
 
-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).
 
+12. XML support
+===============
 
+Not working yet.
 
-Building and installing GNUstep-gui
------------------------------------
 
-To build the gui, you need to have libtiff installed ...
+13. Installing gnustep-base
+===========================
 
-Go to gnustep-gui (or from CVS into the core/gui directory), and type
+Go in gnustep-base, and type 
 
-  make install
+./configure --disable-xml
+make
+make install
 
+At this point, you should be able to compile and run any non-gui tool
+and library.  The next steps are only required for gui applications.
 
 
+14. Installing gui additional packages
+======================================
 
-Building and installing GNUstep-back
-------------------------------------
+For the gui, download and install the following packages:
 
-This software is PRE-ALPHA ... it is present in CVS for people who wish to
-help porting the GNUstep backend to Windows!
+  jpeg-6b-4-bin.zip
+  jpeg-6b-4-dep.zip
+  jpeg-6b-4-lib.zip
 
-In the back directory, type
+  tiff-3.7.2-bin.zip
+  tiff-3.7.2-dep.zip
+  tiff-3.7.2-lib.zip
 
-  make install
+  libpng-1.2.8-bin.zip
+  libpng-1.2.8-lib.zip
 
+The process is always the same: download the zip file from the
+gnuwin32 website, then unzip them into /C/xxx/msys/1.0/mingw.
 
 
+15. Installing gnustep-gui
+==========================
 
+Go in the gui, and type:
 
-Troubleshooting
----------------
+  ./configure
+  make
+  make install
 
-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.
 
+16. Installing gnustep-back
+===========================
 
+Go in back, and type:
+
+  ./configure
+  make
+  make install
 
-Good Sites for Pre-Compiled Binaries
-------------------------------------
 
-Many libraries, etc from:
+17. Testing your gui installation
+=================================
 
-<http://gnuwin32.sf.net> (libtiff, libxml2)
+Go in a simple gui application (examples/gui a very good starting
+point), compile and run it. :-)
 
-MingW guile from
+Additionally, you might want to compile and run Gorm or other GNUstep
+applications.  Gorm (and hopefully other GNUstep applications too)
+should compile and run out of the box.
 
-<http://www.textsure.net/~ela/devel.html>.
 
-also need guile from
 
-<http://sourceforge.net/project/showfiles.php?group_id=7382>
+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.
 
-for guile-config file.
+If you pass any include (-Ixxx) paths to GCC, make sure they do *not*
+end with a slash.  The current GCC/MinGW releases have a bug where
+such paths would be ignored.
index 54ae2792b6c9ee3161f77d878945715ddfa67c20..aece2141db60e48b6d1ae3895a4acc7b55f97b74 100644 (file)
@@ -56,14 +56,16 @@ 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 Use #ifndef GNUSTEP for Apple only code.
 @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
 
+See also @url{http://mediawiki.gnustep.org/index.php/Writing_portable_code}
+for more information.
+
 @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
 
@@ -88,6 +90,11 @@ interface.  It has a number of advantages over the proprietary nib format:
 portability, open standard, easy localization, themeability, and 
 intelligent autolayout.
 
+@item Gorm
+The equivalent of the Interface Builder in GNUstep. It might be easier to
+just recreate the interface using Gorm rather than dealing with 
+translations.
+
 @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
@@ -215,6 +222,7 @@ asset - volunteers are, as always, welcome.
 * How can I help with GNUstep?::  
 * Helping develop GNUstep::     
 * Helping document GNUstep::    
+* How do I assign my contribution?::  
 * How do I update the task list?::  
 * How do I start writing tests?::  
 * How do I start writing applications?::  
@@ -246,8 +254,7 @@ 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.
+project.  Get in touch with the GNUstep maintainer 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
@@ -278,7 +285,7 @@ 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
+@node Helping document GNUstep, How do I assign my contribution?, Helping develop GNUstep, Compiling and Developing
 @subsection  Helping document GNUstep
 
 All class documentation is written directly in the source code itself
@@ -302,7 +309,19 @@ 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
+@node How do I assign my contribution?, How do I update the task list?, Helping document GNUstep, Compiling and Developing
+@subsection How do I assign my contribution?
+
+Everyone who contributes more than 20 lines of code or so needs to
+sign a copyright assignment so that the FSF can have legal control of
+the copyright. This makes it easier to defend against any copyright
+infringement suits.  Contact the GNUstep maintainer for instructions
+on how to do this or download and fill out the form
+@url{http://www.gnustep.org/resources/request-assign.future}
+(instructions are included).
+
+
+@node How do I update the task list?, How do I start writing tests?, How do I assign my contribution?, Compiling and Developing
 @subsection  How do I update the task list?
 
  The task list (@url{http://savannah.gnu.org/pm/?group_id=99}) is 
index f4b091f050e8194268953053e7e5d88fa3da73b5..e56f9af962e3685fec411bd004ca95fc1d596315 100644 (file)
@@ -107,7 +107,8 @@ 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.
+XML-based property-lists. It is not required, but you have to explicitly
+disable use of XML when compiling GNUstep base if you do not have it.
 
 @item libxslt (OPTIONAL)
 Stylesheet support for use with XML.
@@ -137,7 +138,19 @@ 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)
+@item gif or ungif (OPTIONAL)
+The GUI library uses either one of these libraries to load GIF images.
+
+@item aspell (OPTIONAL)
+The GUI library uses this to handle spell checking.
+
+@item cups (OPTIONAL)
+The GUI library uses this to handle interface to the CUPS print servers.
+
+@item audiofile (OPTIONAL)
+The GUI library uses this for playing sound files.
+
+@item portaudio (OPTIONAL)
 The GUI library uses this for the sound server
 
 @item freetype2 (RECOMMENDED, REQUIRED for art backend)
@@ -152,9 +165,10 @@ 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)
+@item gnustep-objc package (for gcc version < 3.0 ONLY or MINGW/Cygwin) (RECOMMENDED)
 Note: Do not install this library unless you are sure you need it.
-You probably don't need it except on MinGW.
+You probably don't need it except on MinGW and Cygwin (regardless of the
+gcc version you have).
 This is a special version of the Objective-C runtime that include several
 bug fixes and features that were not in gcc versions previous to 3.0.
 It is available at @url{ftp://ftp.gnustep.org/pub/gnustep/libs} which
@@ -322,36 +336,26 @@ source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
 @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
+Your home GNUstep directory should be created automatically the first
+time you use a GNUstep tool or application.
+This is where user defaults are kept as well as
 other user configuration files. User installed apps, libraries, etc
-are also here (if the default user directory is used).
-
-@example
-cd
-mkdir GNUstep
-@end example
+are also here (if the default user directory is used). By default this
+is the directory @file{GNUstep} under your home directory, but you can change
+this (see the gnustep-make installation documentation).
 
 @node Time Zone, GNUstep deamons, GNUstep Home, Additional Installation
 @section Time Zone
 
-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.
+In most cases, GNUstep should be able to determine your time zone, if
+you have already set it up correctly when setting up your
+computer. However, in some cases this might fail or the correct
+information may not be available.  You can set it manually using the
+GNUstep defaults utility to set @kbd{Local Time Zone} to your local time
+zone. Type something like @kbd{defaults write NSGlobalDomain "Local
+Time Zone" GB}.  Where @kbd{GB} is a time zone abbreviation.
 
-@item Set the @var{TZ} environment variable (this may conflict with other
-software on your system though).
-@end enumerate
+See @file{$GNUSTEP_SYSTEM_ROOT/Library/Libraries/Resources/gnustep-bsae/NSTimeZones/zones} for typical time zones):
 
 @node GNUstep deamons,  , Time Zone, Additional Installation
 @section GNUstep deamons
@@ -370,6 +374,8 @@ 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.
+@item make_services - Not a deamon, but a tool that needs to be run everytime
+you install a new Application or service. This is NOT run automatically.
 @end itemize
 
 @example
@@ -378,14 +384,14 @@ if [ `gdomap -L GDNCServer | grep -c Unable` == 1 ]; then
   gdnc
   gpbs
 fi
+make_services
 @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,
+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.
index cc5e20360e2a101a1733a18c7a70b34ff30d32bc..63702884d0141e2dcb5a94df5ec895b7f98cb334 100644 (file)
@@ -2,7 +2,7 @@ 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) =
+  ($T2H_EXTRA_HEAD,$T2H_AFTER_BODY_OPEN,$T2H_PRE_BODY_CLOSE_BAD) =
     ($tmpl=~/<\/title>(.*)<\/head>.*<body>(.*<div id="main">).*(<\/div><\/div>.*)<\/body>/sm);
   }
 else {
@@ -20,4 +20,4 @@ sub nothing
 
 $T2H_print_About = \&nothing;
 $T2H_SECTION_NAVIGATION = 0;
-$T2H_print_navigation = \&nothing;
+#$T2H_print_navigation = \&nothing;
index 54387a4d4a930a9759d18605ed8e41dbf4471220..631d0c662ae141795b40015350c99001759a1719 100644 (file)
@@ -3,8 +3,8 @@
 @settitle Platform Compatibility
 
 @ifclear HOWTO
-@c Machine Specific, Darwin/ix86, , (DIR)
-@node Machine Specific, Darwin/ix86, , (DIR)
+@c Machine Specific, Compilers, , (DIR)
+@node Machine Specific, Compilers, , (DIR)
 @chapter Machines
 @end ifclear
 
@@ -17,7 +17,12 @@ 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.
 
+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}.
+
 @menu
+* Compilers::                   
 * Darwin/ix86::                 
 * Darwin/PowerPC::              
 * Debian/DEC-Alpha::            
@@ -31,12 +36,14 @@ knows if GNUstep works on these although they may.
 * Irix 6.5/MIPS::               
 * MacOSX/PowerPC::              
 * MkLinux/PowerPC::             
-* NetBSD::                      
+* NetBSD/i386::                 
+* NetBSD/Sparc64::              
 * Netwinder::                   
 * OpenBSD 3.x::                 
 * OSF/Alpha::                   
 * RedHat/Intel::                
 * Slackware/Intel::             
+* Slackware/Sparc::             
 * Solaris 2.5.1/Sparc::         
 * Solaris/Sparc::               
 * Solaris 2.7/Intel::           
@@ -49,6 +56,10 @@ knows if GNUstep works on these although they may.
 * Yellowdog/PowerPC::           
 @end menu
 
+@c -----------------------------------------
+@node Compilers, Darwin/ix86, Machine Specific, Machine Specific
+@section Compilers
+
 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
@@ -57,7 +68,7 @@ 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
+@table @var
 @item egcs or gcc < 2.95
 Might work, but few people use these now.
 @item gcc 2.95.x
@@ -76,19 +87,16 @@ 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.
+@item gcc 3.4.x
+Recommended. The #import directive is no longer deprecated as of this
+version of the compiler.
 @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=""}.
+configuring, @kbd{CFLAGS="" ./configure}. Or when building, 
+@kbd{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
@@ -96,21 +104,31 @@ 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
+@node Darwin/ix86, Darwin/PowerPC, Compilers, Machine Specific
 @section Darwin/ix86
 
 Currently tested on Darwin 7.x
 
-@table @samp
+@table @var
 @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.
+gcc 3.3.2 or greater 3.3.* versions. 
+Older versions will not compile on Darwin and 3.4.* versions don't 
+support GNU runtime compilation on Darwin currently (The GCC bug report 
+is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).
+
+Default compiler (Apple GCC) has unknown problems.
+Download the FSF GCC compiler and configure it with
+-enable-threads=posix. You don't need binutils or anything else.
+Use the GNU runtime. Make sure to add 
+@example
+export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)
+@end example
+so that the correct compiler is found
 
 @item Extra libs needed 
 
+Use ffcall because libffi hasn't been ported to Darwin x86.
+
 @item Special Instructions 
 
 Read the @url{README.Darwin} file in the gnustep-make/Documentation
@@ -122,15 +140,29 @@ directory for complete instructions.
 @node Darwin/PowerPC, Debian/DEC-Alpha, Darwin/ix86, Machine Specific
 @section Darwin/PowerPC
 
+This section is for building the complete GNUstep system.
+This system will not interact at all with Mac OS X/Cocoa. It uses different
+complilers, different display systems, etc. For building GNUstep extensions
+to be used with Mac OS X (for instance, if you want to build something based
+on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.
+
 Currently tested on Darwin 6.x, 7.x
 
-@table @samp
+@table @var
 @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.
+gcc 3.3.2 or greater 3.3.* versions. 
+Older versions will not compile on Darwin and 3.4.* versions don't 
+support GNU runtime compilation on Darwin currently (The GCC bug report 
+is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).
+
+Default compiler (Apple GCC) has unknown problems.
+Download the FSF GCC compiler and configure it with
+-enable-threads=posix. You don't need binutils or anything else.
+Use the GNU runtime. Make sure to add 
+@example
+export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)
+@end example
+so that the correct compiler is found
 
 @item Extra libs needed 
 Use libffi (not ffcall). This should be enabled by default in gnustep-base
@@ -150,9 +182,9 @@ See also the MacOSX/PowerPC section
 @node Debian/DEC-Alpha, Debian/i386, Darwin/PowerPC, Machine Specific
 @section Debian/DEC-Alpha
 
-@table @samp
+@table @var
 @item Recommended compiler
-Unknown
+Standard
 
 @item Extra libs needed 
 Unknown
@@ -166,9 +198,9 @@ None
 @section Debian/i386
 
 Tested on sid.
-@table @samp
+@table @var
 @item Recommended compiler
-Unknown
+Standard
 
 @item Extra libs needed 
 Unknown
@@ -182,9 +214,9 @@ None
 @section Debian/PowerPC
 
 Tested on sid.
-@table @samp
+@table @var
 @item Recommended compiler
-Unknown
+Standard
 
 @item Extra libs needed 
 Unknown
@@ -198,12 +230,11 @@ None
 @section Debian/SPARC
 
 Tested on sid.
-@table @samp
+@table @var
 @item Recommended compiler
-Unknown
+Standard
 
 @item Extra libs needed 
-Unknown
 
 @item Special Instructions 
 None
@@ -213,8 +244,8 @@ None
 @node FreeBSD 5.x, FreeBSD 4.x, Debian/SPARC, Machine Specific
 @section FreeBSD 5.x
 
-Tested on 5.0 and 5.1
-@table @samp
+Tested on 5.0, 5.1, 5.3
+@table @var
 @item Recommended compiler
 
 @item Extra libs needed 
@@ -224,6 +255,9 @@ None.
 Can install via /usr/ports/devel/gnustep, but not all required dependancies
 are installed. See the GNUstep-HOWTO for list of libraries.
 
+For 5.3, there is a bug in libkvm that requires that /proc be mounted. Use
+'mount_procfs proc /proc' or see the procfs man page.
+
 @end table
 
 
@@ -231,7 +265,7 @@ are installed. See the GNUstep-HOWTO for list of libraries.
 @node FreeBSD 4.x, FreeBSD 3.x, FreeBSD 5.x, Machine Specific
 @section FreeBSD 4.x
 
-@table @samp
+@table @var
 @item Recommended compiler
 
 @item Extra libs needed 
@@ -246,11 +280,11 @@ For libxml2 2.4.24, make WITHOUT_PYTHON=YES
 
 @c -----------------------------------------
 @node FreeBSD 3.x, FreeBSD 2.x, FreeBSD 4.x, Machine Specific
-@section FreeBSD 3.x
+@section FreeBSD 3.x  (@emph{Obsolete})
 
 Compiles "out of the box" on FreeBSD 3.4.
 
-@table @samp
+@table @var
 @item Recommended compiler
 gcc 2.95.2
 
@@ -292,7 +326,7 @@ flags to configure: @code{CFLAGS="-I/usr/local/include"} and
 @node FreeBSD 2.x, Irix 6.5/MIPS, FreeBSD 3.x, Machine Specific
 @section FreeBSD 2.x (@emph{Obsolete,Unstable})
 
-@table @samp
+@table @var
 @item Recommended compiler
 gcc 2.8.x
 
@@ -317,9 +351,9 @@ You need to use gmake not make to compile the GNUstep packages.
 
 @c -----------------------------------------
 @node Irix 6.5/MIPS, MacOSX/PowerPC, FreeBSD 2.x, Machine Specific
-@section Irix 6.5/MIPS
+@section Irix 6.5/MIPS (@emph{Needs a maintainer})
 
-@table @samp
+@table @var
 @item Recommended compiler
 gcc 3.2.1
 
@@ -345,41 +379,61 @@ No libffi-support: Use ffcall
 @node MacOSX/PowerPC, MkLinux/PowerPC, Irix 6.5/MIPS, Machine Specific
 @section MacOSX/PowerPC
 
-Currently tested on MacOSX 10.2, 10.3
+This section is for building the GNUstep extensions only.
+Use this if, for instance, if you want to build something based
+on GNUstep, such as GSWeb or GNUMail. If you want to build the complete
+GNUstep system independant of Mac OS X, see the Darwin/PowerPC section.
+
+Currently tested on MacOSX 10.1.5, 10.2, 10.3
 
-@table @samp
+@table @var
 @item Recommended compiler
-Default.
+Default. For 10.1.5, you need to add -no-cpp-precomp to CFLAGS
+(For instance, ./configure CFLAGS="-no-cpp-precomp" ...)
 
 @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:
+@item Special Instructions
+Warning ! To know how to install a complete GNUstep system on Mac OS X, 
+read the Darwin/PowerPC section.
+By default, on Mac OS X, only the GNUstep extensions are built. Read the @url{README.Darwin} file in the gnustep-make/Documentation directory for
+complete instructions.
+
+To build the GNUstep extensions only is useful, when you want to build 
+on Mac OS X, GNUstep related projects like gdl2, etc linked to Cocoa. 
+Xcode project files exist, but they may not be up-to-date. Make sure 
+/usr/sbin is in your path:
+
+@example
+PATH=$PATH:/usr/sbin
+@end example
+
+Then type:
 
 @example
 cd make
 ./configure --with-library-combo=apple-apple-apple
 make install
-
+. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
 cd ../base
 ./configure --with-xml-prefix=/usr --disable-xmltest
 make debug=yes install
 @end example
 
+On Mac OS X 10.1.5, there is no libxml. Either install libxml2
+or configure base with --disable-xml.
 @end table
 
 See also the Darwin/PowerPC section.
 
 @c -----------------------------------------
-@node MkLinux/PowerPC, NetBSD, MacOSX/PowerPC, Machine Specific
+@node MkLinux/PowerPC, NetBSD/i386, MacOSX/PowerPC, Machine Specific
 @section MkLinux/PowerPC 
 
 Tested with R2 RC2 (2004/03/04).
 
-@table @samp
+@table @var
 @item Recommended compiler
 gcc 3.x allthough earlier ones should work if you also install gnustep-objc
 
@@ -392,26 +446,52 @@ Unknown.
 @end table
 
 @c -----------------------------------------
-@node NetBSD, Netwinder, MkLinux/PowerPC, Machine Specific
-@section NetBSD 
+@node NetBSD/i386, NetBSD/Sparc64, MkLinux/PowerPC, Machine Specific
+@section NetBSD/i386 
 
-@table @samp
+Tested on NetBSD 2.0.2 (2005/04/15)
+
+@table @var
 @item Recommended compiler
-Unknown
+Standard
+
+@item Extra libs needed 
+libiconv(?), libffi
+
+@item Special Instructions 
+Use NetBSD packages to install needed libraries. libffi either comes
+automatically with gcc or can be installed separately and works fine
+(over ffcall).
+
+@end table
+
+@c -----------------------------------------
+@node NetBSD/Sparc64, Netwinder, NetBSD/i386, Machine Specific
+@section NetBSD/Sparc64  (@emph{Unstable})
+
+Tested on NetBSD 2.0.2 (2005/04/15)
+
+@table @var
+@item Recommended compiler
+Standard
 
 @item Extra libs needed 
-libiconv
+libiconv(?), libffi
 
 @item Special Instructions 
-See the @url{README.NetBSD} file located in the gnustep-make package.
+Use NetBSD packages to install needed libraries. libffi either comes
+automatically with gcc or can be installed separately and is prefered
+over ffcall which does not work on Sparc64 machines.
 
 @end table
 
+gdomap crashes. Perhaps other things do not work as well.
+
 @c -----------------------------------------
-@node Netwinder, OpenBSD 3.x, NetBSD, Machine Specific
+@node Netwinder, OpenBSD 3.x, NetBSD/Sparc64, Machine Specific
 @section Netwinder (@emph{Unstable})
 
-@table @samp
+@table @var
 @item Recommended compiler
 Build #12 of the system.
 
@@ -426,7 +506,7 @@ See @url{http://www.netwinder.org/~patrix}
 @node OpenBSD 3.x, OSF/Alpha, Netwinder, Machine Specific
 @section OpenBSD 3.x  (@emph{Needs Testing})
 
-@table @samp
+@table @var
 @item Recommended compiler
 Unknown
 
@@ -444,7 +524,7 @@ Try reading the @url{README.NetBSD} which might work the same on OpenBSD.
 
 Information is for Version 3.2C
 
-@table @samp
+@table @var
 @item Recommended compiler
 egcs-1.1.1/1.1.2, gcc-2.95
 
@@ -465,7 +545,7 @@ ADDTIONAL_TOOL_LIBS in the GNUmakefile(.preamble).
 @node RedHat/Intel, Slackware/Intel, OSF/Alpha, Machine Specific
 @section RedHat/Intel
 
-@table @samp
+@table @var
 @item Recommended compiler
 Standard
 
@@ -477,10 +557,10 @@ None
 @end table
 
 @c -----------------------------------------
-@node Slackware/Intel, Solaris 2.5.1/Sparc, RedHat/Intel, Machine Specific
+@node Slackware/Intel, Slackware/Sparc, RedHat/Intel, Machine Specific
 @section Slackware/Intel 
 
-@table @samp
+@table @var
 @item Recommended compiler
 Unknown.
 
@@ -493,12 +573,30 @@ Unknown.
 @end table
 
 @c -----------------------------------------
-@node Solaris 2.5.1/Sparc, Solaris/Sparc, Slackware/Intel, Machine Specific
+@node Slackware/Sparc, Solaris 2.5.1/Sparc, Slackware/Intel, Machine Specific
+@section Slackware/Sparc (Splack) 
+
+Tested with Spalck 8.0
+
+@table @var
+@item Recommended compiler
+gcc 3.2, no extra options.
+
+@item Extra libs needed 
+Unknown.
+
+@item Special Instructions 
+Tested on an ultra sparc server, kernel 2.4.27, XF86-4.0.3
+
+@end table
+
+@c -----------------------------------------
+@node Solaris 2.5.1/Sparc, Solaris/Sparc, Slackware/Sparc, Machine Specific
 @section Solaris 2.5.1/Sparc (@emph{Obsolete})
 
 This configuration is no longer being tested, but it may still work.
 
-@table @samp
+@table @var
 @item Recommended compiler
 Unknown
 
@@ -515,7 +613,7 @@ See the Solaris 2.6 section for more instructions.
 
 Tested on Solaris version 6, 7, and 8
 
-@table @samp
+@table @var
 @item Recommended compiler
 gcc 3.2.1 or greater
 gcc 2.95.3. Version 2.95.2 has several bugs that GNUstep tickles.
@@ -547,7 +645,7 @@ set to 'posix' not 'solaris'.
 @section Solaris 2.7/Intel 
 @c Contact?: Sebastian Niesen <sniesen@niesen.net>
 
-@table @samp
+@table @var
 @item Recommended compiler
 Unknown.
 
@@ -558,7 +656,7 @@ Unknown
 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
+configuring gnustep-make with @option{--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
@@ -572,7 +670,7 @@ instructions above for more information.
 
 GNUstep has been tested on version 6.2-6.4 of Suse
 
-@table @samp
+@table @var
 @item Recommended compiler
 Standard
 
@@ -590,9 +688,9 @@ gdnc doesn't work.  If you recompile the kernel then it starts working.
 @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
+GNUstep has been tested on version 7.0, 8.0, 8.1, 8.2, 9.0, 9.1, and 9.3 of Suse
 
-@table @samp
+@table @var
 @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.
@@ -612,7 +710,7 @@ None.
 
 GNUstep has been tested on version 7.0 of Suse/PPC
 
-@table @samp
+@table @var
 @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).
@@ -629,7 +727,7 @@ None
 @section Unixware-2.1.3/Intel
 @c Contact?: Richard Frith-Macdonald <richard@brainstorm.co.uk>
 
-@table @samp
+@table @var
 @item Recommended compiler
 Unknown
 
@@ -732,9 +830,9 @@ work.
 
 @c -----------------------------------------
 @node Windows with CYGWIN, Windows with MinGW, Unixware-2.1.3/Intel, Machine Specific
-@section Windows with CYGWIN (@emph{Needs Testing})
+@section Windows with CYGWIN (@emph{Needs a maintainer})
 
-@table @samp
+@table @var
 @item Recommended compiler
 gcc 3.3.1 or later (with libobjc and libjava (if using libffi))
 
@@ -758,7 +856,7 @@ See @url{README.Cygwin} for information on compiling.
 @node Windows with MinGW, Yellowdog/PowerPC, Windows with CYGWIN, Machine Specific
 @section Windows with MinGW
 
-@table @samp
+@table @var
 @item Recommended compiler
 See below.
 
@@ -776,7 +874,7 @@ Native GUI backend is alpha version.
 @node Yellowdog/PowerPC,  , Windows with MinGW, Machine Specific
 @section Yellowdog/PowerPC
 
-@table @samp
+@table @var
 @item Recommended compiler
 Standard
 
index 19c3171fe5aeb361f4550f26a2eae43284e12a6f..d0d950e4fcab52af4ce196c29e363c69215c8449 100644 (file)
@@ -9,6 +9,33 @@
 The currently released version is @samp{@value{GNUSTEP-MAKE-VERSION}}.
 @end ifclear
 
+@section Changes in version @samp{1.11.0}
+
+NOTE: The libobjc library is now linked in with the base library and NOT with
+individual applications or tools (except on MingW). This requires that
+you do a complete rebuild of all libraries, tools and apps when switching
+to this new version.
+
+@itemize @bullet
+
+@item New rules for building and using DLLs were implemented. Now gcc
+and other tricks are used to properly export symbols, so no .def file
+should be needed. 
+
+@item The GNUsteprc file in $GNUSTEP_SYSTEM_ROOT is deprecated. See the
+new GNUstep.conf file (which is not installed by default).
+
+@item Psuedo-framwork support was implemented on MingW. This essentially
+involves copying the framework to several places so it can be used without
+links, which Windows does not really support.  There's no other 
+clean way to do it.
+
+@item Support for xxx_WINDRES_FILES on MinGW was implemented.
+
+@end itemize
+
+@ifclear ANNOUNCE-ONLY
+
 @section Changes in version @samp{1.10.0}
 
 @itemize @bullet
@@ -26,8 +53,6 @@ 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
index 1f75ced3d166bbe83c495f1673c988482c52a4cd..a0c9d2f6cfc9d7ad4f1d1a880c59077156ae5dfe 100644 (file)
@@ -37,17 +37,12 @@ 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).
+The GNUstep make package is licensed under the GNU GPL.
 
 @section History
 
 The GNUstep makefile package was designed by Scott Christley
-@email{scottc@@net-community.com} and Ovidiu Predescu
-@email{ovidiu@@net-community.com}.
+and Ovidiu Predescu.
 
 Flags for building shared libraries and bundles on several systems were
 originally identified by Mircea Oancea @email{mircea@@pathcom.com}.
index 7b238466926951dc7c3041e3245c2a27eec616f2..6de86c75c2cb48f0329cdb26948115be3f9a83f2 100644 (file)
@@ -35,19 +35,19 @@ at the (developer) FAQ for more developer oriented questions.
 @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.
+Software, Inc.'s (now Apple Computer, 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.
+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
+OpenStep consists of three parts: the @samp{Foundation Kit}, a library of
+non-graphical objects; the @samp{Application Kit}, a library of objects useful
+in creating graphical applications; and the @samp{Display PostScript System}, an
 interface for drawing to the screen using the PostScript graphics
 language.
 
@@ -60,25 +60,25 @@ You can obtain a copy of the OpenStep standard from the GNUstep web site
 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
+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.
+  The primary targets for GNUstep are free UNIX system-based platforms such
+as GNU/Linux and FreeBSD.
 
-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.
+That being said, the base library should run on Windows NT, 98, 2000, and XP
+with the Cygwin UNIX system-emulation environment from Cygnus
+(@url{http://www.cygwin.com/}), or the MinGW environment
+(@url{http://www.mingw.org}).  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
+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.
+Windows API.  This project is currently in beta.
 
 The application-wrapper used for GNUstep already allows for multiple
 binaries to be stored for different systems, so you should be able
@@ -90,14 +90,14 @@ to write once, deploy anywhere.
 
   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.
+is just a super-set of C), and when 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.
+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?
@@ -119,14 +119,14 @@ some sort of program or window manager.
 
 It isn't.
 
-GNUstep is a whole load of things - primarily a set of libraries
+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
+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
@@ -137,7 +137,7 @@ 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
+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
@@ -156,10 +156,10 @@ snapshots.
 @subsection  What is usable?
 
 @itemize @bullet
-@item gnustep-make does pretty much what the makefiles in NeXTstep do.
+@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.
+@item gnustep-gui (Application Kit) has a lot working but there is still stuff missing.
 @end itemize
 
 What does this mean for users? Many applications will run quite well.
@@ -189,8 +189,8 @@ GNUstep web site.
 @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.
+RPMs, Debian packages, and BSD ports. There's also Windows installers, Mac OS X
+binaries 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?
@@ -208,7 +208,7 @@ 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,
+Do you get this obnoxious warning whenever you compile an application, tool,
 or Objective-C program:
 
 @example
@@ -228,53 +228,53 @@ you are using an early compiler, you can supress these warnings by adding
 @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?::  
+* Can I run NeXT OPENSTEP or Mac OS X programs on GNUstep?::  
+* Is GNUstep following changes to OpenStep and Mac OS X?::  
+* Do we have to have the NEXTSTEP look and feel?::  
 * What's up with the directory structure?::  
-* Why not use Frameworks?::     
+* Why not use framework bundles?::     
 @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?
+@node Can I run NeXT OPENSTEP or Mac OS X programs on GNUstep?, Is GNUstep following changes to OpenStep and Mac OS X?, Compatibility and Layout, Compatibility and Layout
+@subsection Can I run NeXT OPENSTEP or Mac OS X 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?
+@node Is GNUstep following changes to OpenStep and Mac OS X?, Do we have to have the NEXTSTEP look and feel?, Can I run NeXT OPENSTEP or Mac OS X programs on GNUstep?, Compatibility and Layout
+@subsection  Is GNUstep following changes to OpenStep and Mac OS X?
 
 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
+OpenStep specification and with Mac OS 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?
+@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 Mac OS X?, 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.
+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
+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
+@node What's up with the directory structure?, Why not use framework bundles?, 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.
+NEXTSTEP or Mac OS X. Part of this is historical, part is because we can't do
+things the same way (see @pxref{Why not use framework bundles?}). Although
+currently the structure is very similar to the one used in Mac OS X.
 
-@node Why not use Frameworks?,  , What's up with the directory structure?, Compatibility and Layout
-@subsection Why not use Frameworks?
+@node Why not use framework bundles?,  , What's up with the directory structure?, Compatibility and Layout
+@subsection Why not use framework bundles?
 
-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
+Framework bundles are much more difficult to port and to use, and are very
+unnatural on a UNIX system; extremely unnatural on Windows. In a
+framework bundle, 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
@@ -289,29 +289,29 @@ 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. 
+OpenStep for Windows did that, and still called them frameworks.  
+So we can do the same, 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.
+easily.  this is how all shared and static libraries work on UNIX systems,
+Windows systems and possibly 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
+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
+For Apple Mac OS X 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
+we don't control (Windows, Sun Solaris, Darwin, GNU/Linux, UNIX system
 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!
@@ -319,21 +319,21 @@ 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
+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
+Mac OS 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
+it's a one line difference between Mac OS X 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).
+frameworks do on Mac OS X, but to be portable to very different platforms (such
+as Windows).
 
 
 @c ****************************************************************
@@ -398,7 +398,10 @@ Please report the error to bug-gnustep@@gnu.org.
 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.
+you are using gcc 3.x, DO NOT use the gnustep-objc library. 
+
+There could also be a mismatch between the base and gui library versions.
+Make sure you have the latest release of each library installed.
 
 @node Problems with Alt key, Problems with gcc3, Problems compiling (GNUstep Internal Error), Troubleshooting
 @subsection Problems with Alt key
index 03223e10da79dac46c6fcfb121401f14a38163c4..8db6ab70c9b05abe7fb1097b441dcd8f112dd0a2 100644 (file)
@@ -1,7 +1,7 @@
 GNUstep Frequently Asked Questions with Answers
 ***********************************************
 
-Last updated 3 September 2004.  Please send corrections to
+Last updated 21 July 2005.  Please send corrections to
 <gnustep-maintainer@gnu.org>. Also look at the user FAQ for more user
 oriented questions.
 
@@ -25,8 +25,7 @@ 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)
+   * Use #ifndef GNUSTEP for Apple only code.
 
    * Do not use CoreFoundation
 
@@ -37,7 +36,9 @@ GNUstep yet. Plus there are some other issues. If you start with Cocoa:
    * You need to convert .nib files (see next question  *note Tools for
      porting::)
 
-   * Some unfinished classes include  Drawers.
+   See also
+<http://mediawiki.gnustep.org/index.php/Writing_portable_code> for more
+information.
 
 Tools for porting
 -----------------
@@ -62,6 +63,11 @@ programs.
      format: portability, open standard, easy localization,
      themeability, and intelligent autolayout.
 
+`Gorm'
+     The equivalent of the Interface Builder in GNUstep. It might be
+     easier to just recreate the interface using Gorm rather than
+     dealing with translations.
+
 `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.
@@ -205,8 +211,7 @@ 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.
+Get in touch with the GNUstep maintainer 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
@@ -259,6 +264,17 @@ format into gsdoc.
    GNUstep documentation should have copyright assigned to the Free
 Software Foundation.
 
+How do I assign my contribution?
+--------------------------------
+
+Everyone who contributes more than 20 lines of code or so needs to sign
+a copyright assignment so that the FSF can have legal control of the
+copyright. This makes it easier to defend against any copyright
+infringement suits.  Contact the GNUstep maintainer for instructions on
+how to do this or download and fill out the form
+<http://www.gnustep.org/resources/request-assign.future> (instructions
+are included).
+
 How do I update the task list?
 ------------------------------
 
index c833ddb139b52315e4397156462bd10ebec57e74..211351a334365b4202fd4131b95e67de38034925 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # I've thought about using the Makefile package files
@@ -144,9 +144,6 @@ install: all @GNUSTEP_MOVE_OBSOLETE@
                $(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); \
@@ -187,8 +184,6 @@ endif
           $(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; \
@@ -240,7 +235,6 @@ uninstall:
        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 \
index 0775238816991529cc717e7a97599e3ffe23bab3..3caaa883401ef996b4f3898f477485bb2645dbc0 100644 (file)
@@ -1,7 +1,7 @@
    GNUstep HOWTO
    *************
 
-   Last Update: 3 September 2004
+   Last Update: 21 July 2005
 
    This document explains how to build the different components of the
    GNUstep core libraries and GNUstep Launchpad.
@@ -59,8 +59,9 @@ are required.
 `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.
+     compatible XML-based property-lists. It is not required, but you
+     have to explicitly disable use of XML when compiling GNUstep base
+     if you do not have it.
 
 `libxslt (OPTIONAL)'
      Stylesheet support for use with XML.
@@ -91,7 +92,21 @@ are required.
 `The PNG library (libpng) (RECOMMENDED)'
      The GUI library uses this to handle loading PNG images.
 
-`libaudiofile (RECOMMENDED)'
+`gif or ungif (OPTIONAL)'
+     The GUI library uses either one of these libraries to load GIF
+     images.
+
+`aspell (OPTIONAL)'
+     The GUI library uses this to handle spell checking.
+
+`cups (OPTIONAL)'
+     The GUI library uses this to handle interface to the CUPS print
+     servers.
+
+`audiofile (OPTIONAL)'
+     The GUI library uses this for playing sound files.
+
+`portaudio (OPTIONAL)'
      The GUI library uses this for the sound server
 
 `freetype2 (RECOMMENDED, REQUIRED for art backend)'
@@ -106,18 +121,19 @@ are required.
      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)'
+`gnustep-objc package (for gcc version < 3.0 ONLY or MINGW/Cygwin) (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.
+     You probably don't need it except on MinGW and Cygwin (regardless
+     of the gcc version you have).  This is a special version of the
+     Objective-C runtime that include several bug fixes and features
+     that were not in gcc versions previous to 3.0.  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
@@ -250,36 +266,29 @@ tcsh, try
 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
+Your home GNUstep directory should be created automatically the first
+time you use a GNUstep tool or application.  This is where user
+defaults are kept as well as other user configuration files. User
+installed apps, libraries, etc are also here (if the default user
+directory is used). By default this is the directory `GNUstep' under
+your home directory, but you can change this (see the gnustep-make
+installation documentation).
 
 Time Zone
 =========
 
-Next, set your local time zone.  There are four ways to do this, pick
-one (see
+In most cases, GNUstep should be able to determine your time zone, if
+you have already set it up correctly when setting up your computer.
+However, in some cases this might fail or the correct information may
+not be available.  You can set it manually using the GNUstep defaults
+utility to set `Local Time Zone' to your local time zone. Type
+something like `defaults write NSGlobalDomain "Local Time Zone" GB'.
+Where `GB' is a time zone abbreviation.
+
+   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
 ===============
 
@@ -298,20 +307,24 @@ app:
 
    * gpbs - Same as with gdnc, make sure X-Windows is running.
 
+   * make_services - Not a deamon, but a tool that needs to be run
+     everytime you install a new Application or service. This is NOT
+     run automatically.
+
      if [ `gdomap -L GDNCServer | grep -c Unable` == 1 ]; then
        echo "Starting GNUstep services..."
        gdnc
        gpbs
      fi
+     make_services
 
 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.
+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').
@@ -335,46 +348,50 @@ 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.
+   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>.
+
+Compilers
+=========
+
+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'
+EGCS OR GCC < 2.95
      Might work, but few people use these now.
 
-`gcc 2.95.x'
+GCC 2.95.X
      Probably the oldest compiler that GNUstep is regularly tested with.
 
-`gcc 2.96'
+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'
+GCC 3.0.X
      A fairly good compiler. Recommended.
 
-`gcc 3.1'
+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'
+GCC 3.2.X
      Pretty good. Recommended.
 
-`gcc 3.3.x'
+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>.
+GCC 3.4.X
+     Recommended. The #import directive is no longer deprecated as of
+     this version of the compiler.
 
    If your having mysterious trouble with a machine, try compiling
 GNUstep without optimization. Particularly in the newer GCC compilers,
@@ -393,16 +410,23 @@ Darwin/ix86
 
 Currently tested on Darwin 7.x
 
-`Recommended compiler'
-     gcc 3.3.2. Older versions will not compile on Darwin.
+RECOMMENDED COMPILER
+     gcc 3.3.2 or greater 3.3.* versions.  Older versions will not
+     compile on Darwin and 3.4.* versions don't support GNU runtime
+     compilation on Darwin currently (The GCC bug report is
+     http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).
 
-     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.
+     Default compiler (Apple GCC) has unknown problems.  Download the
+     FSF GCC compiler and configure it with -enable-threads=posix. You
+     don't need binutils or anything else.  Use the GNU runtime. Make
+     sure to add
+          export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)
+     so that the correct compiler is found
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
+     Use ffcall because libffi hasn't been ported to Darwin x86.
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      Read the <README.Darwin> file in the gnustep-make/Documentation
      directory for complete instructions.
 
@@ -410,22 +434,35 @@ Currently tested on Darwin 7.x
 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'
+This section is for building the complete GNUstep system.  This system
+will not interact at all with Mac OS X/Cocoa. It uses different
+complilers, different display systems, etc. For building GNUstep
+extensions to be used with Mac OS X (for instance, if you want to build
+something based on GNUstep, such as GSWeb or GNUMail), see the
+MacOSX/PowerPC section.
+
+   Currently tested on Darwin 6.x, 7.x
+
+RECOMMENDED COMPILER
+     gcc 3.3.2 or greater 3.3.* versions.  Older versions will not
+     compile on Darwin and 3.4.* versions don't support GNU runtime
+     compilation on Darwin currently (The GCC bug report is
+     http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).
+
+     Default compiler (Apple GCC) has unknown problems.  Download the
+     FSF GCC compiler and configure it with -enable-threads=posix. You
+     don't need binutils or anything else.  Use the GNU runtime. Make
+     sure to add
+          export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)
+     so that the correct compiler is found
+
+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'
+SPECIAL INSTRUCTIONS
      Read the <README.Darwin> file in the gnustep-make/Documentation
      directory for complete instructions.
 
@@ -435,95 +472,97 @@ Currently tested on Darwin 6.x, 7.x
 Debian/DEC-Alpha
 ================
 
-`Recommended compiler'
-     Unknown
+RECOMMENDED COMPILER
+     Standard
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      None
 
 Debian/i386
 ===========
 
 Tested on sid.
-`Recommended compiler'
-     Unknown
+RECOMMENDED COMPILER
+     Standard
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      None
 
 Debian/PowerPC
 ==============
 
 Tested on sid.
-`Recommended compiler'
-     Unknown
+RECOMMENDED COMPILER
+     Standard
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      None
 
 Debian/SPARC
 ============
 
 Tested on sid.
-`Recommended compiler'
-     Unknown
+RECOMMENDED COMPILER
+     Standard
 
-`Extra libs needed'
-     Unknown
+EXTRA LIBS NEEDED
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      None
 
 FreeBSD 5.x
 ===========
 
-Tested on 5.0 and 5.1
-`Recommended compiler'
+Tested on 5.0, 5.1, 5.3
+RECOMMENDED COMPILER
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      None.
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      Can install via /usr/ports/devel/gnustep, but not all required
      dependancies are installed. See the GNUstep-HOWTO for list of
      libraries.
 
+     For 5.3, there is a bug in libkvm that requires that /proc be
+     mounted. Use 'mount_procfs proc /proc' or see the procfs man page.
+
 
 FreeBSD 4.x
 ===========
 
-`Recommended compiler'
+RECOMMENDED COMPILER
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      For gcc 3.0.4, make WANT_THREADS_SUPPORT=YES
 
      For libxml2 2.4.24, make WITHOUT_PYTHON=YES
 
 
-FreeBSD 3.x
-===========
+FreeBSD 3.x  (_Obsolete_)
+=========================
 
 Compiles "out of the box" on FreeBSD 3.4.
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      gcc 2.95.2
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown
 
-`Special Instructions'
+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>
@@ -557,13 +596,13 @@ Compiles "out of the box" on FreeBSD 3.4.
 FreeBSD 2.x (_Obsolete,Unstable_)
 =================================
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      gcc 2.8.x
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      Only static libraries work on this system.  Use /stand/sysinstall
      to install these packages if you have not already done so:
 
@@ -576,10 +615,10 @@ FreeBSD 2.x (_Obsolete,Unstable_)
      GNUstep packages.
 
 
-Irix 6.5/MIPS
-=============
+Irix 6.5/MIPS (_Needs a maintainer_)
+====================================
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      gcc 3.2.1
 
      To use threads, it's necessary to bootstrap a compiler yourself:
@@ -587,10 +626,10 @@ Irix 6.5/MIPS
      link EVERY objective C executable with -lpthread, no matter what
      warnings the irix linker produces!
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown
 
-`Special Instructions'
+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
@@ -600,27 +639,46 @@ Irix 6.5/MIPS
 MacOSX/PowerPC
 ==============
 
-Currently tested on MacOSX 10.2, 10.3
+This section is for building the GNUstep extensions only.  Use this if,
+for instance, if you want to build something based on GNUstep, such as
+GSWeb or GNUMail. If you want to build the complete GNUstep system
+independant of Mac OS X, see the Darwin/PowerPC section.
+
+   Currently tested on MacOSX 10.1.5, 10.2, 10.3
 
-`Recommended compiler'
-     Default.
+RECOMMENDED COMPILER
+     Default. For 10.1.5, you need to add -no-cpp-precomp to CFLAGS
+     (For instance, ./configure CFLAGS="-no-cpp-precomp" ...)
 
-`Extra libs needed'
+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:
+SPECIAL INSTRUCTIONS
+     Warning ! To know how to install a complete GNUstep system on Mac
+     OS X, read the Darwin/PowerPC section.  By default, on Mac OS X,
+     only the GNUstep extensions are built. Read the <README.Darwin>
+     file in the gnustep-make/Documentation directory for complete
+     instructions.
+
+     To build the GNUstep extensions only is useful, when you want to
+     build on Mac OS X, GNUstep related projects like gdl2, etc linked
+     to Cocoa.  Xcode project files exist, but they may not be
+     up-to-date. Make sure /usr/sbin is in your path:
+
+          PATH=$PATH:/usr/sbin
+
+     Then type:
 
           cd make
           ./configure --with-library-combo=apple-apple-apple
           make install
-          
+          . /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
           cd ../base
           ./configure --with-xml-prefix=/usr --disable-xmltest
           make debug=yes install
 
+     On Mac OS X 10.1.5, there is no libxml. Either install libxml2 or
+     configure base with -disable-xml.
 
    See also the Darwin/PowerPC section.
 
@@ -629,52 +687,75 @@ MkLinux/PowerPC
 
 Tested with R2 RC2 (2004/03/04).
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      gcc 3.x allthough earlier ones should work if you also install
      gnustep-objc
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      None.
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      Unknown.
 
 
-NetBSD
-======
+NetBSD/i386
+===========
 
-`Recommended compiler'
-     Unknown
+Tested on NetBSD 2.0.2 (2005/04/15)
+
+RECOMMENDED COMPILER
+     Standard
+
+EXTRA LIBS NEEDED
+     libiconv(?), libffi
 
-`Extra libs needed'
-     libiconv
+SPECIAL INSTRUCTIONS
+     Use NetBSD packages to install needed libraries. libffi either
+     comes automatically with gcc or can be installed separately and
+     works fine (over ffcall).
 
-`Special Instructions'
-     See the <README.NetBSD> file located in the gnustep-make package.
 
+NetBSD/Sparc64  (_Unstable_)
+============================
+
+Tested on NetBSD 2.0.2 (2005/04/15)
+
+RECOMMENDED COMPILER
+     Standard
+
+EXTRA LIBS NEEDED
+     libiconv(?), libffi
+
+SPECIAL INSTRUCTIONS
+     Use NetBSD packages to install needed libraries. libffi either
+     comes automatically with gcc or can be installed separately and is
+     prefered over ffcall which does not work on Sparc64 machines.
+
+
+   gdomap crashes. Perhaps other things do not work as well.
 
 Netwinder (_Unstable_)
 ======================
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      Build #12 of the system.
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      See <http://www.netwinder.org/~patrix>
 
 OpenBSD 3.x  (_Needs Testing_)
 ==============================
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      Unknown
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      Try reading the <README.NetBSD> which might work the same on
      OpenBSD.
 
@@ -683,13 +764,13 @@ OSF Alpha  (_Unstable_)
 
 Information is for Version 3.2C
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      egcs-1.1.1/1.1.2, gcc-2.95
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown
 
-`Special Instructions'
+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
@@ -702,40 +783,55 @@ Information is for Version 3.2C
 RedHat/Intel
 ============
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      Standard
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Standard (ffcall or libffi)
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      None
 
 Slackware/Intel
 ===============
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      Unknown.
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown.
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      Unknown.
 
 
+Slackware/Sparc (Splack)
+========================
+
+Tested with Spalck 8.0
+
+RECOMMENDED COMPILER
+     gcc 3.2, no extra options.
+
+EXTRA LIBS NEEDED
+     Unknown.
+
+SPECIAL INSTRUCTIONS
+     Tested on an ultra sparc server, kernel 2.4.27, XF86-4.0.3
+
+
 Solaris 2.5.1/Sparc (_Obsolete_)
 ================================
 
 This configuration is no longer being tested, but it may still work.
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      Unknown
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      tiff, Don't use the one in /usr/openwin
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      See the Solaris 2.6 section for more instructions.
 
 Solaris 2.[678]/Sparc
@@ -743,15 +839,15 @@ Solaris 2.[678]/Sparc
 
 Tested on Solaris version 6, 7, and 8
 
-`Recommended compiler'
+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'
+EXTRA LIBS NEEDED
      tiff, Don't use the one in /usr/openwin
 
-`Special Instructions'
+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.
@@ -770,13 +866,13 @@ Or use the gnustep-objc package. Also make sure THREADS is set to
 Solaris 2.7/Intel
 =================
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      Unknown.
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown
 
-`Special Instructions'
+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,
@@ -792,13 +888,13 @@ Suse 6.x/Intel
 
 GNUstep has been tested on version 6.2-6.4 of Suse
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      Standard
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      None
 
-`Special Instructions'
+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
@@ -808,18 +904,18 @@ GNUstep has been tested on version 6.2-6.4 of Suse
 Suse/Intel
 ==========
 
-GNUstep has been tested on version 7.0, 8.0, 8.1, 8.2, 9.0, and 9.1 of
-Suse
+GNUstep has been tested on version 7.0, 8.0, 8.1, 8.2, 9.0, 9.1, and
+9.3 of Suse
 
-`Recommended compiler'
+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'
+EXTRA LIBS NEEDED
      None
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
      None.
 
 
@@ -828,22 +924,22 @@ Suse 7.x/PPC
 
 GNUstep has been tested on version 7.0 of Suse/PPC
 
-`Recommended compiler'
+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'
+EXTRA LIBS NEEDED
      None
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
 
 Unixware-2.1.3/Intel
 ====================
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      Unknown
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Unknown
 
 
@@ -929,13 +1025,13 @@ Unixware-2.1.3/Intel
    If you don't set gdomap up correctly, Distributed Objects will not
 work.
 
-Windows with CYGWIN (_Needs Testing_)
-=====================================
+Windows with CYGWIN (_Needs a maintainer_)
+==========================================
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      gcc 3.3.1 or later (with libobjc and libjava (if using libffi))
 
-`Extra libs needed'
+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
@@ -945,7 +1041,7 @@ Windows with CYGWIN (_Needs Testing_)
      passing, but that is generally not supported on any architecture.
      libffi also works.
 
-`Special Instructions'
+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.
@@ -954,13 +1050,13 @@ Windows with CYGWIN (_Needs Testing_)
 Windows with MinGW
 ==================
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      See below.
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      See below.
 
-`Special Instructions'
+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.
@@ -969,13 +1065,13 @@ Windows with MinGW
 Yellowdog/PowerPC
 =================
 
-`Recommended compiler'
+RECOMMENDED COMPILER
      Standard
 
-`Extra libs needed'
+EXTRA LIBS NEEDED
      Standard (ffcall or libffi)
 
-`Special Instructions'
+SPECIAL INSTRUCTIONS
 
 Getting Libraries via Anonymous CVS
 ***********************************
index 83739487c4b7d03ab99687d302245f1c93e42662..b24b24d28088394226cf46ac7361b1990f6e3f61 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 
 # This file is used to reset your environment.  This is needed if you
 # 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.
+# It takes two arguments: the name of the path variable to reset,
+# and a path fragment which is used to make our guess at what should
+# be removed more accurate.  All paths beginning with GNUSTEP_SYSTEM_ROOT, 
+# GNUSTEP_LOCAL_ROOT, GNUSTEP_NETWORK_ROOT and GNUSTEP_USER_ROOT 
+# followed by the specified path fragment are removed from the path
+# variable.  All other paths are kept unchanged.
 function reset_path 
 {
   # Declare local variables
@@ -51,9 +52,9 @@ function reset_path
     # a path in GNUSTEP_PATHLIST as prefix
     found=no;
     for gnustep_dir in $GNUSTEP_PATHLIST; do
-      if [ -n "$gnustep_dir" ]; then
+      if [ -n "$gnustep_dir$2" ]; then
         case "$dir" in
-          $gnustep_dir*)  found=yes; break;;
+          $gnustep_dir$2*)  found=yes; break;;
           *);;
         esac;
       fi;
@@ -80,12 +81,12 @@ function reset_path
   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
+reset_path CLASSPATH /Library/Libraries/Java
+reset_path GUILE_LOAD_PATH /Library/Libraries/Guile
+reset_path LD_LIBRARY_PATH /Library/Libraries
+reset_path DYLD_LIBRARY_PATH /Library/Libraries
+reset_path DYLD_FRAMEWORK_PATH /Library/Frameworks
+reset_path PATH /Tools
 
 # Make sure we destroy the reset_path function after using it - we don't
 # want to pollute the environment with it.
diff --git a/gnustep-make/GNUstep.conf b/gnustep-make/GNUstep.conf
new file mode 100644 (file)
index 0000000..47bd41e
--- /dev/null
@@ -0,0 +1,29 @@
+#
+# Example GNUstep.conf file. Please customize for your use
+# and place in the appropriate configuration directory (which depends
+# on the operating system or the --config-file argument passed to gnustep-base
+# configure.)
+#
+GNUSTEP_SYSTEM_ROOT = /usr/GNUstep/System
+GNUSTEP_LOCAL_ROOT = /usr/GNUstep/Local
+GNUSTEP_NETWORK_ROOT = /usr/GNUstep/Local
+
+USER_GNUSTEP_DIR = GNUstep
+USER_GNUSTEP_DEFAULTS = Defaults
+USER_GNUSTEP_RC = .GNUsteprc
+
+SYS_APPS = /bin
+SYS_LIBS = /lib
+SYS_PREFS = /etc
+SYS_ADMIN = /sbin
+
+PLATFORM_APPS = /usr/bin
+PLATFORM_LIBS = /usr/lib
+PLATFORM_ADMIN = /usr/sbin
+PLATFORM_RESOURCES = /usr/share
+
+PLATFORM_LOCAL_APPS = /usr/local/bin
+PLATFORM_LOCAL_LIBS = /usr/local/libs
+PLATFORM_LOCAL_ADMIN = /usr/local/sbin
+PLATFORM_LOCAL_RESOURCES = /usr/local/share
+
index 138549a3e13d46035e0907e8ffa99d022d9069e0..e5915d7c5d5cd7c8cea5b3d56e339a95cff3dd79 100755 (executable)
@@ -21,7 +21,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 
 #
index 640f7ed2454b0a2b9756c7d4abffb3aa913ad892..0fd0d4d68d63baf5f63a837e19cc8c04a6766a86 100755 (executable)
@@ -21,7 +21,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 
 # Warning - this shell script is delicate, because it is sourced by
@@ -305,4 +305,4 @@ fi
 if [ -n "$GS_ZSH_NEED_TO_RESTORE_SET" ]; then
   set +y
 fi
-# EOF
\ No newline at end of file
+# EOF
index dff1b66ffcff80be46e32a266c3c92f41891cc20..7c0fe0349271dc3f39bc51bca8a60a9db65e1d63 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(BASE_MAKE_LOADED), yes)
 ifeq ($(GNUSTEP_BASE_HAVE_LIBXML), 1)
index 578a5f0ffd70bdd19c1df231514ac4d216a25740..49c4e8d3350c0c21787f6e5526f2d0a31d933fe6 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
index 489bc5d7880855b8e9b141bd262c607fb1991b7f..bda12b07804ec8fcaba2df9d8bfb6fdb6650de0f 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 internal-doc-install_::
        $(ECHO_INSTALLING)for file in $($(GNUSTEP_INSTANCE)_INSTALL_FILES) __done; do \
index 25fa4a9b993b6c52dd82ee3bc3580e79952af480..8aa288f464a200808e957544258c0f01b4476465 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 JAVADOC_SOURCEPATH = $($(GNUSTEP_INSTANCE)_JAVADOC_SOURCEPATH)
 
index ba8bedbdceeffdb5e57172ec12be53f9c0538729..74d57f056515f4222366979d9010fbc3191ae751 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 $(GNUSTEP_INSTANCE).dvi: $(LATEX_FILES)
        latex $(GNUSTEP_INSTANCE).tex
index a9c4dc446814986e443585c9680291375bbd4f14..b498d44ff94bb749d780c870e0aab59b7c041c8c 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # To override GNUSTEP_MAKEINFO, define it differently in
 # GNUmakefile.preamble
index d87074ca54860e0419b134d9b111b88c4082eb40..ebe59b063b7b7cdcdcfaa2d42a205d7be234a747 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # input variables:
@@ -195,14 +195,17 @@ $(FULL_RESOURCE_DIRS):
 # create the file {bundle}/Language.lproj/xxx/yyy, because we want to
 # mirror the Language.lproj directory faithfully.  There is no
 # possible confusion here.
-
+#
+# Important: we pass the '-f' argument to 'cp' to make sure that you
+# can write and overwrite RESOURCE_FILES which are -r--r--r--.
+#
 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)/; \
+           cp -fr $$f $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/; \
          else \
            echo "Warning: $$f not found - ignoring"; \
          fi; \
@@ -226,8 +229,8 @@ ifneq ($(LOCALIZED_RESOURCE_FILES),)
            $(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; \
+               cp -fr $$l.lproj/$$f \
+                     $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/$$l.lproj/; \
              else \
                echo "Warning: $$l.lproj/$$f not found - ignoring"; \
              fi; \
@@ -242,7 +245,7 @@ ifneq ($(_SUBPROJECTS),)
          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)/; \
+               cp -fr $$f $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/; \
              fi; \
            done; \
          fi; \
@@ -300,7 +303,7 @@ shared-instance-bundle-all-webresources: \
        $(ECHO_COPYING_WEBSERVER_RESOURCES)for f in $(WEBSERVER_RESOURCE_FILES); do \
          if [ -f ./WebServerResources/$$f \
               -o -d ./WebServerResources/$$f ]; then \
-           cp -r ./WebServerResources/$$f \
+           cp -fr ./WebServerResources/$$f \
               $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/WebServer/$$f; \
          else \
            echo "Warning: WebServerResources/$$f not found - ignoring"; \
@@ -337,7 +340,7 @@ ifneq ($(WEBSERVER_LOCALIZED_RESOURCE_FILES),)
          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 \
+           cp -fr ./WebServerResources/$$l.lproj/$$f \
                  $(GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH)/WebServer/$$l.lproj/$$f; \
              else \
                echo "Warning: WebServerResources/$$l.lproj/$$f not found - ignoring"; \
index 9a619d504259fbc5c54a5dd0009db4df5672b6fb..b5bda5fc1c25cda7f9b0b152cc8500310c4ef0ef 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # input variables:
@@ -45,14 +45,14 @@ HEADER_FILES = $($(GNUSTEP_INSTANCE)_HEADER_FILES)
 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
-
+# We always compute HEADER_FILES_DIR and HEADER_FILES_INSTALL_DIR.
+# The reason is that frameworks might have headers in subprojects (and
+# not in the top framework makefile!).  Those headers are
+# automatically used and installed, but in the top-level makefile,
+# HEADER_FILES = '', still you might want to have a special
+# HEADER_FILES_DIR and HEADER_FILES_INSTALL_DIR even in this case.
+# NB: Header installation for frameworks is done by the framework
+# code.
 HEADER_FILES_DIR = $($(GNUSTEP_INSTANCE)_HEADER_FILES_DIR)
 
 ifeq ($(HEADER_FILES_DIR),)
@@ -66,6 +66,14 @@ ifeq ($(HEADER_FILES_INSTALL_DIR),)
   HEADER_FILES_INSTALL_DIR = $(GNUSTEP_INSTANCE)
 endif
 
+ifeq ($(HEADER_FILES),)
+
+shared-instance-headers-install:
+
+shared-instance-headers-uninstall:
+
+else # we have some HEADER_FILES
+
 #
 # We provide two different algorithms of installing headers.
 #
@@ -81,7 +89,7 @@ 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; \
+                 $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)/$$file; \
          fi; \
        done$(END_ECHO)
 
index 8e4c1706949138a5a73c6d163775f91b044140ab..d2aa1f88e2449f313f05fb9041e04ad0e041c82d 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # input variables:
index 0ccee7ace9ccddc396e6ef8eab12f1e8cebe0916..1090b96b75fef0f58138c16129d4351ba81230d9 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # Normally, make computes dependencies basing on files' timestamps.
index 2f1f46f50025dbd723f7630bc901ac7b20b2195f..c6eae2d5efd1a4b8150085cec36b3d12918dab14 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # input variables:
index 4965301b311b066e508086c39dd039a9e994dcb8..6970594c84ccf68b4e86ec0b5668600d8a97eb8e 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # Include in the common makefile rules
@@ -58,13 +58,17 @@ ifeq ($(APP_INSTALL_DIR),)
   APP_INSTALL_DIR = $(GNUSTEP_APPS)
 endif
 
+# On windows, this is unfortunately required.
+ifeq ($(BUILD_DLL), yes)
+  DUP_OBJC_LIBS = $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) 
+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)                                   \
+     $(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(DUP_OBJC_LIBS) $(SYSTEM_LIBS)     \
         debug=$(debug) profile=$(profile) shared=$(shared)                  \
        libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
 
@@ -101,6 +105,21 @@ APP_FILE = $(GNUSTEP_BUILD_DIR)/$(APP_FILE_NAME)
 # Internal targets
 #
 
+# If building on Windows, also generate an import library which can be
+# used by loadable bundles to resolve symbols in the application.  If
+# a loadable bundle/palette needs to use symbols in the application,
+# it just needs to link against this APP_NAME/APP_NAME.exe.a library.
+# We add .exe to the application name to account for Gorm which is
+# using the same name for the library (libGorm.dll.a) and for the
+# application (Gorm.exe).  Using this terminology, just add
+# Gorm.app/Gorm.exe.a to the list of objects you link and you get it
+# working.  TODO: Move this into target.make
+ifeq ($(BUILD_DLL), yes)
+ifneq ($(OLD_DLL_SUPPORT),yes)
+  ALL_LDFLAGS += -Wl,--export-all-symbols -Wl,--out-implib,$(GNUSTEP_BUILD_DIR)/$(APP_DIR_NAME)/$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE).exe$(LIBEXT)
+endif
+endif
+
 $(APP_FILE): $(OBJ_FILES_TO_LINK)
        $(ECHO_LINKING)$(LD) $(ALL_LDFLAGS) -o $(LDOUT)$@ $(OBJ_FILES_TO_LINK)\
              $(ALL_GUI_LIBS)$(END_ECHO)
index 3c8db393ca4fca5075249d17f133935df74535cd..766e3bd5c45ff1c3e053650884275148a0564de8 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
@@ -60,7 +60,7 @@ ifneq ($(OBJ_FILES_TO_LINK),)
 # libraries ...)
 
 # On windows, this is unfortunately required.
-ifeq ($(WITH_DLL), yes)
+ifeq ($(BUILD_DLL), yes)
   LINK_BUNDLE_AGAINST_ALL_LIBS = yes
 endif
 
@@ -84,7 +84,7 @@ ALL_BUNDLE_LIBS =                                             \
        debug=$(debug) profile=$(profile) shared=$(shared)      \
        libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
 
-ifeq ($(WITH_DLL),yes)
+ifeq ($(BUILD_DLL),yes)
 BUNDLE_OBJ_EXT = $(DLL_LIBEXT)
 endif
 
@@ -147,15 +147,15 @@ 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
+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
+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
@@ -164,24 +164,25 @@ endif
 $(BUNDLE_DIR)/$(GNUSTEP_TARGET_LDIR):
        $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
 
-ifeq ($(WITH_DLL),yes)
+# OLD_DLL_SUPPORT should really be deprecated and dropped.
+ifeq ($(OLD_DLL_SUPPORT),yes)
 
-$(BUNDLE_FILE) : $(OBJ_FILES_TO_LINK)
+$(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
+else # Standard bundle build using the rules for this target
 
-$(BUNDLE_FILE) : $(OBJ_FILES_TO_LINK)
+$(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
+endif # OLD_DLL_SUPPORT
 
 PRINCIPAL_CLASS = $(strip $($(GNUSTEP_INSTANCE)_PRINCIPAL_CLASS))
 
@@ -192,7 +193,7 @@ 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
+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)))))
@@ -244,7 +245,7 @@ $(BUNDLE_DIR)/Contents/Info.plist: $(BUNDLE_DIR)/Contents \
          echo "<plist version='0.9'>";\
          echo "  <dict>";\
          echo "    <key>CFBundleExecutable</key>";\
-         echo "    <string>$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE)${BUNDLE_OBJ_EXT}</string>";\
+         echo "    <string>$(GNUSTEP_TARGET_LDIR)/$(GNUSTEP_INSTANCE)$(BUNDLE_OBJ_EXT)</string>";\
          echo "    <key>CFBundleInfoDictionaryVersion</key>";\
          echo "    <string>6.0</string>";\
          echo "    <key>CFBundlePackageType</key>";\
@@ -278,7 +279,7 @@ ifneq ($(OBJ_FILES_TO_LINK),)
 $(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 "  NSExecutable = \"$(GNUSTEP_INSTANCE)$(BUNDLE_OBJ_EXT)\";"; \
          echo "  NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
          echo "  NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
          echo "}") >$@$(END_ECHO)
index a98fa4019e53b79a263fd4c8072289182afc43e3..d8c08b31076cc4953a8b7cdc175a018d23768757 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #   Warning/TODO - this makefile is not really finished, because it
 # still uses the LIB_LINK_CMD used for normal ObjC libraries.  The
index 71d2dfb0e22a8a855876ab994db98cc931107766..56c5930ffe1da58549247899803e15875f0742e7 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # The name of the ctools is in the CTOOL_NAME variable.
index 8161a150a832f5e91e3a35ebb17dd5bde798e536..78860ea7aa61e421f461082c31948b2201f67cb5 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
   include $(GNUSTEP_MAKEFILES)/rules.make
index cb6eb753ce28f06e305bfc6f57aa2d99eec2219a..3132c2c3f8ea52993792f48a0ce84a882b5a577b 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
@@ -91,6 +91,26 @@ ifeq ($(MAKE_CURRENT_VERSION),)
   MAKE_CURRENT_VERSION = yes
 endif
 
+# If there are no working symlinks, common.make sets
+# FRAMEWORK_VERSION_SUPPORT to no, which unconditionally turn
+# versioning off.  This means that we create no symlinks inside the
+# xxx.framework directory for the various versions; that everything is
+# put top-level as in the case of bundles.  So with
+# FRAMEWORK_VERSION_SUPPORT = no, the Directory structure is:
+#
+# xxx.framework/libframework.dll.a
+# xxx.framework/framework.dll
+# xxx.framework/Resources
+# xxx.framework/Headers
+#
+# The Headers, libframework.dll.a and framework.dll are then copied into
+# the standard header/library locations so that they can be found by
+# compiler/linker.  Given that there are no symlinks, there is no other
+# way of doing this.
+ifeq ($(FRAMEWORK_VERSION_SUPPORT),no)
+  MAKE_CURRENT_VERSION = no
+endif
+
 # Set VERSION from xxx_VERSION
 ifneq ($($(GNUSTEP_INSTANCE)_VERSION),)
   VERSION = $($(GNUSTEP_INSTANCE)_VERSION)
@@ -108,24 +128,38 @@ 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)
+
+ifeq ($(FRAMEWORK_VERSION_SUPPORT), yes)
+  FRAMEWORK_VERSION_DIR_NAME = $(FRAMEWORK_DIR_NAME)/Versions/$(CURRENT_VERSION_NAME)
+else
+  FRAMEWORK_VERSION_DIR_NAME = $(FRAMEWORK_DIR_NAME)
+endif
+
 FRAMEWORK_VERSION_DIR = $(GNUSTEP_BUILD_DIR)/$(FRAMEWORK_VERSION_DIR_NAME)
 
-# This is not doing much at the moment, but at least is defining
+# This is not doing much at the moment, it is only 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!
+# standard way.  Please note that HEADER_FILES might be empty even if
+# we have headers in subprojects that we need to manage and install.
+# So we assume by default that we have some headers even if
+# HEADER_FILES is empty.
 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))
+# On windows, this is unfortunately required.
+ifeq ($(BUILD_DLL), yes)
+  LINK_AGAINST_ALL_LIBS = yes
+endif
+
+ifeq ($(LINK_AGAINST_ALL_LIBS), yes)
+# Link against all libs ... but not the one we're compiling! (not sure
+# when this could happen with frameworks, anyway it makes sense)
+LIBRARIES_DEPEND_UPON += $(filter-out -l$(GNUSTEP_INSTANCE), \
+   $(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
 
 INTERNAL_LIBRARIES_DEPEND_UPON =                               \
   $(shell $(WHICH_LIB_SCRIPT)                                  \
@@ -135,9 +169,30 @@ INTERNAL_LIBRARIES_DEPEND_UPON =                           \
    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)
+  # gnustep-base can find at run time.
+
+  # An ObjC class name can not contain '-', but some people '-' this
+  # in framework names.  So we need to encode the '-' in some way
+  # into an ObjC class name. (since we're there, we also encode '+'
+  # even if that's not really common).
+
+  # What we do is, we use '_' as an escape character, and encode (in the 
+  # order) as follows:
+  #
+  #  '_' is converted to '__'
+  #  '-' is converted to '_0'
+  #  '+' is converted to '_1'
+  #
+
+  # For example, 'Renaissance-Experimental' becomes 
+  # 'Renaissance_0Experimental'.
+
+  # GNUstep-base will convert the name back by applying the reverse rules 
+  # in the reverse order.
+
+  DUMMY_FRAMEWORK = NSFramework_$(subst +,_1,$(subst -,_0,$(subst _,__,$(GNUSTEP_INSTANCE))))
   DUMMY_FRAMEWORK_FILE = $(DERIVED_SOURCES_DIR)/$(DUMMY_FRAMEWORK).m
   DUMMY_FRAMEWORK_OBJ_FILE = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(DUMMY_FRAMEWORK).o)
 
@@ -158,15 +213,19 @@ endif
 
 FRAMEWORK_HEADER_FILES := $(addprefix $(FRAMEWORK_VERSION_DIR)/Headers/,$(HEADER_FILES))
 
-ifneq ($(BUILD_DLL),yes)
+ifeq ($(FRAMEWORK_VERSION_SUPPORT), yes)
+  FRAMEWORK_CURRENT_DIR_NAME := $(FRAMEWORK_DIR_NAME)/Versions/Current
+else
+  FRAMEWORK_CURRENT_DIR_NAME := $(FRAMEWORK_DIR_NAME)
+endif
 
-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)
 
+ifneq ($(BUILD_DLL), yes)
 FRAMEWORK_LIBRARY_FILE = lib$(GNUSTEP_INSTANCE)$(SHARED_LIBEXT)
 VERSION_FRAMEWORK_LIBRARY_FILE = $(FRAMEWORK_LIBRARY_FILE).$(VERSION)
 
@@ -181,26 +240,40 @@ else
 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
-
+# When you build a DLL, you have to install it in a directory which is
+# in your PATH.
 ifeq ($(DLL_INSTALLATION_DIR),)
   DLL_INSTALLATION_DIR = $(GNUSTEP_TOOLS)/$(GNUSTEP_TARGET_LDIR)
 endif
 
+# When we build a DLL, we also pass -DBUILD_lib{library_name}_DLL=1 to
+# the preprocessor.  With the new DLL support, this is usually not
+# needed; but in some cases some symbols are difficult and have to be
+# exported/imported manually.  For these cases, the library header
+# files can use this preprocessor define to know that they are
+# included during compilation of the library itself, or are being
+# imported by external code.  Typically with the new DLL support if a
+# symbol can't be imported you have to mark it with
+# __declspec(dllimport) when the library is not being compiled.
+# __declspec(dllexport) is not particularly useful instead.
+
+CLEAN_framework_NAME = $(subst -,_,$(GNUSTEP_INSTANCE))
+SHARED_CFLAGS += -DBUILD_$(CLEAN_framework_NAME)_DLL=1
+
+# FRAMEWORK_LIBRARY_FILE is the import library, libRenaissance.dll.a
+FRAMEWORK_LIBRARY_FILE         = lib$(GNUSTEP_INSTANCE)$(DLL_LIBEXT)$(LIBEXT)
+VERSION_FRAMEWORK_LIBRARY_FILE = $(FRAMEWORK_LIBRARY_FILE)
+SONAME_FRAMEWORK_FILE  = $(FRAMEWORK_LIBRARY_FILE)
+
+# LIB_LINK_DLL_FILE is the DLL library, Renaissance.dll
+LIB_LINK_DLL_FILE    = $(GNUSTEP_INSTANCE)$(DLL_LIBEXT)
+
 endif # BUILD_DLL
 
-ifeq ($(WITH_DLL),yes)
-  FRAMEWORK_OBJ_EXT = $(DLL_LIBEXT)
-endif # WITH_DLL
+FRAMEWORK_FILE_NAME := $(FRAMEWORK_LIBRARY_DIR_NAME)/$(VERSION_FRAMEWORK_LIBRARY_FILE)
+FRAMEWORK_FILE := $(GNUSTEP_BUILD_DIR)/$(FRAMEWORK_FILE_NAME)
 
 ifneq ($($(GNUSTEP_INSTANCE)_INSTALL_DIR),)
   FRAMEWORK_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
@@ -241,17 +314,16 @@ 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)
-
+internal-framework-build-headers:: $(FRAMEWORK_HEADER_FILES) \
+                                   build-framework-dirs
 
 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)
+update-current-symlink: $(FRAMEWORK_VERSION_DIR)
        $(ECHO_NOTHING)cd $(FRAMEWORK_DIR)/Versions; \
-       rm -f Current; \
+       $(RM_LN_S) Current; \
        $(LN_S) $(CURRENT_VERSION_NAME) Current$(END_ECHO)
 
 else
@@ -260,29 +332,29 @@ 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)
+build-framework-dirs: $(DERIVED_SOURCES_DIR) \
+                      $(FRAMEWORK_LIBRARY_DIR) \
+                      $(FRAMEWORK_VERSION_DIR)/Headers \
+                      $(FRAMEWORK_VERSION_DIR)/Resources \
+                      $(FRAMEWORK_RESOURCE_DIRS) \
+                      $(UPDATE_CURRENT_SYMLINK_RULE)
+ifeq ($(FRAMEWORK_VERSION_SUPPORT), yes)
        $(ECHO_NOTHING)cd $(FRAMEWORK_DIR); \
          if [ ! -h "Resources" ]; then \
-           rm -f Resources; \
+           $(RM_LN_S) Resources; \
            $(LN_S) Versions/Current/Resources Resources; \
          fi; \
          if [ ! -h "Headers" ]; then \
-           rm -f Headers; \
+           $(RM_LN_S) Headers; \
            $(LN_S) Versions/Current/Headers Headers; \
          fi$(END_ECHO)
-ifneq ($(HEADER_FILES),)
+endif
        $(ECHO_NOTHING)cd $(DERIVED_SOURCES_DIR); \
          if [ ! -h "$(HEADER_FILES_INSTALL_DIR)" ]; then \
-           rm -f ./$(HEADER_FILES_INSTALL_DIR); \
+           $(RM_LN_S) ./$(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)
@@ -294,7 +366,8 @@ $(DERIVED_SOURCES_DIR):
        $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
 
 # Need to share this code with the headers code ... but how.
-$(FRAMEWORK_HEADER_FILES):: $(addprefix $(HEADER_FILES_DIR)/,$(HEADER_FILES))
+$(FRAMEWORK_HEADER_FILES): $(addprefix $(HEADER_FILES_DIR)/,$(HEADER_FILES)) \
+                           $(FRAMEWORK_VERSION_DIR)/Headers
 ifneq ($(HEADER_FILES),)
        $(ECHO_NOTHING)for file in $(HEADER_FILES) __done; do \
          if [ $$file != __done ]; then \
@@ -385,15 +458,16 @@ $(DUMMY_FRAMEWORK_OBJ_FILE): $(DUMMY_FRAMEWORK_FILE)
        $(ECHO_COMPILING)$(CC) $< -c $(ALL_CPPFLAGS) $(ALL_OBJCFLAGS) -o $@$(END_ECHO)
 endif
 
-ifeq ($(FOUNDATION_LIB), apple)
+ifeq ($(findstring darwin, $(GNUSTEP_TARGET_OS)), darwin)
 # When building native frameworks on Apple, we need to create a
 # top-level symlink xxx.framework/xxx ---> the framework shared
-# library
+# library. On Darwin (non-Apple) we do this as well since we can partially
+# emulate frameworks (see the ld_lib_path.sh comments on this).
 
-build-framework:: $(FRAMEWORK_FILE) \
-                  shared-instance-bundle-all \
-                  $(FRAMEWORK_VERSION_DIR)/Resources/Info.plist \
-                  $(GNUSTEP_BUILD_DIR)/$(GNUSTEP_INSTANCE).framework/$(GNUSTEP_INSTANCE)
+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
@@ -404,43 +478,43 @@ build-framework:: $(FRAMEWORK_FILE) \
 $(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); \
+       $(RM_LN_S) $(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
+build-framework: $(FRAMEWORK_FILE) \
+                 shared-instance-bundle-all \
+                 $(FRAMEWORK_VERSION_DIR)/Resources/Info-gnustep.plist
 
 endif
 
+# We create a top-level symlink (/copy)
+#
+# xxx.framework/xxx --> <the framework object file>
+#
+# Normally, the framework object file that we link to is LIB_LINK_FILE
+# (eg, libRenaissance.so); on Windows instead LIB_LINK_FILE is only
+# the wrapper library (eg, libRenaissance.dll.a) and we want the
+# top-level symlink to point to the real .dll: LIB_LINK_DLL_FILE
+# (which is something like Renaissance.dll).  This is what is loaded
+# at runtime if you load the framework as a bundle.
+#
+ifneq ($(BUILD_DLL), yes)
+  LIB_LINK_FRAMEWORK_FILE = $(LIB_LINK_FILE)
+else
+  LIB_LINK_FRAMEWORK_FILE = $(LIB_LINK_DLL_FILE)
+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)
+$(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)) \
+         $(RM_LN_S) $(GNUSTEP_INSTANCE); \
+         $(LN_S) $(LIB_LINK_FRAMEWORK_FILE) $(GNUSTEP_INSTANCE)) \
        $(END_ECHO)
 
-endif # WITH_DLL
-
 PRINCIPAL_CLASS = $(strip $($(GNUSTEP_INSTANCE)_PRINCIPAL_CLASS))
 
 ifeq ($(PRINCIPAL_CLASS),)
@@ -452,7 +526,7 @@ MAIN_MODEL_FILE = $(strip $(subst .gmodel,,$(subst .gorm,,$(subst .nib,,$($(GNUS
 # 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 "  NSExecutable = \"$(GNUSTEP_INSTANCE)\";"; \
          echo "  NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
          echo "  NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
          echo "}") >$@$(END_ECHO)
@@ -460,7 +534,7 @@ $(FRAMEWORK_VERSION_DIR)/Resources/Info.plist: $(FRAMEWORK_VERSION_DIR)/Resource
 # 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 "  NSExecutable = \"$(GNUSTEP_INSTANCE)\";"; \
          echo "  NSMainNibFile = \"$(MAIN_MODEL_FILE)\";"; \
          echo "  NSPrincipalClass = \"$(PRINCIPAL_CLASS)\";"; \
          echo "  Classes = "; \
@@ -471,7 +545,7 @@ $(FRAMEWORK_VERSION_DIR)/Resources/Info-gnustep.plist: $(FRAMEWORK_VERSION_DIR)/
           plmerge $@ $(GNUSTEP_INSTANCE)Info.plist; \
         fi$(END_ECHO)
 
-ifneq ($(WITH_DLL),yes)
+ifneq ($(BUILD_DLL),yes)
 
 ifeq ($(FOUNDATION_LIB),gnu)
 
@@ -487,20 +561,18 @@ 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)
+       $(RM_LN_S) $(HEADER_FILES_INSTALL_DIR); \
+       $(LN_S) `$(REL_PATH_SCRIPT) $(GNUSTEP_HEADERS) $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME)/Headers` $(HEADER_FILES_INSTALL_DIR); \
+       $(END_ECHO)
 ifneq ($(CHOWN_TO),)
        $(ECHO_CHOWNING)cd $(GNUSTEP_HEADERS); \
-       if [ "$(HEADER_FILES)" != "" ]; then \
-         $(CHOWN) $(CHOWN_TO) $(HEADER_FILES_INSTALL_DIR); \
-       fi$(END_ECHO)
+       $(CHOWN) $(CHOWN_TO) $(HEADER_FILES_INSTALL_DIR); \
+       $(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); \
+       $(RM_LN_S) $(FRAMEWORK_LIBRARY_FILE); \
+       $(RM_LN_S) $(SONAME_FRAMEWORK_FILE); \
+       $(RM_LN_S) $(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); \
@@ -537,8 +609,12 @@ 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)
+       $(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
@@ -546,46 +622,48 @@ 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)
+       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 - ); \
+       $(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)
+       $(CHOWN) -R $(CHOWN_TO) $(HEADER_FILES_INSTALL_DIR); \
+       $(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)
+       $(ECHO_NOTHING)$(INSTALL_PROGRAM) $(FRAMEWORK_LIBRARY_DIR)/$(LIB_LINK_DLL_FILE) \
+          $(DLL_INSTALLATION_DIR)$(END_ECHO)
+       $(ECHO_NOTHING)$(INSTALL_PROGRAM) $(FRAMEWORK_FILE_NAME) \
+         $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR)$(END_ECHO)
 
 endif
 
-$(DLL_INSTALLATION_DIR)::
+$(DLL_INSTALLATION_DIR):
        $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
 
-$(FRAMEWORK_DIR)/Resources::
+# If Version support is disabled, then this directory is the same as
+# the Resources directory in Shared/bundle.make for which we already
+# have a rule.
+ifeq ($(FRAMEWORK_VERSION_SUPPORT), yes)
+$(FRAMEWORK_DIR)/Resources:
        $(ECHO_CREATING)$(MKDIRS) $@$(END_ECHO)
+endif
 
-$(FRAMEWORK_INSTALL_DIR)::
+$(FRAMEWORK_INSTALL_DIR):
        $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
 
-$(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR) :
+$(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR):
        $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
 
-$(GNUSTEP_HEADERS) :
+$(GNUSTEP_HEADERS):
        $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
 
-# NB: We use 'rm -f' to remove the symlinks to insure
+ifneq ($(BUILD_DLL), yes)
+# NB: We use '$(RM_LN_S)' to remove the symlinks to insure
 #     that we do not remove customized real directories.  
 internal-framework-uninstall_::
        $(ECHO_UNINSTALLING)if [ "$(HEADER_FILES)" != "" ]; then \
@@ -595,16 +673,30 @@ internal-framework-uninstall_::
            fi; \
          done; \
        fi; \
-       if [ -n "$(HEADER_FILES)" ]; then \
-         rm -f $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR) ; \
+       $(RM_LN_S) $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR) ; \
+       rm -rf $(FRAMEWORK_INSTALL_DIR)/$(FRAMEWORK_DIR_NAME) ; \
+       cd $(GNUSTEP_LIBRARIES)/$(GNUSTEP_TARGET_LDIR); \
+       $(RM_LN_S) $(FRAMEWORK_LIBRARY_FILE); \
+       $(RM_LN_S) $(SONAME_FRAMEWORK_FILE); \
+       $(RM_LN_S) $(VERSION_FRAMEWORK_LIBRARY_FILE); \
+       $(END_ECHO)
+else
+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; \
+       $(RM_LN_S) $(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR) ; \
        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); \
+       $(RM_LN_S) $(FRAMEWORK_LIBRARY_FILE); \
+       cd $(DLL_INSTALLATION_DIR); \
+       $(RM_LN_S) $(LIB_LINK_DLL_FILE); \
        $(END_ECHO)
-
+endif
 #
 # Cleaning targets
 #
index 7fcc7c5d9759eb438cdb1b48063f6ef150bdf5ef..76074abb10a94332881e808275c0728bc604666b 100644 (file)
@@ -21,7 +21,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
@@ -73,14 +73,18 @@ ifeq ($(GSWAPP_INSTALL_DIR),)
   GSWAPP_INSTALL_DIR = $(GNUSTEP_GSWAPPS)
 endif
 
+# On windows, this is unfortunately required.
+ifeq ($(BUILD_DLL), yes)
+  DUP_OBJC_LIBS = $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) 
+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)              \
+       $(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(DUP_OBJC_LIBS) $(SYSTEM_LIBS) \
        debug=$(debug) profile=$(profile) shared=$(shared)              \
        libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
 
index 2474a54d60fd93dd5659853c29accbda7a49bf56..d36edf587ae3f6ad9e3186c7f163f7802e85eda6 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
@@ -110,9 +110,9 @@ ifeq ($(strip $(LANGUAGES)),)
 endif
 
 
-build-bundle-dir:: $(GSWBUNDLE_DIR)/Resources \
-                   $(GSWBUNDLE_DIR)/$(GNUSTEP_TARGET_LDIR) \
-                   $(GSWBUNDLE_RESOURCE_DIRS)
+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)
@@ -120,12 +120,12 @@ $(GSWBUNDLE_DIR)/$(GNUSTEP_TARGET_LDIR):
 $(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
+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)
@@ -134,7 +134,7 @@ $(GSWBUNDLE_FILE) : $(OBJ_FILES_TO_LINK)
                        $(OBJ_FILES_TO_LINK) \
                        $(ALL_GSWBUNDLE_LIBS)$(END_ECHO)
 
-gswbundle-components :: $(GSWBUNDLE_DIR)
+gswbundle-components: $(GSWBUNDLE_DIR)
 ifneq ($(strip $(COMPONENTS)),)
        @(echo "Linking components into the bundle wrapper..."; \
         cd $(GSWBUNDLE_DIR)/Resources; \
@@ -158,8 +158,8 @@ ifneq ($(strip $(COMPONENTS)),)
        done)
 endif
 
-gswbundle-resource-files:: $(GSWBUNDLE_DIR)/bundle-info.plist \
-                           $(GSWBUNDLE_DIR)/Resources/Info-gnustep.plist
+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/; \
@@ -168,7 +168,7 @@ ifneq ($(strip $(RESOURCE_FILES)),)
        done)
 endif
 
-gswbundle-localized-resource-files:: $(GSWBUNDLE_DIR)/Resources/Info-gnustep.plist
+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; \
@@ -188,10 +188,10 @@ ifneq ($(strip $(LOCALIZED_RESOURCE_FILES)),)
        done)
 endif
 
-gswbundle-webresource-dir::
+gswbundle-webresource-dir:
        $(ECHO_CREATING)$(MKDIRS) $(GSWBUNDLE_WEBSERVER_RESOURCE_DIRS)$(END_ECHO)
 
-gswbundle-webresource-files:: $(GSWBUNDLE_DIR)/Resources/WebServer \
+gswbundle-webresource-files: $(GSWBUNDLE_DIR)/Resources/WebServer \
                               gswbundle-webresource-dir
 ifneq ($(strip $(WEBSERVER_RESOURCE_FILES)),)
        @(echo "Linking webserver resources into the application wrapper..."; \
@@ -201,7 +201,7 @@ ifneq ($(strip $(WEBSERVER_RESOURCE_FILES)),)
        done)
 endif
 
-gswbundle-localized-webresource-files:: $(GSWBUNDLE_DIR)/Resources/WebServer \
+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..."; \
@@ -260,7 +260,7 @@ ifeq ($(strip),yes)
        $(ECHO_STRIPPING)$(STRIP) $(GSWBUNDLE_INSTALL_DIR)/$(GSWBUNDLE_FILE_NAME)$(END_ECHO)
 endif
 
-$(GSWBUNDLE_INSTALL_DIR)::
+$(GSWBUNDLE_INSTALL_DIR):
        $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
 
 internal-gswbundle-uninstall_:: shared-instance-headers-uninstall
index fb8013dcc4467857abd831a0b93179a5abdbd143..80e7650890e6e7d7061d4c4e859eec37199bf150 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Why using Java if you can use Objective-C ...
 # Anyway if you really want it, here we go.
index 6d6326297e68256e5811258dde3730bdebb303a0..c1da97bbcec98b82644fa47aaee40b0ef2e379f2 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index b330df068821a302f8f6547798c219e2ab7503d9..231d96119eca9f3927ad947e272166d970abf8e5 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
@@ -37,7 +37,6 @@ include $(GNUSTEP_MAKEFILES)/Instance/Shared/headers.make
 # 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
 #
@@ -98,8 +97,26 @@ endif
 #
 ifneq ($(filter lib%,$(GNUSTEP_INSTANCE)),)
   LIBRARY_NAME_WITH_LIB = $(GNUSTEP_INSTANCE)
+  LIBRARY_NAME_WITHOUT_LIB = $(patsubst lib%,%,$(GNUSTEP_INSTANCE))
 else
   LIBRARY_NAME_WITH_LIB = lib$(GNUSTEP_INSTANCE)
+  LIBRARY_NAME_WITHOUT_LIB = $(GNUSTEP_INSTANCE)
+endif
+
+# On windows, this is unfortunately required.
+ifeq ($(BUILD_DLL), yes)
+  LINK_AGAINST_ALL_LIBS = yes
+endif
+
+ifeq ($(LINK_AGAINST_ALL_LIBS), yes)
+# Link against all libs ... but not the one we're compiling! (this can
+# happen, for example, with gnustep-gui)
+LIBRARIES_DEPEND_UPON += $(filter-out -l$(LIBRARY_NAME_WITHOUT_LIB), \
+   $(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
 
 INTERNAL_LIBRARIES_DEPEND_UPON =                               \
@@ -114,7 +131,6 @@ 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
@@ -174,22 +190,50 @@ SONAME_LIBRARY_FILE  = $(LIBRARY_FILE).$(INTERFACE_VERSION)
 
 else # BUILD_DLL
 
+# When you build a DLL, you have to install it in a directory which is
+# in your PATH.
+ifeq ($(DLL_INSTALLATION_DIR),)
+  DLL_INSTALLATION_DIR = $(GNUSTEP_TOOLS)/$(GNUSTEP_TARGET_LDIR)
+endif
+
+# When we build a DLL, we also pass -DBUILD_lib{library_name}_DLL=1 to
+# the preprocessor.  With the new DLL support, this is usually not
+# needed; but in some cases some symbols are difficult and have to be
+# exported/imported manually.  For these cases, the library header
+# files can use this preprocessor define to know that they are
+# included during compilation of the library itself, or are being
+# imported by external code.  Typically with the new DLL support if a
+# symbol can't be imported you have to mark it with
+# __declspec(dllimport) when the library is not being compiled.
+# __declspec(dllexport) is not particularly useful instead.
+
+CLEAN_library_NAME = $(subst -,_,$(LIBRARY_NAME_WITH_LIB))
+SHARED_CFLAGS += -DBUILD_$(CLEAN_library_NAME)_DLL=1
+
+# OLD_DLL_SUPPORT should really be deprecated and dropped.
+ifeq ($(OLD_DLL_SUPPORT),yes)
 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
+else
+# BUILD_DLL, but new DLL support.
+
+# LIBRARY_FILE is the import library, libgnustep-base.dll.a
+LIBRARY_FILE         = $(LIBRARY_NAME_WITH_LIB)$(LIBRARY_NAME_SUFFIX)$(DLL_LIBEXT)$(LIBEXT)
+VERSION_LIBRARY_FILE = $(LIBRARY_FILE)
+SONAME_LIBRARY_FILE  = $(LIBRARY_FILE)
+
+# LIB_LINK_DLL_FILE is the DLL library, gnustep-base.dll
+LIB_LINK_DLL_FILE    = $(LIBRARY_NAME_WITHOUT_LIB)$(LIBRARY_NAME_SUFFIX)$(DLL_LIBEXT)
 
+endif # OLD_DLL_SUPPORT
 endif # BUILD_DLL
 
-else # shared
+else # following code for static libs
 
 LIBRARY_FILE         = $(LIBRARY_NAME_WITH_LIB)$(LIBRARY_NAME_SUFFIX)$(LIBEXT)
-LIBRARY_FILE_EXT     = $(LIBEXT)
 VERSION_LIBRARY_FILE = $(LIBRARY_FILE)
 SONAME_LIBRARY_FILE  = $(LIBRARY_FILE)
 
@@ -214,7 +258,7 @@ LIB_LINK_INSTALL_DIR = $(FINAL_LIBRARY_INSTALL_DIR)
 # Compilation targets
 #
 
-ifeq ($(BUILD_DLL),yes)
+ifeq ($(OLD_DLL_SUPPORT),yes)
 
 DLL_DEF = $($(GNUSTEP_INSTANCE)_DLL_DEF)
 DLL_DEF_FILES = $(SUBPROJECT_DEF_FILES) $(DLL_DEF)
@@ -228,13 +272,6 @@ $(DLL_DEF_INP): $(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)                  \
@@ -265,7 +302,7 @@ $(GNUSTEP_OBJ_DIR)/$(DLL_NAME): $(OBJ_FILES_TO_LINK) \
          $(INTERNAL_LIBRARIES_DEPEND_UPON) $(TARGET_SYSTEM_LIBS) \
          $(SHARED_LD_POSTFLAGS)$(END_ECHO)
 
-else # BUILD_DLL
+else # following code for anything but OLD_DLL_SUPPORT
 
 internal-library-all_:: $(GNUSTEP_OBJ_DIR) \
                         $(GNUSTEP_OBJ_DIR)/$(VERSION_LIBRARY_FILE)
@@ -294,7 +331,7 @@ $(FINAL_LIBRARY_INSTALL_DIR):
 $(DLL_INSTALLATION_DIR):
        $(ECHO_CREATING)$(MKINSTALLDIRS) $@$(END_ECHO)
 
-ifeq ($(BUILD_DLL),yes)
+ifeq ($(OLD_DLL_SUPPORT),yes)
 
 internal-install-lib::
        $(ECHO_INSTALLING)if [ -f $(GNUSTEP_OBJ_DIR)/$(DLL_NAME) ]; then \
@@ -315,9 +352,17 @@ internal-install-lib::
          $(AFTER_INSTALL_LIBRARY_CMD) \
        fi$(END_ECHO)
 
+ifeq ($(BUILD_DLL),yes)
+# For new-style DLLs, also install the DLL file.
+internal-install-lib::
+       $(ECHO_INSTALLING)if [ -f $(GNUSTEP_OBJ_DIR)/$(LIB_LINK_DLL_FILE) ]; then \
+         $(INSTALL_PROGRAM) $(GNUSTEP_OBJ_DIR)/$(LIB_LINK_DLL_FILE) \
+                            $(DLL_INSTALLATION_DIR) ; \
+       fi$(END_ECHO)
+endif
 endif
 
-ifeq ($(BUILD_DLL),yes)
+ifeq ($(OLD_DLL_SUPPORT),yes)
 
 internal-library-uninstall_:: shared-instance-headers-uninstall
        $(ECHO_UNINSTALLING)rm -f $(DLL_INSTALLATION_DIR)/$(DLL_NAME) \
@@ -329,6 +374,12 @@ 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)
+
+ifeq ($(BUILD_DLL),yes)
+# For new-style DLLs, also remove the DLL file.
+internal-library-uninstall_::
+       $(ECHO_UNINSTALLING)rm -f $(DLL_INSTALLATION_DIR)/$(LINK_LIBRARY_DLL_FILE)$(END_ECHO)
+endif
 endif
 
 #
index f62cd6610470a96cf5389369d0f5ce444d56558f..6a0b6c37f070defee6fd5f7dd7999fd0ee442080 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # The name of the ObjC program(s) is in the OBJC_PROGRAM_NAME variable.
index a682b9807d1db20ef9cdbb0c7feb0197de2fa6bf..82f639889127ef4772734ec750e10ed5786fcd19 100644 (file)
@@ -20,7 +20,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
@@ -56,7 +56,7 @@ endif
 #      shared_libext=$(SHARED_LIBEXT))
 # On windows, this is unfortunately required.
 
-ifeq ($(WITH_DLL), yes)
+ifeq ($(BUILD_DLL), yes)
   LINK_PALETTE_AGAINST_ALL_LIBS = yes
 endif
 
@@ -80,7 +80,7 @@ ALL_PALETTE_LIBS =                                            \
        debug=$(debug) profile=$(profile) shared=$(shared)      \
        libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
 
-ifeq ($(WITH_DLL),yes)
+ifeq ($(BUILD_DLL),yes)
 PALETTE_OBJ_EXT = $(DLL_LIBEXT)
 endif
 
@@ -113,7 +113,8 @@ internal-palette-all_:: $(GNUSTEP_OBJ_DIR) \
 $(PALETTE_DIR)/$(GNUSTEP_TARGET_LDIR):
        $(ECHO_CREATING)$(MKDIRS) $(PALETTE_DIR)/$(GNUSTEP_TARGET_LDIR)$(END_ECHO)
 
-ifeq ($(WITH_DLL),yes)
+# OLD_DLL_SUPPORT should really be deprecated and dropped.
+ifeq ($(OLD_DLL_SUPPORT),yes)
 
 $(PALETTE_FILE) : $(OBJ_FILES_TO_LINK)
        $(ECHO_LINKING)$(DLLWRAP) --driver-name $(CC) \
@@ -122,7 +123,7 @@ $(PALETTE_FILE) : $(OBJ_FILES_TO_LINK)
                $(ALL_LDFLAGS) \
                $(ALL_PALETTE_LIBS)$(END_ECHO)
 
-else # WITH_DLL
+else # Standard bundle build using the rules for this target
 
 $(PALETTE_FILE) : $(OBJ_FILES_TO_LINK)
        $(ECHO_LINKING)$(BUNDLE_LD) $(BUNDLE_LDFLAGS) $(ALL_LDFLAGS) \
@@ -130,7 +131,7 @@ $(PALETTE_FILE) : $(OBJ_FILES_TO_LINK)
          $(OBJ_FILES_TO_LINK) \
          $(ALL_PALETTE_LIBS)$(END_ECHO)
 
-endif # WITH_DLL
+endif # OLD_DLL_SUPPORT
 
 PRINCIPAL_CLASS = $(strip $($(GNUSTEP_INSTANCE)_PRINCIPAL_CLASS))
 
@@ -146,7 +147,7 @@ endif
 
 $(PALETTE_DIR)/Resources/Info-gnustep.plist: $(PALETTE_DIR)/Resources
        $(ECHO_CREATING)(echo "{"; echo '  NOTE = "Automatically generated, do not edit!";'; \
-         echo "  NSExecutable = \"$(GNUSTEP_INSTANCE)\";"; \
+         echo "  NSExecutable = \"$(PALETTE_NAME)$(PALETTE_OBJ_EXT)\";"; \
          if [ -r "$(GNUSTEP_INSTANCE)Info.plist" ]; then \
            cat $(GNUSTEP_INSTANCE)Info.plist; \
          fi; \
index 81d45d2ce1f13ce3669866e4d421f478d6dc67a5..8fba259dd9fcbc65e2ad3cbd95d2b5d38c4232d9 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index 81779b2d9e69b769336669d475aa0d47f9425b34..4eb860c3e409ffc6ee763ec1014eb8cce8dc1b52 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 
 # Every project should have its internal-xxx-all depend first on
@@ -168,6 +168,9 @@ endif
 # The list of JAVA source files from which to generate jni headers
 # are in the JAVA_JNI_FILES variable.
 #
+# This list of WINDRES source files to be compiled
+# are in the WINDRES_FILES variable.
+# 
 
 #
 # Please note the subtle difference:
@@ -215,6 +218,13 @@ CC_OBJS = $(patsubst %.cc,%$(OEXT),\
               $(patsubst %.cxx,%$(OEXT),$($(GNUSTEP_INSTANCE)_CC_FILES))))))
 CC_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(CC_OBJS))
 
+ifeq ($(findstring mingw32, $(GNUSTEP_TARGET_OS)), mingw32)
+  WINDRES_OBJS = $(patsubst %.rc,%$(OEXT),$($(GNUSTEP_INSTANCE)_WINDRES_FILES))
+  WINDRES_OBJ_FILES = $(addprefix $(GNUSTEP_OBJ_DIR)/,$(WINDRES_OBJS))
+else
+  WINDRES_OBJ_FILES =
+endif
+
 OBJ_FILES = $($(GNUSTEP_INSTANCE)_OBJ_FILES)
 
 # OBJ_FILES_TO_LINK is the set of all .o files which will be linked
@@ -224,7 +234,7 @@ OBJ_FILES = $($(GNUSTEP_INSTANCE)_OBJ_FILES)
 # 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))
+OBJ_FILES_TO_LINK = $(strip $(C_OBJ_FILES) $(OBJC_OBJ_FILES) $(CC_OBJ_FILES) $(WINDRES_OBJ_FILES) $(SUBPROJECT_OBJ_FILES) $(OBJ_FILES))
 
 ifeq ($(AUTO_DEPENDENCIES),yes)
   ifneq ($(strip $(OBJ_FILES_TO_LINK)),)
index 22ad91212a525c9adcff9e60754dc1ac3059025e..3ae610e2d308fcb8b60e22c2fadf0e87474318e2 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
@@ -39,14 +39,19 @@ endif
         internal-service-copy_into_dir \
         service-resource-files
 
+# On windows, this is unfortunately required.
+ifeq ($(BUILD_DLL), yes)
+  DUP_OBJC_LIBS = $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) 
+endif
+
 # 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)               \
+       $(FND_LIBS) $(ADDITIONAL_OBJC_LIBS) $(DUP_OBJC_LIBS)            \
+       $(SYSTEM_LIBS)                                                  \
        debug=$(debug) profile=$(profile) shared=$(shared)              \
        libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
 
index 22e0f9a02295a45ac4500df0251c6c580e565361..0e8abc663ffc88d9d8cf9fbaaa6eb2e0f9c31fa8 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
@@ -83,7 +83,7 @@ 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)
+$(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 \
index 5e87e34ae501a3b78403d4727caabc65a892b0ed..51da74444276c5c0b8899ac03ecd07c5e096cf08 100644 (file)
@@ -15,7 +15,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index 84b53f275b48e47b5ccc490954587628a394f2ee..0468a4e755db9879ff08a1f06e066f85fe64c165 100644 (file)
@@ -1,12 +1,11 @@
 #
 #   Instance/test-library.make
 #
-#   Instance Makefile rules for dejagnu/GNUstep based testing
+#   Instance Makefile rules for test/non-installed libraries
 #
-#   Copyright (C) 1997 Free Software Foundation, Inc.
+#   Copyright (C) 2005 Free Software Foundation, Inc.
 #
-#   Author:  Scott Christley <scottc@net-community.com>
-#   Author:  Ovidiu Predescu <ovidiu@net-community.com>
+#   Author:  Adam Fedor <fedor@gnu.org>
 #
 #   This file is part of the GNUstep Makefile Package.
 #
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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_::
+# Just inherit the build rule from library.make
 
-internal-test_lib-uninstall_::
+include $(GNUSTEP_MAKEFILES)/Instance/library.make
 
-include $(GNUSTEP_MAKEFILES)/Instance/Shared/strings.make
+internal-test_library-all_:: internal-library-all_
index ca0f75f51f4ffa7493ec6f56deeba658851c78b8..30c0419136e4a37d18d4e1ef3919d0ca0bd8cef7 100644 (file)
@@ -15,7 +15,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index cbcfb4e0f39f34702ad8be2a91036c18ac5947e5..622fa65162b566b0627b8f2df6a6f8ab1edc15ff 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # The name of the tools is in the TOOL_NAME variable.
@@ -38,7 +38,7 @@ endif
 # 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)
+  TOOL_INSTALL_DIR = $($(GNUSTEP_INSTANCE)_INSTALL_DIR)
 endif
 
 ifeq ($(TOOL_INSTALL_DIR),)
@@ -52,12 +52,16 @@ ifeq ($(FINAL_TOOL_INSTALL_DIR),)
   FINAL_TOOL_INSTALL_DIR = $(TOOL_INSTALL_DIR)/$(GNUSTEP_TARGET_LDIR)
 endif
 
+# On windows, this is unfortunately required.
+ifeq ($(BUILD_DLL), yes)
+  DUP_OBJC_LIBS = $(AUXILIARY_OBJC_LIBS) $(OBJC_LIBS) 
+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)                                           \
+       $(ADDITIONAL_OBJC_LIBS) $(DUP_OBJC_LIBS)                        \
        debug=$(debug) profile=$(profile) shared=$(shared)              \
        libext=$(LIBEXT) shared_libext=$(SHARED_LIBEXT))
 
index 6851f6a43713fa361d5d2f5d42ef9a45316b1041..c3376aa1b8d3c1f8ccfa7810bf41cd8a15d6baee 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index bc333591b8d40caeb147b475da8f80392e1f4309..6c7c1a8c4b1cb2edc3b24a591d0ee1ebd8e315d2 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index 8c4f7d9f97d51797d91c0d25533c9fd1e4ef4999..d75bb2f5f09fc5e8e1910f33f2819c1decbf515d 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index 82fe119b500269df2dad9adbd402c84d27ef534e..aaf04a5f095bb5669749e88260880d6a8bd24f2a 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index 7dfbdc6545db0737af5ef2f4d8274ea4aac9c0df..392ba4d341e926f7792399393a6390e1ef04b6dc 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index 3aa5a6e881c71373924f96bdae3651a42a35d142..079e19cff142853f67575da15fe46e7d2d06aa45 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index 2e8f1b90556f945f1863b6236100f09fa847a9a8..43613aa46af16071b89c21546b60b0a84f47afae 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index f0782745c6e21043e543f860930670305bf9284f..e5b10b0200626338f86692614be9938e1e55dff0 100644 (file)
@@ -20,7 +20,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index bb2c33a2b343c13deeea896c3e09d15b089b14f2..96fee40b1f12119d11c0770ca439f38e9025a727 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index 4f36312a62aa3d43ebe3f11ef6a5e927ebd393ed..6ea0ad4d0ed4b1d0c462f3e8094878c4f4518fe1 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Why using Java if you can use Objective-C ...
 # Anyway if you really want it, here we go.
index 08129bb6ce3960c9ba5ce90171fdde3ab83a6dc9..bea97b0d127db587666ce4dc2fdd18b88d420996 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index 6dac241290c8749e6912b674d72b568cea05b3b1..4cd4e67a9b3b40db98d579f9f69d31605fc5d06e 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index e81640ef6e63fa1f35e8f5d1dc4aa79b95b37672..5ea5d534a6149b517f4fc3c2fc3d1aef11df5ae4 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 OBJC_PROGRAM_NAME := $(strip $(OBJC_PROGRAM_NAME))
 
index 4cb4fd2e089069cd09e8990281baac4cbd5f93ea..d729f95a248cf7702fb881d3fdd1f3f0dd054266 100644 (file)
@@ -20,7 +20,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index a64ce356313176a3e8e6f3b873630ac0db0d99a1..4fddd117c3238f519476fd8d4170de21fc3de229 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index 57721c634b8679a4a5afd4a186a9af2f2642ef46..e6738bc189e152e4c232255e3a607fab5415f107 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # FIXME: Move all this documentation into the documentation
index 97e036c174e32d316e4308caa7230d29446586c3..9e1d382da3d938807a9f25c5d11fe1500ffc0f0f 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # Quick explanation - 
@@ -295,9 +295,13 @@ if [ "$($(basename $(basename $*))_SUBPROJECTS)" != "" ]; then \
       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"; \
+          if [ "$(FRAMEWORK_VERSION_SUPPORT)" = "yes" ]; 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="../$${instance}.framework/Headers"; \
+          fi; \
        else owning_project_header_dir=""; \
        fi; \
       else \
@@ -360,9 +364,13 @@ if [ "$($(basename $(basename $*))_SUBPROJECTS)" != "" ]; then \
       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"; \
+          if [ "$(FRAMEWORK_VERSION_SUPPORT)" = "yes" ]; 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="../$${instance}.framework/Headers"; \
+          fi; \
        else owning_project_header_dir=""; \
        fi; \
       else \
index ed558455a13b49bae9df9072274665227c84e7bd..abe3eb89e76ed5c2bfb6de9104f280f9a7e9b993 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index 6c35f6257c84a9dc9be29c4f822e1911b683befb..ea8aaa339cc1d17263bfa0fce53c56b579ba3c32 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # Interesting variables to define in your GNUmakefile:
@@ -131,15 +131,16 @@ VERTAG = $(subst .,_,$(PACKAGE_VERSION))
 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 \
+         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)~; \
+           mv ../$(VERSION_NAME) ../$(VERSION_NAME)~; \
          fi; \
-         mv $$SNAPSHOT_DIR $(VERSION_NAME);\
-        fi; \
+         mkdir ../$(VERSION_NAME); \
+         tar cf - . | (cd ../$(VERSION_NAME); tar xf -); \
+       fi; \
+       cd ..; \
        if [ -f $(ARCHIVE_FILE) ]; then             \
          echo "$(ARCHIVE_FILE) already exists:";    \
          echo "Saving old version in $(ARCHIVE_FILE)~"; \
@@ -153,7 +154,7 @@ dist: distclean
              | $(COMPRESSION_PROGRAM) > $(ARCHIVE_FILE); \
        fi; \
        if [ "$$SNAPSHOT_DIR" != "$(VERSION_NAME)" ]; then \
-         mv $(VERSION_NAME) $$SNAPSHOT_DIR;               \
+         rm -rf $(VERSION_NAME);               \
         fi; \
        if [ ! -f $(ARCHIVE_FILE) ]; then \
          echo "*Error* creating .tar$(COMPRESSION_EXT) archive"; \
index 622920648f7a99995b94e10f9218d193dafd20c9..0e10886e4a1d41ee892461e12eb46c965251b491 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(RULES_MAKE_LOADED),)
 include $(GNUSTEP_MAKEFILES)/rules.make
index 048f8a33d448ee7fb425d1542c9a70822ee828ec..864234360f53c85566477fea76abe3c52a2db898 100644 (file)
@@ -16,7 +16,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 TEST_APP_NAME := $(strip $(TEST_APP_NAME))
 
index a80c8ff45f7f71016644af78a3c5261c7963e4b9..ccab8b1853190965abd616c4e6e3312066013956 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 
 TEST_LIBRARY_NAME := $(strip $(TEST_LIBRARY_NAME))
index f39942072e2f169ec6228ccdd69c692e7051f7be..a6b1418ad8eadb72d4be1fd596b602839c498e8e 100644 (file)
@@ -16,7 +16,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 TEST_TOOL_NAME := $(strip $(TEST_TOOL_NAME))
 
index a9ea6d804590a63e91d46d9bdf40f1121d23a10c..1deda758cc0653ad48d45270136fe681646efa73 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 TOOL_NAME := $(strip $(TOOL_NAME))
 
index 4adc2f0b60ffd59407a77ce4685ba34b222f7f4f..5a975a410c8015984cfbe631c70f57585ce22ac1 100644 (file)
@@ -1,7 +1,30 @@
 NEWS
 ****
 
-The currently released version is `1.10.0'.
+The currently released version is `1.11.0'.
+
+Changes in version `1.11.0'
+===========================
+
+NOTE: The libobjc library is now linked in with the base library and
+NOT with individual applications or tools (except on MingW). This
+requires that you do a complete rebuild of all libraries, tools and
+apps when switching to this new version.
+
+   * New rules for building and using DLLs were implemented. Now gcc
+     and other tricks are used to properly export symbols, so no .def
+     file should be needed.
+
+   * The GNUsteprc file in $GNUSTEP_SYSTEM_ROOT is deprecated. See the
+     new GNUstep.conf file (which is not installed by default).
+
+   * Psuedo-framwork support was implemented on MingW. This essentially
+     involves copying the framework to several places so it can be used
+     without links, which Windows does not really support.  There's no
+     other clean way to do it.
+
+   * Support for xxx_WINDRES_FILES on MinGW was implemented.
+
 
 Changes in version `1.10.0'
 ===========================
index 4d8037d9928dd3689d87d7ecc7628a894f72101f..32f37c457f090c07987e72dfa2a2620528df6257 100644 (file)
@@ -39,18 +39,13 @@ 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).
+   The GNUstep make package is licensed under the GNU GPL.
 
 History
 =======
 
-The GNUstep makefile package was designed by Scott Christley
-<scottc@net-community.com> and Ovidiu Predescu
-<ovidiu@net-community.com>.
+The GNUstep makefile package was designed by Scott Christley and Ovidiu
+Predescu.
 
    Flags for building shared libraries and bundles on several systems
 were originally identified by Mircea Oancea <mircea@pathcom.com>.
index b977a0159b144f5437fdb5e4220eb61ecfb2b2cf..6fd836d8979547c99ac9314092e7e18b115bf738 100644 (file)
@@ -3,7 +3,7 @@
 
 # The version number of this release.
 GNUSTEP_MAKE_MAJOR_VERSION=1
-GNUSTEP_MAKE_MINOR_VERSION=10
+GNUSTEP_MAKE_MINOR_VERSION=11
 GNUSTEP_MAKE_SUBMINOR_VERSION=0
 GNUSTEP_MAKE_VERSION=${GNUSTEP_MAKE_MAJOR_VERSION}.${GNUSTEP_MAKE_MINOR_VERSION}.${GNUSTEP_MAKE_SUBMINOR_VERSION}
 
index 76a71e4476797ba7b749deae62d881192985c23a..a9c349df48bb71e0286f4120c16b4cbec55f05ae 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # prevent multiple inclusions
 ifeq ($(AGGREGATE_MAKE_LOADED),)
index a033dddc6972083306df5c163b68191eea7cf3cf..3be9953ad8fa97f2f45c2a8ef4babced837b20b8 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/application.make
index 03ffc02ad05b044ebd69f01dc86a5723ba9cf59b..79f7ea17d3749fc96d0d326e189327be0650bae1 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/bundle.make
index 8256d3d80f23a5265dab5cc2871f613edbf262c9..354f27e975a89ffbea1d68f45a1c608c45135294 100755 (executable)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 case "$1" in
     # Intel processors are made equivalent
index a43dbfc000b139f26a3d3e689f08d50bfff29633..7f76b76d4358e9e7cbca1a99885fea73037f2aa0 100755 (executable)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Nothing to clean right now
 case "$1" in
index af5e41510394eac3d144ea2b8b8e7762faefafc2..e61e8174d4bae85238b1348ebc2e6f07576cf42e 100755 (executable)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Nothing to clean right now
 echo $1
index 682b876cd9a0f6a9108115da4b6a998fa9db6197..187a17a3742cfbbdfcf814bd70ece5ad1047e149 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/clibrary.make
index bebff12a9e089e3ed262772a96868184cff7bd91..4ba8a31478ddde605ad06e306ff36c7775f138aa 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(COMMON_MAKE_LOADED),)
 COMMON_MAKE_LOADED = yes
index 182c2a1ad3dfaf1af84d3ddb441a0251345b6f0e..f9d18d48d993070771b55c481599aa383992cead 100755 (executable)
@@ -17,7 +17,7 @@ timestamp='2002-02-12'
 #
 # 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.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
index e77c1de5a7e7f0f03f5b5472049b693bd32de33f..6663c0f5d85f52773ded2a5ad605c10924755199 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # The GNUstep Make Package Version
@@ -48,12 +48,32 @@ LN_S = @LN_S@
 # returns LN_S
 ifeq ($(LN_S), ln -s)
   HAS_LN_S = yes
+else
+  HAS_LN_S = no
 endif
 
+# Special case - on mingw32, autoconf sets LN_S to 'ln -s', but then
+# that does a recursive copy (ie, cp -r).
 ifeq (@target_os@,mingw32)
   HAS_LN_S = no
 endif
 
+# This is used to remove an existing symlink before creating a new
+# one.  We don't trust 'ln -s -f' as it's unportable so we remove
+# manually the existing symlink (if any) before creating a new one.
+# If symlinks are supported on the platform, RM_LN_S is just 'rm -f';
+# if they are not, we assume they are copies (like cp -r) and we go
+# heavy-handed with 'rm -Rf'.  Note - this code might need rechecking
+# for the case where LN_S = 'ln', if that ever happens on some
+# platforms.
+ifeq ($(HAS_LN_S), yes)
+  RM_LN_S = rm -f
+  FRAMEWORK_VERSION_SUPPORT = yes
+else
+  RM_LN_S = rm -Rf
+  FRAMEWORK_VERSION_SUPPORT = no
+endif
+
 LD = $(CC)
 LDOUT =
 LDFLAGS = @LDFLAGS@ 
index 8609904566c046913ae488b032e8a0c3fcd4a57a..4583db627904533675b961022d6bc566cf6b8ec9 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 
 echo Processing GNUstep site configuration
index d1f7cb9fc7c663b872325c0c2d5501a99e50d782..427d6c92e46cde4f05b90f54d3d0f076fd6f6b43 100755 (executable)
@@ -21,8 +21,8 @@ timestamp='2002-02-12'
 #
 # 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.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
index c0989ad2020400b1221e60610ca17f59f723c121..0c66afb33bae98a9a22b925be53183f0564060f7 100755 (executable)
@@ -3436,7 +3436,7 @@ if test "${gs_cv_objc_libdir+set}" = set; then
 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
+  if test -f "$GNUSTEP_LDIR/libobjc.a" -o -f "$GNUSTEP_LDIR/libobjc.so" -o -f "$GNUSTEP_LDIR/libobjc.dll.a"; then
     gs_cv_objc_libdir="$GNUSTEP_LDIR"
   else
     gs_cv_objc_libdir=NONE
index 27aedbeba6663d53cfb3f5d700bc5ba29072a065..bec3b2f1e7acfc7f7fce6bd1d188091950502d25 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 AC_INIT
 AC_PREREQ(2.57)
 AC_CONFIG_SRCDIR([application.make])
@@ -376,7 +376,7 @@ 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
+  if test -f "$GNUSTEP_LDIR/libobjc.a" -o -f "$GNUSTEP_LDIR/libobjc.so" -o -f "$GNUSTEP_LDIR/libobjc.dll.a"; then
     gs_cv_objc_libdir="$GNUSTEP_LDIR"
   else
     gs_cv_objc_libdir=NONE
index 24fd04d8af4072665b3f5ad820c171c6f310eaa2..d1dc9db6ec681cff2967cfe196ac32ce62c5cc06 100755 (executable)
@@ -18,6 +18,6 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 echo $1 | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'
index 758e30316336fcf8eacc8fa32a1d29d045e04957..8528e0f559dee615c3cdab7c65d7d0cfb21e27ce 100755 (executable)
@@ -16,7 +16,7 @@
 # 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.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Take a single argument - a directory name -, and create the GNUstep
 # domain directory structure inside the directory.
index da577c4ffccb30b0e18f2cca544fb9f7d4ce050e..f25159311a56249fd1991a12dd763f5d75c6ef9c 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/ctool.make
index 9b77756025d5aa26711833c7a5e2bdd04a23ba86..39b0ea99479a5eff4bb45634cf1903d62654b5df 100644 (file)
@@ -17,7 +17,7 @@
 # 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.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Execute gdb for the application passed as argument. The application is
 # searched through the GNUstep directories if a complete or relative path name
index b2fb7eeaf4b5221c406f5a97b0e753c58ea248e2..ddd86db9ffa633898713ec544c1acff928840a7b 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/documentation.make
index 68303f1ecd6dc392a4dc7b0a482122134bb9dc1b..160aaadfcb61e07cec241ddf82eacc5f44134a02 100755 (executable)
@@ -20,7 +20,7 @@
 # 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.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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.
index c164e01b52e2e29444a7c293d063718385c8e9c4..60bf3f623dbc4a1b9e705c1ec34645f83a1b0878 100755 (executable)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 
 #
index b6fce4a5aab3ebe179bd12c242d81932f02398c9..fb3a2ab460f03ac7bedf30de9fa60c75902a59ad 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/framework.make
index aeab6aa38c48229efdc92fc27af6cc91d22945c6..db7257d69ff9cf3ea62f927d36f7d331cc61e999 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/gswapp.make
index 267fb2fc1a199274fa8928ad82d0a0dc26d10ed4..984e3014e0d350feb7accb9c736e96905c5c0fd8 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/gswbundle.make
index 1bf1bffc9baa2a21f95a14933128215216cc6cc9..ef3915a47906b45202f48da30e611358ecb3b3fc 100644 (file)
@@ -15,7 +15,7 @@
 # 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.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # This is a shell script which attempts to execute a specific Java
 # class (hardcoded when the shell script is installed), preparing
index a28d9e033792f99730d569aa9e3ae911a6b99820..863d9ab5f3b87807c01ee1ae8b099e635788a1d4 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/java-tool.make
index ba9515694f99126397aa70cc51d2a1b8c82b5c1c..777f3677094c7032f9bc039b03a7d31196a0f398 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/java.make
index 3a1088440a97cf6bf913320c3c85fcfd8713efcc..95fca88b0506741b85a53960c8929c9c1e922207 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 #
 # Include this file if you need to compile JNI code. 
index 21870752d25dd351bf9878d90f77cda643c47873..3e4ae6b16f90311a2db594ca6b21452780d52ee4 100755 (executable)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 
 # The first (and only) parameter to this script is the canonical
@@ -85,25 +85,25 @@ switch ( "${host_os}" )
     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.
+# Frameworks in GNUstep-make are supported by creating a link like
+# 
+#   Libraries/libMyFramework.dylib ->
+#      Frameworks/MyFramework.framework/Versions/Current/libMyFramework.dylib,
 #
-#  Â  if ( ( "${LIBRARY_COMBO}" == "apple-apple-apple" ) \ 
-#  Â  Â  Â  Â || ( "${LIBRARY_COMBO}" == "apple") ) then
+# to mitigate the fact that FSF GCC does not support a -framework flag.
+#
+# On Darwin, however, we partially emulate -framework by setting the
+# "install_name" to the framework name during linking. The dynamic
+# linker (dyld) is smart enough to find the framework under this name,
+# but only if DYLD_FRAMEWORK_PATH is set (unless we set the
+# "install_name" to an absolute path, which we don't). We'd really like
+# to fully support -framework, though.
+#
+# Use otool -L MyApplication.app/MyApplication, for instance, to see
+# how the shared libraries/frameworks are linked.
+#
+#    if [ "$LIBRARY_COMBO" = "apple-apple-apple" -o \
+#         "$LIBRARY_COMBO" = "apple" ]; then
 
     unset additional
 
index 1b9b626a3a4de97752b04d8ae0e7a20349299b41..cb6871da4722574f85ef6ce4572d469bed26e89a 100755 (executable)
@@ -21,7 +21,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 
 # This file is sourced.  This means extra care is needed when changing
@@ -133,25 +133,25 @@ case "$host_os" in
     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.
+# Frameworks in GNUstep-make are supported by creating a link like
+# 
+#   Libraries/libMyFramework.dylib ->
+#      Frameworks/MyFramework.framework/Versions/Current/libMyFramework.dylib,
+#
+# to mitigate the fact that FSF GCC does not support a -framework flag.
+#
+# On Darwin, however, we partially emulate -framework by setting the
+# "install_name" to the framework name during linking. The dynamic
+# linker (dyld) is smart enough to find the framework under this name,
+# but only if DYLD_FRAMEWORK_PATH is set (unless we set the
+# "install_name" to an absolute path, which we don't). We'd really like
+# to fully support -framework, though.
+#
+# Use otool -L MyApplication.app/MyApplication, for instance, to see
+# how the shared libraries/frameworks are linked.
 #
 #    if [ "$LIBRARY_COMBO" = "apple-apple-apple" -o \
-#  Â  Â     "$LIBRARY_COMBO" = "apple" ]; then
+#         "$LIBRARY_COMBO" = "apple" ]; then
     
     if [ -z "$DYLD_FRAMEWORK_PATH" ]; then
       DYLD_FRAMEWORK_PATH="$fw_paths"
index 4459b69876fe9483900ba51bf2e45dee10204cca..f1a2824e945671e8190758ce64ccc66f4b6a3bec 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
index b193731c3a26c2f7a2f929adb920ec6db1dfb45c..045a625f8b5198e0ed8621b911cfdc2f075fd525 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/library.make
index 9bc09e792d410dab1105c36bfb528f48dc2d4268..39b112699fd648dd0c4a57f94dc30953ec4b4a19 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Helpful messages which are always printed
 
index 2c2af93bf59ab08172c1bb015be470ebc949b8b0..5c67102ca1a4368921bc85a9d314e14d0018d517 100755 (executable)
@@ -16,7 +16,7 @@
 # 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.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Move old paths from previous filesystem heirarchy to new location
 
index 9eb351a9a84a1a970e4f310511e8879f741da252..71513c3d48dcd08a13ce30a96d8cb55147e9b2f0 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Run config.guess to guess the host
 
index 06deb38d178eec4f2fea852b9b8982f7b59c2772..a7e42f256f6ed78c0b90b81bda12b6bc0ffcee92 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
index 835c1e67d35254bbee136189bbcf0cacdc11ee60..ba6fb5f9069fd38f6c103bcf41b2ff56c2275365 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/objc.make
index aa68403f12d6a45648864f492469b37749c95a1a..6b6f294826d2895556df7f141b97cea0f9c314eb 100755 (executable)
@@ -19,7 +19,7 @@
 # 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.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Try to execute the application passed as argument. The application is
 # searched through the GNUstep directories if a complete or relative path name
index 5b7f9d33a28bf493c805782190e0672e8f613cf1..747ce0c89f40365668d9f4ec8fb64504b1dc83d5 100644 (file)
@@ -18,7 +18,7 @@
 # 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.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
index 7f68e7fa51c29591a8966644a428c12c7e779351..00eade90a9b35cbf932b1f93e4a62856364c5a3b 100755 (executable)
@@ -18,6 +18,6 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 echo $1 | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'
index 5bf6086aab4984551538974b6acee744a0eb6f64..03eaa66b7c7203033d15bd8a936665d20b106e8d 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/palette.make
index 2268a9fc91b947b147b5e058e2feed9739b7add8..072654d6507cf1d6bf2a6627753fada7a64a9f18 100755 (executable)
@@ -16,7 +16,7 @@
 # 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.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
index 9a1ffa007670c92752c745d335e32204ba8b0b23..dce7d2f8b67e2a7c65a6c43526b2d065c07fefc6 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/resource-set.make
index 332e369c276bf2fca5eff2ece8fcf1433d165b48..76b425e53d70fc6d2dd694ece9d36e68edfbb22d 100644 (file)
@@ -19,7 +19,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # prevent multiple inclusions
 
@@ -307,7 +307,13 @@ ALL_CPLISTFLAGS += $(ADDITIONAL_CPLISTFLAGS) $(AUXILIARY_CPLISTFLAGS)
 # 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)
+#
+# In the new DLL support, this is usually no longer needed.  The
+# compiler does it all automatically.  But in some cases, some symbols
+# can not be automatically imported and you might want to declare them
+# specially.  For those symbols, this define is handy.
+#
+ifeq ($(BUILD_DLL),yes)
 ALL_CPPFLAGS += -DGNUSTEP_WITH_DLL
 endif
 
@@ -474,6 +480,20 @@ $(GNUSTEP_OBJ_DIR)/%${OEXT} : %.cp
        $(YACC) $(YACC_FLAGS) $<
        mv -f y.tab.c $@
 
+#
+# Special mingw32 specific rules to compile Windows resource files (.rc files)
+# into object files.
+#
+ifeq ($(findstring mingw32, $(GNUSTEP_TARGET_OS)), mingw32)
+# Add the .rc suffix on Windows.
+.SUFFIXES: .rc
+
+# A rule to generate a .o file from the .rc file.
+$(GNUSTEP_OBJ_DIR)/%${OEXT}: %.rc
+       $(ECHO_COMPILING)windres $< $@$(END_ECHO)
+endif
+
+
 # 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
@@ -503,7 +523,7 @@ endif
 $(GNUSTEP_OBJ_DIR):
        $(ECHO_NOTHING)cd $(GNUSTEP_BUILD_DIR); \
        $(MKDIRS) ./$(GNUSTEP_OBJ_DIR_NAME); \
-       rm -f obj; \
+       $(RM_LN_S) obj; \
        $(LN_S) ./$(GNUSTEP_OBJ_DIR_NAME) obj$(END_ECHO)
 
 endif
index 0db1471f5ff7a453ff816b88979dace105f534de..1986fa51621791324d11a1ba5ca3d10de2d341f0 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/service.make
index 0f70f1af556d9ce7c12858a4e6af7284239f8314..2c2870b13c130570ff249b0dd18630a061695bc4 100755 (executable)
@@ -21,7 +21,7 @@
 # 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.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 echo " "
 echo "Enter the name of your timezone file"
index 2cbbbd225f76a2ce4c5852635b7a9f958cd7f146..1ba8a10eeadd27e7b66ebbf1dc54eef093865a76 100755 (executable)
@@ -16,7 +16,7 @@
 # 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.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # This script "strips" the makefiles and shell scripts.
 
index 2d52332e0f6b3243aa8afdf763ddc5ba1da57449..fbc8c3d192d1cd2d2a6edc614f23b3b3ecddb821 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/subproject.make
index 39e87fdd3b240cbc65b243d10153e706ed9289b1..0444be210af39e78d9b7c0a5b6172648e7c88830 100644 (file)
@@ -1,2 +1,2 @@
 CVS
-.svn
\ No newline at end of file
+*.svn
index c46b5af0a84da0251b7e3af986090f2154b71b50..6d658e7e5f9d9f9b76f2cd4b83cea8d50aefbdf8 100644 (file)
@@ -18,7 +18,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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
@@ -45,18 +45,18 @@ endif
 endif
 
 ifeq ($(findstring mingw32, $(GNUSTEP_TARGET_OS)), mingw32)
-  TARGET_SYSTEM_LIBS := $(CONFIG_SYSTEM_LIBS) \
+  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. 
+  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
+  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
+  TARGET_SYSTEM_LIBS = $(CONFIG_SYSTEM_LIBS) -lsocket -lnsl -lm
 endif
 
 #
@@ -85,7 +85,14 @@ endif
 #    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.
+#     libraries, and `libgnustep-base.a' for static libraries.  For DLL
+#     libraries, this is the import library libgnustep-base.dll.a.  The
+#     reason we use the import library is because that is the code which
+#     needs to be installed in the library path.  So by setting
+#     LIB_LINK_VERSION_FILE to the import library, the standard code to
+#     install it in the library path will work for Windows.  The DLL
+#     library instead needs to be installed in the PATH, so we have separate
+#     code for that one.
 #  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' 
@@ -102,7 +109,13 @@ endif
 #  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.
-#
+#  LIB_LINK_DLL_FILE: on Windows, this is the DLL that gets created
+#    and installed in the Tools/ directory (eg, gnustep-base.dll).
+#    Please note that while this is the main file you need to use the
+#    library at runtime, on Windows we treat this as a side-effect of
+#    the compilation; the compilation target for make is
+#    LIB_LINK_VERSION_FILE, which is the import library.
+
 # 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
@@ -152,7 +165,7 @@ SHARED_CFLAGS =
 SHARED_LIBEXT =
 AFTER_INSTALL_SHARED_LIB_CMD = \
        (cd $(LIB_LINK_INSTALL_DIR); \
-        rm -f $(LIB_LINK_FILE); \
+        $(RM_LN_S) $(LIB_LINK_FILE); \
         $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
 AFTER_INSTALL_SHARED_LIB_CHOWN = \
        (cd $(LIB_LINK_INSTALL_DIR); \
@@ -203,7 +216,7 @@ SHARED_LIB_LINK_CMD     = \
                -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); \
+       (cd $(LIB_LINK_OBJ_DIR); $(RM_LN_S) $(LIB_LINK_FILE); \
           $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
 else # OBJC_COMPILER=NeXT
 SHARED_LIB_LINK_CMD     = \
@@ -216,7 +229,7 @@ SHARED_LIB_LINK_CMD     = \
                $(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
                -framework Foundation \
                $^ $(SHARED_LD_POSTFLAGS); \
-       (cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
+       (cd $(LIB_LINK_OBJ_DIR); $(RM_LN_S) $(LIB_LINK_FILE); \
           $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
 endif # OBJC_COMPILER
 
@@ -283,20 +296,21 @@ 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
+
+INTERNAL_LDFLAGS += -flat_namespace -undefined warning
+
+SHARED_LD_PREFLAGS += -Wl,-noall_load -read_only_relocs 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 \
+       $(CC) \
                $(SHARED_LD_PREFLAGS) \
-               $(ARCH_FLAGS) -dynamic  \
+               $(ARCH_FLAGS) -dynamic -dynamiclib      \
                $(DYLIB_COMPATIBILITY_VERSION)          \
                $(DYLIB_CURRENT_VERSION)                \
                -install_name $(LIB_LINK_INSTALL_NAME)  \
@@ -305,15 +319,15 @@ SHARED_LIB_LINK_CMD     = \
                $^ $(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
                $(SHARED_LD_POSTFLAGS); \
        (cd $(LIB_LINK_OBJ_DIR); \
-          rm -f $(LIB_LINK_FILE); \
+          $(RM_LN_S) $(LIB_LINK_FILE); \
           if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(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
+BUNDLE_LDFLAGS  += -bundle /usr/lib/bundle1.o
 
 else 
 # Apple Compiler
@@ -337,9 +351,9 @@ SHARED_LIB_LINK_CMD     = \
                $(INTERNAL_LIBRARIES_DEPEND_UPON) $(LIBRARIES_FOUNDATION_DEPEND_UPON) \
                $^ $(SHARED_LD_POSTFLAGS); \
        (cd $(LIB_LINK_OBJ_DIR); \
-          rm -f $(LIB_LINK_FILE); \
+          $(RM_LN_S) $(LIB_LINK_FILE); \
           if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(LIB_LINK_SONAME_FILE);\
             $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
           fi; \
           $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
@@ -353,9 +367,9 @@ endif # CC_TYPE
 
 AFTER_INSTALL_SHARED_LIB_CMD = \
        (cd $(LIB_LINK_INSTALL_DIR); \
-         rm -f $(LIB_LINK_FILE); \
+         $(RM_LN_S) $(LIB_LINK_FILE); \
          if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(LIB_LINK_SONAME_FILE);\
            $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
          fi; \
          $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE) )
@@ -414,7 +428,7 @@ SHARED_LIB_LINK_CMD     = \
                -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); \
+       (cd $(LIB_LINK_OBJ_DIR); $(RM_LN_S) $(LIB_LINK_FILE); \
           $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
 else
 SHARED_LIB_LINK_CMD     = \
@@ -426,7 +440,7 @@ SHARED_LIB_LINK_CMD     = \
                $(INTERNAL_LIBRARIES_DEPEND_UPON) \
                $(LIBRARIES_FOUNDATION_DEPEND_UPON) $^ \
                $(SHARED_LD_POSTFLAGS); \
-       (cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
+       (cd $(LIB_LINK_OBJ_DIR); $(RM_LN_S) $(LIB_LINK_FILE); \
           $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
 endif
 
@@ -482,7 +496,7 @@ SHARED_LIB_LINK_CMD     = \
                 $(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); \
+       (cd $(LIB_LINK_OBJ_DIR); $(RM_LN_S) $(LIB_LINK_FILE); \
           $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
 else
 SHARED_LIB_LINK_CMD     = \
@@ -491,7 +505,7 @@ SHARED_LIB_LINK_CMD     = \
                -framework System \
                $(INTERNAL_LIBRARIES_DEPEND_UPON) $^ \
                $(SHARED_LD_POSTFLAGS); \
-       (cd $(LIB_LINK_OBJ_DIR); rm -f $(LIB_LINK_FILE); \
+       (cd $(LIB_LINK_OBJ_DIR); $(RM_LN_S) $(LIB_LINK_FILE); \
           $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
 endif
 
@@ -529,18 +543,18 @@ SHARED_LIB_LINK_CMD     = \
           $(INTERNAL_LIBRARIES_DEPEND_UPON) \
           $(SHARED_LD_POSTFLAGS);\
        (cd $(LIB_LINK_OBJ_DIR); \
-          rm -f $(LIB_LINK_FILE); \
+          $(RM_LN_S) $(LIB_LINK_FILE); \
           if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(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); \
+          $(RM_LN_S) $(LIB_LINK_FILE); \
           if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(LIB_LINK_SONAME_FILE);\
             $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
           fi; \
           $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
@@ -561,7 +575,6 @@ BUNDLE_LD      =  $(CC)
 BUNDLE_LDFLAGS     += -shared
 ADDITIONAL_LDFLAGS += -rdynamic
 STATIC_LDFLAGS += -static
-
 endif
 #
 # end Linux ELF
@@ -580,7 +593,7 @@ 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); \
+         $(RM_LN_S) $(LIB_LINK_FILE); \
          $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
 
 SHARED_CFLAGS  += -fPIC
@@ -610,17 +623,17 @@ SHARED_LIB_LINK_CMD = \
           $(INTERNAL_LIBRARIES_DEPEND_UPON) \
           $(SHARED_LD_POSTFLAGS);\
        (cd $(LIB_LINK_OBJ_DIR); \
-         rm -f $(LIB_LINK_FILE); \
+         $(RM_LN_S) $(LIB_LINK_FILE); \
           if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(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); \
+         $(RM_LN_S) $(LIB_LINK_FILE); \
           if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(LIB_LINK_SONAME_FILE);\
             $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
           fi; \
          $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
@@ -640,6 +653,15 @@ BUNDLE_LD  = $(CC)
 BUNDLE_LDFLAGS += -shared
 ADDITIONAL_LDFLAGS += -rdynamic
 STATIC_LDFLAGS += -static
+
+##
+## The -pthread flag must be passed to all compilation/link commands.
+##
+ifeq ($(objc_threaded), -pthread)
+  INTERNAL_CFLAGS += -pthread
+  INTERNAL_OBJCFLAGS += -pthread
+  INTERNAL_LDFLAGS += -pthread
+endif
 endif
 endif
 #
@@ -662,7 +684,7 @@ 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); \
+          $(RM_LN_S) $(LIB_LINK_FILE); \
           $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
 
 SHARED_CFLAGS   += -shared -fpic
@@ -692,7 +714,7 @@ SHARED_LIB_LINK_CMD = \
                  $^ $(INTERNAL_LIBRARIES_DEPEND_UPON) \
                  $(SHARED_LD_POSTFLAGS); \
        (cd $(LIB_LINK_OBJ_DIR); \
-         rm -f $(LIB_LINK_FILE); \
+         $(RM_LN_S) $(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) $^ ;
@@ -728,17 +750,17 @@ SHARED_LIB_LINK_CMD = \
           $(INTERNAL_LIBRARIES_DEPEND_UPON) \
           $(SHARED_LD_POSTFLAGS);\
        (cd $(LIB_LINK_OBJ_DIR); \
-         rm -f $(LIB_LINK_FILE); \
+         $(RM_LN_S) $(LIB_LINK_FILE); \
           if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(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); \
+         $(RM_LN_S) $(LIB_LINK_FILE); \
           if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(LIB_LINK_SONAME_FILE);\
             $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
           fi; \
          $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
@@ -771,7 +793,7 @@ 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); \
+         $(RM_LN_S) $(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) $^ ;
@@ -806,18 +828,18 @@ SHARED_LIB_LINK_CMD     = \
           $(INTERNAL_LIBRARIES_DEPEND_UPON) \
           $(SHARED_LD_POSTFLAGS);\
        (cd $(LIB_LINK_OBJ_DIR); \
-          rm -f $(LIB_LINK_FILE); \
+          $(RM_LN_S) $(LIB_LINK_FILE); \
           if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(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); \
+          $(RM_LN_S) $(LIB_LINK_FILE); \
           if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(LIB_LINK_SONAME_FILE);\
             $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
           fi; \
           $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
@@ -852,12 +874,29 @@ endif
 ifeq ($(findstring mingw32, $(GNUSTEP_TARGET_OS)), mingw32)
 shared = yes
 HAVE_SHARED_LIBS = yes
+# This command links the library, generates automatically the list of
+# symbols to export, creates the DLL (eg, obj/gnustep-base.dll) and 
+# the import library (eg, obj/libgnustep-base.dll.a).
+SHARED_LIB_LINK_CMD     = \
+        $(CC) $(SHARED_LD_PREFLAGS) -shared -Wl,--out-implib,$(LIB_LINK_OBJ_DIR)/$(LIB_LINK_VERSION_FILE) \
+           $(ALL_LDFLAGS) -o $(LIB_LINK_OBJ_DIR)/$(LIB_LINK_DLL_FILE) $^ \
+          $(INTERNAL_LIBRARIES_DEPEND_UPON) \
+          $(SHARED_LD_POSTFLAGS)
+
+AFTER_INSTALL_SHARED_LIB_CMD = 
+AFTER_INSTALL_SHARED_LIB_CHOWN =
+
 BUILD_DLL       = yes
-WITH_DLL        = yes
-SHARED_LIBEXT   = .a
+LIBEXT          = .a
+# Technically, in this Unix-inspired building system, a DLL is
+# composed of a .dll file which goes in the executable path and is the
+# one which is loaded at runtime, and a .dll.a file which goes in the
+# library path and which is linked into the application in order to
+# enable it use the .dll.  Anything in gnustep-make which is looking
+# for shared libs should detect / look for the .dll.a as that's what
+# we link applications against.
+SHARED_LIBEXT    = .dll.a
 DLL_LIBEXT      = .dll
-DLLTOOL                 = dlltool
-DLLWRAP                 = dllwrap
 #SHARED_CFLAGS  += 
 
 OBJ_MERGE_CMD = \
@@ -865,7 +904,12 @@ OBJ_MERGE_CMD = \
 
 HAVE_BUNDLES   = yes
 BUNDLE_LD      = $(CC)
-BUNDLE_LDFLAGS += -nodefaultlibs -Xlinker -r
+BUNDLE_LDFLAGS     += -shared
+
+# On Mingw32, it looks like the class name symbols start with '___' rather 
+# than '__'
+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;}'
+
 endif
 
 # end Mingw32
@@ -880,7 +924,7 @@ ifeq ($(findstring cygwin, $(GNUSTEP_TARGET_OS)), cygwin)
 shared = yes
 HAVE_SHARED_LIBS = yes
 BUILD_DLL       = yes
-WITH_DLL        = yes
+OLD_DLL_SUPPORT  = yes
 SHARED_LIBEXT   = .a
 DLL_LIBEXT      = .dll
 DLLTOOL                 = dlltool
@@ -912,18 +956,18 @@ SHARED_LIB_LINK_CMD     = \
           $(INTERNAL_LIBRARIES_DEPEND_UPON) \
           $(SHARED_LD_POSTFLAGS);\
        (cd $(LIB_LINK_OBJ_DIR); \
-          rm -f $(LIB_LINK_FILE); \
+          $(RM_LN_S) $(LIB_LINK_FILE); \
           if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(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); \
+          $(RM_LN_S) $(LIB_LINK_FILE); \
           if [ "$(LIB_LINK_SONAME_FILE)" != "$(LIB_LINK_VERSION_FILE)" ]; then\
-            rm -f $(LIB_LINK_SONAME_FILE);\
+            $(RM_LN_S) $(LIB_LINK_SONAME_FILE);\
             $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_SONAME_FILE); \
           fi; \
           $(LN_S) $(LIB_LINK_SONAME_FILE) $(LIB_LINK_FILE); \
@@ -961,7 +1005,7 @@ SHARED_LIB_LINK_CMD     = \
          $(SHARED_LD_POSTFLAGS);\
         mv $(LIB_LINK_VERSION_FILE) $(LIB_LINK_OBJ_DIR);\
         (cd $(LIB_LINK_OBJ_DIR); \
-          rm -f $(LIB_LINK_FILE); \
+          $(RM_LN_S) $(LIB_LINK_FILE); \
           $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
 
 SHARED_CFLAGS     += -fpic -fPIC
@@ -990,7 +1034,7 @@ SHARED_LIB_LINK_CMD     = \
            -v $(SHARED_CFLAGS) -shared \
            $(ALL_LDFLAGS) -o $(LIB_LINK_VERSION_FILE) `ls -1 *\.o */*\.o` \
            $(SHARED_LD_POSTFLAGS) ;\
-          rm -f $(LIB_LINK_FILE); \
+          $(RM_LN_S) $(LIB_LINK_FILE); \
           $(LN_S) $(LIB_LINK_VERSION_FILE) $(LIB_LINK_FILE))
 
 ifeq ($(CC), cc)
index f980eb4aa5c24092b5de832c340bb5f1e9609d59..2d147ec459e14360e6488da05cecb317f5f74e49 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/test-application.make
index c1fd964265ca6a123ce276104e6051f748b15ba7..9a898067799b4cce3850fd8b1d8a3a5eca7a9c00 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/test-library.make
index 7e6d3e146aa573a9c27f8d0a0752b2b87b4410fa..7d761488637e5c61f531de1259850a8d341e3d72 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/test-tool.make
index e6d83ae39e202fddd2f4a2320264a140513cf983..579c8fcc6040acf94097bcce6cd87dbadb56c045 100644 (file)
@@ -17,7 +17,7 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ifeq ($(GNUSTEP_INSTANCE),)
 include $(GNUSTEP_MAKEFILES)/Master/tool.make
index 66875ec7f17c9059f9d359469ef9f7a0c13297f2..428075db1abd0e4f75d8a3da56595c0d7e5c867f 100755 (executable)
@@ -19,7 +19,7 @@
 # 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.
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Takes a list of paths possibly containing relative paths and outputs a
 # list containing only absolute paths based upon the current directory.
index 623210d5e6f1d3701626bfc479ec3ce9ab844306..96f77b1dfa05296dee58801e5ccefa6fe868e042 100644 (file)
@@ -15,7 +15,7 @@
    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.  */
+   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 #include "config.h"
 
@@ -186,6 +186,10 @@ int main (int argc, char** argv)
              sprintf(home, "C:%s", buf0);
            }
        }
+      else
+       {
+         strcpy(home, buf0);
+       }
     }
   else
     {
index f3e6d347c01a31feb5685c1b1d480ff1e07f0ff4..fefffdbe7f15964ef2c2dd31b6513ed92215687d 100755 (executable)
@@ -18,6 +18,6 @@
 #   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.
+#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 echo $1 | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'
index cf02287c0a58222051229ee8197a23d76153874a..5f46597fb7d291b61666ea7aed89e950883bcb3c 100644 (file)
@@ -19,7 +19,7 @@
    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.  */
+   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 /*