make makes many problems
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG日本語のまともな資料ないし・・・。
だれかもっと便利でわかりやすいビルドツール作ってくれって感じ?
参考リンク
http://tanaka-www.cs.titech.ac.jp/~euske/doc/make_qref.html
http://www.tk.airnet.ne.jp/nagae/jp/comp/make/makefile.html
http://www-or.amp.i.kyoto-u.ac.jp/algo-eng/db/makefile.html
http://kanon.plala.jp/develop/makefile.html
http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/make-intro/simplest.html
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGクソスレだけどスレタイ気に入った。
0008デフォルトの名無しさん
NGNG00091
NGNGありがとうございます。
日本人相手なら早口言葉としても使えます(多分)
MMMP と覚えてください。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG結構期待してたわん。
0012デフォルトの名無しさん
NGNGそうすりゃ方言なんて気にしなくていいだろ。
0013デフォルトの名無しさん
NGNGVC++のメニューに
メイクファイルのエクスポート
ってのがあることを思い出した。
あれはイイもの?普通?クソ?
(自分が使う機会があるかどうか微妙だけどとりあえず聞いてみる)
0015デフォルトの名無しさん
NGNGよきにはからってくれたようなきがする。
automakeで生成したMakefileがHI-UXのmakeでも通ったし。
0016デフォルトの名無しさん
NGNGなんでmakeごときがあんなに複雑(そう)になるのかね?
0017question
NGNGするとディレクトリの中に短く単発のソースとバイナリがいっぱいできます。
Makeを使って、Makefile内にソース名を打ち込まないで、
ソースと同名のバイナリをコンパイルすることはできませんか?
具体的には、ディレクトリの中が
seive.cpp shellsort.cpp tree.cpp quicksort.cpp
みたいになってるんです。それを >make 一発で
seive.cpp seive.exe shellsort.cpp shellsort.exe
tree.cpp tree.exe quicksort.cpp quicksort.exe
になるようにできませんか?
この後もどんどん細かいソースが増えるので、Makefileを書き直すのが面倒です。
でも特徴として、1ソース1バイナリになっているので可能な気がします。
0018shige
NGNG新しいファイルがディレクトリにあった場合Makefileを更新するツールを
スクリプト言語で書いた方が手っ取り早いだろう。
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG0021shige
NGNG0022デフォルトの名無しさん
NGNG>>1 のページに書いてあるようなことは卒業した人にお勧め。
0023デフォルトの名無しさん
NGNGシステムの全ての必要な要素について、
それがあるか?、またそのバージョンは?
って調べていくんだから、そりゃ大変な作業だろ。
Windowsみたいにまとまってねーんだよ。UNIXは。
微妙な差異がものすごくめんどくさい。
0024デフォルトの名無しさん
NGNGWindowsだってまとまってねーんだよ。
NTと95は全くの別物。
0025デフォルトの名無しさん
NGNGいや、それは Autoconf と突っ込んでみる。
Makefile より Makefile.am の方が簡単だと思うし、
自分のところで動けばいいなら autoscan した後、
$ mv configure.scan configure.ac
して、
- AC_CONFIG_HEADER([config.h])
+ AM_INIT_AUTOMAKE([foreign])
- AC_CONFIG_FILES([])
+ AC_CONFIG_FILES([Makefile])
するだけで結構うまくいったりするが、どうよ。
高度な事すると結構面倒だけどね。
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNGうちの会社、ソースはC++だけどAntでビルドしてるけど、それって異端?
0028デフォルトの名無しさん
NGNGJavaならね。
UNIXはMakeの資産があるからAntが使われることはないと思う。
002927
NGNG0030デフォルトの名無しさん
NGNG実行形式がJavaってだけで、動かないプラットフォームがでてくるし。
研究室の古株のDigitalUNIX(not Tru64)、IRIXの古いの、HI-UX、HP-UXあたり。
ライセンスとかハードウェアの関係で最新OSにすることはできないことが多い。
0032デフォルトの名無しさん
NGNGUNIXの連中ってアフォばっかりだな
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG(´-`).。oO(そんな会社にいたんかぁ)
0035デフォルトの名無しさん
NGNG融通効くからじゃない?行頭のTabを忘れなければ…。
ビルドの為に手間をかけるのが面倒だったからかもしれんし。
>>33
Lispでmakeに相当するもの…ですか?
0036
NGNGC++だとmakedependしたいからやっぱりmake
0037デフォルトの名無しさん
NGNGmake depend って、私はいつも gcc -MM でやってるんですが、
他に何か定石的なやり方ってあります?
0038デフォルトの名無しさん
NGNGんでpre/postな処理はsh/perlあたりでやればすっきりするはずだよ。
makeって機能が貧弱なわりに(そのせいでか?)人によって
書き方がかなり変わってきてメンテしづらいんだよな。
0039デフォルトの名無しさん
NGNG環境変数との関係とか
make依存の痴漢ルールとか
そのへんがイヤン
0040デフォルトの名無しさん
NGNGXのmakedepend
0041デフォルトの名無しさん
NGNGだから makeで外部的に一生懸命書く必要があった。
まあ、逆に Cが貧弱だから、あの程度の仕組みで分割コンパイルの
恩恵にあずかれたのかも。
C++なんか、分割コンパイルをまともに働かせるようにするの
大変そうだし。
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNGとはいえUNIX的ミニマリズムはいい加減古びつつあるような。
PerlやApacheなんかは単体のツールとしてどんどん複雑になっていくように
他のツールも高機能化・複雑化していくのは自然な流れでしょう。
>>42
それがよくない
make setupなんてやるなら
bash setupにしてくれよ。
0044デフォルトの名無しさん
NGNGサンクスです。makedepend ってツールの名前だったのね。
ちょっと使ってみたけど、たしかに速い。
あと、gcc -MM みたいに、< > で囲んだやつは無視して
くれるともっとよかったけど。
0045デフォルトの名無しさん
NGNG自分でツールを作りながら処理するような場合は、やっぱり
makeの枠組で出来た方が有難い。
0046デフォルトの名無しさん
NGNG勝手にされたらされたで不満がでるはず。
0047デフォルトの名無しさん
NGNGmake setupなんて見たことないぞ。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGあれはmakeと呼ぶのもおこがましいが...
0050デフォルトの名無しさん
NGNGmakeと呼べる基準って何?
0051デフォルトの名無しさん
NGNG0052gmake
NGNG| |-- Makefile
| |-- sample.xml
| |-- mona.c
| `-- mona.h
|-- 2ch.so
↑のようなディレクトリ構成の時、
既にある2ch.soを用いてmonaディレクトリでmakeして、
monaってsoつくりたいんですけど、どーやればいいんでしょうか?
誰か助けてください。
0053gmake
NGNG0054デフォルトの名無しさん
NGNG$CFLAGSで出力先を変えればいいだけじゃないの?
-o オプションかね。
005552
NGNGんーっと、
|-- mona
| |-- Makefile
| |-- sample.xml
| |-- mona.c
| |-- 2ch.so
| `-- mona.h
2ch.soの生成をこうスレって話ですか(?
上の階層のアドインみたいな形にしたいんですけど、毎度コンパイル
しないと駄目なんすかね?
(既にあるのでそれを活用したい)2ch.so生成するルールがねーぞ、
ゴルァってでまふ。
0056デフォルトの名無しさん
NGNGあなたの日本語が理解できないのだが、
-o やら -L やらで簡単に解決する話のような気がする。
0057デフォルトの名無しさん
NGNG> (既にあるのでそれを活用したい)2ch.so生成するルールがねーぞ、
> ゴルァってでまふ。
ライブラリパスの設定するだけかも。
2ch.soを作成するのは?ってことならlibtoolでも使ってくれ。
005852
NGNGさんくすこ>56-57
0059デフォルトの名無しさん
NGNGってのを思いついた。そんだけ sage
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGだったらいいなぁ
0065デフォルトの名無しさん
NGNGmake的な機能が統合されてるよ。
思うにUNIXにOOPLが普及してmakeクラスがあればもっと使いやすくなるのでは。
0066デフォルトの名無しさん
NGNGmakeクラスってどういう意味?
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGWindowsで, makeなんて使いモノになるの?
Windowsで仕事したことないから分からんのだけど, だれかおせーれ.
0069デフォルトの名無しさん
NGNG> Windowsで, makeなんて使いモノになるの?
libtiffをVC++6で利用するためにnmakeを利用したけど、
自分でhoge.makを書く気にはならんかった。
0070デフォルトの名無しさん
NGNGcygwin使え。
0072デフォルトの名無しさん
NGNGだからcygwinは イイ(・∀・)!! わけで。
CUIが好きなのにWindowsを使う人はmake犬。
0073デフォルトの名無しさん
NGNGUNIXの欠点はすべてのコマンドがプロセス毎に独立してしまっていて
通信手段は貧弱なパイプしかない。
そこでmake, sort, grep等のコマンドをすべてクラス化してしまって
同一プロセス内で使えるようにすればもっと使いやすくなるのではと推測してみる。
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGパイプとソケットだけではもうまともなアプリは作れないよ。
プロセス・ネット越しにオブジェクト間でお話できないとね。
0076デフォルトの名無しさん
NGNGmake を起動した後でどこかのディレクトリに潜って(depして)
元のディレクトリの内容を変更したんですが
正しくディレクトリの変更が反映されていないみたいなんです。
元の gmake にもう一度ディレクトリ内のファイルの依存関係を
読み込ませるにはどう指示すべきでしょうか?
0077デフォルトの名無しさん
NGNGpipe とかの上でも、HTTP とかの protocol を使えば、お話自体はできるはずなんだけど…
誰かがそんな library 作って広めない限り、話しかけても相手にされないんだよね…
PID か何かを元に、それぞれが互いに話しかけたりできればいいんだけど…
0078デフォルトの名無しさん
NGNGC使うとソースとは別にmake書かなきゃならないんで「なんでこれくらいのことやってくれないんだ」とイライラしてくる。
そのくせコンパイル速度も遅いし。
0079デフォルトの名無しさん
NGNGVC++にあるけど、あれがあれば開発中にコンパイル速度に悩むことは無いと思うが。
0080デフォルトの名無しさん
NGNG大規模ならautoconf,automakeで済ませればいいから体した手間ではないと思うのだが…。
0081デフォルトの名無しさん
NGNGもうちょっと具体的に書いてくれないと答えられないよ。
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG> 意外とデフォルトのルールだけでうまくいったりして ...
ライブラリとかあると,なかなかそういうわけにはいかないよね.
0085デフォルトの名無しさん
NGNGどのサイトが一番いいの?
0086デフォルトの名無しさん
NGNG死のうっと。
0087デフォルトの名無しさん
NGNGシェルスクリプトみたいなので、そのままじゃ動かないですよね
0088デフォルトの名無しさん
NGNG> PascalのUNIT方式ならメイクに必要な情報はソース中に書いてコンパイラが処理してくれるのに。
#if 0
cc -o hoge hoge.c
exit 0;
#endif
#include <stdio.h>
int main(void) { printf("hoge\n"); }
このソースに実行権限をつけて実行するとexit以下は実行せず
かつ#がコメント化する事を利用したハック
コンパイルする場合は#if 0 で囲んであるのでコンパイラは無視する。
ツールレベルの小さなプログラムが多数ある場合、
makefileとソースの管理がウザイんでこの手を使うこともある。
0089デフォルトの名無しさん
NGNGPascalにUNITなんてものは規定されていない罠。
0090デフォルトの名無しさん
NGNGmake 間で統一されてればなーと思いませんか ?
あー、それは確かに思うね。普段はGNU make使ってるから気にならないけど、他のmake使うと途端に困る…w
0092デフォルトの名無しさん
NGNG009390
NGNGSolaris 6 (7 かも) の /usr/ccs/bin/make の suffix rule って, 例えば
.c.o : rule っていう感じなんですね.
.c.o :
rule
ではだめみたい. 特定の make に依存しないように, デフォルトのマクロの挙動に
気を使って Makefile を書いてたけど, その努力は意外なところから破綻してしました ...
0094デフォルトの名無しさん
NGNG> automakeってヘッダの依存まで調べてくれるの?
$ gcc -M hoge.c
で出力される程度には調べてくれます。depcompが調べてくれたと思います。
0095デフォルトの名無しさん
NGNGhttp://www.gnu.org/manual/autoconf-2.53/html_mono/autoconf.html
http://www.gnu.org/manual/automake-1.6.1/html_mono/automake.html
0096デフォルトの名無しさん
NGNG> ちょほいと勉強しようと思ったけど長すぎて読んでられないよ
texinfo-4.2を使っているなら、それぞれソースを持ってきて
$ makeinfo --html auto*.texi
すると分割されるが、って、全体の長さは変わらないけどね。
GNUjdoc (ttp://openlab.ring.gr.jp/gnujdoc/)には日本語訳も
あるみたい。
0097デフォルトの名無しさん
NGNGGnomeは単なるGUIシェルだと思ってるのか?
0098デフォルトの名無しさん
NGNGどうしたらいいでしょうか?gmake か MS の make か borland の make でお願いします。
一応、ディレクトリ分けしない状態ならうまくいった(ボーランドのmake)のですが…
+project
|-------makefile
|-------+bin
| |-------app.exe
|-------+obj
| |-------abc.obj
| |-------def.obj
|-------+src
| |-------abc.cpp
| |-------def.cpp
|-------+include
|-------abc.h
|-------def.h
●ディレクトリ分けしなかった時の makefile
CPP_FLAGS = -c -GX -GR
CPP_COMPILE = cl
LINK = link
OBJS = abc.obj def.obj
app.exe: $(OBJS)
$(LINK) $(OBJS)
.cpp.obj:
$(CPP_COMPILE) $(CPP_FLAGS) $<
.h.cpp:
よろしくお願いします。
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNGなんかmakefile以前の問題のような。
望むような動作をバッチファイルで書ける?
010198
NGNG望む動作をバッチファイルで実現できたら make は使いませんが…
普通にコンパイルする方法を知っているのか?という意味だと受け取ったので
「それくらいわかってるよ!」という事を証明しておきます。
cl -c -GX -GR -Fo.\obj\abc.obj .\src\abc.cpp
cl -c -GX -GR -Fo.\obj\def.obj .\src\def.cpp
link -out:.\bin\app.exe .\obj\abc.obj .\obj\def.obj
これを是非 makefile にしたいです。
■ このスレッドは過去ログ倉庫に格納されています