X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=build%2Fmkdep;h=6e54d035a50824f84c06e38cc2fe4fdb3b0cd88e;hb=8091aedc76b3ee896bb4d68bc958b949aaa6d8c4;hp=3fb90cc48bfeaa109f14d262256f19de513a29bb;hpb=758e1774c0a15d99d5ba04b5976412a878ae08c2;p=openldap diff --git a/build/mkdep b/build/mkdep index 3fb90cc48b..6e54d035a5 100755 --- a/build/mkdep +++ b/build/mkdep @@ -1,5 +1,10 @@ -#!/bin/sh - +#! /bin/sh - +# $OpenLDAP$ +## Copyright 1998-2000 The OpenLDAP Foundation +## COPYING RESTRICTIONS APPLY. See COPYRIGHT File in top level directory +## of this package for details. # +# Portions # Copyright (c) 1987 Regents of the University of California. # All rights reserved. # @@ -25,29 +30,52 @@ set -e # exit immediately if any errors occur MAKE=Makefile # default makefile name is "Makefile" NOSLASH="no" # by default, / dependencies are included -CC=cc # default compiler is cc +SRCDIR="" +SED=cat + +: ${CC=cc} # use cc by default + +# We generally set these via the command line options +: ${MKDEP_CC=$CC} # select default compiler to generate dependencies +: ${MKDEP_CFLAGS="-M"} # cc -M usually produces dependencies while : do case "$1" in + # the -s flag removes dependencies to files that begin with / + -s) + NOSLASH=yes; + shift ;; + # -f allows you to select a makefile name -f) MAKE=$2 shift; shift ;; - # -c allows you to select a compiler to use (default is cc) + # -d allows you to select a VPATH directory + -d) + SRCDIR=$2 + shift; shift ;; + + # -c allows you to override the compiler used to generate dependencies -c) - CC=$2 + MKDEP_CC=$2 + shift; shift ;; + + # -m allows you to override the compiler flags used to generate + # dependencies. + -m) + MKDEP_CFLAGS=$2 shift; shift ;; # the -p flag produces "program: program.c" style dependencies # so .o's don't get produced -p) - SED='s;\.o;;' + SED='sed -e s;\.o;;' shift ;; - # the -s flag removes dependencies to files that begin with / - -s) - NOSLASH=yes; + # the -l flag produces libtool compatible dependencies + -l) + SED='sed -e s;\.o:;.lo:;' shift ;; # -*) shift ;; @@ -57,19 +85,19 @@ while : esac done -if [ $# = 0 ] ; then - echo 'usage: mkdep [-p] [-s] [-c cc] [-f makefile] [flags] file ...' +if test $# = 0 ; then + echo 'usage: mkdep [-p] [-s] [-c cc] [-m flags] [-f makefile] [-d srcdir] [cppflags] file ...' exit 1 fi -if [ ! -w $MAKE ]; then +if test ! -w $MAKE ; then echo "mkdep: no writeable file \"$MAKE\"" exit 1 fi TMP=/tmp/mkdep$$ -trap 'rm -f $TMP ; exit 1' 1 2 3 13 15 +trap 'rm -f $TMP.sed $TMP ; exit 1' 1 2 3 13 15 cp $MAKE ${MAKE}.bak @@ -89,38 +117,60 @@ _EOF_ # egrep '^#include[ ]*".*"' /dev/null $* | # sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' | -$CC -M $* | -sed " - s; \./; ;g - $SED" | +if test "x$SRCDIR" = "x" ; then + files=$* +else + files= + for i in $* ; do + if test -f $i ; then + files="$files $i" + elif test -f $SRCDIR/$i ; then + files="$files $SRCDIR/$i" + else + files="$files $i" + fi + done + + MKDEP_CFLAGS="$MKDEP_CFLAGS -I$SRCDIR" +fi + +cat << _EOF_ >> $TMP + +# +# files: $* +# command: $MKDEP_CC $MKDEP_CFLAGS $files +# + +_EOF_ + +$MKDEP_CC $MKDEP_CFLAGS $files | \ + sed -e 's; \./; ;g' -e 's/ :/:/' | \ + $SED > $TMP.sed +# do not pipe to awk. SGI awk wants a filename as argument. +# (or '-', but I do not know if all other awks support that.) awk ' -$1 ~ /:/ { +$1 ~ /:$/ { filenm=$1 - dep=$2 + dep=substr($0, length(filenm)+1) } -$1 !~ /:/ { - dep=$1 +$1 !~ /:$/ { + dep=$0 } /.*/ { - if ( noslash = "yes" && dep ~ /^\// ) next - if (filenm != prev) { - if (rec != "") - print rec; - rec = filenm " " dep; - prev = filenm; + if ( length(filenm) < 2 ) next + if ( filenm ~ /:.*:$/ ) next + split(dep, depends, " ") + for(d in depends) { + dfile = depends[d] + if ( length(dfile) < 2 ) continue + if ( dfile ~ /:/ ) continue + if (( noslash == "yes") && (dfile ~ /^\// )) continue + rec = filenm " " dfile + print rec } - else { - if (length(rec dep) > 78) { - print rec; - rec = filenm " " dep; - } - else - rec = rec " " dep - } - } -END { - print rec -}' noslash="$NOSLASH" >> $TMP +} +' noslash="$NOSLASH" $TMP.sed >> $TMP + cat << _EOF_ >> $TMP @@ -129,5 +179,5 @@ _EOF_ # copy to preserve permissions cp $TMP $MAKE -rm -f ${MAKE}.bak $TMP +rm -f ${MAKE}.bak $TMP.sed $TMP exit 0