***** FEATURES OF THIS GNU MAKE PRE-RELEASE ******

This make 3.79.2a1 is a pre-release directly from the CVS sources
with a lot of patches for OS/2. These patches will be most likely
incorporated into the next official release of GNU make. Despite
of the beta nature of this code I consider it to be quite stable.
This means basically all GNU make features are expected to work.
This also means that basically all tests of the make testsuite work
fine (with some restrictions, see III. for details).

Note: This pre-release does not contain an internal gettext library.
      Therefore you must use --without-included-gettext or --disable-nls.
      If you want to use NLS you must have already install a gettext library.

Note: make will not work under DOS.

Features that do NOT work:
- remote job execution
- dynamic load balancing

Features that may cause problems:
- Using FAT drives (not extensively tested)
- Using cmd as default shell (under very rare circumstances)

IMPORTANT: At compile time you can turn off that cmd is used as default shell
           (but only /bin/sh). Simply set CPPFLAGS="-DNO_CMD_DEFAULT" and make
           will not use cmd unless you cause it to do so by setting MAKESHELL
           to cmd or by specifying SHELL=cmd in your Makefile.

Note: OS/2 features:
      - The shell that is used by make is determined by environment
        variables using the following way:
        1. MAKESHELL
        2. SHELL (only from file, not from environment)
        3. COMSPEC
        4. OS2_SHELL
        5. /bin/sh
        (3. and 4. can be turned off at compile time by -DNO_CMD_DEFAULT)
      - currently no DOS support for EMX
      - support for $UNIXROOT to find /bin/sh if necessary


I. ***** REQUIREMENTS *****

A standard Unix like build environment:

- sh compatible shell (ksh, bash, ash, but tested only with pdksh 5.2.14
  (release 2)
- GNU file utilities (make sure that install.exe from the file utilities
is in front of your PATH before X:\OS2\INSTALL\INSTALL.EXE. I recommend
also to change the filename to ginstall.exe instead of install.exe
to avoid confusion with X:\OS2\INSTALL\INSTALL.EXE)
- GNU shell utilities
- GNU text utilities
- gawk
- grep
- sed
- GNU make 3.79.1
- perl 5.005 or higher
- GNU texinfo (you can use 3.1 (gnuinfo.zip), but I recommend 4.0)

If you want to recreate the configuration files (developers only!)
you need also: GNU m4 1.4, autoconf 2.53b, automake 1.6.2 (or compatible)



II. ***** INSTALLATION *****

a) * Developers only - All other people should really skip section II.a) *
To recreate the configuration files enter:

export EMXSHELL=ksh
aclocal -I config
automake
autoconf
autoheader


b) Installation into x:/usr

Recommended environment variables and installation options:

export ac_executable_extensions=".exe"
export CPPFLAGS="-D__ST_MT_ERRNO__"
export CFLAGS="-O2 -Zomf -Zmt"
export LDFLAGS="-Zcrtdll -Zlinker /exepack:2 -Zlinker /pm:vio -Zstack 0x8000"
export RANLIB="echo"
./configure --prefix=x:/usr --without-included-gettext
make AR=emxomfar
make install

Note: If you use gcc 2.9.x or higher I recommend to set also LIBS="-lgcc"

Note: To disable NLS use "./configure --prefix=x:/usr --disable-nls" instead.

Note: You can add -DNO_CMD_DEFAULT and -DNO_CHDIR2 to CPPFLAGS.
      See section III. for details.

Add x:\usr\bin to your PATH
Add x:/usr/man to your MANPATH
Add x:/usr/info to your INFOPATH



III. ***** CHANGES TO THE "OFFICAL" CVS code *****

- A lot of patches added. This OS/2 release does not contain any diff
  files because it is based on a simple CVS snapshot.

- Two preprocessor macros added: NO_CHDIR2 disables usage of _chdir2()
  instead of chdir(). This is necessary for the test suite.
  NO_CMD_DEFAULT disables usage of cmd as default shell, i.e. the value
  of $OS2_SHELL and $COMSPEC are completely ignored. This is also necessary
  for the test suite.


IV. ***** NLS support *****
GNU make has NLS (National Language Support), i.e. if you choose
--without-included-gettext this feature will be enabled.
You can choose the languages to be installed. To install support for English,
German and French only enter:
export LINGUAS="en de fr"
If you don't specify LINGUAS all languages are installed.
If you don't want NLS support (English only) use the option
--disable-nls for the configure script.
If want to install NLS support, you generally have two choices:
(i) Either: First install the GNU gettext library and use it for NLS.
    (recommended, no additional configure option necessary)
(ii) Or: Use the included GNU gettext library (configure option:
     --with-included-gettext), however the internal gettext in not supported in
     this beta release.



IV. ***** Running the make test suite *****

To run the included make test suite you have to set
CPPFLAGS="-D__ST_MT_ERRNO__ -DNO_CMD_DEFAULT -DNO_CHDIR2"
before you compile make. This is due to some restrictions of the testsuite
itself. -DNO_CMD_DEFAULT causes make to use /bin/sh as default shell in every
case. Normally you could simply set MAKESHELL="/bin/sh" to do this but
the testsuite ignores the environment. -DNO_CHDIR2 causes make not to use
drive letters for directory names (i.e. _chdir2() and _getcwd2() are NOT used).
The testsuite interpretes the whole output of make, especially statements like
make[1]: Entering directory `C:/somewhere/make-3.79.1/tests'
where the testsuite does not expect the drive letter. This would be
interpreted as an error even if there is none.

To run the testsuite do the following:

export CPPFLAGS="-D__ST_MT_ERRNO__ -DNO_CMD_DEFAULT -DNO_CHDIR2"
export CFLAGS="-Zomf -O2 -s -Zmt"
export LDFLAGS="-Zcrtdll -Zmt -s -Zlinker /exepack:2 -Zlinker /pm:vio -Zstack 0x8000"
export RANLIB="echo"
./configure --prefix=x:/usr --disable-nls
make AR=emxomfar
make checks

All tests should work fine with the exception of "default_names" which
is because OS/2 file systems are not case sensitive ("makefile" and
"Makefile" specify the same file).



V. ***** Uninstallation *****

1. Configure the package as normal if not already done.

2. To remove all previous installed files, enter:

make uninstall



VI. ***** IMPORTANT NOTES *****

- If you use pdksh it is recommended to update to 5.2.14 release 2. Older
  versions may not work! You can get this version at
  http://www.math.ohio-state.edu/~ilya/software/os2/pdksh-5.2.14-bin-2.zip


--
maintainer: andreas.buening@nexgo.de

