#!/usr/bin/env tclsh # try to find out what a package requires # takes one arg: name of pkg (eg x11/kde3) # set this to your pkgsrc directory #cd /mnt/B/hclsmith/pkgsrc/pkgsrc cd /usr/pkgsrc if {[catch {set env(TMP)} tmp] && [catch {set env(TEMP)} tmp]} { set tmp /tmp } set targ ZZfoo[pid] set tf $tmp/$targ set f [open $tf w] puts $f ".include \"./Makefile\"" puts $f "$targ:" puts $f "\t@echo '\$(DEPENDS)'" close $f set stk $argv while {[llength $stk]} { set pkg [lindex $stk 0] set stk [lrange $stk 1 end] if {[info exists Z($pkg)]} { continue } set Z($pkg) {} puts stderr "$pkg ..." cd $pkg set raw [exec make -f $tf $targ] #puts stderr $raw foreach i [split $raw] { set i [string range $i [expr {3+[string last ../ $i]}] end] if {-1==[string last / $i]} { set i [string range $pkg 0 [string last / $pkg]]$i } lappend stk $i lappend Z($pkg) $i } cd ../.. } file delete $tf # tsort output foreach i [array names Z] { foreach j $Z($i) { puts $i\t$j } } #eof
Hosted by www.Geocities.ws