]> git.saurik.com Git - wxWidgets.git/blame - build/bakefiles/wxpresets/presets/wx_unix.bkl
implement propert background style semantics for OS X
[wxWidgets.git] / build / bakefiles / wxpresets / presets / wx_unix.bkl
CommitLineData
83c7f6a7
VS
1<?xml version="1.0" ?>
2<!-- $Id$ -->
3
4<!--
5Presents for building wxWidgets applications using Autoconf or GNU toosets.
6See wx.bkl for platform-independent notes.
7
83c7f6a7
VS
8Format-specific notes:
9
10* autoconf:
7fb02ea7
FM
11 Beware that you have to use WX_CONFIG_OPTIONS and
12 WX_CONFIG_CHECK in your configure.in to get at least the
e602dae8 13 WX_CPPFLAGS, WX_CFLAGS, WX_CXXFLAGS, WX_LIBS option values defined.
7fb02ea7 14
e602dae8 15 To detect the WX_* option values typically you also want to use
7fb02ea7
FM
16 the WX_STANDARD_OPTIONS, WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS,
17 WX_CONFIG_CHECK and finally WX_DETECT_STANDARD_OPTION_VALUES macros
18 (see wxwin.m4 for more info).
83c7f6a7
VS
19
20-->
21
22
23<makefile>
24
e602dae8
KO
25
26
83c7f6a7
VS
27 <!-- ============================================================== -->
28 <!-- Autoconf -->
29 <!-- ============================================================== -->
9864ef3b 30
83c7f6a7 31 <if cond="FORMAT=='autoconf'">
83c7f6a7
VS
32 <option name="WX_CFLAGS"/>
33 <option name="WX_CXXFLAGS"/>
34 <option name="WX_CPPFLAGS"/>
35 <option name="WX_LIBS"/>
692ebda6 36 <option name="WX_RESCOMP"/>
e602dae8
KO
37 <option name="WX_VERSION_MAJOR"/>
38 <option name="WX_VERSION_MINOR"/>
e606c822 39 <option name="WX_PORT"/>
e602dae8 40
e606c822 41 <!-- wxwin.m4 macros will detect all WX_* options defined above -->
e602dae8
KO
42
43
44 <!-- VERY IMPORTANT: <wx-lib>base</wx-lib> must be the last wx-lib tag
45 in all your bakefiles !!
46 -->
47 <define-tag name="wx-lib" rules="exe,dll,module">
48 <if cond="value=='base'">
49 <!-- all wx-dependent libraries should have been already listed
50 thus we can now add WX_LIBS to the linker line -->
51 <ldlibs>$(WX_LIBS)</ldlibs>
e606c822 52 </if>
18cea871 53 <if cond="value not in WX_LIB_LIST.split()">
e602dae8
KO
54 <error>Unknown wxWidgets library given in the wx-lib tag</error>
55 </if>
56 </define-tag>
57 </if>
58
9864ef3b 59
83c7f6a7
VS
60 <!-- ============================================================== -->
61 <!-- GNU makefiles for Unix -->
62 <!-- ============================================================== -->
63
64 <if cond="FORMAT=='gnu'">
e602dae8
KO
65
66 <!-- remove those WX_* vars which were created just to avoid the definition
67 of the WX_* options in wx.bkl -->
68 <unset var="WX_SHARED"/>
69 <unset var="WX_UNICODE"/>
70 <unset var="WX_DEBUG"/>
71 <unset var="WX_PORT"/>
72 <unset var="WX_VERSION"/>
73
369e0d05 74 <set var="WX_CONFIG_DEFAULT" overwrite="0">wx-config</set>
83c7f6a7 75 <option name="WX_CONFIG">
369e0d05 76 <default-value>$(WX_CONFIG_DEFAULT)</default-value>
83c7f6a7
VS
77 <description>Location and arguments of wx-config script</description>
78 </option>
e602dae8
KO
79
80 <set var="WX_PORT_DEFAULT" overwrite="0">
e5405b6b 81 $(DOLLAR)(shell $(WX_CONFIG) --query-toolkit)
e602dae8
KO
82 </set>
83 <option name="WX_PORT">
e606c822
VZ
84 <values>gtk1,gtk2,msw,x11,motif,mgl,mac,dfb</values>
85 <default-value force="1">$(WX_PORT_DEFAULT)</default-value>
e602dae8
KO
86 <description>
87 Port of the wx library to build against
88 </description>
89 </option>
90
91 <set var="WX_SHARED_DEFAULT" overwrite="0">
e5405b6b 92 $(DOLLAR)(shell if test -z `$(WX_CONFIG) --query-linkage`; then echo 1; else echo 0; fi)
e602dae8
KO
93 </set>
94 <option name="WX_SHARED">
e606c822
VZ
95 <values>0,1</values>
96 <values-description>Static,DLL</values-description>
97 <default-value force="1">$(WX_SHARED_DEFAULT)</default-value>
e602dae8
KO
98 <description>
99 Use DLL build of wx library to use?
100 </description>
83c7f6a7 101 </option>
e602dae8
KO
102
103 <set var="WX_UNICODE_DEFAULT" overwrite="0">
e5405b6b 104 $(DOLLAR)(shell $(WX_CONFIG) --query-chartype | sed 's/unicode/1/;s/ansi/0/')
e602dae8
KO
105 </set>
106 <option name="WX_UNICODE">
e606c822
VZ
107 <values>0,1</values>
108 <values-description>ANSI,Unicode</values-description>
109 <default-value force="1">$(WX_UNICODE_DEFAULT)</default-value>
e602dae8
KO
110 <description>
111 Compile Unicode build of wxWidgets?
112 </description>
83c7f6a7 113 </option>
e602dae8
KO
114
115 <set var="WX_DEBUG_DEFAULT" overwrite="0">
e5405b6b 116 $(DOLLAR)(shell $(WX_CONFIG) --query-debugtype | sed 's/debug/1/;s/release/0/')
e602dae8
KO
117 </set>
118 <option name="WX_DEBUG">
e606c822
VZ
119 <values>0,1</values>
120 <values-description>Release,Debug</values-description>
121 <default-value force="1">$(WX_DEBUG_DEFAULT)</default-value>
e602dae8
KO
122 <description>
123 Use debug build of wxWidgets (define __WXDEBUG__)?
124 </description>
83c7f6a7 125 </option>
e602dae8
KO
126
127 <set var="WX_VERSION_DEFAULT" overwrite="0">
e5405b6b 128 $(DOLLAR)(shell $(WX_CONFIG) --query-version | sed -e 's/\([0-9]*\)\.\([0-9]*\)/\1\2/')
e602dae8
KO
129 </set>
130 <option name="WX_VERSION">
131 <default-value>$(WX_VERSION_DEFAULT)</default-value>
132 <description>
133 Version of the wx library to build against.
134 </description>
692ebda6 135 </option>
83c7f6a7 136
e602dae8
KO
137 <!-- Get MAJOR and MINOR version numbers -->
138 <set var="WX_VERSION_MAJOR" make_var="1">
139 $(DOLLAR)(shell echo $(DOLLAR)(WX_VERSION) | cut -c1,1)
140 </set>
141 <set var="WX_VERSION_MINOR" make_var="1">
142 $(DOLLAR)(shell echo $(DOLLAR)(WX_VERSION) | cut -c2,2)
143 </set>
144
145
146 <!--
147 Using the GNU format creates a configurable makefile just like
148 a win32 makefile: i.e. a makefile where you can select the wanted
149 wxWidgets build using the WX_* options.
150
151 The difference with win32 makefiles is that WX_DEBUG, WX_UNICODE and
152 WX_SHARED options have a smart default value which is created using
153 the installed wx-config or the wx-config given using WX_CONFIG option
154 -->
155 <set var="WX_CONFIG_DEBUG_FLAG">
156 <if cond="WX_DEBUG=='0'">--debug=no</if>
157 <if cond="WX_DEBUG=='1'">--debug=yes</if>
158 </set>
159 <set var="WX_CONFIG_UNICODE_FLAG">
160 <if cond="WX_UNICODE=='0'">--unicode=no</if>
161 <if cond="WX_UNICODE=='1'">--unicode=yes</if>
162 </set>
163 <set var="WX_CONFIG_SHARED_FLAG">
164 <if cond="WX_SHARED=='0'">--static=yes</if>
165 <if cond="WX_SHARED=='1'">--static=no</if>
166 </set>
167 <set var="WX_CONFIG_PORT_FLAG">
168 --toolkit=$(WX_PORT)
169 </set>
170 <set var="WX_CONFIG_VERSION_FLAG">
171 --version=$(WX_VERSION_MAJOR).$(WX_VERSION_MINOR)
172 </set>
173
174 <set var="WX_CONFIG_FLAGS" make_var="1">
175 $(WX_CONFIG_DEBUG_FLAG) $(WX_CONFIG_UNICODE_FLAG) $(WX_CONFIG_SHARED_FLAG)
176 $(WX_CONFIG_PORT_FLAG) $(WX_CONFIG_VERSION_FLAG)
177 </set>
178
e5405b6b 179 <set var="DEFAULT_CXX">`$(DOLLAR)(WX_CONFIG) --cxx`</set>
e602dae8
KO
180 <set var="WX_CFLAGS">`$(DOLLAR)(WX_CONFIG) --cflags $(WX_CONFIG_FLAGS)`</set>
181 <set var="WX_CXXFLAGS">`$(DOLLAR)(WX_CONFIG) --cxxflags $(WX_CONFIG_FLAGS)`</set>
182 <set var="WX_CPPFLAGS">`$(DOLLAR)(WX_CONFIG) --cppflags $(WX_CONFIG_FLAGS)`</set>
183 <set var="WX_RESCOMP">`$(DOLLAR)(WX_CONFIG) --rescomp $(WX_CONFIG_FLAGS)`</set>
184
185 <!--
186 VERY IMPORTANT: before starting to build all targets of the generated makefile,
187 we need to check if the selected wxWidgets build exists; we do
188 that simply creating the following target; if it fails the make
189 program will halt with the wx-config error message...
190 -->
a78a8f7f
VZ
191 <if cond="WX_TEST_FOR_SELECTED_WXBUILD=='1'">
192 <action id="test_for_selected_wxbuild">
193 <dependency-of>all</dependency-of>
194
195 <!-- Use @ to hide to the user that we're running wx-config... -->
196 <command>@$(DOLLAR)(WX_CONFIG) $(WX_CONFIG_FLAGS)</command>
197 </action>
198 </if>
e602dae8 199
7fb02ea7 200 <!-- we need these vars but the trick used in the default values above
83c7f6a7 201 prevents bakefile from detecting it: -->
e602dae8
KO
202 <set var="FORMAT_OUTPUT_VARIABLES" append="1">WX_CONFIG WX_VERSION</set>
203
204
205 <!-- VERY IMPORTANT: <wx-lib>base</wx-lib> must be the last wx-lib tag
206 in all your bakefiles !!
207 -->
208 <define-tag name="wx-lib" rules="exe,dll,module">
209 <if cond="value=='base'">
210 <!-- all wx libraries should have been already specified, thus
7fb02ea7 211 $(__liblist) should contain the full list of required wxlibs... -->
e602dae8 212 <set var="__liblist" append="1">base</set>
11469277 213 <ldlibs>`$(WX_CONFIG) $(WX_CONFIG_FLAGS) --libs $(','.join(__liblist.split()))`</ldlibs>
e602dae8
KO
214 </if>
215 <if cond="value!='base'">
216 <set var="__liblist" append="1">$(value)</set>
217 </if>
18cea871 218 <if cond="value not in WX_LIB_LIST.split()">
e602dae8
KO
219 <error>Unknown wxWidgets library given in the wx-lib tag</error>
220 </if>
221 </define-tag>
83c7f6a7 222 </if>
9864ef3b 223
83c7f6a7
VS
224 <!-- ============================================================== -->
225 <!-- Common code -->
226 <!-- ============================================================== -->
9864ef3b 227
83c7f6a7
VS
228 <if cond="FORMAT not in ['gnu','autoconf']">
229 <error>
230 Don't include presets/wx_unix.bkl directly, use presets/wx.bkl.
231 </error>
232 </if>
9864ef3b 233
692ebda6 234 <!--
67533115
VZ
235 We need to re-define the WINDRES resource compiler name to the resource compiler
236 returned by 'wx-config - -rescomp' since this option returns both the name of the
237 resource compiler to use (windres) and the flags required for that compiler.
692ebda6
JS
238
239 This line typically does something *only* when the Makefile.in generated
240 using this bakefile, is used on Windows with MSYS (when using Cygwin, resources
241 are not compiled at all).
67533115
VZ
242 Without this line, in fact, when compiling with MSYS on Windows, the - -include-dir
243 option which tells windres to look in wxWidgets\include folder would be missing and
244 then windres would fail to find the wxMSW resources.
245
246 NOTE: overwriting the WINDRES variable we add wxWidgets resource flags to
247 all targets which include this bakefile; this could be useless to those
248 targets which are not wx-based eventually present in that bakefile but
249 in any case it shouldn't do any harm.
692ebda6 250 -->
67533115 251 <set var="WINDRES">$(WX_RESCOMP)</set>
692ebda6 252
c07e76fa 253 <template id="wx-lib">
83c7f6a7
VS
254 <cxxflags>$(WX_CXXFLAGS)</cxxflags>
255 <cflags>$(WX_CFLAGS)</cflags>
c07e76fa
VS
256 </template>
257
258 <template id="wx" template="wx-lib">
9864ef3b
VZ
259 <!--
260 Don't include the $(WX_LIBS) variable in linker options here since
261 it would make impossible for the user to obtain the right library
262 order when he needs to specify, *before* WX_LIBS, its own libraries
263 that depend on wxWidgets libraries; to avoid this, we include
264 $(WX_LIBS) as soon as we found the <wx-lib>base</wx-lib> tag which
265 the user should always put *after* all other wx-dependent libraries
266 -->
83c7f6a7
VS
267 </template>
268
83c7f6a7 269</makefile>