]> git.saurik.com Git - wxWidgets.git/blob - build/bakefiles/wxpresets/presets/wx_unix.bkl
fca2c126c6f1f3d5e02dff4a552caeb210b898bc
[wxWidgets.git] / build / bakefiles / wxpresets / presets / wx_unix.bkl
1 <?xml version="1.0" ?>
2 <!-- $Id$ -->
3
4 <!--
5 Presents for building wxWidgets applications using Autoconf or GNU toosets.
6 See wx.bkl for platform-independent notes.
7
8 Usage:
9 Options WX_CPPFLAGS, WX_CFLAGS, WX_CXXFLAGS, WX_LIBS are defined.
10
11
12 Format-specific notes:
13
14 * autoconf:
15 Beware that you have to use AM_OPTIONS_WXCONFIG and
16 AM_PATH_WXCONFIG in your configure.in!
17
18 -->
19
20
21 <makefile>
22
23 <!-- ============================================================== -->
24 <!-- Autoconf -->
25 <!-- ============================================================== -->
26
27 <if cond="FORMAT=='autoconf'">
28 <!-- Autoconf backend is simplicity itself thanks to wx-config... -->
29 <option name="WX_CFLAGS"/>
30 <option name="WX_CXXFLAGS"/>
31 <option name="WX_CPPFLAGS"/>
32 <option name="WX_LIBS"/>
33 <option name="WX_RESCOMP"/>
34 </if>
35
36 <!-- ============================================================== -->
37 <!-- GNU makefiles for Unix -->
38 <!-- ============================================================== -->
39
40 <if cond="FORMAT=='gnu'">
41 <set var="WX_CONFIG_DEFAULT" overwrite="0">wx-config</set>
42 <option name="WX_CONFIG">
43 <default-value>$(WX_CONFIG_DEFAULT)</default-value>
44 <description>Location and arguments of wx-config script</description>
45 </option>
46 <option name="WX_CFLAGS">
47 <default-value>`$(DOLLAR)(WX_CONFIG) --cflags`</default-value>
48 <description>C flags to use with wxWidgets code</description>
49 </option>
50 <option name="WX_CXXFLAGS">
51 <default-value>`$(DOLLAR)(WX_CONFIG) --cxxflags`</default-value>
52 <description>C++ flags to use with wxWidgets code</description>
53 </option>
54 <option name="WX_CPPFLAGS">
55 <default-value>`$(DOLLAR)(WX_CONFIG) --cppflags`</default-value>
56 <description>C preprocessor flags to use with wxWidgets code</description>
57 </option>
58 <option name="WX_RESCOMP">
59 <default-value>`$(DOLLAR)(WX_CONFIG) --rescomp`</default-value>
60 <description>wxWidgets resource compiler and flags</description>
61 </option>
62
63 <!-- we need this but the trick used in default-values above
64 prevents bakefile from detecting it: -->
65 <set var="FORMAT_OUTPUT_VARIABLES" append="1">WX_CONFIG</set>
66 </if>
67
68 <!-- ============================================================== -->
69 <!-- Common code -->
70 <!-- ============================================================== -->
71
72 <if cond="FORMAT not in ['gnu','autoconf']">
73 <error>
74 Don't include presets/wx_unix.bkl directly, use presets/wx.bkl.
75 </error>
76 </if>
77
78 <!--
79 We need to re-define the WINDRES resource compiler name to the resource compiler
80 returned by 'wx-config - -rescomp' since this option returns both the name of the
81 resource compiler to use (windres) and the flags required for that compiler.
82
83 This line typically does something *only* when the Makefile.in generated
84 using this bakefile, is used on Windows with MSYS (when using Cygwin, resources
85 are not compiled at all).
86 Without this line, in fact, when compiling with MSYS on Windows, the - -include-dir
87 option which tells windres to look in wxWidgets\include folder would be missing and
88 then windres would fail to find the wxMSW resources.
89
90 NOTE: overwriting the WINDRES variable we add wxWidgets resource flags to
91 all targets which include this bakefile; this could be useless to those
92 targets which are not wx-based eventually present in that bakefile but
93 in any case it shouldn't do any harm.
94 -->
95 <set var="WINDRES">$(WX_RESCOMP)</set>
96
97 <template id="wx-lib">
98 <cxxflags>$(WX_CXXFLAGS)</cxxflags>
99 <cflags>$(WX_CFLAGS)</cflags>
100 </template>
101
102 <template id="wx" template="wx-lib">
103 <!--
104 Don't include the $(WX_LIBS) variable in linker options here since
105 it would make impossible for the user to obtain the right library
106 order when he needs to specify, *before* WX_LIBS, its own libraries
107 that depend on wxWidgets libraries; to avoid this, we include
108 $(WX_LIBS) as soon as we found the <wx-lib>base</wx-lib> tag which
109 the user should always put *after* all other wx-dependent libraries
110 -->
111 </template>
112
113 <!-- VERY IMPORTANT: <wx-lib>base</wx-lib> must be the last wx-lib tag
114 in all your bakefiles !!
115 -->
116 <define-tag name="wx-lib" rules="exe,dll,module">
117 <if cond="FORMAT=='autoconf' and value=='base'">
118 <!-- all wx-dependent libraries should have been already listed
119 thus we can now add WX_LIBS to the linker line -->
120 <ldlibs>$(WX_LIBS)</ldlibs>
121 </if>
122 <if cond="FORMAT=='gnu' and value=='base'">
123 <!-- all wx libraries should have been already specified, thus
124 $(__liblist) should contain the full list... -->
125 <set var="__liblist" append="1">base</set>
126 <ldlibs>`$(WX_CONFIG) --libs $(','.join(__liblist.split()))`</ldlibs>
127 </if>
128 <if cond="FORMAT=='gnu' and value!='base'">
129 <set var="__liblist" append="1">$(value)</set>
130 </if>
131 <if cond="value not in ALLLIB_LIST.split()">
132 <error>Unknown wxWidgets library given in the wx-lib tag</error>
133 </if>
134 </define-tag>
135
136 </makefile>