Sfoglia il codice sorgente

Cleanup this script more

Bryan Drewery 11 anni fa
parent
commit
73c4216a45
1 ha cambiato i file con 15 aggiunte e 66 eliminazioni
  1. 15 66
      src/generate_defs.sh

+ 15 - 66
src/generate_defs.sh

@@ -1,59 +1,6 @@
 #! /bin/sh
 
-strip_trailing_slashes() {
-  _STRIP=$1
-  while :
-  do
-    case $_STRIP in
-      ## If the last character is a slash, remove it
-      */) _STRIP=${_STRIP%/} ;;
-      *) break ;;
-    esac
-  done
-}
-
-_basename() {
-  fn_path=$1
-  fn_suffix=$2
-  case $fn_path in
-    "") _BASENAME=; return ;;
-     *)
-        strip_trailing_slashes "$fn_path"
-        case $_STRIP in
-          "") fn_path="/" ;;
-           *) fn_path=${_STRIP##*/} ;;
-        esac
-        ;;
-  esac
-
-
-  case $fn_path in
-    $fn_suffix | "/" ) _BASENAME="$fn_path" ;;
-                    *) _BASENAME=${fn_path%$fn_suffix} ;;
-  esac
-}
-
-basename() {
-  _basename "$@" && echo $_BASENAME
-}
-
-_dirname() {
-  _DIRNAME=$1
-  strip_trailing_slashes "$_DIRNAME"
-  case $_STRIP in
-    "") _DIRNAME='/'; return ;;
-   */*) _DIRNAME="${_STRIP%/*}" ;;
-     *) _DIRNAME='.'; return ;;
-  esac
-  strip_trailing_slashes "$_DIRNAME"
-  _DIRNAME=${_STRIP:-/}
-}
-
-dirname() {
-  _dirname "$@" && echo $_DIRNAME
-}
-
-### Export LC_ALL=C sort(1) stays consistent
+### Export LC_ALL=C so sort(1) stays consistent
 export LC_ALL=C
 
 if [ -z "$SED" -o -z "$CXX" ]; then
@@ -65,19 +12,21 @@ INCLUDES="${TCL_INCLUDES} ${SSL_INCLUDES}"
 
 mkdir -p src/.defs > /dev/null 2>&1
 TMPFILE=$(mktemp "/tmp/pre.XXXXXX")
-for file in $(grep -l DLSYM_GLOBAL src/*.c|grep -v "src/_"); do
-  defsFile_wrappers="src/.defs/$(basename $file .c)_defs.c"
-  defsFile_pre="src/.defs/$(basename $file .c)_pre.h"
-  defsFile_post="src/.defs/$(basename $file .c)_post.h"
+files=$(grep -l DLSYM_GLOBAL src/*.c|grep -v "src/_")
+for file in ${files}; do
+  suffix=${file##*.}
+  basename=${file%%.*}
+  basename=${basename##*/}
+  dirname=${file%%/*}
 
-  rm -f $defsFile_pre $defsFile_post $defsFile_wrappers > /dev/null 2>&1
-  touch $defsFile_pre $defsFile_post $defsFile_wrappers
-done
+  defsFile_wrappers="src/.defs/${basename}_defs.${suffix}"
+  defsFile_pre="src/.defs/${basename}_pre.h"
+  defsFile_post="src/.defs/${basename}_post.h"
 
-for file in $(grep -l DLSYM_GLOBAL src/*.c|grep -v "src/_"); do
-  defsFile_wrappers="src/.defs/$(basename $file .c)_defs.c"
-  defsFile_pre="src/.defs/$(basename $file .c)_pre.h"
-  defsFile_post="src/.defs/$(basename $file .c)_post.h"
+  rm -f $defsFile_pre $defsFile_post $defsFile_wrappers > /dev/null 2>&1
+  : > $defsFile_pre
+  : > $defsFile_post
+  : > $defsFile_wrappers
 
   echo "extern \"C\" {" > $defsFile_wrappers
   echo "extern \"C\" {" > $defsFile_post
@@ -92,7 +41,7 @@ for file in $(grep -l DLSYM_GLOBAL src/*.c|grep -v "src/_"); do
 
   for symbol in $($SED -n -e 's/.*DLSYM_GLOBAL(.*, \([^)]*\).*/\1/p' $file|sort -u); do
     # Check if the typedef is already defined ...
-    typedef=$(grep "^typedef .*(\*${symbol}_t)" $(dirname $file)/$(basename $file .c).h)
+    typedef=$(grep "^typedef .*(\*${symbol}_t)" ${dirname}/${basename}.h)
     # ... if not, generate it
     if [ -z "$typedef" ]; then
       # Trim off any extern "C", trim out the variable names, cleanup whitespace issues