次のような Makefile がある場合
server : network.o storage.o logic.o
ld network.o storage.o logic.o -o server
network.o : network.c netdefs.h
cc -c -o network.o network.c
storage.o : storage.c defs.h
cc -c -o storage.o storage.c
logic.o : logic.c defs.h
cc -c -o logic.o logic.c
.PHONY : promote clean reallyclean
promote : server
cp server /staging/new_servers
clean :
rm -f *.o
reallyclean : clean
rm -f server
そして、次の一連のコマンドを実行します
make server # builds ther server from source
make clean # tidies up the .o files
make promote # send the built server to the staging area
当然のことながら、.o ファイルはサーバーの依存関係であり、欠落しているため、make はサーバーを最初から再構築します。
サーバーファイル自体が存在しない場合はこれが発生することを望みますが(それ以外の場合は昇格するものは何もありません)、サーバーがあり、.oファイルがない場合は、サーバーが最新であると仮定するようにmakeしますそしてそれを促進すること。
これは達成可能ですか?