xref: /haiku/build/jam/UserBuildConfig.sample (revision b92508756d19ac421c0d7c4a2ebb7df2089cc8a9)
1# UserBuildConfig can be used to customize the build according to your needs.
2# If existent it is included by the build system, but it is ignored by svn.
3# This file documents a few examples, what can be done.
4
5# Adding timezone and keymap settings
6#AddSymlinkToHaikuImage home config settings
7#	: /boot/beos/etc/timezones/Europe/Paris : timezone ;
8
9#AddFilesToHaikuImage home config settings : <keymap>US-International
10#	: Key_map ;
11
12
13# Adjusting Build Variables
14
15# The following variables can be configured per subdirectory (or subtree) or
16# even per object file:
17#
18#	CCFLAGS C++FLAGS DEBUG DEFINES HDRS LINKFLAGS OPTIM OPTIMIZE SYSHDRS
19#	WARNINGS
20#	HOST_WARNING_CCFLAGS HOST_WARNING_C++FLAGS
21#	TARGET_WARNING_CCFLAGS TARGET_WARNING_C++FLAGS
22#	PLATFORM SUPPORTED_PLATFORMS
23#
24# The following examples would work analogously for any of these variables.
25
26# Turn off warnings in directory src/system/kernel. As fourth (scope) parameter
27# "local" is specified, which means, that this setting applies only to the
28# given directory, but not any of its subdirectories.
29#SetConfigVar WARNINGS : HAIKU_TOP src system kernel : 0 : local ;
30
31# Set the debug level for directory src/system/boot/loader and recursively all
32# of its subdirectories (scope is "global") to 1. All affected generated files
33# will be put into another subtree of the "generated" directory, which allows
34# for fast switching between normal and debug builds.
35#SetConfigVar DEBUG : HAIKU_TOP src system boot loader : 1 : global ;
36
37# Add "RUN_WITHOUT_REGISTRAR" to the DEFINES for the directory src/kits and
38# all of its subdirectories.
39#AppendToConfigVar DEFINES : HAIKU_TOP src kits : RUN_WITHOUT_REGISTRAR
40#	: global ;
41
42# Set the debug level for file src/bin/gdb/gdb/haiku-nat.c (note, that
43# the object file must be specified) to 1. It is worth mentioning, that the
44# executable the object file is linked into (gdb), will still be placed in
45# generated/objects/.../release/... Only when setting DEBUG for the executable,
46# too, it will be placed in .../debug_1/.... Apart from that, the DEBUG variable
47# has no effect on executables or other shared objects.
48#DEBUG on <src!bin!gdb!gdb!>haiku-nat.o = 1 ;
49
50
51# Haiku Image Related Modifications
52
53# Create a 100 MB image at /tmp/walter.image.
54#HAIKU_IMAGE_NAME	= walter.image ;
55#HAIKU_IMAGE_DIR		= /tmp ;
56#HAIKU_IMAGE_SIZE	= 100 ;
57
58# Name the VMWare image walter.vmdk (in directory $(HAIKU_IMAGE_DIR)).
59#HAIKU_VMWARE_IMAGE_NAME	= walter.vmdk ;
60
61# Install Haiku in directory /Haiku.
62#HAIKU_INSTALL_DIR = /Haiku ;
63
64# If the image does already exist it won't be zeroed out. It will nevertheless
65# freshly be initialized with BFS. Useful when installing Haiku on a partition.
66#HAIKU_DONT_CLEAR_IMAGE = 1 ;
67
68
69# Affects the haiku-image, haiku-vmware-image, and install-haiku targets. Only
70# targets on which the HAIKU_INCLUDE_IN_IMAGE variable has been set will be
71# updated in the image file/installation directory.
72# The update-image, update-vmware-image, and update-install targets always invoke
73# this rule, so one likely doesn't ever need to do it manually.
74#SetUpdateHaikuImageOnly 1 ;
75
76# libbe.so and the kernel will be updated on image updates. Note that this
77# generally doesn't work for pseudo targets (it does where special support
78# has been added, like for "kernel").
79#HAIKU_INCLUDE_IN_IMAGE on libbe.so kernel = 1 ;
80
81# Add "crashing_app" to the beos/bin directory of the Haiku image/installation.
82# Note, that this also makes the image depend on the target, i.e. it is
83# automatically updated when the image is built.
84#AddFilesToHaikuImage beos bin : crashing_app ;
85
86# Make a symlink to home/config/bin/crash.
87#AddSymlinkToHaikuImage home config bin : /beos/bin/crashing_app : crash ;
88
89# Adds the source directories src/kits/storage and src/tests/servers/debug
90# (recursively) to the image (as /boot/home/HaikuSources/src/kits/storage
91# and /boot/home/HaikuSources/src/tests/servers/debug respectively).
92# Note that the second directory will also be copied, if the image will only
93# be updated; the first one won't in that case.
94#AddSourceDirectoryToHaikuImage src/kits/storage ;
95#AddSourceDirectoryToHaikuImage src/tests/servers/debug : 1 ;
96
97# Unzips the given zip archive onto the image under /boot/develop/tools.
98#UnzipArchiveToHaikuImage develop tools
99#	: /home/bonefish/develop/haiku/misc/gcc-2.95.3-beos-070218/gcc-2.95.3_binutils-2.17_rel-070218.zip ;
100
101# Adds the optional package WonderBrush to the image. The package is downloaded
102# via wget (i.e. wget must be installed).
103#AddOptionalHaikuImagePackages WonderBrush ;
104
105# Adds the optional package Vision to the image. See above.
106#AddOptionalHaikuImagePackages Vision ;
107
108# Adds the optional package Pe to the image. See above.
109#AddOptionalHaikuImagePackages Pe ;
110
111# Adds the optional package Links to the image. See above.
112#AddOptionalHaikuImagePackages Links ;
113
114# Add all available optional packages.
115#HAIKU_ADD_ALL_OPTIONAL_PACKAGES = 1 ;
116
117# Specify scripts that shall be run when populating the image/installation
118# directory. The "early" script is run before anything has been copied onto
119# the image/into the installation directory. The "late" script is run after
120# everything has been copied, but before the MIME database is installed.
121#HAIKU_IMAGE_EARLY_USER_SCRIPTS	= $(HAIKU_TOP)/../early-image-script.sh ;
122#HAIKU_IMAGE_LATE_USER_SCRIPTS	= $(HAIKU_TOP)/../late-image-script.sh ;
123
124
125# Creating Sourceable Shell Scripts
126
127# If you use shell scripts (e.g. for testing) that need to access targets or
128# build system properties, you can tell the build system to generate a
129# variables defining shell script you can source from your shell script.
130
131# General setup for the shell script to generate. Name is test.inc, located
132# in the output directory.
133#MakeLocate test.inc : $(HAIKU_OUTPUT_DIR) ;
134#Always test.inc ;
135
136# Define variable "outputDir" in the shell script, with the value of
137# HAIKU_OUTPUT_DIR.
138#AddVariableToScript test.inc : outputDir : $(HAIKU_OUTPUT_DIR) ;
139
140# Define variables "bfsShell" and "fsShellCommand" referring to the
141# generated bfs_shell and fs_shell_command respectively.
142#AddTargetVariableToScript test.inc : bfs_shell : bfsShell ;
143#AddTargetVariableToScript test.inc : fs_shell_command : fsShellCommand ;
144
145# If no variable name is given, the name (without grist) of the target is
146# used, i.e. a variable "rc" referring to the rc command built for the host
147# platform is defined in the script.
148#AddTargetVariableToScript test.inc : <build>rc ;
149
150
151# Optimizing Jamfile Parsing Times
152
153# Setting this variable will prevent the root Jamfile to include the Jamfile
154# in the src directory. Instead only the directories required for building the
155# build tools are included. Only useful in combination with DeferredSubInclude.
156#HAIKU_DONT_INCLUDE_SRC = 1 ;
157
158# Schedule the given subdirectory for inclusion at the end of the root
159# Jamfile (directly using SubInclude here is not possible). Using this
160# feature together with HAIKU_DONT_INCLUDE_SRC allows developers working
161# only on a subproject to reduce Jamfile parsing times considerably.
162#DeferredSubInclude HAIKU_TOP src tests add-ons kernel file_systems
163#	userlandfs ;
164
165
166# Copy the posix test suite onto the image (or on the installation) into
167# "home/posixtestsuite" directory, including the run script.
168#HAIKU_ADD_POSIX_TEST_SUITE_TO_IMAGE = 1 ;
169