mesa: fix static library construction
authorBrian Paul <brian.paul@tungstengraphics.com>
Mon, 6 Oct 2008 16:58:16 +0000 (10:58 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Mon, 6 Oct 2008 17:01:31 +0000 (11:01 -0600)
If the .a is made of other .a files, extract the objects from the later.

bin/mklib

index a25d5bfaeb2b7f31b72a6cc3424c42513b2e69a4..d7b740f8e34381dac588c819ed0364c360899233 100755 (executable)
--- a/bin/mklib
+++ b/bin/mklib
@@ -260,9 +260,31 @@ case $ARCH in
                 OPTS=${ALTOPTS}
             fi
             rm -f ${LIBNAME}
+
+           # expand any .a objects into constituent .o files.
+           NEWOBJECTS=""
+           DELETIA=""
+           for OBJ in ${OBJECTS} ; do
+               if [ `expr match $OBJ '.*\.a'` -gt 0 ] ; then
+                   # extract the .o files from this .a archive
+                   FILES=`ar t $OBJ`
+                   ar x $OBJ
+                   NEWOBJECTS="$NEWOBJECTS $FILES"
+                   # keep track of temporary .o files and delete them below
+                   DELETIA="$DELETIA $FILES"
+               else
+                   # ordinary .o file
+                   NEWOBJECTS="$NEWOBJECTS $OBJ"
+               fi
+           done
+
             # make lib
-            ${LINK} ${OPTS} ${LIBNAME} ${OBJECTS}
+            ${LINK} ${OPTS} ${LIBNAME} ${NEWOBJECTS}
             ranlib ${LIBNAME}
+
+           # remove temporary extracted .o files
+           rm -f ${DELETIA}
+
             # finish up
             FINAL_LIBS=${LIBNAME}
         else