5

(現在の) 小さな C プロジェクトで単体テストのサポートを組み込むために、Autotools で Check を使用するページの指示に従っています。Checkの代わりにCgreenを使用していますが。

ステップ 9 で問題が発生しました。これにより automake は、GNU make 拡張である「%」スタイルのパターン ルールの使用について警告を発します。

特定の make 規則は次のとおりです。

check_%.$(OBJEXT) : $(srcdir)/%.c
    $(COMPILE) -DCHECKING -c -o $@ $^

gnu make 拡張機能に依存しない、このルールを指定する同等の方法があるかどうか疑問に思っています。

4

2 に答える 2

7

移植可能な make ルールは、異なるサフィックスのみを使用できます。プレフィックスは同じである必要があります。

.c.o:
        $(COMPILE) -DCHECKING -c -o $@ $<

ただし、サフィックスは必ずしもドットで始まるとは限りません。(その場合、Automake は推測できないので、サフィックスが何であるかを Automake に伝える必要があります。) したがって、たとえば、名前を に変更すると、次のようにcheck_showdns.oなりshowdns_check.oます。

SUFFIXES = _check.o 
check_libapdns_LDADD        = @CHECK_LIBS@ showdns_check.o
.c_check.o:
        $(COMPILE) -DCHECKING -c -o $@ $<
于 2009-04-20T15:48:14.603 に答える