summaryrefslogtreecommitdiff
path: root/salhelper/Library_salhelper.mk
diff options
context:
space:
mode:
Diffstat (limited to 'salhelper/Library_salhelper.mk')
-rw-r--r--salhelper/Library_salhelper.mk81
1 files changed, 81 insertions, 0 deletions
diff --git a/salhelper/Library_salhelper.mk b/salhelper/Library_salhelper.mk
new file mode 100644
index 000000000000..c77d1f049fa0
--- /dev/null
+++ b/salhelper/Library_salhelper.mk
@@ -0,0 +1,81 @@
+# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2011 Matúš Kukan <matus.kukan@gmail.com>
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Library_Library,salhelper))
+
+$(eval $(call gb_Library_add_package_headers,salhelper,salhelper_inc))
+
+$(eval $(call gb_Library_add_defs,salhelper,\
+ -DSALHELPER_DLLIMPLEMENTATION \
+))
+
+$(eval $(call gb_Library_add_linked_libs,salhelper,\
+ sal \
+ $(gb_STDLIBS) \
+))
+
+$(eval $(call gb_Library_add_exception_objects,salhelper,\
+ salhelper/source/condition \
+ salhelper/source/dynload \
+ salhelper/source/simplereferenceobject \
+ salhelper/source/timer \
+))
+
+# At least on Linux, for backwards compatibility the salhelper library needs a
+# specific soname and symbol versioning. The symbols in the gcc3.map should be
+# those not already filtered out due to hidden visibility, so combining the
+# visibility feature with the version map file feature works well.
+# Solaris would need something like this, too. Its backwards compatibility is
+# broken for now:
+
+ifeq ($(OS),LINUX)
+
+$(eval $(call gb_Library_add_ldflags,salhelper, \
+ -Wl$(COMMA)--soname=libuno_salhelpergcc3.so.3 \
+ -Wl$(COMMA)--version-script=$(SRCDIR)/salhelper/source/gcc3.map \
+))
+
+$(call gb_LinkTarget_get_target,$(call \
+gb_Library_get_linktargetname,salhelper)): $(SRCDIR)/salhelper/source/gcc3.map
+
+endif
+
+# A hack to generate the soname symlink in the solver:
+
+ifneq ($(OS),WNT)
+
+$(call gb_Library_get_target,salhelper): | \
+ $(call gb_Library_get_target,salhelper).3
+
+$(call gb_Library_get_target,salhelper).3:
+ $(call gb_Helper_abbreviate_dirs,rm -f $@)
+ $(call gb_Helper_abbreviate_dirs, \
+ ln -s $(notdir $(call gb_Library_get_target,salhelper)) $@)
+
+endif
+
+# vim: set noet sw=4 ts=4: