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}
18else {
19    $flags = "";
20    $libs = "-lc -lm -ldl";
21}
22chop($cwd = `pwd`);
23($jpldir = $cwd) =~ s#/[^/]*$##;
24
25open(MAKEFILE, ">Makefile");
26
27print MAKEFILE <<"SUBS";
28CC = $Config{cc}
29WHAT = $WHAT
30PERL = perl$]
31ARCHNAME = $Config{archname}
32JAVA_HOME = $ENV{JAVA_HOME}
33JPL_HOME = $ENV{JPL_HOME}
34PERLARCHDIR = $Config{archlib}
35FLAGS = $Config{cccdlflags} $Config{ccdlflags} $Config{lddlflags} $flags
36INCL  = -I\$(PERLARCHDIR)/CORE \\
37	-I\$(JAVA_HOME)/include \\
38	-I\$(JAVA_HOME)/include/$^O \\
39	-I\$(JAVA_HOME)/include/genunix
40LIBS = $libs
41
42SUBS
43
44print MAKEFILE <<'NOSUBS';
45.SUFFIXES: .jpl .class
46
47.jpl.class:
48	$(PERL) -MJPL::Compile -e "file('$*.jpl')"
49
50all: $(WHAT).class lib$(WHAT).so
51
52debug: $(WHAT)_g.class lib$(WHAT)_g.so
53
54lib$(WHAT).so: $(WHAT).c $(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter.so
55	$(CC) $(FLAGS) $(INCL) $(WHAT).c \
56	$(PERLARCHDIR)/CORE/libperl.so \
57	$(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter.so \
58	$(LIBS) \
59	-o lib$(WHAT).so
60
61lib$(WHAT)_g.so: $(WHAT).c $(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter_g.so
62	$(CC) -g $(FLAGS) $(INCL) $(WHAT).c \
63	$(PERLARCHDIR)/CORE/libperl.so \
64	$(JPL_HOME)/lib/$(ARCHNAME)/libPerlInterpreter_g.so \
65	$(LIBS) \
66	-o lib$(WHAT)_g.so
67
68test:
69
70install: all
71	cp $(WHAT).class	$(JPL_HOME)/lib
72	cp lib$(WHAT).so	$(JPL_HOME)/lib/$(ARCHNAME)
73	cp $(WHAT).pl		$(JPL_HOME)/perl
74
75clean:
76	rm -f $(WHAT).c $(WHAT).h \
77	$(WHAT)*.class $(WHAT)*.pl lib$(WHAT).so $(WHAT)*.java
78
79distclean: clean
80	rm -f Makefile
81
82NOSUBS
83
84close MAKEFILE;
85