This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
resync with mainline
[perl5.git] / jpl / Sample / Makefile.PL
CommitLineData
d50cb536
GS
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";
c529f79d 17} else {
d50cb536
GS
18 $flags = "";
19 $libs = "-lc -lm -ldl";
20}
c529f79d
CB
21
22# Needed for JNI
23if ($^O eq 'solaris') {
24 $libs .= " -lthread";
25}
26
d50cb536
GS
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
c529f79d
CB
73test: all
74 java $(WHAT)
d50cb536
GS
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;