$NetBSD$

--- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig	2011-12-20 23:28:44.000000000 +0000
+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in
@@ -84,7 +84,7 @@ endif
 endif
 endif
 
-ifneq (,$(filter NetBSD OpenBSD BSD_OS GNU,$(OS_ARCH)))
+ifneq (,$(filter BSD_OS GNU,$(OS_ARCH)))
 ifeq (86,$(findstring 86,$(OS_TEST)))
 CPPSRCS		:= xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp
 endif
@@ -93,7 +93,7 @@ endif
 # New code for Linux, et. al., with gcc
 # Migrate other platforms here after testing
 #
-ifneq (,$(filter Linux FreeBSD GNU_%,$(OS_ARCH)))
+ifneq (,$(filter Linux FreeBSD DragonFly NetBSD OpenBSD GNU_%,$(OS_ARCH)))
 # Linux/x86-64
 ifeq (x86_64,$(OS_TEST))
 CPPSRCS		:= xptcinvoke_x86_64_unix.cpp xptcstubs_x86_64_linux.cpp
@@ -111,12 +111,6 @@ ASFILES		:= xptcstubs_asm_ipf64.s xptcin
 endif
 endif
 #
-# OpenBSD/amd64
-#
-ifeq ($(OS_ARCH)$(OS_TEST),OpenBSDx86_64)
-CPPSRCS		:= xptcinvoke_amd64_openbsd.cpp xptcstubs_amd64_openbsd.cpp
-endif
-#
 # Neutrino/Intel (uses the same unixish_x86 code)
 #
 ifeq ($(OS_TARGET),NTO)
@@ -192,7 +186,7 @@ endif
 # NetBSD/ARM
 #
 ifeq ($(OS_ARCH),NetBSD)
-ifneq (,$(filter arm% sa110,$(OS_TEST)))
+ifneq (,$(filter arm%,$(TARGET_CPU)))
 CPPSRCS		:= xptcinvoke_arm_netbsd.cpp xptcstubs_arm_netbsd.cpp
 endif
 endif
@@ -249,7 +243,7 @@ endif
 # NetBSD/m68k
 #
 ifeq ($(OS_ARCH),NetBSD)
-ifneq (,$(filter amiga atari hp300 mac68k mvme68k next68k sun3 sun3x x68k,$(OS_TEST)))
+ifneq (,$(filter m68k,$(TARGET_CPU)))
 CPPSRCS		:= xptcinvoke_netbsd_m68k.cpp xptcstubs_netbsd_m68k.cpp
 endif
 endif
@@ -321,9 +315,10 @@ endif
 #
 # NetBSD/PPC
 #
-ifneq (,$(filter NetBSDmacppc NetBSDbebox NetBSDofppc NetBSDprep NetBSDamigappc,$(OS_ARCH)$(OS_TEST)))                           
+ifeq ($(OS_ARCH)$(OS_TEST),NetBSDpowerpc)
 CPPSRCS		:= xptcinvoke_ppc_netbsd.cpp xptcstubs_ppc_netbsd.cpp
 ASFILES		:= xptcinvoke_asm_ppc_netbsd.s xptcstubs_asm_ppc_netbsd.s
+AS		:= $(CC) -c -x assembler-with-cpp
 endif
 
 #
@@ -396,6 +391,13 @@ CPPSRCS		:= xptcinvoke_sparc64_openbsd.c
 ASFILES		:= xptcinvoke_asm_sparc64_openbsd.s xptcstubs_asm_sparc64_openbsd.s
 endif
 #
+# NetBSD/SPARC64
+#
+ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc64)
+CPPSRCS                := xptcinvoke_sparc64_netbsd.cpp xptcstubs_sparc64_netbsd.cpp
+ASFILES                := xptcinvoke_asm_sparc64_netbsd.s xptcstubs_asm_sparc64_netbsd.s
+endif
+#
 # Solaris/SPARC
 #
 ifeq ($(OS_ARCH),SunOS)
