0e265b0184 2007-08-01 drh: All of the source code for fossil is contained in the src/ subdirectory. 0e265b0184 2007-08-01 drh: But there is a lot of generated code, so you will probably want to 0e265b0184 2007-08-01 drh: use the Makefile. To do a complete build, just type: 0e265b0184 2007-08-01 drh: 0e265b0184 2007-08-01 drh: make 0e265b0184 2007-08-01 drh: 0e265b0184 2007-08-01 drh: That should work out-of-the-box on Macs and Linux systems. If 0e265b0184 2007-08-01 drh: you have trouble, or you want to do something fancy, just edit 0e265b0184 2007-08-01 drh: the Makefile in the top-level folder. There are 5 things you 0e265b0184 2007-08-01 drh: might want to change in the Makefile. All 5 things are well 0e265b0184 2007-08-01 drh: commented. The complete Makefile is only a few dozen lines long. 0e265b0184 2007-08-01 drh: Do not be intimidated. 0e265b0184 2007-08-01 drh: 0e265b0184 2007-08-01 drh: -------------------------------------------------------------------------- 0e265b0184 2007-08-01 drh: 0e265b0184 2007-08-01 drh: Here are some notes on what is happening behind the scenes: 0e265b0184 2007-08-01 drh: 713b8be852 2009-08-28 drh: * The Makefile just sets up a few macros and then invokes the 0e265b0184 2007-08-01 drh: real makefile in src/main.mk. The src/main.mk makefile is 0e265b0184 2007-08-01 drh: automatically generated by a TCL script found at src/makemake.tcl. 0e265b0184 2007-08-01 drh: Do not edit src/main.mk directly. Update src/makemake.tcl and 0e265b0184 2007-08-01 drh: then rerun it. 0e265b0184 2007-08-01 drh: 0e265b0184 2007-08-01 drh: * The *.h header files are automatically generated using a program 0e265b0184 2007-08-01 drh: called "makeheaders". Source code to the makeheaders program is 0e265b0184 2007-08-01 drh: found in src/makeheaders.c. Documentation is found in 0e265b0184 2007-08-01 drh: src/makeheaders.html. 0e265b0184 2007-08-01 drh: 0e265b0184 2007-08-01 drh: * Most *.c source files are preprocessed using a program called 0e265b0184 2007-08-01 drh: "translate". The sources to translate are found in src/translate.c. 0e265b0184 2007-08-01 drh: A header comment in src/translate.c explains in detail what it does. 0e265b0184 2007-08-01 drh: 0e265b0184 2007-08-01 drh: * The src/mkindex.c program generates some C code that implements 0e265b0184 2007-08-01 drh: static lookup tables. See the header comment in the source code 0e265b0184 2007-08-01 drh: for details on what it does.