Commit 59bab328 authored by Howard Chu's avatar Howard Chu
Browse files

Use C preprocessor to generate #line directives that can be parsed to

generate dependencies. setenv MKDEP to this file before running configure.
parent 007b618d
#! /bin/sh
# $OpenLDAP$
## Copyright 2002 The OpenLDAP Foundation
## COPYING RESTRICTIONS APPLY. See COPYRIGHT File in top level directory
## of this package for details.
#
# use the preprocessor, parse #line directives...
#
# The _C89_ELINES env var tells c89 to generate #line directives. It only
# generates them for files that actually contribute non-whitespace. Since
# portable.h is mostly #defines, it preprocesses to blanks, and causes no
# #line directive to be emitted for it.
#
# We work around this with the -C flag which says to preserve comments.
# With this flag, all files generate non-blank output, so all header files
# are included in the output. Because we depend on comments, every file
# must have a comment on its first line to get accurate results.
#
_C89_ELINES=1
export _C89_ELINES
FLAGS=""
FILES=""
for i in $*; do
case $i in
-*) FLAGS="$FLAGS $i" ;;
*) FILES="$FILES $i" ;;
esac
done
for i in $FILES; do
c89 -CE $FLAGS $i | egrep '^#line.*"' | awk '
BEGIN {
file = "'$i'"
n = split(file, parts, "/")
filenm = substr(parts[n], 0, length(parts[n])-1) "o"
}
{
dep = split($3, parts, "\"")
dep = parts[2]
if (dep ~ "^\./.*") dep = substr(dep, 3, length(dep)-2)
if (deps[dep] == 0) printf "%s: %s\n", filenm, dep
deps[dep] = 1
}'
done
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment