コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2009年11月9日 >>> 2009年10月27日
link もっと後

2009年11月3日

Automakeの不細工な出力

最近はMakefileを自作せずに、GNU Toolchainの勉強も兼ねてGNU Automakeを使ってMakefileを生成しています。大したプログラムでもないのに ./configureとやるのはめんどくさいけど…。

Automakeで作ったMakefileはコマンドの実行履歴が大量に出ます。コンパイラに大量のオプションを渡すのと、そのオプションを全てログとして出力するためです。そのせいでコンパイラの警告やエラーがすっ飛んでいって消えてしまいます。

大量のログを見直すのはつらいです。いちいちスクロールバックしたり、パイプしてページャで見なければならないので、非常に面倒です。

Linuxの簡素な出力

この点優秀なのがLinux Kernel 2.6のビルドスクリプトです。単純にmakeとすると簡潔なログ、make V=1とすると詳細なログが出ます。

Linuxのmakeは以下のようなログが出ます。どのファイルに何をしている(CC, LD, CHKなど)か?だけが表示されます。

Linux Kernel 2.6のmake
$ make
scripts/kconfig/conf -s arch/x86/Kconfig
  CHK     include/linux/version.h
  UPD     include/linux/version.h
(略)
  UPD     include/linux/compile.h
  CC      init/version.o
...

同じ部分の詳細出力(make V=1)は以下のようになります。

Linux Kernel 2.6のmake V=1(80文字折り返し)
$ make V=1
make -f /home/katsuhiro/usr/src/linux-2.6.30/Makefile silentoldconfig
make -f scripts/Makefile.build obj=scripts/basic
mkdir -p include/linux include/config
make -f scripts/Makefile.build obj=scripts/kconfig silentoldconfig
  gcc  -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.
  o -lncurses
scripts/kconfig/conf -s arch/x86/Kconfig
rm -f include/config/kernel.release
echo 2.6.30 > include/config/kernel.release
set -e; : '  CHK     include/linux/version.h'; mkdir -p include/linux/;        (
echo \#define LINUX_VERSION_CODE 132638; echo '#define KERNEL_VERSION(a,b,c) ((
(a) << 16) + ((b) << 8) + (c))';) < /home/katsuhiro/usr/src/linux-2.6.30/Makefil
e > include/linux/version.h.tmp; if [ -r include/linux/version.h ] && cmp -s inc
lude/linux/version.h include/linux/version.h.tmp; then rm -f include/linux/versi
 on.h.tmp; else : '  UPD     include/linux/version.h'; mv -f include/linux/versi
 on.h.tmp include/linux/version.h; fi
(略)
  UPD     include/linux/compile.h
  gcc -Wp,-MD,init/.version.o.d  -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/
4.3.2/include -Iinclude  -I/home/katsuhiro/usr/src/linux-2.6.30/arch/x86/include
 -include include/linux/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototype
s -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-decl
aration -Os -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-
boundary=2 -march=i686 -mtune=generic -Wa,-mtune=generic32 -ffreestanding -DCONF
IG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchro
nous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-stack-protector -
fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement
 -Wno-pointer-sign -fwrapv   -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(
version)"  -D"KBUILD_MODNAME=KBUILD_STR(version)"  -c -o init/version.o init/ver
sion.c
...

普段はmakeのシンプルなログで異常がないかどうかだけをチェックします。ビルドエラーに遭遇したらmake V=1で詳細なコンパイルオプションを眺めて原因を考えます。便利ですねえ。

Automakeではできないの?

良いモノは見習いましょう。Automakeでログを抑制する方法はないのでしょうか?

残念ながら、ネットでちょこっと調べた限りではやり方がわかりませんでした。誰かご存じないですか?

編集者:すずき(2009/11/03 17:43)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2009年11月9日 >>> 2009年10月27日
link もっと後

管理用メニュー

link 記事を新規作成

<2009>
<<<11>>>
1234567
891011121314
15161718192021
22232425262728
2930-----

最近のコメント5件

  • link 14年6月13日
    2048player...さん (09/26 01:04)
    「最後に、この式を出すのに紙4枚(A4)も...」
  • link 14年6月13日
    2048playerさん (09/26 01:00)
    「今のところ最も簡略化した式です。\n--...」
  • link 14年6月13日
    2048playerさん (09/16 01:00)
    「返信ありがとうございます。\nコメントが...」
  • link 14年6月13日
    すずきさん (09/12 21:19)
    「コメントありがとうございます。同じ結果に...」
  • link 14年6月13日
    2048playerさん (09/08 17:30)
    「私も2048の最高スコアを求めたのですが...」

最近の記事20件

  • link 24年9月14日
    すずき (09/22 11:23)
    「[OpenSBIを調べる - scratch領域の詳細] 目次: Linux今回はOpenSBIのコード内に頻出するscrat...」
  • link 21年8月11日
    すずき (09/22 00:15)
    「[Kindle - まとめリンク] 目次: Kindle初代Kindle Fire HDの話。Kindle Fire HDのカ...」
  • link 24年8月11日
    すずき (09/22 00:14)
    「[Amazonマイリストへの問い合わせの返事がきた] 目次: Kindle先日(2024年8月4日の日記参照)Amazonへ問...」
  • link 24年5月19日
    すずき (09/21 23:23)
    「[Yocto - まとめリンク] 目次: YoctoHello YoctoYoctoのセットアップスクリプトとビルドディレクト...」
  • link 24年9月17日
    すずき (09/21 23:22)
    「[Yoctoの並列Fetchでエラーが起きるとき] 目次: YoctoYoctoは特に何も指定せずにビルドすると全スレッドを使...」
  • link 23年4月24日
    すずき (09/19 22:25)
    「[Arty A7のFPGAを書き換える方法] 目次: RISC-VいつもArty A7-100を書き換えるときSPI Flas...」
  • link 23年4月10日
    すずき (09/17 21:06)
    「[Linux - まとめリンク] 目次: Linux関係の深いまとめリンク。目次: RISC-V目次: ROCK64/ROCK...」
  • link 24年9月13日
    すずき (09/17 19:26)
    「[OpenSBIを調べる - OpenSBIとRISC-V ISA extensions] 目次: Linux今回はOpenS...」
  • link 24年8月31日
    すずき (09/01 15:01)
    「[Microsoftマウスが壊れた] 3年前くらいに購入した(2021年3月6日の日記参照)Microsoft Basic O...」
  • link 23年5月15日
    すずき (09/01 15:00)
    「[車 - まとめリンク] 目次: 車三菱FTOの話。群馬県へのドライブ将来車を買い替えるとしたら?FTOのオイル交換とオイル漏...」
  • link 24年8月25日
    すずき (09/01 14:59)
    「[レガシィの7回目の車検完了] 目次: 車ディーラーまで車検の車を取りに行きました。外は非常に暑くて辛いです…&...」
  • link 21年3月6日
    すずき (09/01 14:14)
    「[気に入るマウスはどれ?] 手に合うワイヤレスマウスを探し続け、高級製品、小さい製品、お手ごろ製品と買いまくり、一時は家に5個...」
  • link 24年8月27日
    すずき (08/28 23:42)
    「[Milk-V Jupiterが届いた] 目次: RISC-VMilk-V Jupiterが届きました。お値段が非常に安かった...」
  • link 21年6月18日
    すずき (08/28 23:29)
    「[RISC-V - まとめリンク] 目次: RISC-V関係の深いまとめリンク。目次: LinuxSiFive社ボードの話、C...」
  • link 22年12月22日
    すずき (08/28 22:05)
    「[x86とARMとRISC-VでCoreMark対決] 目次: RISC-VCoreMarkを以前(2019年7月5日の日記参...」
  • link 22年5月26日
    すずき (08/27 12:39)
    「[glibcのスレッドとスタック] 目次: C言語とlibc誰も興味ないglibcの話シリーズ、スレッドのスタックはどうやって...」
  • link 22年8月29日
    すずき (08/21 16:22)
    「[マンガ紹介] 目次: マンガ紹介久しぶりにお気に入りのマンガ紹介シリーズ。短めの完結作品を2つ。赤髪の女商人(全3巻、202...」
  • link 22年7月8日
    すずき (08/21 14:21)
    「[マンガ紹介 - まとめリンク] 目次: マンガ紹介一覧が欲しくなったので作りました。5作品乙女ゲームの破滅フラグしかない悪役...」
  • link 19年3月28日
    すずき (08/21 14:19)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。こわもてかわもて(全2巻、2019年)(アマゾンへのリンク)...」
  • link 19年1月31日
    すずき (08/21 14:15)
    「[ハコヅメ] 目次: マンガ紹介Facebookで教えてもらったマンガ「ハコヅメ」を買ってみました。面白いです。次が楽しみです...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 09/26 01:04