--- set_soenv.in.orig.port	Thu Oct 21 14:03:29 2010
+++ set_soenv.in	Mon Oct 25 14:42:27 2010
@@ -802,6 +802,57 @@ elsif ( $platform =~ m/aix/ )
    $OS             = "AIX";
    $PATH_SEPERATOR = $ps;
 }
+elsif ( $platform =~ m/openbsd/ )
+{     print "Setting OpenBSD specific values... ";
+      $outfile        = "OpenBSDEnv.Set";
+      $BIG_SVX        = "TRUE";
+      $COM            = "GCC";
+      $COMPATH        = '@COMPATH@';
+      if ( $platform =~ m/^i386/ )
+      {
+         $CPU            = "I";
+         $CPUNAME        = "INTEL";
+         $JRELIBDIR      = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386";
+         $JRETOOLKITDIR  = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386".$ds."client";
+         $JRETHREADDIR   = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."i386".$ds."native_threads";
+      }
+      elsif ( $platform =~ m/^x86_64/ )
+      {
+         $CPU            = "X";
+         $CPUNAME        = "X86_64";
+         $JRELIBDIR      = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64";
+         $JRETOOLKITDIR  = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."server";
+         $JRETHREADDIR   = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."native_threads";
+      }
+      elsif ( $platform =~ m/^amd64/ )
+      {
+         $CPU            = "X";
+         $CPUNAME        = "X86_64";
+         $JRELIBDIR      = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64";
+         $JRETOOLKITDIR  = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."server";
+         $JRETHREADDIR   = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."amd64".$ds."native_threads";
+      }
+      elsif ($platform =~ m/^sparc64/)
+      {
+         $CPU            = "S";
+         $CPUNAME        = "SPARC";
+         $JRELIBDIR      = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."sparc64";
+         $JRETOOLKITDIR  = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."sparc64".$ds."server";
+         $JRETHREADDIR   = '$JAVA_HOME'.$ds."jre".$ds."lib".$ds."sparc64".$ds."native_threads";
+      }
+      $CVER           = "C300";
+      $GUI            = "UNX";
+      $GUIBASE        = "unx";
+      $GVER           = "VCL";
+      $OUTPATH        = "unxobsd";
+      $INPATH         = $OUTPATH.$PROEXT;
+      $OS             = "OPENBSD";
+      $PATH_SEPERATOR = $ps;
+      $OSVERSION      = '@OSVERSION@';
+      if( @GCCVER@ >= 30401 ) {
+         $CVER        = "C341";
+      }
+}
 else {
 	print "\nset_soenv:  Cannot figure out what platform you are running\n";
 	print "For $platform.\n";
@@ -1041,7 +1092,7 @@ if ($platform =~ m/solaris/) 
                         $L.$USR_DT.$LIB.
                         $L.$USR_OPENWIN.$LIB;
 }
-elsif ($platform =~ m/linux|netbsd|osf1|freebsd|aix/)
+elsif ($platform =~ m/linux|netbsd|osf1|freebsd|aix|openbsd/)
 {
    $SOLAREXTRALIB     = $L.$par_dir.$LIB64;
 }
@@ -1107,7 +1158,7 @@ if ($platform =~ m/cygwin|os2/)
 }
      
 # The general environment path.
-if ($platform =~ m/linux|netbsd|odf1|freebsd|aix|solaris/)
+if ($platform =~ m/linux|netbsd|odf1|freebsd|aix|solaris|openbsd/)
 {  $PATH              = $cur_dir.
 #                        $ps.'$SOLARVER'.$ds.'$INPATH'.$BIN.
                         $ps.'$SOLARENV'.$ds.'$OUTPATH'.$BIN.
@@ -1333,11 +1384,12 @@ if ($platform =~ m/solaris/) 
                         $L_STLPORT_LIB.
                         $L.$XLIB;
 }
-elsif ($platform =~ m/linux|netbasd|osf1|aix|freebsd/)
+elsif ($platform =~ m/linux|netbasd|osf1|aix|freebsd|openbsd/)
 {  $SOLARLIB          = $L.$par_dir.$LIB.
                         $L.'$SOLARENV'.$ds.'$OUTPATH'.$LIB.
                         $L.'$SOLARVER'.$ds.'$INPATH'.$LIB.
                         $L.'$SOLARENV'.$ds.'$OUTPATH'.$LIB.
+			$L.$USR_LOCAL.$LIB.
                         $L.'$JAVA_HOME'.$LIB64.
                         $L.$JRELIBDIR.
                         $L.$JRETOOLKITDIR.
@@ -1376,7 +1428,7 @@ $SOLARINC             = $I.$cur_dir.
                         $I.'$SOLARENV'.$INC.
                         $I.'$SRC_ROOT'.$ds."res";
 
-if ($platform =~ m/solaris|linux|osf1|freebsd|netbsd/)
+if ($platform =~ m/solaris|linux|osf1|freebsd|netbsd|openbsd/)
 {
 $SOLARINC	     .= $STLPORT_stlport;
 if ($platform =~ m/linux|freebsd|netbsd/)
@@ -1400,9 +1452,15 @@ if ($platform =~ m/linux/)
 }
 
 
-   	$SOLARINC      .= $I.'$SOLARENV'.$INC.$ds."Xp31".
-                     $I.'$JAVA_HOME'.$INCLUDE;
+	$SOLARINC      .= $I.'$SOLARENV'.$INC.$ds."Xp31";
 
+        # pickup system jpeg over java jpeg
+        if ($platform =~ m/openbsd/)
+        {  $SOLARINC  .= $I.$USR_LOCAL.$INCLUDE;
+        }
+
+        $SOLARINC      .= $I.'$JAVA_HOME'.$INCLUDE;
+
 	#include system dependent Java include directory
 	if (!($JDK eq "gcj"))
 	{
@@ -1421,13 +1479,16 @@ if ($platform =~ m/linux/)
    		elsif ($platform =~ m/netbsd/)
    		{  $SOLARINC   .=$I.'$JAVA_HOME'.$INCLUDE.$ds."netbsd";
    		}
+                elsif ($platform =~ m/openbsd/)
+                {  $SOLARINC   .=$I.'$JAVA_HOME'.$INCLUDE.$ds."openbsd";
+                }
 
    		#java threads include path
 
    		$SOLARINC .=$I.'$JAVA_HOME'.$INCLUDE.$ds."native_threads".$ds."include";
 	}
     #The tail, if needed
-    if ($platform =~ m/linux|freebsd|netbsd/)
+    if ($platform =~ m/linux|freebsd|netbsd|openbsd/)
     {  $SOLARINC  .= $I.$XINC;
     }
     elsif ($platform =~ m/osf1/)
