From 5d1a7bccc213b2444581345c06f756f1fa538c50 Mon Sep 17 00:00:00 2001 From: pmichaud Date: Tue, 27 Jul 2010 23:36:55 -0500 Subject: Initial code for installing modules. --- Makefile | 9 ++++++--- build/Makefile.in | 16 ++++++++++++++++ build/module-install.pl | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 build/module-install.pl 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); +} -- cgit v1.1