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>
|