mesa: Remove gl_light_attrib::_Flags.
[mesa.git] / bin / mklib
index c2760e5d892724b0c6a065695c1f3752605ab43f..56e0b36d146233aa7060f55f77b0ed3461be315b 100755 (executable)
--- a/bin/mklib
+++ b/bin/mklib
@@ -260,7 +260,7 @@ if [ $STATIC = 1 ]; then
     NEWOBJECTS=""
     for OBJ in $OBJECTS ; do
        case $OBJ in
-           -Wl,*)
+           -Wl,*|-L*|-l*)
                echo "mklib: warning: ignoring $OBJ for static library"
                ;;
            *)
@@ -307,7 +307,7 @@ fi
 #
 case $ARCH in
 
-    'Linux' | 'OpenBSD' | 'DragonFly' | 'GNU' | GNU/*)
+    'Linux' | 'OpenBSD' | 'DragonFly' | 'GNU' | GNU/* | 'NetBSD')
        # we assume gcc
 
        if [ "x$LINK" = "x" ] ; then
@@ -574,20 +574,6 @@ case $ARCH in
        fi
        ;;
 
-    'NetBSD')
-        if [ $STATIC = 1 ] ; then
-           LIBNAME="lib${LIBNAME}_pic.a"
-           echo "mklib: Making NetBSD PIC static library: " ${LIBNAME}
-           FINAL_LIBS=`make_ar_static_lib cq 1 ${LIBNAME} ${OBJECTS}`
-       else
-           LIBNAME="lib${LIBNAME}.so.${MAJOR}.${MINOR}"
-           echo "mklib: Making NetBSD PIC shared library: " ${LIBNAME}
-           rm -f ${LIBNAME}
-           ld -x -Bshareable -Bforcearchive -o ${LIBNAME} ${OBJECTS}
-           FINAL_LIBS=${LIBNAME}
-       fi
-       ;;
-
     'IRIX' | 'IRIX64')
         if [ $STATIC = 1 ] ; then
            LIBNAME="lib${LIBNAME}.a"
@@ -781,9 +767,8 @@ case $ARCH in
                 OPTS="${OPTS} -exported_symbols_list ${EXPORTS}"
             fi
 
-            LINKNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}"
-            LINKNAME2="lib${LIBNAME}.${LIBSUFFIX}"
-            LIBNAME="lib${LIBNAME}.${MAJOR}.${MINOR}.${LIBSUFFIX}"
+            LINKNAME="lib${LIBNAME}.${LIBSUFFIX}"
+            LIBNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}"
 
            # examine first object to determine ABI
            set ${OBJECTS}
@@ -796,9 +781,6 @@ case $ARCH in
                 OPTS=${ALTOPTS}
             fi
 
-           # XXX can we always add -isysroot /Developer/SDKs/MacOSX10.4u.sdk
-           # to OPTS here?
-
            # determine linker
            if [ $CPLUSPLUS = 1 ] ; then
                LINK="g++"
@@ -810,8 +792,7 @@ case $ARCH in
 
             ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
             ln -s ${LIBNAME} ${LINKNAME}
-            ln -s ${LIBNAME} ${LINKNAME2}
-            FINAL_LIBS="${LIBNAME} ${LINKNAME} ${LINKNAME2}"
+            FINAL_LIBS="${LIBNAME} ${LINKNAME}"
         fi
         ;;
 
@@ -821,22 +802,6 @@ case $ARCH in
         FINAL_LIBS=`make_ar_static_lib -ru 0 ${LIBNAME} ${OBJECTS}`
        ;;
 
-    'BeOS')
-        if [ $STATIC = 1 ] ; then
-            LIBNAME="lib${LIBNAME}.a"
-            echo "mklib: Making BeOS static library: " ${LIBNAME}
-            FINAL_LIBS=`make_ar_static_lib -cru 0 ${LIBNAME} ${OBJECTS}`
-        else
-           LIBNAME="lib${LIBNAME}.so"
-           echo "mklib: Making BeOS shared library: " ${LIBNAME}
-           gcc -nostart -Xlinker "-soname=${LIBNAME}" -L/Be/develop/lib/x86 -lbe ${DEPS} ${OBJECTS} -o "${LIBNAME}"
-           mimeset -f "${LIBNAME}"
-           # XXX remove the Mesa3D stuff here since mklib isn't mesa-specific.
-           setversion "${LIBNAME}" -app ${MAJOR} ${MINOR} ${PATCH} -short "Powered by Mesa3D!" -long "Powered by Mesa3D!"
-       fi
-       FINAL_LIBS=${LIBNAME}
-       ;;
-
     'QNX')
        LIBNAME="lib${LIBNAME}.a"
        echo "mklib: Making QNX library: " ${LIBNAME}
@@ -930,6 +895,16 @@ case $ARCH in
 
      CYGWIN*)
        # GCC-based environment
+
+       if [ "x$LINK" = "x" ] ; then
+           # -linker was not specified so set default link command now
+            if [ $CPLUSPLUS = 1 ] ; then
+                LINK=g++
+            else
+                LINK=gcc
+            fi
+       fi
+
        if [ $NOPREFIX = 1 ] ; then
            # No "lib" or ".so" part
            echo "mklib: Making CYGWIN shared library: " ${LIBNAME}
@@ -938,7 +913,7 @@ case $ARCH in
                 OPTS=${ALTOPTS}
             fi
            rm -f ${LIBNAME}
-           ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
+           ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS} || exit $?
            FINAL_LIBS=${LIBNAME}
         else
        CYGNAME="cyg${LIBNAME}"     # prefix with "cyg"
@@ -946,7 +921,7 @@ case $ARCH in
 
         if [ $STATIC = 1 ] ; then
            LIBNAME=${LIBNAME}.a
-            echo "mklib: Making" $ARCH "static library: " ${LIBNAME}
+            echo "mklib: Making CYGWIN static library: " ${LIBNAME}
             OPTS="-ru"
             if [ "${ALTOPTS}" ] ; then
                 OPTS=${ALTOPTS}
@@ -964,13 +939,7 @@ case $ARCH in
             if [ "${ALTOPTS}" ] ; then
                 OPTS=${ALTOPTS}
             fi
-            echo "mklib: Making" $ARCH "shared library: " ${CYGNAME}-${MAJOR}.dll
-
-            if [ $CPLUSPLUS = 1 ] ; then
-                LINK="g++"
-            else
-                LINK="gcc"
-            fi
+            echo "mklib: Making CYGWIN shared library: " ${CYGNAME}-${MAJOR}.dll
 
             # rm any old libs
             rm -f ${CYGNAME}-${MAJOR}.dll
@@ -979,12 +948,7 @@ case $ARCH in
             rm -f ${LIBNAME}.a
 
             # make lib
-            ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS}
-            # make build fail if link failed
-            es=$?
-            if [ "$es" -ne "0" ]; then
-                exit $es
-            fi
+            ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS} || exit $?
             # make usual symlinks
             ln -s ${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a
             # finish up
@@ -995,6 +959,43 @@ case $ARCH in
         fi
        ;;
 
+       'Haiku')
+               if [ $STATIC = 1 ] ; then
+                       LIBNAME="lib${LIBNAME}.a"
+                       if [ "x$LINK" = "x" ] ; then
+                               # -linker was not specified so set default link command now
+                               if [ $CPLUSPLUS = 1 ] ; then
+                                       LINK=g++
+                               else
+                                       LINK=gcc
+                               fi
+                       fi
+
+                       OPTS="-ru"
+                       if [ "${ALTOPTS}" ] ; then
+                               OPTS=${ALTOPTS}
+                       fi
+
+                       echo "mklib: Making static library for Haiku: " ${LIBNAME}
+
+                       # expand .a into .o files
+                       NEW_OBJECTS=`expand_archives ${LIBNAME}.obj $OBJECTS`
+
+                       # make static lib
+                       FINAL_LIBS=`make_ar_static_lib ${OPTS} 1 ${LIBNAME} ${NEW_OBJECTS}`
+
+                       # remove temporary extracted .o files
+                       rm -rf ${LIBNAME}.obj
+               else
+                       LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
+                       OPTS="-shared"
+
+                       echo "mklib: Making shared library for Haiku: " ${LIBNAME}
+                       ${LINK} ${OPTS} ${LDFLAGS} ${OBJECTS} ${DEPS} -o ${LIBNAME}
+                       FINAL_LIBS="${LIBNAME}"
+               fi
+       ;;
+
     'example')
        # If you're adding support for a new architecture, you can
        # start with this:
@@ -1024,4 +1025,9 @@ if [ ${INSTALLDIR} != "." ] ; then
     echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR}
     test -d ${INSTALLDIR} || mkdir -p ${INSTALLDIR}
     mv ${FINAL_LIBS} ${INSTALLDIR}/
+
+    if [ "x${FINAL_BINS}" != "x" ] ; then
+        echo "mklib: Installing" ${FINAL_BINS} "in" ${INSTALLDIR}
+        mv ${FINAL_BINS} ${INSTALLDIR}/
+    fi
 fi