X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=firmjni%2FREADME;h=1ebcdeafff2812c097e6fc8a1daca0dad9347326;hb=296607102219c3895e55a5b662e340b0c749510d;hp=4695431bdfeeeaea776bd9fcedb5d81d1ccc1a0b;hpb=95af0a8da6ee81b607da91eab80cda44b2165768;p=libfirm diff --git a/firmjni/README b/firmjni/README index 4695431bd..1ebcdeaff 100644 --- a/firmjni/README +++ b/firmjni/README @@ -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. + +========================================================================