source: ssp_qb_r5f100le_cs/trunk/utils/makerelease@ 95

Last change on this file since 95 was 95, checked in by nmir-saito, 9 years ago

ファイルの mime-type 変更

  • Property svn:mime-type set to text/plain; charset=shift_jis
File size: 4.3 KB
Line 
1#! /usr/bin/perl
2#
3# TOPPERS Software
4# Toyohashi Open Platform for Embedded Real-Time Systems
5#
6# Copyright (C) 2006-2010 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 1866 2010-07-25 13:19:17Z ertl-hiro $
39#
40
41use Cwd;
42
43
44$cwd = getcwd();
45$cwd =~ s/^.*[\/\\]([^\/\\]+)$/$1/;
46$prefix = "./".$cwd;
47
48@file_list = ();
49%file_list = ();
50
51if ($#ARGV >= 0) {
52 $arg1 = $ARGV[0];
53 $arg1 =~ s/\.\///;
54}
55else {
56 $arg1 = "MANIFEST";
57}
58
59sub gen_path
60{
61 local($base, $path) = @_;
62
63 while ($path =~ /^..\/(.*)$/) {
64 $path = $1;
65 $base =~ s/(\/?)[^\/]*\/$/$1/;
66 }
67 return($base.$path);
68}
69
70sub read_file {
71 local($filename) = @_;
72 local($fh, $dirname);
73
74 if ($filename =~ /^(.*\/)[^\/]*$/) {
75 $dirname = $1;
76 }
77 else {
78 $dirname = "";
79 }
80
81 open($fh, $filename) || die "Cannot open $filename";
82 while ($line = <$fh>) {
83 chomp $line;
84 $line =~ s/\r$//;
85 $line =~ s/[ \t]*\#.*$//;
86 next if ($line =~ /^[ \t]*$/);
87
88 if ($line =~ /^E_PACKAGE[ \t]+(.*)$/) {
89 if ($package) {
90 die "Duplicated E_PACKAGE directive.";
91 }
92 else {
93 $package = $1;
94 $e_package = 1;
95 }
96 }
97 elsif ($line =~ /^PACKAGE[ \t]+(.*)$/) {
98 if ($package) {
99 if (!$e_package && $package != $1) {
100 die "Inconsistent PACKAGE directive.";
101 }
102 }
103 else {
104 $package = $1;
105 }
106 }
107 elsif ($line =~ /^VERSION[ \t]+(.*)$/) {
108 if ($version) {
109 if (!$e_package && $version != $1) {
110 die "Inconsistent VERSION directive.";
111 }
112 }
113 else {
114 $version = $1;
115 if ($version =~ /%date/) {
116 @current_time = localtime();
117 $vdate = sprintf("%04d%02d%02d", $current_time[5]+1900,
118 $current_time[4]+1, $current_time[3]);
119 $version =~ s/%date/$vdate/;
120 }
121 }
122 }
123 elsif ($line =~ /^INCLUDE[ \t]+(.*)$/) {
124 read_file(gen_path($dirname, $1));
125 }
126 else {
127 $filename = $prefix."/".$dirname.$line;
128 while ($filename =~ s|/[^/]+/\.\./|/|) {}
129 if ($file_list{$filename}) {
130 die "$filename is duplicated.";
131 }
132 else {
133 push(@file_list, $filename);
134 $file_list{$filename} = $filename;
135 }
136 }
137 }
138 close($fh);
139}
140
141read_file($arg1);
142unless ($package) {
143 die "PACKAGE/E_PACKAGE directive not found.";
144}
145unless ($version) {
146 die "VERSION directive not found.";
147}
148
149if (! -d "RELEASE") {
150 mkdir("RELEASE");
151}
152
153$archive_name = $package."-".$version.".tar.gz";
154$file_list = join(" ", @file_list);
155$command = "tar cvfz RELEASE/$archive_name -C .. $file_list\n";
156die if (system($command));
157print STDERR "== RELEASE/$archive_name is generated. ==\n";
Note: See TracBrowser for help on using the repository browser.