diff options
author | salo <salo> | 2006-09-24 16:21:33 +0000 |
---|---|---|
committer | salo <salo> | 2006-09-24 16:21:33 +0000 |
commit | c676e51d0a361ea4f2f8416ccebf8360542117b2 (patch) | |
tree | 6c9bdd19f16aa80f05ac32b518bd598c047d5bd3 /www/seamonkey | |
parent | 488daffdb308a64b8518fa9ba6a4e69d234e1c26 (diff) | |
download | pkgsrc-c676e51d0a361ea4f2f8416ccebf8360542117b2.tar.gz |
Install pkg-config files so the gecko engine can be used by other
applications, bump PKGREVISION.
Sync files with www/mozilla and allow seamonkey to satisfy gecko
dependency.
Diffstat (limited to 'www/seamonkey')
-rw-r--r-- | www/seamonkey/Makefile | 3 | ||||
-rw-r--r-- | www/seamonkey/Makefile.common | 6 | ||||
-rw-r--r-- | www/seamonkey/PLIST | 10 | ||||
-rwxr-xr-x | www/seamonkey/files/moz-install | 70 | ||||
-rw-r--r-- | www/seamonkey/files/mozilla-ELF.in | 4 | ||||
-rw-r--r-- | www/seamonkey/files/mozilla-Mach-O.in | 4 | ||||
-rw-r--r-- | www/seamonkey/files/mozilla-a.out.in | 6 | ||||
-rw-r--r-- | www/seamonkey/files/xptcinvoke_asm_sparc64_netbsd.s | 112 | ||||
-rw-r--r-- | www/seamonkey/files/xptcinvoke_sparc64_netbsd.cpp | 84 | ||||
-rw-r--r-- | www/seamonkey/files/xptcstubs_asm_sparc64_netbsd.s | 66 | ||||
-rw-r--r-- | www/seamonkey/files/xptcstubs_sparc64_netbsd.cpp | 122 | ||||
-rw-r--r-- | www/seamonkey/gecko-depends.mk | 11 | ||||
-rw-r--r-- | www/seamonkey/gecko-options.mk | 5 | ||||
-rw-r--r-- | www/seamonkey/options.mk | 17 |
14 files changed, 514 insertions, 6 deletions
diff --git a/www/seamonkey/Makefile b/www/seamonkey/Makefile index 9906fb67fcb..1780456a132 100644 --- a/www/seamonkey/Makefile +++ b/www/seamonkey/Makefile @@ -1,6 +1,7 @@ -# $NetBSD: Makefile,v 1.8 2006/09/15 14:05:23 ghen Exp $ +# $NetBSD: Makefile,v 1.9 2006/09/24 16:21:33 salo Exp $ MOZILLA= seamonkey +PKGREVISION= 1 COMMENT= Full featured gecko-based browser diff --git a/www/seamonkey/Makefile.common b/www/seamonkey/Makefile.common index 21826463c5b..cf74c9aff65 100644 --- a/www/seamonkey/Makefile.common +++ b/www/seamonkey/Makefile.common @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.common,v 1.9 2006/09/15 15:54:04 ghen Exp $ +# $NetBSD: Makefile.common,v 1.10 2006/09/24 16:21:33 salo Exp $ MOZ_VER= 1.0.5 MOZ_DIST_VER?= ${MOZ_VER} @@ -10,7 +10,7 @@ MASTER_SITES+= http://public.planetmirror.com.au/pub/seamonkey/releases/${MOZ_V MASTER_SITES+= ftp://public.planetmirror.com.au/pub/seamonkey/releases/${MOZ_VER}/ CATEGORIES= www EXTRACT_SUFX= .tar.bz2 - + MAINTAINER= ghen@NetBSD.org HOMEPAGE?= http://www.mozilla.org/projects/seamonkey @@ -18,7 +18,7 @@ MOZILLA_BIN= seamonkey-bin DISTINFO_FILE= ${.CURDIR}/../../www/seamonkey/distinfo PATCHDIR= ${.CURDIR}/../../www/seamonkey/patches -FILESDIR= ${.CURDIR}/../../www/mozilla/files +FILESDIR= ${.CURDIR}/../../www/seamonkey/files BUILD_DEPENDS+= zip>=2.3:../../archivers/zip diff --git a/www/seamonkey/PLIST b/www/seamonkey/PLIST index a8b1a482949..c4d9da47709 100644 --- a/www/seamonkey/PLIST +++ b/www/seamonkey/PLIST @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.3 2006/06/07 15:23:21 ghen Exp $ +@comment $NetBSD: PLIST,v 1.4 2006/09/24 16:21:33 salo Exp $ bin/${MOZILLA} @comment begin PROGRAMS lib/${MOZILLA}/${MOZILLA_BIN} @@ -125,6 +125,14 @@ ${SUNOSLIB}lib/${MOZILLA}/libfreebl_hybrid_3.${SO_SUFFIX} ${SUNOSLIB}lib/${MOZILLA}/libfreebl_pure32_3.${SO_SUFFIX} lib/${MOZILLA}/plugins/libunixprintplugin.${SO_SUFFIX} @comment end DSO +@comment begin PKGCONFIG +lib/pkgconfig/seamonkey-gtkmozembed.pc +lib/pkgconfig/seamonkey-js.pc +lib/pkgconfig/seamonkey-nspr.pc +lib/pkgconfig/seamonkey-nss.pc +lib/pkgconfig/seamonkey-plugin.pc +lib/pkgconfig/seamonkey-xpcom.pc +@comment end PKGCONFIG @comment begin DATA lib/${MOZILLA}/LICENSE lib/${MOZILLA}/README diff --git a/www/seamonkey/files/moz-install b/www/seamonkey/files/moz-install new file mode 100755 index 00000000000..56153ba8af6 --- /dev/null +++ b/www/seamonkey/files/moz-install @@ -0,0 +1,70 @@ +#!/bin/sh +# +# $NetBSD: moz-install,v 1.1 2006/09/24 16:21:33 salo Exp $ + +${SED} -e "s,@PREFIX@,${PREFIX},g" -e "s,@MOZILLA@,${MOZILLA}," -e "s,@MOZILLA_BIN@,${MOZILLA_BIN}," ${FILESDIR}/mozilla-${OBJECT_FMT}.in > ${PREFIX}/bin/${MOZILLA} +${CHOWN} ${BINOWN} ${PREFIX}/bin/${MOZILLA} +${CHGRP} ${BINGRP} ${PREFIX}/bin/${MOZILLA} +${CHMOD} ${BINMODE} ${PREFIX}/bin/${MOZILLA} + +# +# Substitute variables +# +TMP_PLIST=${WRKDIR}/TMP_PLIST.$$ +trap "${RM} -f ${TMP_PLIST}" 1 2 15 + +${SED} -e "s/\${MOZILLA}/${MOZILLA}/g" -e "s/\${SO_SUFFIX}/${SO_SUFFIX}/" -e "s/\${MOZILLA_BIN}/${MOZILLA_BIN}/g" -e "s/\${SUNOSLIB}/${SUNOSLIB}/" < ${PLIST_SRC} > ${TMP_PLIST} + +# make directories +for i in `${SED} -n -e '/^@comment begin DIRS$/,/^@comment end DIRS$/p' ${TMP_PLIST} | ${EGREP} ^@dirrm | ${SED} -e 's/^@dirrm//'` ; do + ${BSD_INSTALL_DATA_DIR} ${PREFIX}/$i +done + +# install programs +for i in `${SED} -n -e '/^@comment begin PROGRAMS$/,/^@comment end PROGRAMS$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do + src=`echo $i | ${SED} -e "s@lib/${MOZILLA}@dist/bin@"`; + ${BSD_INSTALL_PROGRAM} ${WRKSRC}/${src} ${PREFIX}/$i +done + +# install scripts +for i in `${SED} -n -e '/^@comment begin SCRIPTS$/,/^@comment end SCRIPTS$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do + src=`echo $i | ${SED} -e "s@lib/${MOZILLA}@dist/bin@"`; + ${BSD_INSTALL_SCRIPT} ${WRKSRC}/${src} ${PREFIX}/$i +done + +# install DSO +for i in `${SED} -n -e '/^@comment begin DSO$/,/^@comment end DSO$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do + src=`echo $i | ${SED} -e "s@lib/${MOZILLA}@dist/bin@"`; + ${MOZ_INSTALL_LIB} ${WRKSRC}/${src} ${PREFIX}/$i +done + +# install PKGCONFIG +for i in `${SED} -n -e '/^@comment begin PKGCONFIG$/,/^@comment end PKGCONFIG$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do + src=`echo $i | ${SED} -e "s@lib/pkgconfig@build/unix@"`; + ${BSD_INSTALL_DATA} ${WRKSRC}/${src} ${PREFIX}/$i +done + +# install DATA +for i in `${SED} -n -e '/^@comment begin DATA$/,/^@comment end DATA$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do + src=`echo $i | ${SED} -e "s@lib/${MOZILLA}@dist/bin@"`; + ${BSD_INSTALL_DATA} ${WRKSRC}/${src} ${PREFIX}/$i +done + +# install INCLUDE +for i in `${SED} -n -e '/^@comment begin INCLUDE$/,/^@comment end INCLUDE$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do + src=`echo $i | ${SED} -e "s@include/${MOZILLA}@dist/include@"`; + ${BSD_INSTALL_DATA} ${WRKSRC}/${src} ${PREFIX}/$i +done + +# install INCLUDE-PUBLIC +for i in `${SED} -n -e '/^@comment begin INCLUDE-PUBLIC$/,/^@comment end INCLUDE-PUBLIC$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do + src=`echo $i | ${SED} -e "s@include/${MOZILLA}@dist/public@"`; + ${BSD_INSTALL_DATA} ${WRKSRC}/${src} ${PREFIX}/$i +done + +${RM} -f ${TMP_PLIST} + +# +# remove generated user conf directory ${WRKDIR}/.mozilla +# +${RM} -rf ${WRKDIR}/.mozilla diff --git a/www/seamonkey/files/mozilla-ELF.in b/www/seamonkey/files/mozilla-ELF.in new file mode 100644 index 00000000000..99470536423 --- /dev/null +++ b/www/seamonkey/files/mozilla-ELF.in @@ -0,0 +1,4 @@ +#!/bin/sh +MOZILLA_FIVE_HOME=@PREFIX@/lib/@MOZILLA@ +export MOZILLA_FIVE_HOME +exec @PREFIX@/lib/@MOZILLA@/@MOZILLA_BIN@ "$@" diff --git a/www/seamonkey/files/mozilla-Mach-O.in b/www/seamonkey/files/mozilla-Mach-O.in new file mode 100644 index 00000000000..99470536423 --- /dev/null +++ b/www/seamonkey/files/mozilla-Mach-O.in @@ -0,0 +1,4 @@ +#!/bin/sh +MOZILLA_FIVE_HOME=@PREFIX@/lib/@MOZILLA@ +export MOZILLA_FIVE_HOME +exec @PREFIX@/lib/@MOZILLA@/@MOZILLA_BIN@ "$@" diff --git a/www/seamonkey/files/mozilla-a.out.in b/www/seamonkey/files/mozilla-a.out.in new file mode 100644 index 00000000000..72af99363b6 --- /dev/null +++ b/www/seamonkey/files/mozilla-a.out.in @@ -0,0 +1,6 @@ +#!/bin/sh +MOZILLA_FIVE_HOME=@PREFIX@/lib/@MOZILLA@ +LD_LIBRARY_PATH=@PREFIX@/lib/@MOZILLA@ +export MOZILLA_FIVE_HOME +export LD_LIBRARY_PATH +exec @PREFIX@/lib/@MOZILLA@/@MOZILLA_BIN@ "$@" diff --git a/www/seamonkey/files/xptcinvoke_asm_sparc64_netbsd.s b/www/seamonkey/files/xptcinvoke_asm_sparc64_netbsd.s new file mode 100644 index 00000000000..a35f0b18d73 --- /dev/null +++ b/www/seamonkey/files/xptcinvoke_asm_sparc64_netbsd.s @@ -0,0 +1,112 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + */ + +/* Platform specific code to invoke XPCOM methods on native objects */ + .global XPTC_InvokeByIndex + .type XPTC_InvokeByIndex, #function +/* + XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex, + PRUint32 paramCount, nsXPTCVariant* params); + +*/ +/* + * Note: To simplify stack handling we allocate an extra stack + * frame here. In principle invoke_copy_to_stack() could + * save the parameters our caller's frame and we could + * reclaim the stackframe and do a tail call to the + * function. However, this gets complicated.... + * + * The vtable consist of be: + * + * struct { + * short __delta; + * short __index; + * union { + * P __pfn; + * short __delta2; + * } __pfn_or_delta2; + * }; + * + * See gcc/cp/cp-tree.h + */ + +XPTC_InvokeByIndex: + save %sp,-(128 + 64),%sp ! room for the register window and + ! struct pointer, rounded up to 0 % 64 + sll %i2,4,%l0 ! assume the worst case + ! paramCount * 2 * 8 bytes + cmp %l0, 0 ! are there any args? If not, + be .invoke ! no need to copy args to stack + nop + + sub %sp,%l0,%sp ! create the additional stack space + add %sp,0x7ff+136,%o0 ! step past the register window, the + ! struct result pointer and the 'this' slot + mov %i2,%o1 ! paramCount + call invoke_copy_to_stack + mov %i3,%o2 ! params + +! +! load arguments from stack into the outgoing registers +! BIAS is 0x7ff (2047) +! + +! load the %o1..5 64bit (extended word) output registers registers + ldx [%sp + 0x7ff + 136],%o1 ! %i1 + ldx [%sp + 0x7ff + 144],%o2 ! %i2 + ldx [%sp + 0x7ff + 152],%o3 ! %i3 + ldx [%sp + 0x7ff + 160],%o4 ! %i4 + ldx [%sp + 0x7ff + 168],%o5 ! %i5 + +! load the even number double registers starting with %f2 + ldd [%sp + 0x7ff + 136],%f2 + ldd [%sp + 0x7ff + 144],%f4 + ldd [%sp + 0x7ff + 152],%f6 + ldd [%sp + 0x7ff + 160],%f8 + ldd [%sp + 0x7ff + 168],%f10 + ldd [%sp + 0x7ff + 176],%f12 + ldd [%sp + 0x7ff + 184],%f14 + ldd [%sp + 0x7ff + 192],%f16 + ldd [%sp + 0x7ff + 200],%f18 + ldd [%sp + 0x7ff + 208],%f20 + ldd [%sp + 0x7ff + 216],%f22 + ldd [%sp + 0x7ff + 224],%f24 + ldd [%sp + 0x7ff + 232],%f26 + ldd [%sp + 0x7ff + 240],%f28 + ldd [%sp + 0x7ff + 248],%f30 + +! +! calculate the target address from the vtable +! +.invoke: + sll %i1,3,%l0 ! index *= 8 + ldx [%i0],%l1 ! *this --> address of vtable + ldx [%l0 + %l1],%l0 ! this->vtable[index] --> address + + jmpl %l0,%o7 ! call the routine + mov %i0,%o0 ! move 'this' pointer to out register + + mov %o0,%i0 ! propagate return value + ret + restore + + .size XPTC_InvokeByIndex, .-XPTC_InvokeByIndex diff --git a/www/seamonkey/files/xptcinvoke_sparc64_netbsd.cpp b/www/seamonkey/files/xptcinvoke_sparc64_netbsd.cpp new file mode 100644 index 00000000000..82d7c9cc3b5 --- /dev/null +++ b/www/seamonkey/files/xptcinvoke_sparc64_netbsd.cpp @@ -0,0 +1,84 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + */ + +/* Platform specific code to invoke XPCOM methods on native objects */ + +#include "xptcprivate.h" + +#if !defined(__sparc64__) && !defined(_LP64) +#error "This code is for Sparc64 only" +#endif + +extern "C" PRUint32 +invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s) +{ + /* + We need to copy the parameters for this function to locals and use them + from there since the parameters occupy the same stack space as the stack + we're trying to populate. + */ + PRUint64 *l_d = d; + nsXPTCVariant *l_s = s; + PRUint64 l_paramCount = paramCount; + PRUint64 regCount = 0; // return the number of registers to load from the stack + + for(PRUint64 i = 0; i < l_paramCount; i++, l_d++, l_s++) + { + if (regCount < 5) regCount++; + + if (l_s->IsPtrData()) + { + *l_d = (PRUint64)l_s->ptr; + continue; + } + switch (l_s->type) + { + case nsXPTType::T_I8 : *((PRInt64*)l_d) = l_s->val.i8; break; + case nsXPTType::T_I16 : *((PRInt64*)l_d) = l_s->val.i16; break; + case nsXPTType::T_I32 : *((PRInt64*)l_d) = l_s->val.i32; break; + case nsXPTType::T_I64 : *((PRInt64*)l_d) = l_s->val.i64; break; + + case nsXPTType::T_U8 : *((PRUint64*)l_d) = l_s->val.u8; break; + case nsXPTType::T_U16 : *((PRUint64*)l_d) = l_s->val.u16; break; + case nsXPTType::T_U32 : *((PRUint64*)l_d) = l_s->val.u32; break; + case nsXPTType::T_U64 : *((PRUint64*)l_d) = l_s->val.u64; break; + + /* in the case of floats, we want to put the bits in to the + 64bit space right justified... floats in the paramter array on + sparcv9 use odd numbered registers.. %f1, %f3, so we have to skip + the space that would be occupied by %f0, %f2, etc. + */ + case nsXPTType::T_FLOAT : *(((float*)l_d) + 1) = l_s->val.f; break; + case nsXPTType::T_DOUBLE: *((double*)l_d) = l_s->val.d; break; + case nsXPTType::T_BOOL : *((PRInt64*)l_d) = l_s->val.b; break; + case nsXPTType::T_CHAR : *((PRUint64*)l_d) = l_s->val.c; break; + case nsXPTType::T_WCHAR : *((PRInt64*)l_d) = l_s->val.wc; break; + + default: + // all the others are plain pointer types + *((void**)l_d) = l_s->val.p; + break; + } + } + + return regCount; +} diff --git a/www/seamonkey/files/xptcstubs_asm_sparc64_netbsd.s b/www/seamonkey/files/xptcstubs_asm_sparc64_netbsd.s new file mode 100644 index 00000000000..6557db78b18 --- /dev/null +++ b/www/seamonkey/files/xptcstubs_asm_sparc64_netbsd.s @@ -0,0 +1,66 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1999 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + */ + + .global SharedStub + +/* + in the frame for the function that called SharedStub are the + rest of the parameters we need + +*/ + +SharedStub: +! we don't create a new frame yet, but work within the frame of the calling +! function to give ourselves the other parameters we want + + mov %o0, %o1 ! shuffle the index up to 2nd place + mov %i0, %o0 ! the original 'this' + add %fp, 0x7ff + 136, %o2 ! previous stack top adjusted to the first argument slot (beyond 'this') + +! save off the original incoming parameters that arrived in +! registers, the ABI guarantees the space for us to do this + stx %i1, [%fp + 0x7ff + 136] + stx %i2, [%fp + 0x7ff + 144] + stx %i3, [%fp + 0x7ff + 152] + stx %i4, [%fp + 0x7ff + 160] + stx %i5, [%fp + 0x7ff + 168] +! now we can build our own stack frame + save %sp,-(128 + 64),%sp ! room for the register window and + ! struct pointer, rounded up to 0 % 64 +! our function now appears to have been called +! as SharedStub(nsISupports* that, PRUint32 index, PRUint32* args) +! so we can just copy these through + + mov %i0, %o0 + mov %i1, %o1 + mov %i2, %o2 + call PrepareAndDispatch + nop + mov %o0,%i0 ! propagate return value + b .LL1 + nop +.LL1: + ret + restore + + .size SharedStub, .-SharedStub + .type SharedStub, #function diff --git a/www/seamonkey/files/xptcstubs_sparc64_netbsd.cpp b/www/seamonkey/files/xptcstubs_sparc64_netbsd.cpp new file mode 100644 index 00000000000..c6fd89e6892 --- /dev/null +++ b/www/seamonkey/files/xptcstubs_sparc64_netbsd.cpp @@ -0,0 +1,122 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1999 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + */ + +/* Implement shared vtbl methods. */ + +#include "xptcprivate.h" + +#if defined(sparc) || defined(__sparc__) + +extern "C" nsresult +PrepareAndDispatch(nsXPTCStubBase* self, PRUint64 methodIndex, PRUint64* args) +{ + +#define PARAM_BUFFER_COUNT 16 + + nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT]; + nsXPTCMiniVariant* dispatchParams = NULL; + nsIInterfaceInfo* iface_info = NULL; + const nsXPTMethodInfo* info; + PRUint8 paramCount; + PRUint8 i; + nsresult result = NS_ERROR_FAILURE; + + NS_ASSERTION(self,"no self"); + + self->GetInterfaceInfo(&iface_info); + NS_ASSERTION(iface_info,"no interface info"); + + iface_info->GetMethodInfo(PRUint16(methodIndex), &info); + NS_ASSERTION(info,"no interface info"); + + paramCount = info->GetParamCount(); + + // setup variant array pointer + if(paramCount > PARAM_BUFFER_COUNT) + dispatchParams = new nsXPTCMiniVariant[paramCount]; + else + dispatchParams = paramBuffer; + NS_ASSERTION(dispatchParams,"no place for params"); + + PRUint64* ap = args; + for(i = 0; i < paramCount; i++, ap++) + { + const nsXPTParamInfo& param = info->GetParam(i); + const nsXPTType& type = param.GetType(); + nsXPTCMiniVariant* dp = &dispatchParams[i]; + + if(param.IsOut() || !type.IsArithmetic()) + { + dp->val.p = (void*) *ap; + continue; + } + // else + switch(type) + { + case nsXPTType::T_I8 : dp->val.i8 = *((PRInt32*) ap); break; + case nsXPTType::T_I16 : dp->val.i16 = *((PRInt32*) ap); break; + case nsXPTType::T_I32 : dp->val.i32 = *((PRInt32*) ap); break; + case nsXPTType::T_DOUBLE : dp->val.d = *((double*) ap); break; + case nsXPTType::T_U64 : dp->val.u64 = *((PRUint64*) ap); break; + case nsXPTType::T_I64 : dp->val.i64 = *((PRInt64*) ap); break; + case nsXPTType::T_U8 : dp->val.u8 = *((PRUint32*) ap); break; + case nsXPTType::T_U16 : dp->val.u16 = *((PRUint32*)ap); break; + case nsXPTType::T_U32 : dp->val.u32 = *((PRUint32*)ap); break; + case nsXPTType::T_FLOAT : dp->val.f = *((float*) ap); break; + case nsXPTType::T_BOOL : dp->val.b = *((PRBool*) ap); break; + case nsXPTType::T_CHAR : dp->val.c = *((PRUint32*) ap); break; + case nsXPTType::T_WCHAR : dp->val.wc = *((PRInt32*) ap); break; + default: + NS_ASSERTION(0, "bad type"); + break; + } + } + + result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams); + + NS_RELEASE(iface_info); + + if(dispatchParams != paramBuffer) + delete [] dispatchParams; + + return result; +} + +extern "C" int SharedStub(int, int*); + +#define STUB_ENTRY(n) \ +nsresult nsXPTCStubBase::Stub##n() \ +{ \ + int dummy; /* defeat tail-call optimization */ \ + return SharedStub(n, &dummy); \ +} + +#define SENTINEL_ENTRY(n) \ +nsresult nsXPTCStubBase::Sentinel##n() \ +{ \ + NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \ + return NS_ERROR_NOT_IMPLEMENTED; \ +} + +#include "xptcstubsdef.inc" + +#endif /* sparc || __sparc__ */ diff --git a/www/seamonkey/gecko-depends.mk b/www/seamonkey/gecko-depends.mk new file mode 100644 index 00000000000..5dd35061258 --- /dev/null +++ b/www/seamonkey/gecko-depends.mk @@ -0,0 +1,11 @@ +# $NetBSD: gecko-depends.mk,v 1.1 2006/09/24 16:21:33 salo Exp $ + +.if !empty(PKG_OPTIONS:Mfirefox) +# needs .pc files +BUILDLINK_API_DEPENDS.firefox+= firefox>=1.5nb2 +.include "../../www/firefox/buildlink3.mk" +.else +# needs .pc files +BUILDLINK_API_DEPENDS.seamonkey+= seamonkey>=1.0.5nb1 +.include "../../www/seamonkey/buildlink3.mk" +.endif diff --git a/www/seamonkey/gecko-options.mk b/www/seamonkey/gecko-options.mk new file mode 100644 index 00000000000..40650a4b917 --- /dev/null +++ b/www/seamonkey/gecko-options.mk @@ -0,0 +1,5 @@ +# $NetBSD: gecko-options.mk,v 1.1 2006/09/24 16:21:33 salo Exp $ + +PKG_OPTIONS_REQUIRED_GROUPS+= gecko +PKG_OPTIONS_GROUP.gecko= firefox seamonkey +PKG_SUGGESTED_OPTIONS+= firefox diff --git a/www/seamonkey/options.mk b/www/seamonkey/options.mk index 9f9dbc702ca..dea96ca8858 100644 --- a/www/seamonkey/options.mk +++ b/www/seamonkey/options.mk @@ -1,4 +1,4 @@ -# $NetBSD: options.mk,v 1.1.1.1 2006/03/30 19:15:47 ghen Exp $ +# $NetBSD: options.mk,v 1.2 2006/09/24 16:21:33 salo Exp $ PKG_OPTIONS_VAR = PKG_OPTIONS.gecko PKG_SUPPORTED_OPTIONS = debug @@ -10,3 +10,18 @@ PKG_SUPPORTED_OPTIONS = debug .if empty(PKG_OPTIONS:Mdebug) CONFIGURE_ARGS+= --disable-debug .endif + +.if ( ${MOZILLA_BIN} == "firefox-bin" || ${MOZILLA_BIN} == "thunderbird-bin" ) +PKG_SUPPORTED_OPTIONS += official-mozilla-branding +.endif + +# Enable Official mozilla.org Branding for Firefox or Thunderbird. +# Note that you cannot distribute builds with Official Branding +# without permission of the Mozilla Foundation. +# See http://www.mozilla.org/foundation/trademarks/ +.if !empty(PKG_OPTIONS:Mofficial-mozilla-branding) +CONFIGURE_ARGS+= --enable-official-branding +RESTRICTED= Cannot redistribute builds with Official Branding at this moment, we need permission of The Mozilla Foundation for this. +NO_BIN_ON_CDROM= ${RESTRICTED} +NO_BIN_ON_FTP= ${RESTRICTED} +.endif |