Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > acefbb9a690f575102f5a72a8dde2571 > files > 2

firefox-ext-bonjourfoxy-0.4.1-1mdv2009.0.src.rpm

#!/bin/bash

findbasedir() {
    oldpwd=$PWD
    cd `dirname $0`
    newpwd=$PWD
    cd $oldpwd
    echo $newpwd
}

CC=g++
UNAME=`uname -s 2>/dev/null | tr 'a-z' 'A-Z' || echo not`
UNAMEM=`uname -m || echo not`
if [ ${UNAMEM} == "x86_64" ]; then
    LIB_PATH=/usr/lib64
else
    LIB_PATH=/usr/lib
fi
XR_VERSION=1.9
XR_RUN_PATH=${LIB_PATH}/xulrunner-${XR_VERSION}
XR_LIB_PATH=${LIB_PATH}/xulrunner-sdk-${XR_VERSION}
XR_INC_PATH=/usr/include/xulrunner-sdk-${XR_VERSION}
XR_IDL_PATH=/usr/share/idl/xulrunner-sdk-${XR_VERSION}

UL_XR_SDK_PATH=/usr/include/xulrunner-1.9
DP_XR_SDK_PATH=/Developer/xulrunner-1.9.0.6-ppc
DI_XR_SDK_PATH=/Developer/xulrunner-1.9.0.6-intel
NSPR_INCLUDES="-I /usr/include/nspr4"
AVAHI_INCLUDES="-I /usr/include/avahi-compat-libdns_sd"
BASE_DIR=`findbasedir`
DSDM_PATH=$BASE_DIR/manager
TARGETS=`cd ${BASE_DIR}; for i in * ; do if [ -d $i ]; then echo $i ; fi ; done`

buildxpt()  {
    if [ ${UNAME} == "DARWIN" ]; then
        XR_PATH=${DI_XR_SDK_PATH}
        XPIDL=${XR_PATH}/bin/xpidl
        ${XPIDL} -m header -I${XR_PATH}/idl -I ${DSDM_PATH} *.idl
    else
        XPIDL=${XR_RUN_PATH}/xpidl
        ${XPIDL} -m header -I ${XR_LIB_PATH}/sdk/idl -I ${DSDM_PATH} -I ${XR_IDL_PATHL}/stable -I ${XR_IDL_PATH}/unstable *.idl
    fi
}

buildimpl() {
    if [ ${UNAME} == "DARWIN" ]; then
        XR_PATH=${DI_XR_SDK_PATH}
        ${CC} -fshort-wchar -w -c -o dsd${T}-impl-darwin-intel.o -I ${XR_PATH}/sdk/include -I ${XR_PATH}/include/xpcom -I ${XR_PATH}/idl -DXP_UNIX -DXP_MACOSX -I ${DSDM_PATH} dsd${T}-impl.cpp
        XR_PATH=${DP_XR_SDK_PATH}
        ${CC} -arch ppc -fshort-wchar -w -c -o dsd${T}-impl-darwin-ppc.o -I ${XR_PATH}/sdk/include -I ${XR_PATH}/include/xpcom -I ${XR_PATH}/idl -DXP_UNIX -DXP_MACOSX -I ${DSDM_PATH} dsd${T}-impl.cpp
    else
        if [ ${UNAMEM} == "x86_64" ]; then
            ${CC} -fPIC -fshort-wchar -w -c -o dsd${T}-impl-linux64.o ${NSPR_INCLUDES} -I ${XR_INC_PATH}/stable -I ${XR_INC_PATH}/unstable -DXP_UNIX -I ${DSDM_PATH} dsd${T}-impl.cpp ${AVAHI_INCLUDES}
        else
            ${CC} -fshort-wchar -w -c -o dsd${T}-impl-linux.o ${NSPR_INCLUDES} -I ${XR_INC_PATH}/stable -I ${XR_INC_PATH}/unstable -DXP_UNIX -I ${DSDM_PATH} dsd${T}-impl.cpp ${AVAHI_INCLUDES}
        fi
    fi
}

buildmodule() {
    if [ ${UNAME} == "DARWIN" ]; then
        XR_PATH=${DI_XR_SDK_PATH}
        ${CC} -fshort-wchar -w -c -o dsd${T}-module-darwin-intel.o -I ${XR_PATH}/sdk/include -I ${XR_PATH}/include/xpcom -I ${XR_PATH}/idl -DXP_UNIX -DXP_MACOSX dsd${T}-module.cpp
        XR_PATH=${DP_XR_SDK_PATH}
        ${CC} -arch ppc -fshort-wchar -w -c -o dsd${T}-module-darwin-ppc.o -I ${XR_PATH}/sdk/include -I ${XR_PATH}/include/xpcom -I ${XR_PATH}/idl -DXP_UNIX -DXP_MACOSX dsd${T}-module.cpp
    else
        if [ ${UNAMEM} == "x86_64" ]; then         
            ${CC} -fPIC -fshort-wchar -w -c -o dsd${T}-module-linux64.o ${NSPR_INCLUDES} -I ${XR_INC_PATH}/stable -I ${XR_INC_PATH}/unstable -DXP_UNIX dsd${T}-module.cpp ${AVAHI_INCLUDES}
        else
            ${CC} -fshort-wchar -w -c -o dsd${T}-module-linux.o ${NSPR_INCLUDES} -I ${XR_INC_PATH}/stable -I ${XR_INC_PATH}/unstable -DXP_UNIX dsd${T}-module.cpp ${AVAHI_INCLUDES}
        fi
    fi
    
}

buildlib() {
    if [ ${UNAME} == "DARWIN" ]; then
        XR_PATH=${DI_XR_SDK_PATH}
        ${CC} -L${XR_PATH}/sdk/lib -L${XR_PATH}/bin -Wl,-executable_path, -fshort-wchar -dynamiclib -o dsd${T}-darwin-intel.dylib dsd${T}-impl-darwin-intel.o dsd${T}-module-darwin-intel.o -lxpcomglue_s -lxpcom -lnspr4
        XR_PATH=${DP_XR_SDK_PATH}
        ${CC} -arch ppc -L${XR_LIB_PATH}/sdk/lib -L${XR_PATH}/bin -Wl,-executable_path, -fshort-wchar -dynamiclib -o dsd${T}-darwin-ppc.dylib dsd${T}-impl-darwin-ppc.o dsd${T}-module-darwin-ppc.o -lxpcomglue_s -lxpcom -lnspr4
    else
        if [ ${UNAMEM} == "x86_64" ]; then
            ${CC} -shared -Wl,-z,defs -L${XR_LIB_PATH}/sdk/lib -L${XR_LIB_PATH}/bin -Wl,-rpath-link,${XR_LIB_PATH}/sdk -fshort-wchar -dynamiclib -o dsd${T}-linux64.so dsd${T}-impl-linux64.o dsd${T}-module-linux64.o -lxpcomglue_s -lxpcom -lnspr4 -ldns_sd
        else
            ${CC} -shared -Wl,-z,defs -L${XR_LIB_PATH}/sdk/lib -L${XR_LIB_PATH}/bin -Wl,-rpath-link,${XR_LIB_PATH}/sdk -fshort-wchar -dynamiclib -o dsd${T}-linux.so dsd${T}-impl-linux.o dsd${T}-module-linux.o -lxpcomglue_s -lxpcom -lnspr4 -ldns_sd
        fi
    fi
}

dolipo()    {
    if [ ${UNAME} == "DARWIN" ]; then
        lipo -create dsd${T}-darwin-{intel,ppc}.dylib -output dsd${T}-darwin.dylib
    fi
}

cd ${BASE_DIR}
for T in ${TARGETS}; do
    cd ${T}
    if [ -f *.js ]; then
        echo ${T} contains `ls *.js` so just building XPT
        buildxpt        
    else
        echo ${T} is assumed to contain binary targets
        echo buildxpt
        buildxpt
        echo buildimpl
        buildimpl
        echo buildmodule
        buildmodule
        echo buildlib
        buildlib
        dolipo
    fi
    cd -
done