— part of check-in
on branch trunk
— wiki tweaks regarding MinGW build enhancements
To do a complete build, just type:
The ./configure script builds Makefile from Makefile.in based on
your system and any options you select (run "./configure --help"
for a listing of the available options.)
If you wish to use the original Makefile with no configuration, you can
make -f Makefile.classic
On a windows box, use one of the Makefiles in the win/ subdirectory,
according to your compiler and environment. If you have MinGW or
MinGW-w64 installed on your system (Msys or Cygwin, or as
cross-compile environment on Linux or Darwin), then consider:
make -f win/Makefile.mingw
If you have VC++ installed on your system, then consider:
cd win; nmake /f Makefile.msc
If you have trouble, or you want to do something fancy, just look at
Makefile.classic. There are 6 configuration options that are all well
commented. Instead of editing the Makefile.classic, consider copying
Makefile.classic to an alternative name such as "GNUMakefile",
"BSDMakefile", or "makefile" and editing the copy.
BUILDING OUTSIDE THE SOURCE TREE
An out of source build is pretty easy:
1. Make and change to a new directory to do the builds in.
2. Run the "configure" script from this directory.
3. Type: "make"
This will now keep all generates files separate from the maintained
Here are some notes on what is happening behind the scenes:
* The configure script (if used) examines the options given
and runs various tests with the C compiler to create Makefile
from the Makefile.in template as well as autoconfig.h
* The Makefile just sets up a few macros and then invokes the
real makefile in src/main.mk. The src/main.mk makefile is
automatically generated by a TCL script found at src/makemake.tcl.
Do not edit src/main.mk directly. Update src/makemake.tcl and
then rerun it.
* The *.h header files are automatically generated using a program
called "makeheaders". Source code to the makeheaders program is
found in src/makeheaders.c. Documentation is found in
* Most *.c source files are preprocessed using a program called
"translate". The sources to translate are found in src/translate.c.
A header comment in src/translate.c explains in detail what it does.
* The src/mkindex.c program generates some C code that implements
static lookup tables. See the header comment in the source code
for details on what it does.
Additional information on the build process is available from