Want more features on Pastebin? Sign Up, it's FREE!
Guest

lwjgl-patch

By: a guest on Nov 29th, 2011  |  syntax: None  |  size: 10.39 KB  |  views: 45  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Index: src/java/org/lwjgl/FreeBSDSysImplementation.java
  2. ===================================================================
  3. --- src/java/org/lwjgl/FreeBSDSysImplementation.java    (revision )
  4. +++ src/java/org/lwjgl/FreeBSDSysImplementation.java    (revision )
  5. @@ -0,0 +1,87 @@
  6. +/*
  7. + * Copyright (c) 2002-2008 LWJGL Project
  8. + * All rights reserved.
  9. + *
  10. + * Redistribution and use in source and binary forms, with or without
  11. + * modification, are permitted provided that the following conditions are
  12. + * met:
  13. + *
  14. + * * Redistributions of source code must retain the above copyright
  15. + *   notice, this list of conditions and the following disclaimer.
  16. + *
  17. + * * Redistributions in binary form must reproduce the above copyright
  18. + *   notice, this list of conditions and the following disclaimer in the
  19. + *   documentation and/or other materials provided with the distribution.
  20. + *
  21. + * * Neither the name of 'LWJGL' nor the names of
  22. + *   its contributors may be used to endorse or promote products derived
  23. + *   from this software without specific prior written permission.
  24. + *
  25. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  26. + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  27. + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  28. + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  29. + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  30. + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  31. + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  32. + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  33. + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  34. + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  35. + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  36. + */
  37. +package org.lwjgl;
  38. +
  39. +import java.security.AccessController;
  40. +import java.security.PrivilegedAction;
  41. +
  42. +/**
  43. + *
  44. + */
  45. +final class FreeBSDSysImplementation extends J2SESysImplementation {
  46. +       private static final int JNI_VERSION = 19;
  47. +
  48. +       static {
  49. +               // Load libawt.so and libmawt.so, needed for libjawt.so
  50. +               java.awt.Toolkit.getDefaultToolkit();
  51. +              
  52. +               // manually load libjawt.so into vm, needed since Java 7
  53. +               AccessController.doPrivileged(new PrivilegedAction<Object>() {
  54. +                       public Object run() {
  55. +                               try {
  56. +                                       System.loadLibrary("jawt");
  57. +                               } catch (UnsatisfiedLinkError e) {
  58. +                               // catch and ignore an already loaded in another classloader
  59. +                                       // exception, as vm already has it loaded
  60. +                           }
  61. +                               return null;
  62. +                       }
  63. +               });
  64. +       }
  65. +
  66. +       public int getRequiredJNIVersion() {
  67. +               return JNI_VERSION;
  68. +       }
  69. +
  70. +       public boolean openURL(final String url) {
  71. +               // simply copied from Linux
  72. +
  73. +               String[] browsers = {"xdg-open", "firefox", "mozilla", "opera", "konqueror", "nautilus", "galeon", "netscape"};
  74. +
  75. +               for ( final String browser : browsers ) {
  76. +                       try {
  77. +                               LWJGLUtil.execPrivileged(new String[] { browser, url });
  78. +                               return true;
  79. +                       } catch (Exception e) {
  80. +                               // Ignore
  81. +                               e.printStackTrace(System.err);
  82. +                       }
  83. +               }
  84. +
  85. +               // Seems to have failed
  86. +               return false;
  87. +       }
  88. +
  89. +       public boolean has64Bit() {
  90. +               return true;
  91. +       }
  92. +}
  93. Index: platform_build/linux_ant/build.xml
  94. ===================================================================
  95. --- platform_build/linux_ant/build.xml  (revision 3704)
  96. +++ platform_build/linux_ant/build.xml  (revision )
  97. @@ -4,8 +4,8 @@
  98.         <property name="native" location="../../src/native"/>
  99.         <property name="libname32" value="liblwjgl.so"/>
  100.         <property name="libname64" value="liblwjgl64.so"/>
  101. -       <property name="libs32" value="-L/usr/X11R6/lib -L/usr/X11/lib -lm -lX11 -lXext -lXcursor -lXrandr -lpthread -L${java.home}/lib/i386 -ljawt" />
  102. -       <property name="libs64" value="-L/usr/X11R6/lib64 -L/usr/X11/lib64 -lm -lX11 -lXext -lXcursor -lXrandr -lXxf86vm -lpthread -L${java.home}/lib/amd64 -ljawt" />
  103. +       <property name="libs32" value="-L/usr/X11R6/lib -L/usr/X11/lib -L/usr/local/lib -lm -lX11 -lXext -lXcursor -lXrandr -lpthread -L${java.home}/lib/i386 -ljawt" />
  104. +       <property name="libs64" value="-L/usr/X11R6/lib64 -L/usr/X11/lib64 -L/usr/local/lib -lm -lX11 -lXext -lXcursor -lXrandr -lXxf86vm -lpthread -L${java.home}/lib/amd64 -ljawt" />
  105.         <property name="cflags32" value="-O2 -Wall -c -fPIC -std=c99 -Wunused"/>
  106.  
  107.         <target name="clean">
  108. @@ -45,6 +45,7 @@
  109.         <condition property="build.32bit.only">
  110.                 <not>
  111.                         <or>
  112. +                                       <equals arg1="${hwplatform}" arg2="amd64"/>
  113.                                         <equals arg1="${hwplatform}" arg2="x86_64"/>
  114.                                         <equals arg1="${hwplatform}" arg2="i86pc"/>
  115.                                 </or>
  116. @@ -53,10 +54,16 @@
  117.  
  118.         <!-- On linux, the 64 bit jre doesn't have the 32 bit libs -->
  119.         <condition property="build.64bit.only">
  120. +                   <or>
  121. -               <and>
  122. -                       <os name="Linux"/>
  123. -                       <equals arg1="${hwplatform}" arg2="x86_64"/>
  124. -               </and>
  125. +                               <and>
  126. +                                       <os name="Linux"/>
  127. +                                       <equals arg1="${hwplatform}" arg2="x86_64"/>
  128. +                               </and>
  129. +                               <and>
  130. +                                       <os name="FreeBSD"/>
  131. +                                       <equals arg1="${hwplatform}" arg2="amd64"/>
  132. +                               </and>
  133. +                   </or>
  134.         </condition>
  135.  
  136.         <antcall target="compile32"/>
  137. @@ -69,9 +76,12 @@
  138.                         <arg line="${cflags32} ${cflags_pthread}"/>
  139.                         <arg value="-I${java.home}/include"/>
  140.                         <arg value="-I${java.home}/include/linux"/>
  141. +                       <arg value="-I${java.home}/include/freebsd"/>
  142.                         <arg value="-I${java.home}/../include"/>
  143.                         <arg value="-I${java.home}/../include/linux"/>
  144. +                       <arg value="-I${java.home}/../include/freebsd"/>
  145.                         <arg value="-I${java.home}/../include/solaris"/>
  146. +                   <arg value="-I/usr/local/include"/>
  147.                         <arg value="-I${native}/common"/>
  148.                     <arg value="-I${native}/common/opengl"/>
  149.                         <arg value="-I${native}/linux"/>
  150. @@ -101,11 +111,15 @@
  151.                         <arg line="${cflags64} ${cflags_pthread}"/>
  152.                         <arg value="-I${java.home}/include"/>
  153.                         <arg value="-I${java.home}/include/linux"/>
  154. +                       <arg value="-I${java.home}/include/freebsd"/>
  155.                         <arg value="-I${java.home}/../include"/>
  156.                         <arg value="-I${java.home}/../include/linux"/>
  157. +                       <arg value="-I${java.home}/../include/freebsd"/>
  158.                         <arg value="-I${java.home}/../include/solaris"/>
  159. +                   <arg value="-I/usr/local/include"/>
  160. -                       <arg value="-I${native}/common"/>
  161. +                   <arg value="-I${native}/common"/>
  162.                     <arg value="-I${native}/common/opengl"/>
  163. +                   <arg value="-I${native}/common/opengl"/>
  164.                         <arg value="-I${native}/linux"/>
  165.                     <arg value="-I${native}/linux/opengl"/>
  166.                         <mapper type="glob" from="*.c" to="*.o"/>
  167. Index: build.xml
  168. ===================================================================
  169. --- build.xml   (revision 3704)
  170. +++ build.xml   (revision )
  171. @@ -31,6 +31,7 @@
  172.                 <mkdir dir="${lwjgl.temp}/native"           taskname="initialiazing temp/native folder" />
  173.                 <mkdir dir="${lwjgl.temp}/native/windows"   taskname="initialiazing temp/windows folder" />
  174.                 <mkdir dir="${lwjgl.temp}/native/linux"     taskname="initialiazing temp/linux folder" />
  175. +               <mkdir dir="${lwjgl.temp}/native/freebsd"     taskname="initialiazing temp/freebsd folder" />
  176.                 <mkdir dir="${lwjgl.temp}/native/macosx"    taskname="initialiazing temp/macosx folder" />
  177.                 <mkdir dir="${lwjgl.temp}/native/solaris"   taskname="initialiazing temp/solaris folder" />
  178.         </target>
  179. @@ -55,7 +56,7 @@
  180.         <!-- Creates a distribution of LWJGL -->
  181.         <target name="release" description="Creates a distribution of LWJGL using supplied native binaries">
  182.                 <!-- Warn user -->
  183. -               <echo message="Before running the release target, please manually compile all platforms and place required files in ${lwjgl.lib}/windows, ${lwjgl.lib}/linux and ${lwjgl.lib}/macosx${line.separator}Missing files will result in a successfull built, but with incomplete release zips"/>
  184. +               <echo message="Before running the release target, please manually compile all platforms and place required files in ${lwjgl.lib}/windows, ${lwjgl.lib}/freebsd , ${lwjgl.lib}/linux and ${lwjgl.lib}/macosx${line.separator}Missing files will result in a successfull built, but with incomplete release zips"/>
  185.          <input
  186.              message="All data in the ${lwjgl.dist} folder will be deleted. Continue? "
  187.              validargs="yes,no"
  188. @@ -237,6 +238,11 @@
  189.                                 <patternset refid="lwjgl-linux.fileset" />
  190.                         </fileset>
  191.                 </copy>
  192. +               <copy todir="${lwjgl.temp}/native/freebsd">
  193. +                       <fileset dir="${lwjgl.lib}/freebsd">
  194. +                               <patternset refid="lwjgl-freebsd.fileset" />
  195. +                       </fileset>
  196. +               </copy>
  197.                 <copy todir="${lwjgl.temp}/native/macosx">
  198.                         <fileset dir="${lwjgl.lib}/macosx">
  199.                                 <patternset refid="lwjgl-macosx.fileset" />
  200. @@ -373,6 +379,13 @@
  201.                                 </tokenfilter>
  202.                         </filterchain>
  203.                 </loadfile>
  204. +               <loadfile srcfile="${lwjgl.src}/java/org/lwjgl/FreeBSDSysImplementation.java" property="lwjgl.java.freebsd.version">
  205. +                       <filterchain>
  206. +                               <tokenfilter>
  207. +                       <containsstring contains="JNI_VERSION ="/>
  208. +                               </tokenfilter>
  209. +                       </filterchain>
  210. +               </loadfile>
  211.                 <loadfile srcfile="${lwjgl.src}/java/org/lwjgl/MacOSXSysImplementation.java" property="lwjgl.java.macosx.version">
  212.                         <filterchain>
  213.                                 <tokenfilter>
  214. @@ -405,6 +418,7 @@
  215.                         lwjgl.java.windows.version = ${lwjgl.java.windows.version}
  216.                         lwjgl.native.windows.version = ${lwjgl.native.windows.version}
  217.                         lwjgl.java.linux.version = ${lwjgl.java.linux.version}
  218. +                       lwjgl.java.freebsd.version = ${lwjgl.java.freebsd.version}
  219.                         lwjgl.native.linux.version = ${lwjgl.native.linux.version}
  220.                         lwjgl.java.macosx.version = ${lwjgl.java.macosx.version}
  221.                         lwjgl.native.macosx.version = ${lwjgl.native.macosx.version}
  222. @@ -465,6 +479,11 @@
  223.                 </condition>
  224.                 <antcall target="-compile_native_linux" />
  225.  
  226. +               <condition property="lwjgl.platform.freebsd">
  227. +                       <os name="FreeBSD" />
  228. +               </condition>
  229. +               <antcall target="-compile_native_freebsd" />
  230. +
  231.                 <condition property="lwjgl.platform.solaris">
  232.                         <os name="SunOS" />
  233.                 </condition>
  234. @@ -494,6 +513,14 @@
  235.                 <!-- headless issues <version-check platform="linux"/> -->
  236.         </target>
  237.  
  238. +       <!-- Compiles LWJGL on FreeBSD platforms -->
  239. +       <target name="-compile_native_freebsd" if="lwjgl.platform.freebsd">
  240. +               <ant antfile="platform_build/linux_ant/build.xml" inheritAll="false"/>
  241. +               <copy todir="${lwjgl.lib}/freebsd">
  242. +                       <fileset dir="${lwjgl.bin}/lwjgl" includes="liblwjgl*.so"/>
  243. +               </copy>
  244. +       </target>
  245. +
  246.         <!-- Compiles LWJGL on solaris platforms -->
  247.         <target name="-compile_native_solaris" if="lwjgl.platform.solaris">
  248.                 <!-- Reusing the linux ant task, but copy the output to solaris -->
  249.  
  250.  
clone this paste RAW Paste Data