1<?xml version="1.0" ?>
2<!-- $Id: wx.bkl 53750 2008-05-26 09:21:56Z VS $ -->
3
4
5<!-- Master bakefile for wxWidgets -->
6
7<makefile>
8
9    <!-- make sure setup.h is created as soon as possible: -->
10    <phony id="setup_h" cond="FORMAT!='autoconf'">
11        <dependency-of>all</dependency-of>
12    </phony>
13
14    <set var="BUILDING_LIB">1</set>
15
16    <!-- common rules, names etc. for wx: -->
17    <include file="common.bkl"/>
18
19    <!-- list of files sorted into categories: -->
20    <include file="files.bkl"/>
21
22    <!-- wxWidgets variant where everything is in one library: -->
23    <include file="monolithic.bkl"/>
24    <!-- ...and when there are multiple libraries: -->
25    <include file="multilib.bkl"/>
26
27    <if cond="FORMAT in ['msvc6prj','msevc4prj','msvs2005prj']">
28        <set var="MSVC6PRJ_MERGED_TARGETS">
29            <if cond="MONOLITHIC=='0'">$(MSVC6PRJ_MERGED_TARGETS_MULTILIB)</if>
30            <if cond="MONOLITHIC=='1'">$(MSVC6PRJ_MERGED_TARGETS_MONOLIB)</if>
31        </set>
32    </if>
33
34    <!-- OpenGL canvas is built as separate library in both cases: -->
35    <include file="opengl.bkl"/>
36    <!-- Dynamically loadable plugins: -->
37    <include file="plugins.bkl"/>
38
39    <!-- Samples target (not dependency of 'all'): -->
40    <subproject id="samples">
41        <installable>no</installable>
42        <dir cond="FORMAT=='autoconf'">samples</dir>
43        <dir cond="FORMAT!='autoconf' and TOOLKIT in ['PM','MSW','MGL','MOTIF']">../../samples</dir>
44    </subproject>
45
46    <if cond="FORMAT=='autoconf'">
47
48        <!-- WXRC compiler is built by default: -->
49        <!-- FIXME: this is dirty hack, better bakefile support for
50             conditional and optional subprojects is needed -->
51        <action id="wxrc" cond="USE_XRC=='1'">
52            <dependency-of>all</dependency-of>
53
54            <!-- some of these are not built in all configurations, <depends>
55                 takes care of ignoring the disabled ones: -->
56            <depends>monodll</depends>
57            <depends>monolib</depends>
58            <depends>basedll</depends>
59            <depends>baselib</depends>
60            <depends>xmldll</depends>
61            <depends>xmllib</depends>
62
63            <command>
64                (if test -d utils/wxrc ; then cd utils/wxrc &amp;&amp; $(DOLLAR)(MAKE) all ; fi)
65            </command>
66        </action>
67        <action id="clean-wxrc" cond="USE_XRC=='1'">
68            <dependency-of>clean</dependency-of>
69            <command>
70                (if test -d utils/wxrc ; then cd utils/wxrc &amp;&amp; $(DOLLAR)(MAKE) clean ; fi)
71            </command>
72        </action>
73        <action id="install-wxrc" cond="USE_XRC=='1'">
74            <dependency-of>install</dependency-of>
75            <depends>wxrc</depends>
76            <command>
77                (if test -d utils/wxrc ; then cd utils/wxrc &amp;&amp; $(DOLLAR)(MAKE) install ; fi)
78            </command>
79        </action>
80
81        <!-- "make install": -->
82
83        <data-files>
84            <files>wxwin.m4</files>
85            <install-to>$(DATADIR)/aclocal</install-to>
86        </data-files>
87
88        <data-files>
89            <srcdir>$(SRCDIR)/build/bakefiles/wxpresets/presets</srcdir>
90            <files>wx.bkl wx_unix.bkl wx_win32.bkl</files>
91            <install-to>$(DATADIR)/bakefile/presets</install-to>
92        </data-files>
93
94        <action id="install-wxconfig">
95            <dependency-of>install</dependency-of>
96            <command>
97                $(INSTALL_DIR) $(DESTDIR)$(BINDIR)
98                $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/wx/config
99                $(INSTALL_PROGRAM) lib/wx/config/$(TOOLCHAIN_FULLNAME) $(DESTDIR)$(LIBDIR)/wx/config
100                (cd $(DESTDIR)$(BINDIR) &amp;&amp; rm -f wx-config &amp;&amp; $(LN_S) $(LIBDIR)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config)
101            </command>
102        </action>
103
104        <set var="RCDEFS_H">
105            <if cond="TOOLKIT=='MSW'">msw/rcdefs.h</if>
106        </set>
107        <headers>
108            <srcdir>
109                $(BUILDDIR)/lib/wx/include/$(TOOLCHAIN_FULLNAME)/wx
110            </srcdir>
111            <files>
112                setup.h $(RCDEFS_H)
113            </files>
114            <install-to>
115                $(LIBDIR)/wx/include/$(TOOLCHAIN_FULLNAME)/wx
116            </install-to>
117        </headers>
118
119        <headers>
120            <srcdir>$(SRCDIR)/include</srcdir>
121            <files>$(ALL_HEADERS)</files>
122            <install-to>
123                $(INCLUDEDIR)/wx-$(WX_RELEASE)$(WX_FLAVOUR)
124            </install-to>
125        </headers>
126
127        <!-- Locales: -->
128        <using module="gettext"/>
129        <gettext-catalogs id="locale">
130            <srcdir>$(SRCDIR)/locale</srcdir>
131            <catalog-name>wxstd</catalog-name>
132            <linguas>
133                ca cs da de el es fi fr hu id it ja nl pl ru sl sv tr uk
134                zh zh_CN zh_TW
135            </linguas>
136            <install-to>$(LOCALEDIR)</install-to>
137        </gettext-catalogs>
138        <gettext-catalogs id="locale_msw">
139            <srcdir>$(SRCDIR)/locale/msw</srcdir>
140            <catalog-name>wxmsw</catalog-name>
141            <linguas>it</linguas>
142            <install-to>$(LOCALEDIR)</install-to>
143        </gettext-catalogs>
144                
145
146        <!-- Mac OS X resources: -->
147        <set var="MACOS_R">lib/libwx_$(TOOLCHAIN_NAME).$(WXSOVERSION[0]).r</set>
148        <set var="MACOS_RSRC">lib/libwx_$(TOOLCHAIN_NAME).$(WXSOVERSION[0]).rsrc</set>
149        <action id="cocoa-res" cond="TOOLKIT=='COCOA'">
150            <dependency-of>all</dependency-of>
151            <set var="__targetname">$(MACOS_R)</set>
152            <command>
153                $(REZ) -d __UNIX__ -useDF $(top_srcdir)/src/cocoa/dummy.r -o $(MACOS_RSRC)
154                $(DEREZ) $(MACOS_RSRC) -useDF >$(MACOS_R)
155            </command>
156            <clean-files>$(MACOS_RSRC) $(MACOS_R)</clean-files>
157        </action>
158        <action id="cocoa-res-install" cond="TOOLKIT=='COCOA'">
159            <dependency-of>install</dependency-of>
160            <depends>cocoa-res</depends>
161            <command>
162                $(INSTALL_DATA) $(MACOS_R) $(LIBDIR)
163                $(INSTALL_DATA) $(MACOS_RSRC) $(LIBDIR)
164            </command>
165        </action>
166
167    </if>
168
169
170    <!-- copy setup.h on DOS/OS2/Windows: -->
171    <if cond="FORMAT!='autoconf' and TOOLKIT in ['PM','MSW','MGL','MOTIF']">
172        <mkdir id="libdir">
173            <dir>$(LIBDIRNAME)</dir>
174        </mkdir>
175        <mkdir id="libdir_setup">
176            <depends>libdir</depends>
177            <dir>$(SETUPHDIR)</dir>
178        </mkdir>
179        <mkdir id="libdir_setup_wx">
180            <depends>libdir_setup</depends>
181            <dependency-of>setup_h</dependency-of>
182            <dir>$(SETUPHDIR)/wx</dir>
183        </mkdir>
184
185        <set var="SETUP_H_SUBDIR">
186            <if cond="WXUNIV=='1'">univ</if>
187            <if cond="WXUNIV=='0' and TOOLKIT!='PM'">$(TOOLKIT_LOWERCASE)</if>
188            <if cond="WXUNIV=='0' and TOOLKIT=='PM'">os2</if>
189        </set>
190
191        <copy-file-to-file-if-not-exist id="master_setup.h">
192            <src>$(SRCDIR)/include/wx/$(SETUP_H_SUBDIR)/setup0.h</src>
193            <dst>$(SRCDIR)/include/wx/$(SETUP_H_SUBDIR)/setup.h</dst>
194            <dependency-of>setup_h</dependency-of>
195        </copy-file-to-file-if-not-exist>
196        <copy-file-to-file-if-not-exist id="setup.h">
197            <dependency-of>setup_h</dependency-of>
198            <src>$(SRCDIR)/include/wx/$(SETUP_H_SUBDIR)/setup.h</src>
199            <dst>$(SETUPHDIR)/wx/setup.h</dst>
200        </copy-file-to-file-if-not-exist>
201
202    </if>
203
204
205    <!-- create rcdefs.h on Windows: -->
206    <if cond="FORMAT in ['borland','mingw','msvc','watcom'] and TOOLKIT == 'MSW'">
207
208        <mkdir id="libdir_setup_wx_msw">
209            <depends>libdir_setup_wx</depends>
210            <dir>$(SETUPHDIR)/wx/msw</dir>
211        </mkdir>
212
213        <action id="rcdefs.h">
214
215            <!-- Can't seem to set id to a name with a dollar sign
216                 so use __targetname as a temporary work around -->
217            <set var="__targetname">$(SETUPHDIR)\wx\msw\rcdefs.h</set>
218
219            <dependency-of>setup_h</dependency-of>
220            <depends>libdir_setup_wx_msw</depends>
221            <depends-on-file>$(SRCDIR)/include/wx/msw/genrcdefs.h</depends-on-file>
222
223            <command>
224                $(DOLLAR)(CPP) "$(nativePaths(SRCDIR))\include\wx\msw\genrcdefs.h" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
225            </command>
226
227        </action>
228
229    </if>
230
231
232    <if cond="FORMAT=='autoconf'">
233
234        <!-- Show this banner after installation: -->
235        <modify-target target="install">
236            <command>
237@echo " "
238@echo " ------------------------------------------------------"
239@echo " "
240@echo " The installation of wxWidgets is finished.  On certain"
241@echo " platforms (e.g. Linux) you'll now have to run ldconfig"
242@echo " if you installed a shared library and also modify the"
243@echo " LD_LIBRARY_PATH (or equivalent) environment variable."
244@echo " "
245@echo " wxWidgets comes with no guarantees and doesn't claim"
246@echo " to be suitable for any purpose."
247@echo " "
248@echo " Read the wxWidgets Licence on licencing conditions."
249@echo " "
250@echo " ------------------------------------------------------"
251@echo " "
252            </command>
253        </modify-target>
254
255        <!-- add "make dist" target to autoconf: -->
256        <set var="VARS_DONT_ELIMINATE" append="1">
257            ALL_PORTS_BASE_HEADERS ALL_BASE_SOURCES WX_VERSION
258        </set>
259        <fragment format="autoconf" file="make_dist.mk"/>
260
261    </if>
262
263    <include file="build_cfg.bkl"/>
264
265</makefile>
266