summaryrefslogtreecommitdiff
path: root/bin/mklib
diff options
context:
space:
mode:
Diffstat (limited to 'bin/mklib')
-rwxr-xr-xbin/mklib44
1 files changed, 32 insertions, 12 deletions
diff --git a/bin/mklib b/bin/mklib
index a3e826abac..2fd95ba775 100755
--- a/bin/mklib
+++ b/bin/mklib
@@ -176,6 +176,23 @@ if [ ${ARCH} = "auto" ] ; then
fi
+if [ $STATIC = 1 ]; then
+ # filter out linker options inside object list
+ NEWOBJECTS=""
+ for OBJ in $OBJECTS ; do
+ case $OBJ in
+ -Wl,*)
+ echo "mklib: warning: ignoring $OBJ for static library"
+ ;;
+ *)
+ NEWOBJECTS="$NEWOBJECTS $OBJ"
+ ;;
+ esac
+ done
+ OBJECTS=$NEWOBJECTS
+fi
+
+
#
# Error checking
#
@@ -264,18 +281,21 @@ case $ARCH in
# 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
+ for OBJ in $OBJECTS ; do
+ case $OBJ in
+ *.a)
+ # 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"
+ ;;
+ *)
+ # ordinary .o file
+ NEWOBJECTS="$NEWOBJECTS $OBJ"
+ ;;
+ esac
done
# make lib