Commit | Line | Data |
d50cb536 |
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 | |
7 | use Config; |
8 | |
9 | eval `$JPL_HOME/setvars -perl`; |
10 | |
11 | chop($WHAT = `pwd`); |
12 | $WHAT =~ s#.*/##; |
13 | |
14 | if ($^O eq 'linux') { |
15 | $flags = "-Dbool=char"; # avoid builtin bool altogether |
16 | $libs = "-lc -lm -ldl"; |
b83c0eaa |
17 | } else { |
d50cb536 |
18 | $flags = ""; |
19 | $libs = "-lc -lm -ldl"; |
20 | } |
b83c0eaa |
21 | |
22 | # Needed for JNI |
23 | if ($^O eq 'solaris') { |
24 | $libs .= " -lthread"; |
25 | } |
26 | |
d50cb536 |
27 | chop($cwd = `pwd`); |
28 | ($jpldir = $cwd) =~ s#/[^/]*$##; |
29 | |
30 | open(MAKEFILE, ">Makefile"); |
31 | |
32 | print MAKEFILE <<"SUBS"; |
33 | CC = $Config{cc} |
34 | WHAT = $WHAT |
35 | PERL = perl$] |
36 | ARCHNAME = $Config{archname} |
37 | JAVA_HOME = $ENV{JAVA_HOME} |
38 | JPL_HOME = $ENV{JPL_HOME} |
39 | PERLARCHDIR = $Config{archlib} |
40 | FLAGS = $Config{cccdlflags} $Config{ccdlflags} $Config{lddlflags} $flags |
41 | INCL = -I\$(PERLARCHDIR)/CORE \\ |
42 | -I\$(JAVA_HOME)/include \\ |
43 | -I\$(JAVA_HOME)/include/$^O \\ |
44 | -I\$(JAVA_HOME)/include/genunix |
45 | LIBS = $libs |
46 | |
47 | SUBS |
48 | |
49 | print MAKEFILE <<'NOSUBS'; |
50 | .SUFFIXES: .jpl .class |
51 | |
52 | .jpl.class: |
53 | $(PERL) -MJPL::Compile -e "file('$*.jpl')" |
54 | |
55 | all: $(WHAT).class lib$(WHAT).so |
56 | |
57 | debug: $(WHAT)_g.class lib$(WHAT)_g.so |
58 | |
59 | lib$(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 | |
66 | lib$(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 | |
b83c0eaa |
73 | test: all |
74 | java $(WHAT) |
d50cb536 |
75 | |
76 | install: all |
77 | cp *.class $(JPL_HOME)/lib |
78 | cp lib$(WHAT).so $(JPL_HOME)/lib/$(ARCHNAME) |
79 | cp $(WHAT).pl $(JPL_HOME)/perl |
80 | |
81 | clean: |
82 | rm -f $(WHAT).c $(WHAT).h \ |
83 | $(WHAT)*.class $(WHAT)*.pl lib$(WHAT).so $(WHAT)*.java |
84 | |
85 | distclean: clean |
86 | rm -f Makefile |
87 | |
88 | NOSUBS |
89 | |
90 | close MAKEFILE; |