パスワードを忘れた? アカウント作成
10073930 story
GNU is Not Unix

GNU Make 4.0リリース、Makefile内でSchemeスクリプトが利用可能に 16

ストーリー by headless
公開 部門より
insiderman 曰く、

10月8日、GNU Makeの3年ぶりのメジャーアップデートとなるGNU Make 4.0がリリースされた(SourceForge.JP Magazineの記事リリース告知メール@ITの記事本家/.)。

新機能としては、Scheme処理系であるGNU Guileのインテグレーションがある。これにより、Makefile内にSchemeスクリプトを記述して実行させることが可能になる。外部のファイルに記述したSchemeスクリプトの実行も可能。

近年ではautotoolsを使って生成されるMakefileが多く、このようなMakefileは非常に難解になっているが、さらに難解なMakefileが登場しそうでちょっと怖い。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 新オプション--traceが便利そう。
    Makefileの行番号となぜそのターゲットをコンパイルしなおすかを表示してくれる。
    無限ループに陥ったとき、原因究明に使えそう。

    > 近年ではautotoolsを使って生成されるMakefileが多く、このようなMakefileは非常に難解になっているが、さらに難解なMakefileが登場しそうでちょっと怖い。

    Autotoolsが生成するMakefileは長いだけでわりと昔風だと思う。
    ソースのMakefile.amが難解だと、難解なMakefileができるけど。
    --
    love && peace && free_software
    t-nissie
  • by Anonymous Coward on 2013年10月13日 0時18分 (#2476304)

    向かったりしないのだろうか。マクロ駆使してDSL。
    依存ファイルのリストなんかは多値としてsplicingしちゃえば綺麗そう。

    • by Anonymous Coward

      そこまでやるならもうmake使わずscshだけでぬくぬくと生活したほうがいいんじゃね?

  • by Anonymous Coward on 2013年10月13日 21時28分 (#2476573)

    関数とデータの区別が無くて、レキシカルスコープで、
    クロージャが使えて、末尾再起も最適化
    ってならLuaがあるのにさぁ。

  • by Anonymous Coward on 2013年10月12日 13時43分 (#2476160)

    さらに難解なMakefileが登場しそうで

    それは場合によるんじゃないかなぁ。
    Schemeを理解出来ない人にとっては難解になるだろうけど、理解できる人にとってはこれまでのMakefileの文法で書かれるより理解しやすいだろうし、うまく関数化できればautotoolsの出力もシンプルになりえないのかな?
    ただ、そもそも難解なのはMakeで処理したい内容(正しくビルド・インストールするための条件・仕様)が難解であるからであって(Schemeがどうとかいう)Makeの仕様による影響は小さいとか言えるかもしれないし、さらにさらに、configureの処理がMakefileに移る可能性があって更に難解なMakefileになる可能性もあるけど。

    • Re: (スコア:0, 興味深い)

      by Anonymous Coward

      configureの処理がMakefileに移る可能性があって更に難解なMakefileになる可能性

      これが一番怖い。
      configureでやれることはconfigureにやらせておけばいいのに、なんでもかんでもmakeでやらせるプロジェクトが出てきそう。
      特にSchema大好きな人々が非関数言語使いには理解不能なコード(しかもそれをクールだと言いはる)を量産しそうで怖い。
      クールなコードはその言語に慣れた人にはクールだけど慣れてない人には意味不明なものだから。
      #というわけで、来年辺りからSchemaの勉強はじめる

    • by Anonymous Coward

      なにをもって難解とするのかいろいろな意見があるとは思いますが、
      個人的には phony ターゲットを数多く使って命令的に書かれた Makefile が難解だと感じます。

      scheme 自体は簡単ですし、局所的には理解しやすくなるとは思うのですが
      scheme を使うことでより一層 Makefile が命令的になり、
      全体が把握しにくい難解なものになるのではないかと思います。

    • by Anonymous Coward

      現在のautotoolsを使わない、Makefileだけっていうプロジェクトはシンプルで素敵です。
      Learn The C Hard Wayのex28 [learncodethehardway.org]の分かりやすいMakefileや、
      suckless.org [suckless.org]のプロジェクトに使われているMakefileは短くて分かりやすくて素敵です。

      • by 130R (31126) on 2013年10月12日 21時01分 (#2476265) 日記

        Makefileがシンプルなんじゃなくてプロジェクトがシンプルなだけじゃない?
        Cソースファイルだけとか依存関係管理放棄しても大丈夫な規模なら分かりやすくもなろう

        親コメント
      • by Anonymous Coward

        上のやつ、ソースファイルの依存リストはどうしてるの?

        make使えます!と言ってた奴が毎回make clean&&makeしてたり、makeだけ実行してるのを
        オペミス扱い(そいつの書いたmakefileではたしかに危険だけど)してるのを見てから疑い深くなってしまった。

  • by Anonymous Coward on 2013年10月14日 1時42分 (#2476627)

    Gnu拡張のMakeとかもうおさらば

typodupeerror

192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり

読み込み中...