2022-02-06 Richard Frith-Macdonald * Instance/Documentation/texi.make: for index.html specify explicit output file for texi2html (Debian Bug#1030387) 2023-02-06 Riccard Mottola * Master/source-distribution.make Try to implement .dist-ignore support for git-dist: after archive, export and recompress again by excluding .dist-ignore 2022-12-28 Richard Frith-Macdonald * ANNOUNCE: * NEWS: * RELEASENOTES: * Documentation/news.texi: * Documentation/releasenotes.texi: Update announcement and release notes for 2.9.1. * Version: Bump version to 2.9.1. 2022-12-05 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: use the -a option to force grep to treat log files as text rather than binary. If treated as binary it would not extract the information we need. * TestFramework/Testing.h: fix uninitialised variable in the macro to test for a regexp match. 2022-03-01 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: When using TestInfo send stdout and stderr to /dev/null so that thy don't interfere with the test output. 2022-02-16 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: Fix bug introduced in rewrite for parallelisation: we were getting immediate end of testing when one file failed, but that behavior should only occur when --failfast is specified. 2022-01-26 Richard Frith-Macdonald * TestFramework/README: * TestFramework/TestInfo: * TestFramework/gnustep-tests.in: Add support for controlling test execution using SEQUENCE and PARALLEL in TestInfo to control the order of seuntial tests and the running of concurrent tests. 2021-03-28 Frederik Seiffert * TestFramework/Testing.h: Add workaround for Clang bug on Windows MSVC when tests contain no Objective-C constructs. 2021-03-21 Ivan Vucica * ANNOUNCE: * NEWS: * RELEASENOTES: * Documentation/news.texi: * Documentation/releasenotes.texi: Update release notes for 2.9.0. * Version: Bump version to 2.9.0. 2021-03-09 Frederik Seiffert * target.make: Link against debug or release UCRT DLLs for Windows MSVC and remove unused -pthread flag. * configure: * configure.ac: Fix CFLAGS for Windows MSVC. 2021-03-06 Richard Frith-Macdonald * Instance/application.make: * configure: * configure.ac: * jni.make: * rules.make: * target.make: Adopt the triplet used by the mingw-w64 project (where the OS is always mingw32 and we differentiate 64bit Windows using the vendor part), rather than the one returned by autoconf. Scrap most of the code to differentiate between the two systems. 2021-02-25 Richard Frith-Macdonald * configure: * configure.ac: Convert mingw-w64's triplet (cpu-w64-mingw32) which looks like mingw32 back to standard form. 2021-02-12 Frederik Seiffert * common.make: Silence PATH warning on Windows MSVC. * config-noarch.make.in: Add workaround for GNUSTEP_MAKEFILES breaking when using Windows-native "make". 2021-01-29 Frederik Seiffert * common.make: * configure: * m4/gs_cc_is_clang.m4: * target.make: Added support for building on Windows with Clang MSVC target. Requires passing a host like --host=x86_64-pc-windows. Removes the check for $GCC in gs_cc_is_clang.m4 as it will be false when using the MSVC ABI due to __GNUC__ not being defined. 2021-01-29 Frederik Seiffert * common.make: * target.make: Check $CLANG_CC instead of comparing $CC with "clang". Fixes checks when $CC is set to something like /path/to/clang. 2021-01-29 Frederik Seiffert * Instance/rules.make: * Instance/subproject.make: * common.make: Link subproject object files directly. Instead of merging all subproject object files into subproject.o, we now create subproject.txt containing a list of all object files, and use these directly in SUBPROJECT_OBJ_FILES. This enables building on platforms like Windows MSVC where `ld -r` is not supported, and generally avoids issues with incremental linking that have historically existed in some linker versions. 2021-01-18 Fred Kiefer * Documentation/news.texi: Update for upcoming release. 2020-11-26 Frederik Seiffert * configure * configure.ac: Check for objc.dll to support libobjc2 on Windows. 2020-11-26 Frederik Seiffert * configure * configure.ac: Enable checking for native Objective-C exception support on Windows if non-gnu runtime is used (i.e. ng runtime). 2020-11-14 Richard Frith-Macdonald * rules.make: * target.make: New variables FINAL_LDFLAGS and CORE_LDFLAGS such that ALL_LDFLAGS is now a combination of the two, and is used for final linking of an executable re shared library/bundle, while CORE_LDFLAGS is used when performing a partial link in a subproject. 2020-10-31 Yavor Doganov * Instance/Documentation/texi.make: Honor @setfilename. 2020-08-30 Ladislav Michl * configure.ac: Increase AC version number and use OBJCXX directly. * configure: Regenerate. 2020-07-09 Wolfgang Lux * rules.make: Fix variable name to make compiling for ARC actually work. 2020-06-07 Fred Kiefer * gs_gcc_version.m4: Add -dumpfullversion to the version extraction. Versions of gcc > 7.0 require this parameter to output the full version number. Older versions should just ignore this option. * configure: Regenerate 2020-04-14 Yavor Doganov * config-precomp-test/run-test.sh: Put $LIBS at the end so that it works with GCC >= 9 (which implies -Wl,--as-needed). 2020-04-13 Ivan Vucica * Documentation/announce.texi: * ANNOUNCE: Normalize the accompanying text for the release announcement across core packages: standardize chapter name and GPG information. 2020-04-05 Ivan Vucica * ANNOUNCE: * NEWS: * RELEASENOTES: * Documentation/news.texi: * Documentation/releasenotes.texi: Update release notes for 2.8.0. * Version: Bump version to 2.8.0. 2020-02-28 Patryk Laurent * target.make: Unified cross-OS class name extraction and unified for other OSes (Darwin, OpenBSD, MinGW). 2020-02-22 Patryk Laurent * target.make: Improved detection of runtime version. Fixed class name extraction for Darwin, OpenBSD and MinGW32/64. 2020-02-18 Patryk Laurent * target.make: Fixed EXTRACT_CLASS_NAMES_COMMAND for runtime v2. 2020-02-17 Richard Frith-Macdonald * library-combo.make: removed GS_WITH_ARC support * rules.make: added GS_WITH_ARC stuff * Documentation/gnustep-make.texi: Document the changes ... We can define GS_WITH_ARC more freely (it is no longer necessary to define it before common.make). The default compiler flags for ARC support now include -fobjc-arc-exceptions. We can now define ARC_CPPFLAGS and ARC_OBJCFLAGS to overide the flags sent to the preprocessor and compiler/linker when ARC is enabled using GS_WITH_ARC 2019-10-29 Wolfgang Lux * GNUmakefile.in: * Master/source-distribution.make: Add support for creating Mercurial tags and creating tarballs from a Mercurial tag. 2018-07-10 Richard Frith-Macdonald * config.make.in: * configure: * configure.ac: * library-combo.make: * target.make: Change to use -fobjc-runtime=gcc when building with clang but targetting the gnu/gcc runtime ABI. Suggested by David as the correct way to tell clang what runtime it should be targetting. 2018-07-09 Richard Frith-Macdonald * Documentation/library-combo.7: * common.make: * config.make.in: * configure: * configure.ac: * library-combo.make: Changes removing nonfragile ABI settings I made over a year ago and somehow failed to commit. With the ng runtime we always use the nonfragile ABI (since it's required for ARC). With the gnu runtime we don't have it and can't use it. Anything else is for experts (and if we want to make that easier it's better done in gnustep-base). 2018-07-05 Wolfgang Lux * Instance/framework.make: * Instance/library.make: Fix quotation errors in automatically generated testsuite flags. 2018-03-22 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: When invoked with --verbose it would be nice to build testscases using messages=yes 2018-03-21 Richard Frith-Macdonald * Instance/framework.make: * Instance/library.make: When automatically invoking testsuite for 'make check', pass additional linker flags to use -rpath so built testcases can be executed standalone and still use the locally built library/framework. Idea by David 2018-03-05 Riccardo Mottola * target.make Remove legacy Rhapsody and FreeBSD-out support 2018-03-05 Riccardo Mottola * target.make netbsd: cleanup old X11R6 directories and generally remove additional dirs 2017-12-10 Ivan Vucica * Master/source-distribution.make * GNUmakefile.in: When adding an ANNOUNCE file to the annotated tag, added dependency on the passed ANNOUNCE file to ensure the temporary file which prepends 'Release x.yz' gets regenerated while tagging. 2017-12-07 Ivan Vucica * Master/source-distribution.make: Allow creating a Git tag and creating a tarball from a git tag. * GNUmakefile.in: Allow creating a Git tag and creating a tarball from a Git tag, for releasing gnustep-make itself. 2017-04-14 Richard Frith-Macdonald * Version: 2.7.0 release * Documentation/news.texi: 2.7.0 release * Documentation/releasenotes.texi: 2.7.0 release * ANNOUNCE: * INSTALL: * NEWS: * README: * RELEASENOTES: Regenerate documentation 2017-04-07 Richard Frith-Macdonald * common.make: correct earlier change ... error pointed out by Galen Rhodes as bug #50751 2016-11-22 Doug Simons * target.make: Fix EXTRACT_CLASS_NAMES_COMMAND for Mingw64. 2016-08-19 Giah de Barag * common.make: filter out optimisation flags when in debug mode. 2016-07-10 13:33-EDT Gregory John Casamento * GNUmakefile.in: add pkgconfig.make to INSTANCE_SHARED_MAKE_FILES variable so it is copied properly. 2016-07-08 Niels Grewe * GNUstep.conf.in * GNUstep.csh.in * GNUstep.sh.in * Instance/Shared/pkgconfig.make * Instance/framework.make * Instance/library.make * config-noarch.make.in * configure * configure.ac * messages.make Preliminary support for pkg-config files. The GNUstep.sh scripts set the PKG_CONFIG_PATH and $(INSTANCE)_PKGCONFIG_FILES can be used to specify the files to install. 2016-06-29 Niels Grewe * Instance/framework.make: Fix installation of Resources symlinks. 2016-06-25 Richard Frith-Macdonald * Documentation/releasenotes.texi: * GNUmakefile.in: * GNUstep.csh.in: * GNUstep.sh.in: * Master/rules.make: * common.make: * config-noarch.make.in: * gnustep-config.in: * openapp.in: * opentool.in: * rules.make: When building non-flattened, the subdirectory name for libraries/binaries is changed for Debian compatibility (and simplicity) to use a directory whose name is of the form architecture/library-combo rather than nested directories of the form cpu/os-abi/library-combo. The architecture name format is a sanitised triplet cpu-os-abi (where previously we had cpu/os-abi). When building non-flattened, header files are now installed in an architecture and library-combo dependent subdirectory in the same way that binary libraries are installed. This removes an inconsistency and makes sense with Debian multiarch support which puts headers in an architecture specific subdirectory. These changes are the first step in making GNUstep work seamlessly with Debian multiarch. To use them you will need to rebuild your entire gnustep installation, and in particular build a version of gnustep-base which has correspoinding changes to know where to look up resources at runtime. However, the changes should have no effect on a flattened installation (currently the default). 2016-05-19 Seong Gu Lee * Instance/application.make: * config.guess: * config.sub: * jni.make: * rules.make: * target.make: mingw64 tweaks 2016-05-13 Richard Frith-Macdonald * TestFramework/Summary.sh: * TestFramework/gnustep-tests.in: Avoid some pointless warnings when cleaning 2016-05-13 Yavor Doganov * Instance/framework.make: Forgotten patch to allow multiple versions of a framework to be installed. * Documentation/GNUmakefile: * Instance/Documentation/texi.make: Forgotten patch to update for newere makeinfo which produces html. 2016-05-13 Richard Frith-Macdonald * GNUmakefile.in: * TestFramework/gnustep-tests.in: * config.make.in: * common.make: * library-combo.make: * configure.ac: * configure: Minor tweaks... use ARC by default if ng runtime is specified 2016-03-25 Richard Frith-Macdonald * common.make: * config.make.in: * configure.ac: * library-combo.make: * Documentation/library-combo.7: * TestFramework/Testing.h: * configure: Remove garbage collection support 2016-03-04 Richard Frith-Macdonald * configure.ac: Enable strict v2 mode by default * configure: regenerate * README.Packaging: Warn about updating ancient makefiles * Documentation/library-combo.7: Talk about ng runtime * Version: * Documentation/news.texi: * Documentation/releasenotes.texi: Update prior to new release 2016-03-02 Richard Frith-Macdonald * configure.ac: Improve selection of clang when 'ng' runtime library is selected. * configure: Regenerate. * library-combo.make: Add support for ARC with the 'ng' runtime setting. Enabled by defining GS_WITH_ARC=1 at the start of the GNUmakefile or in the environment or in the 'make' arguments. 2016-03-02 Niels Grewe * Master/documentation.make: Support skipping the documentation build if documentation=no is supplied * Documentation/gnustep-make.texi: Document the new documentation=no feature (and messages=yes, which as also missing). 2015-12-11 23:34-EST Gregory John Casamento * common.make: Mute error when trying to parse redhat-version file. 2015-11-26 Ivan Vucica * ChangeLog: Fixed dates on some previous entries. * bake_debian_files: Fixed a typo: DEB_PRIORTY -> DEB_PRIORITY. 2015-10-26 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: Exit with status 1 if there are any test failures, 0 otherwise. 2015-10-24 Richard Frith-Macdonald * Instance/framework.make: * Instance/library.make: * TestFramework/gnustep-tests.in: Improve automated library and framework testcase handling, with code to tell the testcases where to find the library/framework headers and what to link with in order to do the tests. 2015-10-21 Richard Frith-Macdonald * Instance/framework.make: Remove unused methods (-frameworkEnv and -frameworkPath) from the dummy class. 2015-10-20 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: Deprecate Env.sh ... use TestInfo to set test ewnvironment * Instance/framework.make: Add rule to invoke gnustep-tests * Instance/library.make: Add rule to invoke gnustep-tests * Master/clibrary.make: pass 'make check' to instance * Master/framework.make: pass 'make check' to instance * Master/library.make: pass 'make check' to instance * Master/test-library.make: pass 'make check' to instance Simple minded initial attempt to make unit testing for libraries and frameworks easier by having a built-in rule to execute test files in a subdirectory specified using xxx_TEST_DIR 2015-09-23 Germán Arias * Documentation/README.MinGW: Fix errors in services path. 2015-08-17 Wolfgang Lux * configure.ac: Fix the previous change, which had broken the tests for Objective C++, the fragile API and native exception support, by using the correct autoconf macros. * configure: Regenerated. 2015-08-16 Richard Frith-Macdonald * library-combo.make: Use David's suggested runtime flag for the next generation (ng) runtime combo. * configure.ac: Check for compiler blocks support for ng combo. Fix some program source quoting for newer autoconf 2015-08-08 Germán Arias * Documentation/README.MinGW: Add instructions to install aspell and to make a standalone directory to distribute apps. 2015-06-25 Niels Grewe * Instance/Shared/java.make: Fix escaping of inner classes when building jar files. 2015-06-09 Riccardo Mottola * config.make.in * configure.ac * target.make Check for nm and gnm as gnu nm, use a $(NM) variable instead of hard-coding the binary name of nm * configure Regerenated 2015-05-15 Richard Frith-Macdonald * Documentation/news.texi: * Documentation/releasenotes.texi: * ANNOUNCE: * INSTALL: * NEWS: * RELEASENOTES: * Version: 2.6.7 bugfix/improvement release 2015-03-23 Richard Frith-Macdonald * Instance/resource-set.make: Fix bug which could cause a resource dictionary to be installed inside an existing copy of the same resource dictionary. 2015-03-04 Germán Arias * Documentation/README.MinGW: Fix typos. 2015-02-21 Germán Arias * Documentation/README.MinGW: Add instructions to install cairo backend. 2015-02-19 Germán Arias * Documentation/README.MinGW: Update instructions for latest MinGW. 2015-01-19 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: Report abandoned files as failed. * TestFramework/Testing.h: Add timing of the duration of sets and a hook to perform additional reporting etc on set end. 2015-01-15 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: Check status of Start.sh script so we refrain from attempting tests in a directory whose startup script has failed. 2014-12-21 Niels Grewe * rules.make * Instance/Shared/java.make: Add as_jar option to install the jar file instead of the expanded class hierarchy. 2014-12-21 Niels Grewe * Instance/Shared/java.make * Instance/java.make * Instance/rules.make * Master/java.make * Master/rules.make * common.make * messages.make: Add a `jar' target to the java project type that allows jars to be built from all classes in the project. * Documentation/gnustep-make.texi: Document Java project variables. 2014-06-29 Nicolas Boulenguez (tiny change) * common.make (INTERNAL_CFLAGS): Do not ignore user-specified CFLAGS. 2014-06-29 Yavor Doganov * Documentation/GNUstep.7: * Documentation/debugapp.1: Typo fix. * Documentation/gnustep-tests.1: New. * GNUmakefile.in (install, uninstall): Handle gnustep-tests.1. 2014-06-07 Ivan Vucica * Master/deb.make: Now adding gnustep-make dependency to the DEB_BUILD_DEPENDS only when creating _debenv file. 2014-05-11 Ivan Vucica * GNUmakefile.in: Date-time and svn-revision suffix are now using the tilde character to ensure that the 'actual' commit and 'actual' tagged release are treated as being newer by the Debian packaging. Also stopped using periods in date-time. debfiles target will no longer be automatically run, allowing for build scripts to do some customization of debfiles inbetween, or to permit the packager maintain the debfiles separately. * Master/deb.make: Slightly cleaner build dependency line for gnustep-make. The version of gnustep-make we build-depend on is now read using dpkg -s. * Master/source-distribution.make: Date-time and svn-revision suffix are now using the tilde character to ensure that the 'actual' commit and 'actual' tagged release are treated as being newer by the Debian packaging. Also stopped using periods in date-time. 2014-05-06 Ivan Vucica * bake_debian_files.sh: If DEB_DEPENDS is non-empty, prepend a comma. 2014-05-06 Ivan Vucica * GNUmakefile.in: Tarball may now have the SVN revision and date appended to its version. This is done for svn-snapshot and svn-export targets to ensure we have a 'unique' .orig.tar.gz for uploading to the Launchpad PPA. The full name of the tarball will be saved in a text file usable by scripts. Tarball also has to be explicitly and separately produced and optionally specifying DEB_TARBALL_VERSION when building a Debian package. Debian control files now can (and need to) be separately built using the target debfiles. * Master/source-distribution.make: Similarly to how gnustep-make can export working copy as a tarball, the target svn-export has been added to other GNUmakefiles. Introduced TARBALL_VERSION as an overridable version string in the tarball name. Environment variables TARBALL_VERSION_INCLUDE_SVN_REVISION and TARBALL_VERSION_INCLUDE_DATE_TIME now allow expanding the tarball version with the svn revision and date+time. Instead of EXPORT_SVN_NAME, now specifying entire EXPORT_SVN_URL so that svn-export can specify '.'. * Master/deb.make: Switched to use of TARBALL_VERSION as the definitive version string in tarball name. Added debclean target. User now has to explicitly make a choice how the dist tarball will be produced. Depending on the method, tarball may be placed in the current or parent directory, so we detect that (and prefer the current directory). * bake_debian_files.sh: Now defaulting to target_arch=any so that the package gets built on all platforms when uploaded on Launchpad, instead of detecting an arch from gnustep-make and burning that arch into the source package. Added support for TARBALL_VERSION. Fixed a 'command not found' error. Added support for projects without autotools. 2014-05-05 Ivan Vucica * GNUmakefile.in: Separately building source and binary package, optionally signing. Support for gnustep-make-ld.so.conf. * Master/deb.make: Tweaked procedure for building Debian packages to avoid cleaning when attempting to get 'make' variables that can be passed on to bake_debian_files.sh as environment variables. Signing packages is now optional, and source and binary packages are built separately. * bake_debian.files.sh: Improved .spec parsing. Introduced dependency on CDBS (which simplifies customizing of debian/rules) while automating some edge cases. Handling of DEB_VERSION_SUFFIX. * configure, configure.ac: Support for --enable-install-ld-so-conf. * gnustep-make-ld.so.conf.in: Template for the dynamic linker configuration file ld.so.conf/gnustep-make.conf. 2014-04-07 Ivan Vucica * Master/deb.make, bake_debian_files.sh: Rewrite of .deb-building system that will produce both a source package and a binary package. Work in progress; currently only gnustep-make itself builds correctly. * GNUmakefile.in: Added the svn-export target which uses local files to do the equivalent of 'make dist'. Switched to new way of building .deb using bake_debian_files.sh. * deb-equivs-control.template: No longer necessary; removed. 2014-03-27 Richard Frith-Macdonald * TestFramework/ObjectTesting.h: Add PASS_MATCH macro for matching against a regular expresssion. 2014-01-16 Richard Frith-Macdonald * GNUmakefile.in: Fix a couple more hardcoded 'make' calls. * Instance/resource-set.make: * Instance/Shared/bundle.make: Try to get xxx_RESOURCE_DIR woreking consistently for all resources. 2014-01-12 Sebastian Reitenbach * config.make.in, GNUmakefile.in: Do not hardcode "make". It already gets detected via configure, so use the found name, especially on *BSD systems where its called gmake 2014-01-10 Richard Frith-Macdonald * GNUmakefile.in: Implement Sebastian's suggestions for make targets to build/install documentation with or without gnustep-make as a convenience for packagers. * Documentation/GNUmakefile: Use uninstalled gnustep-make from enclosing directory if available ... based on idea by Niels and code/comments by Markus. 2014-01-06 Richard Frith-Macdonald * Instance/Documentation/texi.make: Revert change from 2009-09-19 since texi2html now seems to be behaving as expected. However, attempt to move any html files from the subdirectory in case we are using a version which still puts them there. 2014-01-06 Richard Frith-Macdonald * INSTALL: * Documentation/GNUmakefile: Make it clearer (ie very explicit) that you need to install gnustep-make in order to install documentation. 2013-12-25 Fred Kiefer * Instance/rules.make: Add detection for different forms of the Info.plist. * Instance/application.make, * Instance/bundle.make, * Instance/framework.make, * Instance/gswapp.make, * Instance/palette.make, * Instance/service.make: Use GNUSTEP_PLIST_DEPEND directly. 2013-12-25 Fred Kiefer * config.make.in: Use the correct CXX compiler. Fixes bug #36722. Patch by Johannes Lundberg . 2013-12-24 Richard Frith-Macdonald * Version: * Documentation/news.texi: * Documentation/releasenotes.texi: Make minor bugfix release ... Version 2.6.6 Update release notes/documentation 2013-12-12 Sebastian Reitenbach * Master/tool.make: on clean only delete the subdirectory that gets created when calling make. 2013-12-07 Wolfgang Lux * target.make: Add -keep_private_externs to linker flags on OS X when merging the object files of a subproject for compatibility with other platforms. 2013-12-06 Adam Fedor * target.make: Add no-omit-framepointer on mingw32 2013-09-20 Ivan Vucica * Master/deb.make: File enumeration now uses 'find'. Fixed problem where files outside 'Local' were being accidentally dropped from the package. Symlinks are now also included in the installed file list. * GNUmakefile.in: Symlinks are now also included in the installed file list. 2013-09-20 Ivan Vucica * deb-equivs-control.template: Added forgotten file. 2013-09-20 Ivan Vucica * GNUmakefile.in: Added deb.make. Also added new target, 'deb' which (using 'equivs-build') produces a Debian package for gnustep-make. * Master/deb.make: This file provides new targets 'deb' and 'debfile'. To produce a .deb package, you will need to install package named 'equivs'. At the moment, manual patching of /usr/bin/equivs-build is also necessary; please review comments inside Master/deb.make for further information. 2013-07-27 Wolfgang Lux * configure.ac: Really fix the test whether the compiler uses the non-fragile ABI by default. It should now work on all platforms with either gcc or clang. * configure: Regenerated. 2013-07-27 Richard Frith-Macdonald * configure.ac: Revert last change to get nonfragile abi detection working on gnu/linux and freebsd again (not tested on other platforms). * configure: Regenerated. 2013-07-26 Wolfgang Lux * configure.ac: Rewrite test whether the compiler supports the non-fragile ABI once more, so that it now reports the correct result. * configure: Regenerated. 2013-07-26 Richard Frith-Macdonald * Version: * Documentation/news.texi: * Documentation/releasenotes.texi: Make minor bugfix release ... Version 2.6.5 Update release notes/documentation 2013-07-14 Wolfgang Lux * configure.ac: Rewrite test whether the compiler supports the non-fragile ABI with portable code that does not rely on a BSD compatible echo command. * configure: Regenerated. 2013-07-04 Richard Frith-Macdonald * rules.make: Fix order of includes directories ... SYSTEM_INCLUDES should come last so that conflices between files of the same name in different directories are resolved in the correct/expected order. 2013-06-17 Stefan Bidi * TestFramework/gnustep-tests.in: add support for .c and .cc files 2012-04-08 Richard Frith-Macdonald * TestFramework/ObjectTesting.h: Fix error performing equality test in copying protocol test macro. 2012-03-28 Richard Frith-Macdonald Make release * Version 2.6.4 Update release notes/documentation 2012-03-25 Richard Frith-Macdonald * TestFramework/Testing.h: Use -isEqualForTestcase: for PASS_EQUAL macro equality testing if the expected value responds to it. Add informal protocol declaring -isEqualForTestcase: * TestFramework/ObjectTesting.h: Convert protocol checking functions to macros (so error messages get file/line number information) and get copy and coding before/after equality checks to use the PASS_EQUAL macro so that we can easily make customised tests by implementing -isEqualForTestcase: for the class being tested. 2012-03-16 Emmanuel Maillard * target.make: Add target for android 2012-03-08 Jean-Charles BERTIN * TestFramework/gnustep-tests.in: Fix typo 2012-03-01 Richard Frith-Macdonald * common.make: Remove -shared-libgcc linker flag * configure.ac: Add check for clang and add -shared-libgcc to linker flags if we aren't using it (using gcc) but are using exceptions. Tidy a little. Patch based on contribtion by Jean-Charles Bertin. 2012-03-01 Richard Frith-Macdonald * Version ... bump subminor number in preparation for next release. 2012-03-01 Richard Frith-Macdonald Make release * Version 2.6.3 * Update release notes 2013-02-20 Nicola Pero * Instance/framework.make: Removed trailing '/' after $(GNUSTEP_TARGET_LDIR) in a couple of cases, to fix building on non-flattened layout. 2012-01-31 Richard Frith-Macdonald * rules.make: A couple more printout targets for managing installation of libobjc2 if gnustep-config is not available (eg not in PATH) but GNUSTEP_MAKEFILES is defined. 2012-09-24 Niels Grewe * configure.ac: Improve last change based on suggestions by David Chisnall. * configure: Regenerate. 2012-09-24 Niels Grewe * configure.ac: Also try to detect whether the nonfragile ABI is the compiler default. * configure: Regenerate. 2012-09-01 Niels Grewe * target.make: Define QNX target. 2012-08-15 Stansilav Yaglo * Instance/framework.make: Patch #7822. Make dummy framework classes subclasses of NSObject. 2012-07-05 Quentin Mathe * configure.ac: Fixed ObjC non fragile ABI check to restore CFLAGS correctly, --enable-objc-nonfragile-abi was breaking native exceptions detection. Based on a patch by Christopher Armstrong, see bug report #36186 * configure: Regenerated. 2012-02-21 Nicola Pero * GNUstep.sh.in: Use "setopt shwordsplit" instead of "set -y" to get zsh to emulate sh's traditional word split behaviour. Suggestion by Alex Merry. 2012-02-21 Nicola Pero * FilesystemLayouts/README: Updated for the fact that 'fhs' is now the default filesystem layout. Issue pointed out by Fred Kiefer . 2012-02-21 Graham Lee * library-combo.make (OBJC_LIBS): Always set from OBJC_LIB_FLAG when using the 'apple' runtime. 2012-02-17 Adam Fedor * Master/nsis.make: Add support for library and framework packages 2012-02-03 Adam Fedor * Version 2.6.2 * Update release notes 2012-01-31 Richard Frith-Macdonald * TestFramework/Testing.h: Improve handling of equality testing report when expression evaluates to nil. 2011-11-21 Wolfgang Lux * target.make: Don't use -undefined dynamic_lookup when linking executables on OS X. This fixes some false positive results for library function tests in configure and also prevents programs crashing at load time due to unresolved references. 2011-10-19 Richard Frith-Macdonald * target.make: The -pthread compiler flag is broken on windows ... don't use it there. 2011-10-17 Richard Frith-Macdonald * FilesystemLayouts/standalone: first draft at a layout to put everything in one directory for easy deployment of relocatable, standalone packages. Use --with-layout=standalone 2011-10-15 Richard Frith-Macdonald * target.make: Use -pthread for compilation on all platforms. While it's not always needed, for the gcc-4.? series of compilers it should always work to turn on preprocessor defines and any other options needed for threaded code (and we have to assume all code we build may be used in a threaded environment). This gives gcc (or clang, which copies gcc) the responsibility for doing this work. 2011-09-29 Adam Fedor * Instance/Documentation/texi.make: Install html chapters as well 2011-06-29 David Chisnall * Instance/framework.make (DUMMY_FRAMEWORK_FILE): Make -make not generate a file that contains an implicit cast that is not permitted by ARC. 2011-06-27 Nicola Pero Fix for a race condition during parallel builds of tools with resources. * Master/tool.make (MAYBE_GNUSTEP_BUILD_DIR_RESOURCES): New. ($(GNUSTEP_BUILD_DIR)/Resources): New rule. (internal-all): Depend on MAYBE_GNUSTEP_BUILD_DIR_RESOURCES. 2011-06-26 Wolfgang Lux * Instance/framework.make (FRAMEWORK_LIBRARY_FILE): Get names of versioned dynamic libraries in frameworks right under Darwin/OS X. 2011-06-07 Nicola Pero * Documentation/news.texi (Changes in version @samp{2.6.0}): Fixed typo. 2011-06-04 Adam Fedor * Version 2.6.1 2011-05-03 Nicola Pero * configure.ac: Rewritten test for clang when determining if we need to use -r or -Wl,-r to do partial linking. * configure: Regenerated. 2011-05-03 Wolfgang Lux * GNUstep.sh.in: * GNUstep.csh.in: Fix definition of CLASSPATH, which was constructed backward. 2011-04-30 Wolfgang Lux * Instance/library.make: * Instance/framework.make: Change naming convention for versioned dynamic library files on Darwin/OS X to match the OS's convention that the version number precedes the .dylib suffix. 2011-04-30 Wolfgang Lux * configure.ac: * config.make.in: * target.make: Use configure time check for Objective-C runtime header directory workaround on Darwin/OS X. * configure: Regenerated. 2011-04-14 Adam Fedor * Version 2.6.0 2011-04-13 Nicola Pero * Documentation/releasenotes.texi: Updated. * RELEASENOTES: Regenerated. 2011-04-12 Wolfgang Lux * target.make: Add workaround to pick up the right Objective-C runtime headers when compiling plain C files with the GNU runtime on Darwin/OS X. 2011-04-11 Nicola Pero * objc.make: Print a deprecation warning if this file is used. 2011-04-11 Nicola Pero * configure.ac: Set OBJ_MERGE_CMD_FLAG to -r or -Wl,-r depending on whether we're using GCC or clang. * configure: Regenerated. * config.make.in (OBJ_MERGE_CMD_FLAG): New. * target.make: Use OBJ_MERGE_CMD_FLAG instead of -Wl,-r -mno-relax. 2011-04-09 Nicola Pero * common.make: Updated comments. 2011-04-09 Nicola Pero * configure.ac: Updated comments. * configure: Regenerated using the latest autoconf (2.68). 2011-04-09 Nicola Pero * TestFramework/gnustep-tests.in: Do not add MAKEFLAGS on a sub-make command-line. This fixes 'make messages=yes check' on the top-level of gnustep-base, for example. 2011-04-09 Nicola Pero * configure.ac: Use AC_COMPILE_IFELSE instead of AC_TRY_IFELSE when checking for compiler support for native Objective-C exceptions. Do not check the type or version of the compiler during the check; only check that it can compile @try/@throw/@catch. Updated check and documentation. * configure: Updated. 2011-04-09 Nicola Pero * configure.ac: Use AC_COMPILE_IFELSE instead of AC_TRY_IFELSE when checking for -fobjc-nonfragile-abi support in the compiler. * configure: Updated. 2011-04-09 Nicola Pero * configure.ac: Use AC_COMPILE_IFELSE instead of AC_TRY_IFELSE when checking for ObjC++ support in the compiler. * configure: Updated. 2011-04-09 Nicola Pero Use 'make check GNUSTEP_TEST_OBJCXX=yes' to enable ObjC++ testcases when using the test framework. * TestFramework/gnustep-tests.in: Recognize GNUSTEP_TEST_OBJCXX, and reworked choosing the ObjC++ compiler accordingly. 2011-04-08 Nicola Pero * configure.ac: Set OBJCXX to ${CXX}, not to the literal CXX. * configure: Updated. 2011-04-08 Riccardo Mottola * target.make: Override gcc's default relax option sent to the linker in case of relative linking -Wl,-r. This should affect only SPARC and a few others uncommon archs and be ignored on the others. 2011-04-08 Nicola Pero * Instance/application.make ($(APP_DIR)/Resources/$(GNUSTEP_INSTANCE).desktop): Make the .desktop file executable after installing it (Suggestion from "Philippe Roussel" ). 2011-04-08 Nicola Pero * messages.make (INSIDE_ECHO_MISSING_DOCUMENTATION): Renamed to ALWAYS_INSIDE_ECHO_MISSING_DOCUMENTATION, and moved it outside of the if/else. * Instance/Documentation/texi.make (internal-textdoc-install_): Use ALWAYS_INSIDE_ECHO_MISSING_DOCUMENTATION instead of INSIDE_ECHO_MISSING_DOCUMENTATION. This fixes the rule when messages=yes. Issue reported by Sebastian Reitenbach . 2011-04-04 Richard Frith-Macdonald * configure.ac: * configure: Fake the ObjC++ tests using C++ since only really new versions of autoconf seem to support ObjC++ and we need things to work on older systems. 2011-03-22 Richard Frith-Macdonald * configure.ac: * gnustep-config.in: * TestFramework/gnustep-tests.in: Change to only require ObjC++ support (for the test framework). Assume C++ is supported even if it actually isn't, since we usually don't care. 2011-03-22 Richard Frith-Macdonald * configure.ac: work around the fact that AC_PROG_CXX is buggy and reports a compiler even when no working compiler exists. So if a test compilation fails with the compiler it returns, we clear CXX The compilation is done for an Objective-C++ test file since that's what we actually want a C++ compiler for normally. 2011-03-22 Nicola Pero * config-noarch.make.in: Updated comment. 2011-03-22 Nicola Pero * GNUstep.sh.in: Unset GNUSTEP_LIBRARY_PATHLIST after using it. * GNUstep.csh.in: Likewise. 2011-03-22 Nicola Pero * filesystem.make.in (GNUSTEP_USER_DIR_APPS, GNUSTEP_USER_DIR_ADMIN_APPS, GNUSTEP_USER_DIR_WEB_APPS, GNUSTEP_USER_DIR_TOOLS, GNUSTEP_USER_DIR_ADMIN_TOOLS, GNUSTEP_USER_DIR_LIBRARY, GNUSTEP_USER_DIR_HEADERS, GNUSTEP_USER_DIR_LIBRARIES, GNUSTEP_USER_DIR_DOC, GNUSTEP_USER_DIR_DOC_MAN, GNUSTEP_USER_DIR_DOC_INFO): Detect %u, %i and %% and replace them with the user name, the user id or %. * filesystem.sh.in: Same. * filesystem.csh.in: Same. 2011-03-21 Richard Frith-Macdonald * gnustep-config.in: allow checking of the CXX variable to see what compiler (if any) was found to support building Objective-C++ code. * TestFramework/gnustep-tests.in: Check the value of CXX to correctly build Objective-C++ tests and to refrain from running Objective-C++ tests on systems which don't have a compiler. 2011-03-18 Nicola Pero * Instance/Documentation/texi.make (internal-textdoc-install_): Only install GNUSTEP_INSTANCE if the file exists. If not, print the message " Nothing to install because nothing was built (usually because makeinfo is not available)" instead of aborting. * messages.make (ALWAYS_ECHO_NO_LANGUAGES): New variable. 2011-03-18 Nicola Pero * configure.ac: By default, use --enable-absolute-install-paths on Darwin with gnu-gnu-gnu (Suggestion from Wolfgang Lux ). * configure: Regenerated. 2011-03-16 Nicola Pero * config.make.in (CXX): If CXX is specified on the environment or command-line, use the specified value in preference to the one hardcoded into gnustep-make (From a suggestion by Banlu Kemiyatorn ). 2011-03-16 Nicola Pero * GNUmakefile.in (rpm): Depend on svn-dist and updated location of .tar.gz file to copy. * gnustep-make.spec.in (CFLAGS): Added --with-layout=gnustep to configure command. (%files): Added /etc/GNUstep/GNUstep.conf. 2011-03-16 Nicola Pero * Documentation/gnustep-filesystem.texi: Updated documentation for change in default filesystem layout and configuration file location. * Documentation/gnustep-howto.texi: Same change. * Documentation/install.texi: Same change. * Documentation/gnustep-make.texi (GNUSTEP_INSTALLATION_DOMAIN): Updated explanation of this variable. * Documentation/gnustep-userfaq.texi (No Makefile): Updated location of GNUstep.sh. * INSTALL: Regenerated. 2011-03-14 Nicola Pero * Instance/gswapp.make (GNUSTEP_GSWAPPS): Variable removed. This was deprecated on 2007-03. * Instance/resource-set.make: Removed support for xxx_RESOURCE_FILES_INSTALL_DIR. This was deprecated on 2007-02. * Documentations/releasenotes.texi: Explain the changes. * RELEASENOTES: Regenerated. 2011-03-14 Nicola Pero * configure.ac: Removed obsolete --with-system-root, --with-local-root and --with-network-root options. These have been obsolete since 2007-02. * configure: Regenerated. * Documentations/releasenotes.texi: Explain the change. * RELEASENOTES: Regenerated. 2011-03-14 Nicola Pero * configure.ac (--with-config-file): If nothing is specified, use /etc/GNUstep/GNUstep.conf if the prefix is /, /usr or /usr/GNUstep, and $prefix/etc/GNUstep/GNUstep.conf in other cases. Updated documentation. * configure: Regenerated. * Documentations/releasenotes.texi: Explain the change in default location of the config file. * RELEASENOTES: Regenerated. 2011-03-14 Nicola Pero * GNUmakefile.in (install): Fixed installing TestFramework/Summary.sh when gnustep-make is configured from outside of the source directory. 2011-03-14 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: Add --developer option * TestFramework/Testing.h: Make --developer turn off hopes * TestFramework/README: Document --developer and GSTESTROOT 2011-03-13 Nicola Pero * configure.ac: Always use 'fhs' layout as the default layout except on apple-apple-apple. Removed 'native' layout. Updated comments and documentation. If an invalid --with-layout=xxx option is used, print a list of the available layouts. * configure: Regenerated. * Documentations/releasenotes.texi: Explain the change in default layout. Tidied up existing entry. * RELEASENOTES: Regenerated. 2011-03-13 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: * TestFramework/GNUmakefile.in: * TestFramework/README: Clean and simplify handling of preprocessor flag and include directory setup. Use the standard gnustep-make 'ADDITIONAL' environment variables to set test options while still honoring any values already set inthe environment. 2011-03-07 Richard Frith-Macdonald * TestFramework/Testing.h: Change macro argument names to make collisions almost impossible. * TestFramework/ObjectTesting.h: * TestFramework/Testing.h: Tweak to avoid some warnings on openbsd. 2011-03-06 Richard Frith-Macdonald * gnustep-config.in: * TestFramework/GNUmakefile.in: Add and use --debug-flags optin to gnustep-config ... to get the correct flags to build a file for debugging. 2011-03-01 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: * TestFramework/GNUmakefile.in: * TestFramework/README: Override GNUSTEP_OBJ_DIR so that executables are always stored in ./obj even if we are building non-flattened. There's no point using a non-flattened layout inside the test framework as we need to clean and re-build for each test run anyway. 2011-03-01 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: Speed up --clean option 2011-02-28 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: * TestFramework/GNUmakefile.in: Fix error testing single file ... was trying subdirectories too. 2011-02-25 Richard Frith-Macdonald * TestFramework/example9.m: Fix include * TestFramework/example8.m: Fix include * TestFramework/gnustep-tests.in: * TestFramework/README: Add (untested) support for Objective-C++ Implement parallel build so that all the tests in a directory should be built simultaneously making more effective use of multiprocessor systems. Add the --sequential command line option to disable this if desired. 2011-02-25 Richard Frith-Macdonald * TestFramework/Testing.h: Cosmetic improvement ... indent the results of tests and the start/end of sets in the full diagnostic log. 2011-02-24 Richard Frith-Macdonald * TestFramework/example9.m: * TestFramework/ObjectTesting.h: * TestFramework/README: * TestFramework/Testing.h: * TestFramework/example2.m: * TestFramework/example3.m: * TestFramework/example4.m: * TestFramework/example5.m: * TestFramework/example6.m: * TestFramework/example7.m: * TestFramework/example8.m: Important change to the START_SET and END_SET macros to stop their use being confusing. They now both take a simple C-string argument which names the set, and the macros check that each end matches a start of the same name. Since tis means that a START_SET no longer takes an argument sayng whether or notthe set is to be skipped, we now have a SKIP macro to be used inside a set to skip to the end of it. This is actually more versatile as we can have multiple SKIP macros in the same set, each providing a different reason for the set being skipped. Also removed a few obsolete/unused functions and macros. 2011-02-23 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: * TestFramework/TestInfo: * TestFramework/README: Replace IGNORE file with TestInfo file having the opposite effect. This makes it safe to run the test script because it will now only do things in directories marked by the presence of a TestInfo file. In future we can use this file to store extra information or settings such as contact details for the package maintainers. 2011-02-23 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: * TestFramework/Testing.h: Change automated setting of breakpoints in gdb to account for platforms where you can't conditionally break on entry to a function based on a function argument ... so we set a variable before entry instead. 2011-02-23 Richard Frith-Macdonald * Testing.h: Fix excess args to printf and incorrect setting of the testPassed flag. 2011-02-22 Richard Frith-Macdonald * gnustep-tests.in: * GNUmakefile.in: * README: Simplify template makefile options. 2011-02-22 Richard Frith-Macdonald * TestFramework/example9.m: * TestFramework/Testing.h: * TestFramework/Summary.sh: * GNUmakefile.in: Add example for dealing with an unsupported feature. 2011-02-22 Richard Frith-Macdonald * TestFramework/gnustep-tests.in: Report path to test file when we run it as suggested by Sergey Golovin. 2011-02-22 Richard Frith-Macdonald * configure.ac: Check for bash and test programs * configure: regenerate * TestFramework/gnustep-tests: remove ... use gnustep-test.in * TestFramework/gnustep-tests.in: Use bash as our shell if possible, and use an external test program determined at configure time if we can't rely on the builtin test function in the shell we end up with. 2011-02-22 Richard Frith-Macdonald * TestFramework/gnustep-tests: * TestFramework/Testing.h: * TestFramework/README: Make it easy to break at the start of a particular failed test. Add --debug option to automatically launch gdb to debug a test. 2011-02-21 Richard Frith-Macdonald * TestFramework/gnustep-tests: * TestFramework/Summary.sh: * TestFramework/runtest.sh: * GNUmakefile.in: Simplify by removing intermediary script. 2011-02-21 Richard Frith-Macdonald * gnustep-config.in: Add CC to list of variables so we can build using the compiler that gnustep-make was configured with. * TestFramework/gnustep-tests: * TestFramework/runtest.sh: Add David Chisnall's suggested performance optimisation of handling simple cases (where we just need to compile a single source file with no special options) by compiling directly ... 25% improvement running the base library testsuite on my debian system using clang. 2011-02-20 Richard Frith-Macdonald * TestFramework/gnustep-tests: * TestFramework/README: Simplify ... permit only one test file as an argument, so that we can infer a single test directory easily (the directory containing the file) and thus use the standard code path in which we execute Start.sh and End.sh and run GNUmakefile.tests in the directory containing the file ... ie so that behavior when executing a single test file is identical to behavior when that file is executed as part of a whole testsuite. Don't backup makefile when we create a new one. 2011-02-19 Richard Frith-Macdonald * TestFramework/gnustep-tests: * TestFramework/runtest.sh: * TestFramework/README: * TestFramework/Testing.h: Add support for start and end scripts in each test directory. Fix bracketing in macro as suggested by Fred 2011-02-19 Richard Frith-Macdonald * TestFramework/gnustep-tests: * TestFramework/runtest.sh: * TestFramework/Summary.sh: Portability fixes for systems where grep has limited functionality and/or where the shell's builtin 'test' command is limited/faulty. 2011-02-18 Richard Frith-Macdonald * gnustep-config.in: * TestFramework/gnustep-tests: * TestFramework/runtest.sh: * TestFramework/Summary.sh: Tweak use of grep for portability. Try to locate gnu make reliably. 2011-02-16 Richard Frith-Macdonald * TestFramework/example1.m: * TestFramework/example2.m: * TestFramework/example3.m: * TestFramework/example4.m: * TestFramework/example5.m: * TestFramework/example6.m: * TestFramework/example7.m: * TestFramework/example8.m: * TestFramework/GNUmakefile.in: * TestFramework/gnustep-tests: * TestFramework/README: * TestFramework/runtest.sh: * TestFramework/Summary.sh: * TestFramework/Testing.h: Further cleanups, corrections, simplifications, and documentation improvements. Added --failfast option to terminate a test run at the first failure. Added recording of READEME to logs, and display of URGENT information. Added tracking of entry to subdirectories so there's something to see during execution ofa large testsuite. Added summary at end of tests (needs more work) 2011-02-13 Richard Frith-Macdonald * TestFramework/Testing.h: * TestFramework/example1.m: * TestFramework/example2.m: * TestFramework/example3.m: * TestFramework/example4.m: * TestFramework/example5.m: * TestFramework/example6.m: * TestFramework/example7.m: * TestFramework/example8.m: * TestFramework/README: * GNUmakefile.in: Fix header file in examples. Add comments/documentation to explain use of brackets in macro parameters. Add an example to demonstrate it. 2011-02-13 Richard Frith-Macdonald * TestFramework/Testing.h: * TestFramework/gnustep-tests: * TestFramework/runtest.sh: * TestFramework/README: Change test status reports to friendlier text. Record file and line number for each test. * GNUmakefile.in: install examples. 2011-02-13 Richard Frith-Macdonald * TestFramework/gnustep-tests: Add --clean option * TestFramework/README: Describe the fact that we leave the last binary behind so we can easily run gdb. Also mention --clean 2011-02-10 19:06 David Chisnall * configure.ac: Don't depend on the existence of Object class for checking whether exceptions work. * configure: Regenerated. 2011-02-07 Richard Frith-Macdonald * TestFramework/example1.m: * TestFramework/example2.m: * TestFramework/example3.m: * TestFramework/example4.m: * TestFramework/example5.m: * TestFramework/example6.m: * TestFramework/example7.m: * TestFramework/GNUmakefile.in: * TestFramework/gnustep-tests: * TestFramework/ObjectTesting.h: * TestFramework/README: * TestFramework/runtest.sh: * TestFramework/Testing.h: Test framework scripts, headers, template, examples, documentation * GNUmakefile.in: Altered to install/uninstall test framework. 2010-12-22 Nicola Pero * configure.ac: Tidied up a few messages. * configure: Regenerated. 2010-10-20 Adam Fedor * target.make: Add c99 flag for solaris 2010-09-22 Riccardo Mottola * installation-domains.conf: add defaults for objc2 and systempreferences 2010-09-16 Richard Frith-Macdonald * GNUstep.conf.in: revert recent changes. * configure.ac: revert last changes and more. * configure: Regenerated. Reverted recent changes, largely to do with remembering filesystem layout preferences. Nicola pointed out that remembering preferences automatically might not be good, and suggested a different mechanism. That means current code temporarily needs a --with-layout=gnustep for the old behavior on most systems. 2010-09-16 Richard Frith-Macdonald * configure.ac: Remove extra line accidentally added in preious commit. Improve comments on filesystem layout. Make 'apple' the native layout on the darwin operating system. * configure: Regenerated. 2010-09-10 Richard Frith-Macdonald * configure.ac: Use fhs as the default layout on gnu/linux systems. * configure: Regenerated. * GNUstep.conf.in: add layout variable WARNING ...this changes the default behavior to use the 'fhs' layout rather than the 'gnustep' layout on most systems, and assumes that we will add other operating-system specific layouts in future and make them the default for those operating systems. I guess this may be controversial, but I think it's long past time for us to integrate with the native operating system when people download/install from source. If you want the old filesystem layout behavior you need to use configure --with-layout=gnustep To make this less painful, I've changed things to record the layout used in GNUstep.conf so if you don't want the new default you only need to specify --with-layout= the first time you configure/install. 2010-09-10 Nicola Pero * configure.ac: When threading tests fail with all expected threading flags/libs, do a last attempt with no explicit threading flags/libs at all. * configure: Regenerated. 2010-09-10 Nicola Pero * config.make.in (CC): Ignore the default CC=cc used by GNU make when nothing else is specified. 2010-09-09 Nicola Pero * config.make.in (CC): Only set CC if not already set in the environment. 2010-09-07 Nicola Pero * configure.ac: Always obey an --enable-native-objc-exceptions or --disable-native-objc-exceptions switch if specified. If nothing is specified, conservatively only enable native ObjC exceptions if they pass a configure test and if GCC >= 4.4.0. * configure: Regenerated. 2010-09-06 Nicola Pero * config_thread.m: Fixed incorrect usage of pthread_create when testing a non-GNU runtime. 2010-09-06 Nicola Pero * configure.ac: Enable native exceptions by default if the compiler supports them. * configure: Regenerated. 2010-08-21 Nicola Pero * Instance/Shared/strings.make: Renamed most local variables to standardized names. Automatically create required, but non-existing, {LANGUAGE}.lproj directories before running make_strings. If no languages are specified, use English instead of printing an error messages. * Instance/rules.make (LANGUAGES): Set this variable here, once for all makefile fragments, instead of having each fragment contain the same duplicated code to set it. * Instance/gswbundle.make (LANGUAGES): Do not set it. * Instance/resource-set.make (LANGUAGES): Do not set it. * Instance/Shared/bundle.make (LANGUAGES): Do not set it. * Instance/Shared/strings.make (LANGUAGES): Do not set it. * Instance/Shared/headers.make: Added -*-makefile-*- line at the beginning of the file (for emacs). * Instance/Shared/java.make: Same change. * Instance/Shared/strings.make: Same change. 2010-08-14 Nicola Pero * target.make (OBJ_MERGE_CMD): Use -Wl,-r instead of -r. -Wl,-r is the correct way of passing the -r flag to the linker, and works with both GCC and clang (Suggestion from a mail by Dimitry Andric ). 2010-07-26 Nicola Pero * target.make (EXTRACT_CLASS_NAMES_COMMAND): Allow numbers in class names. Otherwise, class names containing numbers would not be recognized and not appear in the list of framework classes. 2010-07-16 Nicola Pero * common.make: Set INTERNAL_OBJCFLAGS, not OBJCFLAGS, so that OBJCFLAGS is a free variable that can be used on the command-line, as in "make OBJCFLAGS=-fobjc-nonfragile-abi", to add some custom Objective-C flags to the compilation run without interfering with the standard ones. 2010-06-23 Nicola Pero * Documentation/README.MinGW: Mention solution to install permission problem when working on Windows Vista and later (Reported by Quentin Mathe ). 2010-05-10 Nicola Pero * rules.make (%.plist): Delete empty lines in the output, fixing generating %.plist from %.cplist on Apple. 2010-05-08 Adam Fedor * Version 2.4.0 2010-04-24 Nicola Pero Fixed problem reported by Chris Corbyn where precompiled headers only worked if they had a .h extension, and not a .pch extension, which is common for projects originally built using Apple XCode. * rules.make: Changed precompiled header rules to work to generate %.gch from %, no matter what extension the original header has. * Instance/rules.make: Same change. 2010-04-22 Nicola Pero * Instance/library.make: Use LIBRARY_NAME_WITHOUT_LIB instead of GNUSTEP_INSTANCE when installing resources (Patch from Jamison Hope with some modifications) * Documentation/releasenotes.texi: Explain the change. * RELEASENOTES: Regenerated. 2010-03-13 Richard Frith-Macdonald * configure.ac: Add option to enable use of the nonfragile ABI * configure: Regenerate * config.make.in: Set variable to say if nonfragile ABI is to be used * common.make: Add -fobjc-nonfragile-abi if required. 2010-03-12 Nicola Pero The default is now to use -Wall when compiling C/ObjC/C++/ObjC++ unless warn=no is used when invoking make. Similar for Java, where -deprecation is now used unless warn=no is used. * common.make (ADDITIONAL_FLAGS): Add -Wall or not depending on warn=yes/no, instead of depending on debug=yes/no (Suggestion from Richard Frith-Macdonald). (INTERNAL_JAVACFLAGS): Same for -deprecation. * Documentation/releasenotes.texi: Updated. * RELEASENOTES: Regenerated. 2010-03-07 Nicola Pero * Documentation/README.MinGW: Updated. 2010-03-06 Nicola Pero * target.make (SHARED_LIB_LINK_CMD): On MinGW, pass --export-all-symbols to the linker. This fixes building gnustep-base on MinGW with more recent libraries. * Documentation/README.MinGW: Updated instructions to work with more recent versions - up to building gnustep-base. 2010-03-06 Nicola Pero * Instance/Documentation/javadoc.make (JAVADOC_BUILD_ALWAYS): Recognize 'yes' (which is consistent with all other variables) as well as 'YES' (still recognized for backwards-compatibility). * Master/rpm.make (PACKAGE_NEEDS_CONFIGURE): Recognize 'yes' (which is consistent with all other variables) as well as 'YES' (still recognized for backwards-compatibility). * Documentation/releasenotes.texi: Updated. 2010-03-06 Nicola Pero * configure.ac: Check for GNU make >= 3.79 and emit a warning if it's not found. Fixed typo in check for $(info ...). * configure: Regenerated. * Documentation/releasenotes.texi: Mention that versions of GNU Make older than 3.79.1 (released June 2000) are no longer supported. 2010-02-18 Adam Fedor * Documentation/{gnustep-howto.texi,gnustep-machines.texi,GNUmakefile}: Deprecate the machines.texi file 2010-02-15 Nicola Pero Fixed precompiler header support (Problem reported by Tim Kack ). * rules.make ($(GNUSTEP_OBJ_INSTANCE_DIR)/PrecompiledHeaders/C/): Create GNUSTEP_OBJ_INSTANCE_DIR_NAME, not GNUSTEP_OBJ_DIR_NAME. ($(GNUSTEP_OBJ_INSTANCE_DIR)/PrecompiledHeaders/ObjC/): Same change. ($(GNUSTEP_OBJ_INSTANCE_DIR)/PrecompiledHeaders/CC/): Same change. ($(GNUSTEP_OBJ_INSTANCE_DIR)/PrecompiledHeaders/ObjCC/): Same change. 2010-02-14 Nicola Pero New internalmessages=yes option that prints all the recursive make invocations. Do not print any of them for messages=yes. * messages.make (ECHO_NOTHING_RECURSIVE_MAKE, END_ECHO_RECURSIVE_MAKE, INSIDE_ECHO_MAKING_OPERATION, INSIDE_ECHO_MAKING_OPERATION_IN_DIRECTORY, INSIDE_ECHO_MAKING_OPERATION_IN_SUBPROJECTS): New messages. (ECHO_MAKING_OPERATION_IN_DIRECTORY): Message removed. (internalmessages): New variable used to decide if to silence or not the new messages. * Master/rules.make (%.variables): Removed manual check for existence of $(MAKEFILE_NAME) in the subdirectory since the standard GNU make error message is clear enough. Use the new messages. (%.subprojects): Same changes. * Master/*.make: Use ECHO_NOTHING_RECURSIVE_MAKE and END_ECHO_RECURSIVE_MAKE instead of ECHO_NOTHING and END_ECHO for recursive make invocations. * Instance/*.make: Same change. * gnustep-make-help: Document the new internalmessages=yes option. * Documentation/releasenotes.texi: Mention the new option. * RELEASENOTES: Regenerated. 2010-02-14 Nicola Pero * Master/application.make ($(APP_NAME)): Use ECHO_NOTHING and END_ECHO. * Master/bundle.make ($(BUNDLE_NAME)): Same change. * Master/clibrary.make ($(CLIBRARY_NAME)): Same change. * Master/ctool.make ($(CTOOL_NAME)): Same change. * Master/framework.make ($(FRAMEWORK_NAME)): Same change. * Master/gswapp.make ($(GSWAPP_NAME)): Same change. * Master/gswbundle.make ($(GSWBUNDLE_NAME)): Same change. * Master/java.make ($(JAVA_PACKAGE_NAME)): Same change. * Master/java-tool.make ($(JAVA_TOOL_NAME)): Same change. * Master/library.make ($(LIBRARY_NAME)): Same change. * Master/objc.make ($(OBJC_PROGRAM_NAME)): Same change. * Master/palette.make ($(PALETTE_NAME)): Same change. * Master/service.make ($(SERVICE_NAME)): Same change. * Master/subproject.make ($(SUBPROJECT_NAME)): Same change. * Master/test-application.make ($(TEST_APP_NAME)): Same change. * Master/test-library.make ($(TEST_LIBRARY_NAME)): Same change. * Master/test-tool.make ($(TEST_TOOL_NAME)): Same change. * Master/tool.make ($(TOOL_NAME)): Same change. * Master/test-application.make ($(TEST_APP_NAME)): Make it a : rule, not a :: rule. * Master/test-library.make ($(TEST_LIBRARY_NAME)): Same change. * Master/test-tool.make ($(TEST_TOOL_NAME)): Same change. 2010-02-14 Nicola Pero * Master/application.make (.PHONY): Declare the new internal-master-app-all target as PHONY. * Master/bundle.make: Similar change. * Master/clibrary.make: Similar change. * Master/ctool.make: Similar change. * Master/gswapp.make: Similar change. * Master/gswbundle.make: Similar change. * Master/library.make: Similar change. * Master/objc.make: Similar change. * Master/palette.make: Similar change. * Master/service.make: Similar change. * Master/test-application.make: Similar change. * Master/test-library.make: Similar change. * Master/test-tool.make: Similar change. * Master/tool.make: Similar change. 2010-02-13 Nicola Pero * Master/parallel-subdirectories.make (internal-install internal-uninstall): Install and uninstall in non-parallel mode to avoid any race conditions when installing or uninstalling. * Documentation/releasenotes.texi: Updated. * RELEASENOTES: Regenerated. 2010-02-12 Nicola Pero Implemented new API to build subdirectories. aggregate.make is still available for backwards-compatibility, but moving forward serial-subdirectories.make and parallel-subdirectories.make will be used (and can be mixed in the same GNUmakefile!) to build subdirectories, clearly specifying if subdirectories are to build serially or in parallel. * aggregate.make: File rewritten to be a wrapper around serial-subdirectories.make and parallel-subdirectories.make * parallel-subdirectories.make: New file. * serial-subdirectories.make: New file. * Master/aggregate.make: File removed. * Master/parallel-subdirectories.make: New file. * Master/serial-subdirectories.make: New file. * messages.make (ECHO_MAKING_OPERATION_IN_DIRECTORY): New message used by the new subdirectories code. * GNUmakefile.in (MAKE_FILES, MASTER_MAKE_FILES): Updated lists of makefiles. * Documentation/releasenotes.texi: Updated with new changes. Also, refer to the next release as 2.4.0 instead of 2.2.1. * Documentation/news.texi: Same changes. * RELEASENOTES: Regenerated. * NEWS: Regenerated. 2010-02-12 Nicola Pero Implemented parallel building of aggregate projects. Whenever you use aggregate.make, you can set "GNUSTEP_USE_PARALLEL_AGGREGATE = yes" to have the aggregate projects built in parallel. * Master/aggregate.make (GNUSTEP_USE_PARALLEL_AGGREGATE): New variable. If it is set to yes, run a parallel submake to build the aggregate projects. (internal-master-aggregate-*): New rules. (%.aggregate): New rule. 2010-02-12 Nicola Pero * messages.make (ECHO_JAVADOC): New variable. * Instance/Documentation/javadoc.make (INTERNAL_JAVADOCFLAGS): Unless messages=yes is being used, use -quiet flag to keep javadoc quiet. Use ECHO_JAVADOC to print a line saying we are generating the javadoc documentation. 2010-02-12 Nicola Pero Implemented parallelizing builds of multiple instances of everything, except for frameworks, documentation, resource sets and java. * rules (GNUSTEP_BUILD_DIR, GNUSTEP_OBJ_DIR): Removed rules to create these directories. * Master/rules.make (GNUSTEP_BUILD_DIR, GNUSTEP_OBJ_DIR): Moved here the rule to create these directories. * Master/rules.make: Updated all rules to pass _GNUSTEP_MAKE_PARALLEL=no to submakes. * Master/application.make (internal-all): Support parallel building. Depend on GNUSTEP_OBJ_DIR. (APP_NAME): Depend on GNUSTEP_OBJ_DIR. * Master/bundle.make: Same changes. * Master/clibrary.make: Same changes. * Master/ctool.make: Same changes. * Master/gswapp.make: Same changes. * Master/gsbundle.make: Same changes. * Master/library.make: Same changes. * Master/objc.make: Same changes. * Master/palette.make: Same changes. * Master/service.make: Same changes. * Master/test-application.make: Same changes. * Master/test-library.make: Same changes. * Master/test-tool.make: Same changes. * Master/tool.make (internal-all): Depend on GNUSTEP_OBJ_DIR. (TOOL_NAME): Depend on GNUSTEP_OBJ_DIR. * Master/framework.make: Same changes. * Master/subproject.make: Same changes. * Master/tool.name (TOOL_NAME): Set after including rules.make for consistency with other make fragments. 2010-02-12 Nicola Pero * Documentation/releasenotes.texi: Updated. * RELEASENOTES: Regenerated. 2010-02-12 Nicola Pero Create separate directories to store the object files of each instance. This allows to safely parallelize building different instances. * common.make (GNUSTEP_OBJ_INSTANCE_DIR, GNUSTEP_OBJ_INSTANCE_DIR_NAME): New variables. * rules.make: Include rules to compile C/ObjC/C++/ObjC++/.rc and to precompile headers only in the Instance invocation. Updated all rules to store object files into GNUSTEP_OBJ_INSTANCE_DIR instead of GNUSTEP_OBJ_DIR. * Instance/rules.make (GNUSTEP_OBJ_INSTANCE_DIR): New rule. Updated the whole file to put all object files in GNUSTEP_OBJ_INSTANCE_DIR instead of GNUSTEP_OBJ_DIR. (OBJ_DIRS_TO_CREATE): Do not ignore failures any more when building in parallel. * Instance/application.make (internal-app-all_): Depend on GNUSTEP_OBJ_INSTANCE_DIR instead of GNUSTEP_OBJ_DIR. * Instance/bundle.make: Same change. * Instance/ctool.make: Same change. * Instance/framework.make: Same change. * Instance/gswapp.make: Same change. * Instance/gswbundle.make: Same change. * Instance/library.make: Same change. * Instance/objc.make: Same change. * Instance/palette.make: Same change. * Instance/service.make: Same change. * Instance/subproject.make: Same change. * Instance/tool.make: Same change. * Instance/framework.make (DUMMY_FRAMEWORK_OBJ_FILE): Put DUMMY_FRAMEWORK_OBJ_FILE inside GNUSTEP_OBJ_INSTANCE_DIR instead of GNUSTEP_OBJ_DIR. * Instance/ctool.make ($(GNUSTEP_OBJ_DIR)/$(GNUSTEP_INSTANCE)$(EXEEXT)): Do not depend on OBJC_DIRS_TO_CREATE. * Instance/rules.make (OBJ_FILES_TO_LINK_THAT_WE_CREATE): New variable used to prevent spurious attempts to create subproject object directories. 2010-02-12 Nicola Pero * Instance/clibrary.mak: Added "# -*-makefile-*-" on the first line for emacs. * Instance/rules.make: Same change. * Instance/test-library.make: Same change. * Master/*.make: Same change. 2010-02-12 Nicola Pero * Master/aggregate.make (AGGREGATE_PROJECTS): Recognize the AGGREGATE_PROJECTS variable for compatibility with future gnustep-makes where SUBPROJECTS will be removed and replaced by AGGREGATE_PROJECTS. 2010-02-11 Nicola Pero Implemented experimental support for parallelizing building different tools. For example, if you have "TOOL_NAME = autogsdoc cvtenc", the two tools are now built in parallel when you specify 'make -j 2'. Warning: this means the order in which tools are built is no longer guaranteed. * Master/tool.make (internal-all): When parallel building is enabled, fire off a _GNUSTEP_MAKE_PARALLEL=yes sub-make to build. (internal-master-tool-all): New target used by the _GNUSTEP_MAKE_PARALLEL=yes sub-make when parallel building is enabled. * Instance/rules.make (OBJ_DIRS_TO_CREATE): When building in parallel, ignore failures to create an object subdirectory. * Documentation/releasenotes.texi: Updated. * Documentation/RELEASENOTES: Regenerated. * RELEASENOTES: Updated. 2010-02-07 Nicola Pero Added support for having header files in sub-subdirectories. Just list them as in xxx_HEADER_FILES = Beauty/Vanity.h. * Instance/Shared/headers.make (HEADER_SUBDIRS): New variable. (HEADER_INSTALL_DIRS_TO_CREATE): New variable. (shared-instance-headers-install): Create all the required subdirectories in the header install directory. ($(HEADER_INSTALL_DIRS_TO_CREATE)): New rule. ($(GNUSTEP_HEADERS)/$(HEADER_FILES_INSTALL_DIR)): Rule removed. (shared-instance-headers-uninstall): Remove all the subdirectories in the header install directory. * Instance/framework.make (FRAMEWORK_HEADER_SUBDIRS): New variable. (internal-framework-build-headers): Depend on FRAMEWORK_HEADER_SUBDIRS. ($(FRAMEWORK_HEADER_SUBDIRS)): New rule. * Instance/subproject.make (HEADER_SUBDIRS): Set variable when OWNING_PROJECT_HEADER_DIR_NAME is set. (OWNING_PROJECT_HEADER_SUBDIRS): New variable when OWNING_PROJECT_HEADER_DIR_NAME is set. (internal-subproject-build-headers): Depend on OWNING_PROJECT_HEADER_SUBDIRS when OWNING_PROJECT_HEADER_DIR_NAME is set. ($(OWNING_PROJECT_HEADER_SUBDIRS)): New rule when OWNING_PROJECT_HEADER_DIR_NAME is set. Implemented HEADER_FILES_DIR for framework subprojects. * Instance/subproject.make (HEADER_FILES_DIR): Set this variable when OWNING_PROJECT_HEADER_DIR_NAME is set. ($(OWNING_PROJECT_HEADER_DIR)/%.h): Support HEADER_FILES_DIR when OWNIN_PROJECT_HEADER_DIR_NAME is set. * Documentation/releasenotes.texi: Updated release notes. * RELEASENOTES: Updated. * Documentation/news.texi: Added news for 2.2.1. * NEWS: Updated. 2009-10-26 Adam Fedor * Instance/application.make: Replace deprecated Windows GUI flag. 2009-10-10 Nicola Pero Added support for having source files in subdirectories without using a subproject. Just list them as in xxx_OBJC_FILES = Source/Beauty.m. * Instance/rules.make (OBJ_DIRS_TO_CREATE): New variables computed from OBJ_FILES_TO_LINK. ($(OBJ_DIRS_TO_CREATE)): New rule to create the directories. * Instance/application.make (internal-app-all_): Depend on OBJ_DIRS_TO_CREATE. * Instance/bundle.make (internal-bundle-all_): Same change. * Instance/ctool.make (internal-ctool-all_): Same change. * Instance/framework.make (internal-framework-all_): Same change. * Instance/gswapp.make (internal-gswapp-all_): Same change. * Instance/gswbundle.make (internal-gswbundle-all_): Same change. * Instance/objc.make (internal-objc_program-all_): Same change. * Instance/palette.make (internal-palette-all_): Same change. * Instance/service.make (internal-service-all_): Same change. * Instance/subproject.make (internal-subproject-all_): Same change. * Instance/tool.make (internal-tool-all_): Same change. 2009-10-10 Nicola Pero Try to warn users if they create their own Info-gnustep.plist file instead of providing an xxxInfo.plist file. * Instance/application.make (internal-app-all_): If Info-gnustep.plist is specified in xxx_RESOURCE_FILES, print a warning recommending to use xxxInfo.plist instead. * Instance/bundle.make (internal-bundle-all_): Same change. * Instance/framework.make (internal-framework-all_): Same change. * Instance/palette.make (internal-palette-all_): Same change. * Instance/service.make (internal-service-all_): Same change. * messages.make: Added new warning messages. * Instance/application.make ($(GNUSTEP_INSTANCE).desktop): Do not attempt to create this file on Apple. 2009-10-09 Nicola Pero Implemented batch-compilation of Java files (ie, all files built in a single javac invocation) to speed up building Java software. In the large Java project I used as a test case, this change produced a 5x reduction in building time. * rules.make (%.class): If BATCH_COMPILE_JAVA_FILES is not set to no, and JAVA_FILES_TO_BATCH_COMPILE is set and the file we're compiling is in that variable, do a batch compile instead of a single-file compile. * messages.make (INSIDE_ECHO_JAVA_COMPILING): New message. (INSIDE_ECHO_JAVA_BATCH_COMPILING): New message. * Instance/Shared/java.make: If appropriate, set JAVA_FILES_TO_BATCH_COMPILE to the list of files we want to batch compile. ($(GNUSTEP_INSTANCE)_BATCH_COMPILE_JAVA_FILES): New variable allowing to disable the batch compilation of Java files if needed. * Documentation/releasenotes.texi: Updated. * RELEASENOTES: Regenerated. 2009-09-27 Nicola Pero * configure.ac: Turn off autodependencies on cygwin. * configure: Regenerated. 2009-09-20 Nicola Pero * configure.ac (--enable-debug-by-default): New option which allows you to change if gnustep-make should build with debug=yes or debug=no by default. Store the configuration choice in GNUSTEP_DEFAULT_DEBUG. Make debug=no the default, so that normally -g -O2 is the default set of compilation flags used. * configure: Regenerated. * common.make: If the 'debug' variable is empty, set it to GNUSTEP_DEFAULT_DEBUG. If debug=yes, filter the -O% flags. (ADDITIONAL_FLAGS): If debug=yes, only add -g if it is not already present in OPTFLAG. * config.make.in (GNUSTEP_DEFAULT_DEBUG): New variable. * Documentation/releasenotes.texi: Updated release notes. * RELEASENOTES: Regenerated. 2009-09-19 Nicola Pero * Instance/Documentation/texi.make ($(GNUSTEP_INSTANCE)_toc.html): Changed to be $(GNUSTEP_INSTANCE)/$(GNUSTEP_INSTANCE).html to match what texi2html is currently doing. This should prevent pointless rebuilds of html documentation from texi documentation. (internal-doc-all_): Updated dependencies for this change. 2009-09-19 Nicola Pero * Documentation/releasenotes.texi: Updated release notes. * RELEASENOTES: Regenerated. 2009-09-19 Nicola Pero Renamed all info files by adding a gnustep- prefix so that there is no chance of conflicts with info files from other software (Suggestion from Michel Alexandre Salim ). * Documentation/faq.texi: Renamed to gnustep-faq.texi. * Documentation/filesystem.texi: Renamed to gnustep-filesystem.texi. Removed @setfilename. * Documentation/internals.tex: Renamed to gnustep-internals.tex. * Documentation/machines.texi: Renamed to gnustep-machines.texi. Removed @setfilename. * Documentation/gnustep-howto.texi: Updated include of machines.texi to include gnustep-machines.texi. * Documentation/GNUmakefile: Updated for changes. 2009-09-19 Nicola Pero * Instance/documentation.make: Moved internal-textdoc-install_, internal-textdoc-uninstall_, internal-textdoc-clean, internal-textdoc-distclean to Instance/Documentation/texi.make. * Instance/Documentation/texi.make (internal-doc-clean): Remove the GNUSTEP_INSTANCE directory if empty. 2009-09-19 Nicola Pero * Documentation/gnustep.init: Terminate the file with '1;', as required by Perl, fixing building the documentation (tested with Perl 5.8.8 and texinfo 1.76). 2009-09-17 Richard Frith-Macdonald * common.make: Fix debug build ... somehow filtering out of the -O flag got lost, preventing effective debugging with gdb when debug=yes 2009-09-17 Nicola Pero * Documentation/releasenotes.texi: Fixed typo in the release notes for gnustep-make 2.0.6 (reported by Michel Alexandre Salim ). * RELEASENOTES: Regenerated. 2009-09-01 Riccardo Mottola Patch from Yaakov Selkowitz : Update and un-Win32-ify Cygwin rules. * common.make: MinGW path issues do not apply to Cygwin. * config.make.in: Cygwin supports symlinks now. * rules.make, Instance/rules.make: Don't use windres on Cygwin, as it uses X11. * target.make: Cygwin does not require -lm. 2009-08-15 Nicola Pero Patch from Yaakov Selkowitz : * target.make: On Cygwin, use -Wl,--enable-auto-image-import instead of manually rebasing; define DLL_PREFIX to be 'cyg' to match Cygwin conventions and fixed typo in --Wl,-enable-whole-archive option. * Instance/library.make: Prepend DLL_PREFIX when creating a dll. * Instance.framework.make: Same change. 2009-08-15 Nicola Pero * common.make: Do not filter out the -Ox flags when debug=yes. This means debug=yes now uses "-g -O2" by default - instead of just "-g" (Suggestion by Yavor Doganov ). * Documentation/releasenotes.texi: Updated. * RELEASENOTES: Regenerated. 2009-05-09 Adam Fedor * Version 2.2.0 2009-05-06 Adam Fedor * Documentation/news.texi, Documentation/releasenotes.texi: Update. 2009-03-30 Nicola Pero * config.make.in (OBJC_LIB_FLAG): Set OBJC_LIB_FLAG here. * library-combo.make: Do not set it here. 2009-03-30 Nicola Pero * configure.ac, library-combo.make: Fixed to automatically use -lobjc_gc for the GNU Objective-C runtime with garbage collection if no --with-objc-lib-flag=... is used in configure. * configure: Regenerated. 2009-03-30 Nicola Pero From a suggestion by Truls Becken : * configure.ac (--with-objc-lib-flag): New option allowing to replace the default -lobjc flag with a custom one such as -l:libobjc.so.1, which can be used on some platforms to require linking a specific version of libobjc - a handy trick when you have more than one installed. * configure: Regenerated. * config.make.in (OBJC_LIB_FLAG): New variable. * library-combo.make: Use OBJC_LIB_FLAG instead of -lobjc. 2009-03-24 Nicola Pero Fixed compiling software that contains both C/ObjC and C++/ObjC++ files: use CC to compile C and ObjC files even if CXX is used to link. (Problem reported by Riccardo Mottola ). * target.make: Replaced CC with LD everywhere it is used to link - so that we can change the program used to link (LD) without having to change the program used to compile C/ObjC code (CC). * Instance/rules.make (LD): If CC_OBJ_FILES or OBJCC_OBJ_FILES is not empty, set LD to be CXX, while leaving CC unchanged. 2009-03-19 Nicola Pero Print a user-friendly warning or notice message when there are no files to link. * messages.make (WARNING_EMPTY_LINKING, NOTICE_EMPTY_LINKING): New messages. * Instance/application.make: Print out the WARNING_EMPTY_LINKING message if we're linking but there are no files to link. * Instance/ctool.make: Same change. * Instance/framework.make: Same change. * Instance/gswapp.make: Same change. * Instance/gswbundle.make: Same change. * Instance/library.make: Same change. * Instance/objc.make: Same change. * Instance/palette.make: Same change. * Instance/service.make: Same change. * Instance/subproject.make: Same change. * Instance/tool.make: Same change. * Instance/bundle.make: Same change but use the NOTICE_EMPTY_LINKING message. 2009-02-27 Nicola Pero * Documentation/README.Packaging: File removed - moved it top-level to README.Packaging. * README.Packaging: New file. 2009-02-25 Nicola Pero * common.make: When printing "This is gnustep-make 2.0.9. Type 'make print-gnustep-make-help' for help.", make sure we replace 'make' with whatever command was used to invoke GNU make (eg, on OpenBSD it is often gmake instead of make). Issue reported by Sebastian Reitenbach . 2009-02-25 Nicola Pero * Documentation/README.Packaging (GETTING HELP): New section. 2009-02-23 Nicola Pero * configure.ac (GNUSTEP_MAKE_PARALLEL_BUILDING): Enable parallel building support by default. From now on, you only need to use eg 'make -j 2' to build something using parallel building. Updated documentation. * configure: Regenerated. * Instance/application.make (.PHONY): Added internal-app-run-compile-submake and internal-app-compile. * Instance/bundle.make (.PHONY): Similar change. * Instance/ctool.make (.PHONY): Similar change. * Instance/framework.make (.PHONY): Similar change. * Instance/library.make (.PHONY): Similar change. * Instance/objc.make (.PHONY): Similar change. * Instance/palette.make (.PHONY): Same change. * Instance/service.make (.PHONY): Same change. * Instance/subproject.make (.PHONY): Same change. * Instance/tool.make (.PHONY): Same change. 2009-02-16 Nicola Pero Extended experimental parallel building support to most project types. You can use 'make GNUSTEP_MAKE_PARALLEL_BUILDING=YES -j2' to try out the new parallel building support. * Instance/application.make (internal-app-run-compile-submake): New target with separate implementations to support parallel and non-parallel building. (internal-app-compile): New target. (internal-app-all_): Depend on internal-app-run-compile-submake instead of APP_FILE. * Instance/bundle.make (internal-bundle-run-compile-submake), (internal-bundle-compile), (internal-bundle-all_): Same changes. * Instance/framework.make (internal-framework-run-compile-submake), (internal-framework-compile), (build-framework): Same changes. * Instance/palette.make (internal-palette-run-compile-submake), (internal-palette-compile), (internal-palette-all_): Same changes. * Instance/service.make (internal-service-run-compile-submake), (internal-service-compile), (internal-service-all_): Same changes. * Instance/ctool.make (internal-ctool-all_): When doing a parallel build, use a submake 'compile' invocation to compile. (internal-ctool-compile): New target for the 'compile' invocation. * Instance/objc.make (internal-objc_program-all_), (internal-objc_program-compile): Same changes. * Instance/subproject.make (internal-subproject-all_), (internal-subproject-compile): Same changes. 2009-02-16 Nicola Pero * Instance/library.make (internal-library-all_): Fixed GNUSTEP_OPERATION used in submake invocation when doing a parallel build. * Instance/tool.make (internal-tool-all_): Same change. 2009-02-09 Nicola Pero Added experimental support for parallel building of libraries and tools. We can extend it to more project types once the concept is proven to work. * configure.ac (--enable-parallel-building): New experimental option, disabled by default. * configure: Regenerated. * config-noarch.make.in (GNUSTEP_MAKE_PARALLEL_BUILDING): New variable. * rules.make (.NOTPARALLEL): Do not create this rule when parallel building is enabled, and we are doing the final compile sub-make invocation that is expected to build in parallel. * Instance/library.make (internal-library-all_): When doing a parallel build, delegate the building of the final object file to a sub-make 'compile' invocation that can safely build in parallel. (internal-library-compile): New target executed in the parallel invocation. * Instance/tool.make (internal-tool-all_): Same. (internal-tool-compile): Same. 2009-02-08 Nicola Pero * gnustep-make-help: Use _MAKE_ instead of make when referring to the GNU make program. * rules.make (print-gnustep-make-help): Replace _MAKE_ with the basename of $(MAKE) when printing the help, so that on different systems the correct name for GNU make is used in the help. For example, on OpenBSD it should be 'gmake', not 'make'. Issue reported by Sebastian Reitenbach . 2009-02-02 Nicola Pero * Documentation/releasenotes.texi: Updated. * RELEASENOTES: Regenerated. 2009-02-02 Nicola Pero This change means that file timestamps are more likely to be preserved when files are installed. For example, if you reinstall a library without having changed the headers, this should/might prevent code using the library headers from being rebuilt. * configure.ac: Check if 'install -p' works. If it works, use it by default. Added --disable-install-p option to revert to the previous behaviour of using 'install' instead of 'install -p'. * configure: Regenerated * config-install-p-test/: New directory. * config-install-p-test/run-test.sh: New file. * config-install-p-test/config-install-p-test-file: New file. 2009-02-02 Nicola Pero * configure.ac: On MinGW, do not set INSTALL to 'install -p'. Prefer the install program chosen by configure, which has a full path (typically '/bin/install -c') and so it is safer. * configure: Regenerated. 2009-01-31 Nicola Pero * Documentation/README.MinGW: Updated installation instructions. In particular, use MinGW 5.1.4 instead of 5.1.3. 2009-01-28 Nicola Pero * rules.make (.NOTPARALLEL): Added target. It should turn off parallel building - which does not work with gnustep-make - even when specified on the command-line as 'make -j'. 2009-01-28 Nicola Pero * Instance/resource-set.make (internal-resource_set-uninstall_): Rewritten to be much more accurate. In particular it now removes LOCALIZED_RESOURCE_DIRS and RESOURCE_DIRS. * Instance/Shared/headers.make (shared-instance-headers-uninstall): Remove GNUSTEP_HEADERS/HEADER_FILES_INSTALL_DIR if it is empty. * Instance/rules.make (internal-$(GNUSTEP_TYPE)-uninstall): Remove the $(GNUSTEP_INSTANCE)_INSTALL_DIRS if empty. ($(GNUSTEP_INSTANCE)_INSTALL_DIRS): New rule replacing the one for ADDITIONAL_INSTALL_DIRS, moved into the Master invocation. Do not add $(GNUSTEP_INSTANCE)_INSTALL_DIRS to ADDITIONAL_INSTALL_DIRS. * Master/rules.make (uninstall): Depend on internal-after-uninstall. (internal-after-uninstall): New rule to remove ADDITIONAL_INSTALL_DIRS if empty. ($(ADDITIONAL_INSTALL_DIRS)): New rule. (internal-before-install): New rule. Depend on ADDITIONAL_INSTALL_DIRS. (install): Depend on internal-before-install. 2009-01-28 Nicola Pero * rules.make: Replaced ${OEXT} with the equivalent syntax $(OEXT) to be consistent with the rest of the code. 2009-01-25 Adam Fedor * configure.ac: Add PATH to custom objc library on MinGW (Fix for Bug #25394) 2009-01-22 Adam Fedor * target.make (darwin): Don't use -flat_namespace 2009-01-22 Nicola Pero * rule.make (.DELETE_ON_ERROR): Added target. It should cause GNU make to react more intelligently to errors. 2009-01-11 Richard Frith-Macdonald * configure.ac: * configure: * library-combo.make: * config.make.in: * common.make: Simplify GC changes. 2009-01-10 Richard Frith-Macdonald * configure.ac: Check for objc garbage collection. * config.make.in: Define whether we are using GC. * configure: Regenerate. Initial move towards getting gc working again after years of disuse. 2009-01-07 Nicola Pero * GNUmakefile.in (uninstall): Run each 'rmdir' as a separate command. 2009-01-07 Nicola Pero * Documentation/README.Packaging: Mention clearly setting GNUSTEP_INSTALLATION_DOMAIN in the environment before configuring gnustep-base. 2009-01-06 Richard Frith-Macdonald * Documentation/README.MinGW: Fix error in path to install gnutls. 2009-01-06 Adam Fedor * Version 2.0.8 2008-12-24 Nicola Pero * gnustep-config.in: Added -s option when invoking make, fixing the problems with spurious output when gnustep-config was used in a process spawned by a makefile (eg, configure in gnustep-base when triggered by its Makefile.postamble). 2008-12-24 Nicola Pero * gnustep-config.in: Added new --installation-domain-for=xxx option. * rules.make (print-gnustep-make-installation-domain): New target. 2008-12-21 Adam Fedor * Version 2.0.7 2008-12-19 Nicola Pero * installation-domains.conf: Added gnustep-objc to the System packages. 2008-12-19 Nicola Pero New configuration file that allows hardcore developers building everything from source to specify arbitrary default installation domains for the software. You just need to copy the installation-domains.conf file to the same directory as the GNUstep.conf file, and edit it to customize the default installation domain (Thanks to Richard for the idea). * common.make: Read installation-domains.conf file if it exists, and use it to customize the default installation domains. * installation-domains.conf: New file. Reverted last change. * configure.ac: Removed option --disable-packages. * configure: Regenerated. * config-noarch.make.in: Removed GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN. * common.make: Reverted last change. 2008-12-18 Nicola Pero * configure.ac: New option --disable-packages that causes gnustep-make to assume packages are never involved, so it defaults to installing 'core' software into System by default. * configure: Regenerated. * config-noarch.make.in: Added new variable GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN. * common.make: If GNUSTEP_INSTALLATION_DOMAIN is not set, GNUSTEP_INSTALL_CORE_INTO_SYSTEM_DOMAIN is set to 'YES' and GNUSTEP_CORE_SOFTWARE is set to 'YES', set GNUSTEP_INSTALLATION_DOMAIN to SYSTEM. 2008-12-18 Nicola Pero * Documentation/README.Packaging: New file providing complete instructions and recommendations on how to create GNUstep packages. 2008-12-05 Richard Frith-Macdonald * Documentation/README.MingW: Fix missing part of ffi instructions. 2008-12-05 Richard Frith-Macdonald * GNUstep.sh.in: * GNUstep.csh.in: Fix the code for detecting path fragments within a path ... it was just grepping for the fragments without delimiters, so it would think a fragment was present if that fragment happened to be a substring of something which was present. eg. if /usr/GNUstep/Local/Tools/Admin was present, then it would think that /usr/GNUstep/Local/Tools was also present. 2008-11-28 Richard Frith-Macdonald * print_unique_pathlist.sh: Reverse the order of the path fragments so that, when the caller iterates through them and prepends them to other paths, they end up prepended in the correct order. 2008-11-13 Richard Frith-Macdonald * Documentation/README.MingW: Change instructions to use libffi 2008-11-06 Wolfgang Lux * GNUstep.csh.in: Fix incorrect case pattern which causes initialization of DYLD_LIBRARY_PATH on Darwin and NEXTSTEP systems to be skipped. 2008-10-27 Nicola Pero * configure.ac: Disable precompiled headers on gcc 4.1 since there is no reliable ways to determine if they work or not. * configure: Regenerated. 2008-10-27 Nicola Pero * configure.ac: Added special case when checking for thread support on Apple OS X - it should now detect that Apple OS X supports threads but needs no threading library specified. This implicitly fixes the following check for native ObjC exceptions. * configure: Regenerated. * config_thread.m: Rewritten Apple runtime case to use pthread directly. 2008-10-21 Nicola Pero * Documentation/releasenotes.texi: Updated for latest changes. * RELEASENOTES: Regenerated. 2008-10-21 Nicola Pero Implemented suggestion from David Chisnall of using --no-print-directory for recursive make. * common.make (GNUSTEP_MAKE_NO_PRINT_DIRECTORY_FLAG): New variable. Set it to --no-print-directory unless messages=yes. * Master/aggregate.make: Use it when doing recursive invocations that change directory. * Master/rules.make: Same change. 2008-10-21 Nicola Pero Fixed problem reported by Funda Wang . * GNUstep.sh.in: When adding paths to PATH, CLASSPATH, GUILE_LOAD_PATH and INFOPATH, check that each path is not already there before adding it. Previously we were checking, but checking the whole string of paths as a single unit; the new code works much better when some of the paths, but not all of them, are already there. Reduced the number of loops and variables. Inlined code from ld_lib_path.sh, and rewritten it completely to check every single library and framework path before adding it to the library path variables. Avoid executing any of the framework code unless we are on Darwin. * ld_lib_path.sh: File removed. * GNUstep.csh.in: Same changes as for GNUstep.sh.in. * ld_lib_path.csh: File removed. * GNUmakefile.in (install): Do not install ld_lib_path.sh and ld_lib_path.csh. (uninstall): Do not uninstall ld_lib_path.csh. 2008-07-22 Nicola Pero Keep better track of the original source file used to compile each object file, so that you can have both file.c and file.m in the same project (suggestion by David Chisnall ). * rules.make: Changed rules so that they dictate how to create for example %.m.o from %.m instead of just %.o from %.m. * Instance/rules.make: Changed all xxx_OBJS variables so that they retain the original extension; for example, OBJC_OBJS now contains %.m.o instead of just %.o. 2008-07-21 Nicola Pero Fixed bug reported by Marko Riedel where test-applications are not linked against the gui library by default. * Instance/test-application.make (NEEDS_GUI): Set to 'yes'. * Instance/test-tool.make (NEEDS_GUI): Set to 'no'. * Instance/tool.make (NEEDS_GUI): Use 'no' instead of 'NO' for consistency. 2008-07-17 Adam Fedor * Documentation/machines.texi: Update 2008-06-24 Nicola Pero * gnustep-make-help: Mention the MAKEFILE_NAME variable that can be used to use makefiles with a name different from the default 'GNUmakefile'. 2008-06-17 Richard Frith-Macdonald * gnustep-config.in: Fixup assignment to gs_variable_value with code which works with more shells (bug #23618). Solution suggested by Hubert Chathi. 2008-06-14 Adam Fedor * Version 2.0.6 2008-06-11 Nicola Pero * Documentation/make.texi: Renamed to gnustep-make.texi. * Documentation/gnustep-make.texi: New file. * Documentation/GNUmakefile: Corresponding updates. (Patch by Gareth Armstrong ) * Documentation/releasenotes.texi: Mention that the make.info file was renamed to gnustep-make.info. * RELEASENOTES: Regenerated. 2008-06-10 Nicola Pero * openapp.in: Avoid 'echo -e' which is not portable (Suggestion from Hubert Chathi ) 2008-05-30 Nicola Pero * config.guess, config.sub: Updated to latest version. 2008-05-25 Nicola Pero Fixed cases where ./configure wouldn't detect that the compiler supported auto-dependencies. * configure.ac: Fixed regular expression to determine the GCC version. If was failing when the string terminated at the minor version. * configure: Regenerated. 2008-05-24 Nicola Pero Fixed occasional spurious rebuilds of Info-gnustep.plist and Info.plist files. * Instance/bundle.make (build-bundle): Swapped the order of the shared-instance-bundle-all and $(BUNDLE_INFO_PLIST_FILE) dependencies. (Info.plist, Info-gnustep.plist): Do not depend on building the directory containing the plist file first. * Instance/framework.make (Info.plist, Info-gnustep.plist): Do not depend on creating the directory containing the plist file first. 2008-05-24 Nicola Pero * messages.make (ECHO_UPDATING_VERSION_SYMLINK): Added definition for messages=no. (ECHO_CREATING_STAMP_FILE): New variable. * Instance/Shared/stamp-string.make (shared-instance-stamp-string): Use ECHO_CREATING_STAMP_FILE instead of ECHO_NOTHING. 2008-05-24 Nicola Pero Fixed occasional spurious rebuilds of framework headers; improved display of messages when building framework headers. * Instance/framework.make (internal-framework-build-headers): Depend on $(FRAMEWORK_VERSION_DIR)/Headers. ($(FRAMEWORK_VERSION_DIR)/Headers/%.h): Do not depend on $(FRAMEWORK_VERSION_DIR)/Headers. (build-framework-dirs): Do not depend on $(FRAMEWORK_VERSION_DIR)/Headers. * Instance/subproject.make (internal-subproject-build-headers): Depend on $(OWNING_PROJECT_HEADER_DIR). ($(OWNING_PROJECT_HEADER_DIR)/%.h): Do not depend on $(OWNING_PROJECT_HEADER_DIR). * Instance/framework.make ($(FRAMEWORK_DIR)/Versions/Current): Use ECHO_UPDATING_VERSION_SYMLINK instead of ECHO_NOTHING. ($(FRAMEWORK_VERSION_DIR)/Headers/%.h): Use ECHO_CREATING instead of ECHO_NOTHING. * Instance/subproject.make ($(OWNING_PROJECT_HEADER_DIR)/%.h): Use ECHO_CREATING instead of ECHO_NOTHING. * Instance/messages.make: Added ECHO_UPDATING_VERSION_SYMLINK. 2008-05-24 Nicola Pero * GNUmakefile.in (all): Use $(MAKE) instead of make when printing help message, so it prints the correct command on systems where 'gmake' needs to be used instead 'make'. (Patch by Sebastian Reitenbach ). 2008-05-22 Blake Nicholson * configure.ac: Added the --enable-absolute-install-paths option. * configure: Regenerated. * config.make.in: Added GNUSTEP_ABSOLUTE_INSTALL_PATHS. * Instance/library.make, Instance/framework.make: Change LIB_LINK_INSTALL_NAME to an absolute path if GNUSTEP_ABSOLUTE_INSTALL_PATHS is 'yes' in darwin. * Documentation/releasenotes.texi: Updated to reflect changes. * RELEASENOTES: Regenerated. 2008-05-18 Nicola Pero * configure.ac: Install GNUstep.conf in /etc/GNUstep/GNUstep.conf on OpenBSD, FreeBSD and NetBSD. Packagers are free to install the configuration file wherever it best suits them; but for simplicity and consistency if gnustep-make is compiled from source and nothing else is specified, we default to /etc/GNUstep/GNUstep.conf on all systems. * configure: Regenerated. * Documentation/releasenotes.texi: Describe change. * RELEASENOTES: Regenerated. 2008-03-30 Nicola Pero * clean_os.sh: Support new versions of Darwin, and future ones as well. Patch by Blake Nicholson with a few changes. 2008-03-14 Nicola Pero * Documentation/README.MinGW: Fixed subversion URL to get libobjc - reported by Christopher Chandler . 2008-03-11 Adam Fedor * Version 2.0.5 2008-03-11 Nicola Pero Fixed NEEDS_GUI and xxx_NEEDS_GUI options to accept "yes" as well as "YES", to be consistent with all the other boolean options in gnustep-make. * Instance/rules.make (INTERNAL_NEEDS_GUI): Changed to accept "yes" as well as "YES" * Instance/application.make (NEEDS_GUI): Use yes/no in preference to YES/NO for the default values. * Instance/bundle.make: Same change. * Instance/framework.make: Same change. * Instance/gswapp.make: Same change. * Instance/gswbundle.make: Same change. * Instance/library.make: Same change. * Instance/palette.make: Same change. * Documentation/releasenotes.texi: Suggest yes/no in preference to YES/NO as possible values for NEEDS_GUI and xxx_NEEDS_GUI. * RELEASENOTE: Regenerated. 2008-03-03 Nicola Pero Updated C++ and ObjC++ support so that it automatically uses g++ to link C++ and ObjC++ files. * configure.ac (AC_PROG_CXX): Detect a C++ compiler (if any). * configure: Regenerated. * config.make.in (CXX, CCFLAGS): New variables. * rules.make: Use CXX, not CC, when compiling C++ and ObjC++. (ALL_CCFLAGS): Added CCFLAGS. * Instance/rules.make: If CC_OBJ_FILES or OBJCC_OBJ_FILES are non-empty, set CC to be the same as CXX so that the C++ compiler is used to link. 2008-03-02 Nicola Pero Updated configure and filesystem layouts so that a ./configure on Apple Mac OS X sets up a consistent apple-apple-apple environment. * FileSystemLayouts/apple: New filesystem layout for compiling and installing apple-apple-apple software. * FileSystemLayouts/README: Added the new filesystem layout. * configure.ac: If the library-combo is apple-apple-apple, by default use the apple filesystem layout. On darwin, use /Library/GNUstep/GNUstep.conf as the default config file. * configure: Regenerated. * Documentation/GNUmakefile (./tmp-installation/System/Library/Makefiles): Specify --with-layout=gnustep when creating the temporary local installation. * Documentation/releasenotes.texi: Explain change of the default filesystem layout on apple-apple-apple. * RELEASENOTES: Regenerated. 2008-02-21 Gregory John Casamento * Documentation/faq.texi: Minor updates to the faq. 2008-02-19 Nicola Pero You can now set NEEDS_GUI = YES / NO in your GNUmakefile to change the behaviour for all targets/projects in one go. * Instance/rules.make: Renamed NEEDS_GUI to INTERNAL_NEEDS_GUI and DEFAULT_NEEDS_GUI to NEEDS_GUI. * Instance/application.make (DEFAULT_NEEDS_GUI): Renamed to NEEDS_GUI; do not set if already set. * Instance/bundle.make: Same change. * Instance/framework.make: Same change. * Instance/gswapp.make: Same change. * Instance/gswbundle.make: Same change. * Instance/library.make: Same change. * Instance/palette.make: Same change. * Instance/tool.make: Same change. * Documentation/releasenotes.texi: Added NEEDS_GUI. * RELEASENOTES: Regenerated. 2008-02-19 Nicola Pero Implemented new variable xxx_NEEDS_GUI that can be used to explicitly require linking/not linking against the gui library. If xxx_NEEDS_GUI is not specified, the default behaviour is the traditional one, which depends on the project type: applications, bundles, frameworks, palettes and libraries link against the gui library if available; all other projects don't. * Instance/rules.make (NEEDS_GUI): New variable. Set it from xxx_NEEDS_GUI or DEFAULT_NEEDS_GUI. (ALL_LIBS): New variable listing all libraries to link against. Set it using NEEDS_GUI to decide if we should link against the gui or not. * Instance/application.make (DEFAULT_NEEDS_GUI): Set to YES. (ALL_GUI_LIBS): Variable removed. Use ALL_LIBS when linking instead. * Instance/bundle.make (DEFAULT_NEEDS_GUI): Set to YES. (BUNDLE_LIBS): When linking against all libs, use ALL_LIBS. (ALL_BUNDLE_LIBS): Variable removed. * Instance/ctool.make (ALL_TOOL_LIBS): Variable renamed to ALL_LIBS. Separated out ALL_LIB_DIRS for consistency with other project types. * Instance/framework.make (DEFAULT_NEEDS_GUI): Set to YES. (LIBRARIES_DEPEND_UPON): When linking against all libs, use ALL_LIBS. * Instance/gswapp.make (DEFAULT_NEEDS_GUI): Set to NO. (ALL_GSW_LIBS): Use ALL_LIBS. Separated ALL_LIB_DIRS; pass it on the command-line. * Instance/gswbundle.make (DEFAULT_NEEDS_GUI): Set to NO. Pass ALL_LIB_DIRS separately from ALL_GSWBUNDLE_LIBS on the linker command-line. * Instance/library.make (DEFAULT_NEEDS_GUI): Set to YES. (LIBRARIES_DEPEND_UPON): When linking against all libs, use ALL_LIBS. * Instance/objc.make (ALL_OBJC_LIBS): Do not include ALL_LIB_DIRS; pass that variable separately on the link command line for consistency with other project types. * Instance/palette.make (DEFAULT_NEEDS_GUI): Set to YES. (PALETTE_LIBS): When linking against all libs, use ALL_LIBS. (ALL_PALETTE_LIBS): Variable removed. Pass ALL_LIB_DIRS and PALETTE_LIBS directly on the linker command-line. * Instance/tool.make (DEFAULT_NEEDS_GUI): Set to NO. (ALL_TOOL_LIBS): Do not define; use directly ALL_LIB_DIRS and ALL_LIBS when linking. * target.make (BUNDLE_LINK_CMD): Replaced ALL_BUNDLE_LIBS with BUNDLE_LIBS and added ALL_LIB_DIRS which is no longer included in BUNDLE_LIBS. * Documentation/releasenotes.texi: Added xxx_NEEDS_GUI. * RELEASENOTES: Regenerated. 2008-01-19 Adam Fedor * Master/source-distribution.make: Check for version directory when making export. 2008-01-17 Nicola Pero * GNUmakefile.in (install): Install app-wrapper.template, java-executable.template and executable.template with execute permissions to stop warnings from package checking systems. From a suggestion by Gareth Armstrong . * GNUmakefile.in (uninstall): Remove java-executable.template. 2008-01-17 Nicola Pero * GNUstep.sh.in: Removed shebang expression '#! /bin/xxx' at the beginning of the file to stop package checking systems from complaining that this is an executable script installed with the wrong permissions (Problem reported by Gareth Armstrong ). * GNUstep.csh.in: Same change. * filesystem.sh.in: Same change. * filesystem.csh.in: Same change. * GNUstep-reset.sh: Same change. * ld_lib_path.sh: Same change. * ld_lib_path.csh: Same change. 2008-01-17 Nicola Pero * FilesystemLayouts/fhs-system (GNUSTEP_SYSTEM_DOC_MAN): Changed from /man to /share/man. (GNUSTEP_SYSTEM_DOC_INFO): Changed from /info to /share/info (Patch by Gareth Armstrong ). * FilesystemLayouts/fhs-system (GNUSTEP_NETWORK_DOC_MAN, GNUSTEP_NETWORK_DOC_INFO, GNUSTEP_LOCAL_DOC_MAN, GNUSTEP_LOCAL_DOC_INFO): Similar changes * FilesystemLayouts/fhs: Similar changes. 2008-01-17 Nicola Pero * target.make (SHARED_LIB_LINK_CMD, OBJ_MERGE_CMD): Updated for hpux (Patch by Rashmi with modifications). 2008-01-15 Nicola Pero * GNUstep-strict-v2.conf.in: New file which is a "strict gnustep-make v2" version of GNUstep.conf.in, with all the obsolete v1 variables removed. * configure.ac: Create GNUstep-strict-v2.conf file from GNUstep-strict-v2.conf.in. * configure: Regenerated. * GNUmakefile.in: Install GNUstep-strict-v2.conf as configuration file instead of GNUstep.conf when running in strict v2 mode. * GNUmakefile.in (all): Updated message, mentioning that you need to type 'make install' to install. (install): Updated message for installing manpages mentioning that we are compressing them on the fly. 2008-01-14 Nicola Pero * GNUmakefile.in: Disable built-in suffixes and vague % rules for performance. * GNUstep.csh.in: Fixed typo in line that sources GNUSTEP_USER_CONFIG_FILE. 2008-01-14 Nicola Pero * configure.ac: New option --enable-strict-v2-mode that can be used when debugging/upgrading makefiles and software to test that they do not rely on obsolete/deprecated gnustep-make v1 variables. Define GNUSTEP_MAKE_STRICT_V2_MODE when the option is set. * configure: Regenerated. * config-noarch.make.in, GNUstep.sh.in, GNUstep.csh.in (GNUSTEP_MAKE_STRICT_V2_MODE): New variable, set from the --enable-strict-v2-mode config option. * GNUmakefile.in: If special_prefix is used and we are in strict v2 mode, abort with an error. * GNUstep.sh.in: When in strict v2 mode, never export GNUSTEP_*_ROOT, GNUSTEP_FLATTENED and GNUSTEP_PATHLIST; instead actively unset them if they are set in the environment. Export GNUSTEP_IS_FLATTENED, LIBRARY_COMBO and GNUSTEP_HOST_* only if GNUSTEP_SH_EXPORT_ALL_VARIABLES is set. * GNUstep.csh.in: When in strict v2 mode, never setenv any of the GNUSTEP_*_ROOT, GNUSTEP_FLATTENED, GNUSTEP_PATHLIST, GNUSTEP_IS_FLATTENED, LIBRARY_COMBO and GNUSTEP_HOST_* variables; unset them if they are set in the environment. * config-noarch.make.in: When in strict v2 mode, do not define GNUSTEP_*_ROOT, GNUSTEP_USER_DIR and GNUSTEP_FLATTENED. * GNUstep-reset.sh: Unset GNUSTEP_MAKE_STRICT_V2_MODE for safety. * common.make: In strict v2 mode do not define GNUSTEP_DOCUMENTATION, GNUSTEP_DOCUMENTATION_MAN and GNUSTEP_DOCUMENTATION_INFO. In strict v2 mode, abort with an error if INSTALL_ROOT_DIR or GNUSTEP_INSTALLATION_DIR is set. Print an info line if strict v2 mode is turned on. 2008-01-14 Nicola Pero * GNUstep.sh.in: Dropped sourcing user GNUSTEP_USER_ROOT/GNUstep.sh at the end of the script. The location of the file is no longer meaningfully defined in gnustep-make v2 so we'd need a new mechanism to define a new location, but the feature looks generally obsolete/pointless in gnustep-make v2 so we'd rather drop it. If you have a custom shell script you want to source at start up, you can simply add it in your shell init script before or after sourcing GNUstep.sh. If you are trying to customize the filesystem or environment, you need to customize your layout or config files so that your changes are detected by gnustep-base as well as gnustep-make. * GNUstep.csh.in: Same change. * Documentation/releasenotes.texi: Document the change. * RELEASENOTES: Regenerated. 2008-01-14 Nicola Pero * GNUstep.csh.in: At the end of the script unset GNUSTEP_SYSTEM_WEB_APPS, GNUSTEP_LOCAL_WEB_APPS, GNUSTEP_NETWORK_WEB_APPS, GNUSTEP_USER_WEB_APPS. 2008-01-14 Nicola Pero * GNUstep.sh.in (GNUSTEP_KEEP_CONFIG_FILE, GNUSTEP_KEEP_USER_CONFIG_FILE): New variables used to remember if GNUSTEP_CONFIG_FILE and GNUSTEP_USER_CONFIG_FILE were already set in the environment by the user or if we set them in the script; use them to decide if we need to keep them at the end of the script, or unset them. (GNUSTEP_USER_DEFAULTS_DIR): Unset or export this variable as required. * GNUstep.csh.in: Similar changes. 2008-01-14 Nicola Pero * configure.ac: Clearly explain in the help that --with-user-dir is an obsolete option in gnustep-make v2. Print a warning if it used, and otherwise ignore it. * configure: Regenerated. * gnustep-config.in: Updated help removing mention of GNUSTEP_USER_DIR. * GNUstep.sh.in: Unset GNUSTEP_USER_DIR after using it. * GNUstep.csh.in: Same change. 2008-01-14 Nicola Pero * GNUstep.sh.in: Unset GNUSTEP_SYSTEM_USERS_DIR, GNUSTEP_LOCAL_USERS_DIR, GNUSTEP_NETWORK_USERS_DIR at the end, or export them if GNUSTEP_SH_EXPORT_ALL_VARIABLES if set. * GNUstep.csh.in: Unset the same variables at the end. 2008-01-14 Nicola Pero * filesystem.sh.in: Fixed typo which was causing GNUSTEP_USER_DIR_WEB_APPS not to be removed from the environment. 2008-01-09 Nicola Pero * relative_path.sh: Added optional third parameter to specify whether 'strict' or 'short' output is required. Default to 'strict' so that the configuration system works. * Instance/application.make: Use 'short' option to relative_path.sh to get more compact paths. * Instance/framework.make: Same change. 2008-01-09 Nicola Pero * config.make.in (LN_S_RECURSIVE): New variable. * Instance/application.make: Use it when symlinking a directory. * Instance/framework.make: Same changes. 2008-01-08 Adam Fedor * Version 2.0.4 (on stable branch). 2008-01-03 Richard Frith-Macdonald * relative_path.sh: Revert previous change as it broke the use of relative paths within the configuration system ... critical for ms-windows systems where relative paths are used by default! 2008-01-01 Adam Fedor * Version 2.0.3 (on stable branch). 2007-12-30 Adam Fedor * Documentation/README.Darwin: Update for compiling with Apple gcc. 2007-12-26 Nicola Pero * Documentation/debugapp.1: Minor updates. * Documentation/gnustep-config.1: Same. * Documentation/openapp.1: Same. * Documentation/opentool.1: Same. * Documentation/library-combo.7: Same. 2007-12-26 Nicola Pero * GNUmakefile.in (install): Install the new debugapp.1, gnustep-config.1, opentool.1 and library-combo.7 manpages. (uninstall): Uninstall them. (uninstall): Remove mandir, mandir/man1, mandir/man7, tooldir and GNUSTEP_CONFIG_FILE_DIR if empty. 2007-12-26 Dennis Leeuw * Documentation/debugapp.1: New file. * Documentation/gnustep-config.1: New file. * Documentation/opentool.1: New file. * Documentation/library-combo.7: New file. * Documentation/openapp.1: Rewritten. * Documentation/GNUstep.7: Rewritten. 2007-12-20 Adam Fedor * Master/nsis.make: Generalize to install in other than Applications. * Master/rules.make: Remove nsis include for now * nsi-app.template, Documentation/make.texi: updates. 2007-12-20 Nicola Pero * configure.ac: Emit a warning if GNUSTEP_MAKEFILES contains a space. * configure: Regenerated. 2007-12-20 Nicola Pero * configure.ac (GNUSTEP_PREFIX): Removed double-quoting around `...` expression on the right-hand side of assignment. It is unnecessary and seems to be adding additional unwanted quotes on netbsd. * openapp.in: Similar changes. * opentool.in: Similar changes. * GNUstep.sh.in: Similar changes. * configure: Regenerated. * GNUmakefile.in: Quote most paths in shell expressions. * openapp.in: Similar changes. 2007-12-17 Adam Fedor * nsi-app.template, Master/nsis.make, Documenation/make.texi, GNUmakefile.in: Add automatic NSIS Windows installer script generator. 2007-12-17 Nicola Pero * GNUmakefile.in (uninstall): Remove filesystem.make and GNUstep.conf. 2007-12-17 Nicola Pero * GNUmakefile.in (install): Always install the manpages included in the Documentation directory; they don't need building. (uninstall): Uninstall them. * Documentation/GNUmakefile (after-install): Do not install the manpages. (after-uninstall): Do not uninstall them. 2007-12-15 Nicola Pero Rewritten config-precomp-test to work when the build directory is separate from the source directory. * config-precomp-test/run-test.sh: Updated to allow a separate build directory; more pervasive quoting of paths and filenames. * config-precomp-test/config-precomp-test.h: Renamed from gs_precomp_test.h. * config-precomp-test/config-precomp-test.m: Renamed from gs_precomp_test.m. Updated include for header filename change. * GNUmakefile.in (distclean): Updated deleting config-precomp-test files. * configure.ac: Updated the way config-precomp-test/run-test.sh is executed. * configure: Regenerated. 2007-12-15 Nicola Pero * GNUmakefile.in (distclean): Remove config-precomp-test/gs_precomp_test.h.gch and config-precomp-test/a.out. 2007-12-12 Hubert Chathi * relative_path.sh: Fixed check for start of string so that we output '../xxx' instead of the clumsy './../xxx'. 2007-12-12 Nicola Pero * GNUmakefile.in (install): Fixed installation when a separate source dir is used. (Patch by Hubert Chathi with modifications). 2007-11-08 Adam Fedor * Mark for Version 2.0.2 (on stable branch) 2007-10-31 David Ayers * rules.make: Implement ADDITIONAL_NATIVE_LIB_DIRS. * Documentation/make.texi: Document ADDITIONAL_NATIVE_LIB_DIRS. 2007-10-30 Adam Fedor * Update license to GPL 3 * gnustep-make.spec.in: Change Copyright to License. 2007-09-13 Fred Kiefer * openapp.in: Add linebreak at end of file. 2007-07-13 Nicola Pero * {Everything}: Fixed copyright notices to tell the user they can read the full text of the GNU GPL in the COPYING file. The old notices were telling users to read the COPYING.LIB file which does not exist. 2007-06-15 Adam Fedor * Documentation/userfaq.texi: Update. 2007-06-13 Chris Farber * Documentation/README.Darwin: Minor updates and corrections. 2007-05-23 Adam Fedor * Mark for Version 2.0.1 (on stable branch) 2007-05-12 Nicola Pero * configure.ac: When checking for the custom ObjC runtime library, check in Network and Local as well as System. * configure: Regenerated. 2007-05-11 Richard Frith-Macdonald * common.make: correct the os/architecture specific header directory for non-flattened compilation. Needs to be a subdirectory of the library-combo directory and wasn't. 2007-05-02 Nicola Pero * FilesystemLayouts/fhs-system: Added missing xxx_WEB_APPS variables (Reported by Stefan Bidigaray ). Fixed xxx_APPS variables to use 'Applications' and not 'Apps'. 2007-05-01 Nicola Pero * FilesystemLayouts/gnustep (GNUSTEP_USER_DIR_DOC, GNUSTEP_USER_DIR_DOC_INFO, GNUSTEP_USER_DIR_DOC_MAN): Added the Library part of the path which was missing. * FilesystemLayouts/gnustep-with-network: Same changes. * FilesystemLayouts/fhs-system: Same changes. * FilesystemLayouts/fhs: Same changes. * FilesystemLayouts/mac: Same changes. 2007-04-18 Nicola Pero Fixed installing headers of a framework's subproject when the framework has the default version (Problem reported by David Wetzel ). * Master/rules.make (%.variables): Fixed default framework version used to copy headers from subprojects to frameworks. (%.subprojects): Same change. * Documentation/releasenotes.texi: Fixed documentation on the new default framework resource version. * RELEASENOTES: Same change. 2007-04-13 Adam Fedor * Version 2.0.0 (Updated) * Version: Revert reversion number * RELEASENOTES: Add to top dir 2007-04-12 Adam Fedor * Version: Bump version to 2.1.0 2007-04-12 Adam Fedor * Version 2.0.0 2007-04-12 Nicola Pero * Documentation/news.texi: More updates. * Documentation/releasenotes.texi: Added release notes for gnustep-make version 2. 2007-04-12 David Ayers * GNUstep-reset.sh (INFOPATH): Correct INFOPATH cleanup variable. 2007-04-11 Adam Fedor * Version: Bump version number to 2.0.0 * Documentation/news.texi: Update * Documentation/releasenotes.texi: New file * Regenerate release files. 2007-04-10 Nicola Pero Fixed help messages for debugapp to display 'debugapp' instead of 'openapp' as program name. * openapp.in: Use $0 instead of openapp as program name in help messages. In the help message mention that debugapp is equivalent to openapp --debug. * debugapp: Use source, not exec, to pass control to openapp while still preserving $0. (openapp_debug_mode): Set this variable to turn on debug mode inside openapp. * Documentation/DESIGN: Mention that this is mostly a historical document now. 2007-04-10 Nicola Pero * Instance/framework.make (xxx.framework/GNUSTEP_TARGET_LDIR/xxx): Fixed typo removing symlinks before symlinking - it was causing compilation to fail in certain conditions (Problem reported by David Ayers ). 2007-03-30 Nicola Pero * FilesystemLayouts/mac: Updated (Suggestions by Tim McIntosh , plus moved the Network domain before the Local one). 2007-03-21 Nicola Pero * Documentation/README.MinGW: Warn people not to install libxslt (Reported by Xavier Glattard and Christopher Armstrong ). 2007-03-17 Nicola Pero * Documentation/gnustep-howto.texi: Updated. In particular: removed all references to obsolete GNUSTEP_SYSTEM_ROOT, mention the existence of various filesystem layouts and of the new setup options, and updated explanations of how to checkout the source code. * Documentation/machines.texi (RedHat/Intel): Renamed to 'RedHat/i386'; marked as 'Supported' and added some doc. (CentOS/i386): New section. (FedoraCore/i386): New section. 2007-03-17 Nicola Pero * Documentation/make.texi: Changed the basic example to use tool.make instead of objc.make. Updated some comments. (Directory Paths): Updated documentation; in particular, documented GNUSTEP_ADMIN_APPS, GNUSTEP_WEB_APPS, GNUSTEP_ADMIN_TOOLS, GNUSTEP_LIBRARY, GNUSTEP_DOC, GNUSTEP_DOC_MAN, GNUSTEP_DOC_INFO. 2007-03-17 Nicola Pero * configure.ac: Added -shared-libgcc when linking with ObjC exceptions (Suggestion from Andrew Pinski). * common.make (INTERNAL_LDFLAGS): Same change. * configure: Regenerated. 2007-03-16 Nicola Pero Implemented rebuilding Info-gnustep.plist when xxxInfo.plist is changed (and palette.table from xxxpalette.table for palettes). For applications, automated detecting xxxInfo.cplist and preprocessing it, so that xxx_PREPROCESS_INFO_PLIST in GNUmakefiles is now obsolete and can be removed. * Instance/application.make (GNUSTEP_PLIST_DEPEND): Automatically add xxxInfo.plist if the file is there; if not, automatically add xxxInfo.cplist if there. Removed xxx_PREPROCESS_INFO_PLIST. * Instance/bundle.make: Have Info-gnustep.plist automatically depend on xxxInfo.plist if it exists. * Instance/framework.make: Same change. * Instance/gswapp.make: Same change. * Instance/service.make: Same change. * Instance/palette.make Have Info-gnustep.plist automatically depend on xxxInfo.plist if it exists, and palette.table automatically depend on xxxpalette.table if it exists. * Instance/framework.make (FRAMEWORK_INFO_PLIST_FILE): New variable fixing the fact that frameworks on gnu-gnu-gnu were creating Info.plist instead of Info-gnustep.plist. * Instance/service.make: Fixed rules to only cat xxxInfo.plist if it exists. Print a warning if it doesn't, as services need to have one to be useful. * Version: bumped to 1.98.2. 2007-03-16 Xavier Glattard * configure.ac (CYGWIN): Set to no on MinGW. * configure: Regenerated. 2007-03-15 Chris Vetter * mac: New filesystem layout (comments at the top of the file edited by Nicola). 2007-03-15 Nicola Pero * configure.ac: Added -fexceptions as well when trying the ObjC exception test program. Restore CFLAGS and LIBS after the ObjC exception test. * configure: Regenerated. * common.make (OBJCFLAGS, INTERNAL_LDFLAGS): Add -fexceptions when ObjC exceptions are enabled. 2007-03-13 Nicola Pero * Instance/framework.make (CURRENT_VERSION_NAME): If no CURRENT_VERSION_NAME is set, use INTERFACE_VERSION for it (instead of 'A'), so that by default the shared object and the resources follow a similar versioning (can still be configured, as before, to have separated versioning). * Master/rules.make (%.variables, %.subprojects): Corresponding update. 2007-03-13 Nicola Pero * Instance/framework.make (GNUSTEP_BUILD_DIR/GNUSTEP_INSTANCE.framework/GNUSTEP_TARGET_LDIR): New rule to create the directory when non-flattened. (GNUSTEP_BUILD_DIR/GNUSTEP_INSTANCE.framework/GNUSTEP_TARGET_LDIR/GNUSTEP_INSTANCE): Depend on the new rule; use REL_PATH_SCRIPT to compute correct symlink when non-flattened. 2007-03-13 Nicola Pero * Instance/resource-set.make (RESOURCE_FILES_DIR): New variable. ($(RESOURCE_FILES_INSTALL_DIR)): Added missing CHOWN. (LOCALIZED_RESOURCE_DIRS): New variable; implemented rules to support it. (internal-resource_set-install_): Create the LOCALIZED_RESOURCE_DIRS if needed. Use 'cp -rf' instead of INSTALL_DATA to install RESOURCE_FILES and LOCALIZED_RESOURCE_FILES so that directories can be used as well. Do a final CHOWN to fixup ownership of all the installed stuff. ($(RESOURCE_FILES_INSTALL_DIR)/%): Do a CHOWN. 2007-03-09 Nicola Pero * Instance/library.make: Changed resource installation directory structure to be very similar to the one used for frameworks. Might be helpful in the future. 2007-03-09 Nicola Pero * Instance/Shared/bundle.make: Internal shared bundle install variables have been reorganized to support library resources with versioning. (shared-instance-bundle-install): Rewritten for changes. (shared-instance-bundle-copy_into_dir): Same change. (shared-instance-bundle-uninstall): Same change. * Instance/application.make: Updated GNUSTEP_SHARED_BUNDLE_xxx variables to work with the new stuff. * Instance/bundle.make: Same change. * Instance/gswapp.make: Same change. * Instance/palette.make: Same change. * Instance/service.make: Same change. * Instance/tool.make: Same change. * Instance/library.make: Implemented xxx_HAS_RESOURCE_BUNDLE for libraries -- including versioned resources. 2007-03-09 Nicola Pero Implemented versioning of Microsoft Windows DLLs. Every DLL now has got the interface version in their name, and applications are linked to a DLL including the interface version. * Instance/library.make (INTERFACE_VERSION): Compute even if building DLLs, using the same rules used on other platforms. (LIB_LINK_DLL_FILE): Include the INTERFACE_VERSION in the name. * Instance/framework.make (LIB_LINK_DLL_FILE): Same change. 2007-03-08 Nicola Pero You can now start up applications on the command line by just using their name. Eg, 'Gorm'. To support this, we install a wrapper in the tools directory (which is in your PATH). * app-wrapper.template: New file. * GNUmakefile.in (install): Install app-wrapper.template. (uninstall): Uninstall it. * Instance/application.make ($(GNUSTEP_TOOLS), internal-install-app-wrapper, internal-uninstall-app-wrapper): New rules that install/uninstall app-wrapper.template into GNUSTEP_TOOLS with the name of the application. If symlinks are available, don't install a wrapper script but symlink directly the binary for maximum speed ('Gorm' will be much faster than 'openapp Gorm' in this situation). (internal-app-install_): Depend on internal-install-app-wrapper. (internal-app-uninstall_): Depend on internal-uninstall-app-wrapper. * Instance/application.make ($(APP_DIR)/$(GNUSTEP_INSTANCE)): Added missing CHOWN command. 2007-03-08 Nicola Pero * GNUstep.csh.in: Fixed typo when setting up PATH (Reported by Wolfgang Lux ). 2007-03-08 Sergii Stoian * FilesystemLayouts/next: Change GNUSTEP_*_LIBRARIES to /GNULibrary instead of /GNUDeveloper. Change GNUSTEP_USER_CONFIG_FILE to Library/Preferences/GNUstep.conf. 2007-03-08 Nicola Pero * Documentation/filesystem.texi: Update/rewrite complete. 2007-03-06 Nicola Pero * FilesystemLayouts/gnustep (GNUSTEP_SYSTEM_USERS_DIR, GNUSTEP_NETWORK_USERS_DIR, GNUSTEP_LOCAL_USER_DIRS): New variables. * FilesystemLayouts/gnustep-with-network: Same changes. * FilesystemLayouts/fhs: Same changes. * FilesystemLayouts/fhs-system: Same changes. * FilesystemLayouts/next: Same changes. * GNUstep.conf.in: Same changes. * filesystem.make.in: Same changes. * filesystem.sh.in: Same changes. * filesystem.csh.in: Same changes. * GNUstep-reset.sh: Same changes. * configure.ac: Same changes. * configure: Regenerated. * FilesystemLayouts/gnustep: Moved network domain before local domain. * Version: bumped to 1.98.1. 2007-03-06 Nicola Pero * Instance/framework.make: When version support is enabled, build symlinks from top-level xxx.framework/TARGET_LDIR/xxx and xxx.framework/TARGET_LDIR/libxxx.so to the Current object files so that uninstalled frameworks can be linked by using -Lpath_to_framework/xxx.framework/$TARGET_LDIR. * Instance/framework.make: Use standard '=' assignment for variables. * Instance/framework.make: On Apple, if non-flattened, put the top-level symlinks into TARGET_LDIR. 2007-03-05 Nicola Pero * configure.ac: Print the complete filesystem layout configuration. This helps in spotting bugs and incorrect configurations. * configure: Regenerated. 2007-03-05 Nicola Pero Added GNUSTEP_WEB_APPS variable that can be used by GSWeb and SOPE to decide where to install their web applications. * common.make (GNUSTEP_WEB_APPS): New variable. * Instance/gswapp.make: Install into GNUSTEP_WEB_APPS by default. Define GNUSTEP_GSWAPPS in terms of GNUSTEP_WEB_APPS for backwards compatibility. * configure.ac (GNUSTEP_SYSTEM_WEB_APPS, GNUSTEP_LOCAL_WEB_APPS, GNUSTEP_NETWORK_WEB_APPS, GNUSTEP_USER_DIR_WEB_APPS): New variables; read them from filesystem layout files, output them. * configure: Regenerated. * FilesystemLayouts/gnustep (GNUSTEP_SYSTEM_WEB_APPS, GNUSTEP_LOCAL_WEB_APPS, GNUSTEP_NETWORK_WEB_APPS, GNUSTEP_USER_DIR_WEB_APPS): New variables. * FilesystemLayouts/gnustep-with-network: Same change. * FilesystemLayouts/fhs: Same change. * FilesystemLayouts/next: Same change. * filesystem.make.in: Same change. * filesystem.sh.in: Same change. * filesystem.csh.in: Same change. * GNUstep.conf.in: Same change. * GNUstep-reset.sh: Same change. * GNUstep.sh.in: Same change. 2007-03-05 Nicola Pero * FilesystemLayouts/fhs (GNUSTEP_SYSTEM_APPS, GNUSTEP_LOCAL_APPS, GNUSTEP_NETWORK_APPS, GNUSTEP_USER_DIR_APPS): Use 'Applications', not 'Apps', for the filesystem location. * FilesystemLayouts/gnustep-with-network: Moved Network variables before Local ones. * filesystem.make.in: Same change. * filesystem.sh.in: Same change. * filesystem.csh.in: Same change. * GNUstep-reset.sh: Same change. * filesystem.make.in (GNUSTEP_USER_ADMIN_APPS, GNUSTEP_USER_ADMIN_TOOLS): Set these variables. * filesystem.make.in: Fixed typo in definition of GNUSTEP_SYSTEM_ADMIN_APPS. 2007-03-05 Adam Fedor * configure.ac, config.make.in: Add check for latex2html * Instance/documentation/latex.html: Use it. 2007-03-02 Nicola Pero * FilesystemLayouts/mingw: File removed. * FilesystemLayouts/windows: File removed. * FilesystemLayouts/README: Do not mention the removed layouts. * configure.ac: Do not use 'windows' filesystem layout on mingw32; the default filesystem layout is fine. * configure: Regenerated. * Documentation/README.MinGW: Updated. * Instance/application.make (ALL_LDFLAGS): Add -mwindows when building applications on MinGW, to get rid of the ugly terminal window when you start the apps directly by double-clicking on the .exe file in the Windows file manager. * Documentation/filesystem.texi: Updated the section on Windows. 2007-02-29 Richard Frith-Macdonald * relative_path.sh: Fix for the case where the two arguments are identical paths. 2007-02-29 Richard Frith-Macdonald * common.make: Fixup -I (when in non-flattened mode) to use the generic library combo subdirectory as well as the full machine/os specific version. 2007-02-28 Nicola Pero * configure.ac: On MinGW, install the config file in /etc/GNUstep/GNUstep.conf. * configure: Regenerated. * FilesystemLayouts/mingw: New layout. * Documentation/README.MinGW: Updated, including instructions to prepare standalone binary applications that can be shipped to end-users (experimental). 2007-02-26 Nicola Pero * Documentation/filesystem.texi: Updated the first half of the document for relocatable filesystem layouts. Second half still to do. * FilesystemLayouts/gnustep-with-network: New layout. * FilesystemLayouts/README: Fixed name of gnustep filesystem layout. 2007-02-26 Nicola Pero * gnustep-config.in: Updated help for the change of variable names from GNUSTEP_SYSTEM_DOCUMENTATION to GNUSTEP_SYSTEM_DOC. 2007-02-26 Graham Lee * gnustep-config.in: Bugfix to a test which stopped '--help' from working. 2007-02-26 Nicola Pero tcsh 6.12 has a 30 char limit on variable names, so GNUSTEP_SYSTEM_DOCUMENTATION_MAN has been renamed to GNUSTEP_SYSTEM_DOC_MAN (and similar consistent changes to all variables everywhere). * filesystem.csh.in: Use GNUSTEP_SYSTEM_DOC instead of GNUSTEP_SYSTEM_DOCUMENTATION, GNUSTEP_SYSTEM_DOC_MAN instead of GNUSTEP_SYSTEM_DOCUMENTATION_MAN, GNUSTEP_SYSTEM_DOC_INFO instead of GNUSTEP_SYSTEM_DOCUMENTATION_INFO (and similar changes to all other DOCUMENTATION variables). * filesystem.sh.in: Same change. * configure.ac: Same change. * FilesystemLayouts/fhs: Same change. * FilesystemLayouts/fhs-system: Same change. * FilesystemLayouts/gnustep: Same change. * FilesystemLayouts/windows: Same change. * FilesystemLayouts/next: Same change. * GNUstep.csh.in: Same change. * Instance/documentation.make: Same change. * Instance/Documentation/javadoc.make: Same change. * Instance/Documentation/autogsdoc.make: Same change. * Instance/Documentation/install_files.make: Same change. * Instance/Documentation/texi.make: Same change. * Instance/Documentation/latex.make: Same change. * Instance/Documentation/gsdoc.make: Same change. * GNUstep-reset.sh: Same change. * GNUstep.sh.in: Same change. * filesystem.make.in: Same change. * Documentation/GNUmakefile: Same change. * GNUstep.conf.in: Same change. * common.make: Same change. * common.make: For backwards compatibility in user GNUmakefiles define GNUSTEP_DOCUMENTATION, GNUSTEP_DOCUMENTATION_MAN and GNUSTEP_DOCUMENTATION_INFO to be the same as GNUSTEP_DOC, GNUSTEP_DOC_MAN and GNUSTEP_DOC_INFO. * configure: Regenerated. 2007-02-20 Nicola Pero * create_domain_dir_tree.sh: File removed. * Documentation/make.texi: File updated. 2007-02-19 Nicola Pero * gnustep-config.in: Check that we are given a valid option and print an error message if not. Extended --help. Use --variable=xxx syntax to print variables to make the syntax more similar to pkg-config's one. Redirect stderr to /dev/null when running make. Only print the variable value if not empty. 2007-02-19 Nicola Pero * configure.ac: By default, do not import an existing configuration file. In most cases, this is now an annoyance rather than a convenience as it overrides the --prefix=xxx and --with-layout=yyy options. * configure: Regenerated. 2007-02-19 David Ayers * GNUmakefile.in (uninstall:): Remove print_unique_pathlist.sh, filesystem.sh, filesystem.csh and gnustep-config. Remove GNUSTEP_TARGET_LDIR. Reorder removed directories according to reverse order of installation. Only remove existing directories. Remove obsolete comment. * common.make (TRANSFORM_PATHS_SCRIPT): Remove obsolete variable. 2007-02-19 Nicola Pero * Documentation/install.texi: Rewritten large parts to describe the new installation and configuration process. * INSTALL: Regenerated. 2007-02-18 Nicola Pero * config-noarch.make.in: Removed the deprecation warnings added earlier today, because in some situations they seem to be triggered spuriously (Reported by Fred Kiefer). 2007-02-18 Nicola Pero * rules.make (.PHONY): Added declaration of new print-gnustep-make-* targets as PHONY. 2007-02-18 Nicola Pero * empty.make: Added file that was missing in past commit. 2007-02-18 Nicola Pero Updated rpm building code, and removed separate debug packages. * GNUmakefile.in (MAKE_FILES): Removed spec-debug-rules.template. * spec-debug-rules.template: File removed. * Master/rpm.make (internal-after-install): Use DESTDIR instead of INSTALL_ROOT_DIR. Enhanced sed expression to only remove DESTDIR from the beginning of paths. ($(PACKAGE_NAME)-debug.spec.in): Rule removed. ($(SPEC_FILE)): Do not set %gs_root. Set %gs_install_domain instead of %gs_install_dir. Set %gs_makefiles. Do not append '-debug' to name for no longer existing debug packages. Do not set Prefix: or requires:. Removed special variable settings for debug packages. * spec-rules.template: Check GNUSTEP_MAKEFILES, not GNUSTEP_SYSTEM_ROOT. Use %{gs_makefiles} to locate GNUstep.sh. When running configure, do not use --prefix. Use GNUSTEP_INSTALLATION_DOMAIN and not GNUSTEP_INSTALLATION_DIR when installing. 2007-02-18 Nicola Pero * config-noarch.make.in: Print a deprecation warning if any of the GNUSTEP_SYSTEM_ROOT, GNUSTEP_LOCAL_ROOT, GNUSTEP_NETWORK_ROOT, GNUSTEP_USER_ROOT variables is used. * config-noarch.make.in (GNUSTEP_FLATTENED): Print a deprecation warning if the variable GNUSTEP_FLATTENED is used. * common.make (INSTALL_ROOT_DIR): Print a deprecation warning if the variable INSTALL_ROOT_DIR is used. 2007-02-18 Graham J Lee * FilesystemLayouts/next: New file. 2007-02-17 Nicola Pero * Instance/tool.make (GNUSTEP_SHARED_BUNDLE_INSTALL_DIR): Install tool resources in GNUSTEP_LIBRARY/Tools/Resources. ($(GNUSTEP_LIBRARY)/Tools): Build this directory instead of $(TOOL_INSTALL_DIR)/Resources. (internal-tool-install_): Depend on the new rule instead of the old one. 2007-02-17 Nicola Pero * common.make: Added new flag quiet=yes that disables the gnustep-make version message. * configure.ac: Output GNUMAKE value. * configure: Regenerated. * empty.make: New file. * GNUmakefile.in: Install it. * rules.make (print-gnustep-make-objc-flags, print-gnustep-make-objc-libs, print-gnustep-make-base-libs, print-gnustep-make-gui-libs): New targets. * gnustep-config.in: New options --objc-flags, --objc-libs, --base-libs, --gui-libs that output the flags used for basic ObjC compilation and linking on the current platform. 2007-02-16 Nicola Pero Added GNUSTEP_ADMIN_APPS and GNUSTEP_ADMIN_TOOLS. * common.make: Added GNUSTEP_ADMIN_APPS and GNUSTEP_ADMIN_TOOLS. * filesystem.sh.in: Added GNUSTEP_*_ADMIN_APPS and GNUSTEP_*_ADMIN_TOOLS. * filesystem.csh.in: Same changes. * filesystem.make.in: Same changes. * GNUstep.config.in: Same changes. * configure.ac: Same changes. * configure: Regenerated. * create_domain_dir_tree.sh: Create the Applications/Admin and Tools/Admin/GNUSTEP_TARGET_LDIR directories. * GNUstep.sh.in: Add each GNUSTEP_*_ADMIN_TOOLS path to PATH, but only if we are administrators. Unset/export GNUSTEP_*_ADMIN_APPS and GNUSTEP_*_ADMIN_TOOLS dirs at the end. * GNUstep.csh.in: Same changes. * GNUstep-reset.sh: Unset GNUSTEP_*_ADMIN_APPS and GNUSTEP_*_ADMIN_TOOLS variables. * openapp.in: Search for the application in the Admin Apps directories as well, but only if we are an Administrator. * FilesystemLayouts/gnustep: Added GNUSTEP_*_ADMIN_APPS and GNUSTEP_*_ADMIN_TOOLS. * FilesystemLayouts/fhs: Same changes. * FilesystemLayouts/fhs-system: Same changes. * FilesystemLayouts/windows: Same changes. 2007-02-16 Adam Fedor * Instance/Documentation/latex.make: Revert adding extension. 2007-02-16 Nicola Pero * filesystem.csh.in: Fixed typo (GNUSTEP_SYSTEM_ROOT instead of GNUSTEP_SYSTEM_APPS). * configure.ac: Updated comments avoiding references to GNUSTEP_SYSTEM_ROOT. * configure: Regenerated. 2007-02-16 Adam Fedor * Instance/Documentation/latex.make: Add correct extension to target. Filter out 'no' when getting LATEX2HMTL exec. * Instance/palette.make: Link with all libs even on darwin. * target.make (darwin): Use gnu runtime as test for gnu compilation. (Based on suggestions from Yves de Champlain). 2007-02-16 Nicola Pero Renamed --with-layout=linux option to --with-layout=fhs. * FilesystemLayouts/fhs: New file replacing FilesystemLayouts/linux. Also, fixed all comments. * FilesystemLayouts/fhs-system: New file replacing FilesystemLayouts/linux-system. Also, fixed all comments. * FilesystemLayouts/README: Corresponding updates. * configure.ac: Updated to mention 'fhs' layout, not 'linux'. * configure: Regenerated. (Suggestion from Yavor Doganov ) 2007-02-16 Nicola Pero Completed implementation of customizable filesystem layouts (including FHS). ./configure --with-layout=linux will give you the FHS layout (experimental). Check the FilesystemLayouts directory to create your own layout or to check for more options. This is experimental, use it at your risk and make sure you do not mess up your system directories while testing. ;-) * configure.ac: Added --with-layout=xxx option. Import appropriate layout configuration. Rewritten management of prefix. Disable importing config file if an explicit layout is specified. Ignore --with-system-root, --with-local-root and --with-network-root but print a warning if they are used. Updated user domain settings code. Updated makefiles settings code. Removed hardcoded filesystem layout. Added backwards compatibility output of GNUSTEP_*_ROOT. Updated flattened checks to use the GNUSTEP_IS_FLATTENED variable. * configure: Regenerated. * FilesystemLayouts: New directory. * FilesystemLayouts/README: New file. * FilesystemLayouts/gnustep: New file. * FilesystemLayouts/linux: New file. * FilesystemLayouts/linux-system: New file. * FilesystemLayouts/windows: New file. * GNUmakefile.in: Do not define GNUSTEP_*_ROOT. Updated tooldir definition. Do not create system domain hierarchy; create the system tools directory instead. Do not delete the makefiles directory after creating it. Commented out installation of config.site file that needs reviewing. Use override when defining GNUSTEP_* variables. * common.make: Updated warning when GNUSTEP_SYSTEM_TOOLS is not found in PATH. * gnustep-config.in: Fixed help message. * relative_path.sh: Fixed situation when the second argument is a subdirectory of the first one. * GNUstep.conf.in: Updated comments. Moved NETWORK domain before LOCAL domain. * Version: bumped to 1.98.0. 2007-02-15 Nicola Pero * configure.ac (GNUSTEP_SYSTEM_HEADERS, GNUSTEP_NETWORK_HEADERS, GNUSTEP_LOCAL_HEADERS, GNUSTEP_USER_HEADERS): Changed not to contain LIBRARY_COMBO for the non-flattened case. This will allow you to use the same configuration file across multiple library-combos. Updates to rest of the code for this change. * common.make (GNUSTEP_HEADERS): Updated to add LIBRARY_COMBO at this stage (if needed). * configure: Regenerated. 2007-02-15 Nicola Pero * executable.template.in (full_appname): Fixed typo. 2007-02-14 Nicola Pero * executable.template.in: Updated for new filesystem structure. Always source GNUstep.sh. Removed code to iterate over Applications directories or PATH; removed code to do a separate computation of GNUSTEP_HOST_*. Enhanced switching of library combos on the fly. Other minor fixes. 2007-02-14 Nicola Pero * GNUstep-reset.sh: Unset GNUSTEP_USER_DIR_* variables as well just for extra security. 2007-02-14 Nicola Pero * gnustep-make.spec.in: Updated description and comments. 2007-02-14 Nicola Pero * configure.ac: Redirect all error logging for the non-essential gcc and make tests to &5 (which goes into config.log). If they go wrong, the user will see 'no' in the specific feature that is being tested, and can into config.log to check why they failed. * configure: Regenerated. 2007-02-14 Nicola Pero * Instance/java-tool.make: Store Java code in the standard GNUSTEP_JAVA location instead of a subdirectory of GNUSTEP_TOOLS. * java-executable.template: Corresponding update. Simplify and update by sourcing GNUstep.sh. 2007-02-14 Nicola Pero * gnustep-config.in: Extended help to list all the new filesystem variables. 2007-02-14 Nicola Pero * configure.ac (GNUSTEP_USER_DIR_LIBRARIES): Fixed definition. Use GNUSTEP_SYSTEM_HEADERS and GNUSTEP_SYSTEM_LIBRARIES rather than GNUSTEP_SYSTEM_ROOT/Library/Headers and GNUSTEP_SYSTEM_ROOT/Library/Libraries. * configure: Regenerated. * ld_lib_path.sh: Removed the optional argument. Updated to new filesystem support. * ld_lib_path.csh: Same changes. 2007-02-14 Nicola Pero * common.make (LD_LIB_PATH_SCRIPT): Unused variable removed. 2007-02-14 Nicola Pero * GNUmakefile.in (install): Fixed installation of debugapp. It was installed with wrong permissions in the wrong directory (Reported by Fred Kiefer ). 2007-02-14 Nicola Pero * Instance/resource-set.make (RESOURCE_FILES_INSTALL_DIR): Only use xxx_RESOURCE_FILES_INSTALL_DIR if xxx_INSTALL_DIR is not set. In this way, GNUmakefiles that need to be backwards compatible can set both the old and the new variable, and work both with old and new gnustep-makes. * common.make: Emit a deprecation warning is GNUSTEP_INSTALLATION_DIR is used. 2007-02-14 Nicola Pero * filesystem.sh.in: Unset all GNUSTEP_USER_DIR_* variables after using them. * GNUmakefile.in: Install print_unique_pathlist.sh. * print_unique_pathlist.sh: New file. * GNUstep.sh.in: Updated for new filesystem support. * GNUstep.csh.in: Updated for new filesystem support. Use unsetenv consistently for all the filesystem variables. * filesystem.csh.in: Use setenv/unsetenv for all variables for consistency with the config files. 2007-02-14 Nicola Pero * common.make: Moved top-level PATH sanity check at the end of the file. In the check, use GNUSTEP_SYSTEM_TOOLS instead of GNUSTEP_SYSTEM_ROOT/Tools. Avoid the check on Cygwin where paths need conversion. 2007-02-14 Nicola Pero * Instance/framework.make ($(DUMMY_FRAMEWORK_FILE)): Return the real complete installation path into +frameworkPath; return nil into +frameworkEnv. These methods are currently unused, but future versions of gnustep-base might read +frameworkPath to have a better chance of finding the framework on disk. * GNUstep.conf.in: Use a single '#' for comments, not two ('##'). 2007-02-14 Nicola Pero * target.make (TARGET_LIB_DIR): (MacOS-Server 1.0, OpenStep 4.x): Variable removed. Use GNUSTEP_LIBRARIES instead to get the same effect. 2007-02-14 Nicola Pero * GNUmakefile.in (install): Install GNUstep.sh, GNUstep.csh, filesystem.sh, filesystem.csh, ld_lib_path.sh, ld_lib_path.csh as non-executables as they are to be sourced, not executed (Suggestion from Richard). 2007-02-14 Nicola Pero * GNUstep.conf.in (GNUSTEP_MAKEFILES): New variable. * GNUstep.csh.in: By default, set GNUSTEP_MAKEFILES to the configure default if not set. * GNUstep.sh.in: Same change. * gnustep-config.in: Same change. * openapp.in: Updated to use new filesystem config. * opentool.in: Updated to use new filesystem config; also, remove unused check for empty GNUSTEP_MAKEFILES after GNUstep.sh has been sourced. 2007-02-14 Nicola Pero * GNUmakefile.in (distclean): Remove GNUstep.conf. Do not remove GNUsteprc. (generated-files): Added GNUstep.conf. (GNUstep.conf): New rule to regenerate it. * GNUstep.conf.in: Added all the new filesystem options with explanations on what they mean. 2007-02-14 Nicola Pero Warning: the software will be unstable for some time. Don't upgrade from trunk if you need stability. * configure.ac: Set default values for GNUSTEP_SYSTEM_TOOLS, GNUSTEP_SYSTEM_APPS, GNUSTEP_SYSTEM_LIBRARY, etc. variables and export them. Create filesystem.make, filesystem.sh and filesystem.csh. * configure: Regenerated. * filesystem.make: Moved into filesystem.make.in. * filesystem.make.in: All variables: get them from configure defaults if not set so that GNUSTEP_*_ROOT are never needed or referenced. Made GNUSTEP_*_RESOURCES and GNUSTEP_*_JAVA fixed subdirs of GNUSTEP_*_LIBRARY. For all directories in the user domain, prefix them with GNUSTEP_HOME if they seem relative. * filesystem.sh: Moved into filesystem.sh.in. * filesystem.sh.in: Same changes as filesystem.make.in. * filesystem.csh.in: New file * GNUmakefile.in (install): Install filesystem.csh (filesystem.make): Added rule to rebuild it. (filesystem.sh): Added rule to rebuild it. (filesystem.csh): Added rule to rebuild it. (distclean): Remove the filesystem.* files. (generated-files): Add filesystem.make, filesystem.sh, filesystem.csh. * GNUstep.sh.in: Do not unset or export GNUSTEP_*_RESOURCES and GNUSTEP_*_JAVA. * GNUstep.csh.in: Source filesystem.csh.in; at the end unset all variables set there. 2007-02-14 Nicola Pero , * GNUstep.csh.in: Fixed bug in setting GUILE_LOAD_PATH. 2007-02-13 Adam Fedor , Nicola Pero , * configure.ac: Check for gmake and gnumake, and use it instead of make if it is found. * configure: Regenerated. 2007-02-13 Adam Fedor * configure.ac: Disable SHARED_SOLARIS on solaris2.[67]. Use redirect to /dev/null rather than grep -q (due to non-Posix grep on many OSs). * Documentation/machines.texi: Update * Documentation/README.Darwin: Update. 2007-02-13 Nicola Pero * filesystem.sh: New file. * GNUmakefile.in: Install the new file. * GNUstep.sh.in: Source the new file. At the end, export all of the new filesystem variables if GNUSTEP_SH_EXPORT_ALL_VARIABLES is set, or unset them all in the normal situation. * gnustep-config.in: Use GNUSTEP_SH_EXPORT_ALL_VARIABLES to access the filesystem variables too. 2007-02-13 Nicola Pero * filesystem.make: Fixed standard subdirectories of Library to reduce the amount of config options to only the ones that will actually be used. 2007-02-13 Nicola Pero * common.make: Rewritten code that builds the -I, -L and -F flags to use the new filesystem variables. 2007-02-13 Nicola Pero , Matt Rice , * GNUmakefile.in (MAKE_FILES): Added filesystem.make. * filesystem.make: New file. * common.make: Include the new file. Rewritten code that determines the installation directories. Use the information from filesystem.make when required. 2007-02-13 Nicola Pero * Master/rules.make (internal-check-install-permissions): Only use this rule if GNUSTEP_INSTALLATION_DIR is set. * Instance/gswbundle.make (GSWBUNDLE_INSTALL_DIR): Set it by default to GNUSTEP_LIBRARIES, which is the same as GNUSTEP_INSTALLATION_DIR/Library/Libraries in the traditional filesystem but will work with the new filesystem too. 2007-02-12 Nicola Pero * GNUmakefile.in (GNUSTEP_FLATTENED): Obsolete variable removed. 2007-02-12 Nicola Pero * Version: Set to 1.14.0 which really means 'unstable version after 1.13.0 but before the next stable version'. 2007-02-12 Nicola Pero * gnustep-make-help: New file. * GNUmakefile.in (MAKE_FILES): Added gnustep-make-help. * rules.make (print-gnustep-make-help): New target that prints gnustep-make-help. * common.make: Mention the new target in the version message. 2007-02-12 Nicola Pero * configure.ac: Added check for $(info ...) function in GNU make. * configure: Regenerated. * config.make.in: Added MAKE_WITH_INFO_FUNCTION variable. * common.make: If we have the info function, use it to print the version number on the top-level invocation. 2007-02-12 Nicola Pero , Matt Rice This change in the API is needed for resource-set.make to work with the new filesystem layouts. * Instance/resource-set.make (xxx_INSTALL_DIR): New variable that should replace xxx_RESOURCE_FILES_INSTALL_DIR. Recognize the new variable; emit a warning if the old variable is used (but still use it). Install by default into GNUSTEP_RESOURCES/GNUSTEP_INSTANCE if nothing is set. 2007-02-12 Nicola Pero * gnustep-config.in: Fixed help message. 2007-02-12 Nicola Pero * common.make: Export GNUSTEP_MAKEFILES so that if it is computed by the user GNUmakefile, the computation is done only once at top-level. 2007-02-12 Nicola Pero * GNUmakefile.in (distclean): Remove gnustep-config. (generated-files): Added gnustep-config. (gnustep-config): New rule to rebuild it when changed. 2007-02-12 Nicola Pero * gnustep-config.sh.in: Removed. * gnustep-config.in: Added. * GNUmakefile.in: Install gnustep-config, not gnustep-config.sh. * configure.ac: Create gnustep-config, not gnustep-config.sh. * configure: Regenerated 2007-02-11 Nicola Pero * gnustep-config.sh.in (GNUSTEP_MAKEFILES): If we are asked for GNUSTEP_MAKEFILES, print it out and exit. 2007-02-11 Matt Rice * gnustep-config.sh.in: exit early for --help. 2007-02-11 Nicola Pero , Matt Rice * gnustep-config.sh.in: New file. * configure.ac: Added gnustep-config.sh * configure: Regenerated. * GNUmakefile.in: Install gnustep-config.sh in system Tools, which is guaranteed to be in PATH. 2007-01-25 Nicola Pero * Documentation/GNUmakefile: Fixed 'regenerate' target when you invoke it without gnustep-make being installed. * Documentation/make.texi: Updated to talk about GNUSTEP_INSTALLATION_DOMAIN, not GNUSTEP_INSTALLATION_DIR. 2007-01-23 Matt Rice * rules.make (ALL_CCFLAGS): Fix typo. 2007-01-22 Nicola Pero Fixed precompiled headers when -I. is early in the compile command line. * rules.make (ALL_OBJCFLAGS): Added OBJC_PRECOMPILED_HEADERS_INCLUDE_FLAGS at the beginning. (ALL_CFLAGS, ALLCCFLAGS, ALL_OBJCCFLAGS): Similar changes. * Instance/rules.make: Add the -I commands to find the precompiled header to the new C_PRECOMPILED_HEADERS_INCLUDE_FLAGS, OBJC_PRECOMPILED_HEADERS_INCLUDE_FLAGS, CC_PRECOMPILED_HEADERS_INCLUDE_FLAGS, OBJCC_PRECOMPILED_HEADERS_INCLUDE_FLAGS variables instead of ADDITIONAL_INCLUDE_DIRS. 2007-01-16 Nicola Pero * configure.ac (GS_WITH_PRECOMPILED_HEADERS): Set to 'no' when precompiled headers are not available. * rules.make: Compare GS_WITH_PRECOMPILED_HEADERS explicitly to 'yes'. * Instance/rules.make: Same change. * configure: Regenerated. 2007-01-16 Nicola Pero * config-precomp-test: New directory * config-precomp-test/gs_precomp_test.h, config-precomp-test/gs_precomp_test.m, config-precomp-test/run-test.sh: New test for ObjC precompiled headers to properly detect if they work or not. * configure.ac: Run the new test to determine if ObjC precompiled headers work or not. * configure: Regenerated. * GNUmakefile.in (distclean): Remove config-precomp-test.log; also remove multiple files in a go for speed. 2007-01-16 Nicola Pero * rules.make ($(GNUSTEP_OBJ_DIR)/PrecompiledHeaders/C/): do not depend on GNUSTEP_OBJ_DIR; build that dir automatically if needed. Similar for the other similar rules. * Instance/rules.make (.PHONY): Added internal-precompile-headers. 2007-01-16 Nicola Pero Implemented precompiled headers support. To use them to speed up the compilation of your project, create a main header that you include at the top of each file in your project, then add it to xxx_OBJC_PRECOMPILED_HEADERS and it will automatically be precompiled on platforms that support it. * messages.make (ECHO_PRECOMPILING): New message. * rules.make: New rules to build precompiled headers directory and files. * Instance/rules.make (internal-$(GNUSTEP_TYPE)-all): depend on internal-precompile-headers (xxx_C_PRECOMPILED_HEADERS, xxx_OBJC_PRECOMPILED_HEADERS, xxx_CC_PRECOMPILED_HEADERS, xxx_OBJCC_PRECOMPILED_HEADERS): New variables. (internal-precompile-headers): New rule set to depend on precompiling the precompiled headers, if any. Also, add the precompiled headers directory to ADDITIONAL_INCLUDE_DIRS if the compiler supports precompiled headers and they are being used. 2007-01-16 Nicola Pero * configure.ac: Separate out checking gcc version and the test for the Solaris -shared link flag; print out separate messages for the results of these tests to help debugging. Determine the minor version as well as the major version of gcc. Added new test for precompiled headers. * config.make.in: Added GCC_WITH_PRECOMPILED_HEADERS variable. * configure: Regenerated. 2007-01-14 Richard Frith-Macdonald * Master/source-distribution.make: Add svn-tag-stable to make tag for stable release in standard format. 2007-01-09 Matt Rice * GNUstep.csh.in: Fixed typo in GUILE_LOAD_PATH. 2007-01-09 Matt Rice * GNUstep.sh.in: Rename variable/fix paste error. 2007-01-09 Nicola Pero * GNUstep.sh.in: Update some internal names to make equivalent code in different sections more similar. Added a ':' at the end of INFOPATH. * GNUstep.csh.in: Similar changes. * GNUstep-reset.sh: Swapped order of resets of some variables to conform to comments. 2007-01-09 Matt Rice * GNUstep.sh.in: Set INFOPATH so that info files created and installed by gnustep-make in xxx/Library/info can be found by info documentation readers. * GNUstep.csh.in: Same change. * GNUstep-reset.sh: Reset INFOPATH. 2007-01-07 Matt Rice , Nicola Pero * Instance/ctool.make (internal-ctool-all_): Depend on OBJ_FILES_TO_LINK, and link OBJ_FILES_TO_LINK. This makes sure that C++ files, Windres files, and any other object files normally supported can be used with ctools. 2006-12-28 Richard Frith-Macdonald * Master/source-distribution.make: add 'svn-bugfix' target to make a bugfix release. 2006-12-05 Richard Frith-Macdonald * GNUmakefile.in: Add target for snapshot. 2006-11-16 Richard Frith-Macdonald * target.make: fix typo (extra bracket in conditional). 2006-11-15 Nicola Pero * Documentation/install.texi: Updated by removing section about -Wno-import. * INSTALL: Regenerated. 2006-11-15 Nicola Pero * common.make (INSTALL_ROOT_DIR): If DESTDIR is set, then set INSTALL_ROOT_DIR from it. * spec-rules.template: Use DESTDIR instead of INSTALL_ROOT_DIR. * spec-debug-rules.template: Same change. 2006-10-29 Richard Frith-Macdonald * common.make: Disable warnings about #import as it is now recommended rather then deprecated! * INSTALL: Remove obsolete commments about #import 2006-10-25 Richard Frith-Macdonald * configure.ac: Added test for Solaris -shared flag. * configure: Regenerated * config.make.in: Added SOLARIS_SHARED variable. * target.make: For Solaris replace -G with -shared in SHARED_LIB_LINK_CMD to fix bug on 64bit systems where library would contain 32bit dynamic library stubs for 'main' and other functions, causing runtime failure of all code linked with it. 2006-10-11 Nicola Pero * Documentation/machines.texi (Debian/PowerPC): Fixed prev node link. 2006-10-11 Nicola Pero * GNUmakefile.in (install): Fixed installation of debugapp when building in a different directory. 2006-10-11 Nicola Pero * Documentation/GNUmakefile (GNUSTEP_INSTALLATION_DOMAIN): Use GNUSTEP_INSTALLATION_DOMAIN, not GNUSTEP_INSTALLATION_DIR. 2006-10-10 Nicola Pero To install software in a certain GNUstep domain, the recommended way is now as in 'GNUSTEP_INSTALLATION_DOMAIN = SYSTEM'. * common.make: Implemented new GNUSTEP_INSTALLATION_DOMAIN variable. * Master/rules.make (internal-check-install-permissions): Removed help message that was suggesting to use GNUSTEP_INSTALLATION_DIR. 2006-10-07 Nicola Pero * common.make: Add DESTDIR only on the very topmost invocation. 2006-10-06 Richard Frith-Macdonald * Documentation/machines.texi: Mention that Debian/em64t works and is supported, and that Solaris 9 also works. 2006-10-06 Nicola Pero Implemented DESTDIR as per GNU Coding Standards. * common.make (GNUSTEP_INSTALLATION_DIR): if a DESTDIR is defined, prefix GNUSTEP_INSTALLATION_DIR with it. 2006-10-03 Nicola Pero Removed support for library_paths.openapp. It was not available in any common setups, so almost nobody could use it anyway. * Instance/application.make ($(APP_FILE)): Do not create library_paths.openapp. * Instance/gswapp.make (GSWAPP_FILE): Same change. * executable.template.in: Removed library_paths.openapp code. * ld_lib_path.sh: Removed additional_library_paths and additional_framework_paths code. * ld_lib_path.csh: Same changes. * transform_paths.sh: File removed. * GNUmakefile.in (install): Do not install transform_paths.sh (uninstall): Do not uninstall it. 2006-10-03 Nicola Pero Merged debugapp and openapp. Now there is a single script, openapp, with a --debug option to use gdb. * openapp.in: Merged all the code from debugapp.in into it. Added --debug, --library-combo=..., --gdb=... options. Extended --find option. Rewritten large parts of it. * debugapp.in: File removed. * debugapp: New backwards-compatibility file so you can still run 'debugapp Gorm'; it wraps openapp, so 'debugapp Gorm' simply does 'openapp --debug Gorm'. * configure.ac: Do not create debugapp. * configure: Regenerated. * GNUmakefile.in (distclean): Do not remove debugapp on distclean. (generated-files): Removed debugapp. (debugapp): Rule removed. 2006-10-02 Nicola Pero * target.make (SHARED_LIB_LINK_CMD, all targets): Use an '&&' between the link command and the commands to create the symlinks so that an error during link will abort compilation rather than fail silently. 2006-10-02 Nicola Pero All checks for GNUSTEP_FLATTENED should be updated to check the new variable GNUSTEP_IS_FLATTENED instead, and to compare it explicitly to 'yes' and 'no', and assume that '' means 'yes'. * configure.ac: New variable GNUSTEP_IS_FLATTENED that is 'yes' when flattened, and 'no' when not. * configure: Regenerated. * config-noarch.make.in: Added GNUSTEP_IS_FLATTENED. * GNUmakefile.in: Same change. * GNUstep-reset.sh: Same change. * GNUstep.csh.in: Same change. * GNUstep.sh.in: Same change. * config.site: Updated checks for GNUSTEP_FLATTENED to check GNUSTEP_IS_FLATTENED instead. * common.make: Same change. * debugapp.in: Same change. * GNUmakefile.in: Same change. * GNUstep.csh.in: Same change. * GNUstep.sh.in: Same change. * ld_lib_path.csh: Same change. * ld_lib_path.sh: Same change. * openapp.in: Same change. * opentool.in: Same change. * rules.make: Same change. * Master/application.make: Same change. * Master/gswapp.make: Same change. * Master/palette.make: Same change. * Master/service.make: Same change. * Master/test-application.make: Same change. * Instance/application.make: Same change. 2006-10-01 Adam Fedor * config.guess, config.sub: Update to latest version. 2006-09-28 Nicola Pero * move_obsolete_paths.sh: File removed (this time for real!). 2006-09-28 Nicola Pero 'make install special_prefix=xxx' should be replaced by 'make install DESTDIR=xxx'. * GNUmakefile.in (DESTDIR): New variable that replaces special_prefix and complies with the GNU Coding Standards. (special_prefix): If a special_prefix is specified, use it but emit a warning that it is now deprecated. * gnustep-make.spec.in: Updated to use DESTDIR instead of special_prefix. 2006-09-25 Nicola Pero * Master/source-distribution.make: Use TAR everywhere instead of hardcoded tar (Patch by BALATON Zoltan ). 2006-09-20 Nicola Pero By default compile everything with debug=yes. To get the traditional behaviour, please use 'make debug=no'. * common.make (debug): Turn on debug by default. 2006-09-19 Nicola Pero * Master/subproject.make (internal-distclean): Do nothing. (internal-clean): Remove 'Resources' directory on 'clean' too. * Master/tool.make (internal-distclean): Do nothing. (internal-clean): Removed 'Resources' directory on 'clean'. * Instance/subproject.make (GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH): Added GNUSTEP_BUILD_DIR. * Instance/tool.make (GNUSTEP_SHARED_BUNDLE_RESOURCE_PATH): Added GNUSTEP_BUILD_DIR. * Master/subproject.make (.PHONY): Removed build-headers. 2006-09-19 Nicola Pero * Instance/framework.make (UPDATE_CURRENT_SYMLINK_RULE): Removed phone update-symlink-rule target that was being executed at every make, and replaced with a rule to build the symlink which is not executed if the symlink is there already. (.PHONY): Removed update-symlink-rule. 2006-09-19 Nicola Pero * Instance/framework.make: Removed warnings for CURRENT_VERSION_NAME and xxx_TOOLS that were removed 4 years ago. 2006-09-19 Nicola Pero * Master/rules.make (INTERNAL_$${type}_NAME, TARGET): Variables removed; they were deprecated on Jan 2002. 2006-09-19 Nicola Pero * rules.make (GNUSTEP_CONFIG_FILE, GNUSTEP_USER_CONFIG_FILE): Added empty rules to prevent make wasting time trying to rebuild config files using implicit rules. * Master/rules.make (.PHONY): Added build-headers, before-build-headers, after-build-headers. * Instance/framework.make (.PHONY): Added declaration of phony targets. 2006-09-19 Nicola Pero * rules.make (config.make): Fixed syntax error in conditional that was causing the rule for config.make to be never read. Implemented an actual rule for it that prints an error and exits if the file can't be found. 2006-09-18 Nicola Pero Separated out global config from platform-specific config. * GNUmakefile.in: Include config-noarch.make before config.make. (install): Install config-noarch.make. (uninstall): Uninstall config-noarch.make. (distclean): Remove config-noarch.make. (generated-files): Added config-noarch.make. (config.make): Do not depend on Version. (config-noarch.make): New rule to build config-noarch.make from config-noarch.make.in. * config-noarch.make.in: New file created from the bits of config.make.in that are global and don't depend on the platform. * config.make.in: Removed global bits. * configure.ac (AC_CONFIG_FILES): Added config-noarch.make. * configure: Regenerated. * common.make: Include config-noarch.make before names.make. * common.make: Fixed inclusion of names.make that should follow the definition of CONFIG_GUESS_SCRIPT etc. * common.make: Include library-combo.make before config.make else the library-combo directory can't be found. * common.make (GNUSTEP_MAKEFILES): Do not waste time trying to set if not set. GNUSTEP_MAKEFILES must be set, else nothing would work. 2006-09-13 Nicola Pero * Master/rpm.make (before-install) If filelist=yes, depend on GNUSTEP_OBJ_DIR. * Master/source-distribution.make (dist): Always use our tar-exclude-list to avoid including CVS and .svn files in .tar.gz packages. 2006-09-13 Nicola Pero * Master/rpm.make: Put the generated files (file-list, spec files) into GNUSTEP_OBJ_DIR. Use the same name for both debug and non-debug spec files. Depend on GNUSTEP_OBJ_DIR being created before the files. (internal-distclean): Rule removed. The generated files are now in GNUSTEP_OBJ_DIR and so are automatically deleted on make clean. * Master/rpm.make (specfile): Set gs_file_list variable in the spec file. Renamed FILE_LIST to GNUSTEP_FILE_LIST to protect it from collisions with user makefiles. * spec-rules.template: Replaced hardcoded file-list name with gs_file_list variable. * spec-debug-rules.template: Same change. 2006-09-13 Nicola Pero * Master/clibrary.make (internal-clean): Do nothing if there are no PSWRAP_C_FILES or PSWRAP_H_FILES to remove. * Master/library.make (internal-clean): Same change. * Master/subproject.make (internal-clean): Same change. * Master/test-library.make (internal-clean): Same change. * Master/rules.make (internal-distclean): Do not remove 'core'. (PACKAGE_NAME): Use normal assignement. 2006-09-13 Nicola Pero * setlocaltz.sh: Obsolete file removed. 2006-09-13 Nicola Pero * Master/application.make (internal-clean): Do not remove obj (already done in Master/rules.make). * Master/bundle.make (internal-clean): Same change. * Master/clibrary.make (internal-clean): Same change. * Master/ctool.make (internal-clean): Same change. * Master/gswapp.make (internal-clean): Same change. * Master/gswbundle.make (internal-clean): Same change. * Master/library.make (internal-clean): Same change. * Master/objc.make (internal-clean): Same change. * Master/palette.make (internal-clean): Same change. * Master/service.make (internal-clean): Same change. * Master/subproject.make (internal-clean): Same change. * Master/test-application.make (internal-clean): Same change. * Master/test-library.make (internal-clean): Same change. * Master/test-tool.make (internal-clean): Same change. * Master/tool.make (internal-clean): Same change. * Instance/framework.make (internal-framework-clean): Same change. 2006-09-13 Nicola Pero * Master/application.make (internal-distclean): Do not remove obj (already done by clean). Remove *.app only if not flattened, else do nothing because if we're flattened this is already done by clean. * Master/gswapp.make (internal-distclean): Do not remove obj and remove *.gswa only if non flattened, else do nothing. * Master/palette.make (internal-distclean): Do not remove obj and remove *.palette only if non flattened, else do nothing. * Master/service.make (internal-distclean): Do not remove obj and remove *.service only if non flattened, else do nothing. * Master/test-application.make (internal-distclean): Do not remove obj and remove *.app only if non flattened, else do nothing. * Master/bundle.make (internal-distclean): Do nothing. * Master/clibrary.make (internal-distclean): Do nothing. * Master/ctool.make (internal-distclean): Do nothing. * Master/gswbundle.make (internal-distclean): Do nothing. * Master/library.make (internal-distclean): Do nothing. * Master/objc.make (internal-distclean): Do nothing. * Master/palette.make (internal-distclean): Do nothing. * Master/subproject.make (internal-distclean): Do nothing. * Master/test-library.make (internal-distclean): Do nothing. * Master/test-tool.make (internal-distclean): Do nothing. * Master/tool.make (internal-distclean): Do nothing (still remove Resources if we have them though). * Instance/framework.make (internal-framework-distclean): Do nothing. 2006-09-13 Nicola Pero * Master/source-distribution.make: Use ECHO_NOTHING and END_ECHO macros so that 'make messages=yes dist' and similar commands work properly. 2006-09-13 Nicola Pero * Master/rpm.make: Always build a file list called 'file-list' Removed separate 'standalone=yes' case when building debug packages. Now they are always standalone. * spec-debug-rules.template: Removed code that built both debug and non-debug versions and computed differences in installed files. Simply build with debug=yes. * spec-debug-alone-rules.template: File removed. * GNUmakefile.in (MAKE_FILES): Removed spec-debug-alone-rules-template. * Master/rpm.make (internal-distclean): Added ECHO_NOTHING and END_ECHO macros so that 'make messages=yes rpm' works properly. * Master/rpm.make (specfile): If the xxx-debug.spec.in file is not found, try to use xxx.spec.in. 2006-09-12 Nicola Pero All applications now use the '.app' extension no matter how they are compiled. So, no more Gorm.debug and Gorm.profile; it will always be Gorm.app. * common.make (APP_EXTENSION): Always use 'app' as the app extension. * Instance/gswapp.make (GSWAPP_EXTENSION): Always use 'gswa' as the app extension. * Master/gswapp.make (GSWAPP_EXTENSION): Same change. * Master/application.make (internal-distclean): Do not delete *.profile and *.debug. * Master/gswapp.make (internal-distclean): Same change. * Master/test-application.make (internal-distclean): Same change. * openapp.in: Do not search for xxx.debug and xxx.profile; only search for xxx.app. * openapp.in: If we find the application in '.', but we don't run it because '.' is not in the PATH, print an explanation/warning and suggest the user uses 'openapp ./xxx' if they really want to run it. 2006-09-08 Nicola Pero Removed the code to automatically move from the very very old obsolete filesystem structure to the new one. * configure.ac (--disable-move-obsolete): Removed option. * configure: Regenerated. * GNUmakefile.in (move_obsolete): Target removed. (install): Do not depend on @GNUSTEP_MOVE_OBSOLETE@. * move_obsolete_paths.sh: File removed. * GNUmakefile.in (install): Depend directly on generated-files so we don't print the placeholder message used by 'all'. 2006-09-08 Nicola Pero Object files are now all placed into ./obj rather than in separate directories (./shared_obj, ./shared_debug_obj, ./static_profile_obj, etc.). * common.make (OBJ_DIR_PREFIX): Variable removed. (GNUSTEP_OBJ_PREFIX): Variable removed. (GNUSTEP_OBJ_DIR_NAME): Hardcode 'obj' as the prefix of the directory name. * rules.make ($(GNUSTEP_OBJ_DIR)): Do not create the symlink from ./shared_obj to ./obj. Just create GNUSTEP_OBJ_DIR. * Master/application.make (internal-distclean): Only remove './obj', not the various './shared_obj', etc. * Master/bundle.make (internal-distclean): Same change. * Master/clibrary.make (internal-distclean): Same change. * Master/ctool.make (internal-distclean): Same change. * Master/gswapp.make (internal-distclean): Same change. * Master/gswbundle.make (internal-distclean): Same change. * Master/library.make (internal-distclean): Same change. * Master/objc.make (internal-distclean): Same change. * Master/palette.make (internal-distclean): Same change. * Master/service.make (internal-distclean): Same change. * Master/subproject.make (internal-distclean): Same change. * Master/test-application.make (internal-distclean): Same change. * Master/test-library.make (internal-distclean): Same change. * Master/test-tool.make (internal-distclean): Same change. * Master/tool.make (internal-distclean): Same change. * Instance/framework.make (internal-framework-distclean): Same change. 2006-09-08 Nicola Pero * Instance/library.make: Removed all usages of LIBRARY_NAME_SUFFIX, no longer defined. 2006-09-08 Nicola Pero * common.make: Removed '_s' library name suffix for static libraries. All libraries have the same name now! (WHICH_LIB_SCRIPT): Variable removed. * Instance/application.make (ALL_GUI_LIBS): Do not filter the libraries using which_lib. * Instance/bundle.make (ALL_BUNDLE_LIBS): Same change. * Instance/ctool.make (ALL_TOOL_LIBS): Same change. * Instance/framework.make (INTERNAL_LIBRARIES_DEPEND_UPON): Same change. * Instance/gswapp.make (ALL_GSW_LIBS): Same change. * Instance/gswbundle.make (GSWBUNDLE_INSTALL_DIR): Same change. * Instance/library.make (INTERNAL_LIBRARIES_DEPEND_UPON): Same change. * Instance/objc.make (ALL_OBJC_LIBS): Same change. * Instance/palette.make (ALL_PALETTE_LIBS): Same change. * Instance/service.make (ALL_SERVICE_LIBS): Same change. * Instance/tool.make (ALL_TOOL_LIBS): Same change. * Instance/palette.make: Removed duplicated (and commented out) code for using all libs on some systems. * GNUmakefile.in (all): Do not build which_lib. (which_lib$(EXEEXT)): Rule removed. (install): Do not install which_lib. (uninstall): Do not uninstall which_lib. (clean): Do not clean which_lib. * configure.ac: Removed all the 'Miscellaneous headers' config, which was only used when building which_lib.c (AC_CONFIG_HEADER): Removed. * configure: Regenerated. * config.h.in: Removed. * GNUmakefile.in (generated-files): Removed config.h (config.h): Removed rule. (all): Print a message so people are not confused when 'all' does nothing. * which_lib.c: File removed. 2006-09-07 Nicola Pero * common.make: Removed 'p' library name suffix for profile libraries. The only remaining library name suffix is '_s' for static libraries. * which_lib.c: Don't search for profile libraries, also removed some other old code searching for debug ones. 2006-08-28 Adam Fedor * Version 1.13.0 2006-08-24 Adam Fedor * common.make: Remove 'd' suffix for debug libraries. * which_lib.c: Don't search for debug libraries in case there are old ones still around. * Documentation/news.texi: Update for new release. 2006-08-21 Adam Fedor * target.make: Add dragonfly OS. * Documentation/machine.texi: Updates. 2006-07-29 10:51-EDT Gregory John Casamento * configure: Changed "cp -p" to "cp -rp" to correct breakage when the file being linked is a directory. 2006-07-06 Richard Frith-Macdonald * configure.ac: Prevent bad characters in paths * configure: regenerate * GNUstep.csh.in: remove use of obsolete substitutions * GNUstep.sh.in: ditto * GNUstep.conf.in: ditto The use of backslash or space characters in a path/filename can confuse make and shell scripts, so we check for them and prevent them from being specified at configure time and/or built in to scripts. Hopefully this will prevent much confusion on windows. 2006-07-05 Richard Frith-Macdonald * GNUmakefile.in: install config.make in library combo specific directory so that non-flattened builds can pick up the correct config info for the library combo being used. * common.make: pick up config.make from new location * rules.make: know about new location for config.make 2006-06-14 Richard Frith-Macdonald * common.make: determine host/target info before trying to load host/target specific configuration. 2006-05-01 Richard Frith-Macdonald * configure.ac: Change --with... options specifying paths so that if someone oddly uses --without... we treat it as if they had specified nothing. 2006-04-26 Adam Fedor * Documentation/gnustep-howto.texi: Fix node link 2006-04-26 Saso Kiselkov * common.make: Add option to turn on native exceptions. 2006-04-25 Adam Fedor * Documentation/gnustep-howto.texi: Update windowmaker address 2006-04-07 Adam Fedor * Documentation/README.MinGW: Correct typo in xml instructions. 2006-04-06 Adam Fedor * config.make.in: Set GNUSTEP_HOME to $(HOME). Fix if statements with filter in them. Fixes bug #16010. 2006-03-27 Adam Fedor * target.make (openbsd): Add additional link flags for bundle loading. Patch #4989 from Andrew Sveikauskas. 2006-03-27 Adam Fedor * Master/source-distribution.make (svn-tag): Add comment line (svn-dist): Simplify checkout. * Master/framework.make: Add build-headers rules * GNUmakefile: Add special_prefix to GNUSTEP_MAKEFILES 2006-03-17 Richard Frith-Macdonald * Documentation/README.MinGW: Attempt to clarify versions to be used. 2006-03-13 Adam Fedor * Version 1.12.0 2006-03-09 Adam Fedor * target.make (openbsd): Add specific EXTACT_CLASS_NAMES_COMMAND. Patch #4957 from Andrew Sveikauskas. 2006-03-07 Jeremy Bettis * Instance/framework.make: Only copy headers if they changed. Delete framework.dll if the compile fails. * Instance/subproject.make: Only copy headers if they changed * Master/framework.make: make $(FRAMEWORK_NAME:=.all.framework.variables) depend on $(FRAMEWORK_NAME:=.build-headers.framework.variables), sometimes the copying of header files would happen too late. * target.make: Added -Wl,--enable-auto-image-base to link command for shared libs & bundles on mingw32. 2006-02-23 Adam Fedor * Master/source-distribution.make: Add svn tag/dist rules * Documentation/userfaq.texi: updates. 2006-01-11 Richard Frith-Macdonald * Documentation/README.MinGW: Update with information on libxml2 2006-01-05 Adam Fedor * Instance/bundle.make: Always link agains all libs when using Apple's CC. 2006-01-01 Richard Frith-Macdonald * openapp.in: Remove IFS setting and search again ... it prevented windows paths from working (which was why it was removed in the first place). Also removed insertion of '.' as a path to search ... since this is generally considered a security flaw. Removed some code to search in odd subdirectories. Added code to search the directories specified in PATH as well as the standard locations. Does this need a different path separator on mingw? Can't remember and I don't currently have a windows system to test on. 2005-12-30 Adam Fedor * openapp.in: Re-add IFS setting and search in current dir (Fixes Bug #15289). 2005-12-21 Adam Fedor * Version 1.11.2 2005-12-20 Adam Fedor * configure.ac: Check for objc-gnu in the GNUstep libraries dir. * Instance/bundle.make: Always link againt all libs on darwin. 2005-12-20 Adam Fedor * configure.ac: Don't strip -g from CFLAGS. Someone might want it without using debug=yes. 2005-12-06 Richard Frith-Macdonald * configure.ac: On mingw32, if we don't get the config file location from an earlier installatioin or a command line option, use /c/GNUstep/GNUstep.conf-dev ... assuming a development version rather than a version for distribution. * target.m: add -SystemStubs to bundle libraries on MacOS-X tiger ... as linking of stdio functions seems to fail otherwise. 2005-12-05 Richard Frith-Macdonald * Documentation/filesystem.texi: Initial attempt at adding documentation on how the filesystem layout is controlled by the GNUstep config file. 2005-12-05 Nicola Pero * configure.ac: Display a message with the GNUSTEP_MAKEFILES that is used. In psychological preparation for when it will actually be configurable. ;-) * configure: Regenerated. 2005-12-05 Nicola Pero * Instance/library.make (internal-library-uninstall_): Fixed uninstallation of dll on windows. (Suggested by Frode ). 2005-12-02 Richard Frith-Macdonald * opentool.in: * openapp.in: * config.make.in: Honor the GNUSTEP_CONFIG_FILE environment variable. 2005-11-28 Richard Frith-Macdonald * GNUstep.conf.in: Use new variables for handling backslashes in paths. * GNUstep.csh.in: ditto * GNUstep.sh.in: ditto * GNUmakefile.in: Quote paths when we use them .. to avoid backslashes being removed when they should be present in the path. * configure.ac: Always make GNUSTEP_MAKEFILES the Library/Makefiles subdirectory of the system root. Create new variables containing escaped backslashes to handle being given a backslash in a path. * configure: regenerate 2005-11-21 Richard Frith-Macdonald * opentool.in: * openapp.in: Changed to use new GNUstep.conf configuration file to obtain the directories to search. 2005-10-28 Richard Frith-Macdonald * configure.ac: Set up a sensible default location for GNUstep.conf on mingw32 systems (C:\GNUstep\GNUstep.conf). * configure: ditto 2005-10-27 Nicola Pero * configure.ac: Standardized the format of option help, and also written fairly complete help on each and every option. * configure: Regenerated. 2005-10-26 Nicola Pero * common.make: Removed checks for GNUSTEP_*_ROOT variables top-level, they are now automatically and always set by config.make, no need to check for them here in the new system. 2005-10-26 Nicola Pero * Master/rules.make: Rewritten code that determines if this the top-level make invocation (in order to have the dependencies install: check-install-permissions all, and distclean: clean top-level), so that it also works when gnustep-make is invoked from within a makefile itself (this fixes 'make distclean' in gnustep-make's own Documentation/GNUmakefile). * common.make: Updated similar checks. 2005-10-26 Nicola Pero * Documentation/GNUmakefile: Updated commands to create temporary gnustep-make installation. Also, do not source GNUstep.sh but rely just on passing GNUSTEP_MAKEFILES on the make command line. 2005-10-26 Nicola Pero * GNUmakefile.in (install): Fixed installing GNUstep.conf when the build directory is different from the source directory. 2005-10-23 Nicola Pero * configure.ac: Fixed error in the documentation of --with-user-config-file option. * configure: Regenerated. 2005-10-23 Nicola Pero * config.make.in: Removed code to compute GNUSTEP_HOST, GNUSTEP_HOST_CPU, etc, when in GNUSTEP_MULTI_PLATFORM mode -- this is already done by names.make later. 2005-10-23 Nicola Pero This change is key to no longer having to source GNUstep.sh when compiling stuff using gnustep-make. Please understand this is all very experimental so don't upgrade yet if you need stability. * config.make.in (GNUSTEP_CONFIG_FILE): Read configuration files directly and get all required information from there; only GNUSTEP_MAKEFILES is assumed to be set. * common.make: Include config.make first because until we include that one, we can no longer assume anything. 2005-10-23 Nicola Pero * which_lib.c (search_for_lib_with_suffix_and_ext): Enhanced changes to make the code simpler and easier to understand and avoid duplicate checks for static libs. Needs testing. 2005-10-23 Richard Frith-Macdonald * which_lib.c: Tidied a little on lines suggested by David Ayers * configure.ac: Check for ctype.h * configure: regenerate * config.h.in: regenerate 2005-10-23 Jeremy Bettis * configure.ac: * rules.make: * target.make: Use install -p so that doing a make install doesn't change the timestamp on all the headers and cause everything to need rebuilt. Don't create the obj dir (symlink) on mingw. Add -Wl,--enable-auto-import to link commands to make the compiler be quiet. * which_lib.c: Fixes to support other library types on mingw. Patches applied and edited to conform to GNUstep coding standard. 2005-10-20 Adam Fedor * config.make.in (GNUSTEP_CONFIG_FILE): Correct capitaliztion of substitution variable. 2005-10-19 Nicola Pero * config.guess: Updated to latest version. * config.sub: Idem. 2005-10-18 Nicola Pero * configure.ac: Make sure that --prefix=xxx takes precedence over paths read from GNUstep.conf or inherited from the environment. * configure: Regenerated. 2005-10-17 Adam Fedor * target.make (netbsd): Remove static libs version of netbsd target and make (netbsdelf) work for all netbsd versions. * clean_os.sh: Don't clean netbsd targets. Fixes Bug #14635. 2005-10-14 Nicola Pero * GNUstep.sh.in: Export GNUSTEP_USER_ROOT after setting it (Bug reported by Fred Kiefer ). 2005-10-13 Nicola Pero * GNUstep.sh.in: Read system, local, network, user paths from configuration files and use the configuration files settings in preference to the hardcoded ones. * GNUstep.csh.in: Same changes, where we use sed to convert on the fly the sh syntax of config files to csh syntax, then we eval the result. * GNUmakefile.in: Do not compile, install and clean user_home. * user_home.c: Removed. * GNUstep-reset.sh (GNUSTEP_USER_CONFIG_FILE, GNUSTEP_USER_DIR, GNUSTEP_USER_DEFAULTS_DIR, GNUSTEP_CONFIG_FILE): Unset. 2005-10-13 Nicola Pero * GNUmakefile.in (GNUSTEP_CONFIG_FILE): Fixed replacing this variable. 2005-10-13 Nicola Pero * configure.ac: Added --with-user-config-file, --with-user-dir, --with-user-defaults-dir options. Remove --with-user-root option. Simplified implementation of --with-config-file option. Do not generate GNUsteprc. * configure: Regenerated. * GNUstep.conf.in (GNUSTEP_USER_CONFIG_FILE): New variable. (GNUSTEP_USER_DIR): New variable. (GNUSTEP_USER_DEFAULTS_DIR): New variable. * GNUsteprc.in: Removed. 2005-10-13 Nicola Pero Warning: --prefix=/usr/GNUstep/System no longer works. Please use --prefix=/usr/GNUstep or --with-system-root=/usr/GNUstep/System. * configure.ac: Simplified management of --prefix. Do not try setting default prefix from an existing GNUSTEP_SYSTEM_ROOT as that is read from the config file after the default prefix is set. Do not set $prefix variable that it not used anywhere. Fixed bug in setting GNUSTEP_SYSTEM_ROOT introduced in previous changes. * configure: Regenerated. 2005-10-12 Nicola Pero * .cvsignore: Ignore GNUstep.conf 2005-10-12 Nicola Pero * configure.ac: Use the GNUSTEP_CONFIG_FILE environment variable to choose the location of the config file, if no configure option is given. Automatically import the settings from an existing GNUstep config file if one exists, and use them for anything not specified. Added --disable-importing-config-file option to disable this behaviour. * configure: Regenerated. 2005-10-12 Nicola Pero * configure.ac: Added --with-system-root=xxx option. * configure: Regenerated. 2005-10-12 Nicola Pero Removed obsolete public variable GNUSTEP_ROOT. * configure.ac: Do not replace GNUSTEP_ROOT in generate files. * configure: Regenerated. * GNUstep.csh.in: Do not define GNUSTEP_ROOT. * GNUstep.sh.in: Do not define GNUSTEP_ROOT. 2005-10-12 Nicola Pero * configure.ac: Define GNUSTEP_SYSTEM_ROOT from prefix. Export and reference it instead of exporting and referencing 'prefix' to clarify what is happening. Reordered some configure stages to prepare it for further changes. * configure: Regenerated. * GNUmakefile.in: Use GNUSTEP_SYSTEM_ROOT instead of prefix. * GNUstep.csh.in: Same change. * GNUstep.sh.in: Same change. * GNUstep.conf.in: Same change. 2005-10-12 Nicola Pero * configure.ac (MAKEFILE_SUFFIX): Variable removed. (GNUSTEP_MAKEFILES): New variable (that is more standard and more suited to make it a configure option in the future). Replace it in generated files. * configure: Regenerated. * debugapp.in: Use everywhere GNUSTEP_MAKEFILES, not MAKEFILE_SUFFIX. * opentool.in: Same change. * GNUmakefile.in: Same change. * executable.template.in: Same change. * GNUstep.sh.in: Same change. * GNUstep.csh.in: Same change. * gnustep-make.spec.in: Removed MAKEFILE_SUFFIX, use Library/Makefiles directly. 2005-10-12 Nicola Pero * configure.ac: Removed obsolete --without-system-root option. * configure: Regenerated. 2005-10-12 Nicola Pero * configure.ac (root_prefix): Variable removed. Wasn't used or replaced anywhere. * configure: Regenerated. 2005-10-12 Nicola Pero * configure.ac: Use /usr/pkg/etc/GNUstep.conf instead of /usr/pkg/etc as GNUstep config file on NetBSD (Suggestion by David Ayers). * configure: Regenerated. 2005-10-12 Nicola Pero * configure.ac: Generate GNUstep.conf from GNUstep.conf.in so that GNUstep.conf gets properly setup with the paths that are configured into gnustep-make * GNUstep.conf.in: New file. * GNUstep.conf: Removed. * configure: Regenerated. * GNUmakefile.in (install): Install the GNUstep.conf file in the chosen location for the GNUstep config file. 2005-10-12 Nicola Pero * configure.ac: Added --with-config-file=xxx (code partially taken from gnustep-base) option. * config.make.ac: Added GNUSTEP_CONFIG_FILE variable holding the configured location of the config file for this installation. * configure: Regenerated. 2005-10-06 Tom MacSween * Fixes for cygwin. * Instance/rules.make: Add Windows resource files for cygwin * config.make.in: Cygwin does not have ln-s * rules.make: Add Windows resource rules for cygwin * target.make (cygwin): Fix shared link cmd. 2005-10-06 Nicola Pero * rules.make (ALL_OBJCCFLAGS, $(GNUSTEP_OBJ_DIR)/%${OEXT}): When compiling ObjC++ files, don't use the additional ObjC flags but only the internal/system ones, to make it easier/possible for end users to add different flags to ObjC and ObjC++ compilations. 2005-10-06 Nicola Pero Added support for ObjC++. You should list the ObjC++ .mm files in the xxx_OBJCC_FILES variable, and put extra ObjC++ flags in xxx_OBJCCFLAGS or ADDITIONAL_OBJCCFLAGS. * rules.make (.SUFFIXES): Added .mm for ObjC++. ($(GNUSTEP_OBJ_DIR)/%${OEXT}): Added rule to compile .mm files into .o files. (ALL_OBJCCFLAGS): New variable, set from ADDITIONAL_OBJCCFLAGS and AUXILIARY_OBJCCFLAGS. * Instance/rules.make (OBJCC_OBJS, OBJCC_OBJ_FILES): New variables set from xxx_OBJCC_FILES. (OBJ_FILES_TO_LINK): Added the new OBJCC_OBJ_FILES to the list of things to link. (ADDITIONAL_OBJCCFLAGS): New variable set from xxx_ADDITIONAL_OBJCCFLAGS. 2005-09-28 Adam Fedor * target.make (cygwin/SHARED_LIB_LINK_CMD): Correct lib file name (Fix from Tom MacSween). * Instance/framework.make: Add extension to NSExecutable. 2005-09-22 Adam Fedor * Add runtime flags everywhere for Mac OS/gcc dual runtimes * rules.make (CC_LDFLAGS): New variable for extra ld flags * target.make (darwin/SHARED_LD_PREFLAGS): Use it. * Instance/application.make (APP_FILE), Instance/gswapp.make (GSWAPP_FILE), Instance/objc.make, Instance/service.make (SERVICE_FILE), Instance/tool.make: Idem. 2005-09-18 Adam Fedor * Version 1.11.1 * target.make (darwin): Add RUNTIME_FLAGS to shared lib link with GNU compiler (i.e. -fgnu-runtime). * Documentation/README.MinGW: Update. 2005-09-17 Adam Fedor * Changes to fix compilation on cygwin. * target.make: Add generic BUNDLE_LINK_CMD. (cygwin): Modify it for cygwin. New SHARED_LIB_LINK_CMD and other support variables. * Instance/application.make: Remove OLD_DLL_SUPPORT * Instance/bundle.make: Idem. Use BUNDLE_LINK_CMD. * Instance/library.make: Remove OLD_DLL_SUPPORT * Instance/palette.make: Idem. * Instance/rules.make: Remove subproject def file rule. * Instance/subprojects.make: Remove def file rules. * Instance/framework.make: Add OBJ_EXT in Info file. (Based on patch and suggestions by Tom MacSween). 2005-08-08 Adam Fedor * Documentation/machines.texi: Update. 2005-08-08 Adam Fedor * Instance/application.make, Instance/gswapp.make, Instance/service.make, Instance/tool.make: Revert change from 2005-06-06. 2005-07-21 Adam Fedor * Version 1.11.0 2005-07-20 Jeremy Bettis , Nicola Pero * 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 , Nicola Pero 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 , Nicola Pero 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 * target.make (EXTRACT_CLASS_NAMES_COMMAND): New define for mingw32 where class name symbols start with '___' rather than '__'. 2005-07-12 Nicola Pero * 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 * Instance/framework.make (DUMMY_FRAMEWORK): Mangle framework names into valid ObjC class names. 2005-07-12 Nicola Pero * Documentation/README.MinGW: Updated. 2005-07-08 Adam Fedor * Documentation/news.texi: Update for next version. 2005-07-06 Nicola Pero * 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 * Documentation/GNUmakefile: Don't try to install README.NetBSD * Documentation/machines.texi: Updates. 2005-06-10 Adam Fedor * Instance/test-library.make: Remove dejagnu code and replace with rules to inherit from library.make 2005-06-10 Adam Fedor * 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 * 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 * Documentation/README.MinGW: Rewritten with updated instructions. 2005-05-23 David Lazaro Saz * Documentation/userfaq.texi: Updated style, trademark usage and some spelling mistakes. 2005-05-21 Adam Fedor * Update FSF Address. * Documentation/gnustep-howto.texi: Update required libs. 2005-04-19 Adam Fedor * 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 * 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 * GNUstep.conf (USER_GNUSTEP_RC): Fixed typo, it was spelt as .GNusteprc instead of .GNUsteprc. 2005-04-06 Nicola Pero * 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 * 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 ). 2005-03-22 Nicola Pero * 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 * 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 * 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 * Instance/bundle.make: Use make quotes, not shell quotes, for BUNDLE_OBJ_EXT when used in rules. 2005-03-21 Nicola Pero * 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 * 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 * 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 * configure.ac: Detect libobjc.dll.a as a custom ObjC library. * configure: Regenerated. 2005-03-01 Nicola Pero * 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 * 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 * Documentation/README.MinGW: Update with my latest experiences. 2005-01-31 Adam Fedor * Documentation/GNUmakefile: Install README.* docs * Documentation/machines.texi: Typo. 2005-01-14 Armando Di Cianno * 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 * 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 * 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 * 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 * Documentation/README.Darwin: Improved indentation and presentation. 2004-12-19 Richard Frith-Macdonald * 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 * Documentation/machines.texi (MacOSX): Update (info from Markus Hitter). * Documentation/README.Darwin: Clean up, simplify. Sun Nov 7 04:18:39 2004 Nicola Pero * tar-exclude-list: Use *.svn instead of .svn to have .svn dirs excluded. Sun Nov 7 04:07:50 2004 David Wetzel * 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 * 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 * Documentation/README.Cygwin: Updated * Documentation/README.Darwin: Minor update * Documentation/gnustep.init: Add navigation tags back 2004-10-18 Adam Fedor * 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 * Version 1.10.0 Tue Sep 7 12:48:31 2004 Nicola Pero * target.make (SHARED_LIB_LINK_CMD): Removed -prebind flag. 2004-09-06 Adam Fedor * configure.ac: Don't reset LIB_DIR. 2004-09-03 Adam Fedor * Add missing GNUsteprc.in Fri Sep 3 21:52:00 2004 Nicola Pero * configure.ac: Recognize --with-user-root option and store the configuration into the system GNUsteprc. * configure: Regenerated. * GNUsteprc.in: New file. * GNUmakefile.in (install): Install the system GNUsteprc into GNUSTEP_SYSTEM_ROOT. (uninstall): Uninstall the same file. (distclean): Remove GNUsteprc. * user_home.c: Do not segfault if the environment variable GNUSTEP_SYSTEM_ROOT is not set when the tool is executed. Thu Sep 02 17:01:11 2004 Nicola Pero * tar-exclude-list: New file currently containing CVS and .svn. * GNUmakefile.in: Install the new file. * Instance/Shared/bundle.make: Modified TAR commands to exclude files listed in the tar-exclude-list file. * Instance/framework.make: Same changes. * Instance/gswbundle.make: Same changes. * Instance/Documentation/autogsdoc.make: Same changes. * Instance/Documentation/javadoc.make: Same changes. * Instance/Documentation/latex.make: Same changes. Tue Aug 31 16:21:41 2004 Nicola Pero * Instance/library.make: If xxx_INTERFACE_VERSION or xxx_SOVERSION is set, but xxx_VERSION is not set, guess xxx_VERSION by taking xxx_INTERFACE_VERSION and appending .0. 2004-08-24 Quentin Mathe * ld_lib_path.sh: * ld_lib_path.csh: Added comments to explain why we set DYLD_FRAMEWORK_PATH on Darwin with any library combo and not just apple-apple-apple (it is a temporary solution). 2004-08-24 Adam Fedor * GNUstep.sh.in: Add newline at end of file (avoids bug in Solaris sed). Fri Aug 20 02:26:12 2004 Nicola Pero * Documentation/install.texi (Single-User): Removed mention of FORCE_USER_ROOT which is going to be dropped in next releases. Fri Aug 20 02:19:54 2004 Nicola Pero * GNUstep.sh.in: Do not run make_services. * GNUstep.csh.in: Do not run make_services. 2004-08-07 Adam Fedor * configure.ac: Remove warning about moving old directories into new directory structure (been there since 1.7.0). 2004-07-31 Adam Fedor * configure.ac: Add checks for specific Apple compiler flags. * target.make (darwin): Use them. Don't add no-cpp-precomp flag when compiling with Apple compiler. * Documentation/README.Darwin: Minor fixes (Patch from lars.sonchocky-helldorf@hamburg.de). * Master/source-distribution.make: Add CVS_TAG_NAME variable. 2004-07-11 Gregory John Casamento * Instance/palette.make: Updated the palette.make to create a plist instead of a string format file for the palette.table. It's necessary for the the palette.table to be able to pass in a set of classes to be imported. 2004-07-09 Adam Fedor * configure.ac: Improve compiler type test. * Documentation/gnustep.init: Fix template parsing rules. 2004-07-04 Adrian Robert * Instance/Documentation/texi.make: Added rules to use texi2pdf to generate PDF doc, and replace PS by PDF in the default generate/install/uninstall rules. Add .html to the list of files installed/uninstalled for HTML. 2004-06-23 01:47 Alexander Malmberg * common.make, config.make.in: Rename HAS_OBJC_EXCEPTIONS to USE_OBJC_EXCEPTIONS. * configure.ac: Same. Also add --enable-native-objc-exceptions argument and make the test for this feature stricter. * configure: Rebuild. Fri Jun 19 13:01:02 2004 Nicola Pero , Yves de Champlain * target.make (EXTRACT_CLASS_NAMES_COMMAND): New variable, with special value for darwin. * Instance/framework.make: Use the new variable when building the list of classes in the framework. Fri Jun 18 18:49:16 2004 Nicola Pero * configure.ac: Detect native exception handler support in the compiler, and set HAS_OBJC_EXCEPTIONS to yes if it's there. * configure: Regenerated. * config.make.in: New variable HAS_OBJC_EXCEPTIONS. * common.make: If HAS_OBJC_EXCEPTIONS is set, add -fobjc-exceptions to the ObjC flags. 2004-06-16 Adam Fedor * GNUmakefile (distclean): Remove duplicate GNUmakefile removal Don't remove Documentation/GNUmakefile * Documentation/machines.texi: Update * Instance/resource-set.make (internal-resource_set-uninstall_): Remove directories after removing files. Tue Jun 15 09:49:16 2004 Nicola Pero * GNUstep.sh.in: Detect if we're running under zsh, and if so, if the shwordsplit option is not set, set it for the duration of the script, then restore it to its original value at the end. This seems to fix setting the paths on zsh. 2004-06-14 Adam Fedor * GNUmakefile.in (uninstall): Remove all installed files (still need to do directories). 2004-06-09 Adam Fedor * Version 1.9.2 * Documentation/GNUmakefile: Include ../Version * Documentation/README.Cygwin: minor updates. * Documentation/gnustep-howto.texi, Documentation/machines.texi: Update 2004-06-05 Adam Fedor * ld_lib_path.[c]sh: Allow seting of GNUstep framework location on Mac OS X for all library combos (patch from Quentin Mathe ). * Instance/application.make ($(APP_INFO_PLIST_FILE)): Don't fail if plmerge does not work. * Documentation/README.Cygwin: Update * Documentation/machines.texi: Add Mac OS X section. * Documentation/news.texi: Update. Tue Jun 1 15:43:45 BST 2004 Riccardo Mottola * debugapp.in (appname): Fixed escaping of --args argument to work with an alien grep / os. 2004-05-17 Richard Frith-Macdonald * Instance/Documentation/autogsdoc.make: Simplify rules. Avoid dependency on existence of documentation subdirectory by relying on new autogsdoc feature (it now creates the subdirectory if necessary). This prevents possible recursion in make process. 2004-05-07 Richard Frith-Macdonald * Master/rules.make: Pass 'operation' to instances in 'GNUSTEP_OPERATION' * Instance/Documentation/autogsdoc.make: Use 'GNUSTEP_OPERATION' Thu Apr 29 15:54:17 2004 Nicola Pero * Instance/Documentation/autogsdoc.make (GNUSTEP_INSTANCE/dependencies): Only include this file when the operation is 'all'. (internal-doc-clean): Do not run autogsdoc here. (internal-doc-distclean): Rule removed. No longer needed, as the previous changes should do the real fix. Thu Apr 29 14:04:61 2004 Nicola Pero * Instance/Documentation/autogsdoc.make (internal-doc-distclean): Added rule, to make sure a 'make distclean' actually cleans. 2004-04-27 Adam Fedor * clean_os.sh: Report netbsd1.6* and netbsd2* as netbsdelf. Tue Apr 20 10:27:16 2004 Matt Rice * target.make: Use the GNU/Linux ELF code for GNU/Hurd too. 2004-04-12 Adam Fedor * common.make (GNUSTEP_FRAMEWORKS_FLAGS): Add missing close paren. * clean_os.sh: Add netbsd1.6Z * Documentation/GNUmakefile (GNUSTEP_TEXI2HTML_FLAGS): Add. * Documentation/gnustep.init: Some updates. * Documentation/announce.texi: Fix bug url. * Documentation/gnustep-howto.texi: Add more dependancy explanations. * Documentation/machines.texi: Add FreeBSD 5.x. 2004-04-02 David Ayers * GNUstep-reset.sh: Unset DYLD_LIBRARY_PATH and DYLD_FRAMEWORK_PATH. * common.make: Mark as makefile for emacs. Add support for setting GNUSTEP_FRAMEWORKS_DIRS and GNUSTEP_FRAMEWORKS_FLAGS for apple-apple-apple. * ld_lib_path.(c)sh: Set DYLD_FRAMEWORK_PATH for apple-apple-apple. * rules.make: Added support for GNUSTEP_FRAMEWORKS_FLAGS. Wed Mar 31 11:46:03 2004 Nicola Pero * Instance/bundle.make: Use ALL_LDFLAGS when running DLLWRAP on windows. * Instance/framework.make: Similar change. * Instance/palette.make: Similar change. Wed Mar 31 11:44:21 2004 Willem Rein Oudshoorn * Instance/library.make: Use ALL_LDFLAGS when running DLLWRAP on windows. 2004-03-31 Richard Frith-Macdonald * Instance/Documentation/autogsdoc.make: Make doc subdirectory if necessary. 2004-03-31 Richard Frith-Macdonald * jni.make: Add support for MacOS-X ... use the java 1.3.1 headers fromt the JavaVM framework. Tue Mar 30 02:44:21 2004 Nicola Pero * Documentation/filesystem.texi: Clarify the differences between the Local domain and System domain, clearly state that the default installation directory of software should be the Local domain, and mention that the Network domain is now optional and disabled by default. Other minor clarifications and tidyups. Tue Mar 30 02:01:59 2004 Nicola Pero * Documentation/make.texi (PACKAGE_NAME, PACKAGE_VERSION): Updated documentation. Mon Mar 29 12:58:34 2004 Nicola Pero * common.make (MAJOR_VERSION): Variable removed. (MINOR_VERSION): Variable removed. (SUBMINOR_VERSION): Variable removed. (VERSION): Variable removed. * Instance/framework.make (VERSION): Set VERSION from xxx_VERSION if available. Use 0.0.1 as default. * Instance/library.make (VERSION): Similar changes. Mon Mar 29 12:41:58 2004 Nicola Pero * Master/rules.make (PACKAGE_NAME): Set it here; set it to unnamed-package if not set. (PACKAGE_VERSION): Set it to 0.0.1 if not set. * Master/source-distribution.make (PACKAGE_NAME): Do not set it here. Mon Mar 29 12:19:38 2004 Nicola Pero * Version: Do not define VERSION. Mon Mar 29 12:19:38 2004 Matt Rice * Master/source-distribution.make: Strip whitespaces from PACKAGE_NAME. 2004-03-28 Richard Frith-Macdonald * Instance/Documentation/autogsdoc.make: Correct dependency information so that documentation is regenerated when needed. 2004-03-28 David Ayers * Documentation/make.texi: Document native-library.make. Capitalize acronyms. 2004-03-23 David Ayers * Documentation/make.texi: Spelling fixes. Thu Mar 18 12:57:40 2004 Nicola Pero * Documentation/GNUmakefile: New file using standard gnustep-make to build the documentation. If there is no available gnustep-make installation, it creates a local/temporary one, and uses it. * Documentation/GNUmakefile.in: Removed. * Documentation/makerules.make: Removed. * Documentation/makedoc.make: Removed. * configure.ac: Do not generate Documentation/GNUmakefile. * configure: Regenerated. 2004-03-17 Adam Fedor * Instance/palette.make: Link palatte to all libs on Windows and Apple/two-level-namespaces. Similar to bundles. (patch from Marc Ordinas i Llopis ). Mon Mar 15 13:57:50 2004 Nicola Pero * GNUmakefile.in: Fixed installation of strip_makefiles.sh when using a different build directory. Thu Mar 11 18:36:59 2004 Nicola Pero * Instance/gswapp.make: Rewritten to use the new Instance/Shared/bundle.make, so that for example subprojects with resources now should be possible. Thu Mar 11 02:26:20 2004 Nicola Pero * Instance/gswapp.make: Do not create library_paths.openapp on Apple. ($(GNUSTEP_INSTANCE).iconheader): Rule removed. 2004-03-09 Adam Fedor * Documentation/GNUMakefile.in (GNUSTEP_TEXI2HTML_FLAGS): Add init_file flag * Documentation/README.MinGW: Update library locations. Tue Mar 9 17:28:37 2004 Nicola Pero * configure.ac: Make by default GNUSTEP_NETWORK_ROOT the same as GNUSTEP_LOCAL_ROOT. This has the effect of disabling GNUSTEP_NETWORK_ROOT by default, which is very rarely used - if ever, and simplifying paths and flags. * configure: Regenerated. Tue Mar 9 17:25:16 2004 Nicola Pero * common.make (GNUSTEP_HEADERS_DIRS, GNUSTEP_LIBRARIES_DIRS, GNUSTEP_HEADER_FND_DIRS): Rewritten the code creating the list of -I and -L flags to pass to the compiler and linker so that if two GNUSTEP_XXX_ROOT are the same, the flags are added only once. Tue Mar 9 17:21:34 2004 Nicola Pero * common.make: Removed stale debugging statement. Tue Mar 9 17:05:38 2004 Nicola Pero * common.make (GNUSTEP_HEADERS_FND_DIRS): Only set these flags when libFoundation is used. In the standard case, we no longer add the -Ixxx/Headers/gnustep/ flags. * library-combo.make (GNUSTEP_FND_DIR): Do not define. * rules.make (ALL_OBJCFLAGS): Removed GNUSTEP_HEADERS_FND_FLAG. (ALL_CFLAGS): Same change. Tue Mar 9 16:58:50 2004 Nicola Pero * rules.make (ALL_OBJCFLAGS): Removed GNUSTEP_HEADERS_GUI_FLAG, which is defined nowhere. (ALL_CFLAGS): Same change. Mon Mar 8 13:52:43 2004 Nicola Pero * Instance/application.make ($(APP_FILE)): Do not create the library_paths.openapp file on Apple. Mon Mar 8 13:20:38 2004 Nicola Pero * openapp.in: On Apple, look for the executable in the new location. * debugapp.in: On Apple, look for the executable in the new location. Also, removed obsolete nextstep support code. 2004-03-07 Adam Fedor * Documentation/machines.texi: Updates, add URL's for README's. Sun Mar 7 15:22:37 2004 Nicola Pero Updated application and bundle file structure on Apple to the latest Apple conventions. * Instance/application.make (APP_FILE_NAME): On Apple, create it as xxx.app/Contents/MacOS/xxx. ($(APP_FILE)): Put the library_paths.openapp file inside xxx.app/Contents. ($(APP_DIR)/Contents/MacOS): New rule on Apple replacing the rule to create xxx.app (GNUSTEP_STAMP_DIR): On Apple, use xxx.app/Contents as directory in which to create the stamp.make file. (internal-app-all_): On Apple, create the xxx.app/Contents/MacOS directory instead of xxx.app. * Instance/bundle.make (BUNDLE_FILE_NAME): On Apple, create it as xxx.bundle/Contents/MacOS/xxx. (build-bundle): On Apple, depend on creating the xxx.bundle/Contents/MacOS directory rather than the xxx.bundle/library-combo one. (GNUSTEP_STAMP_DIR): On Apple, use xxx.bundle/Contents as directory for stamp.make. ($(GNUSTEP_STAMP_DIR)): On Apple, updated rule for new setup. ($(BUNDLE_DIR)/Contents/MacOS): New rule on Apple replacing the xxx.bundle/Contents one. 2004-03-4 Quentin Mathe * Documentation/README.Darwin: Minor improvements. Thu Mar 4 13:06:22 2004 Nicola Pero * Instance/framework.make (xxx_DEPLOY_WITH_CURRENT_VERSION): Variable renamed to xxx_MAKE_CURRENT_VERSION. (update-current-symlink): New optional rule, executed only if MAKE_CURRENT_VERSION is yes, to create the symlink from Current to the current version. (build-framework-dirs): Moved code into the new rule. (xxx.framework/xxx): On Apple, build the symlink xxx.framework/xxx to the current instance only when MAKE_CURRENT_VERSION is yes. Thu Mar 4 12:09:27 2004 Nicola Pero * Instance/framework.make (SOVERSION): Variable removed, replaced with INTERFACE_VERSION. Made xxx_INTERFACE_VERSION available for frameworks too exactly as it happens for libraries. Thu Mar 4 11:36:41 2004 Nicola Pero * Instance/library.make (INTERFACE_VERSION): New variable. xxx_SOVERSION has been renamed to xxx_INTERFACE_VERSION, which will be used consistently by frameworks too, and not only for the .so names. Backwards compatibility code for xxx_SOVERSION included. Thu Mar 4 10:41:21 2004 Nicola Pero * Instance/bundle.make (internal-bundle-copy_into_dir): New rule. (.PHONY): Added internal-bundle-copy_into_dir. * Instance/palette.make (internal-palette-copy_into_dir): New rule. (.PHONY): Added internal-palette-copy_into_dir. * Instance/service.make (internal-service-copy_into_dir): New rule. (.PHONY): Added internal-service-copy_into_dir. 2004-02-28 Adam Fedor * Version 1.9.1 * Documentation/announce.texi, readme.texi, install.texi, news.texi: Update. 2004-02-28 Quentin Mathe * Documentation/README.Darwin: Update with the detailed and complete installation process on Mac OS X And Darwin (with the help of Nicolas Roard). 2004-02-23 Adam Fedor * user_home.c (main): Fix check for space in home dir, issue warning if space found (Suggestion from Sheldon Gill). Wed Feb 18 16:57:46 2004 Nicola Pero * configure.ac: Removed --enable-import / --disable-import option. * common.make (OBJCFLAGS): Do not add OBJC_NO_IMPORT. * config.make.in (OBJC_NO_IMPORT): Removed. * configure: Regenerated. * Documentation/userfaq.texi: Removed mention of --enable-import. 2004-02-11 Adam Fedor * Documentation/README.Darwin: Update (from Lars Sonchocky-Helldorf). * Documentation/GNUMakefile (GNUSTEP_TEXI2HTML_FLAGS): Add init_file flag * Documentation/gnustep.init: texi2html init file. 2004-02-07 Adam Fedor * Instance/framework.make: Simplify search for framework location and change order to prevent problems in obscure case where GNUstep is installed in user's home. * Documentation/machines.texi (cygwin): Update link. 2004-01-25 Adam Fedor * Documentation/README.Darwin: Update. 2004-01-21 Adam Fedor * clean_os.sh: Add darwin7 * target.make (darwin/SHARED_LD_PREFLAGS): Remove -arch_only. Add -single_module on darwin7 (darwin/DYLIB_EXTRA_FLAGS): Idem. * Documentation/README.Darwin: New file. 2004-01-18 Adam Fedor * Documentation/gnustep-howto.texi: Add gui image libs. * Documentation/install.texi: Update info on #import. * Documentation/userfaq.texi: Idem. * Documentation/machines.texi: Update Darwin compiler. Fri Jan 16 17:01:55 2004 Nicola Pero * Instance/bundle.make: Recognize xxx_INSTALL_DIR and use it if set. * Instance/clibrary.make: Same change. * Instance/ctool.make: Same change. * Instance/framework.make: Same change. * Instance/gswbundle.make: Same change. * Instance/java.make: Same change. * Instance/library.make: Same change. * Instance/objc.make: Same change. * Instance/palette.make: Same change. * Instance/service.make: Same change. * Instance/tool.make: Same change. 2004-01-15 Adam Fedor * configure.ac: Add check for Apple cc * config.make.in: Add CC_TYPE * target.make (darwin): Use it instead of OBJC_COMPILER. * Documentation/machines.texi: Update Wed Jan 14 18:59:25 2004 Nicola Pero * Master/rpm.make: Use PACKAGE_VERSION instead of VERSION. * Master/source-distribution.make: Use PACKAGE_VERSION instead of VERSION. * Master/rules.make: Set PACKAGE_VERSION from VERSION if PACKAGE_VERSION is not set, for backwards compatibility. Mon Jan 12 12:45:56 2004 Nicola Pero * common.make: If a framework is being compiled with shared=no, print a warning and use shared=yes instead. Mon Jan 12 11:47:00 2004 Jeff Teunissen , Nicola Pero * target.make (SHARED_LIB_LINK_CMD, AFTER_INSTALL_SHARED_LIB_CMD): Do not remove LIB_LINK_SONAME_FILE and do not create the symlink LIB_LINK_SONAME_FILE --> LIB_LINK_VERSION_FILE if LIB_LINK_SONAME_FILE and LIB_LINK_VERSION_FILE are equal, which happens for example if you use 'A' as version. 2004-01-05 David Ayers * Instance/framework.make (internal-framework-uninstall_): Remove symlinks in $(GNUSTEP_LIBRARIES). Mon Jan 5 00:33:00 2004 Nicola Pero * Instance/framework.make (build-framework-dirs): Replaced test -L with test -h because test -L does not work on some old Sun Solaris. 2003-12-29 Adam Fedor * Documentation/gnustep-howto.texi: Update. * Documentation/machines.texi: Idem. Fri Dec 26 17:40:23 2003 Nicola Pero * debugapp.in: Iterate over command line arguments to be able to process more than one of them at the same time. Added --gdb=... command line flag. Documented it. 2003-11-3- Richard Frith-Macdonald * user_home.c: Use name of current user under unix (rather than environment variables etc). Fri Nov 28 19:07:11 2003 Nicola Pero * rules.make (ADDITIONAL_OBJC_LIBS): Fixed bug in the implementation of ADDITIONAL_NATIVE_LIBS on gnu. Tue Nov 25 12:23:20 2003 Manuel Guesdon * Instance/Shared/bundle.make (shared-instance-bundle-all-localized-webresources): Fixed syntax error. 2003-11-13 David Ayers * Instance/framework.make: Remove symlink. Sat Nov 8 22:41:03 2003 Nicola Pero * target.make: Use $(ALL_LDFLAGS) when linking shared stuff. Otherwise there is no way to add linker flags when libraries and frameworks are linked. Change applied to all shared link commands on all platforms. Sat Nov 8 16:40:59 2003 Matt Rice * Documentation/DESIGN: Updated makefiles location. * Documentation/README.MinGW: Updated makefiles location. Added comment on buggy 'ln -s' on mingw. * Documentation/README.Cygwin: Updated makefiles location. * Documentation/README.NetBSD: Updated makefiles location. * Documentation/install.texi: Updated makefiles location. * Documentation/machines.texi: Updated makefiles location. * Documentation/make.texi: Updated makefiles location, use GNUSTEP_MAKEFILES variable. Mon Nov 3 23:48:41 2003 Marcus Muller * target.make (SHARED_LIB_LINK_CMD): Use -prebind flag on Apple. * Instance/framework.make (DYLIB_INSTALL_NAME_BASE): New variable. (LIB_LINK_INSTALL_NAME): Define using DYLIB_INSTALL_NAME_BASE if it was set. Mon Nov 3 23:34:56 2003 Nicola Pero * rules.make (ADDITIONAL_INCLUDE_DIRS): Do not add -framework flags from ADDITIONAL_NATIVE_LIBS. Mon Nov 3 23:30:47 2003 Marcus Muller * library-combo.make (INTERNAL_OBJCFLAGS): Do not add -framework Foundation and -framework AppKit for Apple. Mon Nov 3 23:25:07 2003 Nicola Pero * Instance/framework.make (build-framework): Do not build Info-gnustep.plist on Apple. Mon Nov 3 11:50:30 2003 Nicola Pero * Instance/framework.make (FRAMEWORK_LIBRARY_FILE_EXT): Unused variable removed. * Instance/framework.make (FRAMEWORK_FILE_EXT): Unused variable removed. Fri Oct 31 17:16:51 2003 Matt Rice * config.make.in (HAS_LN_S): Set to no for mingw32. 2003-10-25 00:50 Alexander Malmberg * debugapp.in: Only pass --args to gdb if its new enough to handle it. Based on patch from Ian Jones. Fri Oct 24 15:54:41 2003 Nicola Pero * Instance/Documentation/texi.make (internal-doc-clean): Remove $(GNUSTEP_INSTANCE).html. 2003-10-20 Adam Fedor * configure.ac: Add 2.57 prereq, subst OBJCFLAGS * config.make.in (OBJCFLAGS): New Mon Oct 20 15:02:22 2003 Nicola Pero * cpu.sh: Simplified code by removing unused echo command. * os.sh: Same change. * vendor.sh: Same change. Mon Oct 20 14:49:03 2003 Nicola Pero * Instance/framework.make (internal-framework-distclean): Delete from GNUSTEP_BUILD_DIR. Mon Oct 20 14:44:57 2003 Nicola Pero Write the list of classes belonging to a framework into the framework's Info-gnustep.plist too. * Instance/framework.make (DUMMY_FRAMEWORK_CLASS_LIST): New variable. ($(DUMMY_FRAMEWORK_FILE)): Build a classarray list of classes in the framework, and store it in $DUMMY_FRAMEWORK_CLASS_LIST. (Info-gnustep.plist): Add a Classes key/value. Depend on DUMMY_FRAMEWORK_FILE. 2003-10-19 Adam Fedor * Documentation/gnustep-howto.texi: Updates, clearer instructions. * Documenation/machines.texi, Documentation/userfaq.texi: Idem. Sun Oct 19 16:09:46 2003 Nicola Pero * native-library.make: New file. * GNUmakefile.in: Install native-library.make. * Instance/rules.make (ADDITIONAL_NATIVE_LIBS): Set from xxx_NATIVE_LIBS. * rules.make: Implemented ADDITIONAL_NATIVE_LIBS. Sun Oct 19 15:43:50 2003 Nicola Pero * Instance/library.make (LIBRARY_NAME_WITH_LIB): New variable. Use it in place of GNUSTEP_INSTANCE whenever lib{library-name} is expected. With this change, LIBRARY_NAME can now include or not the 'lib' prefix, and everything should work in both cases. Wed Oct 15 17:02:30 2003 Nicola Pero * Master/tool.make (internal-distclean): Fixed typo causing it not to work. * Master/test-tool.make (internal-distclean): Same change. Wed Oct 15 10:55:58 2003 Nicola Pero * configure: Regenerated using autoconf 2.57 instead of 2.53. 2003-10-14 Adam Fedor * common.make: Simplify common GNUstep dirs. Tue Oct 14 01:07:22 2003 Nicola Pero Implemented support for building in a build directory outside the source tree. Not supported for Java and doc yet. * common.make (GNUSTEP_BUILD_DIR): New variable. (GNUSTEP_OBJ_DIR_NAME): New variable. (GNUSTEP_OBJ_DIR): Define using GNUSTEP_BUILD_DIR. * rules.make (DERIVED_SOURCES_DIR): New variable. (DERIVED_SOURCES_HEADERS_FLAG): Check using OWNING_PROJECT_HEADER_DIR_NAME instead of OWNING_PROJECT_HEADER_DIR. ($(GNUSTEP_BUILD_DIR)): New rule to create GNUSTEP_BUILD_DIR. ($(GNUSTEP_OBJ_DIR)): Modified the rule to create GNUSTEP_OBJ_DIR_NAME inside GNUSTEP_BUILD_DIR. * Master/aggregate.make: Pass GNUSTEP_BUILD_DIR to submake invocations. * Master/rules.make (all): Depend on creating GNUSTEP_BUILD_DIR if any is specified. (ABS_GNUSTEP_BUILD_DIR): New variable - compute if needed. (%.variables, %.subprojects): Pass GNUSTEP_BUILD_DIR to submake invocations; pass OWNING_PROJECT_DIR_NAME rather than OWNING_PROJECT_DIR to submake invocations. * Master/application.make: Modified all clean targets to clean in GNUSTEP_BUILD_DIR. * Master/bundle.make: The same. * Master/clibrary.make: The same. * Master/ctool.make: The same. * Master/gswapp.make: The same. * Master/gswbundle.make: The same. * Master/library.make: The same. * Master/objc.make: The same. * Master/palette.make: The same. * Master/rules.make: The same. * Master/service.make: The same. * Master/subproject.make: The same. * Master/test-application.make: The same. * Master/test-library.make: The same. * Master/test-tool.make: The same. * Master/tool.make: The same. * Instance/application.make: Modified all code as required to implement the new functionality. * Instance/bundle.make: The same. * Instance/framework.make: The same. * Instance/gswapp.make: The same. * Instance/gswbundle.make: The same. * Instance/library.make: The same. * Instance/palette.make: The same. * Instance/rules.make: The same. * Instance/service.make: The same. * Instance/Shared/bundle.make: The same. Tue Oct 14 00:34:57 2003 Nicola Pero * Instance/library.make (DERIVED_SOURCES): Do not define here; it's already defined in rules.make. Mon Oct 13 23:23:40 2003 Nicola Pero * Instance/bundle.make (internal-bundle-install_): Fixed error when installing with strip=yes a bundle without object file. Mon Oct 13 15:53:43 2003 Nicola Pero * configure.ac: Added configure option --enable-strip-makefiles; substitute @GNUSTEP_STRIP_MAKEFILES@ in output. * configure: Regenerated. * GNUmakefile.in (install): Install strip_makefiles.sh; execute it if --enable-strip-makefiles. * strip_makefiles.sh: New file. Mon Oct 13 15:07:53 2003 Nicola Pero * Instance/Shared/java.make (.PHONY): Removed line continuation in excess. Mon Oct 13 13:56:00 2003 Nicola Pero * Instance/palette.make: Tidied up the way in which code was commented. Mon Oct 13 13:09:53 2003 Nicola Pero * Master/application.make (internal-clean): Do the entire clean in a single shell command. * Master/gswapp.make (internal-clean): Same change. * Master/palette.make (internal-clean): Same change. * Master/service.make (internal-clean): Same change. * Master/test-application.make (internal-clean): Same change. Mon Oct 13 12:55:50 2003 Nicola Pero * Master/application.make (internal-distclean): Do not remove .iconheader files, no longer used. * Master/gswapp.make (internal-clean, internal-distclean): Do not remove .iconheader files. (internal-clean): Obsolete code removed. * Master/service.make (internal-clean): Same changes. * Master/test-application.make (internal-clean, internal-disclean): Same changes. * Instance/gswapp.make: Removed obsolete iconheader code. Mon Oct 13 12:25:50 2003 Nicola Pero * Master/palette.make (internal-clean): Remove objects inside .palette on clean. (internal-distclean): Remove *.palette and similar on distclean without performing a recursive make invocation. * Instance/palette.make (internal-palette-distclean_): Removed. * Master/service.make (internal-distclean): Remove *.service and similar on distclean without performing a recursive make invocation. * Instance/service.make (internal-service-distclean_): Removed. Sun Oct 12 18:43:20 2003 Nicola Pero * Instance/subproject.make (internal-subproject-clean): Fixed typo - it was removing non-existing DLL_DEF_IMP instead of DLL_DEF_INP. Sun Oct 12 18:29:49 2003 Nicola Pero * Instance/palette.make: Use Instance/Shared/bundle.make to install and uninstall. * Instance/service.make: Same changes. Sun Oct 12 13:09:12 2003 Nicola Pero * rules.make ($(GNUSTEP_OBJ_DIR)): Use ECHO_NOTHING. 2003-10-09 Adam Fedor * Correct problem where *bsd lib flags were not getting used. * configure.ac: Use LIB_DIR not LDFLAGS * config.make.in (CONFIG_SYSTEM_LIB_DIR): New var for LIB_DIRs * library-combo.make (SYSTEM_LIB_DIR): Use it. 2003-10-05 Adam Fedor * Version: Bump to 1.8.90 2003-10-04 Adam Fedor * GNUmakefile.in (dist): Remove * Documentation/machines.texi: Doc updates. * Documentation/faq.texi, Documentattion/userfaq.texi: Idem. 2003-09-29 Adam Fedor * Simplify use of user-defined flags. * configure.ac: USE LDFLAGS not LIBS. Leave CPPFLAGS alone * common.make (INTERNAL_LDFLAGS): Don't add LDFLAGS * library-combo.make (SYSTEM_LDFLAGS): Add LDFLAGS. * config.make.in (CONFIG_SYSTEM_DEFS): Remove. * Documentation/faq.texi: Update answers. 2003-09-27 Adam Fedor * target.make (darwin/BUNDLE_LDFLAGS): Supress warnings * Documentation/machines.texi: Update darwin. 2003-09-26 Adam Fedor * Version 1.8.0 released on branch. 2003-09-25 Adam Fedor * target.make (darwin): Fix up bundle flags for GNU compiler. 2003-09-19 Leigh Smith * library.make: Changed the full .inp declaration to $(DLL_DEF_INP). 2003-09-15 Adam Fedor * Version: Add VERSION * gnustep-make.spec.in: Update packager. Sun Sep 7 12:43:59 2003 Nicola Pero * config.site: Fixed Headers directory, it is now in Library/. Wed Sep 3 10:29:26 2003 Matt Rice , Nicola Pero * Instance/library.make: Removed ADDITIONAL_INSTALL_DIRS code. * Instance/rules.make: Implemented support for ADDITIONAL_INSTALL_DIRS. * common.make (GNUSTEP_APPLICATION_SUPPORT): New variable. 2003-08-23 Adam Fedor * Version 1.7.3 2003-08-22 Adam Fedor * configure.ac: On netbsd, Use -Wl to pass linker options. 2003-08-05 Martin Brecher * Documentation/openapp.1: New file. * Documentation/GNUstep.7: Updated. File is now unprocessed. 2003-08-07 Richard Frith-Macdonald * Instance/Documentation/autogsdoc.make: Rewrite dependency rules to avoid regeneration of documentation when we are going to clean. Also, use autogsdoc -Clean argument to get all files. Wed Jul 30 09:52:16 2003 Nicola Pero * target.make (BUNDLE_LDFLAGS): openbsd: use -fPIC instead of -fpic to match the -fPIC flag used when compiling as recommended by the gcc manual. Tue Jul 29 12:06:02 2003 Nicola Pero * configure.ac: If flattened, add library combo to headers directory. * configure: Regenerated. * config.site (includedir): If flattened, add library combo. * GNUmakefile.in (MAYBE_LIBRARY_COMBO): Define. Export GNUSTEP_TARGET_DIR, GNUSTEP_TARGET_LDIR and MAYBE_LIBRARY_COMBO. * create_domain_dir_tree.sh: Use MAYBE_LIBRARY_COMBO when creating the headers dir. * common.make (GNUSTEP_HEADERS): Define using library combo if not flattened. (GNUSTEP_HEADERS_DIRS): Use library combo if not flattened. Mon Jul 28 11:49:18 2003 Pete French * Instance/application.make (MAIN_MARKUP_FILE): New variable. * Instance/application.make (GNUSTEP_STAMP_STRING): Include MAIN_MARKUP_FILE in the stamp string. * Instance/application.make ($(APP_INFO_PLIST_FILE)): Set GSMarkupMainFile to MAIN_MARKUP_FILE in the info dictionary. Mon Jul 28 10:59:21 2003 Pete French * rules.make (%.plist): Filter the result through sed to drop #pragma statements. 2003-07-23 Richard Frith-Macdonald * Instance/Documentation/autogsdoc.make: put stamp file in documentation subdirectory so it gets removed properly with 'clean' 2003-07-22 Adam Fedor * Version 1.7.2 2003-07-22 Richard Frith-Macdonald * user_home.c: Use HOMEPATH in preference to USERPROFILE for OPENSTEP compatibility and because USERPROFILE generally doesn't work due to the presence of spaces. * messages.make: Make documentation generation less verbose. * Instance/Documentation/autogsdoc.make: ditto Also use autogsdoc -MakeDependencies to avoid unnecessary regeneration of documentation. 2003-07-21 Adam Fedor * target.make: Set thread library in AUXILIARY_OBJC_LIBS. Set reentrant flags for all targets if threaded. Remove duplicates. * Documentation/README.MinGW: Updated for default flattened structure. * Documentation/gnustep-howto.texi: Idem. Mon Jul 21 10:42:42 2003 Nicola Pero * debugapp.in: Detect core files with name core.xxx, not just core, as found on some gnu-linux systems. Improved user prompting. Mon Jul 21 10:31:08 2003 Andrew Ruder * debugapp.in: Pass debugapp arguments to gdb to use when running the application. Wed Jul 16 09:46:16 2003 Nicola Pero * target.make (INTERNAL_OBJCFLAGS): On darwin with library-combo apple-apple-apple, use -no-cpp-precomp rather than -traditional-cpp. Wed Jul 9 16:28:14 2003 Nicola Pero * configure.ac: Made flattened directory structure the default. Explicitly print a message saying if we use flattened or non-flattened directory structure. * configure: Regenerated. 2003-07-06 Adam Fedor * configure.ac: Remove '^' match from gcc version sed script. 2003-07-05 Adam Fedor * configure.ac: Add flags for openbsd like freebsd. 2003-07-05 Adam Fedor * Documentation/GNUmakefile.in (after-install): gzip man files * Documentation/GNUstep.7: Unziped. 2003-07-05 Adam Fedor * clean_os.sh: Clean netbsdelf. * configure.ac: Add -R flags for netbsdelf * target.make (netbsd/ADDITONAL_LDFLAGS): Idem. (Patches from Peter Cooper 2003-06-29 Richard Frith-Macdonald * user_home.c: Cast all arguments to isspace() as int ... for picky compiler versions. 2003-06-25 Adam Fedor * Documentation/GNUmakefile.in (after-install): Install man pages * Documentation/GNUstep.7.gz: New file (from Martin Brecher). Wed Jun 25 15:47:46 2003 Tom Koelman * Instance/subproject.make (subproject.def): Depend on DLL_DEF_INP. 2003-06-21 Adam Fedor * Instance/Documentation/autogsdoc.make: If not BASE_MAKE_LOADED print a better error message about needing to install GNUstep-base first. 2003-06-20 Adam Fedor * Version 1.7.1 2003-06-18 Adam Fedor * target.make (openbsd): Enable shared libs, use -fPIC not -fpic. 2003-06-17 Adam Fedor * Instance/Documentation/texi.make: Don't abort make if texi programs aren't available. Don't install if files not made. 2003-06-16 Adam Fedor * configure.ac: Add option to disable moving obsolete dirs * GNUmakefile.in: Update for change. 2003-06-15 Adam Fedor * target.make (openbsd/SHARED_LIB_LINK_CMD): Use gcc to link the library. 2003-06-11 Adam Fedor * move_obsolete_paths.sh: Don't remove the Developer dir. 2003-06-06 Adam Fedor * target.make (openbsd/OBJ_MERGE_CMD): Add. 2003-06-05 Adam Fedor * config_thread.m: More complete thread test. * configure.ac: Add runtime based on RUNTIME_LIB 2003-06-03 Adam Fedor * target.make (darwin/BUNDLE_LD): Use libtool (darwin/AFTER_INSTALL_SHARED_LIB_CMD): Link to the LIB_LINK_FILE as well. Tue Jun 3 11:51:02 2003 Nicola Pero * Instance/Documentation/autogsdoc.make (internal-doc-install_): Fixed typo - added missing ";". 2003-06-02 18:16 Alexander Malmberg * Instance/Documentation/autogsdoc.make (internal-doc-install_): Add a missing "\" line continuation. (internal-doc-uninstall_): Add an $(END_ECHO) to balance the echoing. Mon Jun 2 10:21:11 2003 Nicola Pero * GNUmakefile.in (install): Only create the symlink Makefiles --> Library/Makefiles if symbolic links are available. (Problems reported by Matt Rice). Sat May 31 09:13:07 2003 Matt Rice , David Ayers * Instance/gswapp.make (internal-gswapp-install_): Fixed typo: removed excess bracket. Fri May 30 23:28:55 2003 Nicola Pero * common.make (OBJC_FLAGS): Added -fno-strict-aliasing. 2003-05-29 Adam Fedor * target.make (TARGET_SYSTEM_LIBS): Remove -ldl (added when necessary by gnustep-base). Wed May 28 09:47:42 2003 Nicola Pero * Instance/framework.make: Use test -r instead of test -f to check that a file, which might be a symlink, exists. * Instance/framework.make (internal-framework-install_): Always remove the old symlinks without checking. Tue May 27 16:52:27 2003 Nicola Pero * Instance/Documentation/javadoc.make (internal-doc-install_): Fixed line breaking typo. Tue May 27 13:21:57 2003 Nicola Pero * Instance/objc.make: Remove old deprecation warning. * Instance/tool.make: The same. Tue May 27 13:12:59 2003 Nicola Pero * Instance/application.make: Use ECHO_NOTHING in commands which were using @ or printing the command. * Instance/documentation.make: The same. * Instance/framework.make: The same. * Instance/gswapp.make: The same. * Instance/java-tool.make: The same. * Instance/library.make: The same. * Instance/palette.make: The same. * Instance/resource-set.make: The same. * Instance/service.make: The same. * Instance/subproject.make: The same. * Instance/Documentation/autogsdoc.make: The same. * Instance/Documentation/gsdoc.make: The same. * Instance/Documentation/javadoc.make: The same. * Instance/Documentation/latex.make: The same. * Instance/Documentation/texi.make: The same. * Instance/Shared/java.make: The same. * Instance/ctool.make (internal-ctool-uninstall_): Use ECHO_UNINSTALLING. * Instance/document.make (internal-textdoc-uninstall_): The same. * Instance/framework.make (internal-framework-uninstall_): The same. * Instance/gswapp.make (internal-gswapp-uninstall_): The same. * Instance/gswbundle.make (internal-gswbundle-uninstall_): The same. * Instance/java-tool.make (internal-java_tool-uninstall_): The same. * Instance/library.make (internal-library-uninstall_): The same. * Instance/objc.make (internal-objc-uninstall_): The same. * Instance/service.make (internal-service-uninstall_): The same. * Instance/Documentation/autogsdoc.make (internal-doc-uninstall_): The same. * Instance/Documentation/gsdoc.make (internal-doc-uninstall_): The same. * Instance/Documentation/install_files.make (internal-doc-uninstall_): The same. * Instance/Documentation/javadoc.make (internal-doc-uninstall_): The same. * Instance/Documentation/latex.make (internal-doc-uninstall_): The same. * Instance/gswbundle.make (internal-gswbundle-install_): Use ECHO_INSTALLING. * Instance/Documentation/autogsdoc.make (internal-doc-install_): The same. * Instance/Documentation/gsdoc.make (internal-doc-install_): The same. * Instance/Documentation/install_files.make (internal-doc-install_): The same. * Instance/Documentation/javadoc.make (internal-doc-install_): The same. * Instance/gswapp.make: Use ECHO_CREATING when building the various files. * Instance/subproject.make: Use ECHO_CREATING when building the DLL_DEF_INP file. Tue May 27 12:04:38 2003 Nicola Pero * messages.make (ECHO_CHOWNING, ECHO_STRIPPING): New variables. * Instance/service.make (internal-service-install_): * Instance/application.make: Use them. * Instance/bundle.make: Use them. * Instance/framework.make: Use them. * Instance/gswapp.make: Use them. * Instance/gswbundle.make: Use them. * Instance/java-tool.make: Use them. * Instance/palette.make: Use them. * Instance/service.make: Use them. * Instance/Shared/bundle.make: Use them. * Instance/Documentation/autogsdoc.make: Use them. * Instance/Documentation/javadoc.make: Use them. Tue May 27 11:45:41 2003 Nicola Pero * Instance/framework.make (build-framework-dirs): Merge contiguous commands into single subshell. Tue May 27 11:36:06 2003 Nicola Pero * Instance/application.make: Use ECHO_CREATING when building the .plist files. * Instance/bundle.make: Same * Instance/framework.make: Same. * Instance/gswbundle.make: Same. * Instance/palette.make: Same. * Instance/service.make: Same. * Instance/application.make: Use ECHO_CREATING when building the .desktop file. * Instance/framework.make ($(DUMMY_FRAMEWORK_FILE)): Use ECHO_CREATING when building the internal framework class file. Tue May 27 11:22:44 2003 Nicola Pero * Instance/application.make: Use ECHO_CREATING when running MKDIRS or MKINSTALLDIRS. * Instance/bundle.make: The same. * Instance/ctool.make: The same. * Instance/documentation.make: The same. * Instance/framework.make: The same. * Instance/gswapp.make: The same. * Instance/gsbundle.make: The same. * Instance/library.make: The same. * Instance/objc.make: The same. * Instance/palette.make: The same. * Instance/resource-set.make: The same. * Instance/rules.make: The same. * Instance/service.make: The same. * Instance/subproject.make: The same. * Instance/test-library.make: The same. * Instance/tool.make: The same. * Instance/Documentation/autogsdoc.make: The same. * Instance/Documentation/texi.make: The same. * Instance/gswapp.make (internal-gswapp-install_): Use ECHO_INSTALLING. Tue May 27 11:08:52 2003 Nicola Pero * messages.make (ECHO_UNINSTALLING): New variable. (ECHO_PREPROCESSING): Added missing definition in case messages=yes. Tue May 27 11:00:59 2003 Nicola Pero * messages.make (ECHO_CREATING, ECHO_NOTHING): New variables. * Instance/Shared/bundle.make: Use them. * Instance/Shared/headers.make: Same. * Instance/Shared/java.make: Same. * Instance/Shared/stamp-string.make: Same. Tue May 27 10:54:36 2003 Nicola Pero * Instance/ctool.make: Old deprecation warning removed. Tue May 27 10:02:46 2003 Nicola Pero * relative_path.sh: Added code to normalize input paths by removing /./ components before using them. 2003-05-19 Adam Fedor * Version 1.7.0 * Documentation/news.texi: Updated * configure.ac: On some systems, check for thread libraries in different order. Thu May 15 10:30:55 2003 Nicola Pero * GNUmakefile.in (generated-files): Added fixpath.sh. (fixpath.sh): New rule. Wed May 14 16:19:02 2003 Nicola Pero * transform_paths.sh: Quote paths. Wed May 14 16:15:16 2003 Nicola Pero * debugapp.in: Added more strict quoting of paths everywhere. * executable.template.in: Idem. * openapp.in: Idem. * opentool.in: Idem. Fri May 9 12:22:24 2003 Nicola Pero * Documentation/install.texi (Flat Structure): Fixed typo. (Reported by Lele Gaifax ). Tue May 6 11:30:19 2003 Nicola Pero * Instance/Shared/bundle.make (shared-instance-bundle-all): Reverted last change for resource files, but not localized resource files. Mon May 5 00:52:20 2003 Nicola Pero * Instance/Shared/bundle.make (shared-instance-bundle-all): Fixed copying resource files and localized resource files into the bundle when they are in subdirs. 2003-05-02 Adam Fedor * common.make (GNUSTEP_PALLETES): Put in ApplicationSupport/Palettes * move_obsolete_paths.sh: Remove Developer dir. * Documentat/GNUmakefile.in: Install docs in Library/Documentation 2003-04-28 Nicola Pero * Instance/resource-set.make (RESOURCE_FILES_FULL_INSTALL_DIR): Reverted last change. This file is of general use, not just for libraries. 2003-04-27 Adam Fedor * New filesystem structure. Use @MAKEFILE_SUFFIX@ instead of Makefiles. Replace $GNUSTEP_SYSTEM_ROOT/Makefiles with $GNUSTEP_MAKEFILES Replace Libraries with Library/Libraries Replace Headers with Library/Headers Replace Documentation with Library/Documentation * GNUmakefile.in, GNustep.csh.in, common.make, config.site, debugapp.in, executable.template.in, gnustep-make.spec.in, java-executable.template, ld_lib_path.csh, ld_lib_path.sh, opentool.in, relative_path.sh, setlocaltz.sh, spec-debug-alone-rules.template, spec-debug-rules.template, spec-rules.template, target.make, which_lib.c, gswbundle.make, java.make, test-library.make: Idem. * configure.ac (MAKEFILES_SUFFIX): Define to Library/Makefiles * create_domain_dir_tree.sh: Add additional Library dirs. * resource-set.make (RESOURCE_FILES_FULL_INSTALL_DIR): Use $(GNUSTEP_RESOURCES), not $(GNUSTEP_INSTALLATION_DIR). * move_obsolete_paths.sh: New file used in installation Fri Apr 25 17:02:55 2003 Nicola Pero * GNUstep.csh.in: Use the grep -v trick to make sure that GUILE_LOAD_PATH is not increased if the paths to add are already there in the variable. * ld_lib_path.csh: Similar change/fix for all paths. 2003-04-24 Adam Fedor * Documentation/filesystem.texi: Clarify Local installation rights, Remove Network/{Server,Users}. Wed Apr 23 09:18:07 2003 Nicola Pero * config.make.in (CPP): Added. (GENERAL_CPP): Removed. * rules.make (ALL_CPLISTFLAGS): Added -x c -traditional. (%.plist): Use CPP, not GENERAL_CPP. Tue Apr 22 16:11:14 2003 Nicola Pero * rules.make (%.c): New rules to generate .c files from .l files using lex and from .y files using yacc. Tue Apr 22 15:27:02 2003 Nicola Pero * GNUstep.csh.in: Quote all values of setenv, set, source calls. Mon Apr 14 12:59:23 2003 Nicola Pero Implemented support for preprocessed Info.plists in applications. * config.make.in (GENERAL_CPP): New variable. * rules.make (ALL_CPLISTFLAGS): New flags. (%.plist): Added rule to generate %.plist from %.cplist by running the preprocessor. * messages.make (ECHO_PREPROCESSING): New message. * Instance/application.make: If xxx_PREPROCESS_INFO_PLIST is set to yes in the user makefile, automatically depend on xxxInfo.plist, which is then automatically generated from xxxInfo.cplist. * Master/application.make (_PLIST_INFO_FILES): New variable. (internal-clean): Remove info plist files generated by the preprocessor. Fri Apr 11 12:38:44 2003 Nicola Pero * GNUmakefile.in (install): Bug fix - install fixpath.sh from the local directory, not from the source directory. Sun Apr 6 02:25:07 2003 Nicola Pero * GNUmakefile.in (install): Bug fix - install GNUstep-reset.sh from the source directory, not from the local directory. Mon Mar 31 18:43:07 2003 Nicola Pero * Instance/framework.make (build-framework-dirs): Do not create the symlink from inside derived_src to the headers if there are no headers; remove the file before creating the symlink. 2003-03-23 Richard Frith-Macdonald * Merged 1.6.0 branch changes in Mon Mar 10 12:51:20 2003 Nicola Pero * rules.make: Disable all built-in SUFFIXES and all built-in rules with a % target -- for performance. Wed Feb 26 18:34:37 2003 Nicola Pero * Instance/application.make ($(APP_INFO_PLIST_FILE)): Implemented merging the xxxInfo.plist into Info.plist on Apple. Use CFBundleIconFile, and not NSIcon, on Apple. Quote full path of xxxInfo.plist file. 2003-03-17 Adam Fedor * Version: 1.6.0 2003-03-14 Adam Fedor * configure.ac: Check for -lpthread on unknown hosts (e.g. irix) * target.make (darwin): Add -read_only_reolcs warning. (darwin5): Remove * Documentation/machines.texi: Update Darwin. (suggestions from Carl Eugen Hoyos) 2003-03-13 Adam Fedor * clean_cpu.sh: Make all hppa variants the same. (suggestion from Matthias Klose) 2003-03-04 Adam Fedor * configure.ac: Change sense of --disable-import help line * configure: Regen. * Documentation/install.texi: Update import section * Documentation/userfaq.texi: Add import section. Tue Mar 4 17:13:46 2003 Nicola Pero * configure.ac: Enable GCC deprecation warnings for #import. * configure: Regenerated. 2003-03-03 iMartin Brecher * Documentation/README.MinGW: Tidied Some modifiecations by rfm@gnu.org also ... mainly to change the order of build/install of libobjc and ffcall 2003-02-23 Richard Frith-Macdonald * user_home.c: fix HOMEPATH and HOMEDRIVE handling for mingw to only use the drive if there isn't one in the path. 2003-02-17 Tom Koelman * Documentation/README.MingW: Update URLs. 2003-02-16 Adam Fedor * Version: 1.5.2 * Documentation/announce.texi, news.texi, install.texi: Update 2003-02-14 Adam Fedor * target.make (Darwin/SHARED_LIBRARY_LINK_CMD): Include object files before library depends. * Documentation/gnustep-howto.texi, install.texi: Updates. Mon Feb 10 13:42:54 2003 Nicola Pero * Master/source-distribution.make: Define a CVS variable, and use it in place of `cvs', so that it can be overridden with a different value (example: make cvs-snapshot CVS='runsocks cvs'). 2003-02-06 Richard Frith-Macdonald * Instance/subproject.make: Build dll exported symbols def file. Remove temporary def file on clean. * Instance/rules.make: Make list of subproject def files (thanks Nicola) * Instance/library.make: Use list of subproject def files to put symbols from subprojects into final dll output. Wed Feb 5 04:07:05 2003 Nicola Pero * library-combo.make (BUNDLE_LIBS): For apple library-combo, do not add -framework Foundation and -framework AppKit. * Instance/bundle.make: Link bundle to all libs on Apple so that it can be made to work with two-level namespaces. Fri Jan 31 01:20:59 2003 Nicola Pero * openapp.in: Added new option --find. Calling 'openapp --find Ink' will search for the Ink application as usual, but then only print out the full path of the application instead of executing it. Replaced `basename $0` with openapp in messages. Do not talk of unimplemented --library-combo option in messages. Thu Jan 30 17:32:37 2003 Nicola Pero * Instance/Documentation/gsdoc.make: Use autogsdoc, not gsdoc, to compile gsdoc files. gsdoc is not even installed in the latest gnustep-base. Sun Jan 26 04:54:09 2003 Nicola Pero * configure.ac: New --enable-multi-platform option, off by default. Substitute GNUSTEP_MULTI_PLATFORM and target when processing .in files. * configure: Regenereated. * GNUstep.sh.in: If GNUSTEP_MULTI_PLATFORM is empty, use hardcoded GNUSTEP_HOST, GNUSTEP_HOST_OS, GNUSTEP_HOST_CPU, GNUSTEP_HOST_VENDOR as provided by configure. * GNUstep.csh.in: Idem. Fri Jan 10 05:48:06 GMT 2003 Nicola Pero * target.make (INTERNAL_CFLAGS): On darwin, apple foundation, add -no-cpp-precomp. 2003-01-09 Richard Frith-Macdonald * Documentation/README.MinGW: Updated for current cod, fixing a few errors. * user_home.c: Fixed typo. 2003-01-03 Richard Frith-Macdonald * common.make: Don't use RUNTIME_FLAG for plain C code, just for ObjC Fri Jan 3 01:57:46 2003 Nicola Pero * create_domain_dir_tree.sh (mydir): Replaced dirname invocation with a sed trick. Apparently dirname is not available on OpenStep (reported by Pete French ). Tue Dec 31 16:10:49 2002 Nicola Pero * target.make: For darwin: link to LIB_LINK_SONAME_FILE, not to LIB_LINK_INSTALL_NAME, so that it works when building frameworks. 2002-12-30 Adam Fedor * ld_lib_path.sh: Use DYLD_LIBRARY_PATH on darwin * ld_lib_path.csh: Idem. * target.make (darwin): Don't set DYLIB_COMPATIBILITY_VERSION, set DYLIB_CURRENT_VERSION correctly, link to LIB_LINK_INSTALL_NAME. Mon Dec 30 16:38:16 2002 Nicola Pero A new library-combo apple-apple-apple has been added, and made the default on Apple OSX systems. * library-combo.make (OBJC_RUNTIME): Variable removed, it's redundant with OBJC_RUNTIME_LIB. * target.make: Check OBJC_RUNTIME_LIB, not OBJC_RUNTIME. * common.make: For libFoundation, added backward compatibility fixup for header locations. * configure.ac: Map gnu library combo to gnu-gnu-gnu, nx library combo to nx-nx-nx, apple library combo to apple-apple-apple. Use apple-apple-apple library-combo on darwin by default. Use -DNeXT_RUNTIME for OBJC_RUNTIME_LIB = apple. Print out a message that we are checking for the library-combo, and which one we choose. * configure: Regenerated. * common.make: To check that we are on an Apple system, check FOUNDATION_LIB against apple, not nx. * debugapp.in: Recognize apple library combo. * executable.template.in: Idem. * library-combo.make (RUNTIME_FLAG): For NeXT and Apple runtime, always set to -fnext-runtime, regardless of the value of OBJC_COMPILER, because OBJC_COMPILER is set in target.make, which is read after library-combo.make, so we can't use it here. * library-combo.make: Map apple library-combo to apple-apple-apple. Added code for apple OBJC_RUNTIME_LIB, FOUNDATION_LIB and GUI_LIB, copied from the one for nx library-combo. * target.make: For darwin systems, replace all checks for 'nx' runtime and foundation lib with checks for 'apple'. * Instance/application.make: Apple code is now executed for 'apple' runtime/foundation/gui lib, not 'nx'. Removed checks for OBJC_COMPILER == NeXT; replace them with checks for FOUNDATION_LIB == apple. * Instance/bundle.make: Idem. * Instance/framework.make: Idem. * Instance/gswapp.make: idem. Wed Dec 25 03:09:34 2002 Nicola Pero * Instance/application.make: Implemented support for Apple native bundle organization, and Apple Info.plist. Wed Dec 25 03:04:42 2002 Nicola Pero * target.make (DYLIB_INSTALL_NAME): Variable removed, replaced by LIB_LINK_INSTALL_NAME. * Instance/library.make (LIB_LINK_INSTALL_NAME): Define. * Instance/framework.make (LIB_LINK_INSTALL_NAME): Define. * Instance/framework.make: Do not build and link the dummy framework class on Apple. On Apple, create the symbolic link xxx.framework/xxx --> the shared library. Modified NSExecutable value on Apple. New install code for Apple. Wed Dec 25 02:53:19 2002 Nicola Pero * Master/application.make (internal-clean): Removed special code for OBJC_COMPILER = NeXT. Fri Dec 20 17:27:16 2002 Nicola Pero * library-combo.make (LIBRARIES_DEPEND_UPON, BUNDLE_LIBS): For nx foundation or gui, add necessary -framework flags. * target.make (DYLIB_INSTALL_NAME): For darwin, define using FINAL_LIBRARY_INSTALL_DIR rather than hardcoding GNUSTEP_SYSTEM_ROOT, so that it works no matter where a library is installed. Fri Dec 20 16:21:40 2002 Nicola Pero * Instance/tool.make (FINAL_TOOL_INSTALL_DIR): New variable; support it. By setting this variable before including the makefile, you can fine control where you want the tool executable to be installed. Sun Dec 15 16:22:13 2002 Nicola Pero * Instance/Shared/stamp-string.make: New file providing infrastructure for very efficient stamp string support. * GNUmakefile.in (INSTANCE_SHARED_MAKE_FILES): Added stamp-string.make * Instance/application.make: Use Instance/Shared/stamp-string.make to rebuild Info.plist and xxx.desktop iff there is a clear reason to do so. * Instance/bundle.make: Use Instance/Shared/stamp-string.make to make sure we rebuild the Info.plist whenever the make variables used in it change. Sat Dec 14 02:42:02 2002 Nicola Pero * library-combo.make: Quick attempt at fixing/updating foundation/appkit flags to compile with nx library-combo on Mac OSX. Dropped NeXTstep iconheader code. * Instance/application.make: Quick attempt at fixing/updating building nx applications. Added missing rule to build directory, and dropped NeXTstep iconheader code. Sat Dec 14 02:36:00 2002 Nicola Pero * configure.ac (AC_CONFIG_FILES): Removed config.h, which is already in AC_CONFIG_HEADER. * configure: Regenerated. Thu Dec 12 00:03:30 2002 Nicola Pero * Instance/framework.make: Fixed typo in warning message. 2002-12-10 Adam Fedor * clean_os.sh: Filter version from darwin6. * target.make (darwin): Was darwin6 (irix): Updated for shared libraries (from Carl Eugen Hoyos). * Documentation/machines.texi: Updated. Mon Dec 9 12:04:49 2002 Nicola Pero * Instance/framework.make (internal-framework-install_): Fixed creating the installation directory for headers in DLL case, so that it uses HEADER_FILES_INSTALL_DIR (Patch from David Ayers ). 2002-12-05 Mirko Viviani * Instance/framework.make ($(FRAMEWORK_FILE)): create the link with GNUSTEP_INSTANCE name instead of FRAMEWORK_NAME. (patch from David Ayers ) 2002-12-03 Mirko Viviani * Instance/framework.make ($(FRAMEWORK_FILE)): remove the link before creating a new one. 2002-12-02 Mirko Viviani * Instance/framework.make ($(FRAMEWORK_FILE)): link lib.so to for dynamic loading. Mon Dec 2 12:43:23 2002 Nicola Pero * Instance/framework.make: Added support for XXX_HEADER_FILES_DIR and XXX_HEADER_FILES_INSTALL_DIR (Patch from David Ayers ). 2002-11-29 Adam Fedor * target.make (darwin1): Remove (darwin6): Add. 2002-11-27 Richard Frith-Macdonald * user_home.c: Use USERPROFILE for home directory on windoze. * Documentation/RADME.MinGW: Fix typo reported by Tom Koelman 2002-11-19 Adam Fedor * Version: 1.5.1 * Documentation/news.texi: Updated. 2002-11-19 Adam Fedor * create_domain_dir_tree.sh (mydir): Use `command` not $(command), which doesn't work with all sh's. 2002-11-15 Adam Fedor * common.make: Remove duplicate OBJC_RUNTIME_LIB and FOUNDATION_LIB setup * library-combo.make (GNUSTEP_FND_DIR, RUNTIME_FLAG): Extra flags moved from common.make (FOUNDAION_LIB=gnu): setup moved from common.make. * target.make (darwin5/NeXT cc) (DYLIB_EXTRA_FLAGS, DYLIB_DEF_FRAMEWORKS, DYLIB_DEF_LIBS): Comment out or remove. Wed Nov 6 15:26:07 2002 Nicola Pero * GNUmakefile.in (install): Fixed typo - was installing config.site into GNUSTEP_SYSTEM_ROOT/shared rather than GNUSTEP_SYSTEM_ROOT/share. Wed Nov 6 12:31:40 2002 Nicola Pero Rewritten framework/subproject interaction so that it supports FRAMEWORK_NAME containing multiple framework names. Framework API change warning: CURRENT_VERSION_NAME replaced by XXX_CURRENT_VERSION_NAME; DEPLOY_WITH_CURRENT_VERSION replaced by XXX_DEPLOY_WITH_CURRENT_VERSION. * common.make (CURRENT_VERSION_NAME): Do not define here. (DEPLOY_WITH_CURRENT_VERSION): Idem. * Instance/framework.make: Added support for xxx_CURRENT_VERSION_NAME and xxx_DEPLOY_WITH_CURRENT_VERSION. * rules.make (FRAMEWORK_NAME): Do not define here. (FRAMEWORK_DIR_NAME): Idem. (FRAMEWORK_VERSION_DIR_NAME): Idem. * Master/framework.make (FRAMEWORK_NAME): Set here. * Instance/framework.make (FRAMEWORK_DIR_NAME, FRAMEWORK_VERSION_DIR_NAME): Set here. * Master/rules.make (%.subprojects): Pass to submakes for subprojects OWNING_PROJECT_HEADER_DIR instead of FRAMEWORK_NAME and FRAMEWORK_VERSION_DIR_NAME; set the new variable manually depending on the instance we're building. (%.variables): Similar change. * Master/subproject.make (build-headers): Always define this rule; don't depend on FRAMEWORK_NAME. (internal-install, internal-uninstall: Always run install / uninstall, no matter what FRAMEWORK_NAME is. * rules.make (CURRENT_FRAMEWORK_HEADERS_FLAG): Renamed to DERIVED_SOURCES_HEADERS_FLAG. Include it also if OWNING_PROJECT_HEADER_DIR is non empty. * Instance/subproject.make: Rewritten header copying for frameworks and such; now manage headers basing on the OWNING_PROJECT_HEADER_DIR variable only. Wed Nov 6 12:09:09 2002 Nicola Pero * Instance/framework.make (internal-framework-distclean): Do not remove DERIVED_SOURCES; already removed on make clean. Wed Nov 6 10:56:55 2002 Nicola Pero * Instance/application.make (.PHONY): Added internal-app-copy_into_dir. (internal-app-copy_into_dir): Implemented. 2002-11-05 Adam Fedor * Documentation/README.MinGW: Add note about setting installation prefix. * Documentation/faq.texi: Typo. * Documentation/machines.texi: Updates. * Documentation/userfaq.texi: Idem. Mon Nov 4 14:59:27 2002 Nicola Pero * Instance/documentation.make (internal-doc-install_): Moved before the submakefile fragments are included, to fix installation problem. Mon Nov 4 12:44:07 2002 Nicola Pero * GNUmakefile.in (distclean): Remove fixpath.sh. Mon Nov 4 12:08:58 2002 Nicola Pero * Instance/Documentation: New directory. * Instance/Documentation/autogsdoc.make: New file. * Instance/Documentation/gsdoc.make: New file. * Instance/Documentation/javadoc.make: New file. * Instance/Documentation/latex.make: New file. * Instance/Documentation/texi.make: New file. * Instance/documentation.make: Include only the appropriate documentation makefiles; most code moved into the specific documentation makefiles. * GNUmakefile.in (install): Create the GNUSTEP_MAKEFILES/Instance/Documentation directory. (INSTANCE_DOC_MAKE_FILES): List the new makefiles in this variable. (install): Install them. * rules.make ($(GNUSTEP_MAKEFILES)/Instance/Documentation/*.make): New rule to let make know that all documentation makefiles are always up to date. Fri Nov 1 14:00:11 2002 Nicola Pero * common.make (GNUSTEP_MAKEINFO, GNUSTEP_MAKEINFO_FLAGS, GNUSTEP_MAKETEXT, GNUSTEP_MAKETEXT_FLAGS, GNUSTEP_TEXI2DVI, GNUSTEP_TEXI2DVI_FLAGS, GNUSTEP_TEXI2HTML, GNUSTEP_TEXI2HTML_FLAGS, GNUSTEP_DVIPS, GNUSTEP_DVIPS_FLAGS, AUTOGSDOC, JAVADOC, ALL_JAVADOCFLAGS): Moved into Instance/documentation.make * rules.make (ALL_JAVADOCFLAGS): Moved into Instance/documentation.make. * Instance/documentation.make: Set all these documentation specific flags and options here. (ADDITIONAL_MAKEINFO_FLAGS, ADDITIONAL_MAKETEXT_FLAGS, ADDITIONAL_TEXI2DVI_FLAGS, ADDITIONAL_TEXI2HTML_FLAGS, ADDITIONAL_DVIPS_FLAGS): New variables. Fri Nov 1 13:36:25 2002 Nicola Pero * ChangeLog: Moved into ChangeLog.1