4 # A minimal replacement for 'install' that supports installing symbolic links.
5 # Only a limited number of options are supported:
6 # -d dir Create a directory
7 # -m mode Sets a file's mode when installing
10 # If these commands aren't portable, we'll need some "if (arch)" type stuff
17 if [ "$1" = "-d" ] ; then
18 # make a directory path
23 if [ "$1" = "-m" ] ; then
29 # install file(s) into destination
30 if [ $# -ge 2 ] ; then
32 # Last cmd line arg is the dest dir
37 # Loop over args, moving them to DEST directory
41 # stop, don't want to install $DEST into $DEST
47 # On CYGWIN, because DLLs are loaded by the native Win32 loader,
48 # they are installed in the executable path. Stub libraries used
49 # only for linking are installed in the library path
66 # determine file's type
67 if [ -h "$FILE" ] ; then
68 #echo $FILE is a symlink
69 # Unfortunately, cp -d isn't universal so we have to
72 # Use ls -l to find the target that the link points to
77 #echo $FILE is a symlink pointing to $TARGET
79 FILE
=`basename "$FILE"`
80 # Go to $DEST and make the link
83 $SYMLINK "$TARGET" "$FILE"
86 elif [ -f "$FILE" ] ; then
87 #echo "$FILE" is a regular file
88 # Only copy if the files differ
89 if ! cmp -s $FILE $DEST/`basename $FILE`; then
90 $RM "$DEST/`basename $FILE`"
94 FILE
=`basename "$FILE"`
95 chmod $MODE "$DEST/$FILE"
98 echo "Unknown type of argument: " "$FILE"
108 # If we get here, we didn't find anything to do
110 echo " install -d dir Create named directory"
111 echo " install [-m mode] file [...] dest Install files in destination"