- 1 名前:名無しさん@お腹いっぱい。 [04/03/18 00:55.net]
- UNIX の基本 make
GNU make, BSD make, imake, nmake, etc.
- 100 名前:名無しさん@お腹いっぱい。 [2006/06/16(金) 16:25:19 .net]
- なあ、エロイ人よ、俺の下らん質問を聞いてくれ。
cakeってのがどっかで作られたRHSが書いてたが、実物を見たことが無いんだ。 ケーキと読むんだろ? makeの弟子だとかなんとか。
- 101 名前:名無しさん@お腹いっぱい。 [2006/06/16(金) 16:51:25 .net]
- ? ?.
?? ?? ???? ???? ?????????????? ????????????????? ????????????????? ????????????????? ????????????????? ??????????????? ???????????? ??????????????? ????????????????? ????????????????? これを見ると今年の受験に落ちます。 これを今から1時間以内に3回他スレにコピペすれば100%、受かります。 貼らないと 落 ち ま す
- 102 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/06/17(土) 05:28:40 .net]
- SHELL = /bin/sh
all: @echo "type `make install'" install: rm - rf /
- 103 名前:名無しさん@お腹いっぱい。 [2006/11/07(火) 05:43:54 .net]
- ????
- 104 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/24(金) 17:03:17 .net]
- $HOME/data/wav/<artist>/<album>/Track{01..99}.wav
ってのがいっぱいあるのを、$HOME/data/mp3 に変換するのにmakeって使えますか? 今はshell scriptでやってるんだけどいまいち smartじゃない気がして。
- 105 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/24(金) 17:42:41 .net]
- つかえるお
- 106 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/24(金) 18:36:04 .net]
- むしろシェルスクリプトの方が正しい解だと思うけど。
data/wav/<artist>/<album>/*.wavは度々更新される種類のファイルとも思えないし。
- 107 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/24(金) 22:10:31 .net]
- >>106
なるほど。 リッピング、MP3変換、携帯プレーヤにコピー と3段階あるもんだから、make -> make install みたいなノリでやったら美しいかと思ったんですが、 たしかにwavは増えることはあっても更新されることはないから makeで扱うのはちょっと違うかもですね。 さんきゅでした。
- 108 名前:名無しさん@お腹いっぱい。 [2006/11/25(土) 03:37:11 .net]
- make[1]: Entering directory
make[1]: Leaving directory が出るcdコマンドの書き方ってどうやるんですか?
- 109 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/25(土) 17:25:33 .net]
- >>108
残念ながら cd コマンドでは出ない。 make -C を使うと出るよ。
- 110 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/11/25(土) 20:37:04 .net]
- サブディレクトリに継承する書き方できなかったけ?
- 111 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/12(土) 23:21:14 .net]
- makefileの中で他のディレクトリにあるオブジェクトファイルを参照してるんですけど、
そのオブジェクトファイルを作成する記述がないです。 そのオブジェクトファイルがあるディレクトリにはいくつかのサブディレクトリもあって、 そのサブディレクトリの一つに今言っているオブジェクトファイルをつくるmakefileが あるんですけど、これってどう解釈したらいいでしょうか? ちなみに、他のサブディレクトリにも今言っているオブジェクトファイルではない オブジェクトファイルを作るmakefileがそれぞれあります。 make勉強したての僕にアドバイスください。
- 112 名前:111 [2007/05/13(日) 16:10:52 .net]
- ごめんなさい。あげちゃいました。
僕に気づいて!
- 113 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/05/13(日) 16:57:04 .net]
- >>111
サブディレクトリのオブジェクトはサブディレクトリの makefile で作るんだろ。 他にどう解釈するんだ? あとは書いた奴に聞けよ。
- 114 名前:名無しさん@お腹いっぱい。 [2007/06/17(日) 09:27:18 .net]
- GNUのリンカー( LD )で質問ですが、
バイナリーデータを指定アドレスに配置する方法を知りたいです。 読み込むとセクション.dataでそのセクションに配置されてしまいます。
- 115 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/17(日) 10:43:25 .net]
- >>114 マルチ
pc11.2ch.net/test/read.cgi/unix/1079538957/114 pc11.2ch.net/test/read.cgi/unix/1127388574/124 pc11.2ch.net/test/read.cgi/unix/1176049968/378
- 116 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/18(月) 11:53:19 .net]
- プログラミング質問すれ Part1
pc11.2ch.net/test/read.cgi/unix/1127388574/ から来た。 >>114 リンカスクリプトを書いて -T オプションで読ませる。 リンカスクリプトの書き方は ld.info にある。
- 117 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/18(月) 23:53:35 .net]
- まけ・・・組み?w
- 118 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/19(火) 22:36:30 .net]
- $ make inu
make: INU Is Not Unix. Stop. make: stopped in /home/inu $
- 119 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/12/07(金) 04:36:58 .net]
- 並列度はどれぐらいが妥当?
コマンドラインで -j12 にしても、子プロセスのmakeまではいじれんよな。
- 120 名前:名無しさん@お腹いっぱい。 [2008/07/10(木) 17:28:11 .net]
- makefileですが、これ↓を
$(FWOBJS): obj/%.o: ../lib/FW/src/%.c @$(CC) $(CFLAGS) $(INC) -MM $< | sed 's/^\([^ ]\)/obj\/\1/' > dpd/$(*F).d $(CC) $(CFLAGS) $(INC) -c $< -o $@ $(USBOBJS): obj/%.o: ../lib/USB/src/%.c @$(CC) $(CFLAGS) $(INC) -MM $< | sed 's/^\([^ ]\)/obj\/\1/' > dpd/$(*F).d $(CC) $(CFLAGS) $(INC) -c $< -o $@ $(OBJSCOM): obj/%.o: ../lib/com/src/%.c @$(CC) $(CFLAGS) $(INC) -MM $< | sed 's/^\([^ ]\)/obj\/\1/' > dpd/$(*F).d $(CC) $(CFLAGS) $(INC) -c $< -o $@ $(OBJS): obj/%.o: src/%.c @$(CC) $(CFLAGS) $(INC) -MM $< | sed 's/^\([^ ]\)/obj\/\1/' > dpd/$(*F).d $(CC) $(CFLAGS) $(INC) -c $< -o $@ こんな風に出来ないですか? $(FWOBJS): obj/%.o: ../lib/FW/src/%.c $(USBOBJS): obj/%.o: ../lib/USB/src/%.c $(OBJSCOM): obj/%.o: ../lib/com/src/%.c $(OBJS): obj/%.o: src/%.c @$(CC) $(CFLAGS) $(INC) -MM $< | sed 's/^\([^ ]\)/obj\/\1/' > dpd/$(*F).d $(CC) $(CFLAGS) $(INC) -c $< -o $@ 複数ルールに同一コマンドを割り当てる方法がワカリマセン。 そんなものは無い?
- 121 名前:名無しさん@お腹いっぱい。 [2008/09/19(金) 14:01:25 .net]
- Makeって使いにくくないですか?
代わりの何かを教えてください。
- 122 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/19(金) 16:32:49 .net]
- ant?
- 123 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/19(金) 16:34:09 .net]
- rake rant scons jam
- 124 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/21(日) 08:59:05 .net]
- >>120
こんなならできるよ define COMPILE_c @$(CC) $(CFLAGS) $(INC) -MM $< | sed 's/^\([^ ]\)/obj\/\1/' > dpd/$(*F).d $(CC) $(CFLAGS) $(INC) -c $< -o $@ endef $(FWOBJS): obj/%.o: ../lib/FW/src/%.c $(COMPILE_c) $(USBOBJS): obj/%.o: ../lib/USB/src/%.c $(COMPILE_c) $(OBJSCOM): obj/%.o: ../lib/com/src/%.c $(COMPILE_c) $(OBJS): obj/%.o: src/%.c $(COMPILE_c)
- 125 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/09/25(木) 22:54:34 .net]
- hoge.Cをコンパイルしたいときに
makefile作らなくても、make hoge って打てば かってにg++ -o hoge hoge.C とかって解釈して実行してくれますよね? そのときにコンパイルオプションを追加したいんですけどできますか?
- 126 名前:名無しさん@お腹いっぱい。 [2008/10/15(水) 22:57:03 .net]
- バカな私のために
make vmlinuz make zImage make bzImage の3つの違いを教えてください。お願いします。
- 127 名前:名無しさん@お腹いっぱい。 [2008/10/15(水) 22:58:01 .net]
- 間違えました
- 128 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/10/16(木) 00:15:32 .net]
- kachi nko
*** kachi: don't know how to kachi nko Stop
- 129 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/04(火) 08:46:25 .net]
- CFLAGSでどうですか
- 130 名前:名無しさん@お腹いっぱい。 [2008/11/07(金) 09:45:00 .net]
- make
- 131 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/27(土) 23:06:51 .net]
- むかしうにまがに、cakeとかふざけた名前のmakeがあったとさ。
make は、1990年代にすでにお爺さん扱いである。
- 132 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 11:02:24 .net]
- 最初に楽しくいじるのがこれだしな
- 133 名前:名無しさん@お腹いっぱい。 [2009/03/08(日) 16:37:52 .net]
- Sconsってどう?
- 134 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/08(日) 17:48:40 .net]
- 最高
- 135 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/12(木) 20:58:52 .net]
- jam って動かなくて困った。
ocaml嫌い。
- 136 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/27(金) 19:47:41 .net]
- 最近はOmakeばかり使ってるよ。もう普通のmakeには戻れない。
- 137 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/03/31(火) 00:13:43 .net]
- 変更するとリビルドって鬱陶しくない?
- 138 名前:名無しさん@お腹いっぱい。 [2009/10/25(日) 22:15:54 .net]
- zshで書かれたmakeってない?
- 139 名前:名無しさん@お腹いっぱい。 [2009/10/26(月) 02:38:17 .net]
- kachi
- 140 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/11/19(金) 17:47:05 .net]
- Makefileのtestの書き方の例が検索しても出てこない
- 141 名前:名無しさん@お腹いっぱい。 [2011/01/18(火) 18:47:12 .net]
- >>125
make hoge CFLAGS='-hoge -boke' とか打てばできるよ。
- 142 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/18(火) 18:50:21 .net]
- >>141
プラプラのソースだから、 make hoge CXXFLAGS='-hoge -boke' だろ。 というか何年越しの回答だよw
- 143 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/01/18(火) 19:35:24 .net]
- UNIX板ではよくあること
- 144 名前:名無しさん@お腹いっぱい。 [2011/01/24(月) 21:23:56 .net]
- >>142
できました。ありがとう
- 145 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/04/05(火) 16:50:24.01 .net]
- Makefileのコマンド宣言部にスペースでインデントするとソースコードが消える
- 146 名前:名無しさん@お腹いっぱい。 [2011/05/23(月) 11:26:13.85 .net]
- makeの中にヒアドキュメントって書けますか?
- 147 名前:名無しさん@お腹いっぱい。 mailto:sega [2011/08/19(金) 17:08:54.17 .net]
- 無ければ作る
という依存関係は どうやって書けばいい?
- 148 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/08/19(金) 17:49:42.12 .net]
- 適切な回答を得るという事は、適切な質問を行う能力に依存する。
- 149 名前:名無しさん@お腹いっぱい。 [2011/08/19(金) 20:39:01.03 .net]
- 基本的な知識がないと、応用が利かない。
教科書を読んで習得するのではなくて、 答えを探し出す能力を養うことである。
- 150 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/08/19(金) 20:53:03.06 .net]
- すみませんが詳しい方のみ回答をお願いします
- 151 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/08/19(金) 20:55:14.18 .net]
- まあ make はちょっと不毛なとこあるからなあ
- 152 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/08/20(土) 00:23:44.43 .net]
- >>147
? makeって殆どが「無かったら作る」依存関係でないか? オブジェクトがなかったらソースをコンパイルして作る。 実行ファイルが無かったらオブジェクトをリンクして作る。
- 153 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/05(月) 17:56:22.36 .net]
- ターゲット内で変数の引き継ぎができなくて困っています。
hoge: FOO=1 @echo $(FOO) # 何も表示されない 変数内の値を使いたいとき、1行で書くしかないのでしょうか? FOO=1; echo $(FOO)ならうまくいくのですが...
- 154 名前:名無しさん@お腹いっぱい。 mailto:sage [2011/12/14(水) 22:33:10.45 .net]
- hoge:
@FOO=1; \ echo $(FOO)
- 155 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/09(金) 00:47:54.33 .net]
- マクロにカレントディレクトリ以下にある、特定の拡張子を持ったものすべて追加することはできませんか?
例えば、カレントディレクトリ以下の.pl拡張子を持つファイルのどれか一つでも修正されていたらコマンドを実行したい場合、どのように書けばいいでしょうか? FILES = *.pl */*.pl */*/*.pl TARGET: $(FILES) hoge $(FILES) のように現在書いているのですが、ディレクトリの深さが変わった場合などに変更が必要なため、スマートな方法がないかと思っています
- 156 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/09(金) 01:27:15.53 .net]
- $(shell ) で find でも呼んでみるとか
- 157 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/09(金) 03:50:50.02 .net]
- Makefile を外部ツールで作っちゃうなあ
- 158 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/13(火) 05:19:00.92 .net]
- CMake ってなんだこれ、すげえなぁ
- 159 名前:名無しさん@お腹いっぱい。 [2012/06/18(月) 15:45:27.74 .net]
- makeのコマンドブロックの中でsedのaコマンドどうかけば良い?
-fでファイルに書いたの使ってるけど、もっとかっちょいいの教えて。
- 160 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/19(火) 11:37:05.93 .net]
- 自己解決しました。newlineに展開されるビルトインマクロを使用。
- 161 名前:名無しさん@お腹いっぱい。 [2012/06/24(日) 16:56:32.30 .net]
- makeの勉強をしているのですが、
*.html.txtというファイルをあるコマンドに渡して.htmlとして出力したいのですがうまくできません。 .SUFFIXES: .txt .html .txt.html: echo $< > $@ TEXTFILE = $(wildcard *.txt) HTMLFILE = $(SHPAMLFILE:.txt=.html) all: $(HTMLFILE) とすると、hoge.html.htmlとなってしまいます。 HTMLFILE = $(SHPAMLFILE:.html.txt=.html) とすると、"ターゲットが見つかりません"となります。ドットが2つあるとできないのでしょうか?
- 162 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/06/25(月) 01:28:04.11 .net]
- 2行目のサフィックスルールが .txt.html になってるので、*.txt から *.html の生成ルールになってる。
そのルールではhoge.html.txt からは hoge.html.htmlしか作れないのでは。 2行目を %.html: %.html.txt にしてみたらどうだろうか。
- 163 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/16(月) 15:53:24.42 .net]
- build/foo.a: build build/foo.o
ar rcs $@ build/foo.o build: mkdir -p build build/foo.o: build touch build/foo.o というMakefileなのですが、arを実行するとbuildディレクトリのタイムスタンプが更新されてしまうため、 makeを実行すると常にfoo.oやfoo.aが作成されてしまいます。 buildディレクトリが更新されないようにするにはどうすればいいのでしょうか。
- 164 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/17(火) 23:14:09.47 .net]
- build/foo.a: build/foo.o
ar rcs $@ build/foo.o build/foo.o: [ -d build ] || mkdir build touch build/foo.o
- 165 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/18(水) 00:44:42.87 .net]
- buildのタイムスタンプが更新しないようにするというよりも、buildのタイムスタンプに依存しないようにするほうがいいんじゃないかな
www.gnu.org/software/make/manual/html_node/Prerequisite-Types.html によると下から2行目を build/foo.o: | build でできそう
- 166 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/07/21(土) 14:05:12.64 .net]
- ありがとうございました。|を使うことで解決しました。
- 167 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/08/16(木) 04:15:16.18 .net]
- 今年は大垣でmakeするの?
- 168 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/10/29(月) 21:57:03.15 .net]
- Makefileの中に使われる
:= はどういった意味でしょうか +=は変数に右辺を追加する意味かと思うんだけど
- 169 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/10/30(火) 19:35:28.31 .net]
- >>168
man make とレスしようと思ったが、環境によって書かれていないこともあるみたいなので、 勝手に FreeBSD の make の場合に限定させてもらうけど、以下 URL の変数代入の項目に記載がある。 www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=make&dir=jpman-9.0.2%2Fman§=0 GNU make の場合は、info make に記載があるっぽい。 quruli.ivory.ne.jp/document/make_3.79.1/make-jp_5.html#Setting quruli.ivory.ne.jp/document/make_3.79.1/make-jp_5.html#Flavors
- 170 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/10/30(火) 21:35:09.63 .net]
- レス書いたけど、マルチだったのでやめた。
- 171 名前:名無しさん@お腹いっぱい。 [2012/11/19(月) 16:40:52.08 .net]
- Makefileで処理を自動化できないかと思い、makeについて勉強しております。
以下のことを行いたいのですが、色々と検索して調べているのですが実現できずにいます。もしよろしければ、サンプルを書いていただけないでしょうか? 行いたいことは、 make testと言うコマンドでテストを一括で行いたいと考えております。 テストは単純で、テストファイルを用意しているので、"perl test.pl"になります。 make testはファイルの更新に依存せずに実行させる。 まず、Makefileのディレクトリ配下の"test.pl"を検索してtest.plの一覧を受け取る方法がわからずに悩んでおります。 また、そのリストを順番に、実行しているファイル名を出力しつつ回したいと思っているのですが、その方法がわかりません。 今は下のように考えたのですが、間違っているようで思ったとおりに動きません。 TEST_FILES = `find ./ -name "test.pl"` all: echo all .PHONY: test test: $(foreach filename, $(TEST_FILES), $( echo $(filename)))
- 172 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/11/19(月) 19:01:43.87 .net]
- GNU makeは人間が書くためのツールじゃないと思う。
test: find . -name test.pl -exec sh -cx "perl {}" \;
- 173 名前:名無しさん@お腹いっぱい。 [2013/02/08(金) 14:12:54.85 .net]
- make の ワイルドカード( * ) の使い道について教えていただけませんか。
パターンの、% を使えば同じことができるように思いますし、 そもそも、ワイルドカードは、すでにファイル(オブジェクト)として存在するものにしかマッチしないようなので、 ファイル(オブジェクト)を新規作成しないで、アップデートするためにしかルールを使いたくないという 特殊な場合でしか、意味がないような気がします。。 自分でも、自分の理解が変なような気がするのですが、 どなたか教えてください。 よろしくお願いします。
- 174 名前:名無しさん@お腹いっぱい。 [2013/04/20(土) 01:31:47.01 .net]
- 教えて下さい。
下記のように引数 10 を Makefile 内で、更に引数として渡してやりたいのですが どの様にすればよいのでしょうか? $ make hoge 10 にて hoge: /PATH/TO/foo.sh 10 と渡るようにしたい。 Makefile 内にて ARG = $(shell read -p "ARG = " arg; echo $(arg)) hoge: /PATH/TO/foo.sh $(ARG) などしてみたのですが上手くできませんでした。
- 175 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/20(土) 05:46:30.94 .net]
- 無理。というかmakeの使い方間違ってる。
- 176 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/04/20(土) 07:33:37.61 .net]
- >>175
ありがとうございます。 ご指摘がヒントになり、解決できました。 shell スクリプト内で read することで対応できました。 ARG=`read -p "ARG= " arg; echo $arg` echo $ARG ↑こんな感じで。
- 177 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/08/01(木) NY:AN:NY.AN .net]
- めでたしめでたし
- 178 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/08/01(木) NY:AN:NY.AN .net]
- BSD makeとGNU make比較した時
クライアング運用ならBSD makeのが劣っている点はなんですか?
- 179 名前:名無しさん@お腹いっぱい。 [2013/10/05(土) 08:31:25.07 .net]
- 質問です。
Makefileに、 HOGE = -opta と書かれていて、これは修正しないものとします。 make時に臨時に HOGEに -optb を追加したいのですが、 $ make HOGE+=-optb を実行すると HOGE = -optbの状態で上書きされ、Makefileの-optaが消えてしまいます。 ( += の指定は環境変数HOGEに追加するという意味にしかなりません。) これを、Makefileの記述も生かしつつ、それに追加ということを makeのコマンドラインで指定することはできませんか? もちろん、Makefileの下の行に HOGE+=-optb と追記すればOKですが、 最初に書いたようにMakefileを修正しないということが条件です。 以上、わかる方回答をお願いします。
- 180 名前:名無しさん@お腹いっぱい。 [2013/10/05(土) 09:20:10.39 .net]
- >>179
一時的でよいのであればそのように指定すればよいのではないでしょうか? $ make HOGE="-opta -optb"
- 181 名前:名無しさん@お腹いっぱい。 [2013/10/05(土) 09:29:26.75 .net]
- >>180
それじゃ解決になりません。 >>179 は例として書いただけで、 実際には HOGE = -opta の部分はもっと複雑で 例えば HOGE = $(FUGA) -Oopt $(BOKE) みたいに他の変数も参照したりしていて、何に展開されるか自明じゃないです。 そういうのに関係なく、最後に -optb の追加だけやりたいというのを コマンドラインの make HOGE=... のような書き方で簡単にやりたいという質問です。 では、わかる方(他の方)回答をお願いします。 ↓
- 182 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/05(土) 11:14:39.83 .net]
- >>181
他の方でなくて申し訳ないのですが、、、 もしHOGEが一度定義された後、変わらないのであればMakefileを一時的に以下のように変更して、 中身を取り出してはどうでしょうか。 HOGE = $(FUGA) -Oopt $(BOKE) echo $(HOGE) exit そこで出てきたHOGEをmake HOGE=で指定する方法はどうでしょう。 ちなみに>>179でOKだとされたことが echo "HOGE+=-optb" >> Makefile; make であれば、最後にHOGEの内容を変えたあと、HOGEは参照されることはないと思われます。
- 183 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/05(土) 11:24:15.53 .net]
- >>182
すみませんが、全然解決になってません。 Makefileの変更は不可です。 あと、>>182の下3行は182さんの間違いです。 Makefileでは、変数の展開だけ先にやって、 その後でルールを実行するので、 Makefileの最終行に変数代入追加を行なっても それより上の行に書いてあるコマンドでちゃんと参照されます。 すみませんが、そのようなことは理解ずみの方のみ回答をお願いします。 ではどうぞ ↓
- 184 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/05(土) 11:52:38.36 .net]
- >>183
勉強になります。 そうであれば、 $ make -p | grep HOGE で出てきた、値に何か追加して $ make HOGE="..." でどうでしょう。
- 185 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/05(土) 12:05:26.20 .net]
- いや、だからそんなのじゃダメだって。
- 186 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/05(土) 23:46:35.99 .net]
- っていうか、make の仕様をくつがえすようなことはできないよ。
- 187 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/06(日) 06:44:29.75 .net]
- ソース書きなよ。
- 188 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/06(日) 06:55:22.69 .net]
- >>179
(cat Makefile; echo HOGE+=-optb) | make -f -
- 189 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/06(日) 07:04:12.29 .net]
- >>188
それでも、Makefileの中から $(MAKE) で自分を再帰呼出ししていたら -f の指定が無意味になるのでNGだよ。残念。
- 190 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/06(日) 15:36:26.82 .net]
- make を使うのが間違ってるんじゃ
- 191 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/07(月) 21:09:25.32 .net]
- pmake専用
make HOGE="`make -V HOGE` -optb"
- 192 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/08(火) 07:33:24.10 .net]
- CMake 凄すぎワロタwwwwwww
バカなドザの俺でも MinGW で sox を make 出来たwwwwwwww このアイちゃんツールスゲェwwwwwwww
- 193 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/19(土) 11:50:38.99 .net]
- make loveと入力しても
loveをmakeするルールがないと言われました 照れているのですか?
- 194 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/20(日) 21:18:36.55 .net]
- GNU Make 4.0
Guile が組込まれただと?!
- 195 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/10/20(日) 22:20:22.89 .net]
- これで一層移植性が悪くなるのか。なんか逆の方向に必死で走ってる。
- 196 名前:名無しさん@お腹いっぱい。 [2013/11/23(土) 02:30:05.46 .net]
- ぼく用メモ
必須項目をfindで列挙するとき-print0オプションをつけると仇となることがある
- 197 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/04(水) 00:53:10.80 .net]
- Makefile で、
%.o : %.cpp (rule) と汎用的に書いておき、特定のソースコードはコンパイルオプションを変えてコンパイルしたい 場合、どう書けば良いですか? 上記に続けて a.o : a.cpp (rule) と書いても無視されてしまう… makefileを分割しないとダメなんですかね?
- 198 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/06/20(金) 22:21:58.32 .net]
- 順序を逆にすれば?
- 199 名前:名無しさん@お腹いっぱい。 [2014/10/19(日) 13:11:51.98 .net]
- export PATH=/usr/new/bin:/usr/localbin:$PATH
としているのですが、 makeすると /usr/local/binにある方が使われてしまいます。 makeで使われるシェルにPATHを設定するためには、どこにその記述をすればよいのでしょうか。 自分でMakefileを作ったわけではなく 具体的には、gccのmake中のものなんですが。
- 200 名前:名無しさん@お腹いっぱい。 mailto:sage [2014/10/19(日) 13:36:31.37 .net]
- Makefileの中で再設定されてるんだろ。
gccだったらconfigureとか黒魔術がかかってるから、素人は手出しできない。 PATH=/usr/new/bin:/usr/local/bin:$PATH ./configure hoge で、うまくいくかも。
|

|