Use -fno-omit-frame-pointer for Android (no idea if essential)
[LibreOffice.git] / RepositoryExternal.mk
blob11deeaaff838b74f8a6a929b47efb67e74e77c13
1 # -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
2 #*************************************************************************
4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 #
6 # Copyright 2009 by Sun Microsystems, Inc.
8 # OpenOffice.org - a multi-platform office productivity suite
10 # This file is part of OpenOffice.org.
12 # OpenOffice.org is free software: you can redistribute it and/or modify
13 # it under the terms of the GNU Lesser General Public License version 3
14 # only, as published by the Free Software Foundation.
16 # OpenOffice.org is distributed in the hope that it will be useful,
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 # GNU Lesser General Public License version 3 for more details
20 # (a copy is included in the LICENSE file that accompanied this code).
22 # You should have received a copy of the GNU Lesser General Public License
23 # version 3 along with OpenOffice.org. If not, see
24 # <http://www.openoffice.org/license.html>
25 # for a copy of the LGPLv3 License.
27 #*************************************************************************
29 # this file describes all the external libraries
30 # depending on the configure options these may be taken from the system,
31 # or the internal/bundled copy may be built.
33 # for every external, a function gb_LinkTarget_use__FOO is defined,
34 # once for the system case, once for the internal case.
36 # in the system case, no libraries should be registered, but the target-local
37 # variable LIBS should be set to FOO_LIBS, and INCLUDES to FOO_CFLAGS.
39 ifeq ($(SYSTEM_MESA_HEADERS),YES)
41 gb_LinkTarget__use_Mesa:=
43 else
45 define gb_LinkTarget__use_Mesa
46 $(eval $(call gb_LinkTarget_add_external_headers,$(1),Mesa_inc))
47 endef
49 endif
51 ifeq ($(SYSTEM_CPPUNIT),YES)
53 define gb_LinkTarget__use_cppunit
54 $(call gb_LinkTarget_set_include,$(1),\
55 $$(INCLUDE) \
56 $(CPPUNIT_CFLAGS) \
59 $(call gb_LinkTarget_add_libs,$(1),\
60 $(CPPUNIT_LIBS) \
63 endef
65 else
67 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO,\
68 cppunit \
71 define gb_LinkTarget__use_cppunit
72 $(call gb_LinkTarget_add_linked_libs,$(1),\
73 cppunit \
76 endef
78 endif
80 ifeq ($(SYSTEM_ZLIB),YES)
82 define gb_LinkTarget__use_zlib
83 $(call gb_LinkTarget_add_defs,$(1),\
84 -DSYSTEM_ZLIB \
86 $(call gb_LinkTarget_add_libs,$(1),-lz)
88 endef
90 else # !SYSTEM_ZLIB
92 $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
93 zlib \
96 define gb_LinkTarget__use_zlib
97 $(call gb_LinkTarget_add_linked_static_libs,$(1),\
98 zlib \
101 endef
103 endif # SYSTEM_ZLIB
106 ifeq ($(SYSTEM_JPEG),YES)
108 define gb_LinkTarget__use_jpeg
109 $(call gb_LinkTarget_add_libs,$(1),-ljpeg)
110 $(call gb_LinkTarget_set_ldflags,$(1),\
111 $$(filter-out -L/usr/lib/jvm%,$$(T_LDFLAGS)) \
114 endef
116 else # !SYSTEM_JPEG
118 $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
119 jpeglib \
122 define gb_LinkTarget__use_jpeg
123 $(call gb_LinkTarget_add_linked_static_libs,$(1),\
124 jpeglib \
127 endef
129 endif # SYSTEM_JPEG
132 ifeq ($(SYSTEM_EXPAT),YES)
134 define gb_LinkTarget__use_expat
135 $(if $(2),,$(error gb_LinkTarget__use_expat needs additional parameter))
137 $(call gb_LinkTarget_add_defs,$(1),\
138 -DSYSTEM_EXPAT \
141 $(call gb_LinkTarget_add_libs,$(1),-lexpat)
143 endef
145 else # !SYSTEM_EXPAT
147 $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
148 ascii_expat_xmlparse \
149 expat_xmlparse \
150 expat_xmltok \
153 define gb_LinkTarget__use_expat
154 $(if $(2),,$(error gb_LinkTarget__use_expat needs additional parameter))
156 $(if $(filter-out ascii_expat_xmlparse,$(2)),\
157 $(call gb_LinkTarget_add_defs,$(1),\
158 -DXML_UNICODE \
161 $(call gb_LinkTarget_add_linked_static_libs,$(1),\
162 $(2) \
163 expat_xmltok \
166 endef
168 endif # SYSTEM_EXPAT
170 # now define 2 wrappers that select which internal static library to use...
171 define gb_LinkTarget__use_expat_utf8
172 $(call gb_LinkTarget__use_expat,$(1),ascii_expat_xmlparse)
174 endef
176 define gb_LinkTarget__use_expat_utf16
177 $(call gb_LinkTarget__use_expat,$(1),expat_xmlparse)
179 endef
182 ifeq ($(SYSTEM_LIBXML),YES)
184 define gb_LinkTarget__use_libxml2
185 $(call gb_LinkTarget_add_defs,$(1),\
186 -DSYSTEM_LIBXML \
188 $(call gb_LinkTarget_set_include,$(1),\
189 $$(INCLUDE) \
190 $(LIBXML_CFLAGS) \
192 $(call gb_LinkTarget_add_libs,$(1),$(LIBXML_LIBS))
194 endef
196 else # !SYSTEM_LIBXML
198 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_URE, \
199 xml2 \
202 define gb_LinkTarget__use_libxml2
203 $(call gb_LinkTarget_add_linked_libs,$(1),\
204 xml2 \
207 endef
209 endif # SYSTEM_LIBXML
212 ifeq ($(SYSTEM_LIBXSLT),YES)
214 define gb_LinkTarget__use_libxslt
215 $(call gb_LinkTarget_set_include,$(1),\
216 $$(INCLUDE) \
217 $(LIBXSLT_CFLAGS) \
219 $(call gb_LinkTarget_add_libs,$(1),$(LIBXSLT_LIBS))
221 endef
223 else # !SYSTEM_LIBXSLT
225 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
226 xslt \
229 define gb_LinkTarget__use_libxslt
230 $(call gb_LinkTarget_add_linked_libs,$(1),\
231 xslt \
234 endef
236 endif # SYSTEM_LIBXSLT
239 ifeq ($(SYSTEM_REDLAND),YES)
241 define gb_LinkTarget__use_librdf
242 $(call gb_LinkTarget_add_defs,$(1),\
243 -DSYSTEM_REDLAND \
245 $(call gb_LinkTarget_set_include,$(1),\
246 $$(INCLUDE) \
247 $(REDLAND_CFLAGS) \
249 $(call gb_LinkTarget_add_libs,$(1),$(REDLAND_LIBS))
251 endef
253 else # !SYSTEM_REDLAND
255 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
256 rdf \
259 define gb_LinkTarget__use_librdf
260 $(call gb_LinkTarget_add_linked_libs,$(1),\
261 rdf \
264 endef
266 endif # SYSTEM_REDLAND
269 ifeq ($(SYSTEM_CAIRO),YES)
271 # FREETYPE_CLAGS from environment if ENABLE_CAIRO is used
272 define gb_LinkTarget__use_cairo
273 $(call gb_LinkTarget_set_include,$(1),\
274 $$(INCLUDE) \
275 $(FREETYPE_CFLAGS) \
276 $(CAIRO_CFLAGS) \
278 $(call gb_LinkTarget_add_libs,$(1),$(CAIRO_LIBS))
280 endef
282 else # !SYSTEM_CAIRO
284 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
285 cairo \
287 ifneq ($(OS),WNT)
288 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
289 pixman-1 \
291 endif # WNT
293 define gb_LinkTarget__use_cairo
294 $(call gb_LinkTarget_set_include,$(1),\
295 $$(INCLUDE) \
296 -I$(OUTDIR)/inc/cairo \
297 $(FREETYPE_CFLAGS) \
299 $(call gb_LinkTarget_add_linked_libs,$(1),\
300 cairo \
302 ifneq ($(OS),WNT)
303 ifeq ($(OS),MACOSX)
304 $(call gb_LinkTarget_add_static_libs,$(1),\
305 pixman-1 \
307 else
308 $(call gb_LinkTarget_add_linked_libs,$(1),\
309 pixman-1 \
311 endif
312 endif
314 endef
316 endif # SYSTEM_CAIRO
318 define gb_LinkTarget__use_freetype
319 $(call gb_LinkTarget_set_include,$(1),\
320 $$(INCLUDE) \
321 $(FREETYPE_CFLAGS) \
323 $(call gb_LinkTarget_add_libs,$(1),$(FREETYPE_LIBS))
325 endef
327 define gb_LinkTarget__use_fontconfig
328 $(call gb_LinkTarget_set_include,$(1),\
329 $$(INCLUDE) \
330 $(FONTCONFIG_CFLAGS) \
332 $(call gb_LinkTarget_add_libs,$(1),$(FONTCONFIG_LIBS))
334 endef
336 ifeq ($(SYSTEM_GRAPHITE),YES)
338 define gb_LinkTarget__use_graphite
339 $(call gb_LinkTarget_set_include,$(1),\
340 $$(INCLUDE) \
341 $(GRAPHITE_CFLAGS) \
343 $(call gb_LinkTarget_add_libs,$(1),$(GRAPHITE_LIBS))
345 endef
347 else # !SYSTEM_GRAPHITE
349 $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
350 graphite2_off \
352 define gb_LinkTarget__use_graphite
353 $(call gb_LinkTarget_add_linked_static_libs,$(1),\
354 graphite2_off \
357 endef
359 endif # SYSTEM_GRAPHITE
362 ifeq ($(SYSTEM_ICU),YES)
364 define gb_LinkTarget__use_icudata
365 $(call gb_LinkTarget_add_libs,$(1),-licudata)
367 endef
368 define gb_LinkTarget__use_icui18n
369 $(call gb_LinkTarget_add_libs,$(1),-licui18n)
371 endef
372 define gb_LinkTarget__use_icule
373 $(call gb_LinkTarget_add_libs,$(1),-licule)
375 endef
376 define gb_LinkTarget__use_icutu
377 $(call gb_LinkTarget_add_libs,$(1),-licutu)
379 endef
380 define gb_LinkTarget__use_icuuc
381 $(call gb_LinkTarget_add_libs,$(1),-licuuc)
383 endef
385 else # !SYSTEM_ICU
387 ifeq ($(OS),ANDROID)
388 gb_ICU_suffix:=lo
389 else
390 gb_ICU_suffix:=
391 endif
393 # icudata and icui18n is called icudt and icuin when built with MSVC :-(
394 ifeq ($(OS)$(COM),WNTMSC)
395 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
396 icudt \
397 icuin \
398 icule \
399 icutu \
400 icuuc \
403 define gb_LinkTarget__use_icudt
404 $(call gb_LinkTarget_add_linked_libs,$(1),\
405 icudt \
408 endef
409 define gb_LinkTarget__use_icuin
410 $(call gb_LinkTarget_add_linked_libs,$(1),\
411 icuin \
414 endef
415 else
416 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
417 icudata$(gb_ICU_suffix) \
418 icui18n$(gb_ICU_suffix) \
419 icule$(gb_ICU_suffix) \
420 icutu$(gb_ICU_suffix) \
421 icuuc$(gb_ICU_suffix) \
424 define gb_LinkTarget__use_icudata
425 $(call gb_LinkTarget_add_linked_libs,$(1),\
426 icudata$(gb_ICU_suffix) \
429 endef
430 define gb_LinkTarget__use_icui18n
431 $(call gb_LinkTarget_add_linked_libs,$(1),\
432 icui18n$(gb_ICU_suffix) \
435 endef
436 endif
438 define gb_LinkTarget__use_icule
439 $(call gb_LinkTarget_add_linked_libs,$(1),\
440 icule$(gb_ICU_suffix) \
443 endef
444 define gb_LinkTarget__use_icutu
445 $(call gb_LinkTarget_add_linked_libs,$(1),\
446 icutu$(gb_ICU_suffix) \
449 endef
450 define gb_LinkTarget__use_icuuc
451 $(call gb_LinkTarget_add_linked_libs,$(1),\
452 icuuc$(gb_ICU_suffix) \
455 endef
457 endif # SYSTEM_ICU
460 ifeq ($(SYSTEM_OPENSSL),YES)
462 define gb_LinkTarget__use_openssl
463 $(call gb_LinkTarget_set_include,$(1),\
464 $$(INCLUDE) \
465 $(OPENSSL_CFLAGS) \
467 $(call gb_LinkTarget_add_libs,$(1),$(OPENSSL_LIBS))
469 endef
471 else # !SYSTEM_OPENSSL
473 ifeq ($(OS),WNT)
474 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
475 crypto \
476 ssl \
478 else
479 $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
480 crypto \
481 ssl \
483 endif
485 define gb_LinkTarget__use_openssl
486 ifeq ($(OS),WNT)
487 $(call gb_LinkTarget_add_linked_libs,$(1),\
488 crypto \
489 ssl \
491 else
492 $(call gb_LinkTarget_add_linked_static_libs,$(1),\
493 crypto \
494 ssl \
496 ifeq ($(OS),SOLARIS)
497 $(call gb_LinkTarget_add_libs,$(1),\
498 -lnsl \
499 -lsocket \
501 endif
502 endif
504 endef
506 endif # SYSTEM_OPENSSL
509 ifeq ($(SYSTEM_LIBVISIO),YES)
511 define gb_LinkTarget__use_visio
512 $(call gb_LinkTarget_set_include,$(1),\
513 $$(INCLUDE) \
514 $(VISIO_CFLAGS) \
516 $(call gb_LinkTarget_add_libs,$(1),$(VISIO_LIBS))
518 endef
520 else # !SYSTEM_LIBVISIO
522 $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
523 visiolib \
526 define gb_LinkTarget__use_visio
527 $(call gb_LinkTarget_add_linked_static_libs,$(1),\
528 visiolib \
531 endef
533 endif # SYSTEM_LIBVISIO
536 ifeq ($(SYSTEM_LIBWPD),YES)
538 define gb_LinkTarget__use_wpd
539 $(call gb_LinkTarget_set_include,$(1),\
540 $$(INCLUDE) \
541 $(WPD_CFLAGS) \
543 $(call gb_LinkTarget_add_libs,$(1),$(WPD_LIBS))
545 endef
547 else # !SYSTEM_LIBWPD
549 $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
550 wpdlib \
553 define gb_LinkTarget__use_wpd
554 $(call gb_LinkTarget_add_linked_static_libs,$(1),\
555 wpdlib \
558 endef
560 endif # SYSTEM_LIBWPD
563 ifeq ($(SYSTEM_LIBWPG),YES)
565 define gb_LinkTarget__use_wpg
566 $(call gb_LinkTarget_set_include,$(1),\
567 $$(INCLUDE) \
568 $(WPG_CFLAGS) \
570 $(call gb_LinkTarget_add_libs,$(1),$(WPG_LIBS))
572 endef
574 else # !SYSTEM_LIBWPG
576 $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
577 wpglib \
580 define gb_LinkTarget__use_wpg
581 $(call gb_LinkTarget_add_linked_static_libs,$(1),\
582 wpglib \
585 endef
587 endif # SYSTEM_LIBWPG
590 ifeq ($(SYSTEM_LIBWPS),YES)
592 define gb_LinkTarget__use_wps
593 $(call gb_LinkTarget_set_include,$(1),\
594 $$(INCLUDE) \
595 $(WPS_CFLAGS) \
597 $(call gb_LinkTarget_add_libs,$(1),$(WPS_LIBS))
599 endef
601 else # !SYSTEM_LIBWPS
603 $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
604 wpslib \
607 define gb_LinkTarget__use_wps
608 $(call gb_LinkTarget_add_linked_static_libs,$(1),\
609 wpslib \
612 endef
614 endif # SYSTEM_LIBWPS
617 ifeq ($(SYSTEM_LPSOLVE),YES)
619 define gb_LinkTarget__use_lpsolve55
620 $(call gb_LinkTarget_add_libs,$(1),-llpsolve55)
622 endef
624 else # !SYSTEM_LPSOLVE
626 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
627 lpsolve55 \
630 define gb_LinkTarget__use_lpsolve55
631 $(call gb_LinkTarget_add_linked_libs,$(1),\
632 lpsolve55 \
635 endef
637 endif # SYSTEM_LPSOLVE
640 define gb_LinkTarget__use_gtk
641 $(call gb_LinkTarget_set_include,$(1),\
642 $$(INCLUDE) \
643 $(GTK_CFLAGS) \
646 $(call gb_LinkTarget_add_libs,$(1),$(GTK_LIBS))
648 endef
650 define gb_LinkTarget__use_gthread
651 $(call gb_LinkTarget_add_libs,$(1),$(GTHREAD_LIBS))
653 endef
656 ifeq ($(ENABLE_DBUS),YES)
658 define gb_LinkTarget__use_dbus
659 $(call gb_LinkTarget_set_include,$(1),\
660 $$(INCLUDE) \
661 $(DBUS_CFLAGS) \
664 $(call gb_Library_add_defs,$(1),\
665 -DENABLE_DBUS \
668 $(call gb_LinkTarget_add_libs,$(1),\
669 $(DBUS_LIBS) \
672 endef
674 else # ENABLE_DBUS
676 define gb_LinkTarget__use_dbus
678 endef
680 endif # ENABLE_DBUS
683 define gb_LinkTarget__use_dbusmenugtk
684 $(call gb_LinkTarget_set_include,$(1),\
685 $$(INCLUDE) \
686 $(DBUSMENUGTK_CFLAGS) \
689 $(call gb_LinkTarget_add_libs,$(1),$(DBUSMENUGTK_LIBS))
691 endef
693 ifeq ($(SYSTEM_DB),YES)
695 define gb_LinkTarget__use_berkeleydb
696 $(call gb_LinkTarget_set_include,$(1),\
697 $$(INCLUDE) \
698 $(filter -I%,$(SYSTEM_DB_CFLAGS)) \
701 $(call gb_LinkTarget_add_defs,$(1),\
702 $(filter -D%,$(SYSTEM_DB_CFLAGS)) \
705 $(call gb_LinkTarget_add_libs,$(1),\
706 -l$(DB_LIB) \
709 endef
711 else # !SYSTEM_DB
713 ifneq ($(OS),WNT)
714 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO,\
715 db-4.7 \
717 else
718 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO,\
719 db47 \
721 endif
723 define gb_LinkTarget__use_berkeleydb
724 ifneq ($(OS),WNT)
725 $(call gb_LinkTarget_add_linked_libs,$(1),\
726 db-4.7 \
728 else
729 $(call gb_LinkTarget_add_linked_libs,$(1),\
730 db47 \
732 endif
734 endef
736 endif # SYSTEM_DB
738 ifeq ($(SYSTEM_LIBPNG),YES)
740 define gb_LinkTarget__use_png
741 $(call gb_LinkTarget_set_include,$(1),\
742 $$(INCLUDE) \
743 $(LIBPNG_CFLAGS) \
746 $(call gb_LinkTarget_add_libs,$(1),\
747 $(LIBPNG_LIBS) \
750 endef
752 else # !SYSTEM_LIBPNG
754 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO,\
755 png \
758 define gb_LinkTarget__use_png
759 $(call gb_LinkTarget_add_linked_libs,$(1),\
760 png \
763 endef
765 endif # !SYSTEM_LIBPNG
767 # MacOSX-only frameworks
768 # (in alphabetical order)
770 define gb_LinkTarget__use_carbon
771 $(call gb_LinkTarget_add_libs,$(1), \
772 -framework Carbon \
775 endef
777 define gb_LinkTarget__use_cocoa
778 $(call gb_LinkTarget_add_libs,$(1), \
779 -framework Cocoa \
782 endef
784 define gb_LinkTarget__use_qtkit
785 $(call gb_LinkTarget_add_libs,$(1), \
786 -framework QTKit \
789 endef
791 define gb_LinkTarget__use_quicktime
792 $(call gb_LinkTarget_add_libs,$(1), \
793 -framework QuickTime \
796 endef
798 # Common MacOSX and iOS frameworks
800 define gb_LinkTarget__use_corefoundation
801 $(call gb_LinkTarget_add_libs,$(1), \
802 -framework CoreFoundation \
805 endef
807 define gb_LinkTarget__use_coregraphics
808 $(call gb_Library_add_libs,$(1), \
809 -framework CoreGraphics \
812 endef
814 define gb_LinkTarget__use_coretext
815 $(call gb_Library_add_libs,$(1), \
816 -framework CoreText \
819 endef
821 define gb_LinkTarget__use_foundation
822 $(call gb_LinkTarget_add_libs,$(1), \
823 -framework Foundation \
826 endef
828 # iOS-only frameworks
830 define gb_LinkTarget__use_uikit
831 $(call gb_LinkTarget_add_libs,$(1), \
832 -framework UIKit \
835 endef
837 ifeq ($(SYSTEM_NSS),YES)
839 define gb_LinkTarget__use_plc4
840 $(call gb_LinkTarget_set_include,$(1),\
841 $$(INCLUDE) \
842 $(NSS_CFLAGS) \
845 $(call gb_LinkTarget_add_libs,$(1),\
846 $(NSS_LIBS) \
849 endef
851 else
853 $(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO,\
854 nspr4 \
855 nss3 \
856 plc4 \
859 define gb_LinkTarget__use_plc4
860 $(call gb_LinkTarget_add_linked_libs,$(1),\
861 plc4 \
864 endef
866 endif
868 ### Jars ############################################################
870 ifeq ($(SYSTEM_SAXON),YES)
872 define gb_JavaClassSet__use_saxon
873 $(call gb_JavaClassSet_add_system_jar,$(1),$(SAXON_JAR))
874 endef
876 else # !SYSTEM_SAXON
878 define gb_JavaClassSet__use_saxon
879 $(call gb_JavaClassSet_add_jar,$(1),$(OUTDIR)/bin/saxon9.jar)
880 endef
882 endif # SYSTEM_SAXON
884 ifeq ($(SYSTEM_BSH),YES)
886 define gb_JavaClassSet__use_bsh
887 $(call gb_JavaClassSet_add_system_jar,$(1),$(BSH_JAR))
888 endef
890 else # !SYSTEM_BSH
892 define gb_JavaClassSet__use_bsh
893 $(call gb_JavaClassSet_add_jar,$(1),$(OUTDIR)/bin/bsh.jar)
894 endef
896 endif # SYSTEM_BSH
899 # vim: set noet sw=4 ts=4: