source: trunk/essentials/dev-lang/perl/jpl/Sample/Makefile.PL

Last change on this file was 3181, checked in by bird, 18 years ago

perl 5.8.8

File size: 1.9 KB
Line 
1#!/usr/bin/perl
2
3$JPL_HOME = $ENV{JPL_HOME}
4 or die "You have not run setvars to set your environment variables.\n" .
5 "See the JPL README file for more information.\n";
6
7use Config;
8
9eval `$JPL_HOME/setvars -perl`;
10
11chop($WHAT = `pwd`);
12$WHAT =~ s#.*/##;
13
14if ($^O eq 'linux') {
15 $flags = "-Dbool=char"; # avoid builtin bool altogether
16 $libs = "-lc -lm -ldl";
17} else {
18 $flags = "";
19 $libs = "-lc -lm -ldl";
20}
21
22# Needed for JNI
23if ($^O eq 'solaris') {
24 $libs .= " -lthread";
25}
26
27chop($cwd = `pwd`);
28($jpldir = $cwd) =~ s#/[^/]*$##;
29
30open(MAKEFILE, ">Makefile");
31
32print MAKEFILE <<"SUBS";
33CC = $Config{cc}
34WHAT = $WHAT
35PERL = perl$]
36ARCHNAME = $Config{archname}
37JAVA_HOME = $ENV{JAVA_HOME}
38JPL_HOME = $ENV{JPL_HOME}
39PERLARCHDIR = $Config{archlib}
40FLAGS = $Config{cccdlflags} $Config{ccdlflags} $Config{lddlflags} $flags
41INCL = -I\$(PERLARCHDIR)/CORE \\
42 -I\$(JAVA_HOME)/include \\
43 -I\$(JAVA_HOME)/include/$^O \\
44 -I\$(JAVA_HOME)/include/genunix
45LIBS = $libs
46
47SUBS
48
49print MAKEFILE <<'NOSUBS';
50.SUFFIXES: .jpl .class
51
52.jpl.class:
53 $(PERL) -MJPL::Compile -e "file('$*.jpl')"
54
55all: $(WHAT).class lib$(WHAT).so
56
57debug: $(WHAT)_g.class lib$(WHAT)_g.so
58
59lib$(WHAT).so: $(WHAT).c $(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter.so
60 $(CC) $(FLAGS) $(INCL) $(WHAT).c \
61 $(PERLARCHDIR)/CORE/libperl.so \
62 $(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter.so \
63 $(LIBS) \
64 -o lib$(WHAT).so
65
66lib$(WHAT)_g.so: $(WHAT).c $(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter_g.so
67 $(CC) -g $(FLAGS) $(INCL) $(WHAT).c \
68 $(PERLARCHDIR)/CORE/libperl.so \
69 $(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter_g.so \
70 $(LIBS) \
71 -o lib$(WHAT)_g.so
72
73test: all
74 java $(WHAT)
75
76install: all
77 cp *.class $(JPL_HOME)/lib
78 cp lib$(WHAT).so $(JPL_HOME)/lib/$(ARCHNAME)
79 cp $(WHAT).pl $(JPL_HOME)/perl
80
81clean:
82 rm -f $(WHAT).c $(WHAT).h \
83 $(WHAT)*.class $(WHAT)*.pl lib$(WHAT).so $(WHAT)*.java
84
85distclean: clean
86 rm -f Makefile
87
88NOSUBS
89
90close MAKEFILE;
Note: See TracBrowser for help on using the repository browser.