4 # Toyohashi Open Platform for Embedded Real-Time Systems/
5 # Just Standard Profile Kernel
7 # Copyright (C) 2001-2003 by Embedded and Real-Time Systems Laboratory
8 # Toyohashi Univ. of Technology, JAPAN
10 # 上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
11 # によって公表されている GNU General Public License の Version 2 に記
12 # 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
13 # を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
15 # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
16 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
18 # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
19 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
20 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
22 # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
23 # 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
25 # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
26 # 作権表示,この利用条件および下記の無保証規定を掲載すること.
27 # (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
29 # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
30 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
32 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
33 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
34 # 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
35 # 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
37 # @(#) $Id: configure,v 1.13 2003/12/06 06:16:16 hiro Exp $
47 # -A <uname> アプリケーションプログラム名
48 # -U <utask> 他のアプリケーションプログラムファイル
50 # -L <kernel_lib> カーネルライブラリ(libkernel.a)のディレクトリ名
51 # (省略した場合,カーネルライブラリも make する)
52 # -D <srcdir> カーネル等のソースの置かれているディレクトリ
53 # -P <prefix> 開発環境インストール時の PREFIX
54 # (現在は PREFIX を使っているファイルはない)
55 # -p <perl> perl のパス名(明示的に指定する場合)
56 # -l <lang> プログラミング言語(現時点ではC++のみサポート)
57 # -d <dir> テンプレートディレクトリを指定(デフォルトはsample)
61 # % ../configure -C m68k -S dve68k -A test1 -U test_support.o -L .
65 # % ../configure -C linux
66 # アプリケーションプログラムは sample1 になる.
71 do Getopt
("CSTAULDPpld");
73 print STDERR
"configure: -C option is mandatory\n";
78 $sys = $opt_S ?
$opt_S : "";
79 $tool = $opt_T ?
$opt_T : "";
80 $uname = $opt_A ?
$opt_A : "sample1";
81 $utask = $opt_U ?
$opt_U : "";
82 $kernel_lib = $opt_L ?
$opt_L : "";
83 $prefix = $opt_P ?
$opt_P : "/usr/local";
84 $perl = opt_p ?
$opt_p : do get_path
("perl", ("/usr/local/bin", "/usr/bin"));
85 $lang = $opt_l ?
$opt_l : "";
86 $templatedir = $opt_d ?
$opt_d : "sample";
96 if ($uname[0] =~ /^cygwin/i) {
108 local($progname, @pathlist) = @_;
111 foreach $path (@pathlist) {
112 if (-x
$path."/".$progname) {
113 return($path."/".$progname);
123 local($infile, $outfile) = @_;
124 local($line, $varname, $varval);
126 print STDERR
"configure: Generating $outfile from $infile.\n";
128 print STDERR
"configure: $outfile exists.",
129 " Save as $outfile.bak.\n";
130 rename($outfile, $outfile.".bak");
132 unless (open(INFILE
, $infile)) {
133 print STDERR
"configure: can't open $infile\n";
136 unless (open(OUTFILE
, "> ".$outfile)) {
137 print STDERR
"configure: can't open $outfile\n";
141 while ($line = <INFILE
>) {
143 while ($line =~ /^(.*)\@\(([A-Za-z_]+)\)(.*)$/) {
144 $line = $1.$vartable{$2}.$3;
146 print OUTFILE
$line,"\n";
157 local($file, $mandatory) = @_;
161 $path = $sampledir.$file.".".$cpu."-".$sys;
163 do convert
($path, $file);
167 $path = $sampledir.$file.".".$sys;
169 do convert
($path, $file);
174 $path = $sampledir.$file.".".$cpu;
176 do convert
($path, $file);
180 $path = $sampledir.$file;
181 if ($mandatory || -f
$path) {
182 do convert
($path, $file);
193 $pwd = `pwd`; chop $pwd;
195 $srcabsdir = $srcdir = $opt_D;
197 elsif ($0 =~ /(.*)\/configure
/) {
199 if ($srcdir =~ /^\//) {
200 $srcabsdir = $srcdir;
203 $srcabsdir = $pwd."/".$srcdir;
207 $srcabsdir = $srcdir = $pwd;
209 $sampledir = $srcdir."/".$templatedir."/";
215 $vartable{"CPU"} = $cpu;
216 $vartable{"SYS"} = $sys;
217 $vartable{"TOOL"} = $tool;
218 $vartable{"UNAME"} = $uname;
219 $vartable{"UTASK"} = $utask;
220 $vartable{"KERNEL_LIB"} = $kernel_lib;
221 $vartable{"SRCDIR"} = $srcdir;
222 $vartable{"SRCABSDIR"} = $srcabsdir;
223 $vartable{"PREFIX"} = $prefix;
224 $vartable{"OBJEXT"} = do get_objext
();
225 $vartable{"PERL"} = $perl;
226 $vartable{"LANG"} = $lang;
232 if (! -d
$srcdir."/config/".$cpu) {
233 print STDERR
"configure: $srcdir/config/$cpu not exist\n";
236 if ($sys && ! -d
$srcdir."/config/".$cpu."/".$sys) {
237 print STDERR
"configure: $srcdir/config/$cpu/$sys not exist\n";
240 if ($tool && ! -d
$srcdir."/config/".$cpu."-".$tool."/".$sys) {
241 print STDERR
"configure: $srcdir/config/$cpu-$tool/$sys not exist\n";
244 if ($tool && $sys && ! -d
$srcdir."/config/".$cpu."-".$tool."/".$sys) {
245 print STDERR
"configure: $srcdir/config/$cpu-$tool/$sys not exist\n";
250 # Makefile とアプリケーションファイルの生成
253 do generate
("Makefile", 1);
254 do generate
($uname.".c", 0);
255 do generate
($uname.".cpp", 0);
256 do generate
($uname.".h", 0);
257 do generate
($uname.".cfg", 0);