Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
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 |
Context
2010-07-09
| ||
16:25 | Merged main trunk into private branch. ... (check-in: 1c28a41cf1 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: d3252d7488 user: michael tags: newbuild, ttmrichter) | |
2010-07-07
| ||
07:44 | Update private branch to latest trunk. ... (check-in: a87fbd3312 user: michael tags: ttmrichter) | |
Changes
Changes to Makefile.
1 2 3 4 5 6 7 8 | #!/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 | > > > > > > > > > > > > > > > > > > > > | < | | < < < < | < < | < < < < | < | < < | < < < < < > > > > | < | < < < | | | | | | < < > | < < | > | 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.
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |
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 |