#!/bin/sh # Make a Linux ELF shared library # Improved by Sven Goethel # goal: same tool for any machines ... # # First argument is name of output library # without dirname and suffix # second and third are the major and minor number # Rest of arguments are object files LIBDIR=$1 shift 1 LIBRARY=$1 shift 1 LIBMAJOR=$1 shift 1 LIBMINOR=$1 shift 1 LIBBUGFIX=$1 shift 1 OBJECTS=$* # the following provided by Thomas Hiller (Hiller@tu-harburg.d400.de) VERSION="${LIBMAJOR}.${LIBMINOR}.${LIBBUGFIX}" LIBNAME=${LIBRARY}.so # Remove any old files from previous make rm -f ${LIBDIR}/${LIBNAME}* gcc -shared -Wl,-soname,${LIBNAME}.${LIBMAJOR} \ -o ${LIBDIR}/${LIBNAME}.${VERSION} \ ${OBJECTS} ( cd ${LIBDIR} ; ln -s ${LIBNAME}.${VERSION} ${LIBNAME}.${LIBMAJOR}.${LIBMINOR} ) ( cd ${LIBDIR} ; ln -s ${LIBNAME}.${LIBMAJOR}.${LIBMINOR} ${LIBNAME}.${LIBMAJOR} ) ( cd ${LIBDIR} ; ln -s ${LIBNAME}.${LIBMAJOR} ${LIBNAME} ) # Print a reminder about shared libs: echo echo "******Be sure to add" ${LIBDIR}" to your LD_LIBRARY_PATH variable" echo sleep 2 #### NOTES: # One Mesa user reports having to run the "ldconfig -v" command to make # Linux aware of the shared libs.