xref: /aoo41x/main/vcl/util/makefile.mk (revision cdf0e10c)
1#*************************************************************************
2#
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# Copyright 2000, 2010 Oracle and/or its affiliates.
6#
7# OpenOffice.org - a multi-platform office productivity suite
8#
9# This file is part of OpenOffice.org.
10#
11# OpenOffice.org is free software: you can redistribute it and/or modify
12# it under the terms of the GNU Lesser General Public License version 3
13# only, as published by the Free Software Foundation.
14#
15# OpenOffice.org is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18# GNU Lesser General Public License version 3 for more details
19# (a copy is included in the LICENSE file that accompanied this code).
20#
21# You should have received a copy of the GNU Lesser General Public License
22# version 3 along with OpenOffice.org.  If not, see
23# <http://www.openoffice.org/license.html>
24# for a copy of the LGPLv3 License.
25#
26#*************************************************************************
27
28PRJ=..
29
30PRJNAME=vcl
31TARGET=vcl
32TARGETTYPE=GUI
33USE_DEFFILE=TRUE
34GEN_HID_OTHER=TRUE
35
36.IF "$(SNDFILE_LIBS)"!=""
37SNDFILELIB=$(SNDFILE_LIBS)
38.ENDIF
39
40# --- Settings -----------------------------------------------------------
41
42.INCLUDE :  settings.mk
43.INCLUDE :  makefile.pmk
44.INCLUDE :  makefile2.pmk
45
46.IF "$(OS)" == "SOLARIS"
47.IF "$(CPUNAME)" == "SPARC" && "$(CPU)" == "U"
48LINKFLAGSRUNPATH_OOO := -R/usr/sfw/lib/64 $(LINKFLAGSRUNPATH_OOO)
49.ELSE
50LINKFLAGSRUNPATH_OOO := -R/usr/sfw/lib $(LINKFLAGSRUNPATH_OOO)
51.ENDIF
52.ENDIF
53
54# --- Allgemein ----------------------------------------------------------
55
56HXXDEPNLST= $(INC)$/vcl$/accel.hxx       \
57            $(INC)$/vcl$/animate.hxx     \
58            $(INC)$/vcl$/apptypes.hxx    \
59            $(INC)$/vcl$/bitmap.hxx      \
60            $(INC)$/vcl$/bitmapex.hxx    \
61            $(INC)$/vcl$/bmpacc.hxx      \
62            $(INC)$/vcl$/btndlg.hxx      \
63            $(INC)$/vcl$/button.hxx      \
64            $(INC)$/vcl$/ctrl.hxx        \
65            $(INC)$/vcl$/cursor.hxx      \
66            $(INC)$/vcl$/cmdevt.hxx      \
67            $(INC)$/vcl$/decoview.hxx    \
68            $(INC)$/vcl$/dialog.hxx      \
69            $(INC)$/vcl$/dllapi.h        \
70            $(INC)$/vcl$/dockwin.hxx     \
71            $(INC)$/vcl$/edit.hxx        \
72            $(INC)$/vcl$/event.hxx       \
73            $(INC)$/vcl$/field.hxx       \
74            $(INC)$/vcl$/fixed.hxx       \
75            $(INC)$/vcl$/floatwin.hxx    \
76            $(INC)$/vcl$/font.hxx        \
77            $(INC)$/vcl$/floatwin.hxx    \
78            $(INC)$/vcl$/graph.hxx       \
79            $(INC)$/vcl$/group.hxx       \
80            $(INC)$/vcl$/help.hxx        \
81            $(INC)$/vcl$/jobset.hxx      \
82            $(INC)$/vcl$/keycodes.hxx    \
83            $(INC)$/vcl$/keycod.hxx      \
84            $(INC)$/vcl$/image.hxx       \
85            $(INC)$/vcl$/lstbox.h             \
86            $(INC)$/vcl$/lstbox.hxx      \
87            $(INC)$/vcl$/mapmod.hxx      \
88            $(INC)$/vcl$/metaact.hxx     \
89            $(INC)$/vcl$/menu.hxx        \
90            $(INC)$/vcl$/menubtn.hxx     \
91            $(INC)$/vcl$/metric.hxx      \
92            $(INC)$/vcl$/morebtn.hxx     \
93            $(INC)$/vcl$/msgbox.hxx      \
94            $(INC)$/vcl$/octree.hxx      \
95            $(INC)$/vcl$/outdev.hxx      \
96            $(INC)$/vcl$/pointr.hxx      \
97            $(INC)$/vcl$/ptrstyle.hxx    \
98            $(INC)$/vcl$/prntypes.hxx    \
99            $(INC)$/vcl$/print.hxx       \
100            $(INC)$/vcl$/prndlg.hxx      \
101            $(INC)$/vcl$/region.hxx      \
102            $(INC)$/vcl$/rendergraphic.hxx		\
103            $(INC)$/vcl$/rendergraphicrasterizer.hxx	\
104            $(INC)$/vcl$/salbtype.hxx    \
105            $(INC)$/vcl$/scrbar.hxx      \
106            $(INC)$/vcl$/slider.hxx      \
107            $(INC)$/vcl$/seleng.hxx      \
108            $(INC)$/vcl$/settings.hxx    \
109            $(INC)$/vcl$/sound.hxx       \
110            $(INC)$/vcl$/sndstyle.hxx    \
111            $(INC)$/vcl$/split.hxx       \
112            $(INC)$/vcl$/splitwin.hxx    \
113            $(INC)$/vcl$/spin.hxx        \
114            $(INC)$/vcl$/spinfld.hxx     \
115            $(INC)$/vcl$/status.hxx      \
116            $(INC)$/vcl$/stdtext.hxx     \
117            $(INC)$/vcl$/sv.h            \
118            $(INC)$/vcl$/svapp.hxx       \
119            $(INC)$/vcl$/syschild.hxx    \
120            $(INC)$/vcl$/sysdata.hxx     \
121            $(INC)$/vcl$/syswin.hxx      \
122            $(INC)$/vcl$/tabctrl.hxx     \
123            $(INC)$/vcl$/tabdlg.hxx      \
124            $(INC)$/vcl$/tabpage.hxx     \
125            $(INC)$/vcl$/toolbox.hxx     \
126            $(INC)$/vcl$/timer.hxx       \
127            $(INC)$/vcl$/virdev.hxx      \
128            $(INC)$/vcl$/wall.hxx        \
129            $(INC)$/vcl$/waitobj.hxx     \
130            $(INC)$/vcl$/window.hxx      \
131            $(INC)$/vcl$/wrkwin.hxx
132
133.IF "$(linkinc)" != ""
134SHL11FILE=  $(MISC)$/app.slo
135SHL12FILE=  $(MISC)$/gdi.slo
136SHL13FILE=  $(MISC)$/win.slo
137SHL14FILE=  $(MISC)$/ctrl.slo
138#SHL15FILE=  $(MISC)$/ex.slo
139SHL16FILE=  $(MISC)$/salapp.slo
140SHL17FILE=  $(MISC)$/salwin.slo
141SHL18FILE=  $(MISC)$/salgdi.slo
142.ENDIF
143
144LIB1TARGET= $(SLB)$/$(TARGET).lib
145LIB1FILES=  $(SLB)$/app.lib         \
146            $(SLB)$/gdi.lib         \
147            $(SLB)$/win.lib         \
148            $(SLB)$/ctrl.lib        \
149            $(SLB)$/helper.lib	    \
150            $(SLB)$/fontsubset.lib  \
151            $(SLB)$/components.lib
152
153.IF "$(GUI)" == "UNX" && "$(GUIBASE)"!="aqua"
154LIB1FILES+= $(SLB)$/salplug.lib  \
155            $(SLB)$/fontman.lib  \
156            $(SLB)$/printer.lib
157.ELSE
158LIB1FILES+= \
159            $(SLB)$/salwin.lib  \
160            $(SLB)$/salgdi.lib  \
161            $(SLB)$/salapp.lib
162.IF "$(GUIBASE)" == "aqua"
163LIB1FILES+= $(SLB)$/dtransaqua.lib
164.ENDIF
165.ENDIF
166
167SHL1TARGET= vcl$(DLLPOSTFIX)
168SHL1IMPLIB= ivcl
169SHL1STDLIBS+=\
170            $(SOTLIB)           \
171            $(UNOTOOLSLIB)      \
172            $(TOOLSLIB)         \
173            $(I18NPAPERLIB)     \
174            $(I18NISOLANGLIB)   \
175            $(I18NUTILLIB)      \
176            $(COMPHELPERLIB)	\
177            $(UCBHELPERLIB)     \
178            $(CPPUHELPERLIB)    \
179            $(CPPULIB)          \
180            $(VOSLIB)           \
181            $(SALLIB)			\
182            $(BASEGFXLIB)		\
183            $(ICUUCLIB)			\
184			$(ICUDATALIB)		\
185            $(ICULELIB)			\
186			$(JVMACCESSLIB)
187
188.IF "$(GUI)" == "UNX"
189.IF "$(ENABLE_GRAPHITE)" != ""
190.IF "$(SYSTEM_GRAPHITE)" == "YES"
191SHL1STDLIBS+= $(GRAPHITE_LIBS)
192.ELSE
193SHL1STDLIBS+= $(SOLARVERSION)/$(INPATH)/lib$(UPDMINOREXT)/libgraphite.a
194.ENDIF
195.ENDIF
196.ENDIF
197SHL1USE_EXPORTS=name
198
199.IF "$(GUIBASE)"=="aqua"
200SHL1STDLIBS+= \
201	$(BASEBMPLIB) \
202	-lAppleRemote$(DLLPOSTFIX) \
203    -framework QuickTime
204
205LIB1FILES+= \
206            $(SLB)$/sala11y.lib
207.ENDIF
208
209.IF "$(USE_BUILTIN_RASTERIZER)"!=""
210    LIB1FILES +=    $(SLB)$/glyphs.lib
211    SHL1STDLIBS+=   $(FREETYPELIB)
212.ELSE
213.IF "$(ENABLE_GRAPHITE)" == "TRUE"
214    LIB1FILES +=    $(SLB)$/glyphs.lib
215.ENDIF
216.ENDIF # USE_BUILTIN_RASTERIZER
217
218SHL1LIBS=   $(LIB1TARGET)
219.IF "$(GUI)"!="UNX"
220.IF "$(COM)"!="GCC"
221#SHL1OBJS=   $(SLO)$/salshl.obj
222.ENDIF
223.ENDIF
224
225.IF "$(GUI)" != "UNX"
226SHL1RES=    $(RES)$/salsrc.res
227.ENDIF
228
229SHL1DEF=    $(MISC)$/$(SHL1TARGET).def
230
231DEF1NAME    =$(SHL1TARGET)
232DEF1DEPN    =   $(HXXDEPNLST) \
233                $(LIB1TARGET)
234DEF1DES     =VCL
235DEFLIB1NAME =vcl
236
237# --- W32 ----------------------------------------------------------------
238
239.IF "$(GUI)" == "WNT"
240
241.IF "$(ENABLE_GRAPHITE)" == "TRUE"
242.IF "$(COM)" == "GCC"
243SHL1STDLIBS += -lgraphite
244.ELSE
245SHL1STDLIBS += graphite_dll.lib
246.ENDIF
247.ENDIF
248
249SHL1STDLIBS += $(UWINAPILIB)      \
250               $(GDI32LIB)        \
251			   $(GDIPLUSLIB)	  \
252               $(MSIMG32LIB)      \
253               $(WINSPOOLLIB)     \
254               $(OLE32LIB)        \
255               $(SHELL32LIB)      \
256               $(ADVAPI32LIB)
257
258SHL1STDLIBS += $(IMM32LIB)
259
260.IF "$(GUI)$(COM)$(CPU)" == "WNTMSCI"
261LINKFLAGSSHL += /ENTRY:LibMain@12
262.ENDIF
263.ENDIF
264
265# --- OS2 ----------------------------------------------------------------
266
267.IF "$(GUI)" == "OS2"
268STDSHL1 += ft2lib.lib
269.ENDIF
270
271# --- UNX ----------------------------------------------------------------
272
273# UNX sal plugins
274.IF "$(GUI)" == "UNX" && "$(GUIBASE)" != "aqua"
275
276# desktop detector
277LIB7TARGET=$(SLB)$/idet
278LIB7FILES=$(SLB)$/dtdetect.lib
279SHL7TARGET=desktop_detector$(DLLPOSTFIX)
280SHL7STDLIBS=\
281            $(SALLIB) \
282            $(X11LINK_DYNAMIC)
283SHL7IMPLIB=idet
284SHL7LIBS=$(LIB7TARGET)
285
286# basic pure X11 plugin
287LIB2TARGET=$(SLB)$/ipure_x
288LIB2FILES= \
289            $(SLB)$/dtransX11.lib  \
290            $(SLB)$/printergfx.lib  \
291            $(SLB)$/salwin.lib  \
292            $(SLB)$/salgdi.lib  \
293            $(SLB)$/salapp.lib
294SHL2TARGET=vclplug_gen$(DLLPOSTFIX)
295SHL2IMPLIB=ipure_x
296SHL2LIBS=$(LIB2TARGET)
297SHL2DEPN=$(SHL1IMPLIBN) $(SHL1TARGETN)
298
299# libs for generic plugin
300SHL2STDLIBS=\
301			$(VCLLIB)\
302            $(I18NPAPERLIB)     \
303            $(I18NISOLANGLIB)     \
304            $(TOOLSLIB)         \
305            $(VOSLIB)           \
306            $(BASEGFXLIB)	\
307            $(UNOTOOLSLIB) \
308            $(COMPHELPERLIB)	\
309            $(CPPUHELPERLIB) \
310            $(CPPULIB) \
311            $(SALLIB)
312
313# prepare linking of Xinerama
314.IF "$(USE_XINERAMA)" != "NO"
315
316.IF "$(OS)"=="MACOSX" || "$(OS)$(CPU)" == "LINUXX"
317XINERAMALIBS=-lXinerama
318.ELSE
319.IF "$(OS)" != "SOLARIS" || "$(USE_XINERAMA_VERSION)" == "Xorg"
320.IF "$(XINERAMA_LINK)" == "dynamic"
321XINERAMALIBS= -lXinerama
322.ELSE
323XINERAMALIBS= -Wl,-Bstatic -lXinerama -Wl,-Bdynamic
324.ENDIF # XINERAMA_LINK == dynamic
325.ENDIF # OS == SOLARIS
326.ENDIF # OS == MACOSX
327
328SHL2STDLIBS += $(XINERAMALIBS)
329.ENDIF # USE_XINERAMA != NO
330
331.IF "$(XRENDER_LINK)" == "YES"
332SHL2STDLIBS+=`pkg-config --libs xrender`
333.ENDIF
334
335.IF "$(GUIBASE)"=="unx"
336
337SHL2STDLIBS += -lXext -lSM -lICE -lX11
338.IF "$(OS)"!="MACOSX" && "$(OS)"!="FREEBSD" && "$(OS)"!="NETBSD"
339# needed by salprnpsp.cxx
340SHL2STDLIBS+= -ldl
341.ENDIF
342
343.IF "$(ENABLE_RANDR)" != ""
344.IF "$(XRANDR_DLOPEN)" == "FALSE"
345SHL2STDLIBS+= $(XRANDR_LIBS)
346.ENDIF
347.ENDIF
348
349.ENDIF          # "$(GUIBASE)"=="unx"
350
351# gtk plugin
352.IF "$(ENABLE_GTK)" != ""
353PKGCONFIG_MODULES=gtk+-2.0 gthread-2.0
354.IF "$(ENABLE_DBUS)" != ""
355PKGCONFIG_MODULES+= dbus-glib-1
356.ENDIF
357.INCLUDE: pkg_config.mk
358
359LIB4TARGET=$(SLB)$/igtk_plug_
360LIB4FILES=\
361			$(SLB)$/gtkapp.lib\
362			$(SLB)$/gtka11y.lib \
363			$(SLB)$/gtkgdi.lib\
364			$(SLB)$/gtkwin.lib
365
366SHL4TARGET=vclplug_gtk$(DLLPOSTFIX)
367SHL4IMPLIB=igtk_plug_
368SHL4LIBS=$(LIB4TARGET)
369SHL4DEPN=$(SHL1IMPLIBN) $(SHL1TARGETN) $(SHL2IMPLIBN) $(SHL2TARGETN)
370# libs for gtk plugin
371SHL4STDLIBS+=$(PKGCONFIG_LIBS:s/ -lpangoxft-1.0//)
372# hack for faked SO environment
373.IF "$(PKGCONFIG_ROOT)"!=""
374SHL4SONAME+=-z nodefs
375SHL4NOCHECK=TRUE
376.ENDIF          # "$(PKGCONFIG_ROOT)"!=""
377
378
379SHL4STDLIBS+=-l$(SHL2TARGET)
380SHL4STDLIBS+=\
381            $(VCLLIB)		\
382            $(TOOLSLIB)         \
383            $(CPPUHELPERLIB)    \
384            $(CPPULIB)          \
385            $(VOSLIB)           \
386            $(SALLIB)           \
387            $(X11LINK_DYNAMIC)
388
389.IF "$(ENABLE_RANDR)" != ""
390.IF "$(XRANDR_DLOPEN)" == "FALSE"
391SHL4STDLIBS+= $(XRANDR_LIBS)
392.ENDIF
393.ENDIF
394
395.ENDIF # "$(ENABLE_GTK)" != ""
396
397# KDE plugin
398.IF "$(ENABLE_KDE)" != ""
399.IF "$(KDE_ROOT)"!=""
400EXTRALIBPATHS+=-L$(KDE_ROOT)$/lib
401.IF "$(OS)$(CPU)" == "LINUXX"
402EXTRALIBPATHS+=-L$(KDE_ROOT)$/lib64
403.ENDIF
404.ENDIF
405LIB5TARGET=$(SLB)$/ikde_plug_
406LIB5FILES=$(SLB)$/kdeplug.lib
407SHL5TARGET=vclplug_kde$(DLLPOSTFIX)
408SHL5IMPLIB=ikde_plug_
409SHL5LIBS=$(LIB5TARGET)
410SHL5DEPN=$(SHL2TARGETN)
411# libs for KDE plugin
412SHL5LINKFLAGS+=$(KDE_LIBS)
413SHL5STDLIBS+=-l$(SHL2TARGET)
414SHL5STDLIBS+=\
415        $(VCLLIB)       \
416        $(TOOLSLIB)     \
417        $(VOSLIB)       \
418        $(SALLIB)       \
419        $(X11LINK_DYNAMIC)
420
421.IF "$(ENABLE_RANDR)" != ""
422.IF "$(XRANDR_DLOPEN)" == "FALSE"
423SHL5STDLIBS+= $(XRANDR_LIBS)
424.ENDIF
425.ENDIF
426
427.ENDIF # "$(ENABLE_KDE)" != ""
428
429# KDE4 plugin
430.IF "$(ENABLE_KDE4)" != ""
431.IF "$(KDE4_ROOT)"!=""
432EXTRALIBPATHS+=-L$(KDE4_ROOT)$/lib
433.ENDIF
434LIB6TARGET=$(SLB)$/ikde4_plug_
435LIB6FILES=$(SLB)$/kde4plug.lib
436SHL6TARGET=vclplug_kde4$(DLLPOSTFIX)
437SHL6IMPLIB=ikde4_plug_
438SHL6LIBS=$(LIB6TARGET)
439SHL6DEPN=$(SHL2TARGETN)
440# libs for KDE4 plugin
441SHL6LINKFLAGS+=$(KDE4_LIBS)
442SHL6STDLIBS+=-l$(SHL2TARGET)
443SHL6STDLIBS+=\
444        $(VCLLIB)       \
445        $(PSPLIB)	\
446        $(TOOLSLIB)     \
447        $(VOSLIB)       \
448        $(SALLIB)   \
449        $(X11LINK_DYNAMIC)
450
451.IF "$(ENABLE_RANDR)" != ""
452.IF "$(XRANDR_DLOPEN)" == "FALSE"
453SHL6STDLIBS+= $(XRANDR_LIBS)
454.ENDIF
455.ENDIF
456
457.ENDIF # "$(ENABLE_KDE4)" != ""
458
459.ENDIF # UNX
460
461# --- Allgemein ----------------------------------------------------------
462
463.INCLUDE :  target.mk
464
465ALLTAR : $(MISC)/vcl.component
466
467.IF "$(OS)" == "MACOSX"
468my_platform = .macosx
469.ELIF "$(OS)" == "WNT"
470my_platform = .windows
471.END
472
473$(MISC)/vcl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
474        vcl.component
475    $(XSLTPROC) --nonet --stringparam uri \
476        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
477        $(SOLARENV)/bin/createcomponent.xslt vcl$(my_platform).component
478