[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:18559] gmake



汐崎と申します。
gmakeについて教わりたいのですが。
この文章内では,
FreeBSDの標準make, Linuxで標準的に使われるgmake
とを区別して呼称することにします。
FreeBSD用上ではmakeを,
OSTパラメータを以下の様な方法でmakeを起動して,
make -f make-foo.fb OST=fb44
希望通りの動作をしています。
--- make-foo.fb(makefile名)の抜粋
PNAME=foo
.if $(OST)=="fb47" || $(OST)=="fb46" || $(OST)=="fb44"
$(PNAME): $(PNAME).c
-> gcc -o $(PNAME)-$(OST) $(PNAME).c
.endif
===
Linux上でgmake(make)を使って,
同様のことをするための記述方法を教えて下さい。
以下は,うまくいかない記述例です。
--- make-fll.lx(makefile名)の抜粋
例1.
#ifeq ($(strip $(OST)),lx24) ||  ($(strip $(OST)),lx22) || ($(strip
$(OST)),lx20)
例2.現在以下の方法ですが,
OST=any でもmakeするので,好ましくありません。
---
ifneq ($(strip $(OST)),)   # if OST not empty
$(PNAME): $(PNAME).c
-> gcc -o $(PNAME)-$(OST) $(PNAME).c
endif
--
例3.うまくいくが,あまりにもmakeらしくない例
この例では,->同じコマンドが表れるので好ましくない。
ifneq ($(strip $(OST)),lx24)
$(PNAME): $(PNAME).c
-> gcc -o $(PNAME)-$(OST) $(PNAME).c
endif
ifneq ($(strip $(OST)),lx22)
$(PNAME): $(PNAME).c
-> gcc -o $(PNAME)-$(OST) $(PNAME).c
endif
ifneq ($(strip $(OST)),lx20)
$(PNAME): $(PNAME).c
-> gcc -o $(PNAME)-$(OST) $(PNAME).c
endif
---
ifeq
elseifeq <=*
endif
<=*この様な,ダイレクティブは,定義されていないのですが,
コマンド行gccが変化する場合には,
この種のダイレクティブがあったらいいなと思う
場面もあると思うのですが。
---
現在は,FreeBSD用とLinux用のmakefileを別々にしていますが
最初は,1つのmaikefileで作成すると,makeとgmake では
微妙に異なり,長い間うまくいかなかったのです。
皆さんは,別々にしていますか,?
それとも1つのファイルでうまくいっているのでしょうか?
尚,info make 等を,参考にしました。
以上ですが,宜しくお願いします。
---
Email: hshiozalo@nifty.com

Follow-Ups
[plamo:18561] Re: gmake, Takao Ono

[検索ページ] [メール一覧]
Plamo ML 公開システム