タグ

プログラミングとmakeに関するiwwのブックマーク (11)

  • makefileにhelpを付けるワンライナー - podhmo's diary

    makeファイルはデフォルトではhelpが存在しない。bashの補完の設定などを入れているとタブで利用可能なタスクの一覧が出る環境もあるが、その設定もしていない場合には利用可能なタスクの一覧も表示できない。 タスクに対するcommentの流派 似たようなことを考える人はいるもので、helpというタスク(ターゲット)を定義してhelpメッセージを表示しようという試みをしている人たちがいる。 ちょっとだけ検索してみた所以下の2つの流派があるみたい。 <task>: ## <comment> 派 https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html (和訳) https://qiita.com/po3rin/items/7875ef9db5ca994ff762 https://gist.github.com/prwh

    makefileにhelpを付けるワンライナー - podhmo's diary
    iww
    iww 2024/02/28
    ##を区切り文字にするやつ。 あまりにも似たのが多すぎて絶対元ネタあるだろと思ってたやつ
  • C/C++中規模プロジェクトのための超シンプルなMakefile | POSTD

    私は多くの小規模プロジェクトで Make を使ってきましたが、より大きな規模のプロジェクトになると、それは非常にうんざりするようなものでした。最近までは、自分のビルドシステムに行いたいことが4つあったのですが、Makeでの方法が分かりませんでした。 out-of-sourceビルド(オブジェクトファイルが、ソースとは分離されたディレクトリにダンプ出力されます) 自動生成される(かつ正確!)ヘッダの依存関係 オブジェクト/ソースファイルのリストの自動的な決定 インクルードディレクトリのフラグの自動生成 以下にこれらの全てを行える、C、C++、およびアセンブリで動作するシンプルなMakefileを紹介します。 MAKEFILE TARGET_EXEC ?= a.out BUILD_DIR ?= ./build SRC_DIRS ?= ./src SRCS := $(shell find $(S

    C/C++中規模プロジェクトのための超シンプルなMakefile | POSTD
  • 第 4 章 make ユーティリティ > 依存関係の検査 : make とシェルスクリプト

    依存関係の検査 : make とシェルスクリプト 単純な処理の場合には、ソフトウェアの構築にシェルスクリプトを使用して整合性を保つことができますが、ソフトウェアプロジェクトの構築では多くの場合スクリプトは適していません。プログラムまたはオブジェクトモジュールのうちの 1 つだけが変更されている場合に、単純なスクリプトを使用してすべてのプログラムまたはオブジェクトモジュールをコンパイルするのは効率がよくありません。また、スクリプトを繰り返し編集しているうちに、整合性を保つことができない場合があります。再コンパイルが必要なモジュールだけを再コンパイルするスクリプトを記述することはできますが、それには make を使用する方が適しています。 make を使用すると、構築するファイルとその構築方法を簡潔かつ構造的に記述することができます。make は、依存関係の検査という仕組みを使用して、各モジュ

  • GnuMakeMaster - めらまん PukiWiki

    メニュー トップ めらロ〜グ プラグインマニュアル NintendoDS Homebrew 掲示板 GBA/NDS Link NDS/GBA 技術情報 ・GBATek 日語訳 ├GBA Ref.(完) ├NDS Ref.(翻訳中) └CPU Ref.(未整備) ・DSTek 日語訳(完) ・NDSLIB 日語訳(完) NDS 公開版ソフト ・BAKUDAN ・鏡音リン・レン ・NDS_TGM ・NDS_四川省 ・NDS_花札こいこい ・BGMファイラー ├BGM ドライバ(JP) ├BGM Driver(EN) ├MID ドライバ(JP) │└MIDDRV 開発 │------ ├NDS サウンド講座 └SMF2MML NDS ソフト部品 ・thfifo 日語訳 ・電力制御 └PowerControl ・uITRON4

    iww
    iww 2011/08/22
    $なんとかの使い方一覧
  • Makefileの書き方 - スキルアップ輪講

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

  • GNU make 日本語訳(Coop編) - ルールの記述

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

    iww
    iww 2011/08/18
  • でっつ :: Entries :: お母さんみたいにもっと3ヶ月前に教えて欲しい

    お母さんみたいにもっと3ヶ月前に教えて欲しい Posted by admin on the 28th of 3 月, 2008 at 12:00 am under 未分類.    This post has no comments. ccacheを使えば、C++のコードのコンパイルが死ぬほど遅くても大丈夫という情報が。これはheaderファイルなど頻繁には変更しないような部分のコンパイル結果を自動的にキャッシュしてくれるソフトウエアだ。よっぽどのことがないかぎり、一人で開発しているコードでは、includeする色々なheaderファイルのほうが、自分で入力するソースコードより多い。しかも、template programmingを使いまくるBoost Spiritのようなinculdeするheaderが大きくて、構文解析の処理量が多いライブラリを利用していると、明らかにheaderのせいで

  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

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

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • makefile に於ける依存関係 - pyopyopyo - Linuxとかプログラミングの覚え書き -

    Makeの依存関係を生成する方法には,色々選択肢がある. 手っ取り早いのは depend: makedepend -Y -- $(CPPFLAGS) -- *.cc とMakefileに書いておいて, $ make dependとすることで Makefile自身に依存関係を自動で記入する方法. しかし,この方法には以下の二つの問題がある. make depend を実行しないと,依存関係は更新されない 依存関係がそのままMakefileに含まれている.(これは,cvs や svn で Makefile を共有するとき,とてつもなく不便になる). 後者の問題は,つぎのようにすることで解決できる. depend: makedepend -f- -Y -- $(CPPFLAGS) -- *.cc > .depends -include .dependsただし,これでも 前者の問題は尚残されたまま

    makefile に於ける依存関係 - pyopyopyo - Linuxとかプログラミングの覚え書き -
  • GNU make 日本語訳(Coop編) - Makefileの条件分岐部分

    条件分岐(conditional)を使えば変数の値によってmakefileの一部を従うか無視するか分岐させることができます。条件分岐ではある変数を別の変数と比較するか、変数を定数文字列と比較させかします。条件分岐ではmakeがmakefile中に実際に「見る部分」を制御するため、実行時のシェルコマンドを制御するのに条件分岐は使えません。 条件分岐の例 次の条件分岐例では、CC変数が`gcc'の時はmakeにあるライブラリのセットを使い、そうでない場合は別のライブラリセットを使います。この動作はルールに変更を与えるものと変更を与えないものの二つのうちどちらのコマンドを使うかで制御します。つまり、`CC=gcc'をmakeの引数に渡す事がどのコンパイラを使うかという事だけでなくどのライブラリをリンクするかという事をも変更することになります。 libs_for_gcc = -lgnu norma

  • [オープンソース] Makefileを公開しよう - higepon blog

    最近 id:yaneuraoさんが PSPであそぼう エントリを精力的に書かれていて非常に面白い。 PSPでC++プログラミングするための環境を整えたりしているのだが、こんなマニアックでディープな技術blogで読めるというのはかなりすごいことだと思います。 さてその中で id:yaneurao:20050630のエントリーがちょっと気になりました。 いわゆる make についての説明と、やねうらおさんの独自 Makefileが公開されているという内容でした。 makeは、大規模なソースツリーを、ビルドするときに使うと便利なツールで、Unix系でアプリケーションをコンパイルしたことがある人ならご存知だと思う。 いわゆる make make install というお約束のアレである。 また Javaに詳しい方なら Ant のご先祖様というと分かりやすいかもしれない。 やねうらおさんは 最近の

    [オープンソース] Makefileを公開しよう - higepon blog
  • 1