You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Create the JNI prototypes for the native methods:

MCCDEV> javah -o dpslcbpm_jni.h -classpath [------] "edu.stanford.slac.aida.dp.d
pSlcBpm.DpSlcBpmI_impl"

 

Create your JNI interface module (the C code that the java calls). By convention we call this module dp<servername>_jni.c. It must have the *ATTRIBUTES*=JNI at the top so cmp knows how to compile it, and it should include the output file from the step above. Eg:

/*
      **MEMBER**=SLCLIBS:AIDASHRLIB
      **ATTRIBUTES**=JNI
*/
#include "dpslcbpm_jni.h"

 

Create the dp<servername>_jni_helper.c file. This is the module that defines the functions that access the control system. The names of the functions it *defines* must all be in upper-case (due to the compiling and linking configurations specified in slccom:compile.com and the build com files). But the functions that those function call (in the control system shareables), need not be in upper-case.

Compile the dp<servername>_jni.c and dp<servername>_jni_helper.c file into an aidashr_devlib.olb

MCCDEV> lib/create aidashr_devlib.olb
MCCDEV> cinc *.c

 

Create an aidashr_xfr_alpha.opt. Due to namemanging of JNI and VMS linking
namespace restrictions, it's important to do this with java$jni_example:scan_globals_for_option.com.

MCCDEV> libr/extract=dpslcbpm_jni/output=dpslcbpm_jni aidashr_devlib
MCCDEV>  @java$jni_example:scan_globals_for_option *.obj aidashr_xfr_alpha.opt

Link your aidashr, using the opt file created above:

MCCDEV> buildtest aidashr /default 

 

 

 

 

 

 

  • No labels