私は自分のメイクファイルを手に入れて欲しいと思っています。まず、私はこれがPOSIX makeであると言いたいと思います。http://www.opengroup.org/onlinepubs/009695399/utilities/make.html BSDとGNU(Linux)の両方で動作するビルドシステムが必要です。オブジェクトとソースをメイクファイルで区切る
私が望むのは、ゼロメンテナンスのメークファイルです。 src /にあるすべての.cと.asmファイルをコンパイルし、オブジェクトファイルをobjs /に配置し、objs /のすべてをバイナリファイルにリンクします。
私はたくさんのことができますが、ソースとobjファイルを分けることはできません。
(これは、POSIX定義の/ bin/shを使用して)組み込みのシェルスクリプトが必要な場合は問題ありませんが、依存関係を正しく動作させることはできません。ソースファイルが新しい場合にのみ、オブジェクトファイルをビルドします。
私の最も近いがこれです:これは私はまだC_OBJS = OBJS/foo.oのを指定する必要があり、問題と、そのようなを持っており、また、それはかろうじてないPOSIXであるため、BSDメイクでコンパイル
${C_OBJS}: ${HDRS} ${*:objs/%=src/%}.c ${CC} ${CFLAGS} -c ${*:objs/%=src/%}.c -o $*.o
が、 GNU makeではありません。
これは皮肉なことですか?私はBSDとGNU makeの両方をサポートするために行くことができると思います。それはGNU makeで動作するようですが、私はBSDの作業に "近い"と思っています。 – Earlz
実際にはまったく動作しませんBSD make – Earlz