cdrtools/conf/mkdep-msc-interix.sh

81 lines
2.1 KiB
Bash
Raw Normal View History

2025-06-15 04:19:58 +08:00
#!/bin/sh
#ident "@(#)mkdep-msc-interix.sh 1.4 07/04/24 "
###########################################################################
# Copyright 1999,2006-2007 by J. Schilling
###########################################################################
#
# Create dependency list with Microsoft's cl from Interix
#
###########################################################################
#
# This script will probably not work correctly with a list of C-files
# but as we don't need it with 'smake' or 'gmake' it seems to be sufficient.
#
###########################################################################
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License"). You may not use this file except in compliance
# with the License.
#
# See the file CDDL.Schily.txt in this distribution for details.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file CDDL.Schily.txt from this distribution.
###########################################################################
FILES=
for i in "$@"; do
case "$i" in
-*) # ignore options
;;
*.c | *.C | *.cc | *.cxx | *.cpp)
if [ ! -z "$FILES" ]; then
FILES="$FILES "
fi
# base name from $i
base=`echo $i | sed -e 's;[^/]*/;;'`
FILES="$FILES$base"
;;
esac
done
OFILES=`echo "$FILES" | sed -e 's;\([^.]*\)\.[cC]$;\1.obj;g' -e 's;\([^.]*\)\.cc$;\1.obj;g' -e 's;\([^.]*\)\.c..$;\1.obj;g' `
echo ".SPACE_IN_NAMES: true"
cl.exe -E -nologo 2> /dev/null "$@" | grep '^\#line' | cut -d\" -f2 | sort -u | \
sed '
s,^a:,/dev/fs/A,
s,^b:,/dev/fs/B,
s,^c:,/dev/fs/C,
s,^d:,/dev/fs/D,
s,^e:,/dev/fs/E,
s,^f:,/dev/fs/F,
s,^g:,/dev/fs/G,
s,^h:,/dev/fs/H,
s,^i:,/dev/fs/I,
s,^j:,/dev/fs/J,
s,^k:,/dev/fs/K,
s,^l:,/dev/fs/L,
s,^m:,/dev/fs/M,
s,^n:,/dev/fs/N,
s,^o:,/dev/fs/O,
s,^p:,/dev/fs/P,
s,^q:,/dev/fs/Q,
s,^r:,/dev/fs/R,
s,^s:,/dev/fs/S,
s,^t:,/dev/fs/T,
s,^u:,/dev/fs/U,
s,^v:,/dev/fs/V,
s,^w:,/dev/fs/W,
s,^x:,/dev/fs/X,
s,^y:,/dev/fs/Y,
s,^z:,/dev/fs/Z,
s,\([A-Z]\):,/dev/fs/\1,
s,\\\\,/,g
s/\([^\]\) /\1\\ /g' | sed -e "s;^;$OFILES: ;"
echo ".SPACE_IN_NAMES:"