home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / jpl / Sample / Makefile.PL next >
Perl Script  |  1999-09-14  |  2KB  |  91 lines

  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";
  17. } else {
  18.     $flags = "";
  19.     $libs = "-lc -lm -ldl";
  20. }
  21.  
  22. # Needed for JNI
  23. if ($^O eq 'solaris') {
  24.     $libs .= " -lthread";
  25. }
  26.  
  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.  
  73. test: all
  74.     java $(WHAT)
  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;
  91.