This commit is contained in:
Adam Murdoch
2012-08-10 06:02:53 +10:00
parent ec2eb737a6
commit 6aa1c12bdc

View File

@@ -1,14 +1,14 @@
Provides Java bindings for various native APIs. # Native-platform: Java bindings for various native APIs
# Available bindings ## Available bindings
## Generic ### Generic
* Get and set UNIX file mode. * Get and set UNIX file mode.
* Get PID of current process. * Get PID of current process.
## Terminal and console ### Terminal and console
These bindings work for both the UNIX terminal and Windows console: These bindings work for both the UNIX terminal and Windows console:
@@ -26,38 +26,49 @@ Currently ported to OS X, Linux, Solaris and Windows. Tested on:
* Solaris 11 (x86) * Solaris 11 (x86)
* Windows 7 (amd64) * Windows 7 (amd64)
# Building ## Building
You will need a very recent snapshot of [Gradle](http://www.gradle.org/). You will need a very recent snapshot of [Gradle](http://www.gradle.org/).
## Ubuntu ### Ubuntu
The g++ compiler is required to build the native library. You will need to `g++` package for this. Generally this is already installed. The g++ compiler is required to build the native library. You will need to `g++` package for this. Generally this is already installed.
You need to install the `libncurses5-dev` package to pick up the ncurses header files. Also worth installing the `ncurses-doc` package too. You need to install the `libncurses5-dev` package to pick up the ncurses header files. Also worth installing the `ncurses-doc` package too.
## Windows ### Windows
You need to install Visual studio, and build from a Visual studio command prompt. You need to install Visual studio, and build from a Visual studio command prompt.
## OS X ### OS X
The g++ compiler is required to build the native library. You will need to install the XCode tools for this. The g++ compiler is required to build the native library. You will need to install the XCode tools for this.
## Solaris ### Solaris
For Solaris 11, you need to install the `development/gcc-45` and `system/header` packages. For Solaris 11, you need to install the `development/gcc-45` and `system/header` packages.
# TODO ## Running
Run `gradle compileMain install` to build.
Run `./build/install/native-platform/bin/native-platform` to run test application.
## TODO
* Fix terminal detection on OS X 10.8
* Package up native lib into self-extracting jar. * Package up native lib into self-extracting jar.
* Fix TERM=dumb * Build 32 bit and 64 bit libraries.
* Support for cygwin terminal
* Use TERM=xtermc instead of TERM=xterm on Solaris.
* Add diagnostics for terminal.
* Split out separate native library for terminal handling. * Split out separate native library for terminal handling.
* Version each native interface separately.
* String names for errno values. * String names for errno values.
* Split into multiple projects. * Split into multiple projects.
* Build 32 bit and 64 bit libraries.
* Test on IBM JVM. * Test on IBM JVM.
* Convert to c. * Convert to c.
* Thread safety. * Thread safety.
* Windows: flush System.out or System.err on attribute change. * Windows: flush System.out or System.err on attribute change.
* Solaris: fix unicode file name handling. * Solaris: fix unicode file name handling.
* Improve error message when unsupported capability is used.