dslinux/user/perl/jpl/Sample Makefile.PL Sample.jpl

cayenne dslinux_cayenne at user.in-berlin.de
Mon Dec 4 18:00:06 CET 2006


Update of /cvsroot/dslinux/dslinux/user/perl/jpl/Sample
In directory antilope:/tmp/cvs-serv17422/jpl/Sample

Added Files:
	Makefile.PL Sample.jpl 
Log Message:
Adding fresh perl source to HEAD to branch from

--- NEW FILE: Sample.jpl ---
class Sample {
    public static void main(String[] args) {
	Sample sam = new Sample();
	System.out.println(sam.foo("manny","moe","jack"));
	System.out.println(sam.foo(1));
	System.out.println(sam.foo(3.0));
	sam.foo();
    }

    public static int thrice(int i) {
	return i * 3;
    }

    perl void foo() {{
	use POSIX;
	print "TZ = ", POSIX::tzname(), "\n";
	print "Got to ${self}->foo() method\n";
	print "foo__I(2) = ", $self->foo__I__I(2),"\n";
	print "thrice(123) = ", JPL::Sample->thrice__I__I(123), "\n";
	print "thrice(12) = ", JPL::Sample->thrice__I__I(12), "\n";
	print $self->foo__sss__s("MANNY", "MOE", "JACK"), "\n";
	print 41 + $self->foo__sss__s("1", "2", "3"), "\n";
	print "Perl version is $]\n";
    }}

    perl int foo(int a) {{
	$a + $a;
    }}

    perl double foo(double a) {{
	use JPL::Class 'java::util::Random';
	$rng = java::util::Random->new();
	print "RNG = $rng\n";
	print $rng->nextDouble____D(), "\n";
	print $rng->nextDouble____D(), "\n";
	print $rng->nextDouble____D(), "\n";
	print $rng->nextDouble____D(), "\n";
	return $a * $a;
    }}

    perl String foo( String a,
		     String b,
		     String c ) {{
	print "a = $a, b = $b, c = $c\n";
	join "+", $a, $b, $c;
    }}

}

--- NEW FILE: Makefile.PL ---
#!/usr/bin/perl

$JPL_HOME = $ENV{JPL_HOME}
    or die "You have not run setvars to set your environment variables.\n" .
           "See the JPL README file for more information.\n";

use Config;

eval `$JPL_HOME/setvars -perl`;

chop($WHAT = `pwd`);
$WHAT =~ s#.*/##;

if ($^O eq 'linux') {
    $flags = "-Dbool=char";	# avoid builtin bool altogether
    $libs = "-lc -lm -ldl";
} else {
    $flags = "";
    $libs = "-lc -lm -ldl";
}

# Needed for JNI
if ($^O eq 'solaris') {
    $libs .= " -lthread";
}

chop($cwd = `pwd`);
($jpldir = $cwd) =~ s#/[^/]*$##;

open(MAKEFILE, ">Makefile");

print MAKEFILE <<"SUBS";
CC = $Config{cc}
WHAT = $WHAT
PERL = perl$]
ARCHNAME = $Config{archname}
JAVA_HOME = $ENV{JAVA_HOME}
JPL_HOME = $ENV{JPL_HOME}
PERLARCHDIR = $Config{archlib}
FLAGS = $Config{cccdlflags} $Config{ccdlflags} $Config{lddlflags} $flags
INCL  = -I\$(PERLARCHDIR)/CORE \\
	-I\$(JAVA_HOME)/include \\
	-I\$(JAVA_HOME)/include/$^O \\
	-I\$(JAVA_HOME)/include/genunix
LIBS = $libs

SUBS

print MAKEFILE <<'NOSUBS';
.SUFFIXES: .jpl .class

.jpl.class:
	$(PERL) -MJPL::Compile -e "file('$*.jpl')"

all: $(WHAT).class lib$(WHAT).so

debug: $(WHAT)_g.class lib$(WHAT)_g.so

lib$(WHAT).so: $(WHAT).c $(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter.so
	$(CC) $(FLAGS) $(INCL) $(WHAT).c \
	$(PERLARCHDIR)/CORE/libperl.so \
	$(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter.so \
	$(LIBS) \
	-o lib$(WHAT).so

lib$(WHAT)_g.so: $(WHAT).c $(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter_g.so
	$(CC) -g $(FLAGS) $(INCL) $(WHAT).c \
	$(PERLARCHDIR)/CORE/libperl.so \
	$(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter_g.so \
	$(LIBS) \
	-o lib$(WHAT)_g.so

test: all
	java $(WHAT)

install: all
	cp *.class		$(JPL_HOME)/lib
	cp lib$(WHAT).so	$(JPL_HOME)/lib/$(ARCHNAME)
	cp $(WHAT).pl		$(JPL_HOME)/perl

clean:
	rm -f $(WHAT).c $(WHAT).h \
	$(WHAT)*.class $(WHAT)*.pl lib$(WHAT).so $(WHAT)*.java

distclean: clean
	rm -f Makefile

NOSUBS

close MAKEFILE;




More information about the dslinux-commit mailing list