make makes many problemsat TECH
make makes many problems - 暇つぶし2ch666:デフォルトの名無しさん
07/04/24 21:33:43
>>665
見た目も何もRubyプログラムそのものですからね

Ruby知ってたら、すごい楽できるよ

667:デフォルトの名無しさん
07/04/24 21:34:27
>>665
ゴチャゴチャしてるという印象はこのへんかね。

ターゲット(タスク)を裸で書けない(文字列かシンボルで書く)
ファイル名単独じゃなくて、いちいちfileと書く
:ではなく=>
doとかendとか付ける
外部コマンドをそのまま書けない

>>664
ダグラス・アダムズネタが混ざってるな 。



668:デフォルトの名無しさん
07/04/24 21:46:49
Cプログラマ向けにCの文法で書けるCakefile(ケーキファイル)なんての
を妄想してみたが、Rubyだとブロックで書くところを関数に抜き出さないと
いけないから書きにくいな。C++でboost使うとlambdaっぽいことができる
からマシになるのかな。


669:デフォルトの名無しさん
07/04/24 21:50:45
lakeやらpakeが強いかも。元々適当な言語だし。

670:デフォルトの名無しさん
07/04/24 22:06:16
lakefileは普通のプログラムと見かけ大差なさそう。

pはperlだろうが lispつながり(?)でprologを連想。
ホーン節って依存関係定義そのものだな。


671:デフォルトの名無しさん
07/04/24 22:31:43
dake

672:デフォルトの名無しさん
07/04/24 23:47:56
やっぱ俺Makefileでいいや・・・

673:デフォルトの名無しさん
07/04/25 01:23:22
delake
VBake
make#


674:デフォルトの名無しさん
07/04/25 01:37:29
>>634
つ♥

675:デフォルトの名無しさん
07/04/25 15:04:25
rakeで依存関係をgccに解決させたりしてるときにどう持ってくればいいんだ?


676:デフォルトの名無しさん
07/04/25 21:31:46
>>675
makedependってこと?


677:デフォルトの名無しさん
07/04/25 21:40:32
require 'rake/loader/makefile'

file '.depend.mf' => そーす do |t|
sh 'gcc -M ...'
end

import '.depend.mf'

だろうか。


678:デフォルトの名無しさん
07/04/25 23:22:53
>>664も参照

679:デフォルトの名無しさん
07/04/26 10:50:56
>>676-678
importで導入できるんだね、ありがと


680:奉祝スレ5周年
07/08/17 21:40:54
GNUmakeで--debug=のコマンドで使用できるフラグについて
資料or情報はありませんか?
片っ端からトライしたところ iajvbm の6文字が何らかの機能を
持っているようですが。
巨大makefileのデバッグに使用したいです。

> make -v
GNU Make 3.81
  :
  :
This program built for i686-pc-cygwin
>

681:デフォルトの名無しさん
07/08/17 22:00:45
普通に info に載ってるけど。
man にも簡単な説明が出てる。

682:デフォルトの名無しさん
07/08/23 02:41:13
このスレ見ててもグチばっかだし、ほんとにmakeって使えないと思う。
(autotools含めてバッドノウハウの塊だと思う)

何故代替品は出てこないんだろう?
オープンソース界隈で普及しすぎて、デファクトになっちゃったのが原因なのかね。
マイクロソフトの独占なんかより、makeの独占を禁止してほしい。

683:デフォルトの名無しさん
07/08/23 02:45:27
>>682
ant, bjam, rake, SCons とかは代替品とは言わんの?

684:デフォルトの名無しさん
07/08/23 05:44:05
autotoolはともかくmakeは無いと困るだろ。

685:デフォルトの名無しさん
07/08/23 22:06:01
>>682
makeも使えない奴はたいしたコードはかけないし、
make使える奴は代替の必要を感じない

そういう意味でsubversion開発者は実に偉大だ

686:デフォルトの名無しさん
07/08/26 22:45:52
>>682
rakeつかってる

687:デフォルトの名無しさん
07/09/05 19:03:57
Rakeのユーザーガイド見つけた

RakeUserGuide - Rake ユーザガイド
URLリンク(www.kyobashi.org)
    ___
   ,;f     ヽ
  i:         i
  |         |
  |        |  ///;ト,
  |    ^  ^ ) ////゙l゙l;   ありがたや~
  (.  >ノ(、_, )ヽ、} l   .i .! |   ありがたや~
  ,,∧ヽ !-=ニ=- | │   | .|
/\..\\`ニニ´ !, {   .ノ.ノ
/  \ \ ̄ ̄ ̄../   / .|

688:デフォルトの名無しさん
07/10/03 18:54:33
makeが成功した後に自動的にcleanを実行するようにすることはできませんか?

689:デフォルトの名無しさん
07/10/03 19:00:26
make allの最後に、make clean呼ぶようにするだけでは?

690:デフォルトの名無しさん
07/10/03 19:48:03
>>689
作った物消すのって何したいん?、コンパイルチェックだけ?


691:デフォルトの名無しさん
07/10/03 20:25:19
ただ、FreeBSDのportsシステムのmakeファイルにはうんざり

692:デフォルトの名無しさん
07/10/16 09:10:29
WindowsでMakefileをダブルクリックで開けるようにはできないでしょうか?

693:デフォルトの名無しさん
07/10/16 10:52:08
>>692
できるよ
ただし他の拡張子のついてないファイルもダブルクリックでmakeされちゃうけど

694:デフォルトの名無しさん
07/10/27 01:05:58
>>692
>>693の問題があるので、俺は、適当に、batファイル書いて、クリックしてるけど


cygwinコンソール開くの面倒な時も多々あるw

695:デフォルトの名無しさん
07/10/27 19:15:09
Makefile.mak にすりゃいいんだ

696:デフォルトの名無しさん
07/12/09 23:42:59
>>688
make all clean


697:デフォルトの名無しさん
07/12/24 15:20:37
質問させてください。
サフィックスルールで、元と後が同じ拡張子のものはかけますか?


現在画像からサムネイルを作るMakefileを作っています。
1度すべて作った後は元画像が変更されたもののみ作りなおしたいです。

現状以下のように各ファイルに対して1ルール作っています。
THUMBNAIL/001.JPG : IMG/001.JPG
  convert -geometry 150x150 IMG/001.JPG THUMBNAIL/001.JPG
THUMBNAIL/002.JPG : IMG/002.JPG
  convert -geometry 150x150 IMG/002.JPG THUMBNAIL/002.JPG

これをサフィックスルールで「.JPG.JPG : 」のように書きたいのですが、
元と後が同じだとうまくいきません。


どうかよろしくお願いします。

698:デフォルトの名無しさん
07/12/24 15:48:00
>>697
それ循環定義になるならムリだと思う。
ただ現実的な解決方法としては
jpeg と jpg にしてしまうとか。
もしくは 一旦別の拡張子のファイルを touch して
jpg -> jpg コンバートかますとかならやれそう


699:デフォルトの名無しさん
07/12/24 15:51:55
>>697
THUMBNAIL/%.JPG : IMG/%.JPG
  convert -geometry 150x150 $< $@

700:697
07/12/24 15:56:38
>>698
ありがとうございます。

>もしくは 一旦別の拡張子のファイルを touch して
初めに思いついたのがこれだったんですけど、これだと一時ファイルをとっておく必要があるんですよね・・・

>jpeg と jpg にしてしまうとか。
これがいいですかね

701:デフォルトの名無しさん
07/12/24 15:58:03
>>697
全然サフィックスルールじゃないけど
SRCJPG = ${shell ls IMG/*.JPG}
${SRCJPG}: TUMBNAIL/%.JPG: IMG/%.JPG:
  convert -geometry 150x150 $< $@
という感じじゃダメかな。
(Windowsならlsをdirとかに変えて)

702:697
07/12/24 16:14:05
>699,701
これだ!ありがとうございます!
うまくいきました

703:デフォルトの名無しさん
07/12/30 12:19:08
makeで普通.cppを修正するとそこだけコンパイルしてくれますよね?
.hを修正してもコンパイルしてくれないのですが、どうしたらいいですか?
誰か教えて

704:デフォルトの名無しさん
07/12/30 12:22:59
依存関係が足りないから。

$ g++ -MM
で出てくる依存関係をMakefileで読み込むようにしとけ

705:デフォルトの名無しさん
07/12/30 13:59:11
b.x: e.x
a.x: b.x c.x d.x

%.z: %.x
hoge $^

のようなルールを記述して make a.z を実行したときに,
hoge a.x b.x c.x d.x e.x
というコマンドを走らせることはかのうでしょうか?


a.z: a.x b.x c.x d.x e.x
というルールを記述することは避けたいです.

706:デフォルトの名無しさん
07/12/31 15:47:10
age

707:デフォルトの名無しさん
07/12/31 16:53:06
阪大外国語学部の椿原慎二くんは昔からゴム付けてくれませんよ。
なんか顔もゴリラなんだけど、あのときはまさに野獣になって、日本語もさえも通じなくなる。
まがりにも外国語学部イタリア専攻で行ってるんだけど、あれじゃ外国語とか言うよりもゴリラ語。
きっとボブサップもあんな感じなんだろうな。ただ椿原慎二のチンコはサップに比べると小さいし臭いけどね。



708:デフォルトの名無しさん
07/12/31 22:50:40
こ こ で も 椿 ○ 粘 着 か
年の瀬だっちゅうのに悲しくないのかね

709:デフォルトの名無しさん
08/01/08 20:41:34
UNIX Cシェルのmakefileで、
外部の環境変数が設定してあるファイルを
makefileの中から読み込むことって出来ますか?
出来るなら方法を教えてください。

710:デフォルトの名無しさん
08/01/10 12:43:51
include

実例が見たければ、linux のソースなんかで使われているので
grep -n include /usr/src/linux/Makefile
でも汁


711:デフォルトの名無しさん
08/01/10 21:44:05
>>710
おお。ありがとうございます。助かりました。

712:デフォルトの名無しさん
08/01/22 15:08:09
働いたらmakeかな?

713:デフォルトの名無しさん
08/01/25 15:06:10
GNU makeなんですが、

CC=bcc32
all:
${CC} hoge.c

というようなmakefileを実行する時に
make -e CC=gcc
として${CC}をgccに変更して実行させたいのですが、うまくいきません。
コンソールにそのまま gcc hoge.cと表示されてしまいます。
-eで書き換えた変数はサブシェル?として実行されないのでしょうか・・・?

714:デフォルトの名無しさん
08/01/25 15:23:19
すいません。>>713です。
makeよぶシェルに-nつけてました。アホでした。

715:デフォルトの名無しさん
08/02/01 19:39:29
gccとmakeで並列コンパイルはできますか?


716:デフォルトの名無しさん
08/02/01 21:44:28
>>715
makeの-jオプションのことでいい?

それとも、複数のホストで分散コンパイルするという話なら
distccでぐぐるといいかも。



717:デフォルトの名無しさん
08/02/13 15:12:44
nmakeが常に、すべてのソースをコンパイルしようとします。
最新のものはコンパイルしないようにするにはどのようにしたらよいのでありましょうか?

718:デフォルトの名無しさん
08/02/13 19:24:18
Makefileを確認したら?

719:デフォルトの名無しさん
08/02/13 21:48:25
>>717
依存関係の書きかたを間違えてるんじゃないの?

720:デフォルトの名無しさん
08/02/19 08:37:35
OSによって、gccとclを使い分けたいのですが、LinuxとWindowsによってコンパイラを変えるにはどのようにしたらよいのでしょうか?

721:デフォルトの名無しさん
08/02/19 09:48:35
>>720
C++ sourceで書けばいいんじゃね?

722:720
08/02/19 10:18:42
もう少し詳しく教えていただけないでしょうか?
ifの様な構文を使って
CC=cl

CC=g++
を切り替えたいのですが

723:デフォルトの名無しさん
08/02/19 10:41:37
>>720,722
どのmakeをお使いですか?
GNU make、BSD make、nmake、それぞれやり方が違うと思われ。


724:720
08/02/19 11:14:26
GNU makeとnmakeです。

725:デフォルトの名無しさん
08/02/19 11:27:07
つか、nmakeとGNU makeって全然違うようなキガス

726:デフォルトの名無しさん
08/02/19 11:41:48
そうなのですが、それに対して、同じMakefileを使えるようにする方法はないものかと思案しています

727:デフォルトの名無しさん
08/02/19 11:43:08
なにか方向を間違っているような気がします.

728:デフォルトの名無しさん
08/02/19 11:45:00
>>724
共通のMakefileではムリじゃないかなあ。
条件分岐はGNU makeだとifeq/ifdef、nmakeだと!IF/!IFDEFだし。

ふつうは、プラットフォーム毎にMakefileを用意したり生成したりする
のではないかと。


729:デフォルトの名無しさん
08/02/19 13:09:40
>>724
makefileスレに行け。
スレリンク(tech板)

730:デフォルトの名無しさん
08/02/19 13:30:10
これは・・・・いったい・・

731:デフォルトの名無しさん
08/02/19 13:33:17
1.気の利いた洒落のつもり
2.くだ質スレだと勘違いした
3.じつは人類滅亡の予言

732:デフォルトの名無しさん
08/02/19 13:38:57
         ヘ   ,ヘ
        / ヽ,  ::.
       /      ::.
       /       :::.  
      ″<●> <●>::.  
      |  、_,、_,   ::::.
     |     !.ノ  :::::::::
     /          ..::::.
    /           :::::

733:729
08/02/19 13:47:30
正解は2番……_/ ̄|◯

734:デフォルトの名無しさん
08/02/19 16:50:40
普通は
makefile.vc
makefile.gcc
makefile.cygwin
makefile.tcc
makefile.pl
makefile.rb
makefile.cobol
のように分けますね

735:デフォルトの名無しさん
08/02/19 18:36:18
jオプションで並列コンパイルをしています。
これを毎回指定しないでも並列コンパイルする方法はないでしょうか?
OSはFedora8、コンパイラーはintel10です。

736:デフォルトの名無しさん
08/02/19 18:40:30
なぜその方法を知りたいのかが知りたいなぁ。


737:デフォルトの名無しさん
08/02/19 18:50:15
alias make='make -j'

738:デフォルトの名無しさん
08/02/19 19:03:08
あなたは奇妙な感覚に包まれた -more-

739:デフォルトの名無しさん
08/02/19 19:19:30
>>735
GNU make自身には-jのデフォルト値を変える手段はないですね。
737みたいにエイリアスにするか、シェルスクリプトにするか。


740:デフォルトの名無しさん
08/02/19 19:29:22
cmakeとsconsのが綺麗でよいよな。
linuxカーネルとかbbみたいなオプション出てこないのもよい。
見た目だけでしか判断できないので。

741:デフォルトの名無しさん
08/02/26 23:51:30
#ifdef AAA
(コード)
#endif

みたいなのがソース中に書いてあって、これをmake時に、define したいのですが、
$ make CFLAGS="-DAAA" とすると、もとのMakefileで指定されていたCFLAGSが
上書きされてしまいます。CFLAGS+="-DAAA" のように追加指定で make 時の
コマンドライン上で指定って出来ないのでしょうか?


742:デフォルトの名無しさん
08/02/27 15:41:38
CFLAGSはユーザーが定義するものだから、Makefile側ではそのまま使わない。
$(CC) $(CFLAGS) $(MYCFLAGS) -o (ry

743:デフォルトの名無しさん
08/03/22 16:52:52
*.ppmとか*.pnmといった各種画像から*.jpgを生成したいのですが、

 .pnm.jpg:; cjpeg-mmx $^ > $@
 .ppm.jpg:; cjpeg-mmx $^ > $@
 .pgm.jpg:; cjpeg-mmx $^ > $@
 .pbm.jpg:; cjpeg-mmx $^ > $@
 
 # 特定ファイルについて特別な変換をする場合は明示的に書く
 hoge.jpg: hoge.ppm
  convert -normalize $^ $@

のようにサフィックスルールを沢山書くのではなく、

 %.jpg: $(wildcard %.pnm %.ppm %.pgm %.pbm)
  cjpeg-mmx $^ > $@
 
 # 特定ファイルについて特別な変換をする場合は明示的に書く
 hoge.jpg: hoge.ppm
  convert -normalize $^ $@

のようにルールを動的に作り、コマンド列は一箇所にだけ
書けばいいようにしたいと考えています。

上の %.jpg: $(wildcard ...) は、まあ、動かないのですが、
何かうまく動かす方法はないでしょうか?

744:デフォルトの名無しさん
08/03/22 19:37:47
filter-out あたりをつかって別に分けるかなぁ。


745:デフォルトの名無しさん
08/03/22 21:57:27
要は

 %.jpg: $(wildcard %.pnm %.ppm %.pgm %.pbm)

のルールが実行時に hoge.jpg の依存関係を調べる瞬間に
展開されてほしいわけで、

 %.jpg: $(filter %.p*m,$(PNMFILES))

なども考えましたが、ルール右側で関数を呼びつつ、その引数として
左側のパターンのファイル名を渡す方法がどうもわからないのです。

makeを触るのは数年ぶりで、正直簡単なことに詰まっているだけなのか、
それとも元々難しいのか判断に迷ってここに質問してみました。

746:デフォルトの名無しさん
08/04/07 11:39:37
去年までUNIXでMakeをばりばりに使っていました。

# あ、プログラマじゃないよ。大規模プロジェクトの管理だけどね

でもちょっと部署が変わって
Windowsなどという邪悪な環境下お仕事する必要が生まれました。
Windows XPで使いたいのですが、どこからmakeをだうそ出来るですか?
つまらない理由で、コンパイルさせてもらえないので、バイナリで
だうそしたいです

gmakeでもBSDの旧makeでも何でもいいです


747:デフォルトの名無しさん
08/04/07 11:48:52
>>746
日本語でOK。

考えられるのは、MS謹製のVisualStudioについてくるnmakeかCygwinのgnu-makeかね。

748:デフォルトの名無しさん
08/04/07 12:51:51
>>747
ありがと
でも私は日本人ですから日本語不自由ありません

749:デフォルトの名無しさん
08/04/07 13:05:23
人に質問するような文章なら、最低限以下の注意くらいしてもよかろう。

・句点を忘れずに。
・奇妙な造語は避ける。
・読む人間の視点で冷静に読み直す。

処で、コンパイルさせて貰えないのに拾ってきたツールは使ってもいいの?

750:デフォルトの名無しさん
08/04/07 19:52:28
>>746
msysにバイナリのgmakeが入ってる
Current Release: msys-1.0.10 (2004-03-16 05:47)を落とすよろし


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch