Remove unused file cl_render_ext.h This originally held definitions that hadn't been finalized before the release of OpenGL 1.1, but later those were put in the normal set of header files, making this file redundant.
Upgrade OpenCL headers to standard Khronos version 1.1 They were previously a pre-release version of 1.1 that had some manual changes and upgrades. This moves to the canonical versions downloaded from khronos.org.
Remove copy of generated Java files to build-temp directory This build step doesn't seem to be needed; can just read the files where they're created in the build directory and everything works the same.
Add OpenCL 1.2 and 2.0 headers and CLImpl classes Added stub includes for OpenCL 1.2 and 2.0. Added new CLImpl versions for 1.2 and 2.0 to the build, but left them unused for now. The CL bindings used by JOCL are still generated from OpenCL 1.1, so the existing Java code will be able to stay mostly unchanged in the future.
Add explicit version number to original CL impl classes. This makes all three versions (1.1, 1.2, and 2.0) use the same naming convention, and sets me up to use the unversioned name to factor out code common to all three.
Factor out common custom C and Java code to reduce duplication Consolidated C custom code so common functions are only defined once in the 1.1 version, then are called from the 1.2 and 2.0 version. Pulled common code in CLImpl up into the autogenerated implementation class and removed the hand-written implementation (since it was left empty). Factored custom Java code out so there was as little duplication as possible across the three CLImpl versions, with common code for all three versions in clImplCustomCode.java.
Add ability to access newer CLImpl versions for devices Added a CLPlatform method to return a CLImpl version specific to a device. This lets the user get a CLImpl12 or CLImpl20 instance which they could then cast to the right type and use to access newer CL functions than those in the default CLImpl11 object.
Remove CLGL interface This removes the last sub-interface that would have to be separately versioned for future versions of OpenCL. After this, new OpenCL versions will only create one new interface and one new implementation.
Remove unused stuff from build.xml Removed header file downloader task which was no longer used (and not really possible to use, given the amount of manual tweaking needed to get gluegen to run on a new set of header files). Removed some commented-out lines that were obsolete. Fixed some formatting. Removed some ARMv6-related stuff that made no sense for JOCL (was inherited from JOAL). Added some forgotten dependency paths.
Fix generated files dependency check; remove unused include paths Fixed the dependency check for generated files; previously we were looking at the wrong path, and always regenerating all files. Also removed some include paths that don't contain any files, and renamed some filesets so it's more clear what they contain.
Fix CLProgram build lock to work on Intel OpenCL implementation The Intel OpenCL implementation calls the clBuildProgram notify function on a different thread, so had to change a reentrant lock to a semaphore to allow this.
Fix CLProgramTest for Intel OpenCL Added a couple of differences in test results for programs recreated from binaries (the programs are executable and have binary length > 0), and avoided the CL kernel creation test on a binary because it segfaults like it does on AMD drivers.
Fix compilation of OpenCL 2.x headers on OS X The include files were getting the OS X framework files from OpenCL/*.h, instead of the local stub files from CL/*.h, which meant that OpenCL 2.x-related things were undefined. Changed OpenCL 2.x stub files to refer to local .h files only. Maybe later change 1.x also, but leaving it for now to minimize disruption to working code.
Fix OS X 32-bit builds for OpenCL 1.2 and 2.0 Copies changes from Sven's commit f7c50fca34df0b5d393ffab0da09bce19ddfba64 into the two new config files for OpenCL 1.2 and 2.0, so the fix will be present in all three versions.