Node:PC Compiling, Next:PC Using, Previous:PC Binary Installation, Up:PC Installation
gawk
for PC Operating Systemsgawk
can be compiled for MS-DOS, Win32, and OS/2 using the GNU
development tools from DJ Delorie (DJGPP; MS-DOS only) or Eberhard
Mattes (EMX; MS-DOS, Win32 and OS/2). Microsoft Visual C/C++ can be used
to build a Win32 version, and Microsoft C/C++ can be
used to build 16-bit versions for MS-DOS and OS/2. The file
README_d/README.pc
in the gawk
distribution contains
additional notes, and pc/Makefile
contains important information on
compilation options.
To build gawk
for MS-DOS, Win32, and OS/2 (16 bit; for 32 bit (EMX)
see below), copy the files in the pc
directory (except for
ChangeLog
) to the directory with the rest of the gawk
sources.
The Makefile
contains a configuration section with comments and may need
to be edited in order to work with your make
utility.
The Makefile
contains a number of targets for building various MS-DOS,
Win32, and OS/2 versions. A list of targets is printed if the make
command is given without a target. As an example, to build gawk
using the DJGPP tools, enter make djgpp
.
Using make
to run the standard tests and to install gawk
requires additional Unix-like tools, including sh
, sed
, and
cp
. In order to run the tests, the test/*.ok
files may need to
be converted so that they have the usual DOS-style end-of-line markers. Most
of the tests work properly with Stewartson's shell along with the
companion utilities or appropriate GNU utilities. However, some editing of
test/Makefile
is required. It is recommended that you copy the file
pc/Makefile.tst
over the file test/Makefile
as a
replacement. Details can be found in README_d/README.pc
and in the file pc/Makefile.tst
.
To build gawk
for OS/2 (32 bit, EMX), there are three possibilities:
configure
script included in the official gawk
distribution.
configure
need not be recreated but a number of restrictions exist
when using this choice:
gettext
library cannot be used. I.e. the configure
option
--without-included-gettext
does not work. Unfortunately,
the internal gettext
library is seriuosly broken for OS/2.
Therefore you have to use --disable-nls
.
a.out
format only).
make install
does not work.
These restrictions are due to restrictions in Autoconf 2.13 and cannot be
avoided. They will vanish as soon as gawk
moves on to Autoconf 2.5x.
Now enter the following commands at your sh
prompt:
$ CC="gcc"; export CC $ CFLAGS="-O2"; export CFLAGS $ AWK="awk"; export AWK $ LD="ld"; export LD $ LDFLAGS="-Zexe"; export LDFLAGS $ RANLIB="ranlib"; export RANLIB $ ac_cv_header_sys_socket_h="yes" $ export ac_cv_header_sys_socket_h $ ./configure --prefix=c:/usr --disable-nls $ make
configure
.
Not tested. In principle this should work but the same restrictions
apply as in 1, but the environment variables CC
, AWK
,
LDFLAGS
and RANLIB
are not necessary.
configure
(2.52f or higher recommended).
Some patches must be applied to Makefile.am
and test/Makefile.am
and po/Makefile.in.in
. Currently not supported.
Note: Even if the compiled gawk.exe
executable contains a DOS header
(a.out
format), it does not work under DOS. To compile an executable
that runs under DOS, CPPFLAGS
must be set to "-DPIPES_SIMULATED"
.
But then some nonstandard extensions of gawk
(e.g., |&
) do not work!
After compilation the internal tests can be performed. Enter
make check CMP="diff -a"
at your command prompt. All tests
but the pid
test are expected to work properly. The pid
test might or might not work, no idea why.
Note: Most OS/2 ports of GNU make
are not able to handle
the Makefiles of this package. If you encounter any problems with make
try GNU make
3.79.1. You should find the latest version on
ftp://ftp.unixos2.org.