blob: 44c91900e86c070980aca7be6c016618fe966021 [file] [log] [blame]
###############################################################
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
###############################################################
# this file describes all the external libraries
# depending on the configure options these may be taken from the system,
# or the internal/bundled copy may be built.
# for every external, a function gb_LinkTarget_use__FOO is defined,
# once for the system case, once for the internal case.
# in the system case, no libraries should be registered, but the target-local
# variable LIBS should be set to FOO_LIBS, and INCLUDES to FOO_CFLAGS.
ifeq ($(SYSTEM_ZLIB),YES)
define gb_LinkTarget__use_zlib
$(call gb_LinkTarget_add_defs,$(1),\
-DSYSTEM_ZLIB \
)
$(call gb_LinkTarget_add_libs,$(1),-lz)
endef
else # !SYSTEM_ZLIB
$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
zlib \
))
define gb_LinkTarget__use_zlib
$(call gb_LinkTarget_add_linked_static_libs,$(1),\
zlib \
)
endef
endif # SYSTEM_ZLIB
ifeq ($(SYSTEM_JPEG),YES)
define gb_LinkTarget__use_jpeg
$(call gb_LinkTarget_add_libs,$(1),-ljpeg)
$(call gb_LinkTarget_set_ldflags,$(1),\
$$(filter-out -L/usr/lib/jvm%,$$(T_LDFLAGS)) \
)
ifeq ($(OS),FREEBSD)
# JDK jpeg library on FreeBSD lives under ${JAVA_HOME}/jre/lib/${ARCH}/
$(call gb_LinkTarget_set_ldflags,$(1),\
$$(filter-out -L$$(JAVA_HOME)/jre/lib/%,$$(T_LDFLAGS)) \
)
endif
endef
else # !SYSTEM_JPEG
$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
jpeglib \
))
define gb_LinkTarget__use_jpeg
$(call gb_LinkTarget_add_linked_static_libs,$(1),\
jpeglib \
)
endef
endif # SYSTEM_JPEG
ifeq ($(SYSTEM_EXPAT),YES)
define gb_LinkTarget__use_expat
$(if $(2),,$(error gb_LinkTarget__use_expat needs additional parameter))
$(call gb_LinkTarget_add_defs,$(1),\
-DSYSTEM_EXPAT \
)
$(call gb_LinkTarget_add_libs,$(1),-lexpat)
endef
else # !SYSTEM_EXPAT
$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
ascii_expat_xmlparse \
expat_xmlparse \
expat_xmltok \
))
define gb_LinkTarget__use_expat
$(if $(2),,$(error gb_LinkTarget__use_expat needs additional parameter))
$(if $(filter-out ascii_expat_xmlparse,$(2)),\
$(call gb_LinkTarget_add_defs,$(1),\
-DXML_UNICODE \
))
$(call gb_LinkTarget_add_linked_static_libs,$(1),\
$(2) \
expat_xmltok \
)
endef
endif # SYSTEM_EXPAT
# now define 2 wrappers that select which internal static library to use...
define gb_LinkTarget__use_expat_utf8
$(call gb_LinkTarget__use_expat,$(1),ascii_expat_xmlparse)
endef
define gb_LinkTarget__use_expat_utf16
$(call gb_LinkTarget__use_expat,$(1),expat_xmlparse)
endef
ifeq ($(SYSTEM_LIBXML),YES)
define gb_LinkTarget__use_libxml2
$(call gb_LinkTarget_add_defs,$(1),\
-DSYSTEM_LIBXML \
)
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(LIBXML_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(LIBXML_LIBS))
endef
else # !SYSTEM_LIBXML
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_URE, \
xml2 \
))
define gb_LinkTarget__use_libxml2
$(call gb_LinkTarget_add_linked_libs,$(1),\
xml2 \
)
endef
endif # SYSTEM_LIBXML
ifeq ($(SYSTEM_LIBXSLT),YES)
define gb_LinkTarget__use_libxslt
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(LIBXSLT_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(LIBXSLT_LIBS))
endef
else # !SYSTEM_LIBXSLT
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
xslt \
))
define gb_LinkTarget__use_libxslt
$(call gb_LinkTarget_add_linked_libs,$(1),\
xslt \
)
endef
endif # SYSTEM_LIBXSLT
ifeq ($(SYSTEM_REDLAND),YES)
define gb_LinkTarget__use_librdf
$(call gb_LinkTarget_add_defs,$(1),\
-DSYSTEM_REDLAND \
)
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(REDLAND_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(REDLAND_LIBS))
endef
else # !SYSTEM_REDLAND
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
rdf \
))
define gb_LinkTarget__use_librdf
$(call gb_LinkTarget_add_linked_libs,$(1),\
rdf \
)
endef
endif # SYSTEM_REDLAND
ifeq ($(SYSTEM_CAIRO),YES)
# FREETYPE_CLAGS from environment if ENABLE_CAIRO is used
define gb_LinkTarget__use_cairo
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(FREETYPE_CFLAGS) \
$(CAIRO_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(CAIRO_LIBS))
endef
else # !SYSTEM_CAIRO
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
cairo \
))
ifneq ($(OS),WNT)
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
pixman-1 \
))
endif # WNT
define gb_LinkTarget__use_cairo
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
-I$(OUTDIR)/inc/cairo \
$(FREETYPE_CFLAGS) \
)
$(call gb_LinkTarget_add_linked_libs,$(1),\
cairo \
)
ifneq ($(OS),WNT)
$(call gb_LinkTarget_add_linked_libs,$(1),\
pixman-1 \
)
endif
endef
endif # SYSTEM_CAIRO
ifeq ($(SYSTEM_GRAPHITE),YES)
#check for building with stlport, but graphite was not built with stlport
define gb_LinkTarget__use_graphite
ifneq ($(USE_SYSTEM_STL),YES)
$(call gb_LinkTarget_add_defs,$(1),\
-DADAPT_EXT_STL \
)
endif
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(GRAPHITE_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(GRAPHITE_LIBS))
endef
else # !SYSTEM_GRAPHITE
$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
graphite \
))
define gb_LinkTarget__use_graphite
$(call gb_LinkTarget_add_linked_static_libs,$(1),\
graphite \
)
endef
endif # SYSTEM_GRAPHITE
ifeq ($(SYSTEM_ICU),YES)
define gb_LinkTarget__use_icudata
$(call gb_LinkTarget_add_libs,$(1),-licudata)
endef
define gb_LinkTarget__use_icui18n
$(call gb_LinkTarget_add_libs,$(1),-licui18n)
endef
define gb_LinkTarget__use_icule
$(call gb_LinkTarget_add_libs,$(1),-licule)
endef
define gb_LinkTarget__use_icuuc
$(call gb_LinkTarget_add_libs,$(1),-licuuc)
endef
else # !SYSTEM_ICU
define gb_LinkTarget__use_icudata
ifeq ($(OS)$(COM),WNTMSC)
$(call gb_LinkTarget_add_libs,$(1),icudata.lib)
else ifeq ($(OS)$(COM),WNTGCC)
$(call gb_LinkTarget_add_libs,$(1),-licudt40)
else ifeq ($(OS),OS2)
$(call gb_LinkTarget_add_libs,$(1),-licudt)
else
$(call gb_LinkTarget_add_libs,$(1),-licudata)
endif
endef
define gb_LinkTarget__use_icui18n
ifeq ($(OS)$(COM),WNTMSC)
$(call gb_LinkTarget_add_libs,$(1),icuin.lib)
else ifeq ($(OS)$(COM),WNTGCC)
$(call gb_LinkTarget_add_libs,$(1),-licuin40)
else ifeq ($(OS),OS2)
$(call gb_LinkTarget_add_libs,$(1),-licuin)
else
$(call gb_LinkTarget_add_libs,$(1),-licui18n)
endif
endef
define gb_LinkTarget__use_icule
ifeq ($(OS)$(COM),WNTMSC)
$(call gb_LinkTarget_add_libs,$(1),icule.lib)
else ifeq ($(OS)$(COM),WNTGCC)
$(call gb_LinkTarget_add_libs,$(1),-licule40)
else
$(call gb_LinkTarget_add_libs,$(1),-licule)
endif
endef
define gb_LinkTarget__use_icuuc
ifeq ($(OS)$(COM),WNTMSC)
$(call gb_LinkTarget_add_libs,$(1),icuuc.lib)
else ifeq ($(OS)$(COM),WNTGCC)
$(call gb_LinkTarget_add_libs,$(1),-licuuc40)
else
$(call gb_LinkTarget_add_libs,$(1),-licuuc)
endif
endef
endif # SYSTEM_ICU
ifeq ($(SYSTEM_OPENSSL),YES)
define gb_LinkTarget__use_openssl
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(OPENSSL_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(OPENSSL_LIBS))
endef
else # !SYSTEM_OPENSSL
ifeq ($(OS),WNT)
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
crypto \
ssl \
))
else
$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
crypto \
ssl \
))
endif
define gb_LinkTarget__use_openssl
ifeq ($(OS),WNT)
$(call gb_LinkTarget_add_linked_libs,$(1),\
crypto \
ssl \
)
else
$(call gb_LinkTarget_add_linked_static_libs,$(1),\
crypto \
ssl \
)
ifeq ($(OS),SOLARIS)
$(call gb_LinkTarget_add_libs,$(1),\
-lnsl \
-lsocket \
)
endif
endif
endef
endif # SYSTEM_OPENSSL
ifeq ($(SYSTEM_APR),YES)
define gb_LinkTarget__use_apr
$(call gb_LinkTarget_add_defs,$(1),\
-DSYSTEM_APR \
)
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(APR_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(APR_LIBS))
endef
else # !SYSTEM_APR
ifeq ($(OS),WNT)
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_NONE,libapr-1))
else
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_NONE,apr-1))
endif
define gb_LinkTarget__use_apr
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
-I$(OUTDIR)/inc/apr \
)
ifeq ($(OS),WNT)
$(call gb_LinkTarget_add_linked_libs,$(1),libapr-1)
else
$(call gb_LinkTarget_add_linked_libs,$(1),apr-1)
endif
endef
endif # SYSTEM_APR
ifeq ($(SYSTEM_APR_UTIL),YES)
define gb_LinkTarget__use_apr_util
$(call gb_LinkTarget_add_defs,$(1),\
-DSYSTEM_APR_UTIL \
)
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(APR_UTIL_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(APR_UTIL_LIBS))
endef
else # !SYSTEM_APR_UTIL
# on Windows apr-util is registered by ext_libraries/Repository.mk
ifneq ($(OS),WNT)
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO,aprutil-1))
endif
define gb_LinkTarget__use_apr_util
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
-I$(OUTDIR)/inc/apr-util \
)
ifeq ($(OS),WNT)
$(call gb_LinkTarget_add_linked_libs,$(1),apr-util)
else
$(call gb_LinkTarget_add_linked_libs,$(1),aprutil-1)
endif
endef
endif # SYSTEM_APR_UTIL
ifeq ($(SYSTEM_SERF),YES)
define gb_LinkTarget__use_serf
$(call gb_LinkTarget_add_defs,$(1),\
-DSYSTEM_SERF \
)
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(SERF_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(SERF_LIBS))
endef
else # !SYSTEM_SERF
# on Windows serf is registered by ext_libraries/Repository.mk
ifneq ($(OS),WNT)
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO,serf-1))
endif
define gb_LinkTarget__use_serf
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
-I$(OUTDIR)/inc/serf \
)
ifeq ($(OS),WNT)
$(call gb_LinkTarget_add_linked_libs,$(1),serf)
else
$(call gb_LinkTarget_add_linked_libs,$(1),serf-1)
endif
endef
endif # SYSTEM_SERF
ifeq ($(SYSTEM_CURL),YES)
define gb_LinkTarget__use_curl
$(call gb_LinkTarget_add_defs,$(1),\
-DSYSTEM_CURL \
)
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(CURL_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(CURL_LIBS))
endef
else # !SYSTEM_CURL
ifeq ($(OS),WNT)
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_NONE,libcurl))
else
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_NONE,curl))
endif
define gb_LinkTarget__use_curl
ifeq ($(OS),WNT)
$(call gb_LinkTarget_add_linked_libs,$(1),libcurl)
else
$(call gb_LinkTarget_add_linked_libs,$(1),curl)
endif
endef
endif # SYSTEM_CURL
ifeq ($(SYSTEM_COINMP),YES)
define gb_LinkTarget__use_coinmp
$(call gb_LinkTarget_add_defs,$(1),\
-DSYSTEM_COINMP \
)
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(COINMP_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(COINMP_LIBS))
endef
else # !SYSTEM_COINMP
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_NONE,CoinMP))
ifneq ($(OS),WNT)
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_NONE, \
CoinUtils \
Clp \
Cbc \
Osi \
OsiClp \
Cgl \
CbcSolver \
))
endif
define gb_LinkTarget__use_coinmp
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
-I$(OUTDIR)/inc/coinmp \
)
$(call gb_LinkTarget_add_linked_libs,$(1),CoinMP)
ifneq ($(OS),WNT)
ifneq ($(OS),OS2)
$(call gb_LinkTarget_add_linked_libs,$(1),\
CoinUtils \
Clp \
Cbc \
Osi \
OsiClp \
Cgl \
CbcSolver \
)
endif
endif
endef
endif # SYSTEM_COINMP
ifeq ($(SYSTEM_HYPH),YES)
define gb_LinkTarget__use_hyphen
$(call gb_LinkTarget_add_defs,$(1),\
-DSYSTEM_HYPH \
)
$(call gb_LinkTarget_add_libs,$(1),$(HYPHEN_LIB))
endef
else # !SYSTEM_HYPH
$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
hyphen \
))
define gb_LinkTarget__use_hyphen
$(call gb_LinkTarget_add_linked_static_libs,$(1),\
hyphen \
)
endef
endif # SYSTEM_HYPH
ifeq ($(SYSTEM_LIBTEXTCAT),YES)
define gb_LinkTarget__use_libtextcat
$(call gb_LinkTarget_add_libs,$(1),-ltextcat)
endef
else # !SYSTEM_LIBTEXTCAT
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
libtextcat \
textcat \
))
define gb_LinkTarget__use_libtextcat
ifeq ($(OS),WNT)
$(call gb_LinkTarget_add_linked_libs,$(1),libtextcat)
else
$(call gb_LinkTarget_add_linked_libs,$(1),textcat)
endif
endef
endif # SYSTEM_LIBTEXTCAT
ifeq ($(SYSTEM_MYTHES),YES)
define gb_LinkTarget__use_mythes
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(MYTHES_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(MYTHES_LIBS))
endef
else # !SYSTEM_MYTHES
ifeq ($(OS),WNT)
$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,libmythes))
else
$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,mythes-1.2))
endif
define gb_LinkTarget__use_mythes
ifeq ($(OS),WNT)
$(call gb_LinkTarget_add_linked_static_libs,$(1),libmythes)
else
$(call gb_LinkTarget_add_linked_static_libs,$(1),mythes-1.2)
endif
endef
endif # SYSTEM_MYTHES
ifeq ($(SYSTEM_HUNSPELL),YES)
define gb_LinkTarget__use_hunspell
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(HUNSPELL_CFLAGS) \
)
$(call gb_LinkTarget_add_libs,$(1),$(HUNSPELL_LIBS))
endef
else # !SYSTEM_HUNSPELL
ifeq ($(GUI),WNT)
$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,libhunspell))
else ifeq ($(GUI),OS2)
$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,hunspell))
else
$(eval $(call gb_Helper_register_static_libraries,PLAINLIBS,hunspell-1.3))
endif
define gb_LinkTarget__use_hunspell
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
-I$(OUTDIR)/inc/hunspell \
)
$(call gb_LinkTarget_add_defs,$(1),\
-DHUNSPELL_STATIC
)
ifeq ($(GUI),WNT)
$(call gb_LinkTarget_add_linked_static_libs,$(1),libhunspell)
else ifeq ($(GUI),OS2)
$(call gb_LinkTarget_add_linked_static_libs,$(1),hunspell)
else
$(call gb_LinkTarget_add_linked_static_libs,$(1),hunspell-1.3)
endif
endef
endif # SYSTEM_HUNSPELL
ifeq ($(SYSTEM_PYTHON),YES)
define gb_LinkTarget__use_python
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(filter -I%,$(PYTHON_CFLAGS)) \
)
$(call gb_LinkTarget_add_defs,$(1),\
$(filter-out -I%,$(PYTHON_CFLAGS)) \
)
$(call gb_LinkTarget_add_libs,$(1),\
$(PYTHON_LIBS) \
)
endef
else # !SYSTEM_PYTHON
include $(SRCDIR)/python/pyversion.mk
define gb_LinkTarget__use_python
$(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
-I$(OUTDIR)/inc/python \
)
$(call gb_LinkTarget_add_libs,$(1),$(PYTHONLIB))
endef
endif # SYSTEM_PYTHON
# vim: set noet sw=4 ts=4: