Artifact 4f7988767e4e48b29f7eddd0e2cdea4555b9161c:
File
BUILD.txt
part of check-in
[fb1fa7f1a6]
- Make it easier to do out of source builds by optionally including config.mak or config.w32.
by
jeremy_c on
2009-12-09 22:05:46.
Also file
BUILD.txt
part of check-in
[1c2d878d12]
- Merge with trunk
by
btheado on
2009-12-13 01:16:13.
0000: 41 6c 6c 20 6f 66 20 74 68 65 20 73 6f 75 72 63 All of the sourc
0010: 65 20 63 6f 64 65 20 66 6f 72 20 66 6f 73 73 69 e code for fossi
0020: 6c 20 69 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 l is contained i
0030: 6e 20 74 68 65 20 73 72 63 2f 20 73 75 62 64 69 n the src/ subdi
0040: 72 65 63 74 6f 72 79 2e 0d 0a 42 75 74 20 74 68 rectory...But th
0050: 65 72 65 20 69 73 20 61 20 6c 6f 74 20 6f 66 20 ere is a lot of
0060: 67 65 6e 65 72 61 74 65 64 20 63 6f 64 65 2c 20 generated code,
0070: 73 6f 20 79 6f 75 20 77 69 6c 6c 20 70 72 6f 62 so you will prob
0080: 61 62 6c 79 20 77 61 6e 74 20 74 6f 0d 0a 75 73 ably want to..us
0090: 65 20 74 68 65 20 4d 61 6b 65 66 69 6c 65 2e 20 e the Makefile.
00a0: 20 54 6f 20 64 6f 20 61 20 63 6f 6d 70 6c 65 74 To do a complet
00b0: 65 20 62 75 69 6c 64 2c 20 6a 75 73 74 20 74 79 e build, just ty
00c0: 70 65 3a 0d 0a 0d 0a 20 20 20 6d 61 6b 65 0d 0a pe:.... make..
00d0: 0d 0a 54 68 61 74 20 73 68 6f 75 6c 64 20 77 6f ..That should wo
00e0: 72 6b 20 6f 75 74 2d 6f 66 2d 74 68 65 2d 62 6f rk out-of-the-bo
00f0: 78 20 6f 6e 20 4d 61 63 73 20 61 6e 64 20 4c 69 x on Macs and Li
0100: 6e 75 78 20 73 79 73 74 65 6d 73 2e 20 49 66 20 nux systems. If
0110: 79 6f 75 20 61 72 65 0d 0a 62 75 69 6c 64 69 6e you are..buildin
0120: 67 20 6f 6e 20 61 20 57 69 6e 64 6f 77 73 20 62 g on a Windows b
0130: 6f 78 2c 20 69 6e 73 74 61 6c 6c 20 4d 69 6e 47 ox, install MinG
0140: 57 20 61 73 20 77 65 6c 6c 20 61 73 20 4d 69 6e W as well as Min
0150: 47 57 27 73 20 6d 61 6b 65 20 28 6f 72 0d 0a 4d GW's make (or..M
0160: 53 59 53 29 2e 20 59 6f 75 20 63 61 6e 20 74 68 SYS). You can th
0170: 65 6e 20 74 79 70 65 3a 0d 0a 0d 0a 20 20 6d 61 en type:.... ma
0180: 6b 65 20 2d 66 20 4d 61 6b 65 66 69 6c 65 2e 77 ke -f Makefile.w
0190: 33 32 0d 0a 0d 0a 49 66 20 79 6f 75 20 68 61 76 32....If you hav
01a0: 65 20 74 72 6f 75 62 6c 65 2c 20 6f 72 20 79 6f e trouble, or yo
01b0: 75 20 77 61 6e 74 20 74 6f 20 64 6f 20 73 6f 6d u want to do som
01c0: 65 74 68 69 6e 67 20 66 61 6e 63 79 2c 20 6a 75 ething fancy, ju
01d0: 73 74 20 6c 6f 6f 6b 20 61 74 0d 0a 74 6f 70 20 st look at..top
01e0: 6c 65 76 65 6c 20 6d 61 6b 65 66 69 6c 65 2e 20 level makefile.
01f0: 54 68 65 72 65 20 61 72 65 20 35 20 63 6f 6e 66 There are 5 conf
0200: 69 67 75 72 61 74 69 6f 6e 20 6f 70 74 69 6f 6e iguration option
0210: 73 20 74 68 61 74 20 61 72 65 20 61 6c 6c 20 77 s that are all w
0220: 65 6c 6c 0d 0a 63 6f 6d 6d 65 6e 74 65 64 2e 20 ell..commented.
0230: 49 6e 73 74 65 61 64 20 6f 66 20 65 64 69 74 69 Instead of editi
0240: 6e 67 20 74 68 65 20 4d 61 6b 65 66 69 6c 65 2c ng the Makefile,
0250: 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 66 69 create a new fi
0260: 6c 65 20 6e 61 6d 65 64 0d 0a 63 6f 6e 66 69 67 le named..config
0270: 2e 6d 61 6b 20 28 66 6f 72 20 4d 61 63 73 20 61 .mak (for Macs a
0280: 6e 64 20 4c 69 6e 75 78 20 73 79 73 74 65 6d 73 nd Linux systems
0290: 29 20 6f 72 20 63 6f 6e 66 69 67 2e 77 33 32 20 ) or config.w32
02a0: 28 66 6f 72 20 57 69 6e 64 6f 77 73 29 20 61 6e (for Windows) an
02b0: 64 0d 0a 6f 76 65 72 72 69 64 65 20 61 6e 79 20 d..override any
02c0: 73 65 74 74 69 6e 67 73 20 79 6f 75 20 77 69 73 settings you wis
02d0: 68 20 74 68 65 72 65 2e 0d 0a 0d 0a 4f 75 74 20 h there.....Out
02e0: 6f 66 20 73 6f 75 72 63 65 20 62 75 69 6c 64 73 of source builds
02f0: 3f 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ?..-------------
0300: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0310: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0320: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0330: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d -------------...
0340: 0a 41 6e 20 6f 75 74 20 6f 66 20 73 6f 75 72 63 .An out of sourc
0350: 65 20 62 75 69 6c 64 20 69 73 20 70 72 65 74 74 e build is prett
0360: 79 20 65 61 73 79 3a 0d 0a 0d 0a 20 20 31 2e 20 y easy:.... 1.
0370: 4d 61 6b 65 20 61 20 6e 65 77 20 64 69 72 65 63 Make a new direc
0380: 74 6f 72 79 20 74 6f 20 64 6f 20 74 68 65 20 62 tory to do the b
0390: 75 69 6c 64 73 20 69 6e 2e 0d 0a 20 20 32 2e 20 uilds in... 2.
03a0: 43 72 65 61 74 65 20 61 20 63 6f 6e 66 69 67 2e Create a config.
03b0: 6d 61 6b 20 28 6f 72 20 2e 77 33 32 20 2e 2e 2e mak (or .w32 ...
03c0: 20 65 78 70 6c 61 69 6e 65 64 20 61 62 6f 76 65 explained above
03d0: 29 20 61 6e 64 20 61 64 64 20 73 6f 6d 65 74 68 ) and add someth
03e0: 69 6e 67 0d 0a 20 20 61 6c 6f 6e 67 20 74 68 65 ing.. along the
03f0: 20 6c 69 6e 65 73 20 6f 66 3a 0d 0a 0d 0a 20 20 lines of:....
0400: 20 20 53 52 43 44 49 52 3d 2e 2e 2f 73 72 63 0d SRCDIR=../src.
0410: 0a 0d 0a 20 20 33 2e 20 46 72 6f 6d 20 74 68 61 ... 3. From tha
0420: 74 20 64 69 72 65 63 74 6f 72 79 2c 20 74 79 70 t directory, typ
0430: 65 3a 0d 0a 0d 0a 20 20 20 20 4d 61 63 73 20 61 e:.... Macs a
0440: 6e 64 20 4c 69 6e 75 78 3a 0d 0a 20 20 20 20 20 nd Linux:..
0450: 20 24 20 6d 61 6b 65 20 2d 66 20 2e 2e 2f 4d 61 $ make -f ../Ma
0460: 6b 65 66 69 6c 65 0d 0a 0d 0a 20 20 20 20 57 69 kefile.... Wi
0470: 6e 64 6f 77 73 3a 0d 0a 20 20 20 20 20 20 43 3a ndows:.. C:
0480: 5c 66 6f 73 73 69 6c 5c 62 75 69 6c 64 3e 20 6d \fossil\build> m
0490: 61 6b 65 20 2d 66 20 2e 2e 2f 4d 61 6b 65 66 69 ake -f ../Makefi
04a0: 6c 65 2e 77 33 32 0d 0a 0d 0a 54 68 69 73 20 77 le.w32....This w
04b0: 69 6c 6c 20 6e 6f 77 20 6b 65 65 70 20 61 6c 6c ill now keep all
04c0: 20 67 65 6e 65 72 61 74 65 73 20 66 69 6c 65 73 generates files
04d0: 20 73 65 70 65 72 61 74 65 20 66 72 6f 6d 20 74 seperate from t
04e0: 68 65 20 6d 61 69 6e 74 61 69 6e 65 64 0d 0a 73 he maintained..s
04f0: 6f 75 72 63 65 20 63 6f 64 65 2e 0d 0a 0d 0a 2d ource code.....-
0500: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0510: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0520: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0530: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0540: 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 48 65 72 ---------....Her
0550: 65 20 61 72 65 20 73 6f 6d 65 20 6e 6f 74 65 73 e are some notes
0560: 20 6f 6e 20 77 68 61 74 20 69 73 20 68 61 70 70 on what is happ
0570: 65 6e 69 6e 67 20 62 65 68 69 6e 64 20 74 68 65 ening behind the
0580: 20 73 63 65 6e 65 73 3a 0d 0a 0d 0a 2a 20 54 68 scenes:....* Th
0590: 65 20 4d 61 6b 65 66 69 6c 65 20 6a 75 73 74 20 e Makefile just
05a0: 73 65 74 73 20 75 70 20 61 20 66 65 77 20 6d 61 sets up a few ma
05b0: 63 72 6f 73 20 61 6e 64 20 74 68 65 6e 20 69 6e cros and then in
05c0: 76 6f 6b 65 73 20 74 68 65 0d 0a 20 20 72 65 61 vokes the.. rea
05d0: 6c 20 6d 61 6b 65 66 69 6c 65 20 69 6e 20 73 72 l makefile in sr
05e0: 63 2f 6d 61 69 6e 2e 6d 6b 2e 20 20 54 68 65 20 c/main.mk. The
05f0: 73 72 63 2f 6d 61 69 6e 2e 6d 6b 20 6d 61 6b 65 src/main.mk make
0600: 66 69 6c 65 20 69 73 0d 0a 20 20 61 75 74 6f 6d file is.. autom
0610: 61 74 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 atically generat
0620: 65 64 20 62 79 20 61 20 54 43 4c 20 73 63 72 69 ed by a TCL scri
0630: 70 74 20 66 6f 75 6e 64 20 61 74 20 73 72 63 2f pt found at src/
0640: 6d 61 6b 65 6d 61 6b 65 2e 74 63 6c 2e 0d 0a 20 makemake.tcl...
0650: 20 44 6f 20 6e 6f 74 20 65 64 69 74 20 73 72 63 Do not edit src
0660: 2f 6d 61 69 6e 2e 6d 6b 20 64 69 72 65 63 74 6c /main.mk directl
0670: 79 2e 20 20 55 70 64 61 74 65 20 73 72 63 2f 6d y. Update src/m
0680: 61 6b 65 6d 61 6b 65 2e 74 63 6c 20 61 6e 64 0d akemake.tcl and.
0690: 0a 20 20 74 68 65 6e 20 72 65 72 75 6e 20 69 74 . then rerun it
06a0: 2e 0d 0a 0d 0a 2a 20 54 68 65 20 2a 2e 68 20 68 .....* The *.h h
06b0: 65 61 64 65 72 20 66 69 6c 65 73 20 61 72 65 20 eader files are
06c0: 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 automatically ge
06d0: 6e 65 72 61 74 65 64 20 75 73 69 6e 67 20 61 20 nerated using a
06e0: 70 72 6f 67 72 61 6d 0d 0a 20 20 63 61 6c 6c 65 program.. calle
06f0: 64 20 22 6d 61 6b 65 68 65 61 64 65 72 73 22 2e d "makeheaders".
0700: 20 20 53 6f 75 72 63 65 20 63 6f 64 65 20 74 6f Source code to
0710: 20 74 68 65 20 6d 61 6b 65 68 65 61 64 65 72 73 the makeheaders
0720: 20 70 72 6f 67 72 61 6d 20 69 73 0d 0a 20 20 66 program is.. f
0730: 6f 75 6e 64 20 69 6e 20 73 72 63 2f 6d 61 6b 65 ound in src/make
0740: 68 65 61 64 65 72 73 2e 63 2e 20 20 44 6f 63 75 headers.c. Docu
0750: 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 66 6f 75 mentation is fou
0760: 6e 64 20 69 6e 20 0d 0a 20 20 73 72 63 2f 6d 61 nd in .. src/ma
0770: 6b 65 68 65 61 64 65 72 73 2e 68 74 6d 6c 2e 0d keheaders.html..
0780: 0a 0d 0a 2a 20 4d 6f 73 74 20 2a 2e 63 20 73 6f ...* Most *.c so
0790: 75 72 63 65 20 66 69 6c 65 73 20 61 72 65 20 70 urce files are p
07a0: 72 65 70 72 6f 63 65 73 73 65 64 20 75 73 69 6e reprocessed usin
07b0: 67 20 61 20 70 72 6f 67 72 61 6d 20 63 61 6c 6c g a program call
07c0: 65 64 0d 0a 20 20 22 74 72 61 6e 73 6c 61 74 65 ed.. "translate
07d0: 22 2e 20 20 54 68 65 20 73 6f 75 72 63 65 73 20 ". The sources
07e0: 74 6f 20 74 72 61 6e 73 6c 61 74 65 20 61 72 65 to translate are
07f0: 20 66 6f 75 6e 64 20 69 6e 20 73 72 63 2f 74 72 found in src/tr
0800: 61 6e 73 6c 61 74 65 2e 63 2e 0d 0a 20 20 41 20 anslate.c... A
0810: 68 65 61 64 65 72 20 63 6f 6d 6d 65 6e 74 20 69 header comment i
0820: 6e 20 73 72 63 2f 74 72 61 6e 73 6c 61 74 65 2e n src/translate.
0830: 63 20 65 78 70 6c 61 69 6e 73 20 69 6e 20 64 65 c explains in de
0840: 74 61 69 6c 20 77 68 61 74 20 69 74 20 64 6f 65 tail what it doe
0850: 73 2e 0d 0a 0d 0a 2a 20 54 68 65 20 73 72 63 2f s.....* The src/
0860: 6d 6b 69 6e 64 65 78 2e 63 20 70 72 6f 67 72 61 mkindex.c progra
0870: 6d 20 67 65 6e 65 72 61 74 65 73 20 73 6f 6d 65 m generates some
0880: 20 43 20 63 6f 64 65 20 74 68 61 74 20 69 6d 70 C code that imp
0890: 6c 65 6d 65 6e 74 73 0d 0a 20 20 73 74 61 74 69 lements.. stati
08a0: 63 20 6c 6f 6f 6b 75 70 20 74 61 62 6c 65 73 2e c lookup tables.
08b0: 20 20 53 65 65 20 74 68 65 20 68 65 61 64 65 72 See the header
08c0: 20 63 6f 6d 6d 65 6e 74 20 69 6e 20 74 68 65 20 comment in the
08d0: 73 6f 75 72 63 65 20 63 6f 64 65 0d 0a 20 20 66 source code.. f
08e0: 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 77 68 or details on wh
08f0: 61 74 20 69 74 20 64 6f 65 73 2e 0d 0a at it does...