|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 2814 (0xafe) Types: TextFile Names: »maketd.sh«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─⟦this⟧ »EUUGD11/euug-87hel/sec8/ease/maketd/maketd.sh«
#! /bin/sh # # maketd - generates file dependencies for makefiles using cc -M # PATH=/usr/local/bin:/bin:/usr/bin:/usr/ucb export PATH progname=`basename $0` # Name of the Makefile which will be edited to add the dependencies if [ $# = 0 ] ; then cat << EOF usage: $progname [-a] [-d] [-m<file>] [-o<directory>] [-D...] [-I...] [-U...] [<file> ...] [-T <file> ...] EOF exit fi DEPFILE=/tmp/mtd3$$.tmp touch $DEPFILE EDDFILE=/tmp/mtd4$$.tmp trap 'rm -f $DEPFILE $EDDFILE ; exit ' 1 2 3 15 # Default values for -a, -d, -m and -o options AOPTION="-e /\/usr\/include/d" DOPTION=0 MAKEFILE=Makefile OBJDIR= # Collect in OPTIONS all options you want to pass on to the C preprocessor. # in SOURCES all files you want to create dependencies for while [ -n "$1" ] ; do case $1 in -a) AOPTION= ;; -d) DOPTION=1 ;; -m*) MAKEFILE=`expr $1 : '-m\(.*\)'` ;; -nonlocalo) echo "$progname: -nonlocalo option obsolete" exit 1 ;; -o*) if [ "$1" = "-o" ] ; then echo "$progname: -o option requires directory name" exit 1 fi OBJDIR=`expr $1 : '-o\(.*\)'` if [ ! -d $OBJDIR ] ; then echo "$progname: -o option: \"$OBJDIR\" is not a directory" exit 1 fi OBJDIR="$OBJDIR/" ;; -[D,I,U]*) OPTIONS="$OPTIONS $1" ;; -T) shift TSOURCES="$*" set "" ;; -*) echo "$progname: option \"$1\" unknown; ignored" ;; *) SOURCES="$SOURCES $1" ;; esac shift done # Run everything through the preprocessor (using cc), sort this # output and remove duplictate lines. If there is no '-a' option # remove all dependencies of the form '/usr/include/<file>'. Cc # will exit quietly if there are no source files. /bin/cc -M $OPTIONS $SOURCES | sort | uniq | \ sed $AOPTION \ -e "s, \./, ,g" \ -e "s,\.\./[a-zA-Z0-9]*/\.\.,\.\.,g" \ -e "s,^,$OBJDIR," >> $DEPFILE /bin/cc -M $OPTIONS $TSOURCES | sort | uniq | \ sed $AOPTION \ -e "s,\.o:,:," \ -e "s, \./, ,g" \ -e "s,\.\./[a-zA-Z0-9]*/\.\.,\.\.,g" \ -e "s,^,$OBJDIR," >> $DEPFILE # If DOPTION then cat file and exit, otherwise edit Makefile if [ $DOPTION -eq 1 ] ; then cat $DEPFILE rm -f $DEPFILE $EDDFILE exit fi # Now start editing the Makefile if [ ! -w $MAKEFILE ] ; then echo "$progname: can't edit $MAKEFILE" rm -f $DEPFILE $EDDFILE exit 1 fi # Make sure we have the "DO NOT DELETE" line in the Makefile cat << EOF >> $MAKEFILE # DO NOT DELETE THIS LINE - maketd DEPENDS ON IT EOF # Build the editor script to edit the Makefile later. cat << EOF > $EDDFILE /# DO NOT DELETE THIS LINE/,\$d \$a # DO NOT DELETE THIS LINE - maketd DEPENDS ON IT # Dependencies generated at: `date` EOF cat $DEPFILE >> $EDDFILE cat << EOF >> $EDDFILE # DO NOT ADD ANYTHING HERE - WILL GO AWAY