summaryrefslogtreecommitdiff
path: root/gccmakedep.in
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2011-06-04 21:36:36 -0700
committerAlan Coopersmith <alan.coopersmith@oracle.com>2011-06-05 10:14:41 -0700
commit855a9cb40ca734e1c99c3a1032630281d99572d1 (patch)
treec0874bea33b382f8f869b0a38630675ba871023a /gccmakedep.in
parent7abbe73c0ead0f335f2e39a486ac3004b8c30b08 (diff)
Use autoconf instead of XORG_RAWCPP to substitute text in gccmakedep
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
Diffstat (limited to 'gccmakedep.in')
-rw-r--r--gccmakedep.in130
1 files changed, 130 insertions, 0 deletions
diff --git a/gccmakedep.in b/gccmakedep.in
new file mode 100644
index 0000000..860d102
--- /dev/null
+++ b/gccmakedep.in
@@ -0,0 +1,130 @@
+#!/bin/sh
+
+#
+# makedepend which uses 'gcc -M'
+#
+# $XFree86: xc/config/util/gccmdep.cpp,v 3.10tsi Exp $
+#
+# Based on mdepend.cpp and code supplied by Hongjiu Lu <hjl@nynexst.com>
+#
+
+TMP=mdep$$.tmp
+CC="@CC@"
+RM="rm -f"
+LN="ln"
+MV="mv"
+
+${RM} ${TMP}
+
+trap "${RM} ${TMP}*; exit 1" 1 2 15
+trap "${RM} ${TMP}*; exit 0" 1 2 13
+
+files=
+makefile=
+endmarker=
+magic_string='# DO NOT DELETE'
+append=n
+args=
+
+while [ $# != 0 ]; do
+ if [ "$endmarker"x != x -a "$endmarker" = "$1" ]; then
+ endmarker=
+ else
+ case "$1" in
+ -D*|-I*|-U*)
+# arg may contain single quotes
+ qarg=`echo "$1" | sed "s/'/'\\\\\\\\''/g"`
+ args="$args '$qarg'"
+ ;;
+ -g*|-O*)
+ ;;
+ *)
+ if [ "$endmarker"x = x ]; then
+ case $1 in
+# ignore these flags
+ -w|-o|-cc)
+ shift
+ ;;
+ -v)
+ ;;
+ -s)
+ magic_string="$2"
+ shift
+ ;;
+ -f*)
+ if [ "$1" = "-f-" ]; then
+ makefile="-"
+ elif [ "$1" = "-f" ]; then
+ makefile="$2"
+ shift
+ else
+ echo "$1" | sed 's/^\-f//' >${TMP}arg
+ makefile="`cat ${TMP}arg`"
+ rm -f ${TMP}arg
+ fi
+ ;;
+ --*)
+ endmarker=`echo $1 | sed 's/^\-\-//'`
+ if [ "$endmarker"x = x ]; then
+ endmarker="--"
+ fi
+ ;;
+ -a)
+ append=y
+ ;;
+ -*)
+ echo "Unknown option '$1' ignored" 1>&2
+ ;;
+ *)
+# filename may contain blanks
+ files="$files '$1'"
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ fi
+ shift
+done
+
+if [ x"$files" = x ]; then
+# Nothing to do
+ exit 0
+fi
+
+case "$makefile" in
+ '')
+ if [ -r makefile ]; then
+ makefile=makefile
+ elif [ -r Makefile ]; then
+ makefile=Makefile
+ else
+ echo 'no makefile or Makefile found' 1>&2
+ exit 1
+ fi
+ ;;
+esac
+
+if [ X"$makefile" != X- ]; then
+ if [ x"$append" = xn ]; then
+ sed -e "/^$magic_string/,\$d" < $makefile > $TMP
+ echo "$magic_string" >> $TMP
+ else
+ cp $makefile $TMP
+ fi
+fi
+
+CMD="$CC -M $args $files"
+if [ X"$makefile" != X- ]; then
+ CMD="$CMD >> $TMP"
+fi
+# Do not wildcard expand '*' in args
+eval "$CMD"
+if [ X"$makefile" != X- ]; then
+ $RM ${makefile}.bak
+ $MV $makefile ${makefile}.bak
+ $MV $TMP $makefile
+fi
+
+$RM ${TMP}*
+exit 0