X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=tools%2Focamlmoduledep.sh;h=857531226f2048ab18bd01de6217c9d378146c4f;hp=2833671766cf2acf15d797991580a034fbda57e7;hb=31d45495fda9a110fd348f8b492761c28b434ec9;hpb=456aa2cae4ba3afc4fe364880e52f66490700650 diff --git a/tools/ocamlmoduledep.sh b/tools/ocamlmoduledep.sh index 2833671..8575312 100755 --- a/tools/ocamlmoduledep.sh +++ b/tools/ocamlmoduledep.sh @@ -11,11 +11,10 @@ INCLUDES="" MODULES="" NATIVE=0 INTER=0 -OCAMLWHERE=$(ocamlc -where) while true; do case $1 in -I) - dir=`echo "$2" | sed "s:^+:${OCAMLWHERE}/:"` + dir=`echo "$2" | sed "s:^+:$(ocamlc -where)/:"` INCLUDES="$INCLUDES $dir" shift @@ -44,23 +43,22 @@ else ext=cmo fi - for MODULE in $MODULES; do - module="$(echo ${MODULE} | sed -e 's:\(.*\):\l\1:')" + 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}" + base="$include/$module" if test \( "$INTER" = "1" \) -a \( -f "$base".mli \) ; then ## if we want to depend only on cmi of a module - /bin/echo -n "${base}"."cmi " + /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} " + /bin/echo -n "$base"."$ext " break - elif test -f "${base}".mli; then + elif test -f "$base".mli; then ## 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 " + /bin/echo -n "$base"."cmi " break fi done