Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!tektronix!decvax!ucbvax!ucbcad!ames!hao!oddjob!gargoyle!ihnp4!cbosgd!osu-cis!tut!tut.cis.ohio-state.edu!aargh@bob From: bob@aargh.cis.ohio-state.edu (Bob Sutterfield) Newsgroups: comp.windows.x Subject: Re: Multiple targets with one source Message-ID: <796@tut.cis.ohio-state.edu> Date: Fri, 30-Oct-87 10:51:33 EST Article-I.D.: tut.796 Posted: Fri Oct 30 10:51:33 1987 Date-Received: Thu, 5-Nov-87 06:12:28 EST References: <2496@calmasd.GE.COM> Sender: news@tut.cis.ohio-state.edu Organization: The Ohio State University Dept of Computer & Information Science Lines: 51 Summary: simple lndir script In article <2496@calmasd.GE.COM> jjo@calmasd.UUCP (Jay Olson) writes: > ... a variety of Suns, Vaxen and other assorted machines, many of >which run NFS and can see filesystems on other machines in the >network. Right now, the X11 source is NFS mounted so that both the >Suns and the Vaxen can access it ... We have similar problems. Our master source directory tree is on a Pyramid, but we would like to be able to build stuff on each of several different machines (Sun2, Sun3, soon Sun4, soon HP 330s and 350s, etc.). I find the following shell script "lndir" to be very useful. It makes a tree of links: The directories are real, but all files are symbolic links, usually across NFS to the actual sources. The current exception is that anything named Makefile is copied because that's where most of the machine customizations happen This script still requires some manual postprocessing. For example, you will need to make all your GNU Emacs *.elc files "real" on the new directory tree if you want to be able to use workstations while the central source machine is down. Similarly, emacs/src/config.h and friends are locally-customized. X11 may require manual local machine-specific futzing of Imakefiles, too. But the massive bulk of the work of building a tree of links is done for you. Since the script is fairly simple and very helpful, I've included it here. Hope this helps! ------------------------------------------------- #!/bin/csh -f foreach n ($*) if (-d $n) then mkdir $n:t cd $n:t foreach m ($n/*) /usr/local/bin/lndir $m end cd .. else # Here is where other special cases can be inserted if ($n:t == Makefile) then echo Copying $n cp $n . else ln -s $n endif endif end ------------------------------------------------- -=- Bob Sutterfield, Department of Computer and Information Science The Ohio State University; 2036 Neil Ave. Columbus OH USA 43210-1277 bob@ohio-state.{arpa,csnet} or ...!cbosgd!osu-cis!bob soon: bob@cis.ohio-state.edu