タグ

Makefileに関するmoozのブックマーク (5)

  • はてなブログ | 無料ブログを作成しよう

    来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…

    はてなブログ | 無料ブログを作成しよう
    mooz
    mooz 2010/05/14
    オブジェクトファイルをカレントディレクトリ以外へ置くサフィックスルール. dir/%.o: %.cc のようにする
  • make part2

    make (C言語編) ●注意● 基編でも述べたが、 Makefileのコマンド行の先頭は TABで空ける。 このページのサンプルでは「→」で表現しているが、 当に「→」を書いてはいけない。 はじめに make はもちろん、プログラム開発でも利用される。 大規模なプログラム開発では、 一つのプログラムが数百のソースファイルに分割されていることも珍しくない。 このようなケースでは、コンパイルに数時間かかることもある。 一つのファイルをちょっと修正しただけで毎回 数時間もコンパイルするのでは あまりにも非効率である。 また、makeのマクロ定義などをうまく利用すれば、 コンパイルオプションの集中管理もできる。 ここでは、Cのプログラム開発に makeを使用した例を示す。 (なお、統合開発環境では、 同じことを「プロジェクトの管理」という名前で行なっている。) ソースファイルが一つだけの場合

    mooz
    mooz 2010/05/14
    gcc -MM foo.c で, foo.c の依存関係を自動生成.
  • Makefileの書き方 - スキルアップ輪講

    makeって何? † ソースファイルを分割して大規模なプログラムを作成していると、コマンドでコンパイルするのが面倒です。また、一部のソースファイルを書き換えただけなのに全部をコンパイルし直すのは時間の無駄です。 そんな問題を解決するのがmakeです。Makefileと呼ばれるテキストファイルに必要なファイルと各ファイルのコンパイルのコマンド、ファイル間の依存関係を記します。そして、“make”というコマンドを実行するだけで、自動的にコマンドを実行してコンパイルしてくれます。これだけではスクリプトと大差がないのですが、makeはMakefileに記された依存関係に基づいて更新されたファイルの内関連のあるものだけを更新することで、コンパイル時間を短くします。 makeは特定のプログラミング言語に依存したものではありません。C言語のソースファイルのコンパイルにも使えますし、Verilog-HDL

    mooz
    mooz 2008/12/17
    よくまとまっている。
  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • SoC digital design/verification note Makefileの基本テクニック

    SoCのデジタル設計検証、また仕事で結果を出し家庭で楽しむため、自分ができる上手いやり方を創り磨くためのメモ Makefileを記述する際に知っておくと便利なテクニックを挙げ、それぞれについて説明を行ないます。 ■ ディレクトリパス取得 ディレクトリに移動し、その中でカレントディレクトリパスを新しく更新します。 - ./Makefile curdir = $(shell pwd) all: echo $(curdir) (cd hoge; make;) - ./hoge/Makefile curdir = $(shell pwd) all: echo $(curdir) shell関数を使用して$(shell pwd)のように記述すると、Unixのシェルコマンドの実行結果が変数展開されます。また、ディレクトリ移動の箇所を括弧"()"で囲むと、ディレクトリ移動先の処理が終了後に自動的にカレン

  • 1