]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
build: add symbol versioning to libtdb via script/mksyms.*
authorStefan Metzmacher <metze@samba.org>
Thu, 22 May 2008 14:27:22 +0000 (16:27 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 22 May 2008 14:27:22 +0000 (16:27 +0200)
metze

source/Makefile.in
source/script/mksyms.awk
source/script/mksyms.sh

index 71b2018a5b2d5381deded366318180a43ae91a5c..b71bb34de90acd44df25dc75ec7898d487e7c414 100644 (file)
@@ -1576,7 +1576,7 @@ $(LIBTALLOC_STATIC_TARGET): $(BINARY_PREREQS) $(LIBTALLOC_OBJ0)
 MKSYMS_SH = $(srcdir)/script/mksyms.sh
 
 $(LIBTDB_SYMS): $(LIBTDB_HEADERS)
-       @$(MKSYMS_SH) $(AWK) $@ $(LIBTDB_HEADERS)
+       @$(MKSYMS_SH) $(AWK) $(builddir)/library-versions $@ $(LIBTDB_HEADERS)
 
 $(LIBTDB_SHARED_TARGET): $(BINARY_PREREQS) $(LIBTDB_OBJ) $(LIBTDB_SYMS)
        @echo Linking shared library $@
index a30bea4d340ba7b8ad2d4e8d8c391a25be68d735..dfe51dba7f0f93e8301e287d3491e70758b892ef 100644 (file)
@@ -9,9 +9,6 @@
 BEGIN {
        inheader=0;
        current_file="";
-       print "#"
-       print "# This file is automatically generated with \"make symbols\". DO NOT EDIT "
-       print "#"
        print "{"
        print "\tglobal:"
 }
index 51d3fbd99925069bf9beead03f3a41c58881b2a6..d2f3f3a134b0122e9447a0d259d3d75508525614 100755 (executable)
@@ -15,26 +15,43 @@ LANG=C; export LANG
 LC_ALL=C; export LC_ALL
 LC_COLLATE=C; export LC_COLLATE
 
-if [ $# -lt 2 ]
+if [ $# -lt 3 ]
 then
-  echo "Usage: $0 awk output_file header_files"
+  echo "Usage: $0 awk versionfile output_file header_files"
   exit 1
 fi
 
 awk="$1"
 shift
 
+versionfile="$1"
+shift
+
 symsfile="$1"
 shift
 symsfile_tmp="$symsfile.$$.tmp~"
 
+libname=`basename $symsfile | cut -d '.' -f1`
+verline=`grep $libname $versionfile`
+majver=`echo -n "$verline" | cut -d ':' -f2`
+minver=`echo -n "$verline" | cut -d ':' -f3`
+upname=`echo -n "$libname" | sed -e 's/^lib//' | tr '[a-z]' '[A-Z]'`
+symver="${upname}_${majver}_${minver}"
+
 proto_src="`echo $@ | tr ' ' '\n' | sort | uniq `"
 
-echo creating $symsfile
+echo "creating $symsfile for $symver"
 
 mkdir -p `dirname $symsfile`
 
-${awk} -f `dirname $0`/mksyms.awk $proto_src > $symsfile_tmp
+cat > $symsfile_tmp <<_ACEOF
+#
+# This file is automatically generated with "$0". DO NOT EDIT
+#
+$symver
+_ACEOF
+
+${awk} -f `dirname $0`/mksyms.awk $proto_src >> $symsfile_tmp
 
 if cmp -s $symsfile $symsfile_tmp 2>/dev/null
 then