|
1
|
To do a complete build, just type: |
|
2
|
|
|
3
|
./configure; make |
|
4
|
|
|
5
|
The ./configure script builds Makefile from Makefile.in based on |
|
6
|
your system and any options you select (run "./configure --help" |
|
7
|
for a listing of the available options.) |
|
8
|
|
|
9
|
If you wish to use the original Makefile with no configuration, you can |
|
10
|
instead use: |
|
11
|
|
|
12
|
make -f Makefile.classic |
|
13
|
|
|
14
|
On a windows box, use one of the Makefiles in the win/ subdirectory, |
|
15
|
according to your compiler and environment. If you have MinGW or |
|
16
|
MinGW-w64 installed on your system (Msys or Cygwin, or as |
|
17
|
cross-compile environment on Linux or Darwin), then consider: |
|
18
|
|
|
19
|
make -f win/Makefile.mingw |
|
20
|
|
|
21
|
If you have VC++ installed on your system, then consider: |
|
22
|
|
|
23
|
cd win; nmake /f Makefile.msc |
|
24
|
|
|
25
|
If you have trouble, or you want to do something fancy, just look at |
|
26
|
Makefile.classic. There are 6 configuration options that are all well |
|
27
|
commented. Instead of editing the Makefile.classic, consider copying |
|
28
|
Makefile.classic to an alternative name such as "GNUMakefile", |
|
29
|
"BSDMakefile", or "makefile" and editing the copy. |
|
30
|
|
|
31
|
|
|
32
|
BUILDING OUTSIDE THE SOURCE TREE |
|
33
|
|
|
34
|
An out of source build is pretty easy: |
|
35
|
|
|
36
|
1. Make and change to a new directory to do the builds in. |
|
37
|
2. Run the "configure" script from this directory. |
|
38
|
3. Type: "make" |
|
39
|
|
|
40
|
For example: |
|
41
|
|
|
42
|
mkdir build |
|
43
|
cd build |
|
44
|
../configure |
|
45
|
make |
|
46
|
|
|
47
|
This will now keep all generated files separate from the maintained |
|
48
|
source code. |
|
49
|
|
|
50
|
-------------------------------------------------------------------------- |
|
51
|
|
|
52
|
Here are some notes on what is happening behind the scenes: |
|
53
|
|
|
54
|
* The configure script (if used) examines the options given |
|
55
|
and runs various tests with the C compiler to create Makefile |
|
56
|
from the Makefile.in template as well as autoconfig.h |
|
57
|
|
|
58
|
* The Makefile just sets up a few macros and then invokes the |
|
59
|
real makefile in src/main.mk. The src/main.mk makefile is |
|
60
|
automatically generated by a TCL script found at tools/makemake.tcl. |
|
61
|
Do not edit src/main.mk directly. Update tools/makemake.tcl and |
|
62
|
then rerun it. |
|
63
|
|
|
64
|
* The *.h header files are automatically generated using a program |
|
65
|
called "makeheaders". Source code to the makeheaders program is |
|
66
|
found in tools/makeheaders.c. Documentation is found in |
|
67
|
tools/makeheaders.html. |
|
68
|
|
|
69
|
* Most *.c source files are preprocessed using a program called |
|
70
|
"translate". The sources to translate are found in tools/translate.c. |
|
71
|
A header comment in tools/translate.c explains in detail what it does. |
|
72
|
|
|
73
|
* The tools/mkindex.c program generates some C code that implements |
|
74
|
static lookup tables. See the header comment in the source code |
|
75
|
for details on what it does. |
|
76
|
|
|
77
|
Additional information on the build process is available from |
|
78
|
http://fossil-scm.org/home/doc/trunk/www/makefile.wiki |
|
79
|
|