| 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 | |
|---|
| 12 | use strict; |
|---|
| 13 | use inc::Module::Install; |
|---|
| 14 | use File::Find::Rule; # ここで使うだけだから許して! |
|---|
| 15 | use File::Spec; |
|---|
| 16 | |
|---|
| 17 | name('NanoA'); |
|---|
| 18 | all_from('lib/NanoA.pm'); |
|---|
| 19 | |
|---|
| 20 | # requires には Perl 5.8にデフォルトでインストールされているもの以外は |
|---|
| 21 | # 使ってはいけません |
|---|
| 22 | |
|---|
| 23 | # ここでnanoaルールを定義 |
|---|
| 24 | my @extra_files = qw( |
|---|
| 25 | .htaccess |
|---|
| 26 | nanoa-conf.cgi |
|---|
| 27 | ); |
|---|
| 28 | |
|---|
| 29 | my $version = version(); |
|---|
| 30 | my $distdir = File::Spec->catfile('dist-cgi', $version); |
|---|
| 31 | my $postamble = <<EOM; |
|---|
| 32 | NANOADIR = $distdir |
|---|
| 33 | |
|---|
| 34 | EOM |
|---|
| 35 | |
|---|
| 36 | $postamble .= <<'EOM'; |
|---|
| 37 | |
|---|
| 38 | EXTLIBS = MENTA/extlib/CGI/ExceptionManager.pm MENTA/extlib/Class/Accessor/Lite.pm |
|---|
| 39 | |
|---|
| 40 | nanoadir: |
|---|
| 41 | $(NOECHO)$(RM_RF) $(NANOADIR); |
|---|
| 42 | $(NOECHO)$(MKPATH) $(NANOADIR); |
|---|
| 43 | |
|---|
| 44 | nanoacgi: $(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 | |
|---|
| 49 | nanoamanifest: |
|---|
| 50 | $(NOECHO)$(FULLPERLRUN) tools/manifest.pl $(NANOADIR) > $(NANOADIR)/MANIFEST |
|---|
| 51 | |
|---|
| 52 | nanoaapp: |
|---|
| 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 | |
|---|
| 58 | nanoa-dist: nanoa |
|---|
| 59 | EOM |
|---|
| 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 |
|---|
| 65 | EOM |
|---|
| 66 | |
|---|
| 67 | $postamble .= <<'EOM'; |
|---|
| 68 | $(NOECHO)rm -r $(NANOADIR) |
|---|
| 69 | |
|---|
| 70 | |
|---|
| 71 | nanoa: nanoadir nanoacgi nanoaextlib nanoaapp nanoamanifest |
|---|
| 72 | $(NOECHO)$(NOOP) |
|---|
| 73 | |
|---|
| 74 | nanoaextlib: |
|---|
| 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 |
|---|
| 79 | EOM |
|---|
| 80 | |
|---|
| 81 | foreach my $file (@extra_files) { |
|---|
| 82 | $postamble .= <<"EOM"; |
|---|
| 83 | \$(CP) $file \$(NANOADIR)/$file |
|---|
| 84 | EOM |
|---|
| 85 | } |
|---|
| 86 | |
|---|
| 87 | postamble($postamble); |
|---|
| 88 | |
|---|
| 89 | WriteAll; |
|---|