mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-09 02:52:04 +08:00
3b15c6f10f
Remove back-perl, back-sql, back-tcl from branch as they have yet to be updated. Additional changes are needed prior to release of alpha4.
184 lines
4.3 KiB
Bash
Executable File
184 lines
4.3 KiB
Bash
Executable File
#! /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.
|
|
#
|
|
# Redistribution and use in source and binary forms are permitted
|
|
# provided that the above copyright notice and this paragraph are
|
|
# duplicated in all such forms and that any documentation,
|
|
# advertising materials, and other materials related to such
|
|
# distribution and use acknowledge that the software was developed
|
|
# by the University of California, Berkeley. The name of the
|
|
# University may not be used to endorse or promote products derived
|
|
# from this software without specific prior written permission.
|
|
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
|
|
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
|
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
#
|
|
# @(#)mkdep.sh 5.12 (Berkeley) 6/30/88
|
|
#
|
|
# We now use whatever path is already set by the invoker
|
|
#PATH=/bin:/usr/bin:/usr/ucb
|
|
#export PATH
|
|
|
|
set -e # exit immediately if any errors occur
|
|
|
|
MAKE=Makefile # default makefile name is "Makefile"
|
|
NOSLASH="no" # by default, / dependencies are included
|
|
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 ;;
|
|
|
|
# -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)
|
|
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='sed -e s;\.o;;'
|
|
shift ;;
|
|
|
|
# the -l flag produces libtool compatible dependencies
|
|
-l)
|
|
SED='sed -e s;\.o:;.lo:;'
|
|
shift ;;
|
|
|
|
# -*) shift ;;
|
|
|
|
*)
|
|
break ;;
|
|
esac
|
|
done
|
|
|
|
if test $# = 0 ; then
|
|
echo 'usage: mkdep [-p] [-s] [-c cc] [-m flags] [-f makefile] [-d srcdir] [cppflags] file ...'
|
|
exit 1
|
|
fi
|
|
|
|
if test ! -w $MAKE ; then
|
|
echo "mkdep: no writeable file \"$MAKE\""
|
|
exit 1
|
|
fi
|
|
|
|
TMP=/tmp/mkdep$$
|
|
|
|
trap 'rm -f $TMP.sed $TMP ; exit 1' 1 2 3 13 15
|
|
|
|
cp $MAKE ${MAKE}.bak
|
|
|
|
sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP
|
|
|
|
cat << _EOF_ >> $TMP
|
|
# DO NOT DELETE THIS LINE -- mkdep uses it.
|
|
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
|
|
|
|
_EOF_
|
|
|
|
# If your compiler doesn't have -M, add it. If you can't, the next two
|
|
# lines will try and replace the "cc -M". The real problem is that this
|
|
# hack can't deal with anything that requires a search path, and doesn't
|
|
# even try for anything using bracket (<>) syntax.
|
|
#
|
|
# egrep '^#include[ ]*".*"' /dev/null $* |
|
|
# sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' |
|
|
|
|
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' | \
|
|
$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 ~ /:$/ {
|
|
filenm=$1
|
|
dep=substr($0, length(filenm)+1)
|
|
}
|
|
$1 !~ /:$/ {
|
|
dep=$0
|
|
}
|
|
/.*/ {
|
|
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
|
|
}
|
|
}
|
|
' noslash="$NOSLASH" $TMP.sed >> $TMP
|
|
|
|
|
|
cat << _EOF_ >> $TMP
|
|
|
|
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
|
|
_EOF_
|
|
|
|
# copy to preserve permissions
|
|
cp $TMP $MAKE
|
|
rm -f ${MAKE}.bak $TMP.sed $TMP
|
|
exit 0
|