Fossil

Changes On Branch ben-safe-make
Login

Changes On Branch ben-safe-make

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

Changes In Branch ben-safe-make Excluding Merge-Ins

This is equivalent to a diff from 4adc11ed to 14d1e449

2011-07-20
20:05
Fix the realclean target on windows makefiles to delete mkversion.exe not version.exe. Ticket [5947ace466c571d] ... (check-in: 3ade7789 user: drh tags: trunk)
09:09
Only allow the default Makefile to build fossil on platforms where it's known to work. Update the build documentation to tell the user to use the GNUmakefile explicitly, to avoid accidently building using the default makefile on non-GNU platforms. ... (Closed-Leaf check-in: 14d1e449 user: ben tags: ben-safe-make)
2011-07-19
23:44
Update the built-in SQLite to the latest 3.7.8 alpha, for the purpose of testing SQLite. ... (check-in: 4adc11ed user: drh tags: trunk)
23:29
Allow the root of a check-out to be in the root of the filesystem. Ticket [675f36eac4902cf] ... (check-in: b317471d user: drh tags: trunk)

Changes to BUILD.txt.

1
2
3
4
5
6
7
8
9
10
11
12
13



14
15
16
17
18
19
20
To do a complete build on most unix systems, just type:

   make

If you have an unusual unix system for which the standard Makefile
will not work, or if you want to do some non-standard options, you can
also run:

   ./configure; make

The ./configure script builds GNUmakefile which will be used in place
of Makefile.  Run "./configure --help" for a listing of the available
options.




On a windows box, use one of the Makefiles in the win/ subdirectory,
according to your compiler and environment.  If you have GCC and MSYS
installed on your system, the consider:

   make -f win/Makefile.mingw









|




>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
To do a complete build on most unix systems, just type:

   make

If you have an unusual unix system for which the standard Makefile
will not work, or if you want to do some non-standard options, you can
also run:

   ./configure; make -f GNUmakefile

The ./configure script builds GNUmakefile which will be used in place
of Makefile.  Run "./configure --help" for a listing of the available
options.

You must explicitly specify that make should use GNUmakefile in case
your platform does not use GNU make.

On a windows box, use one of the Makefiles in the win/ subdirectory,
according to your compiler and environment.  If you have GCC and MSYS
installed on your system, the consider:

   make -f win/Makefile.mingw

Changes to GNUmakefile.in.

35
36
37
38
39
40
41



42
43
44
45
TCLSH = tclsh

LIB =	@LDFLAGS@ @EXTRA_LDFLAGS@ @LIBS@
TCC +=	@EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H
INSTALLDIR = $(DESTDIR)@prefix@/bin
USE_SYSTEM_SQLITE = @USE_SYSTEM_SQLITE@




include $(SRCDIR)/main.mk

distclean: clean
	rm -f autoconfig.h config.log GNUmakefile







>
>
>




35
36
37
38
39
40
41
42
43
44
45
46
47
48
TCLSH = tclsh

LIB =	@LDFLAGS@ @EXTRA_LDFLAGS@ @LIBS@
TCC +=	@EXTRA_CFLAGS@ @CPPFLAGS@ @CFLAGS@ -DHAVE_AUTOCONFIG_H
INSTALLDIR = $(DESTDIR)@prefix@/bin
USE_SYSTEM_SQLITE = @USE_SYSTEM_SQLITE@

# Disable the platform check
PLATFORM_CHECK_KIND = disable

include $(SRCDIR)/main.mk

distclean: clean
	rm -f autoconfig.h config.log GNUmakefile

Changes to Makefile.

68
69
70
71
72
73
74



75

TCC.DragonFly += -DUSE_PREAD
TCC.FreeBSD += -DUSE_PREAD
TCC.NetBSD += -DUSE_PREAD
TCC.OpenBSD += -DUSE_PREAD
TCC += $(TCC.$(HOST_OS))




include $(SRCDIR)/main.mk







>
>
>

68
69
70
71
72
73
74
75
76
77
78

TCC.DragonFly += -DUSE_PREAD
TCC.FreeBSD += -DUSE_PREAD
TCC.NetBSD += -DUSE_PREAD
TCC.OpenBSD += -DUSE_PREAD
TCC += $(TCC.$(HOST_OS))

# Platform check
PLATFORM_CHECK_KIND = Makefile

include $(SRCDIR)/main.mk

Added src/check-platform.sh.





















































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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
#!/bin/sh

# This script checks that the default makefile is only used on platforms where it is
# positively known to work.
#
# Building on other platforms can result in subtly broken binaries.

HOST_OS=`uname -s`

# Check host OS, or whether this check has been disabled because we're running through
# the autosetup GNUmakefile.
if [ $HOST_OS == Linux ] || [ $HOST_OS == Darwin ] || [ X$1 == Xdisable ]
then
    touch bld/checked-platform.$1
else
    echo
    echo The default Makefile cannot be used on this platform.
    echo
    echo Use
    echo
    echo "   ./configure; make -f GNUmakefile"
    echo
    echo to build fossil.
    echo
    exit 1
fi

Changes to src/main.mk.

301
302
303
304
305
306
307


308

309
310
311
312
313
314
315
# using -lsqlite3.
SQLITE3_OBJ.1 = 
SQLITE3_OBJ.0 = $(OBJDIR)/sqlite3.o
SQLITE3_OBJ.  = $(SQLITE3_OBJ.0)

EXTRAOBJ =  $(SQLITE3_OBJ.$(USE_SYSTEM_SQLITE))  $(OBJDIR)/shell.o  $(OBJDIR)/th.o  $(OBJDIR)/th_lang.o



$(APPNAME):	$(OBJDIR)/headers $(OBJ) $(EXTRAOBJ)

	$(TCC) -o $(APPNAME) $(OBJ) $(EXTRAOBJ) $(LIB)

# This rule prevents make from using its default rules to try build
# an executable named "manifest" out of the file named "manifest.c"
#
$(SRCDIR)/../manifest:	
	# noop







>
>
|
>







301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
# using -lsqlite3.
SQLITE3_OBJ.1 = 
SQLITE3_OBJ.0 = $(OBJDIR)/sqlite3.o
SQLITE3_OBJ.  = $(SQLITE3_OBJ.0)

EXTRAOBJ =  $(SQLITE3_OBJ.$(USE_SYSTEM_SQLITE))  $(OBJDIR)/shell.o  $(OBJDIR)/th.o  $(OBJDIR)/th_lang.o

$(OBJDIR)/checked-platform.$(PLATFORM_CHECK_KIND):	$(SRCDIR)/check-platform.sh
	sh $(SRCDIR)/check-platform.sh $(PLATFORM_CHECK_KIND)

$(APPNAME):	$(OBJDIR)/checked-platform.$(PLATFORM_CHECK_KIND) $(OBJDIR)/headers $(OBJ) $(EXTRAOBJ)
	$(TCC) -o $(APPNAME) $(OBJ) $(EXTRAOBJ) $(LIB)

# This rule prevents make from using its default rules to try build
# an executable named "manifest" out of the file named "manifest.c"
#
$(SRCDIR)/../manifest:	
	# noop

Changes to src/makemake.tcl.

202
203
204
205
206
207
208


209

210
211
212
213
214
215
216

EXTRAOBJ = \
  $(SQLITE3_OBJ.$(USE_SYSTEM_SQLITE)) \
  $(OBJDIR)/shell.o \
  $(OBJDIR)/th.o \
  $(OBJDIR)/th_lang.o



$(APPNAME):	$(OBJDIR)/headers $(OBJ) $(EXTRAOBJ)

	$(TCC) -o $(APPNAME) $(OBJ) $(EXTRAOBJ) $(LIB)

# This rule prevents make from using its default rules to try build
# an executable named "manifest" out of the file named "manifest.c"
#
$(SRCDIR)/../manifest:	
	# noop







>
>
|
>







202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219

EXTRAOBJ = \
  $(SQLITE3_OBJ.$(USE_SYSTEM_SQLITE)) \
  $(OBJDIR)/shell.o \
  $(OBJDIR)/th.o \
  $(OBJDIR)/th_lang.o

$(OBJDIR)/checked-platform.$(PLATFORM_CHECK_KIND):	$(SRCDIR)/check-platform.sh
	sh $(SRCDIR)/check-platform.sh $(PLATFORM_CHECK_KIND)

$(APPNAME):	$(OBJDIR)/checked-platform.$(PLATFORM_CHECK_KIND) $(OBJDIR)/headers $(OBJ) $(EXTRAOBJ)
	$(TCC) -o $(APPNAME) $(OBJ) $(EXTRAOBJ) $(LIB)

# This rule prevents make from using its default rules to try build
# an executable named "manifest" out of the file named "manifest.c"
#
$(SRCDIR)/../manifest:	
	# noop