Since there's no difference between Solaris and OpenSolaris in builds (they both require libnsl it turns out), the files are now merged as PLATFORM=solaris.
check-in: 0ec2c22d user: michael tags: newbuild, ttmrichter

#!/usr/bin/make
#
#### The directory in which Makefile fragments are stored.
#
MAKEDIR = ./make
#### Any site-specific pre-defined settings go here. Settings in this file are# intended to direct the compilation below.#-include pre-config.mk#### Set up our compiler if it hasn't already been defined.ifndef COMPILER COMPILER = gccendif#### 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 = linuxendif
#### 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.mkinclude $(MAKEDIR)/$(COMPILER)-fragment.mk
#### Any site-specific post-defined settings go here. Settings in this file are
# intended to override the settings already established.
#
-include post-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

#!/usr/bin/make
#
#### The directory in which Makefile fragments are stored.
#
MAKEDIR = ./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
#### Any site-specific pre-defined settings go here. Settings in this file are
# intended to direct the compilation below.
#
-include config.mk # Configure if present.ifndef CONFIG_MK_COMPLETE include $(MAKEDIR)/linux-gcc-config.mk # Default to linux-gcc.endif
#### The Tcl shell to run for test suites.
#
TCLSH = tclsh
# You should not need to change anything below this line
###############################################################################
include $(SRCDIR)/main.mk

Changes to make/README.wiki.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

The makefile fragments in this "new build" directory are of three kinds: * Platform fragments for OS-specific settings. (e.g. <code>linux-fragment.mk</code>); * Compiler fragments for compiler-specific settings (e.g. <code>clang-fragment.mk</code>); * Sample <code>pre-config.mk</code> fragments to use as a baseline for site-specific customization of the build process (e.g.<code>linuxgcc-pre-config.mk</code>.
Platform and compiler fragments should not be edited at site except to correcterrors in implementation or to add desirable new features so that clashes withthe <cite>Fossil</cite> repository don't interfere with operations. Wherepossible all site customization should be done in pre- and post-config makefilefragments. (Where this is not possible is probably indicative of modificationsrequired to the new build process.To use the sample pre-config fragments, simply copy them into the<cite>Fossil</cite> distribution's root directory as <code>pre-config.mk</code>and edit to taste.
Note: new platform and compiler files are always welcome additions to the
community. In particular MacOSX build files would be nice to have.

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

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

The makefile fragments in this "new build" directory are used to provideplatform-specific builds out-of-the-box with minimal user intervention. They arenamed as <code>PLATFORM-COMPILER-config.mk</code> and are used by copying theminto the <cite>Fossil</cite> distribution root directory as
<code>config.mk</code>.
The file <code>linux-gcc-config.mk</code> is the default make file fragmentbrought in by the main <code>Makefile</code> if no <code>config.mk</code> filehas been copied.
Note: new platform and compiler files are always welcome additions to the
community. In particular MacOSX build files would be nice to have as well asalternative compilers.

#### Compiler-specific configuration for users of the CLANG compiler suite.##### 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=1endififndef ENABLE_I18N TCC += -DFOSSIL_I18N=0endififdef 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 += -staticendififdef ENABLE_SSL LIB += -lcrypto -lsslendififdef ENABLE_SOCKET LIB += -lsocketendififdef ENABLE_NSL LIB += -lnslendififdef PLATFORM_SPECIFIC_LIB LIB += $(PLATFORM_SPECIFIC_LIB)endif

#### OS-specific configuration for building Fossil on FreeBSD systems.# NOTE: You will need to have GNU Make installed to use this.##### 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_STATIC = 1 # we want a static buildENABLE_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

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<

Name change from make/freebsdgcc-pre-config.mk to make/freebsd-gcc-config.mk.

1
2
3
4
5
6
7

#### Sample pre-config.mk file for FreeBSD with GCC.
# Copy this file as pre-config.mk in the Fossil root directory to use.
# NOTE: You will need to have GNU Make installed to use this.
#
PLATFORM=freebsdCOMPILER=gcc

#### config.mk file for FreeBSD with GCC.
# Copy this file as config.mk in the Fossil root directory to use.
# NOTE: You will need to have GNU Make installed to use this.
#
#### OS-specific configuration for building Fossil on FreeBSD systems.# NOTE: You will need to have GNU Make installed to use this.##### 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_STATIC = 1 # we want a static buildENABLE_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#### Compiler-specific configuration for users of the GCC compiler suite.##### 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=1endififndef ENABLE_I18N TCC += -DFOSSIL_I18N=0endif#### 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 += -staticendififdef ENABLE_SSL LIB += -lcrypto -lsslendififdef ENABLE_SOCKET LIB += -lsocketendififdef ENABLE_NSL LIB += -lnslendif#### Signal that we've used a config.mk file.#CONFIG_MK_COMPLETE=1

#### Compiler-specific configuration for users of the GCC compiler suite.##### 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=1endififndef ENABLE_I18N TCC += -DFOSSIL_I18N=0endififdef 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 += -staticendififdef ENABLE_SSL LIB += -lcrypto -lsslendififdef ENABLE_SOCKET LIB += -lsocketendififdef ENABLE_NSL LIB += -lnslendififdef PLATFORM_SPECIFIC_LIB LIB += $(PLATFORM_SPECIFIC_LIB)endif

#### config.mk file for Linux with CLANG.
# Copy this file as config.mk in the Fossil root directory to use.
#
#### OS-specific configuration for building Fossil on Linux systems.##### 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_STATIC = 1 # we want a static buildENABLE_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#### Compiler-specific configuration for users of the CLANG compiler suite.##### 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=1endififndef ENABLE_I18N TCC += -DFOSSIL_I18N=0endif#### 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 += -staticendififdef ENABLE_SSL LIB += -lcrypto -lsslendififdef ENABLE_SOCKET LIB += -lsocketendififdef ENABLE_NSL LIB += -lnslendif#### Signal that we've used a config.mk file.#CONFIG_MK_COMPLETE=1

Deleted make/linux-fragment.mk.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

#### OS-specific configuration for building Fossil on Linux systems.##### 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_STATIC = 1 # we want a static buildENABLE_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

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<

Name change from make/linuxgcc-pre-config.mk to make/linux-gcc-config.mk.

1
2
3
4
5
6

#### Sample pre-config.mk file for Linux with GCC.
# Copy this file as pre-config.mk in the Fossil root directory to use.
#
PLATFORM=linuxCOMPILER=gcc

#### config.mk file for Linux with GCC.
# Copy this file as config.mk in the Fossil root directory to use.
# Note that this is the default configuration for the build system.
#
#### OS-specific configuration for building Fossil on Linux systems.##### 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_STATIC = 1 # we want a static buildENABLE_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#### Compiler-specific configuration for users of the GCC compiler suite.##### 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=1endififndef ENABLE_I18N TCC += -DFOSSIL_I18N=0endif#### 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 += -staticendififdef ENABLE_SSL LIB += -lcrypto -lsslendififdef ENABLE_SOCKET LIB += -lsocketendififdef ENABLE_NSL LIB += -lnslendif#### Signal that we've used a config.mk file.#CONFIG_MK_COMPLETE=1

#### OS-specific configuration for building Fossil on MingGW32 systems.##### The suffix to add to executable files.#E = .exe#### The directory into which object code files should be written.#OBJDIR = ./wobj#### MinGW32 can only support the GCC compiler. Force this.#COMPILER = gcc#### 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 following features must be added to the GCC and LD builds respectively.#ifndef MINGW32_GCCPLATFORM_SPECIFIC_GCC = -L/mingw/lib -I/mingw/includeelsePLATFORM_SPECIFIC_GCC = $(MINGW32_GCC)endififndef MINGW32_LIBPLATFORM_SPECIFIC_LIB = -lmingwex -lws2_32elsePLATFORM_SPECIFIC_LIB = $(MINGW32_LIB)endif

#### config.mk file for MinGW32.
# Copy this file as config.mk in the Fossil root directory to use.
#
#### OS-specific configuration for building Fossil on MingGW32 systems.##### The suffix to add to executable files.#E = .exe#### The directory into which object code files should be written.#OBJDIR = ./wobj#### MinGW32 can only support the GCC compiler. Force this.#
COMPILER = gcc
#### 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#### Compiler-specific configuration for users of the GCC compiler suite.##### 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=1endififndef ENABLE_I18N TCC += -DFOSSIL_I18N=0endififdef 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 += -staticendififdef ENABLE_SSL LIB += -lcrypto -lsslendififdef ENABLE_SOCKET LIB += -lsocketendififdef ENABLE_NSL LIB += -lnslendififdef PLATFORM_SPECIFIC_LIB LIB += $(PLATFORM_SPECIFIC_LIB)endif#### These will have to be adjusted for your MinGW32 environment.#MINGW32_GCC = -L/mingw/lib -I/mingw/include#MINGW32_GCC = -L/usr/local/lib -I/usr/local/includeTCC += $(MINGW32_GCC)MINGW32_LIB = -lmingwex -lws2_32LIB += $(MINGW32_LIB)#### Signal that we've used a config.mk file.#CONFIG_MK_COMPLETE=1

Deleted make/solaris-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

#### OS-specific configuration for building Fossil on Solaris (but not# OpenSolaris) systems.##### 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_STATIC = 1 # we want a static buildENABLE_SSL = 1 # we are using SSLENABLE_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

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<

Name change from make/solarisgcc-pre-config.mk to make/solaris-gcc-config.mk.

1
2
3
4
5
6

#### Sample pre-config.mk file for Solaris with GCC.
# Copy this file as pre-config.mk in the Fossil root directory to use.
#
PLATFORM=solarisCOMPILER=gcc

#### config.mk file for Solaris with GCC.
# Copy this file as config.mk in the Fossil root directory to use.
#
#### OS-specific configuration for building Fossil on Solaris systems.##### 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_STATIC = 1 # we want a static buildENABLE_SSL = 1 # we are using SSLENABLE_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#### Compiler-specific configuration for users of the GCC compiler suite.##### 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=1endififndef ENABLE_I18N TCC += -DFOSSIL_I18N=0endif#### 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 += -staticendififdef ENABLE_SSL LIB += -lcrypto -lsslendififdef ENABLE_SOCKET LIB += -lsocketendififdef ENABLE_NSL LIB += -lnslendif#### Signal that we've used a config.mk file.#CONFIG_MK_COMPLETE=1

This page was generated in about
0.008s by
Fossil 2.8 [7b0dbe8079] 2019-02-20 22:28:24