Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Comment: | Started the process of modifying the build system to permit more flexible and
reliable cross-platform support. Currently the build system is set up for
Linux (GCC or CLANG as the compiler) and for MinGW32 (GCC as the compiler).
Of these, only the Linux builds have been tested so far and confirmed to work
as expected. The way to use this new system is as follows:
make Builds the default platform and compiler (linux and gcc). PLATFORM=mingw32 make Builds the mingw32 build (untested!) using the default compiler (gcc). COMPILER=clang make Builds the default platform (linux) using the clang compiler. Other platform and compiler fragment files can be added in the ./make directory based on the models already there. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | newbuild | ttmrichter |
Files: | files | file ages | folders |
SHA1: | d3252d7488f229438cea881d99a8bac0 |
User & Date: | michael 2010-07-09 16:23:38 |
2010-07-09
| ||
16:25 | Merged main trunk into private branch. check-in: 1c28a41c user: michael tags: newbuild, ttmrichter | |
16:23 |
Started the process of modifying the build system to permit more flexible and
reliable cross-platform support. Currently the build system is set up for
Linux (GCC or CLANG as the compiler) and for MinGW32 (GCC as the compiler).
Of these, only the Linux builds have been tested so far and confirmed to work
as expected. The way to use this new system is as follows:
make Builds the default platform and compiler (linux and gcc). PLATFORM=mingw32 make Builds the mingw32 build (untested!) using the default compiler (gcc). COMPILER=clang make Builds the default platform (linux) using the clang compiler. Other platform and compiler fragment files can be added in the ./make directory based on the models already there. check-in: d3252d74 user: michael tags: newbuild, ttmrichter | |
2010-07-07
| ||
07:44 | Update private branch to latest trunk. check-in: a87fbd33 user: michael tags: ttmrichter | |
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
#!/usr/bin/make # #### 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 #### The directory into which object code files should be written. # # OBJDIR = ./obj #### C Compiler and options for use in building executables that # will run on the platform that is doing the build. This is used # to compile code-generator programs as part of the build process. # See TCC below for the C compiler for building the finished binary. # #BCC = gcc -g -O2 BCC = clang -g -O2 #### The suffix to add to executable files. ".exe" for windows. # Nothing for unix. # E = #### C Compile and options for use in building executables that # will run on the target platform. This is usually the same # as BCC, unless you are cross-compiling. This C compiler builds # 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 TCC = clang -g -Os -Wall # To add support for HTTPS TCC += -DFOSSIL_ENABLE_SSL #### Extra arguments for linking the finished binary. Fossil needs # to link against the Z-Lib compression library. There are no # other dependencies. We sometimes add the -static option here # so that we can build a static executable that will run in a # chroot jail. # LIB = -lz $(LDFLAGS) # If you're on OpenSolaris: # LIB += lsocket # Solaris 10 needs: # LIB += -lsocket -lnsl # My assumption is that the Sol10 flags will work for Sol8/9 and possibly 11. # # If using HTTPS: LIB += -lcrypto -lssl #### Tcl shell for use in running the fossil testsuite. # TCLSH = tclsh # You should not need to change anything below this line ############################################################################### include $(SRCDIR)/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 |
#!/usr/bin/make # #### The directory in which Makefile fragments are stored. # MAKEDIR = ./make #### Set up our compiler if it hasn't already been defined. ifndef COMPILER COMPILER = gcc endif #### Set up our platform if it hasn't already been defined. # ifndef PLATFORM # We default to Linux. # TODO: Figure out how to reliably identify the platform from Make. Sadly the # OSTYPE environment variable isn't carried through into GNU Make, so we # can't do this the obvious way. PLATFORM = linux endif #### 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 #### Include the fragments we need from our specific environment. # include $(MAKEDIR)/$(PLATFORM)-fragment.mk include $(MAKEDIR)/$(COMPILER)-fragment.mk #### Include a locale-specific configuration make fragment if present. # Any modification to the platforms' generic setups should be made in this # file where possible. -include config.mk #### The following section beginning after #+++ and ending before #--- is used # inside the $(PLATFORM)-fragment.mk files to turn on the features required # or desired by builds on that platform. They are replicated here for # documentation purposes only and should not be set in this file. #+++ #### The following variable definitions decide which features are turned on or # of when building Fossil. Comment out the features which are not needed by # this platform. # #ENABLE_STATIC = 1 # we want a static build #ENABLE_SSL = 1 # we are using SSL #ENABLE_SOCKET = 1 # we are using libsocket (OpenSolaris and Solaris) #ENABLE_NSL = 1 # we are using libnsl library (Solaris) #ENABLE_I18N = 1 # we are using i18n settings #--- #### The Tcl shell to run for test suites. # TCLSH = tclsh # You should not need to change anything below this line ############################################################################### include $(SRCDIR)/main.mk |
Deleted Makefile.w32.
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 65 66 67 68 69 70 71 |
#!/usr/bin/make # #### 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 OBJDIR = ./wobj #### C Compiler and options for use in building executables that # will run on the platform that is doing the build. This is used # to compile code-generator programs as part of the build process. # See TCC below for the C compiler for building the finished binary. # BCC = gcc -g -O2 #### The suffix to add to executable files. ".exe" for windows. # Nothing for unix. # E = .exe #### Enable HTTPS support via OpenSSL (links to libssl and libcrypto) # # FOSSIL_ENABLE_SSL=1 #### Enable HTTPS support via OpenSSL (links to libssl and libcrypto) # # FOSSIL_ENABLE_SSL=1 #### C Compile and options for use in building executables that # will run on the target platform. This is usually the same # as BCC, unless you are cross-compiling. This C compiler builds # 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 #TCC = gcc -g -Os -Wall -DFOSSIL_I18N=0 -L/usr/local/lib -I/usr/local/include TCC = gcc -Os -Wall -DFOSSIL_I18N=0 -L/mingw/lib -I/mingw/include # With HTTPS support ifdef FOSSIL_ENABLE_SSL TCC += -DFOSSIL_ENABLE_SSL=1 endif #### Extra arguments for linking the finished binary. Fossil needs # to link against the Z-Lib compression library. There are no # other dependencies. We sometimes add the -static option here # so that we can build a static executable that will run in a # chroot jail. # #LIB = -lz #LIB = -lz -lws2_32 LIB = -lmingwex -lz -lws2_32 # OpenSSL: ifdef FOSSIL_ENABLE_SSL LIB += -lcrypto -lssl endif #### Tcl shell for use in running the fossil testsuite. # TCLSH = tclsh #### Include a configuration file that can override any one of these settings. # -include config.w32 # You should not need to change anything below this line ############################################################################### include $(SRCDIR)/main.mk |
< < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
Added make/clang-fragment.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 |
#### C Compiler and options for use in building executables that # will run on the platform that is doing the build. This is used # to compile code-generator programs as part of the build process. # See TCC below for the C compiler for building the finished binary. # BCC = clang -g -O2 #### C Compile and options for use in building executables that # will run on the target platform. This is usually the same # as BCC, unless you are cross-compiling. This C compiler builds # the finished binary for fossil. The BCC compiler above is used # for building intermediate code-generator tools. # TCC = clang -g -Os -Wall #### Compiler options. # The variables tested are defined in the make/PLATFORM-fragment.mk files. # ifdef ENABLE_SSL TCC += -DFOSSIL_ENABLE_SSL=1 endif ifndef ENABLE_I18N TCC += -DFOSSIL_I18N=0 endif ifdef PLATFORM_SPECIFIC_CLANG TCC += $(PLATFORM_SPECIFIC_CLANG) endif #### Linker dependencies. Fossil only requires libz as an external dependency. # All other library settings are optional and toggled in platform-specific # make fragments. # LIB = -lz $(LDFLAGS) #### Linker options. # The variables tested are defined in the make/PLATFORM-fragment.mk files. # ifdef ENABLE_STATIC LIB += -static endif ifdef ENABLE_SSL LIB += -lcrypto -lssl endif ifdef ENABLE_SOCKET LIB += -lsocket endif ifdef ENABLE_NSL LIB += -lnsl endif ifdef PLATFORM_SPECIFIC_LIB TCC += $(PLATFORM_SPECIFIC_LIB) endif |
Added make/gcc-fragment.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 |
#### C Compiler and options for use in building executables that # will run on the platform that is doing the build. This is used # to compile code-generator programs as part of the build process. # See TCC below for the C compiler for building the finished binary. # BCC = gcc -g -O2 #### C Compile and options for use in building executables that # will run on the target platform. This is usually the same # as BCC, unless you are cross-compiling. This C compiler builds # the finished binary for fossil. The BCC compiler above is used # for building intermediate code-generator tools. # TCC = gcc -g -Os -Wall #### Compiler options. # The variables tested are defined in the make/PLATFORM-fragment.mk files. # ifdef ENABLE_SSL TCC += -DFOSSIL_ENABLE_SSL=1 endif ifndef ENABLE_I18N TCC += -DFOSSIL_I18N=0 endif ifdef PLATFORM_SPECIFIC_GCC TCC += $(PLATFORM_SPECIFIC_GCC) endif #### Linker dependencies. Fossil only requires libz as an external dependency. # All other library settings are optional and toggled in platform-specific # make fragments. # LIB = -lz $(LDFLAGS) #### Linker options. # The variables tested are defined in the make/PLATFORM-fragment.mk files. # ifdef ENABLE_STATIC LIB += -static endif ifdef ENABLE_SSL LIB += -lcrypto -lssl endif ifdef ENABLE_SOCKET LIB += -lsocket endif ifdef ENABLE_NSL LIB += -lnsl endif ifdef PLATFORM_SPECIFIC_LIB TCC += $(PLATFORM_SPECIFIC_LIB) endif |
Added make/linux-fragment.mk.
> > > > > > > > > > > > > > > > |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#### The suffix to add to executable files. ".exe" for windows. # Nothing for unix. # E = #### The directory into which object code files should be written. # OBJDIR = ./obj #### The following variable definitions decide which features are turned on or # of when building Fossil. Comment out the features which are not needed by # this platform. # ENABLE_SSL = 1 # we are using SSL ENABLE_I18N = 1 # we are using i18n features |
Added make/ming32-fragment.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 |
#### The suffix to add to executable files. # E = .exe #### The directory into which object code files should be written. # OBJDIR = ./wobj #### The following variable definitions decide which features are turned on or # of when building Fossil. Comment out the features which are not needed by # this platform. # ENABLE_STATIC = 1 # we want a static build #### The following features must be added to the GCC and LD builds respectively. # ifndef MING32_GCC PLATFORM_SPECIFIC_GCC = -L/mingw/lib -I/mingw/include else PLATFORM_SPECIFIC_GCC = $(MING32_GCC) endif ifndef MING32_LIB PLATFORM_SPECIFIC_LIB = -lmingwex -lws2_32 else PLATFORM_SPECIFIC_LIB = $(MING32_LIB) endif |