📄 configure
字号:
#! /usr/bin/perl## TOPPERS/JSP Kernel# Toyohashi Open Platform for Embedded Real-Time Systems/# Just Standard Profile Kernel# # Copyright (C) 2001 by Embedded and Real-Time Systems Laboratory# Toyohashi Univ. of Technology, JAPAN# # 惧淡螟侯涪荚は·Free Software Foundation によって给山されている # GNU General Public License の Version 2 に淡揭されている掘凤か·笆# 布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ# アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布·# 网脱と钙ぶ∷することを痰浸で钓满するˉ# (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯# 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖# スコ〖ド面に崔まれていることˉ# (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ# ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱# に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩·# この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ# (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥# み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ# (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯# 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ# (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する# ことˉ# (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄# 巢からも·惧淡螟侯涪荚を倘勒することˉ# # 塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は·# 塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ# ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい# かなる禄巢に簇しても·その勒扦を砷わないˉ# # @(#) $Id: configure,v 1.7 2002/04/08 05:31:52 hiro Exp $# require "getopt.pl";# オプションの年盗## -C <cpu> プロセッサ叹∈涩寇∷# -S <sys> システム叹# -A <uname> アプリケ〖ションプログラム叹# -U <utask> 戮のアプリケ〖ションプログラムファイル# ∈.o ファイル叹で回年ˉ剩眶回年材∷# -P <prefix> 倡券茨董インスト〖ル箕の PREFIX# -m コンフィギュレ〖タの make を乖わない# -d カ〖ネルの make depend を乖う# 蝗脱毋(1)## % ../configure -C m68k -S dve68k -A test1 -U test_support.o -P /usr/local## 蝗脱毋(2)## % ../configure -C linux# アプリケ〖ションプログラムは sample1·PREFIX は /usr/local になるˉ## オプションの借妄#do Getopt("CSAUP");unless ($opt_C) { print STDERR "configure: -C option is mandatory\n"; exit(1);}$cpu = $opt_C;$sys = $opt_S ? $opt_S : "";$uname = $opt_A ? $opt_A : "sample1";$utask = $opt_U ? $opt_U : "";$prefix = $opt_P ? $opt_P : "/usr/local";## ファイルを恃垂する#sub convert { local($infile, $outfile) = @_; local($line, $varname, $varval); print STDERR "configure: Generating $outfile from $infile.\n"; unless (open(INFILE, $infile)) { print STDERR "configure: can't open $infile\n"; exit(1); } unless (open(OUTFILE, "> ".$outfile)) { print STDERR "configure: can't open $outfile\n"; exit(1); } while ($line = <INFILE>) { chop $line; while ($line =~ /^(.*)\@\(([A-Za-z_]+)\)(.*)$/) { $line = $1.$vartable{$2}.$3; } print OUTFILE $line,"\n"; } close(INFILE); close(OUTFILE);}## サンプルを斧つけてファイルを栏喇する#sub generate { local($file, $mandatory) = @_; local($path); if ($sys) { $path = $sampledir.$file.".".$sys; if (-f $path) { do convert($path, $file); return; } } $path = $sampledir.$file.".".$cpu; if (-f $path) { do convert($path, $file); return; } $path = $sampledir.$file; if ($mandatory || -f $path) { do convert($path, $file); } }## 恃眶の介袋步#%vartable = ();$vartable{"CPU"} = $cpu;$vartable{"SYS"} = $sys;$vartable{"UNAME"} = $uname;$vartable{"UTASK"} = $utask;$vartable{"PREFIX"} = $prefix;$pwd = `pwd`; chop $pwd;if ($0 =~ /(.*)\/configure/) { $jspdir = $1; if ($jspdir =~ /^\//) { $jspabsdir = $jspdir; } else { $jspabsdir = $pwd."/".$jspdir; }}else { $jspabsdir = $jspdir = $pwd;}$vartable{"JSPDIR"} = $jspdir;$vartable{"JSPABSDIR"} = $jspabsdir;$sampledir = $jspdir."/sample/";## ファイルのチェック#if (! -d $jspdir."/config/".$cpu) { print STDERR "configure: $jspdir/config/$cpu not exist\n"; exit(1);}if ($sys && ! -d $jspdir."/config/".$cpu."/".$sys) { print STDERR "configure: $jspdir/config/$cpu/$sys not exist\n"; exit(1);}## Makefile とアプリケ〖ションファイルの栏喇#do generate("Makefile", 1);do generate($uname.".c", 0);do generate($uname.".h", 0);do generate($uname.".cfg", 0);## コンフィギュレ〖タの Makefile の栏喇と make#if ($sys) { $makefile = "Makefile.".$cpu."-".$sys;}else { $makefile = "Makefile.".$cpu;}do convert($jspdir."/cfg/Makefile.template", $jspdir."/cfg/$makefile");unless ($opt_m) { print STDERR "configure: Generating configuration tools.\n"; system("cd $jspdir/cfg; make -f $makefile");}## 巴赂簇犯ファイルの栏喇#if ($opt_d) { print STDERR "configure: Generating a dependency file.\n"; system("make depend");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -