diff options
author | Brian Paul <brian.paul@tungstengraphics.com> | 2008-10-06 10:58:16 -0600 |
---|---|---|
committer | Brian Paul <brian.paul@tungstengraphics.com> | 2008-10-06 11:01:31 -0600 |
commit | 145d49838fe268c8524a369d59cb9f771657ad59 (patch) | |
tree | d4cbd3236613c437c41a94755c2cbbc5691a65bd /bin/mklib | |
parent | b0ca50bd38b69593ac683a5e7635fbafa5e06676 (diff) | |
download | external_mesa3d-145d49838fe268c8524a369d59cb9f771657ad59.zip external_mesa3d-145d49838fe268c8524a369d59cb9f771657ad59.tar.gz external_mesa3d-145d49838fe268c8524a369d59cb9f771657ad59.tar.bz2 |
mesa: fix static library construction
If the .a is made of other .a files, extract the objects from the later.
Diffstat (limited to 'bin/mklib')
-rwxr-xr-x | bin/mklib | 24 |
1 files changed, 23 insertions, 1 deletions
@@ -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 |