summaryrefslogtreecommitdiff
path: root/source3/script/mksyms.sh
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2008-02-14 14:15:07 +0100
committerMichael Adam <obnox@samba.org>2008-02-14 14:17:57 +0100
commitb09b3ac8f88d7b89501193efca3615518218d6f1 (patch)
treed87491fcc3df2a7512d7f4cb64ab3afb3be2dd4d /source3/script/mksyms.sh
parent8e3ae7baaf287f70123eda7aa478ac82812e7c81 (diff)
downloadsamba-b09b3ac8f88d7b89501193efca3615518218d6f1.tar.gz
samba-b09b3ac8f88d7b89501193efca3615518218d6f1.tar.bz2
samba-b09b3ac8f88d7b89501193efca3615518218d6f1.zip
Create symbols to export in libtdb dynamically from tdb.h.
This adds a general mechanism to create version-scripts for linking shared libraries from one or several header files, similar to mkproto.sh/awk. Michael (This used to be commit 65817703c49a7410f4f0c8b46494ede6169d9fa6)
Diffstat (limited to 'source3/script/mksyms.sh')
-rwxr-xr-xsource3/script/mksyms.sh45
1 files changed, 45 insertions, 0 deletions
diff --git a/source3/script/mksyms.sh b/source3/script/mksyms.sh
new file mode 100755
index 0000000000..637ec5027c
--- /dev/null
+++ b/source3/script/mksyms.sh
@@ -0,0 +1,45 @@
+#! /bin/sh
+
+#
+# mksyms.sh
+#
+# Extract symbols to export from C-header files.
+# output in version-script format for linking shared libraries.
+#
+# This is the shell warpper for the mksyms.awk core script.
+#
+# Copyright (C) 2008 Micheal Adam <obnox@samba.org>
+#
+
+LANG=C; export LANG
+LC_ALL=C; export LC_ALL
+LC_COLLATE=C; export LC_COLLATE
+
+if [ $# -lt 2 ]
+then
+ echo "Usage: $0 awk output_file header_files"
+ exit 1
+fi
+
+awk="$1"
+shift
+
+symsfile="$1"
+shift
+symsfile_tmp="$symsfile.$$.tmp~"
+
+proto_src="`echo $@ | tr ' ' '\n' | sort | uniq `"
+
+echo creating $symsfile
+
+mkdir -p `dirname $symsfile`
+
+${awk} -f script/mksyms.awk $proto_src > $symsfile_tmp
+
+if cmp -s $symsfile $symsfile_tmp 2>/dev/null
+then
+ echo "$symsfile unchanged"
+ rm $symsfile_tmp
+else
+ mv $symsfile_tmp $symsfile
+fi