|  | #!/bin/sh | 
|  | # | 
|  | # Compute the Firefox XPCOM-ABI string -- see | 
|  | #    http://developer.mozilla.org/en/docs/XPCOM_ABI | 
|  | # | 
|  |  | 
|  | # OS_TARGET portion should be one of: | 
|  | #   Linux | 
|  | #   Darwin - Mac OSX | 
|  | #   WINNT - Windows NT, 2000, XP and later | 
|  | #   SunOS - all Solaris versions | 
|  | # | 
|  | OS=`uname -s` | 
|  |  | 
|  | # COMPILER should be one of: | 
|  | #    gcc2 - GNU C++ v2.x | 
|  | #    gcc3 - GNU C++ v3.x or v4.x | 
|  | #    msvc - MS Visual C++ | 
|  | #    n32 - IRIX 6 C++ Compiler | 
|  | #    sunc - Sun C++ Compiler | 
|  | #    ibmc - IBM C++ Compiler | 
|  | # | 
|  | # TODO: figure out how to determine this in a better way | 
|  | case $OS in | 
|  | SunOS) | 
|  | COMPILER=sunc | 
|  | ;; | 
|  | WINNT) | 
|  | COMPILER=msvc | 
|  | ;; | 
|  | *) | 
|  | COMPILER=gcc3 | 
|  | ;; | 
|  | esac | 
|  |  | 
|  | # TARGET_XPCOM_ABI consists of ARCH and COMPILER | 
|  |  | 
|  | # Currently acceptable ARCH values are: | 
|  | #    x86 - i386 and up, 32-bit mode | 
|  | #    x86_64 - AMD64/EMT64 processors in 64-bit mode | 
|  | #    ppc | 
|  | #    alpha | 
|  | #    sparc | 
|  | #    ia64 - Itanium | 
|  | # | 
|  | ARCH=`uname -m` | 
|  | case "$ARCH" in | 
|  | x86_64 | ppc | sparc | alpha | ia64) | 
|  | # these don't need changing | 
|  | ;; | 
|  | athlon | i386 | i486 | i586 | i686 | i86pc) | 
|  | ARCH=x86 | 
|  | ;; | 
|  | *Macintosh*) | 
|  | case `uname -p` in | 
|  | powerpc) | 
|  | ARCH=ppc | 
|  | ;; | 
|  | *) | 
|  | echo "Unknown mac architecture '$ARCH'" >&2 | 
|  | exit 1 | 
|  | ;; | 
|  | esac | 
|  | ;; | 
|  | *) | 
|  | echo "Unknown architecture '$ARCH'" >&2 | 
|  | exit 1 | 
|  | ;; | 
|  | esac | 
|  |  | 
|  | echo ${OS}_$ARCH-$COMPILER >$1 | 
|  | exit 0 |