タグ

makeに関するuokadaのブックマーク (6)

  • GNU make での条件コンパイル - IKB: 雑記帳

    twitter に垂れ流したものは流れさってしまって残らないので、拾ってまとめなおしておく。 GNU make では条件文が書ける。 たとえば変数 COND が true に設定されていたら、ソースファイルをまとめる文字列 SRCS に hoge.c を追加する、といったことを次のように書いておける。 ifeq ($(COND), true) SRCS += hoge.c endif ただ、 ifeq でテストできる条件はただひとつなので、複数の条件を確認したいときにはちょっとした工夫をしないといけない。 複数の条件の論理和をとる findstring を使って、条件変数をならべた文字列のなかに true があることを見つけることで論理和をとれる。 たとえば以下のように書けば、条件変数 A か B、 C のいずれかが true であることを検出できる。 ifeq ($(findstring

    GNU make での条件コンパイル - IKB: 雑記帳
  • Makeについて知っておくべき7つのこと | POSTD

    Make は、様々なタイプのファイルのビルド作業を自動的に行ってくれるシンプルかつ強力なツールです。しかしながら、makefileを書く際に問題にぶち当たるプログラマもいれば、Makeの基知識がないことで、既存のものを再発明してしまうプログラマもいます。 Makeの働き デフォルトでは、Makeは一番目のターゲットから開始します。このターゲットのことをデフォルトゴールと呼びます。 Makeはカレントディレクトリのmakefileを読み込み、一番初めのルールで処理を開始します。しかし、Makeが完全にこのルールを処理する前に、ルールが依存するファイルのためのルールを処理しなければなりません。各ファイルそれぞれは、自身のルールに従って処理されます。 実はこれは、各ターゲットの再帰的アルゴリズムになっています。 ターゲットをビルドするルールを見つける。ルールがないようであれば、Makeはうまく

    Makeについて知っておくべき7つのこと | POSTD
    uokada
    uokada 2014/12/19
  • Waf を使う

    Waf を使ってみます。 ここでの Waf とは、Web Application Framework や Web Application Firewall の略ではなく、 Python で記述されたビルドシステムのことです。 Waf - Google Code The Waf Book - Google Code ツールの導入部分に関してはこちらの記事で紹介されています。 waf チュートリアル (純粋関数型雑記帳) この記事では、何かをビルドする、というわけではなく、 アーキテクチャに依存せずに手続きを実行できるようにします。 例として、Solr をダウンロードして解凍する処理を記述します。 Linux では wget と tar を使うだけですが、 Windows だとコマンドラインでダウンロード処理を記述するのが難しく、 Mac OSX Lion には wget は付属していないため

  • The Waf Book

    ソフトウェアの複雑化に伴い、ソフトウェア作成のプロセスもさらに複雑になってきている。 今日のソフトウェアは様々な言語、コンパイラ、多くの分散した入力データファイルを必要とする。 ソフトウェアは今やソフトウェアのビルドプロセスを表現するのに用いられており、それは簡単なスクリプト(シェルスクリプトやMakefile)やコンパイラ(CMakeやQMake)、完全なアプリケーション(SCons, Maven, Waf)の形態である。 ビルドシステムという用語は、アプリケーションのビルドに用いられるツールの設計、として使われる。 ビルドシステムはビルドするソフトウェアに関していくつかの想定をし、異なる言語やプロジェクトをビルドする際にそれらの想定は典型的に限定される。 例えば、AntはMakeよりもJavaプロジェクトにおいては適しているが、単純なC言語のプロジェクトの管理に関してはMakeよりも

  • waf チュートリアル - 純粋関数型雑記帳

    waf - The flexible build system http://code.google.com/p/waf/ wafというものを最近知り一目惚れしてしまったので、紹介記事を書きます。ユーザーが増えると嬉しいな。 wafとは何か?特徴・利点・使うべき理由 wafはPythonベースのビルドシステムです。同様のことを行うツールとして、Autotools、Scons、CMake、Antなどがあります。Sconsからの派生で、比較的新しいソフトウェアです。 分かりやすい Pythonで書かれており、スクリプトもPythonで記述します。シェルスクリプトと謎のマクロが入り混じるAutotoolsや、独自言語のCMakeなどに比べて扱い易いです。Pythonを知っていれば非常にすんなりと使いこなすことが出来ます。Pythonを知らなくても、他の独自言語を覚えるよりは実りがあるかと思います

    waf チュートリアル - 純粋関数型雑記帳
  • GNU make 日本語訳(Coop編) - ルールの記述

    makefileに現れるルールは、いつ、どうやって特定のファイル——これをターゲットといい、ほとんどはルールひとつにつき1つだけです——を作り直すかを指示します。ルールはターゲットの依存関係である別のファイルや、ターゲットを作成したり更新したりするためのコマンドを列挙します。 ルールの順番に意味はありません。ただし、makeにターゲットを与えるためにあるデフォルトゴールを他の方法で指定しなかった場合を除きます。デフォルトゴールとは一番初めのmakefileの最初のルールのターゲットのことです。最初のルールに複数のターゲットがある場合、一番初めのターゲットだけをデフォルトとみなします。 ただしこれには、ピリオド(".")で始まるターゲットは、一つ以上のスラッシュ("/")のようなものを含んでいない限りはデフォルトにはならない、それから型ルールを定義するターゲットはデフォルトゴールとして機能し

  • 1