aboutsummaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorpmichaud <pmichaud@pobox.com>2010-07-27 23:36:55 -0500
committerpmichaud <pmichaud@pobox.com>2010-07-27 23:36:55 -0500
commit5d1a7bccc213b2444581345c06f756f1fa538c50 (patch)
tree867ba5350303538eeec40abe617562356afe0b89 /build
parenta58d7e22f13f1d5178b029723a24ffd972767d77 (diff)
Initial code for installing modules.
Diffstat (limited to 'build')
-rw-r--r--build/Makefile.in16
-rw-r--r--build/module-install.pl37
2 files changed, 53 insertions, 0 deletions
diff --git a/build/Makefile.in b/build/Makefile.in
index 781130f..9c85fb5 100644
--- a/build/Makefile.in
+++ b/build/Makefile.in
@@ -49,6 +49,21 @@ MANDIR = @mandir@
DOCDIR = @prefix@/share/doc
PERL6_EXE = perl6$(EXE)
+PERL6_LANG_DIR = $(PARROT_LIB_DIR)/languages/perl6
+
+MODULES = \
+ modules/zavolaj \
+ modules/MiniDBI \
+ modules/xml-writer \
+ modules/svg \
+ modules/svg-plot \
+ modules/Math-RungeKutta \
+ modules/Math-Model \
+ modules/mainline \
+ modules/perl6-Config-INI \
+ modules/perl6-File-Find \
+ modules/perl6-Term-ANSIColor \
+ modules/Algorithm-Viterbi \
all: rakudo
@@ -65,6 +80,7 @@ modules-install:
@echo "Installing 'ufo'"
$(CP) modules/ufo/ufo $(PARROT_BIN_DIR)/ufo
$(CHMOD) 755 $(PARROT_BIN_DIR)/ufo
+ $(PERL) build/module-install.pl $(PERL6_EXE) $(DESTDIR)$(PERL6_LANG_DIR)/lib $(MODULES)
install: rakudo-install modules-install
diff --git a/build/module-install.pl b/build/module-install.pl
new file mode 100644
index 0000000..cba32df
--- /dev/null
+++ b/build/module-install.pl
@@ -0,0 +1,37 @@
+#! perl
+
+use warnings;
+use strict;
+use File::Find;
+use File::Copy;
+use File::Path;
+use File::Basename;
+
+my $perl6 = shift @ARGV;
+my $perl6lib = shift @ARGV;
+
+my @pmfiles;
+while (@ARGV) {
+ my $module = shift @ARGV;
+ our $mlib = "$module/lib";
+
+ find({ no_chdir=>1, wanted => \&libcopy }, $mlib);
+
+ sub libcopy {
+ return unless /\.pm6?/;
+ my $source = $File::Find::name;
+ my $target = $source;
+ $target =~ s/$mlib/$perl6lib/;
+ print "$source => $target\n";
+ mkpath dirname($target);
+ copy($source, $target) or die "copy failed: $!\n";
+ push @pmfiles, $target;
+ }
+}
+
+foreach my $pm (@pmfiles) {
+ my $out = $pm; $out =~ s/\.pm6?$/.pir/;
+ my @cmd = ('./perl6', '--target=pir', "--output=$out", $pm);
+ print join(' ', @cmd), "\n";
+ system(@cmd);
+}