タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

Makefileに関するsasaplus1のブックマーク (11)

  • GNU make: 目次

    GNU make: 目次

  • make-default - Makefile 内でデフォルトのターゲットを任意に変更する - spikelet days

    目的 コマンドラインでターゲットを指定せずにmakeを実行したとき、ビルドされるのはMakefileの最初に定義されたターゲットになる。 この「デフォルトターゲット」を、Makefile内で任意のものに変更したい。 結論 GNU Make 3.81(かそれ以降)を使って、.DEFAULT_GOAL 変数をMakefile内で設定すればよい。 以下、詳細。 背景と動機 大きなソースツリーでは、システム全体で使うMakefileを個々のディレクトリのMakeilfeがincludeして使う、という構成になっている場合が多い。 たとえば以下のような感じで、個々のMakefileがmk/env.mkをincludeして、変数定義やビルド方法などを共通化している。 + TOP + mk + env.mk <----+--+ + src | | 共通のファイルをinclude + subdir1 |

    make-default - Makefile 内でデフォルトのターゲットを任意に変更する - spikelet days
  • [開発]GNU makeのMakefileに、シェルスクリプトを自然に書くたった一つの方法 - ヒルズで働く@robarioの技ログ

    たった一つとか嘘です。 ググッても中々出てこなくて、ちょっといじってたらできちゃったので書き残しておきます。 GNU makeでは1行毎に1つのシェルで実行されるので、 foo:: if true ; then echo "make love" ; fi は foo:: $(SHELL) -c 'if true ; then echo "make love" ; fi' と同じような挙動になります。 よってシェルスクリプトが複数行に渡る場合、 foo:: if true then echo "make love" fi なんて書いてしまうと、 foo:: $(SHELL) -c 'if true' $(SHELL) -c 'then' $(SHELL) -c ' echo "make love"' $(SHELL) -c 'fi' という感じで実行されることになるので当然エラーになります。

    [開発]GNU makeのMakefileに、シェルスクリプトを自然に書くたった一つの方法 - ヒルズで働く@robarioの技ログ
  • Makefileで遊ぼう 〜 階乗, フィボナッチ数, Brainfuck処理系まで - プログラムモグモグ

    しばしば見落とされがちですが, Makefileは立派な(=チューリング完全な)プログラミング言語です. GNU Make, 3rd Edition([1], 以降makeと記します)をパラパラしながら読み終わりました. 最後の最後で, Makefileの中で「数字の計算をする方法」が書いてあり, あ, こりゃ, 僕がやるしか無いな, と思ってこのエントリーを書きました. GNU Make 第3版 作者:Robert Mecklenburg発売日: 2005/12/01メディア: 大型事項 Makefileの基事項です. と言っても, 暗黙のルールとかマニアックな特殊ターゲットとかは今の僕にはあまり興味が無いです. まず, Makefileをビシビシ書くにあたって, デバッグのために簡単に出力する方法を知って置かなければなりません. warning関数を使います. make1

    Makefileで遊ぼう 〜 階乗, フィボナッチ数, Brainfuck処理系まで - プログラムモグモグ
  • プログラミング言語Makeの関数型フラグメント:まとめとサンプル - 檜山正幸のキマイラ飼育記 (はてなBlog)

    一時Makefileに凝っていました。Makefileの記述構文のなかに、「Lispに似た小さな関数型言語が埋め込まれているんだ」とか言ってましたよね。あれはまー、遊び半分なんだけど、このテの知識は、実際にMakefileを読み書きするときにも役にたちます。 過去のMakefile関係エントリーを読み返そうと思ったら、けっこう量があるし、紆余曲折があるんで、ここに整理してまとめておこうと思います。 内容: 参考資料 概念と用語 データ型 変数 関数 制御構造 画面出力と強制終了 ●参考資料 Makefileに関しては、次のエントリー群でゴタゴタと説明しています。 Makefileの書き方、その勘どころ Makefileの書き方:プログラミング言語Make プログラミング言語Make 補遺:引数付きの関数 Make 補遺の補遺:遊んでいるだけ Make言語で算術演算 <-- バカ! もっとも

    プログラミング言語Makeの関数型フラグメント:まとめとサンプル - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • dotfilesをgithubで管理し、Vundleを導入する - 技術めも

    環境が新しくなったので、これを機に設定ファイル類の管理を見直してみました。 調べてみると大抵は以下のように管理されているようなので、合わせてやってみます。 dotfilesをgithubで管理する(今回は.zshrcと.vimrcです) vimプラグインをvundleで管理する dotfilesをgithubで管理する 毎回設定ファイル等をコピーしたりするのが煩わしいので、githubで管理するようにします。 手順は以下の通りです。 # dotfilesディレクトリを作成 mkdir ~/dotfiles cd ~/dotfiles # dotfilesをgit管理する git init # 「.」ファイルをdotfilesに移動 mv ~/.zshrc ~/dotfiles/ mv ~/.vimrc ~/dotfiles/ mv ~/.vim ~/dotfiles/ ここまでで、dotf

    dotfilesをgithubで管理し、Vundleを導入する - 技術めも
  • make基礎知識

    暗黙ルール(implicit rule) 暗黙ルールを使って次のように書くのがよい. .c.o: $(CC) $(CFLAGS) -c $< -o $@ main.o: main.c sub.h sub.o: sub.c sub.h 暗黙ルールには,拡張子ルール(suffix rule)とパターンルール(pattern rule)がある. 上記の.c.oのようなのが拡張子ルール. %を使って各ルールをパターンルールというが, gmake拡張機能なので,古いmakeでは使えない. 特に必要がないのであれば,互換性の面から古いmakeで使える機能範囲のみを使ってMakefileをかいておくのが望ましい. .SUFFIXES 次のようにかくと..o,.cをサフィックスとして登録することができる. .SUFFIXES: .o .c この指定は,標準の.SUFFIXESに.oと.cを追加する動作にな

  • make if関数

    makeのマニュアルとしてはGNU make 日語訳(Coop編)をいつも使っているのだが、Linux2.6のカーネルのmakeファイルを覗いていたらそこに書いていない構文があった。 KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd) $(if $(KBUILD_OUTPUT),, \ $(error output directory "$(saved-output)" does not exist)) 2行目の$(if ~, ~,)が書いていなかった。上記の日語訳は1998年5月のGNU Make Version 3.77のものでかなり古いので、英語の方のマニュアルを見てみた。構文は下記のようになって特に難しいことはない。 $(if condition,then-part[,else-part]) makeにはもうひとつ

  • make-filter-out - filter-out関数の使い方 - spikelet days

    目的 GNU make の関数 $(filter-out) の使い方をメモしておく。 結果 filter-outを使うと、変数内の特定の単語を、完全一致/前方一致/後方一致で取り除くことができる。 以下、詳細 filter-outとは GNU Makeのmanual(GNU make: Text Functions)を参照すればまあ書いてあるのだが、textからwordにマッチしない要素を取り出す関数。text, wordともにスペース区切りで複数要素を指定可能。 たとえばMakefile中のCFLAGS指定などで、 CFLAGS = -O2 -c -fomit-frame-pointer -fstrength-reduce などと指定されている時に、CFLAGSは流用したいけど、最適化はオフにしたい(-O2オプションはいらない)、という場合に使用する。 なにができるのか、試してみる fi

    make-filter-out - filter-out関数の使い方 - spikelet days
  • 再帰実行しないmakefile - Pylone Blog

    Wed, 21 Dec 2011 07:39 GMT, Posted by MINAMI Hirokazu この記事ではmakeの再帰呼びだしに頼らないmakefileを書くためのtipsを紹介します。 社内勉強会向けに作成した資料をベースとして、公開用に再構成しました。 ある程度の規模のプロジェクトのビルドを効率化したり、 LinuxカーネルやAndroid、OpenJDKなどで使われている(kbuild)ビルド機構を理解するのに役立つでしょう。 記述はMakeの拡張機能が使えることを前提としていますが、BSD系のmakeでも類似の技法は機能するはずです。 Recursive Make Considered Harmful 過去にはよく使われたmakefileの書きかたとして、makefileのルールから別のmakeを (recursiveに) 呼びだす、というものがありました。 そのよ

  • スラッシュドットに聞け: make に代わるビルドツール、おすすめは ? | スラド デベロッパー

    OSS のビルドでは、多くの場合 make を利用することが多い。Wikipedia の make の項目でも「UNIX 系ソフトウェアは、ソースコードの形で配布されることが多いが、そのビルド作業にはほぼ必須のツールといえる」と述べられている make だが、近年ではこれに代わるツールも多く登場しており、たとえば Visual Studio では make をまったく使わずにビルドを行うことができる。 もちろん、make は柔軟であり有用なツールではあるのだが、問題は (C++ のように) 記述に自由度が高すぎて、Makefile を作成するユーザーの技量によっては読解が激しく難しいものができてしまう点だ。また、大規模なソフトウェアの場合サブディレクトリを作ってそれぞれに Makefile を作成する、というのが一般的だが、配置方法や内容によってはこれまた訳の分からない Makefile

  • 1