source: asp_wo_cfg/trunk/utils/makerelease@ 49

Last change on this file since 49 was 49, checked in by ertl-hiro, 12 years ago

asp_wo_kernelをコミット。

  • Property svn:executable set to *
  • Property svn:keywords set to Id
File size: 4.1 KB
Line 
1#! /usr/bin/perl
2#
3# TOPPERS Software
4# Toyohashi Open Platform for Embedded Real-Time Systems
5#
6# Copyright (C) 2006-2011 by Embedded and Real-Time Systems Laboratory
7# Graduate School of Information Science, Nagoya Univ., JAPAN
8#
9# 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
10# ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
11# 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
12# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
13# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
14# スコード中に含まれていること.
15# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
16# 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
17# 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
18# の無保証規定を掲載すること.
19# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
20# 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
21# と.
22# (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
23# 作権表示,この利用条件および下記の無保証規定を掲載すること.
24# (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
25# 報告すること.
26# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
27# 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
28# また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
29# 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
30# 免責すること.
31#
32# 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
33# よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
34# に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
35# アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
36# の責任を負わない.
37#
38# @(#) $Id: makerelease 49 2012-09-06 04:41:53Z ertl-hiro $
39#
40
41require 'getcwd.pl';
42
43$cwd = getcwd();
44$cwd =~ s/^.*[\/\\]([^\/\\]+)$/$1/;
45$prefix = "./".$cwd;
46
47@file_list = ();
48%file_list = ();
49
50if ($#ARGV >= 0) {
51 $arg1 = $ARGV[0];
52 $arg1 =~ s/\.\///;
53}
54else {
55 $arg1 = "MANIFEST";
56}
57
58sub gen_path
59{
60 local($base, $path) = @_;
61
62 while ($path =~ /^..\/(.*)$/) {
63 $path = $1;
64 $base =~ s/(\/?)[^\/]*\/$/$1/;
65 }
66 return($base.$path);
67}
68
69sub read_file {
70 local($filename) = @_;
71 local($fh, $dirname);
72
73 if ($filename =~ /^(.*\/)[^\/]*$/) {
74 $dirname = $1;
75 }
76 else {
77 $dirname = "";
78 }
79
80 open($fh, $filename) || die "Cannot open $filename";
81 while ($line = <$fh>) {
82 chomp $line;
83 $line =~ s/\r$//;
84 $line =~ s/[ \t]*\#.*$//;
85 next if ($line =~ /^[ \t]*$/);
86
87 if ($line =~ /^E_PACKAGE[ \t]+(.*)$/) {
88 if ($package) {
89 die "Duplicated E_PACKAGE directive.";
90 }
91 else {
92 $package = $1;
93 $e_package = 1;
94 }
95 }
96 elsif ($line =~ /^PACKAGE[ \t]+(.*)$/) {
97 if ($package) {
98 if (!$e_package && $package != $1) {
99 die "Inconsistent PACKAGE directive.";
100 }
101 }
102 else {
103 $package = $1;
104 }
105 }
106 elsif ($line =~ /^VERSION[ \t]+(.*)$/) {
107 if ($version) {
108 if (!$e_package && $version != $1) {
109 die "Inconsistent VERSION directive.";
110 }
111 }
112 else {
113 $version = $1;
114 if ($version =~ /%date/) {
115 @current_time = localtime();
116 $vdate = sprintf("%04d%02d%02d", $current_time[5]+1900,
117 $current_time[4]+1, $current_time[3]);
118 $version =~ s/%date/$vdate/;
119 }
120 }
121 }
122 elsif ($line =~ /^INCLUDE[ \t]+(.*)$/) {
123 read_file(gen_path($dirname, $1));
124 }
125 else {
126 $filename = $prefix."/".$dirname.$line;
127 while ($filename =~ s|/[^/]+/\.\./|/|) {}
128 if ($file_list{$filename}) {
129 die "$filename is duplicated.";
130 }
131 else {
132 push(@file_list, $filename);
133 $file_list{$filename} = $filename;
134 }
135 }
136 }
137 close($fh);
138}
139
140read_file($arg1);
141unless ($package) {
142 die "PACKAGE/E_PACKAGE directive not found.";
143}
144unless ($version) {
145 die "VERSION directive not found.";
146}
147
148if (! -d "RELEASE") {
149 mkdir("RELEASE");
150}
151
152$archive_name = $package."-".$version.".tar.gz";
153$file_list = join(" ", @file_list);
154$command = "tar cvfz RELEASE/$archive_name -C .. $file_list\n";
155die if (system($command));
156print STDERR "== RELEASE/$archive_name is generated. ==\n";
Note: See TracBrowser for help on using the repository browser.