【build】ビルドツール全般語れ!【tool】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
プログラムを始めると必ず通る道、Makeですが、実際に使いこなせてる人は、
なかなかいないんじゃないでしょうか?
しかし、今からMakefileの文法覚えるのも面倒くさいし、依存ファイルの記述なども
面倒臭い。そこで、探してみるとやっぱりあったビルドツール。
makeapp:perlベース
rake:rubyベース
SCons:pythonベース
他にも、qmake,bjam,CMake…etc.

このスレでは、それぞれのツールの利点・欠点、使い方などを
語っていきましょう!
2デフォルトの名無しさん:2008/10/30(木) 19:34:40
3デフォルトの名無しさん:2008/10/30(木) 23:21:22
antやmsbuildはスレ違い?
4デフォルトの名無しさん:2008/10/30(木) 23:26:33
@echo off
cl /Ox /Fehoge *.cpp
51:2008/10/31(金) 07:46:19
>>3
どんどん書き込んじゃってください。
でも、最初で書いてるようにMakefileを一から書くのは面倒臭いので、
makeならmakedependや、autoconf,autotoolなどの半自動でmakefile
作ってくれるツールがあります。ですので、antにもそのようなツールが
あれば、それらと絡めて話題にしてくれるとスレに合う話題になるんじゃないでしょうか
6デフォルトの名無しさん:2008/10/31(金) 12:37:27
makeのメタツールの話題のスレなのか
makeの代替物の話題のスレなのか
両方どちらも(make自体含む)のスレなのか
どれ?
71:2008/11/01(土) 01:01:27
両方でいいと思います。

ソースファイルの追加や修正で構成が変化したときに、
ビルド作業を最低限の記述で気持ちよく出来るようにしたいという思いからスレを
立てましたので、makeのメタツールの話題や、こんな便利な代替物があるという
紹介でもいいと思います。

で、自分の好きなツール。makeだったらそれをjavaのプロジェクトでも使うとか
antならc/c++でも使うとか、他の言語にも適用する方法が共有出来れば幸せに
なれる気がします。

makeやantばかり言っていますが、あくまで例で言ってるだけなので他のツール
javaだったら、mavenとかいろいろありですよ。
81:2008/11/01(土) 01:10:38
まだ試してないのですが、参考になりそうなリンクを張っておきます。
rake
http://www2s.biglobe.ne.jp/~idesaku/sss/tech/rake/

boost.build
http://www12.ocn.ne.jp/~dante98/bbv2-tutorial.html

javaで使うビルドツールは無知に近いので紹介すら出来ません。すみません。
9デフォルトの名無しさん:2008/11/01(土) 10:14:20
関連ありそうなスレ貼っときますね
make makes many problems
http://pc11.2ch.net/test/read.cgi/tech/1029599472/
IDEじゃmake antをいかしきれない。
http://pc11.2ch.net/test/read.cgi/tech/1055521301/
Autoconf/Automake/Libtool
http://pc11.2ch.net/test/read.cgi/tech/1148393695/
101:2008/11/06(木) 01:12:38
http://www25.atwiki.jp/ovlivion-air/

sconsについて、少しまとめてみました。
ほんとに少しですw申し訳ありません。

bjamについては、よく分かりませんでした。あれはスペースで
区切るんですかね?シンタックスエラーが出て進みませんでした。
111:2008/11/06(木) 01:20:55
どなたかantとかmavenとか語ってくれないですかね〜。

あんまりこのスレ需要がなかったかなぁ。

過疎ってるので、emacsもしくはvimとの連携とか、
話題の幅を広めてもいいかもしれませんね。
統合開発環境を使わない快適な開発環境みたいな。
12デフォルトの名無しさん:2008/11/06(木) 20:51:18
>>10
スペース区切りです。
>>8のリンク先に書いてあるよ
13デフォルトの名無しさん:2008/11/08(土) 11:35:39
ant使いにくい。
maven分かりにくい。
14デフォルトの名無しさん:2008/11/10(月) 23:22:45
ビルドツールにあまり良いイメージがありません。
@業務で作るプログラムはだいたい、1機種、1OS対応なので make で十分。
Amakeのほかに、ビルドツールの文法も覚えないといけない。その上資料が少ないので学習しにくい。
B意味不明の中間ファイルがたくさんできる。
Cできた Makefile がとても人間に読めたものではない。
D将来性が不安である。業務でビルドツールを採用して、それが開発終了したりしたらふくろだたきにされそう。
ビルドツールの便利さについて啓蒙していただければありがたいです。
151:2008/11/11(火) 00:05:04
>>14
私自身がまだ学生で業務に使ったり、チームで使ったりといった経験がないので、
稚拙な意見ですが、
@、ビルドツールを使うことによって、OS間・環境の違いを吸収できる。オープンソース・クロスプラットフォーム向け?
A、makeより便利なツールがあるかもしれない。それが広まれば皆幸せになる。
B、ビルドツールの性質上仕方ない? このおかげで、内部的な動作まで考える必要がないとも言えるのでは…
C、sconsやrakeは、Makefileを作るものではない。Makefileの代替になるもの
D、それはそうでしょうねwww。

業務をしている方の意見もぜひ聞きたいです。
にしても、業務で使う場合はIDEでプロジェクト共有だと思ってました。

見返すとホントちまい文章で泣けてきた
16デフォルトの名無しさん:2008/11/11(火) 08:46:43
>>10
GJ
できれば自分でルールやコマンドを設定する方法を知りたいな。
たとえば .tex から .html を生成するのを自動化したい場合、SConsでどうすればいいのかわからないので、
それが書いてあると、SCons の使い道が広がって、嬉しい人も多くなるんじゃないだろうか。
171:2008/11/11(火) 23:06:57
>>16
ttp://code.nanigac.com/source/view/525
Sconsは、pythonで動いているのでpythonの命令なら動きます。
リンク先のようにすれば外部プログラムも動かせられますが、
Makefileのように直接他のコマンドを実行させられないのが残念です。

逆に考えると、html操作などのモジュールはpythonに組み込まれているので、
pythonを使える人は、pythonで細かな命令を書くことが出来ます。

ttp://www2.otani.ac.jp/~yfukuda/sotsuron2004/ZushiHiroaki/tex2html/manual.html#2
のようなモジュールを使えば変換するのは出来そうですね。

シェルで行っていた操作をpythonに置き換えていく作業になりそうです。sconsの場合は

18デフォルトの名無しさん:2008/11/13(木) 00:54:37
>>15

ご回答ありがとうございます。

>@、ビルドツールを使うことによって、OS間・環境の違いを吸収できる。オープンソース・クロスプラットフォーム向け?
ソースの文字コードの変換なんかをビルドツールで吸収できるとうれしいのですが、、、

>A、makeより便利なツールがあるかもしれない。それが広まれば皆幸せになる。
たしかに、make的なもので、foreach とか if とか使えるのなら便利ですね。
しかし、ファイル名を羅列するだけOKという make の簡潔さも残して欲しいものです。

>業務で使う場合はIDEでプロジェクト共有だと思ってました。
ビルドツールの使用例ですが、
1.某工場の受注システム→VB
2.三菱マイコンの組み込み→DOSのバッチファイル
3.H8マイコンの組み込みは→HEW
4.SHマイコンの組み込み→make
5.某医療システム→JBuilder
6.某アパレルCAD(旧)→make
7.某アパレルCAD(新)→VC
という感じでした。IDEは1,3,5,7で50%くらいでしょうか。
プロジェクト共有(CVSとかのこと?)使ってたのは10%くらいでした。
半端なシステムばっかりで参考にならないですが、、、
19デフォルトの名無しさん:2008/11/13(木) 02:04:13
自分はクロスプラットフォームのプログラム作る必要ができた時
Qtのプログラムじゃないけど、qmake使いました。

qmakeはqmake用のプロジェクトファイルからUnixだとMakefile、
WindowsではVCのプロジェクトファイルを作成するツールだけど、
結構便利でした。

それと配布するときのことを考えると、jamみたいに代替ツールだと
それをインストールしておく必要があるのは結構ネックかなと思います。
それこそ、代替ツールが広まっていれば問題ないのですが。

20デフォルトの名無しさん:2008/11/13(木) 10:07:21
bjamの場合はboostにソースで同梱されてたりするけどな。
ビルドも一瞬だし。
21デフォルトの名無しさん:2008/11/13(木) 21:31:54
その同梱が大変だってことじゃん。
ビルドが簡単ってのと、配布パッケージを作るのが簡単って
いうのも別の話だし。
221:2008/11/13(木) 23:40:55
>>19
私もqmakeを少しだけ弄りました。
おっしゃる通り、makefileからVCまで幅広く対応しているので素晴らしいと感じました。

ただ、qtが付きまとってくるイメージで毛嫌いしてしまっていますw。
23デフォルトの名無しさん:2008/11/14(金) 02:08:46
確かに元々Qt用のツールなので、Qtは付きまとってきますね。
前にQtで開発していたので、自分には自然な選択だったんですが。

まぁ、qmakeはQt以外でも使えるってことの
紹介ということで。
24デフォルトの名無しさん:2008/11/14(金) 02:42:52
勝手にQT用のオプションがつくけど、
QT使わなければ無視されるだけだから特に問題ないね。
25デフォルトの名無しさん:2008/11/14(金) 22:27:12
Perlベースの cons が良さそう。Sun でも HPでも BSD でも動くので。
http://www.dsmit.com/cons/

26デフォルトの名無しさん:2008/11/16(日) 01:13:15
基本的にスクリプト言語ベースのものは、その言語が動けば
動くと思うよ。
なんかプラスアルファが欲しいところかな。

Perlのシェアの広さは魅力といえば魅力だけど。
27はんしょう:2008/11/16(日) 16:26:11
教えてください
JAVAのBUILDERを見ています(正直使っているという状態ではまだないのです)が、
JPXファイル(プロジェクト)を再BulidするのとMakeをするのとがメニューにあります。
この違いはなんでしょうか?一見どうちらを選択しての既存のものは実行できるか
できないのか について言えば変わりはなかった 

28デフォルトの名無しさん:2009/06/23(火) 16:04:48
>>25
それの後継が scons で、Googleによるsconsの拡張がswtoolkit
29tor1.digineo.de:2009/08/17(月) 17:46:54
自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L

名言集 その4
『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』

http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ のID:PVAf+dux0 = 自動焼人 ★

> 965 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:02:09.35 ID:PVAf+dux0
> まぁ何だ。
> 俺の過去の経歴に比べたら、割れ厨なんて鼻くそレベルなんだけどなw
> 100人規模の集団サイバーテロの主犯とか、いろいろとな。


----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
30デフォルトの名無しさん:2009/09/07(月) 11:56:44
で、結局どれが一番良いんでしょうか?
いい加減makeは捨てたい
31デフォルトの名無しさん:2009/09/07(月) 13:33:34
wafというのがあるらしい。Python製。
ttp://code.google.com/p/waf/
ざっと見ると、かなり高機能っぽい。
32デフォルトの名無しさん:2009/09/16(水) 04:34:21
eric4
33デフォルトの名無しさん:2010/04/29(木) 20:58:49
興味津々なんだけどこのスレあまり人気ないのね;

CMake、SCons、qmakeあたりしか使ったことないからあれだけど、
結局、どれ使うかは対象プラットフォーム次第なのかな?

Windows, Linux, Mac OS Xが対象なら、どれも大して変わらない気がする
WindowsCEとか組み込みLinuxも扱うならqmakeってところ?
34デフォルトの名無しさん:2010/05/14(金) 18:07:06
sconsって使いやすいの?
35デフォルトの名無しさん:2010/08/21(土) 12:56:57
36デフォルトの名無しさん:2010/09/01(水) 18:41:13
cmakeかなり良さそう。ただしこれmakeの代わりではなくconfigureの代わり。
最終的にmakefileを書き出してくれるのがいけてる。
37デフォルトの名無しさん:2010/09/02(木) 01:22:29
cmakeはかなり柔軟にできるね。
独自構文が難しいのが欠点かな。
38デフォルトの名無しさん:2010/12/07(火) 00:27:30
cmakeいいな。プロジェクトを親子で同時開発するときすげー便利。
A(アプリ)とB1(ライブラリ)、B2(ライブラリ)みたいな関係のプロジェクトで、
Bの開発ツリーで開発しつつ、それをAの開発ツリーの下でチェックアウトするとそのまま使える。
これはすごい。生のMakefileでこれをやろうとすると苦労する
39デフォルトの名無しさん:2011/02/12(土) 11:54:35
chromeで使われているビルドシステムninja
https://github.com/martine/ninja
40デフォルトの名無しさん:2011/02/23(水) 18:02:13.67
cmakeで質問があります。
main.cppの中で

#ifdef HELLO
 // 処理1
#elif
 // 処理2
#endif

みたいな処理をCMakeLists.txtで切り替えたいのですが、
どうすればできますか?

41デフォルトの名無しさん:2011/02/23(水) 23:10:28.57
ADD_DEFINITIONS()
42デフォルトの名無しさん:2011/03/31(木) 03:00:05.45
いま使ってるのはこれかな
http://gradle.org/
ant、mavenを置き換える感じだけど、mavenの100倍わかりやすい

あとはSBTってのにも興味あるんだけど、いま調査中
43デフォルトの名無しさん:2011/05/04(水) 15:10:02.45
google の gyp
http://code.google.com/p/gyp/
cmakeよりいいらしいけどどうなの
44デフォルトの名無しさん:2011/07/31(日) 04:04:57.82
sconsベースで,そのビルドフレームワーク本体も同時配布する思想のやつなんだっけ?
4544:2011/07/31(日) 04:17:10.34
自己解決した.Wafだ.多分.
46デフォルトの名無しさん:2011/07/31(日) 11:08:54.81
まあ現状だとcmakeがベストだな。
Googleのninjyaも気になる
47デフォルトの名無しさん:2011/10/28(金) 10:46:11.56
omakeがmake++++って感じてよい。
48デフォルトの名無しさん:2011/10/28(金) 19:56:41.12
>>46
ninjya って綴りなのか? Dasseeeeeeeee!
49デフォルトの名無しさん