Make this support the same new options as recently added to the mkdep program.
This commit is contained in:
parent
cffe183eef
commit
198a6cd602
|
@ -1,6 +1,6 @@
|
||||||
#!@BSHELL@ -
|
#!@BSHELL@ -
|
||||||
#
|
#
|
||||||
# $NetBSD: host-mkdep.in,v 1.10 2003/06/11 13:20:38 christos Exp $
|
# $NetBSD: host-mkdep.in,v 1.11 2003/11/10 17:57:43 dsl Exp $
|
||||||
#
|
#
|
||||||
# Copyright (c) 1991, 1993
|
# Copyright (c) 1991, 1993
|
||||||
# The Regents of the University of California. All rights reserved.
|
# The Regents of the University of California. All rights reserved.
|
||||||
|
@ -37,11 +37,31 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
APPEND=false
|
APPEND=false
|
||||||
|
MERGE=false
|
||||||
|
OPTIONAL=false
|
||||||
|
AWK_OPTIONAL=
|
||||||
|
QUIET=false
|
||||||
CPPFLAGS=
|
CPPFLAGS=
|
||||||
NEWEXT=.o
|
NEWEXT=.o
|
||||||
OUTFILE=.depend
|
OUTFILE=.depend
|
||||||
SRCS=
|
SRCS=
|
||||||
USAGE="Usage: $0 [-a] [-p] [-f makefile] [flags] file ..."
|
USAGE="Usage: $0 [-a] [-d] [-o] [-p] [-q] [-s suffix] [-f makefile] [flags] file ..."
|
||||||
|
|
||||||
|
set_objlist()
|
||||||
|
{
|
||||||
|
if [ -n "$NEWEXT" ]; then
|
||||||
|
oifs="$IFS"
|
||||||
|
IFS=" ,"
|
||||||
|
set -- $NEWEXT
|
||||||
|
IFS="$oifs"
|
||||||
|
objlist=
|
||||||
|
for suf in $*; do
|
||||||
|
objlist="$objlist${objlist:+ }$file$suf"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
objlist="$file"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
@ -49,14 +69,36 @@ while [ $# -gt 0 ]; do
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
-d) MERGE=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
|
||||||
-f) OUTFILE=$2
|
-f) OUTFILE=$2
|
||||||
shift 2
|
shift 2
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
-o) OPTIONAL=true
|
||||||
|
AWK_OPTIONAL='print ".OPTIONAL:" $0'
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
|
||||||
-p) NEWEXT=
|
-p) NEWEXT=
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
-q) QUIET=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
|
||||||
|
-s) NEWEXT="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
|
||||||
|
-*) $MERGE || break;
|
||||||
|
echo "$USAGE" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
*) break
|
*) break
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -67,51 +109,55 @@ if [ $# = 0 ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
if $MERGE; then
|
||||||
case "$1" in
|
SRCS="$*"
|
||||||
-L) # takes an arg, but ignored
|
else
|
||||||
shift 2
|
while [ $# -gt 0 ]; do
|
||||||
;;
|
case "$1" in
|
||||||
|
-L) # takes an arg, but ignored
|
||||||
-c|-[lLMOW]*) # takes no extra args
|
shift 2
|
||||||
shift
|
|
||||||
;;
|
|
||||||
|
|
||||||
-[IDU]*)
|
|
||||||
CPPFLAGS="$CPPFLAGS $1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
|
|
||||||
-[IDU]|-include|-isystem)
|
|
||||||
CPPFLAGS="$CPPFLAGS $1 $2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
|
|
||||||
-no-cpp-precomp) # This is a Darwin-specific option.
|
|
||||||
CPPFLAGS="$CPPFLAGS $1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
|
|
||||||
-nostdinc*) # This is a gcc/g++ ism; ignore if not gcc/g++
|
|
||||||
case "@CFLAGS@" in
|
|
||||||
*-O2*) # Autoconf puts -O2 when gcc only
|
|
||||||
CPPFLAGS="$CPPFLAGS $1"
|
|
||||||
;;
|
;;
|
||||||
esac
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
|
|
||||||
-*)
|
-c|-[lLMOW]*) # takes no extra args
|
||||||
echo "$0: Unknown option: $1" 1>&2 # all other -options
|
shift
|
||||||
exit 1
|
;;
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
-[IDU]*)
|
||||||
SRCS="$SRCS $1" # source file
|
CPPFLAGS="$CPPFLAGS $1"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
esac
|
|
||||||
done
|
-[IDU]|-include|-isystem)
|
||||||
|
CPPFLAGS="$CPPFLAGS $1 $2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
|
||||||
|
-no-cpp-precomp) # This is a Darwin-specific option.
|
||||||
|
CPPFLAGS="$CPPFLAGS $1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
|
||||||
|
-nostdinc*) # This is a gcc/g++ ism; ignore if not gcc/g++
|
||||||
|
case "@CFLAGS@" in
|
||||||
|
*-O2*) # Autoconf puts -O2 when gcc only
|
||||||
|
CPPFLAGS="$CPPFLAGS $1"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
|
||||||
|
-*)
|
||||||
|
echo "$0: Unknown option: $1" 1>&2 # all other -options
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
SRCS="$SRCS $1" # source file
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "$SRCS" ]; then
|
if [ -z "$SRCS" ]; then
|
||||||
echo "$USAGE" 1>&2
|
echo "$USAGE" 1>&2
|
||||||
|
@ -123,29 +169,51 @@ rm -f $TMP
|
||||||
|
|
||||||
trap 'rm -f $TMP; exit 1' 1 2 3 13 15
|
trap 'rm -f $TMP; exit 1' 1 2 3 13 15
|
||||||
|
|
||||||
for f in $SRCS; do
|
if $MERGE; then
|
||||||
@CPP@ $CPPFLAGS $f | @AWK@ '
|
for f in $SRCS; do
|
||||||
BEGIN {
|
if [ ! -f "$f" ]; then
|
||||||
objfile = "'$f'"
|
if ! $QUIET; then echo "$0: Ignoring $f" >&2; fi
|
||||||
sub(/^.*\//, "", objfile)
|
continue
|
||||||
sub(/\.(c|cc|m)$/, "'$NEWEXT'", objfile)
|
fi
|
||||||
}
|
while IFS=':'; read target dependants; do
|
||||||
/^#/ {
|
IFS=
|
||||||
# Be as tolerant as possible.
|
t1="${target#* }"
|
||||||
sub(/^#(line)? [ 0-9]*\"?/, "")
|
file="${target%.o}"
|
||||||
sub(/^#(pragma).*/, "")
|
if [ "$t" = "$target" -a "$file" != "$target" ]; then
|
||||||
sub(/^<.*/, "")
|
set_objlist $file
|
||||||
sub(/\".*$/, "")
|
target="$objlist"
|
||||||
sub(/ [ 0-9]*$/, "")
|
fi
|
||||||
|
echo "$target:$dependants"
|
||||||
|
if "$OPTIONAL"; then
|
||||||
|
echo ".OPTIONAL:$dependants"
|
||||||
|
fi
|
||||||
|
done <$f
|
||||||
|
done >$TMP
|
||||||
|
else
|
||||||
|
for f in $SRCS; do
|
||||||
|
file=${f##*/}
|
||||||
|
file=${file%.*}
|
||||||
|
set_objlist $file
|
||||||
|
|
||||||
if ($0 in seenfiles) next
|
@CPP@ $CPPFLAGS $f | @AWK@ '
|
||||||
if ($0 ~ /y.tab.c/) next
|
/^#/ {
|
||||||
|
# Be as tolerant as possible.
|
||||||
|
sub(/^#(line)? [ 0-9]*\"?/, "")
|
||||||
|
sub(/^#(pragma).*/, "")
|
||||||
|
sub(/^<.*/, "")
|
||||||
|
sub(/\".*$/, "")
|
||||||
|
sub(/ [ 0-9]*$/, "")
|
||||||
|
|
||||||
seenfiles[$0] = 1
|
if ($0 in seenfiles) next
|
||||||
print objfile ": " $0
|
if ($0 ~ /y.tab.c/) next
|
||||||
}
|
|
||||||
' >> $TMP
|
seenfiles[$0] = 1
|
||||||
done
|
print "'"$objlist"'" ": " $0
|
||||||
|
'"$AWK_OPTIONAL"'
|
||||||
|
}
|
||||||
|
' >> $TMP
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
if $APPEND; then
|
if $APPEND; then
|
||||||
cat $TMP >> $OUTFILE
|
cat $TMP >> $OUTFILE
|
||||||
|
|
Loading…
Reference in New Issue