root/lang/perl/NanoA/trunk/Makefile.PL @ 24961

Revision 24961, 2.6 kB (checked in by kazuho, 5 years ago)

fix build tool and order, switch to Class::Accessor::Lite

  • Property svn:keywords set to Id
Line 
1# NOTES:
2#   このファイル、およびlibはあくまで開発者向けのもので、ユーザーには
3#       nanoa.cgi
4#       system/not_found.mt
5#       system/app_list.mt
6#       system/header.mt
7#       system/footer.mt
8#   の4ファイルのみを提供する。
9#
10#   nanoa.cgiはmake nanoaで作成される
11
12use strict;
13use inc::Module::Install;
14use File::Find::Rule; # ここで使うだけだから許して!
15use File::Spec;
16
17name('NanoA');
18all_from('lib/NanoA.pm');
19
20# requires には Perl 5.8にデフォルトでインストールされているもの以外は
21# 使ってはいけません
22
23# ここでnanoaルールを定義
24my @extra_files = qw(
25    .htaccess
26    nanoa-conf.cgi
27);
28
29my $version = version();
30my $distdir = File::Spec->catfile('dist-cgi', $version);
31my $postamble = <<EOM;
32NANOADIR = $distdir
33
34EOM
35
36$postamble .= <<'EOM';
37
38EXTLIBS = MENTA/extlib/CGI/ExceptionManager.pm MENTA/extlib/Class/Accessor/Lite.pm
39
40nanoadir:
41        $(NOECHO)$(RM_RF) $(NANOADIR);
42        $(NOECHO)$(MKPATH) $(NANOADIR);
43
44nanoacgi: $(TO_INST_PM)
45        $(FULLPERLRUN) tools/concat.pl $(EXTLIBS) $(TO_INST_PM) > $(NANOADIR)/nanoa.cgi
46        $(NOECHO)$(CHMOD) 755 $(NANOADIR)/nanoa.cgi
47        $(NOECHO)$(ECHO) "Generated $(NANOADIR)/nanoa.cgi"
48
49nanoamanifest:
50        $(NOECHO)$(FULLPERLRUN) tools/manifest.pl $(NANOADIR) > $(NANOADIR)/MANIFEST
51
52nanoaapp:
53        $(NOECHO)$(MKPATH) $(NANOADIR)/app
54        (cd app && tar cf - --no-recursion `svn ls -R`) | (cd $(NANOADIR)/app && tar xf -)
55        $(NOECHO)$(MKPATH) $(NANOADIR)/plugin
56        (cd plugin && tar cf - --no-recursion `svn ls -R`) | (cd $(NANOADIR)/plugin && tar xf -)
57
58nanoa-dist: nanoa
59EOM
60
61$postamble .= <<"EOM";
62        \$(NOECHO)(cd \$(NANOADIR) && tar czf ../nanoa-$version.tar.gz .)
63        tgz2cgi/tgz2cgi.pl --title='NanoA Installer' --end='<a href="./">Next step</a><script>window.setTimeout(function () { location = "./"; }, 5000)</script>' --check-files=.htaccess,nanoa.cgi,lib,extlib,var,app --nph < dist-cgi/nanoa-$version.tar.gz > dist-cgi/nph-nanoa-$version-installer.cgi
64        \$(NOECHO)chmod 755 dist-cgi/nph-nanoa-$version-installer.cgi
65EOM
66
67$postamble .= <<'EOM';
68        $(NOECHO)rm -r $(NANOADIR)
69
70
71nanoa: nanoadir nanoacgi nanoaextlib nanoaapp nanoamanifest
72        $(NOECHO)$(NOOP)
73
74nanoaextlib:
75        $(NOECHO)$(MKPATH) $(NANOADIR)/extlib
76        (cd MENTA/extlib && tar cf - --exclude .svn .) | (cd $(NANOADIR)/extlib && tar xf -)
77        (cd MENTA/lib && tar cf - MENTA/Template.pm) | (cd $(NANOADIR)/extlib && tar xf -)
78        cp -f lib/MENTA/Template.pm $(NANOADIR)/extlib/MENTA/Template.pm
79EOM
80
81foreach my $file (@extra_files) {
82    $postamble .= <<"EOM";
83        \$(CP) $file \$(NANOADIR)/$file
84EOM
85}
86
87postamble($postamble);
88
89WriteAll;
Note: See TracBrowser for help on using the browser.