The cd←link Program:


	The 'cd←link' program, creates a set of symbolic links
from a specified target directory to the files/directories
stored on a CD-ROM created by 'Makedisc', ISO/Rock Ridge
Formatting Software from Young Minds, Inc..  The program uses a
'cdrom←directory' to search for a translation file (for example,
YMTRANS.TBL).  If found the program uses the translation file to
build a set of symbolic links to the other files (and
directories if the '-r' option is given) in the cdrom←directory,
using the original UNIX-style file and directory names for the
links.  This utility is particularly useful for compiling source
code straight off of the CD-ROM disc or for having access to
known UNIX-style libraries without having to load them off the
CD-ROM onto your hard disk. 

	Usage for cd←link is as follows:

cd←link [-rR] [cdrom←directory] [target directory]

	The -r option will recursively descend the subdirectory
rooted at cdrom←directory creating links at each level.

	The -R option is for use with a Rock Ridge driver and will
create links to an image with Rock Ridge extensions.

	The following example demonstrates how to create the
symbolic links necessary to recreate the directory tree for
gnuplot in the directory '~my←account/gnuplot' (where the CD-ROM
image has been mounted as '/cd-rom←disc'):

cd ~my←account
	
Move to the ~my←account directory.

	In order to support as many end users of CD-ROM as
possible, (some of which are probably unanticipated) the
cd←link utility is provided in source form.  So, if binaries
are not present on your platform, you can create them by
compiling the source code with a standard ANSI C compiler
(available on most UNIX platforms).


	First, copy the source to your current directory:

cp /cd-rom/ym←utils/"cd←link.c;1" cd←link.c

	The quotes around the cd←link.c;1 are necessary to prevent
the shell from interferring with the operation.  Next, enter:

cc -o cd←link cd←link.c

	This will create an executable called cd←link.  On some
platforms it may be necessary to link in a BSD compatibility
library.  Check with your system administrator or operating
system documentation to see if this is the case for your machine.
If so, to get cd←link to compile you should enter the following
command:

cc -o cd←link cd←link.c /usr/lib/libBSD.a

Once you have an executable, enter the following commands:

mkdir gnuplot

Create the gnuplot directory to use in recreating the directory
tree.

cd gnuplot

Move to the gnuplot directory.

../cd←link -r /cd-rom←disc/x11r2/gnuplot

or, if you want to direct output to the gnuplot directory from
elsewhere, try:

cd←link -r /cd-rom←disc/x11r5/gnuplot <PATH>/gnuplot

where <PATH> is the path to the gnuplot directory.

	It will take a little while, but once it's finished,
listing the contents of your gnuplot directory will now show
the files in the gnuplot directory on the CD-ROM, except that
the original UNIX filenames will appear instead of the actual,
translated filenames on the CD-ROM.  If you want to see how
they are different, you save the listings of both your gnuplot
directory and the one on the CD-ROM to files and apply the
'diff' utility.


NOTE:  While all filenames on CD-ROM discs from Young Minds, Inc.
are stored using uppercase letters, some CD-ROM file system
drivers will automatically convert the filename characters to
lowercase.

	The directory 'cdrom←directory' need not reside on a
CD-ROM disc, as long as it contains a copy of all files from
a directory on a CD-ROM disc (and that directory's
subdirectories if you wish to use the -r option).

	Also, while the current version of Makedisc generates
translation table entries for block device nodes, character
device nodes, pipes and sockets (denoted as B, C, P, and S), the
current version of cd←link ignores these entries since there is
as yet no well-defined, machine-independant mapping for these
entries.

NOTE:  While there is no reason why the program could not be
useful in making directory trees of symbolic links to
arbitrary directories, the required translation file only
allows the program to be used on a directory (or directory tree)
that contains correct translation files.

	Once you have successfully created the executable, you
may wish to store it in some commonly accessible location like
'/usr/local/bin'.