source: asp3_wo_tecs/trunk/utils/makerelease@ 302

Last change on this file since 302 was 302, checked in by ertl-honda, 7 years ago

TECSレスのASP3の開発のため以下のtrunkからコピー
http://dev.toppers.jp/svn/asp3/branches/WO_TECS-3.C.0

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