summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2006-10-19 20:09:05 +0000
committerBrian Paul <[email protected]>2006-10-19 20:09:05 +0000
commit464fcd0dd84cf4c705b992a087cdcb8b403eb8ef (patch)
tree79b8da581c361c33fd40bc4ca4605482a8b1b760
parentc351858de8e51fa4a6425cf176cc43689189f3ff (diff)
New bin/minstall script - a minimal replacement for 'install'.
Correctly handles symlinks so we can get rid of the COPY_LIBS stuff.
-rwxr-xr-xbin/minstall88
-rw-r--r--configs/aix1
-rw-r--r--configs/default6
-rw-r--r--configs/freebsd3
-rw-r--r--src/glu/Makefile2
-rw-r--r--src/glut/fbdev/Makefile2
-rw-r--r--src/glut/glx/Makefile2
-rw-r--r--src/glw/Makefile2
-rw-r--r--src/mesa/Makefile4
9 files changed, 97 insertions, 13 deletions
diff --git a/bin/minstall b/bin/minstall
new file mode 100755
index 00000000000..9795263f9f1
--- /dev/null
+++ b/bin/minstall
@@ -0,0 +1,88 @@
+#!/bin/sh
+
+
+# A minimal replacement for 'install' that supports installing symbolic links.
+# Only a limited number of options are supported:
+# -d dir Create a directory
+# -m mode Sets a file's mode when installing
+
+
+# If these commands aren't portable, we'll need some "if (arch)" type stuff
+SYMLINK="ln -s"
+MKDIR="mkdir -p"
+RM="rm -f"
+
+MODE=""
+
+if [ "$1" = "-d" ] ; then
+ # make a directory path
+ $MKDIR "$2"
+ exit 0
+fi
+
+if [ "$1" = "-m" ] ; then
+ # set file mode
+ MODE=$2
+ shift 2
+fi
+
+# install file(s) into destination
+if [ $# -ge 2 ] ; then
+
+ # Last cmd line arg is the dest dir
+ for FILE in $@ ; do
+ DEST="$FILE"
+ done
+
+ # Loop over args, moving them to DEST directory
+ I=1
+ for FILE in $@ ; do
+ if [ $I = $# ] ; then
+ # stop, don't want to install $DEST into $DEST
+ exit 0
+ fi
+
+ # determine file's type
+ if [ -h "$FILE" ] ; then
+ #echo $FILE is a symlink
+ # Unfortunately, cp -d isn't universal so we have to
+ # use a work-around.
+
+ # Use ls -l to find the target that the link points to
+ LL=`ls -l "$FILE"`
+ for L in $LL ; do
+ TARGET=$L
+ done
+ #echo $FILE is a symlink pointing to $TARGET
+
+ FILE=`basename "$FILE"`
+ # Go to $DEST and make the link
+ PWDSAVE="$PWD"
+ cd "$DEST" # pushd
+ $RM "$FILE"
+ $SYMLINK "$TARGET" "$FILE"
+ cd "$PWDSAVE" # popd
+
+ elif [ -f "$FILE" ] ; then
+ #echo "$FILE" is a regular file
+ cp "$FILE" "$DEST"
+ if [ $MODE ] ; then
+ FILE=`basename "$FILE"`
+ chmod $MODE "$DEST/$FILE"
+ fi
+ else
+ echo "Unknown type of argument: " "$FILE"
+ exit 1
+ fi
+
+ I=`expr $I + 1`
+ done
+
+ exit 0
+fi
+
+# If we get here, we didn't find anything to do
+echo "Usage:"
+echo " install -d dir Create named directory"
+echo " install [-m mode] file [...] dest Install files in destination"
+
diff --git a/configs/aix b/configs/aix
index 313d4c4fdb3..ebbf5837455 100644
--- a/configs/aix
+++ b/configs/aix
@@ -13,7 +13,6 @@ CXXFLAGS = -O -DAIXV3 -DPTHREADS
# Misc tools and flags
MKLIB_OPTIONS =
-COPY_LIBS = cp -f -h
# Library names (actual file names)
GL_LIB_NAME = libGL.a
diff --git a/configs/default b/configs/default
index 8431fff0b8c..aa6cef9e3cc 100644
--- a/configs/default
+++ b/configs/default
@@ -27,8 +27,7 @@ MKLIB_OPTIONS =
MKDEP = makedepend
MKDEP_OPTIONS = -fdepend
MAKE = make
-INSTALL = install
-COPY_LIBS = cp -f -d
+INSTALL = $(TOP)/bin/minstall
# Python and flags (generally only needed by the developers)
PYTHON2 = python
@@ -79,7 +78,8 @@ APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
# Installation directories (for make install)
-INSTALL_DIR = /usr/local
+#INSTALL_DIR = /usr/local
+INSTALL_DIR = /tmp/mesa2
DRI_DRIVER_INSTALL_DIR = /usr/X11R6/lib/modules/dri
# Where libGL will look for DRI hardware drivers
diff --git a/configs/freebsd b/configs/freebsd
index 38806ab946d..db7dd3b78a0 100644
--- a/configs/freebsd
+++ b/configs/freebsd
@@ -9,9 +9,6 @@ CC = cc
CXX = c++
MAKE = gmake
-# cp -d not supported on FreeBSD (see bug 4435)
-COPY_LIBS = cp -f
-
OPT_FLAGS = -O2
PIC_FLAGS = -fPIC
diff --git a/src/glu/Makefile b/src/glu/Makefile
index ca9ad39442c..5ddc50946aa 100644
--- a/src/glu/Makefile
+++ b/src/glu/Makefile
@@ -15,7 +15,7 @@ default: $(TOP)/configs/current
install:
$(INSTALL) -d $(INSTALL_DIR)/$(LIB_DIR)
- $(COPY_LIBS) $(TOP)/$(LIB_DIR)/libGLU.* $(INSTALL_DIR)/$(LIB_DIR)
+ $(INSTALL) $(TOP)/$(LIB_DIR)/libGLU.* $(INSTALL_DIR)/$(LIB_DIR)
clean:
@for dir in $(SUBDIRS) ; do \
diff --git a/src/glut/fbdev/Makefile b/src/glut/fbdev/Makefile
index 11d95665adb..254ff8c098f 100644
--- a/src/glut/fbdev/Makefile
+++ b/src/glut/fbdev/Makefile
@@ -72,7 +72,7 @@ install:
$(INSTALL) -d $(INSTALL_DIR)/include/GL
$(INSTALL) -d $(INSTALL_DIR)/$(LIB_DIR)
$(INSTALL) -m 644 $(TOP)/include/GL/glut.h $(INSTALL_DIR)/include/GL
- $(COPY_LIBS) $(TOP)/$(LIB_DIR)/libglut* $(INSTALL_DIR)/$(LIB_DIR)
+ $(INSTALL) $(TOP)/$(LIB_DIR)/libglut* $(INSTALL_DIR)/$(LIB_DIR)
# Run 'make -f Makefile.solo dep' to update the dependencies if you change
# what's included by any source file.
diff --git a/src/glut/glx/Makefile b/src/glut/glx/Makefile
index 6fac92fa0cb..7e1d56b3278 100644
--- a/src/glut/glx/Makefile
+++ b/src/glut/glx/Makefile
@@ -100,7 +100,7 @@ install:
$(INSTALL) -d $(INSTALL_DIR)/include/GL
$(INSTALL) -d $(INSTALL_DIR)/$(LIB_DIR)
$(INSTALL) -m 644 $(TOP)/include/GL/glut.h $(INSTALL_DIR)/include/GL
- $(COPY_LIBS) $(TOP)/$(LIB_DIR)/libglut* $(INSTALL_DIR)/$(LIB_DIR)
+ $(INSTALL) $(TOP)/$(LIB_DIR)/libglut* $(INSTALL_DIR)/$(LIB_DIR)
clean:
diff --git a/src/glw/Makefile b/src/glw/Makefile
index 356351a1ced..5228cbbb721 100644
--- a/src/glw/Makefile
+++ b/src/glw/Makefile
@@ -29,7 +29,7 @@ install:
$(INSTALL) -d $(INSTALL_DIR)/include/GL
$(INSTALL) -d $(INSTALL_DIR)/$(LIB_DIR)
$(INSTALL) -m 644 *.h $(INSTALL_DIR)/include/GL
- $(COPY_LIBS) $(TOP)/$(LIB_DIR)/libGLw.* $(INSTALL_DIR)/$(LIB_DIR)
+ $(INSTALL) $(TOP)/$(LIB_DIR)/libGLw.* $(INSTALL_DIR)/$(LIB_DIR)
clean:
-rm depend depend.bak
diff --git a/src/mesa/Makefile b/src/mesa/Makefile
index e1046bb8ad7..3f65ecf5cc9 100644
--- a/src/mesa/Makefile
+++ b/src/mesa/Makefile
@@ -155,10 +155,10 @@ install: default
$(INSTALL) -d $(INSTALL_DIR)/$(LIB_DIR)
$(INSTALL) -m 644 $(TOP)/include/GL/*.h $(INSTALL_DIR)/include/GL
@if [ -e $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) ]; then \
- $(COPY_LIBS) $(TOP)/$(LIB_DIR)/libGL* $(INSTALL_DIR)/$(LIB_DIR); \
+ $(INSTALL) $(TOP)/$(LIB_DIR)/libGL* $(INSTALL_DIR)/$(LIB_DIR); \
fi
@if [ -e $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME) ]; then \
- $(COPY_LIBS) $(TOP)/$(LIB_DIR)/libOSMesa* $(INSTALL_DIR)/$(LIB_DIR); \
+ $(INSTALL) $(TOP)/$(LIB_DIR)/libOSMesa* $(INSTALL_DIR)/$(LIB_DIR); \
fi
@if [ "${DRIVER_DIRS}" = "dri" ] ; then \
cd drivers/dri ; $(MAKE) install ; \