view lib-src/process-depends.sh @ 384:bbff43aa5eb7 r21-2-7

Import from CVS: tag r21-2-7
author cvs
date Mon, 13 Aug 2007 11:08:24 +0200
parents 131b0175ea99
children
line wrap: on
line source

## Process the output of makedepend.
## Copyright (c) 1994 Amdahl Corporation.
## Written by Ben Wing, December 1994.

## This file is used as part of 'make depend', to produce the
## dependency list for src/Makefile.in.in.

## Unfortunately, makedepend (at least the one that comes as part
## of Open Windows under Solaris) is stupid and doesn't follow the
## documented behavior.  So we have to force the definitions of
## certain options through -D flags (even though it's supposed to
## pick this up), and post-process the output to get rid of stuff
## we don't want.

## The sed stage gets rid of include files in other directories,
## except for lwlib.h (makedepend puts system include files in,
## which is pretty stupid).  We also get rid of some standard
## include files that are in every or pretty much every file
## and where changes in those files don't usually merit
## recompilation of everything.  Finally, we eliminate entirely
## the dependencies for some files (such as unex*.c) that get
## screwed up by makedepend.  We just put those in by hand at
## the top of the dependency list.

## For Mule, we need to do some additional processing: conversion
## to MULESRCDIR (at least so that the include files don't get
## wiped out by the next stage) and removing the mule/ prefix
## from the object file names.

## The awk stage puts one dependency per line.  Then we pass
## the result through sort and uniq (makedepend is supposed
## to not put in duplicate dependencies, but it does so
## occasionally).

## After running 'make depend', verify that the output (in
## depend.out) is reasonable and then replace the stuff in
## Makefile.in.in marked "generated by 'make depend'".

sed -e '
1d
s/ \/[^ ]*\/lwlib\// $(LWLIBSRCDIR)\//g
s/\.\.\/etc\//${srcdir}\/${etcdir}/g
s/^mule\///g
s/ mule\// $(MULESRCDIR)\/mule\//g
s/ \/[^ ]*\.h//g
s/ \/[^ ]*gray//g
s/ [a-z][^ ]*\/[^ ]*\.h//g
s/ lisp\.h//g
s/ lisp-union\.h//g
s/ lisp-disunion\.h//g
s/ lrecord\.h//g
s/ emacsfns\.h//g
s/ symeval\.h//g
s/ symsinit\.h//g
s/ syssignal\.h//g
s/ intl\.h//g
s/ tt_c\.h//g
s/ descrip\.h//g
/^unex/d
/^sgiplay/d
/^Extern/d
/^extw/d
/^[^ ]*\.o:$/d
' | awk '
{ for (i = 2; i <= NF; i++)
  printf ("%s %s\n", $1, $i)
}
' | sort | uniq