#!/bin/sh # $NetBSD: printdepends,v 1.9 2001/10/14 20:34:53 dmcmahill Exp $ # # Copyright (c) 1999, 2000 Hubert Feyrer # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by Hubert Feyrer for # the NetBSD Project. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # # Print list of pkg dependencies suitable for tsort(1). # Start in /usr/pkgsrc. # # If an argument is given, use it as a file name # to contain any failure messages in each package directory. # if [ ! -z "$1" ]; then brokenfile=$1 else brokenfile=/dev/null fi # /usr/pkgsrc cwd=$PWD # List of all pkgs, from pkgsrc/*/Makefile list=`grep '^[[:space:]]*'SUBDIR */Makefile | sed 's,/Makefile.*=[[:space:]]*,/,'` #list=`grep '^[^#].*'SUBDIR ma*/Makefile | sed 's,/Makefile.*= *,/,'` #list=x11/gnome #list='x11/xteddy x11/xsnow' for pkgdir in $list do if [ ! -d $pkgdir ]; then echo "WARNING: the package directory $pkgdir is listed in" > /dev/stderr echo $pkgdir | sed 's;/.*;/Makefile;g' > /dev/stderr echo "but the directory does not exist. Please fix this!" > /dev/stderr else cd $pkgdir l=`make show-depends-dirs` if [ $? != 0 ]; then echo "WARNING (printdepends): the package in $pkgdir had problem with" > /dev/stderr echo " make show-depends-dirs" > /dev/stderr echo " dependency information in the cache will" > /dev/stderr echo " be dropped for $pkgdir" > /dev/stderr echo "make show-depends-dirs failed:" > $brokenfile make show-depends-dirs >> $brokenfile 2>&1 echo "$pkgdir $pkgdir" else if [ "$l" = "" ]; then # No dependencies echo "$pkgdir $pkgdir" else for depdir in $l do echo "$depdir $pkgdir" done fi fi fi cd $cwd done