aboutsummaryrefslogtreecommitdiff
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
parenta58d7e22f13f1d5178b029723a24ffd972767d77 (diff)
Initial code for installing modules.
-rw-r--r--Makefile9
-rw-r--r--build/Makefile.in16
-rw-r--r--build/module-install.pl37
3 files changed, 59 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index ad6ba09..5695840 100644
--- a/Makefile
+++ b/Makefile
@@ -13,13 +13,14 @@ MODULES_DIR = $(DISTDIR)/modules
BUILD_FILES = \
build/gen_parrot.pl \
+ build/module-install.pl \
build/Makefile.in \
MODULES = \
git://github.com/masak/ufo \
git://github.com/masak/proto \
- git://github.com/jnthn/zavloaj \
- git://github.com/jnthn/blitzkost \
+ git://github.com/jnthn/zavolaj \
+ git://github.com/jnthn/blizkost \
git://github.com/mberends/MiniDBI \
git://github.com/masak/xml-writer \
git://github.com/moritz/svg \
@@ -62,7 +63,7 @@ $(BUILD_DIR): $(BUILD_FILES)
$(BUILD_DIR)/PARROT_REVISION: $(RAKUDO_DIR) $(RAKUDO_DIR)/build/PARROT_REVISION
cp $(RAKUDO_DIR)/build/PARROT_REVISION $(BUILD_DIR)
-$(MODULES_DIR):
+$(MODULES_DIR): always
mkdir -p $(MODULES_DIR)
cd $(MODULES_DIR); for repo in $(MODULES); do git clone $$repo.git; done
@@ -79,6 +80,8 @@ $(DISTDIR)/MANIFEST:
version_check:
@[ -n "$(VERSION)" ] || ( echo "\nTry 'make VERSION=yyyy.mm'\n\n"; exit 1)
+always:
+
release: $(DISTDIR)
perl -ne 'print "$(DISTDIR)/$$_"' $(DISTDIR)/MANIFEST |\
tar -zcv -T - -f $(DISTDIR).tar.gz
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);
+}