Ephedra Quickstart
The following guide shows you how to get started with Ephedra on an
IBM RS/6000 AIX system. Text you have to enter is shown in blue, terminal
output in black, comments in gray.
- Check out a copy of Ephedra from the Ovid CVS:
guest@rs6000:~$ cvs -d :pserver:guest@cvs.tigris.org:/cvs login
Logging in to :pserver:guest@cvs.tigris.org:2401/cvs
CVS password: guest
guest@rs6000:~$ cvs -d :pserver:guest@cvs.tigris.org:/cvs checkout ovid/Ephedra
cvs server: Updating ovid/Ephedra/C2Java
U ovid/Ephedra/C2Java/C2Java.cc
U ovid/Ephedra/C2Java/Documentation.tex
U ovid/Ephedra/C2Java/c2java.icc
U ovid/Ephedra/C2Java/c2java_pc.icc
cvs server: Updating ovid/Ephedra/C2Java/C
U ovid/Ephedra/C2Java/C/CodeStoreHelpers.cc
U ovid/Ephedra/C2Java/C/ConstructorFinder.cc
U ovid/Ephedra/C2Java/C/ExpressionMatcher.cc
U ovid/Ephedra/C2Java/C/debug.h
... and more similar lines
- You can update your copy of Ephedra from the CVS at any time:
guest@rs6000:~$ cd ~/ovid/Ephedra/C2Java/
guest@rs6000:~/ovid/Ephedra/C2Java$ cvs update -d
cvs server: Updating .
cvs server: Updating C
cvs server: Updating C2Java
... and more similar lines
- Build the Ephedra executable using the VisualAge C++ command line compiler:
guest@rs6000:~$ cd ~/ovid/Ephedra/C2Java/
guest@rs6000:~/ovid/Ephedra/C2Java$ vacbld c2java.icc
If there is no output from vacbld then the build was successful.
- Build the Ephedra Java Runtime:
guest@rs6000:~$ cd ~/ovid/Ephedra/C2Java/Runtime/Java/
guest@rs6000:~/ovid/Ephedra/C2Java/Runtime/Java$ make
mkdir -p /home/guest/java/classes
javac -d /home/guest/java/classes -g ephedra/c2java/DummyPointer.java
javac -d /home/guest/java/classes -g ephedra/c2java/Ellipsis.java
cd ephedra/c2java; ./makeWrapper.sh Function
javac -d /home/guest/java/classes -g ephedra/c2java/Function.java
cd ephedra/c2java; ./makeWrapper.sh pBoolean
... and more similar lines
- Translate a simple C hello world program to Java using Ephedra:
guest@rs6000:~$ cd ~/ovid/Ephedra/C2Java/test/
guest@rs6000:~/ovid/Ephedra/C2Java/test$ ../c2java hello.cc > hello.mak
---> compiling C/C++ code ...
---> transforming C/C++ to Java ...
---> converting selected primitives to wrappers ...
---> generating output files ...
---> done.
Note: c2java generates not only the Java sources for you but also prints
a makefile to standard output. The above command sends standard output to
hello.mak so the generated makefile can then be used to compile and
run the generated Java code.
- Compile and run the generated Java program:
guest@rs6000:~$ cd ~/ovid/Ephedra/C2Java/test/
guest@rs6000:~/ovid/Ephedra/C2Java/test$ make -f hello.mak
mkdir -p /home/guest/java/classes/generated
javac -deprecation -g -d /home/guest/java/classes/generated hello_package/hello.java
guest@rs6000:~/ovid/Ephedra/C2Java/test$ make -f hello.mak hello_package.hello.run
java hello_package.hello
Hello, world!