Installation instructions for make 3.79.1 (OS/2)

Make sure you have installed the software required to configure, compile
and install GNU software packages (See README.OS2 section I. for details).
Prepare your shell for the configuration process (See README.OS2 section
II. for details).

***** FEATURES OF THIS GNU MAKE RELEASE ******

This make 3.79.1 is a final release. 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: 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: 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
      - currently no DOS support for EMX
      - support for $UNIXROOT to find /bin/sh if necessary


***** SHORT INSTALLATION INSTRUCTIONS *****

Provided you want to install this software into x:/usr an subdirectories of it:

export CFLAGS="-Zomf -O2 -s -Zmt -D__ST_MT_ERRNO__"
export LDFLAGS="-Zcrtdll -Zmt -s -Zlinker /exepack:2 -Zlinker /pm:vio  -Zstack 0x8000"
export RANLIB="echo"

if you use gcc 2.9x or higher, use also:
export LIBS=-lgcc

./configure --prefix=x:/usr --without-included-gettext
make
make install



I. ***** DETAILED INSTALLATION INSTRUCTIONS *****

The following packages must have been installed before:

- GNU gettext 0.39 or compatible (recommended)

If you want to recreate your configuration files (for developers only)
you must have installed autoconf 2.50 and automake 1.5 (or newer versions).
Enter the following:

export EMXSHELL=ksh
automake
autoconf
autoheader


If you want to install this software into subdirectories of x:/usr
enter the following:

- (optional, only if you want to install support for some languages
but not for all, see README.OS2 for details)
export LINGUAS="en de fr"
This will install only "de" and "fr" ("en" is the default).

- Enter the following lines:
CFLAGS="-Zomf -O2 -s -Zmt -D__ST_MT_ERRNO__"
LDFLAGS="-Zcrtdll -Zmt -s -Zlinker /exepack:2 -Zlinker /pm:vio -Zstack 0x8000"
RANLIB="echo"
./configure --prefix=x:/usr --without-included-gettext

if you're using gcc/pgcc 2.95 or higher you may want to set also
LIBS="-lgcc" before calling configure
Then your program will not require the compiler dependent library gcc????m.dll,
but your executable may (or may not) increase in size.

- make AR=emxomfar

- make install


Now some executables have been installed into x:/usr/bin
and some other files into subdirectories of x:/usr
Add x:/usr/bin to your PATH
Add x:/usr/man to your MANPATH
Add x:/usr/info to your INFOPATH



II. ***** INSTALLATION OF make 3.79.1 FROM THE ORIGINAL GNU SOURCE: *****

1. Download the autoconf package from ftp://ftp.gnu.org/gnu/make/.
Apply the patches from diff-patches/*.
Replace mkinstalldirs by an OS/2 compatible version.
Replace config.guess, config.sub by a newer version.

2. export EMXSHELL=ksh
automake
autoconf
autoheader

3. Proceed with the normal installation process in section II.


III. Running the make testsuite

To run the included make testsuite you have to set
CPPFLAGS="-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 stamements 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="-DNO_CMD_DEFAULT -DNO_CHDIR2"
export CFLAGS="-Zomf -O2 -s -Zmt -D__ST_MT_ERRNO__"
export LDFLAGS="-Zcrtdll -Zmt -s -Zlinker /exepack:2 -Zlinker /pm:vio -Zstack 0x8000"
export RANLIB="echo"
./configure --prefix=x:/usr --without-included-gettext
make AR=emxomfar

cd tests
perl ./run_make_tests.pl -make_path x:/your_make_path/make-3.79.1/make.exe

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).


IV. Uninstallation

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

2. To remove all previous installed files, enter:

make uninstall



V. Special notes:

1. Additionally to the original GNU package make-3_79_1_tar.gz this
special OS/2 patch contains the following files:

INSTALL.OS2
README.OS2
diff-patches/*

2. Some paths may be linked into the executables. If you move some of the
files from this package to another location you may have to reinstall
the whole package.


--
Maintainer: Andreas Buening, <andreas.buening@nexgo.de>

