--- nono/Makefile.rule 2026/04/29 17:04:33 1.1.1.1 +++ nono/Makefile.rule 2026/04/29 17:05:47 1.1.1.5 @@ -14,22 +14,37 @@ # ターゲットをビルドするためのルールは各自で定義のこと。 # # CSRCS -# ターゲットをビルドするための C ソース。 +# nono をビルドするための C ソース。 +# +# CSRCS_all +# テストなども含むすべてのターゲットをビルドするための C ソース。 +# 定義されてなければこちらで ${CSRCS} を代入する。 # # CXXSRCS -# ターゲットをビルドするための C++ ソース。 +# nono をビルドするための C++ ソース。 +# +# CXXSRCS_all +# テストなども含むすべてのターゲットをビルドするための C++ ソース。 +# 定義されてなければこちらで ${CXXSRCS} を代入する。 # # CFLAGS.{srcfile} # CXXFLAGS.{srcfile} # CPPFLAGS.{srcfile} # 個別のソースファイルに適用するオプション。 # +# COPT +# C/C++ ソースコンパイル時に指定する追加のオプション。 +# すべてのオプションより後ろで出力する。 +# # CLEANFILES # make clean で削除する追加のファイル。 # # CLEANDIRFILES # make cleandir で削除する追加のファイル。 +CSRCS_all?= ${CSRCS} +CXXSRCS_all?= ${CXXSRCS} + all: ${TARGETS} .PHONY: clean @@ -40,25 +55,22 @@ clean: cleandir: rm -rf .depends ${CLEANDIRFILES} -${BINDIR}: - mkdir -p ${BINDIR} - .PHONY: install install: .PHONY: depend -.if "${CSRCS}" != "" || "${CXXSRCS}" != "" -.PHONY: ${CSRCS:.c=.d} ${CXXSRCS:.cpp=.d} -depend: ${CSRCS:.c=.d} ${CXXSRCS:.cpp=.d} +.if "${CSRCS_all}" != "" || "${CXXSRCS_all}" != "" +.PHONY: ${CSRCS_all:.c=.d} ${CXXSRCS_all:.cpp=.d} +depend: ${CSRCS_all:.c=.d} ${CXXSRCS_all:.cpp=.d} cat ${.ALLSRC} > .depends rm -f *.d .endif -.for f in ${CSRCS} +.for f in ${CSRCS_all} ${f:.c=.d}: ${CC} ${CPPFLAGS} -E -MM $f > $@ .endfor -.for f in ${CXXSRCS} +.for f in ${CXXSRCS_all} ${f:.cpp=.d}: ${CXX} ${CPPFLAGS} -E -MM $f > $@ .endfor @@ -67,8 +79,16 @@ ${f:.cpp=.d}: .include "${.CURDIR}/.depends" .endif +.PHONY: show-files +show-files: + @echo ${CSRCS} ${CXXSRCS} + +.PHONY: show-allfiles +show-allfiles: + @echo ${CSRCS_all} ${CXXSRCS_all} + .c.o: - ${CC} ${CFLAGS} ${CFLAGS.$<} ${CPPFLAGS} ${CPPFLAGS.$<} -c $< -o $@ + ${CC} ${CFLAGS} ${CFLAGS.$<} ${CPPFLAGS} ${CPPFLAGS.$<} ${COPT} -c $< -o $@ .cpp.o: - ${CXX} ${CXXFLAGS} ${CXXFLAGS.$<} ${CPPFLAGS} ${CPPFLAGS.$<} -c $< -o $@ + ${CXX} ${CXXFLAGS} ${CXXFLAGS.$<} ${CPPFLAGS} ${CPPFLAGS.$<} ${COPT} -c $< -o $@