Browse Source

* Automatically generate symbols definitions

Bryan Drewery 15 years ago
parent
commit
aa3a247558
4 changed files with 28 additions and 1 deletions
  1. 1 1
      Makefile.in
  2. 2 0
      autotools/configure.ac
  3. 2 0
      configure
  4. 23 0
      src/generate_defs.sh

+ 1 - 1
Makefile.in

@@ -102,7 +102,7 @@ clean:  cleanutils
 
 distclean: clean
 	@rm -rf *-$(VERSION)/ autom4te.cache/ autoscan.log configure.scan
-	@rm -rf src/.deps/ src/compat/.deps/ src/strucutres/.deps/ src/mod/*.mod/.deps/ src/crypto/.deps
+	@rm -rf src/.deps/ src/compat/.deps/ src/strucutres/.deps/ src/mod/*.mod/.deps/ src/crypto/.deps src/.defs/
 	-+@cd lib && $(MAKE) distclean
 	@rm -f $(STATICMAKEFILES) $(CONFIGFILES)
 

+ 2 - 0
autotools/configure.ac

@@ -217,6 +217,8 @@ if [ "$GIT_REQUIRED" = "1" ]; then
 fi
 ]
 
+src/generate_defs.sh
+
 echo ""
 echo ""
 echo "------------ Configuring BDLIB ------------"

+ 2 - 0
configure

@@ -9017,6 +9017,8 @@ if [ "$GIT_REQUIRED" = "1" ]; then
 fi
 
 
+src/generate_defs.sh
+
 echo ""
 echo ""
 echo "------------ Configuring BDLIB ------------"

+ 23 - 0
src/generate_defs.sh

@@ -0,0 +1,23 @@
+#! /bin/bash
+
+mkdir -p src/.defs > /dev/null 2>&1
+
+for file in $(git grep -l DLSYM_GLOBAL|grep "\.c$"); do
+  defsFile="src/.defs/$(basename $file .c)_defs.h"
+  defsDefine=$(echo "_$(basename $file .c)_defs_h"| tr '[:lower:]' '[:upper:]')
+
+  cat > $defsFile << EOF
+#ifndef $defsDefine
+#define $defsDefine
+
+EOF
+  for symbol in $(sed -n -e 's/.*DLSYM_GLOBAL(.*, \([^)]*\).*/\1/p' $file|sort -u); do
+    key="_DLST_IDX_${symbol}"
+    printf "#define %-25s DLSYM_VAR(%s)\n" $symbol $symbol
+  done >> $defsFile
+  cat >> $defsFile << EOF
+
+#endif /* $defsDefine */
+EOF
+done
+