add VC9 project files (closes #9960)
[wxWidgets.git] / build / bakefiles / wx.bkl
1 <?xml version="1.0" ?>
2 <!-- $Id$ -->
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','msvs2003prj','msvs2005prj','msvs2008prj']">
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 -f utils/wxrc/Makefile ; 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 -f utils/wxrc/Makefile ; 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 -f utils/wxrc/Makefile ; 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 wx_xrc.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
108
109         <data-files-tree>
110             <srcdir>
111                 $(BUILDDIR)/lib/wx/include/$(TOOLCHAIN_FULLNAME)/wx
112             </srcdir>
113             <files>
114                 setup.h $(RCDEFS_H)
115             </files>
116             <install-to>
117                 $(LIBDIR)/wx/include/$(TOOLCHAIN_FULLNAME)/wx
118             </install-to>
119         </data-files-tree>
120
121         <!-- FIXME: make this use <headers> once it supports prefix removal -->
122         <if cond="BAKEFILE_VERSION!='0.2.3'">
123             <warning>is it time to use per-target &lt;headers&gt; now?</warning>
124         </if>
125         <data-files-tree>
126             <srcdir>$(SRCDIR)/include</srcdir>
127             <files>$(ALL_HEADERS)</files>
128             <install-to>
129                 $(INCLUDEDIR)/wx-$(WX_RELEASE)$(WX_FLAVOUR)
130             </install-to>
131         </data-files-tree>
132
133         <!-- Locales: -->
134         <using module="gettext"/>
135         <gettext-catalogs id="locale">
136             <srcdir>$(SRCDIR)/locale</srcdir>
137             <catalog-name>wxstd</catalog-name>
138             <linguas>
139                 ca cs da de el es fi fr hu id it ja nl pl ru sl sv tr uk
140                 zh zh_CN zh_TW
141             </linguas>
142             <install-to>$(LOCALEDIR)</install-to>
143         </gettext-catalogs>
144         <gettext-catalogs id="locale_msw">
145             <srcdir>$(SRCDIR)/locale/msw</srcdir>
146             <catalog-name>wxmsw</catalog-name>
147             <linguas>it</linguas>
148             <install-to>$(LOCALEDIR)</install-to>
149         </gettext-catalogs>
150
151
152         <!-- Mac OS X resources: -->
153         <set var="MACOS_R">lib/libwx_$(TOOLCHAIN_NAME).$(WXSOVERSION[0]).r</set>
154         <set var="MACOS_RSRC">lib/libwx_$(TOOLCHAIN_NAME).$(WXSOVERSION[0]).rsrc</set>
155         <action id="cocoa-res" cond="TOOLKIT=='COCOA'">
156             <dependency-of>all</dependency-of>
157             <set var="__targetname">$(MACOS_R)</set>
158             <command>
159                 $(REZ) -d __UNIX__ -useDF $(top_srcdir)/src/cocoa/dummy.r -o $(MACOS_RSRC)
160                 $(DEREZ) $(MACOS_RSRC) -useDF >$(MACOS_R)
161             </command>
162             <clean-files>$(MACOS_RSRC) $(MACOS_R)</clean-files>
163         </action>
164         <action id="cocoa-res-install" cond="TOOLKIT=='COCOA'">
165             <dependency-of>install</dependency-of>
166             <depends>cocoa-res</depends>
167             <command>
168                 $(INSTALL_DATA) $(MACOS_R) $(LIBDIR)
169                 $(INSTALL_DATA) $(MACOS_RSRC) $(LIBDIR)
170             </command>
171         </action>
172
173     </if>
174
175
176     <!-- copy setup.h on DOS/OS2/Windows: -->
177     <if cond="FORMAT!='autoconf' and TOOLKIT in ['PM','MSW','MGL','MOTIF']">
178         <mkdir id="libdir">
179             <dir>$(LIBDIRNAME)</dir>
180         </mkdir>
181         <mkdir id="libdir_setup">
182             <depends>libdir</depends>
183             <dir>$(SETUPHDIR)</dir>
184         </mkdir>
185         <mkdir id="libdir_setup_wx">
186             <depends>libdir_setup</depends>
187             <dependency-of>setup_h</dependency-of>
188             <dir>$(SETUPHDIR)/wx</dir>
189         </mkdir>
190
191         <set var="SETUP_H_SUBDIR">
192             <if cond="WXUNIV=='1'">univ</if>
193             <if cond="WXUNIV=='0' and TOOLKIT!='PM'">$(TOOLKIT_LOWERCASE)</if>
194             <if cond="WXUNIV=='0' and TOOLKIT=='PM'">os2</if>
195         </set>
196
197         <copy-file-to-file-if-not-exist id="master_setup.h">
198             <src>$(SRCDIR)/include/wx/$(SETUP_H_SUBDIR)/setup0.h</src>
199             <dst>$(SRCDIR)/include/wx/$(SETUP_H_SUBDIR)/setup.h</dst>
200             <dependency-of>setup_h</dependency-of>
201         </copy-file-to-file-if-not-exist>
202         <copy-file-to-file-if-not-exist id="setup.h">
203             <dependency-of>setup_h</dependency-of>
204             <src>$(SRCDIR)/include/wx/$(SETUP_H_SUBDIR)/setup.h</src>
205             <dst>$(SETUPHDIR)/wx/setup.h</dst>
206         </copy-file-to-file-if-not-exist>
207
208     </if>
209
210
211     <!-- create rcdefs.h on Windows: -->
212     <if cond="FORMAT in ['borland','mingw','msvc','watcom'] and TOOLKIT == 'MSW'">
213
214         <mkdir id="libdir_setup_wx_msw">
215             <depends>libdir_setup_wx</depends>
216             <dir>$(SETUPHDIR)/wx/msw</dir>
217         </mkdir>
218
219         <action id="rcdefs.h">
220
221             <!-- Can't seem to set id to a name with a dollar sign
222                  so use __targetname as a temporary work around -->
223             <set var="__targetname">$(SETUPHDIR)\wx\msw\rcdefs.h</set>
224
225             <dependency-of>setup_h</dependency-of>
226             <depends>libdir_setup_wx_msw</depends>
227             <depends-on-file>$(SRCDIR)/include/wx/msw/genrcdefs.h</depends-on-file>
228
229             <command>
230                 $(DOLLAR)(CPP) "$(nativePaths(SRCDIR))\include\wx\msw\genrcdefs.h" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
231             </command>
232
233         </action>
234
235     </if>
236
237
238     <if cond="FORMAT=='autoconf'">
239
240         <!-- Show this banner after installation: -->
241         <modify-target target="install">
242             <command>
243 @echo " "
244 @echo " ------------------------------------------------------"
245 @echo " "
246 @echo " The installation of wxWidgets is finished.  On certain"
247 @echo " platforms (e.g. Linux) you'll now have to run ldconfig"
248 @echo " if you installed a shared library and also modify the"
249 @echo " LD_LIBRARY_PATH (or equivalent) environment variable."
250 @echo " "
251 @echo " wxWidgets comes with no guarantees and doesn't claim"
252 @echo " to be suitable for any purpose."
253 @echo " "
254 @echo " Read the wxWidgets Licence on licencing conditions."
255 @echo " "
256 @echo " ------------------------------------------------------"
257 @echo " "
258             </command>
259         </modify-target>
260
261         <!-- add "make dist" target to autoconf: -->
262         <set var="VARS_DONT_ELIMINATE" append="1">
263             ALL_PORTS_BASE_HEADERS ALL_BASE_SOURCES WX_VERSION
264         </set>
265         <fragment format="autoconf" file="make_dist.mk"/>
266
267     </if>
268
269     <include file="build_cfg.bkl"/>
270
271 </makefile>