$NetBSD$

--- src/dmd/mars.c.orig	2010-12-20 20:02:36.000000000 +0000
+++ src/dmd/mars.c
@@ -15,7 +15,7 @@
 #include <assert.h>
 #include <limits.h>
 
-#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#if linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
 #include <errno.h>
 #endif
 
@@ -60,7 +60,7 @@ Global::Global()
 
 #if TARGET_WINDOS
     obj_ext  = "obj";
-#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
+#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
     obj_ext  = "o";
 #elif TARGET_NET
 #else
@@ -69,7 +69,7 @@ Global::Global()
 
 #if TARGET_WINDOS
     lib_ext  = "lib";
-#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
+#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
     lib_ext  = "a";
 #elif TARGET_NET
 #else
@@ -78,7 +78,7 @@ Global::Global()
 
 #if TARGET_WINDOS
     dll_ext  = "dll";
-#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_SOLARIS
+#elif TARGET_LINUX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
     dll_ext  = "so";
 #elif TARGET_OSX
     dll_ext = "dylib";
@@ -361,7 +361,7 @@ int main(int argc, char *argv[])
 
 #if TARGET_WINDOS
     global.params.defaultlibname = "phobos";
-#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
+#elif TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
     global.params.defaultlibname = "phobos2";
 #elif TARGET_NET
 #else
@@ -393,6 +393,10 @@ int main(int argc, char *argv[])
     VersionCondition::addPredefinedGlobalIdent("Posix");
     VersionCondition::addPredefinedGlobalIdent("FreeBSD");
     global.params.isFreeBSD = 1;
+#elif TARGET_NETBSD
+    VersionCondition::addPredefinedGlobalIdent("Posix");
+    VersionCondition::addPredefinedGlobalIdent("NetBSD");
+    global.params.isNetBSD = 1;
 #elif TARGET_SOLARIS
     VersionCondition::addPredefinedGlobalIdent("Posix");
     VersionCondition::addPredefinedGlobalIdent("Solaris");
@@ -410,7 +414,7 @@ int main(int argc, char *argv[])
 
 #if _WIN32
     inifilename = inifile(argv[0], "sc.ini");
-#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4 || __NetBSD__
     inifilename = inifile(argv[0], "dmd.conf");
 #else
 #error "fix this"
@@ -435,7 +439,7 @@ int main(int argc, char *argv[])
                 global.params.link = 0;
             else if (strcmp(p + 1, "cov") == 0)
                 global.params.cov = 1;
-#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
+#if TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_NETBSD || TARGET_SOLARIS
             else if (strcmp(p + 1, "fPIC") == 0)
                 global.params.pic = 1;
 #endif
@@ -727,6 +731,13 @@ int main(int argc, char *argv[])
                 browse("http://www.digitalmars.com/d/2.0/dmd-freebsd.html");
 #endif
 #endif
+#if __NetBSD__
+#if DMDV1
+                browse("http://www.digitalmars.com/d/1.0/dmd-netbsd.html");
+#else
+                browse("http://www.digitalmars.com/d/2.0/dmd-netbsd.html");
+#endif
+#endif
                 exit(EXIT_SUCCESS);
             }
             else if (strcmp(p + 1, "run") == 0)
