#!/bin/sh # @(#)liborder 1.1 94/10/31 SMI # # Given a preferred ordering of the object modules in the file $1, and a list # of actual object modules in the directory $2, create a list of # object modules for the "ld" command line. As time goes on, new modules # get created and old ones get deleted without the preferred list getting # updated. # # The algorithm here is to delete unused object modules from the preferred # ordering and then append the new modules to the resulting list. # # (based on ECD "objsort") # objlist=$1 objdir=$2 myname=`basename $0` case $# in 2) ;; *) echo "usage: $myname object-list object-directory" ; exit 1 ;; esac OLD=/tmp/$myname.old.$$ NEW=/tmp/$myname.new.$$ trap 'rm -f /tmp/$myname.*.$$; exit 1' 1 2 15 sed '/^#/d;/^$/d' $objlist > $OLD (cd $objdir && ls *.o) > $NEW { fgrep -f $NEW $OLD fgrep -v -f $OLD $NEW } | sed "s,^,$objdir/," rm -f /tmp/$myname.*.$$