Documentation Source Text

Check-in [5b2d8db588]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:The Makefile should now work out-of-the-box on Ubuntu.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:5b2d8db588df98e36bdce42ed8a32929bd8fdb3d2c61e49bf0f29d5355e21b22
User & Date: drh 2018-02-22 20:36:13
Context
2018-02-23
21:18
Add a customized version of the checklist.tcl script. check-in: 85e8a997dd user: drh tags: trunk
2018-02-22
20:36
The Makefile should now work out-of-the-box on Ubuntu. check-in: 5b2d8db588 user: drh tags: trunk
19:40
Remove the unused TCLSTUBSFLAGS from the makefiles. check-in: 1412cc8f93 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to Makefile.

1
2
3
4




5



















6

7
8
9
10
11
12
13
14
15
16





17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/make
#
# Makefile for SQLite Documentation
#
























#### The toplevel directory of the documentation source.

#
DOC = .

#### The toplevel directory of the program source code.
#
SRC = ../sqlite

#### The directory in which has been run "make sqlite3.c" for the
#    SQLite source code.  The documentation generator scripts look
#    for files "sqlite3.h" and "tclsqlite3.c" in this directory.





#
BLD = ../sqlite

#### The toplevel directory of the TH3 test harness sources
#    Leave blank if TH3 is not available.
#
TH3 =

#### The toplevel directory of the SQLLogicTest (SLT) test
#    harness sources.  Leave blank if SLT is not available.
#
SLT =

#### A C-compiler for building utility programs to run locally
#
CC = gcc -g -Wall

#### Extra C-compiler flags needed to compile TCLSH
#
TCLINC =
TCLFLAGS = -ldl -lm -lpthread -ltcl -lz

# You should not have to change anything below this line
###############################################################################
include $(DOC)/main.mk


<
|
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>










>
>
>
>
>






|




|



|
<
<
<
<
<




1
2

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60





61
62
63
64
#!/usr/make
#


#####
# Documentation builds require Tcl librarys, version 8.6 or later.
# The TCLINC and TCLFLAGS macros are appropriate for the default Tcl
# development libraries on Ubuntu.  You may need to make adjustments.
#
TCLINC = -I/usr/include/tcl8.6
TCLFLAGS = -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lm -lpthread -lz

# Alternative TCL settings:
#
#TCLINC = -I$(HOME)/tcl/include
#TCLFLAGS = -static $(HOME)/tcl/lib/libtcl8.6.a -ldl -lm -lpthread -lz
#
# The altenative settings will work if you build your on TCL as follows:
#
#     # unpack the tarball (tcl 8.6 or later)
#     cd unix
#     ./configure --prefix=$(HOME)/tcl
#     make install
#
# That will install the necessary tcl libraries in $(HOME)/tcl.
####


#### The toplevel directory of the documentation source.
#    Change to something different if building out-of-tree
#
DOC = .

#### The toplevel directory of the program source code.
#
SRC = ../sqlite

#### The directory in which has been run "make sqlite3.c" for the
#    SQLite source code.  The documentation generator scripts look
#    for files "sqlite3.h" and "tclsqlite3.c" in this directory.
#    Set up the SQLite build using:
#
#         cd $(BLD)
#         $(SRC)/configure
#         make tclsqlite3.c
#
BLD = ../sqlite

#### The toplevel directory of the TH3 test harness sources
#    Leave blank if TH3 is not available.
#
TH3 = ../th3

#### The toplevel directory of the SQLLogicTest (SLT) test
#    harness sources.  Leave blank if SLT is not available.
#
SLT = ../sqllogictest

#### A C-compiler for building utility programs to run locally
#
CC = gcc -g -Wall -I$(BLD)






# You should not have to change anything below this line
###############################################################################
include $(DOC)/main.mk

Changes to README.md.

1
2
3
4
5
6
7

8
9
10
11


























## SQLite Documentation

This repository contains scripts used to generate the documentation
for [SQLite](https://www.sqlite.org/).  This repository also contains
much of the content of the documentation, though some of the content
is extracted from special comments in the SQLite sources and in the
[TH3](https://www.sqlite.org/th3.html) sources.


The repository also contains the source code to the custom web server
that is used to run the SQLite website.  See
The [misc/althttpd.c](/file/misc/althttpd.c) file.
































|
>




>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
## SQLite Documentation

This repository contains scripts used to generate the documentation
for [SQLite](https://www.sqlite.org/).  This repository also contains
much of the content of the documentation, though some of the content
is extracted from special comments in the SQLite sources and in the
[TH3](https://www.sqlite.org/th3.html) sources and in the
[SQL Logic Test](https://www.sqlite.org/slt) sources.

The repository also contains the source code to the custom web server
that is used to run the SQLite website.  See
The [misc/althttpd.c](/file/misc/althttpd.c) file.

# How To Build

These are the steps to build the documentation:

  1.  Download and unpack the source trees for SQLite, TH3, and
      SQL Logic Test into sibling directories.  The SQLite install
      should be in ../sqlite.  TH3 should go into ../th3.  SQL Logic
      Test should go into ../sqllogictest.  The TH3 and SQL Logic Test
      installs are optional and are only used for requirements test coverage
      tracking.

  2.  Make sure you have TCL development libraries version 8.6 or later
      installed on your machine.

  3.  Edit the Makefile for your system.  Pay particular attention to:
      <ol type="a">
      <li><p> TCLINC= and TCLFLAGS= should point to the Tcl 8.6 development
          libraries.
      <li><p> Set TH3= and SLT= to empty strings if those
          source trees are not available to you.
      </ol>

  4.  Run:  "make all"

The documentation will be built into the docs/ subdirectory.

Changes to main.mk.

26
27
28
29
30
31
32

33
34
35
36
37
38
39
40
41
42
43
44
45
46
..
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
...
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171

TCLSH = tclsh.docsrc

default:	
	@echo 'make base;       # Build base documents'
	@echo 'make evidence;   # Gather evidence marks'
	@echo 'make matrix;     # Build the traceability matrix'

	@echo 'make all;        # Do all of the above'
	@echo 'make spell;      # Spell check generated docs'
	@echo 'make searchdb;   # Construct the FTS search database'
	@echo 'make fast;       # Build documentation only - no requirements'
	@echo 'make schema;     # Run once to initialize the build process'

all:	base evidence format_evidence matrix doc

private:	base evidence private_evidence matrix doc

fast:	base doc

sqlite3.h: $(BLD)/sqlite3.h
	cp $(BLD)/sqlite3.h orig-sqlite3.h
................................................................................

# This rule generates all documention files from their sources.  The
# special markup on HTML files used to identify testable statements and
# requirements are retained in the HTML and so the HTML generated by
# this rule is not suitable for publication.  This is the first step
# only.
#
base:	$(TCLSH) sqlite3.h docdir always 
	rm -rf doc/images
	cp -r $(DOC)/images doc
	mkdir doc/images/syntax
	cp $(DOC)/art/syntax/*.gif doc/images/syntax
	cp $(DOC)/rawpages/* doc
	./$(TCLSH) $(DOC)/wrap.tcl $(DOC) $(SRC) doc $(DOC)/pages/*.in
	cp doc/fileformat2.html doc/fileformat.html
................................................................................
SFLAGS = $(TCLINC) -DSQLITE_THREADSAFE=0 -DSQLITE_ENABLE_FTS5 -DSQLITE_TCLMD5 -DTCLSH -Dmain=xmain

$(TCLSH): $(SSRC)
	$(CC) -O2 -o $@ -I. $(SFLAGS) $(SSRC) $(TCLFLAGS)

doc/search:	$(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/search.tcl.in $(DOC)/search/wapp.tcl $(DOC)/document_header.tcl
	./$(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/search.tcl.in >doc/search
	chmod +x doc/search

doc/search.d/admin:	$(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/admin.tcl.in $(DOC)/search/wapp.tcl $(DOC)/document_header.tcl
	mkdir -p doc/search.d/
	./$(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/admin.tcl.in >doc/search.d/admin
	chmod +x doc/search.d/admin

searchdb: $(TCLSH) doc/search doc/search.d/admin
	./$(TCLSH) $(DOC)/search/buildsearchdb.tcl

#	cp $(DOC)/search/search.tcl doc/search.d/admin
#	chmod +x doc/search.d/admin








>


<



|







 







|







 







|




|







26
27
28
29
30
31
32
33
34
35

36
37
38
39
40
41
42
43
44
45
46
..
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
...
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171

TCLSH = tclsh.docsrc

default:	
	@echo 'make base;       # Build base documents'
	@echo 'make evidence;   # Gather evidence marks'
	@echo 'make matrix;     # Build the traceability matrix'
	@echo 'make searchdb;   # Construct the FTS search database'
	@echo 'make all;        # Do all of the above'
	@echo 'make spell;      # Spell check generated docs'

	@echo 'make fast;       # Build documentation only - no requirements'
	@echo 'make schema;     # Run once to initialize the build process'

all:	base evidence format_evidence matrix doc searchdb

private:	base evidence private_evidence matrix doc

fast:	base doc

sqlite3.h: $(BLD)/sqlite3.h
	cp $(BLD)/sqlite3.h orig-sqlite3.h
................................................................................

# This rule generates all documention files from their sources.  The
# special markup on HTML files used to identify testable statements and
# requirements are retained in the HTML and so the HTML generated by
# this rule is not suitable for publication.  This is the first step
# only.
#
base:	$(TCLSH) sqlite3.h docdir schema always 
	rm -rf doc/images
	cp -r $(DOC)/images doc
	mkdir doc/images/syntax
	cp $(DOC)/art/syntax/*.gif doc/images/syntax
	cp $(DOC)/rawpages/* doc
	./$(TCLSH) $(DOC)/wrap.tcl $(DOC) $(SRC) doc $(DOC)/pages/*.in
	cp doc/fileformat2.html doc/fileformat.html
................................................................................
SFLAGS = $(TCLINC) -DSQLITE_THREADSAFE=0 -DSQLITE_ENABLE_FTS5 -DSQLITE_TCLMD5 -DTCLSH -Dmain=xmain

$(TCLSH): $(SSRC)
	$(CC) -O2 -o $@ -I. $(SFLAGS) $(SSRC) $(TCLFLAGS)

doc/search:	$(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/search.tcl.in $(DOC)/search/wapp.tcl $(DOC)/document_header.tcl
	./$(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/search.tcl.in >doc/search
	chmod 744 doc/search

doc/search.d/admin:	$(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/admin.tcl.in $(DOC)/search/wapp.tcl $(DOC)/document_header.tcl
	mkdir -p doc/search.d/
	./$(TCLSH) $(DOC)/search/mkscript.tcl $(DOC)/search/admin.tcl.in >doc/search.d/admin
	chmod 744 doc/search.d/admin

searchdb: $(TCLSH) doc/search doc/search.d/admin
	./$(TCLSH) $(DOC)/search/buildsearchdb.tcl

#	cp $(DOC)/search/search.tcl doc/search.d/admin
#	chmod +x doc/search.d/admin