node numbers changed: Unknown no more generated by new_ir_graph
[libfirm] / firmjni / README
index 4695431..1ebcdea 100644 (file)
@@ -1,23 +1,41 @@
 
+This directory contains tools to generate a Java Native Interface for
+libfirm.
 
-Call
-  sh build_firm_jni
-to generate a Java native interface for firm.
+The tools generate for each libfirm header file a Java class
+containing native method calls and static fields.  The native methods
+are derived from the methods in the corresponding libfirm header.  The
+method names are generated by replacing all occurences of '_x' by 'X'.
+(The libfirm headers may not contain method names that only differ by
+capitalizing the letter after an underscore.)  The static fields are
+derived from the enumerators in libfirm.
 
-Generating the JNI requires various syntactic properties of the
-header files that restrict legal C.
+The generator copies the comments from the header files to the Java
+files.  Sometimes it places the comments slightly wrong, i.e. a bit
+too high or too low.  As the comments are directly copied they refer
+to the C names.
 
-Do not use methods that generate a non null terminated String
-from Idents (as idToStr).  This will probably cause a segmentation
-fault.
+Generating the JNI requires various syntactic properties of the header
+files that restrict legal C.  These restrictions will be relaxed at
+some point.
 
-Some methods generated might not work yet.  Please report this to
-goetz@ipd.info.uni-karlsruhe.de. Do not use methods with function
-pointers as arguments.
+Do not use methods that accept or return function pointers.
 
-For now _all_ enumerators are generated into _all_ classes.
-This results from deficiencies in the crecoder and will be removed
-at some place.
+Some other methods generated might not work yet.  Please report this
+to goetz@ipd.info.uni-karlsruhe.de.
+
+WARNING:
+
+For now _all_ enumerators are generated into _all_ classes.  This
+results from deficiencies in the crecoder and will be removed at some
+place.
 Use only the enumerators defined in the corresponding c headers.
 E.g., irm_X is defined in irmode.h, so use Irmode.irm_X, but not
 Type.irm_X or any other definition in the java files.
+
+========================================================================
+
+Call "make" in the build directory to generate the Java native
+interface for firm.  Call "make test" to test the interface.
+
+========================================================================