Revert the integration of menhir for the time being.
[tatoo.git] / tools / ocamlmoduledep.sh
index befd4cd..8575312 100755 (executable)
@@ -4,7 +4,7 @@
 PROG="$0"
 CMDLINE="$*"
 usage() {
-    echo "$PROG [-native] [-I dir .. -I dir] Module"
+    echo "$PROG [-inter] [-native] [-I dir .. -I dir] Module"
 }
 
 INCLUDES=""
@@ -16,7 +16,7 @@ while true; do
         -I)
             dir=`echo "$2" | sed "s:^+:$(ocamlc -where)/:"`
             INCLUDES="$INCLUDES
-$2"
+$dir"
             shift
             ;;
         -native)
@@ -46,15 +46,19 @@ fi
 for MODULE in $MODULES; do
     module="$(echo $MODULE | cut -b1 | tr A-Z a-z)$(echo $MODULE | cut -b2-)"
     echo "$INCLUDES" | while read include; do
+       if test -z "$include"; then continue; fi
         base="$include/$module"
-        if test -z "$include"; then continue; fi
         if test  \( "$INTER" = "1" \) -a \( -f "$base".mli \) ; then
-                echo -n "$base"."cmi "
-        elif test -f "$base".ml -o -f "$base".mly -o -f "$base".mll -o -f "$base".pack; then
-            echo -n "$base"."$ext "
+           ## if we want to depend only on cmi of a module
+                /bin/echo -n  "$base"."cmi "
+        elif test -f "$base".ml -o -f "$base".mly -o -f "$base".mll -o -f "$base".pack -o -f "$base".ml.str; then
+           ## else we depend on the implementation 
+            /bin/echo -n  "$base"."$ext "
             break
         elif test -f "$base".mli; then
-            echo -n "$base"."cmi "
+           ## and fall back on depending on the cmi if the cmx is not available
+           ## (which prevents cross-module inlining in the case of cmx)
+            /bin/echo -n  "$base"."cmi "
             break
         fi
     done