| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 | 
							- #!/bin/ksh
 - 
 - # Make an AIX shared library (tricky!!!)
 - # Based on a script from Athanasios G. Gaitatzes (gaitat@vnet.ibm.com)
 - # Improved by Greg Thompson <gregt@visix.com> -gt
 - 
 - #--identification------------------------------------------------------
 - 
 - # $Id: mklib.aix,v 1.2 1999/09/15 15:10:20 brianp Exp $
 - 
 - # $Log: mklib.aix,v $
 - # Revision 1.2  1999/09/15 15:10:20  brianp
 - # added third, tiny version number to arguments
 - #
 - # Revision 1.1  1999/08/19 13:52:56  brianp
 - # initial check-in (post-crash)
 - #
 - 
 - 
 - #--common--------------------------------------------------------------
 - 
 - LIBRARY=$1
 - shift 1
 - 
 - MAJOR=$1
 - shift 1
 - 
 - MINOR=$1
 - shift 1
 - 
 - TINY=$1
 - shift 1
 - 
 - OBJECTS=$*
 - 
 - #--platform------------------------------------------------------------
 - 
 - # BASENAME = LIBRARY without .a suffix
 - BASENAME=`echo ${LIBRARY} | sed "s/\.a//g"`
 - 
 - # Name of exports file
 - EXPFILE=${BASENAME}.exp
 - 
 - # Name of temporary shared lib file
 - OFILE=shr.o
 - ####OFILE=${BASENAME}.o
 - 
 - 
 - # Remove any old files from previous make
 - rm -f ${LIBRARY} ${EXPFILE} ${OFILE}
 - 
 - # Pick a way to use nm -gt
 - NM=${NM-/bin/nm -eC}
 - 
 - # Determine which version of AIX this is
 - AIXVERSION=`uname -v`
 - 
 - # Pick a way to tell the linker there's no entrypoint -gt
 - case ${AIXVERSION}
 - {
 - 	3*)
 - 		ENTRY='-e _nostart'
 - 		;;
 - 	4*)
 - 		ENTRY=-bnoentry
 - 		;;
 - 	*)
 - 		echo "Error in mklib.aix!"
 - 		exit 1
 - 		;;
 - }
 - 
 - 
 - # Other libraries which we may be dependent on.  Since we make the libraries
 - # in the order libGL.a, libaGLU.a, libglut.a just depends on its predecessor.
 - # modified to make otherlibs in the form of -lfoo -gt
 - OTHERLIBS=`ls ../lib/*.a | sed "s/..\/lib\/lib/-l/g" | sed "s/\.a//g"`
 - 
 - ##echo OTHERLIBS are ${OTHERLIBS}
 - 
 - 
 - # Make exports (.exp) file header
 - echo "#! ${LIBRARY}" > ${EXPFILE}
 - 
 - # Append list of exported symbols to exports file -gt
 - case ${AIXVERSION}
 - {
 -     3*)
 - 	${NM} ${OBJECTS} | awk -F'|' '{
 - 	    if ($3 != "extern" || substr($7,1,1) == " ") continue
 - 	    sub ("  *", "", $1); sub ("  *", "", $7)
 - 	    if ( (($7 == ".text") || ($7 == ".data") || ($7 == ".bss"))  \
 - 		    && ( substr($1,1,1) != ".")) {
 - 		if (substr ($1, 1, 7) != "__sinit" &&
 - 			substr ($1, 1, 7) != "__sterm") {
 - 		    if (substr ($1, 1, 5) == "__tf1")
 - 			print (substr ($1, 7))
 - 		    else if (substr ($1, 1, 5) == "__tf9")
 - 			print (substr ($1, 15))
 - 		    else
 - 			print $1
 - 		}
 - 	    }
 - 	}' | sort -u >> ${EXPFILE}
 - 	;;
 - 
 -     4*)
 - 	${NM} ${OBJECTS} | awk '{
 - 	    if ((($2 == "T") || ($2 == "D") || ($2 == "B")) \
 - 		    && ( substr($1,1,1) != ".")) {
 - 		if (substr ($1, 1, 7) != "__sinit" &&
 - 			substr ($1, 1, 7) != "__sterm") {
 - 		    if (substr ($1, 1, 5) == "__tf1")
 - 			print (substr ($1, 7))
 - 		    else if (substr ($1, 1, 5) == "__tf9")
 - 			print (substr ($1, 15))
 - 		    else
 - 			print $1
 - 		}
 - 	    }
 - 	}' | sort -u >> ${EXPFILE}
 - 	;;
 - }
 - 
 - 
 - # This next line is a hack to allow full compatibility with IBM's OpenGL
 - # libraries.  IBM mistakenly exports glLoadIdentity from the libGLU.a
 - # library.  We have to do the same thing.  Problem reported by Yemi Adesanya
 - # (adesanya@afsmail.cern.ch) and Patrick Brown (pbrown@austin.ibm.com)
 - if [ "${BASENAME}" = libGLU ] ; then
 -     echo "glLoadIdentity" >> ${EXPFILE}
 - fi
 - 
 - 
 - # Make the shared lib file
 - cc -o ${OFILE} ${OBJECTS} -L../lib ${OTHERLIBS} -lX11 -lXext -lXmu -lXi -lm -lc -bE:${EXPFILE} -bM:SRE ${ENTRY}
 - 
 - 
 - # Make the .a file
 - ar ruv ${LIBRARY} ${OFILE}
 - 
 - # Put exports file in Mesa lib directory
 - mv ${EXPFILE} ../lib
 - 
 - # Remove OFILE
 - rm -f ${OFILE}
 - 
 - 
 - #NOTES
 - # AIX 4.x /usr/bin/nm -B patch from ssclift@mach.me.queensu.ca (Simon Clift)
 - # Robustified symbol extraction for AIX 3 and 4
 - #   Greg Thompson <gregt@visix.com>
 
 
  |