annotate bob.cfg @ 139:e33f37b14893 default tip

Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
author David Bryant <bagnose@gmail.com>
date Sun, 30 Sep 2012 15:41:25 +0930
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
139
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
1 ###############################################################################
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
2
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
3 # Example bob configuration file.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
4 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
5 # Used by 'bob-config' to establish a build directory, from which a 'bob'
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
6 # command will build your project.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
7 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
8 # This file should be located at the top level of a repository, below which
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
9 # are source directories.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
10 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
11 # Before running bob-config, you need to:
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
12 # * Check out the project's source repository(s).
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
13 # * Ensure that all the project's external dependencies are available,
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
14 # either in standard system locations or in local project-specific
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
15 # locations.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
16 # Bob does not verify external dependencies.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
17 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
18 # If your project is built for a number of target architectures, use
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
19 # one config file for each architecture, and specify which one on the bob-config
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
20 # command-line.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
21 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
22 ###############################################################################
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
23 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
24 # Top-level syntax is a series of sections, each starting with a line:
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
25 # [section-name]
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
26 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
27 # Comment lines begin with '#'.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
28 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
29 # The syntax for each section is section-specific, and described in each
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
30 # section.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
31 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
32 ###############################################################################
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
33
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
34
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
35 [defines]
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
36
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
37 # Define variables.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
38 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
39 # Any relative paths provided in variable definitions are relative to
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
40 # the directory this file is in, which is also the working directory
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
41 # of bob-config.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
42 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
43 # A variable definition is: name = text
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
44 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
45 # Variables used by bob are:
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
46 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
47 # PROJECT - Path to directory containing the project's top-level Bobfile.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
48 # REPOS - Paths to other repos (if any), below which are source
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
49 # directories that are available to build as part of this project.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
50 # SYS_INC - Non-standard paths searched for system includes.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
51 # SYS_LIB - Non-standard paths searched for system libraries.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
52 # SYS_PATH - Non-standard paths searched for system utilities.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
53 # SYS_IMP - Non-standard paths searched for D imports.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
54 # C_EXTERN - Top-level C/C++ packages that are external to the project.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
55 # D_EXTERN - Top-level D packages that are external to the project.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
56 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
57 # Also required are build commands.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
58 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
59 # Build-command variables are used by bob to create the output files specified
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
60 # in the project's Bobfile(s). They are of the form:
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
61 # <input-ext> <output-ext>(s) = command
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
62 # Reserved extensions with special meaning are:
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
63 # .obj -> object file
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
64 # .slib -> static library
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
65 # .dlib -> dynamic library
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
66 # .exe -> executable
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
67 # The extensions actually used vary with platform.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
68 # Libraries and executables are built from object files.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
69 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
70 # The commands that use object files to create libraries and executables are
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
71 # specified with the extension of the source files, not .obj.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
72 # .c source files may be mixed with other types of source files,
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
73 # but others may not. .h files are assumed to be header files.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
74 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
75 # Reserved variables defined by bob from information in Bobfiles are:
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
76 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
77 # INPUT - Paths of the input file(s) relative to the build dir.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
78 # OUTPUT - Paths of the resultant built file(s) relative to the build dir.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
79 # PROJ_INC - Project include or import paths.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
80 # PROJ_LIB - Project library paths.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
81 # LIBS - Required libraries.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
82 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
83 # ${} expands a variable, cross-multiplying it with whatever it is adjacent to.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
84 # eg, if HEADERS = one two three, then -I${HEADERS} becomes -Ione -Itwo -Ithree.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
85 # If the variable is empty, the cross-multiplication is also empty.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
86 # If there is no adjacent text, the variable's value is used.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
87 # Variable expansion occurs just before a build command is issued, after
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
88 # all dependencies are known.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
89
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
90 # Required
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
91 PROJECT = doodle
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
92 REPOS =
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
93 SYS_IMP =
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
94 SYS_INC =
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
95 SYS_LIB =
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
96 SYS_PATH =
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
97 C_EXTERN =
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
98 D_EXTERN = core std glib gdk gtk gtkc cairo
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
99
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
100 # Compiler switches
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
101 CFLAGS = -fpic -pedantic -Werror -Wall -Wno-long-long -Wundef -Wredundant-decls -DFILE_PATH=${INPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
102 C++FLAGS = ${CFLAGS} -Woverloaded-virtual -Wsign-promo -Wctor-dtor-privacy -Wnon-virtual-dtor
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
103 DFLAGS = -w -wi -gc -Isrc/gtk
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
104 LINKFLAGS =
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
105 DLINKFLAGS = -L-L/home/dbryant/source/d/GtkD
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
106
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
107 # Build commands
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
108
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
109 # Contrived example of source-code generation.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
110 .H .h = cp ${INPUT} ${OUTPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
111 .CPP .cpp = cp ${INPUT} ${OUTPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
112
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
113 # Documentation
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
114 .rst .html = rst2html ${INPUT} ${OUTPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
115
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
116 # Object files
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
117 .c .obj = gcc -c ${INPUT} -isystem${SYS_INC} -iquote${PROJ_INC} ${CFLAGS} -o ${OUTPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
118 .cpp .obj = g++ -c ${INPUT} -isystem${SYS_INC} -iquote${PROJ_INC} ${C++FLAGS} -o ${OUTPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
119 .d .obj = dmd -c ${INPUT} -I${SYS_IMP} -I${PROJ_INC} ${DFLAGS} -of${OUTPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
120
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
121 # Static libraries
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
122 .c .slib = rm -f ${OUTPUT} && ar csr ${OUTPUT} ${INPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
123 .cpp .slib = rm -f ${OUTPUT} && ar csr ${OUTPUT} ${INPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
124 .d .slib = rm -f ${OUTPUT} && ar csr ${OUTPUT} ${INPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
125
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
126 # Dynamic libraries
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
127 .c .dlib = gcc -shared ${INPUT} ${LINKFLAGS} -L${SYS_LIB} -L${PROJ_LIB} -l{LIBS} -o ${OUTPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
128 .cpp .dlib = g++ -shared ${INPUT} ${LINKFLAGS} -L${SYS_LIB} -L${PROJ_LIB} -l{LIBS} -o ${OUTPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
129
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
130 # Executables
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
131 .c .exe = gcc ${INPUT} ${LINKFLAGS} -L${SYS_LIB} -L${PROJ_LIB} -l${LIBS} -o ${OUTPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
132 .cpp .exe = g++ ${INPUT} ${LINKFLAGS} -L${SYS_LIB} -L${PROJ_LIB} -l${LIBS} -o ${OUTPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
133 .d .exe = dmd ${INPUT} ${DLINKFLAGS} -L-L${SYS_LIB} -L-L${PROJ_LIB} -L-l${LIBS} -of${OUTPUT}
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
134
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
135 [modes]
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
136
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
137 # For each mode, add to already-defined variables.
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
138 # Format of a mode is: the name of the mode, followed by indented
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
139 # variable additions. eg:
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
140 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
141 # debug
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
142 # CFLAGS += ggdb3
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
143 #
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
144 # Exactly one mode is in use for a given build directory, and is specified
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
145 # on the bob-config command line. eg: mode=debug
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
146
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
147 debug
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
148 CFLAGS += -O1 -ggdb3
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
149 C++FLAGS += -O1 -ggdb3
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
150 DFLAGS +=
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
151
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
152 release
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
153 CFLAGS += -O2 -NDEBUG
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
154 C++FLAGS += -O2 -NDEBUG
e33f37b14893 Port to 'no-more-make' https://github.com/GrahamStJack/no-more-make
David Bryant <bagnose@gmail.com>
parents:
diff changeset
155 DFLAGS += -O -release