makeobsolete revision 1.18
1#!/bin/sh
2#
3# $NetBSD: makeobsolete,v 1.18 2003/09/21 19:26:05 tron Exp $
4#
5# Print out the obsolete files for a set
6# Usage: makeobsolete [-b] [-x] [-a arch] [-m machine] [-s setsdir] \
7#    [-t target] [setname ...]
8#
9
10# set defaults
11make="${MAKE:-make} -j 1 -f `dirname $0`/Makefile"
12machine=`${make} print_machine`
13arch=`${make} print_machine_arch`
14setd=`pwd`
15nlists="base comp etc games man misc text"
16xlists="xbase xcomp xcontrib xfont xserver xmisc"
17lists=$nlists
18target=./dist
19have_gcc3="`${make} print_have_gcc3`"
20
21# handle args
22while : ; do
23	case $1 in
24	-b*)
25		lists="$xlists $nlists"
26		;;
27	-x*)
28		lists=$xlists;;
29	-a*)
30		arch=$2; shift
31		;;
32	-m*)
33		machine=$2; shift
34		;;
35	-s*)
36		setd=$2; shift
37		;;
38	-t*)
39		target=$2;shift
40		;;
41	-*)
42		cat 1>&2 <<USAGE
43Usage: $0 [-a arch] [-m machine] [-s setsdir] [setname ...]
44	-b		make netbsd + x11 lists
45	-x 		only make x11 lists
46	-a arch		set arch (e.g, m68k, mips, powerpc)	[$arch]
47	-m machine	set machine (e.g, amiga, i386, macppc)	[$machine]
48	-s setsdir	directory to find sets	[$setd]
49	-t target	target directory [$target]
50	[setname ...] 	sets to build
51USAGE
52		exit 1
53		;;
54	*)
55		break
56		;;
57	esac
58	shift
59done
60if [ -n "$1" ]; then
61	lists="$*"
62fi
63
64# Convert mipse[lb] to mips after processing command line arguments.
65arch=`echo $arch | sed s,^mipse.,mips, | sed s,^sh3e.,sh3e,`
66
67if [ ! -d $target ] ; then
68	echo "target directory [$target] doesn't exist"
69	exit 1
70fi
71
72# Automatically add XFree86 version specific sets
73for list in $lists
74do
75 if [ -z "$_lists" ]
76 then
77  _lists=$list
78 else
79  _lists="$_lists $list"
80 fi
81 if [ -d "$setd/lists/$list${x11_version}" ]
82 then
83  _lists="$_lists $list${x11_version}"
84 fi
85done
86lists=$_lists
87unset _lists
88
89for setname in $lists; do
90	file=$target/${setname}
91	(
92	if [ -f $setd/lists/$setname/obsolete.mi ]; then
93		awk -- '{print $1}' $setd/lists/$setname/obsolete.mi
94	fi
95	if [ "$machine" != "$cpu" -a \
96	    -f $setd/lists/$setname/obsolete.${arch} ]; then
97		awk -- '{print $1}' $setd/lists/$setname/obsolete.${arch}
98	fi
99	if [ -f $setd/lists/$setname/obsolete.${machine} ]; then
100		awk -- '{print $1}' $setd/lists/$setname/obsolete.${machine}
101	fi
102	if [ "$have_gcc3" = yes -a -f $setd/lists/$setname/obsolete.gcc ]; then
103		awk -- '{print $1}' $setd/lists/$setname/obsolete.gcc
104	fi
105	) | egrep -v '^#' | sort -ru > $file
106	if [ ! -s $file ] ; then
107		rm $file
108	fi
109
110done
111