1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
+
+
+
+
+
+
|
#!/usr/bin/make
#
# This is the top-level makefile for Fossil when the build is occurring
# on a unix platform. This works out-of-the-box on most unix platforms.
# But you are free to vary some of the definitions if desired.
#
#### The toplevel directory of the source tree. Fossil can be built
# in a directory that is separate from the source tree. Just change
# the following to point from the build directory to the src/ folder.
#
SRCDIR = ./src
#### Upstream source files included directly in this repository.
#
SRCDIR_extsrc = ./extsrc
#### In-tree tools such as code generators and translators:
#
SRCDIR_tools = ./tools
#### The directory into which object code files should be written.
#
#
OBJDIR = ./bld
#### C Compiler and options for use in building executables that
|
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
-
-
-
-
-
+
-
-
+
-
-
+
-
-
+
+
+
+
+
+
+
+
+
-
+
|
# the finished binary for fossil. The BCC compiler above is used
# for building intermediate code-generator tools.
#
#TCC = gcc -O6
#TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage
TCC = gcc -g -Os -Wall
# To use the included miniz library
# FOSSIL_ENABLE_MINIZ = 1
# TCC += -DFOSSIL_ENABLE_MINIZ
# To add support for HTTPS
TCC += -DFOSSIL_ENABLE_SSL
#### We sometimes add the -static option here so that we can build a
# static executable that will run in a chroot jail.
#LIB = -static
TCC += -DFOSSIL_DYNAMIC_BUILD=1
TCCFLAGS = $(CFLAGS)
# We don't attempt to use libedit or libreadline in this simplified
# build system (contrast auto.def and Makefile.in) so use the included
# copy of linenoise. MinGW can't make use of this, but linenoise is
# ifdef'd out elsewhere for that platform. Note that this is a make
# flag handled in src/main.mk, not a C preprocessor flag.
USE_LINENOISE := 1
#### Extra arguments for linking the finished binary. Fossil needs
# to link against the Z-Lib compression library unless the miniz
# to link against the Z-Lib compression library. There are no
# library in the source tree is being used. There are no other
# required dependencies.
# other required dependencies.
ZLIB_LIB.0 = -lz
ZLIB_LIB.1 =
ZLIB_LIB = -lz
ZLIB_LIB. = $(ZLIB_LIB.0)
# If using zlib:
LIB += $(ZLIB_LIB.$(FOSSIL_ENABLE_MINIZ)) $(LDFLAGS)
LIB += $(ZLIB_LIB) $(LDFLAGS)
# If using HTTPS:
LIB += -lcrypto -lssl
# Many platforms put cos() needed by src/piechart.c in libm, rather than
# in libc. We cannot enable this by default because libm doesn't exist
# everywhere.
#LIB += -lm
#### Tcl shell for use in running the fossil testsuite. If you do not
# care about testing the end result, this can be blank.
#
TCLSH = tclsh
CFLAGS += -fPIE
CPPFLAGS += -I. -I$(SRCDIR_extsrc) -I$(SRCDIR)
LIB = -lm -lz -lssl
INSTALLDIR = $(DESTDIR)$(prefix)/bin
SQLITE3_ORIGINAL = 0
USE_LINENOISE = 1
# You should not need to change anything below this line
###############################################################################
#
# Automatic platform-specific options.
HOST_OS_CMD = uname -s
HOST_OS = $(HOST_OS_CMD:sh)
LIB.SunOS= -lsocket -lnsl
LIB += $(LIB.$(HOST_OS))
TCC.DragonFly += -DUSE_PREAD
TCC.FreeBSD += -DUSE_PREAD
TCC.NetBSD += -DUSE_PREAD
TCC.OpenBSD += -DUSE_PREAD
TCC += $(TCC.$(HOST_OS))
APPNAME = fossil$(E)
.PHONY: all tags
include $(SRCDIR)/main.mk
|