1@c -*-texinfo-*-
2@ifclear ANNOUNCE-ONLY
3@chapter NEWS
4
5@ifset TEXT-ONLY
6@include version.texi
7@end ifset
8
9The currently released version is @samp{@value{GNUSTEP-MAKE-VERSION}}.
10@end ifclear
11
12@section Changes in version @samp{2.8.0}
13
14@itemize
15
16@item Better library combo and ABI detection: gnustep-make will now attempt to
17detect the optimal library combo and ABI supported by the installed compiler
18and Objective-C runtime library. Explicit selection of the runtime ABI is now
19possible using the @code{--with-runtime-abi} configure option.
20
21@item Full support for the gnustep-2.0 Objective-C ABI.
22
23@item Support for creating a Git tag and creating a tarball from a git tag
24using the @code{git-tag} and @code{git-dist} targets.
25
26@item Support for creating a Mercurial tag and creating a tarball from a hg
27tag using the @code{hg-tag} and @code{hg-dist} targets.
28
29@item Dropped legacy Rhapsody and FreeBSD-out support.
30
31@end itemize
32
33@section Changes in version @samp{2.7.0}
34
35Garbage collection support removed
36
37ARC enabled by default if the ng runtime is used
38
39Multi-architecture directory layout adjusted to be more Debian compatible
40
41Framework support fixes
42
43Various other minor bugfixes
44
45@ifclear ANNOUNCE-ONLY
46
47@section Changes in version @samp{2.6.8}
48
49Configure option '--with-library-combo=ng-gnu-gnu' to use the 'Next Generation' setup of the latest ObjectiveC-2 runtime and compiler features rather than traditional runtime.  Requires the new runtime and a recent clang compiler.
50
51With the 'ng' runtime in use, you can define GS_WITH_ARC=1 at the start of a makefile, or in your environment, or in the command line arguments to have objC code built using ARC.
52
53Command line option 'documentation=no' to suppress builds of documentation.
54
55Integration of testsuite for regression/unit testing of libraries using the 'check' target.  In your makefile define libraryname_TEST_DIR = TestsSubdirectory
56
57Various minor bugfixes, documentation spelling corrections etc.
58
59The '--enable-strict-v2-mode' option is now, after eight years, turned on by default (in anticipation of finally removing backward compatibility with version one).  WARNING; Packagers please ensure that you update any old gnustep-make version one makefiles.
60
61Garbage collection support to be removed at the next release.
62
63@section Changes in version @samp{2.6.7}
64
65Improved package building support
66
67Improved environment variable support
68
69Improved Java support
70
71Various minor bugfixes, documentation spelling corrections etc.
72
73@section Changes in version @samp{2.6.6}
74
75Debian packaging support
76
77Minor bugfixes.
78
79@section Changes in version @samp{2.6.5}
80
81Bugfix for non-fragile ABI test
82
83Bugfix order if include diorectories for system includes
84
85Bugfix equality test for prorocol testing
86
87Added minimal test support for .c and .cc files.
88
89@section Changes in version @samp{2.6.4}
90
91Test framework extended equality tests.
92
93Android build target
94
95@section Changes in version @samp{2.6.3}
96
97Minor bugfix release.
98
99@section Changes in version @samp{2.6.2}
100
101Added standalone filesystem layout for putting everything in
102one directory for easy deployment of relocatable. Other bug fixes.
103
104@section Changes in version @samp{2.6.1}
105
106Bug fix release. Most notably to fix a problem compiling GNUstep with clang.
107
108@section Changes in version @samp{2.6.0}
109
110@itemize @bullet
111@item The default filesystem layout is now the 'fhs' layout
112@item The default location of the configuration file changed when not installing system-wide
113@item Removed the --with-system-root, --with-local-root and --with-network-root options
114@item Removed obsolete variables (deprecated 4 years ago).
115@item A new test framework is included in the pacakge
116@item objc.make deprecated. Use tool.make instead
117@item --enable-absolute-install-paths is now the default on Darwin
118@end itemize
119
120@section Changes in version @samp{2.4.0}
121
122@itemize @bullet
123@item Add --enable-objc-nonfragile-abi flag
124@item New serial-subdirectories.make and parallel-subdirectories.make.
125@item Support for parallel building of subdirectories.
126@item Support for parallel building of different instances.
127@item Support source files in subdirectories without using a subproject.
128@item Support header files in sub-subdirectories.
129@item Batch-compile Java files (much faster).
130@item Changed default compilation flags to -O2 -g.
131@item Fixes for building documentation.
132@item Renamed info files to prevent conflicts.
133@item Updated cygwin support.
134@end itemize
135
136@section Changes in version @samp{2.2.0}
137
138@itemize @bullet
139@item New --with-objc-lib-flag for specifying libobjc.
140@item Automatically uses -lobjc_gc with configured with garbage collection
141@item Parallel building supported using e.g. make -j 2
142@item Use install -p if available.
143@item make uninstall works better now.
144@end itemize
145
146@section Changes in version @samp{2.0.8}
147
148Minor bug fix to deal with installing in different domains
149
150@section Changes in version @samp{2.0.7}
151@itemize @bullet
152@item New configuration file to set default installation
153@item gnustep-make now uses the --no-print-directory flag when invoking make
154@item Files make have same name but different extensions (.c and .m)
155@item Change in path checking algorithm in GNUstep.sh and GNUstep.csh
156@item Test applications linked against gnustep-gui by default
157@end itemize
158
159@section Changes in version @samp{2.0.6}
160
161@itemize @bullet
162@item Fixed some spurious rebuilds of plists, and framework headers.
163@item Added the --enable-absolute-install-paths option for Darwin systems.
164@item Install GNUstep.conf in /etc/GNUstep/GNUstep.conf on all systems.
165@end itemize
166
167@section Changes in version @samp{2.0.5}
168
169@itemize @bullet
170@item Update C++ and ObjC++ support so that g++ and proper flags are automatically used.
171@item Added a new filesystem layout for Apple Mac OS X and use this by default on this system.
172@item NEEDS_GUI variable added to determine linking behavior against gui library.
173@item New option --enable-strict-v2-mode to test for obsolete variables.
174@item ~/GNUstep/GNUstep.sh is no longer sourced.
175@end itemize
176
177@section Changes in version @samp{2.0.4}
178
179Fixed a bug finding relative paths on Windows (during configuration).
180
181@section Changes in version @samp{2.0.3}
182
183New man pages for tools. Better uninstallation of files
184Add Windows installer makefile for Applications.
185
186@section Changes in version @samp{2.0.2}
187
188Update license to GPLv3.
189
190@section Changes in version @samp{2.0.1}
191
192Bug fixes in filesystem layout and framework installation.
193
194@section Changes in version @samp{2.0.0}
195
196The Makefile package has had a major makover which befits a major
197version update.  The most user-visible change of this is customized
198filesystem support.  GNUstep can now be configured and installed using
199any of many typical filesystem layouts, including FHS, Mac, and the
200traditional GNUstep layout.
201
202Due to this change a number of variable names have been changed or
203deprecated. If you are a developer maintaining makefiles, you should
204check your makefiles for these variables. Most notibly, variables such
205as @samp{GNUSTEP_SYSTEM_ROOT} no longer make any sense, as various
206directories that were previously in a traditional GNUstep system root
207directory exist accross multiple directories in disparate places in
208other filesystem layouts.
209
210If you are a user or developer that is just installing GNUstep, read
211the @file{GNUstep-HOWTO} and @file{INSTALL} documents to find out new
212information about configuring and installing make.
213
214If you are a developer, read the files @file{filesystem} and
215@file{make} for information on new and changed variables. Read the
216@file{RELEASENOTES} file for specific changes in this release and updates
217you will need to make with this version of make.
218
219Various changes include (See @file{RELEASENOTES} for more information):
220@itemize @bullet
221
222@item New configure option @samp{--with-layout} to choose different
223filesystem layouts.
224@item All applications use the @samp{.app} extension even when compiled with
225debugging or profiling.
226@item Precompiled header support added using xxx_OBJC_PRECOMPILED_HEADERS.
227@item gnustep-config is a program which prints out information on the
228GNUstep filesystem and variables (Similar to programs like pkg-config).
229@item Better inline messages/help, including printing the version
230of gnustep-make that is being used
231@item Applications can be started now just using their name (by
232installing a wrapper in the tools directory).
233@item Versioning of Microsoft Windows DLLs implemented.
234@item Use of @samp{GNUSTEP_SYSTEM_ROOT} and similar variables
235deprecated.
236@item Implement use of GNU standard @samp{DESTDIR} variable.
237@item Object files are now placed in the @file{obj} directory.
238@item Static and profile libraries have the same name as normal libraries.
239@item Support for Admin Tools and Admin Apps directories
240@item RPM support rewritten
241@item Microsoft Windows support updated and extended
242@item Easy consistent way to link non-installed frameworks by using
243-Lpath_to_framework/xxx.framework/$GNUSTEP_TARGET_LDIR
244@item Versioning of library resources
245@item Fixed rebuilding .plist and .palette files
246@end itemize
247
248@section Changes in version @samp{1.13.0}
249
250Debug libraries now have the same name as normal libraries (i.e. no "_d"
251suffix). This reduces the possiblity of multiple libraries being loaded
252into the same executable.
253
254Added dragonfly OS to make targets.
255
256Spaces and backslashes are no longer allowed in paths used by the make
257package (e.g. with Windows OS). The libraries can still use native paths.
258
259@section Changes in version @samp{1.12.0}
260
261Minor fixes.
262
263@section Changes in version @samp{1.11.2}
264
265The @file{GNUstep.conf} file is now viewed as the essential
266determination of the install location for GNUstep libraries, tools and
267other files. During configuration, this file is read, if it exists, to
268determine this information. This can still be overriden with
269environment and command line options, however. See the filesystem
270documentation in the GNUstep Make Documentation directory for more
271information.
272
273You no longer need to source GNUstep.sh in order to compile GNUstep
274programs. All that is needed is the definition of
275GNUSTEP_MAKEFILES. You should also have the GNUstep system tools
276directory in your path.
277
278All netbsd systems are assumed to use ELF libraries. Support for the old
279static libs version of netbsd was removed.
280
281Serveral new options were added to configure to change the location of
282basic dir locations and basic configuration files. Also, the help was
283greatly improved. Note that --prefix=/usr/GNUstep/System no longer
284works.  Please use --prefix=/usr/GNUstep or
285--with-system-root=/usr/GNUstep/System.
286
287A few more fixes for cygwin are included as well as Windows resource rules.
288
289Support for ObjC++ has been added. You should list the ObjC++ .mm
290files in the xxx_OBJCC_FILES variable, and put extra ObjC++ flags in
291xxx_OBJCCFLAGS or ADDITIONAL_OBJCCFLAGS.
292
293@section Changes in version @samp{1.11.1}
294
295Part of the previous change was reversed. Now libobjc is still linked
296with individual applications (as well as the base library), since some
297operating systems require this to resolve external symbols. However,
298there is no need to recompile all applications again.
299
300Compilation of GNUstep on cygwin was revampled and fixed due to a lot of
301work by Tom MacSween.
302
303@section Changes in version @samp{1.11.0}
304
305NOTE: The libobjc library is now linked in with the base library and NOT with
306individual applications or tools (except on MingW). This requires that
307you do a complete rebuild of all libraries, tools and apps when switching
308to this new version.
309
310@itemize @bullet
311
312@item New rules for building and using DLLs were implemented. Now gcc
313and other tricks are used to properly export symbols, so no .def file
314should be needed.
315
316@item The GNUsteprc file in $GNUSTEP_SYSTEM_ROOT is deprecated. See the
317new GNUstep.conf file (which is not installed by default).
318
319@item Psuedo-framwork support was implemented on MingW. This essentially
320involves copying the framework to several places so it can be used without
321links, which Windows does not really support.  There's no other
322clean way to do it.
323
324@item Support for xxx_WINDRES_FILES on MinGW was implemented.
325
326@end itemize
327
328@section Changes in version @samp{1.10.0}
329
330@itemize @bullet
331@item a GNUsteprc file is now automatically created and installed in
332$GNUSTEP_SYSTEM_ROOT, which sets the system-wide default for the user
333root directory (default=~/GNUstep, which can be overriden with the
334@code{--with-user-root} argument to configure, or by modifying GNUsteprc
335after configuration.)
336@item make_services is not run by GNUstep.sh anymore. You must run this
337manually now (see the gnustep-gui documentation).
338@item Palettes use a plist instead of a strings format file now for the
339palette.table file.
340@item You can use the @code{--enable-native-objc-exceptions} argument to
341configure to enable use of built in objc exceptions with compilers that
342support it.
343@end itemize
344
345@section Changes in version @samp{1.9.2}
346
347@itemize @bullet
348@item Application and Bundles use the latest convention on Apple.
349@item Improve/Simplify dependency checking when making docs
350@end itemize
351
352@section Changes in version @samp{1.9.1}
353
354@itemize @bullet
355@item Remove @code{--disable-import} option
356@item README.Darwin for darwin/MacOSX install
357@item Framework version and naming clarified.
358@end itemize
359
360@section Changes in version @samp{1.9.0}
361
362@itemize @bullet
363@item Support for building in a separate build dir.
364@item Add @code{--enable-strip-makefiles} option to configure
365@item List of classes in a framework gets written to the plist file.
366@end itemize
367
368@section Changes in version @samp{1.8.0}
369
370Read the NEWS file for a complete list of changes since the last stable
371release. The major difference from 1.6.0 is that the locations of certain
372directories have changed. Generally this will not cause a problem unless
373your GNUstep directory is shared by multiple machines running this and
374earlier (1.6.x) versions of the software.
375
376@section Changes in version @samp{1.7.4}
377
378Bug fixes.
379
380@section Changes in version @samp{1.7.3}
381
382@itemize @bullet
383@item Adds library combo to Headers directory if not flattened.
384@item Add Markup file (Renaissance) support.
385@end itemize
386
387@section Changes in version @samp{1.7.2}
388
389--enable-flattened (Flat directory structure) is on by default.
390
391@itemize @bullet
392@item On WIN32 use HOMEPATH in preference to USERPROFILE
393@item netbsd and openbsd compile fixes.
394@end itemize
395
396@section Changes in version @samp{1.7.1}
397
398Bug fixes.
399
400@section Changes in version @samp{1.7.0}
401
402This version contains a major change in the location of certain
403directories and installed files as detailed in the @file{filesystem.texi}
404document. When installing this version for the first time, all old
405directories and files in those directories will be moved to the new
406locations automatically. However, you should update all GNUstep versions
407on any machine you have them installed on in order to avoid any
408incompatibilities.
409
410Other changes:
411
412@itemize @bullet
413@item Support for preprocessed Info.plists.
414@end itemize
415
416@section Changes in version @samp{1.6.0}
417
418Make now configures by default for only one system. To compile and run
419GNUstep for multiple platforms from the same directory, use the
420configure argument --enable-multi-platform.
421
422@itemize @bullet
423@item Auto-build def file for DLLs
424@item Work natively on MacOSX systems. Now use apple-apple-apple
425instead of nx-nx-nx on OSX systems.
426@item More efficient checks for re-making a project.
427@end itemize
428
429@section Changes in version @samp{1.5.1}
430
431@itemize @bullet
432@item Framework support rewritten, also supports multiple names.
433@item API change: Replace frameowork's xxx_TOOLS by xxx_COPY_INTO_DIR.
434@item Unified link commands between libraries and frameworks (LIB_LINK_*).
435@item New 'make strings' target for localization support.
436@item Speed improvements.
437@item Doesn't try to build OSX bundle on GNUstep and vice versa.
438@item API change: Tools/Subproj can have resources.
439@item API change: TOOL_INSTALL_DIR.
440@end itemize
441
442@section Changes in version @samp{1.5.0}
443
444@itemize @bullet
445@item Add NetBSD Elf support
446@end itemize
447
448@section Changes in version @samp{1.4.0}
449
450@itemize @bullet
451@item Update Darwin/GNU gcc and Irix targets
452@end itemize
453
454@section Changes in version @samp{1.3.4}
455
456This is a first prerelease version for 1.4.
457
458@itemize @bullet
459@item Use gnugc-gnu-gnu library combo for garbage collecting version.
460@item Add support for --library-combo in opentool
461@item Change GNUSTEP_PATHPREFIX_LIST to	GNUSTEP_PATHLIST
462@item Add verbosity levels. Use make messages=yes for full messages.
463@end itemize
464
465@section Changes in version @samp{1.3.3}
466
467@itemize @bullet
468@item Recognizes XXX_STANDARD_INSTALL=no to not do installation.
469@item Updated instructions for MingW/MSYS installation.
470@end itemize
471
472@section Changes in version @samp{1.3.2}
473
474@itemize @bullet
475@item Instructions for building on Windows with MSYS
476@item Resolve library dependencies better on Windows
477@item Fix frameworks in RPMs and DEBs
478@item Continued reorganization.
479@end itemize
480
481@section Changes in version @samp{1.3.0}
482
483The package has gone through an extensive reorganization to break up
484each sub-make into two separate components. This allows for much
485simplified code and lots of code sharing between components. As a side
486effect, it also increased the speed of the code by at least a factor of
4872.
488
489@itemize @bullet
490@item Force shared=yes for cygwin and mingw
491@item Bundles copy resources from subprojects.
492@item Better resource management. Resources handled accross all project types.
493@item Simplified and fixed user root location between make and base libraries.
494@item Changed Apps directory to Applications
495@item Fixes for MacOSX, MingW
496@end itemize
497
498@section Changes in version @samp{1.2.1}
499
500@itemize @bullet
501@item the source distribution code has been rewritten to be more general
502and extended.  Packages built using gnustep-make now automatically
503have handy targets building tarballs from sources or from CVS imports.
504@item implemented support for auto-dependencies, which means that any object
505file automatically depends on all the header files which were used to
506build it.  Only works with newer compilers.
507@item implemented INSTALL_AS_USER and INSTALL_AS_GROUP.
508@item implemented a strip=yes option.
509@item various bug fixes and minor improvements.
510@end itemize
511
512@section Changes in version @samp{1.2.0}
513
514@itemize @bullet
515@item The core rules and internals of gnustep-make have been fundamentally
516redesigned and rewritten.  notably, gnustep-make now works using only
517a single recursive sub-make invocation rather than two, which makes
518it consistently faster and simpler in all circumstances.
519@item The clean rules have been heavily optimized - they no longer use
520recursive sub-make invocations at all and so they are really fast.
521@item Many improvements to java support. Optimized management of nested classes
522@item Better conformance to make conventions.
523@item File specific compilation flags
524@item Fixed darwin support
525@item Support for C++ files.
526@item Made use of library installation dir consistent with other installation.
527@item Much improved Windows path support
528@end itemize
529
530@section Changes in version @samp{1.0.1}
531
532@itemize @bullet
533@item Support for Java tools.
534@item Build GUI backend as a bundle (default).
535@item Remove backend part of LIBRARY_COMBO.
536@item Fixes to run on FreeBSD, Solaris.
537@end itemize
538
539@section Changes in version @samp{1.0.0}
540
541@itemize @bullet
542@item Optimizations that in many cases more than double the speed.
543@item Added preliminary darwin support.
544@item rpm packeing improvements.
545@item Better checking for mingw and cygwin
546@end itemize
547
548@section Changes in version @samp{0.9.2}
549
550@itemize @bullet
551@item HOWTO and faq files moved from core package to here
552@item Configurable GNUSTEP_LOCAL_ROOT and GNUSTEP_NETWORK_ROOT
553@end itemize
554
555@section Changes in version @samp{0.9.1}
556
557Make has been reoganized so that it only relies on libraries and other things
558that are necessary for the Makefile package itself. Any libraries wanting to
559add extra package information can do so by installing a make stub in the
560@file{Additional} directory. This greatly simplifies compilation and packaging.
561
562@itemize @bullet
563@item Javadoc support added.
564@item debian directory added for dpkg
565@item RPM support rewritten from scratch.
566@end itemize
567
568@section Changes in version @samp{0.9.0}
569
570ffcall library is highly recommended for use with the GNUstep base
571library. You need to have installed it prior to configuring the Makefile
572package. See the INSTALL file.
573
574@itemize @bullet
575@item Support for automatically generating RPM spec files.
576@item Build suitable files for MacOS bundles
577@item Add option for flattened directory structure.
578@item LaText documentation support.
579@item Added support for Frameworks
580@end itemize
581
582@section Noteworthy changes in version @samp{0.6.6}
583
584The GNUstep system libraries are now installed in a separate system root
585directory (default /usr/GNUstep/System) rather than the GNUstep
586root directory (default /usr/GNUstep). You can revert to the old behavior
587using a configure option @samp{--without-system-root}. We also recommend
588removing any previous GNUstep versions before installing the new one in order
589to avoid problems with the system finding the correct binary and/or library.
590
591@itemize @bullet
592@item Support for Windows compilation (cygwin and mingw) and DLL creation
593and usage.
594@item Java support rewritten and extended.
595@end itemize
596
597@end ifclear
598@c end ifclear ANNOUNCE-ONLY
599