-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.config
209 lines (176 loc) · 7.14 KB
/
build.config
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
# ######################################################################
# First, set your project name and version here.
PROJNAME=ds
VERSION=1.0.6
# ######################################################################
# Set the main (executable) source files. These are all the source files
# that have a 'main' function. Note that you must specify the filename
# without the extension, so don't specify 'myfile.c', just specify
# 'myfile'.
#
# Note that this list is only for C files.
MAIN_PROGRAM_CSOURCEFILES=\
ds_array_test\
ds_table_test\
ds_str_test\
ds_ll_test\
ds_hmap_test\
ds_plist_test
# ######################################################################
# Set the main (executable) source files. These are all the source files
# that have a 'main' function. Note that you must specify the filename
# without the extension, so don't specify 'myfile.c', just specify
# 'myfile'.
#
# Note that this list is only for C++ files.
MAIN_PROGRAM_CPPSOURCEFILES=\
# ######################################################################
# Set each of the source files that must be built. These are all those
# source files (both .c and .cpp) that *DON'T* have a main function. All
# of these files will be compiled into a single library (sorry, I do not
# have plans to allow multiple library files to be built).
#
# Note once again that you must not specify the file extension.
# Unfortunately you are not allowed to have two object files that have the
# same name save for the extension. For example, you cannot have 'myfile.c'
# and 'myfile.cpp' in the same project, although it is allowed
# (encouraged even) to have either 'myfile.c' or 'myfile.cpp' together
# with 'myfile.h'.
#
# Note that this list is only for C files.
LIBRARY_OBJECT_CSOURCEFILES=\
ds_array\
ds_table\
ds_str\
ds_ll\
ds_hmap\
ds_plist
# ######################################################################
# Set each of the source files that must be built. These are all those
# source files (both .c and .cpp) that *DON'T* have a main function. All
# of these files will be compiled into a single library (sorry, I do not
# have plans to allow multiple library files to be built).
#
# Note once again that you must not specify the file extension.
# Unfortunately you are not allowed to have two object files that have the
# same name save for the extension. For example, you cannot have 'myfile.c'
# and 'myfile.cpp' in the same project, although it is allowed
# (encouraged even) to have either 'myfile.c' or 'myfile.cpp' together
# with 'myfile.h'.
#
# Note that this list is only for C++ files.
LIBRARY_OBJECT_CPPSOURCEFILES=\
# ######################################################################
# For now we set the headers manually. In the future I plan to use gcc to
# generate the dependencies that can be included in this file. Simply name
# all the header files you wrote for this project. Note that unlike the
# previous settings, for this setting you must specify the path to the
# headers (relative to this directory).
HEADERS=\
src/ds_array.h\
src/ds_table.h\
src/ds_str.h\
src/ds_ll.h\
src/ds_hmap.h
# ######################################################################
# If you need need to call your library from other languages, set the
# SWIG targets here, using 'wrap-$language' as a target. The SWIG_WRAPPERS
# can be left empty if this is not needed.
#
# Note that to use SWIG:
# 1. It must be installed,
# 2. The swig-input.swig file must be modified for your project.
#
# An example of basic SWIG usage can be found at:
# http://swig.org/tutorial.html
#
SWIG_WRAPPERS:=\
wrap-java
# ######################################################################
# Here you must set the list of include paths. Note that the variable
# $(HOME) is available if you have include directories relative to your
# home directory. $(HOME) works correctly on Windows as well.
#
# You can put as many paths in here as you want to. I've put one in as an
# example.
INCLUDE_PATHS=\
/usr/lib/jvm/java-11-openjdk-amd64/include\
/usr/lib/jvm/java-11-openjdk-amd64/include/linux
# ######################################################################
# This is similar to the INCLUDE_PATHS you set above, except that it is
# for the library search paths. $(HOME) is available if you have library
# directories relative to your home directory. $(HOME) works correctly
# on Windows as well.
#
# You can put as many paths in here as you want to. I've put one in as an
# example. See the variable LIBRARY_FILES to set the actual libraries you
# want to link in.
LIBRARY_PATHS=\
# ######################################################################
# This is for specifying extra libraries. Note that you must only specify
# the library name, and neither the extension nor the prefix 'lib'.
#
# These files *MUST* be in the library search path specified with
# LIBRARY_PATHS.
#
# I've put in an example here that is commented out, so that you can see
# how the files are supposed to be specified but, because it is commented
# out, it will not break the build process if this library is not
# installed.
#
# (If it is not commented out, go ahead and comment it out when the build
# fails)
#LIBRARY_FILES=\
# ds
# ######################################################################
# Here you set extra compiler flags that are common to both the C++ and
# the C compiler. You can comment this line out with no ill-effects.
#
# Note that this does not override the existing flags, it only adds to
# them
EXTRA_COMPILER_FLAGS=\
-DNAME=Value\
-W -Wall
# ######################################################################
# Here you set extra compiler flags for the C compiler only. You can comment
# this line out with no ill-effects.
#
# Note that this does not override the existing flags, it only adds to
# them
EXTRA_CFLAGS=\
-std=c99
# ######################################################################
# Here you set extra compiler flags for the C++ compiler only. You can
# comment this line out with no ill-effects.
#
# Note that this does not override the existing flags, it only adds to
# them
EXTRA_CXXFLAGS=\
-std=c++11
# ######################################################################
# You can add in extra flags to the linker here, for the library. This
# does not override the existing flags, it adds to them.
#
EXTRA_LIB_LDFLAGS=\
# ######################################################################
# You can add in extra flags to the linker here, for the programs. This
# does not override the existing flags, it adds to them.
#
EXTRA_PROG_LDFLAGS=\
# ######################################################################
# The default compilers are gcc and g++. If you want to specify something
# different, this is the place to do it. This is useful if you want to
# cross-compile, or use a different gcc/g++ than the one in your path, or
# simply want to use clang instead.
#
# Note that only clang and gcc are supported (due to reliance on the
# compiler command-line options).
#
# You can comment this out with no ill-effects.
GCC?=gcc
GXX?=g++
LD_PROG?=gcc
LD_LIB?=gcc
# ######################################################################
# TODO: Add in a way to override the default linker
#