Tôi có một makefile xây dựng và sau đó gọi một makefile khác. Vì tệp Makefile này gọi thêm tệp tạo tệp thực hiện công việc nên nó không thực sự thay đổi. Vì vậy, nó cứ nghĩ rằng dự án được xây dựng và cập nhật.
dnetdev11 ~ # make
make: `release' is up to date.
Làm thế nào để tôi buộc makefile xây dựng lại mục tiêu?
clean = $(MAKE) -f ~/xxx/xxx_compile.workspace.mak clean
build = svn up ~/xxx \
$(clean) \
~/cbp2mak/cbp2mak -C ~/xxx ~/xxx/xxx_compile.workspace \
$(MAKE) -f ~/xxx/xxx_compile.workspace.mak $(1) \
release:
$(build )
debug:
$(build DEBUG=1)
clean:
$(clean)
install:
cp ~/xxx/source/xxx_utility/release/xxx_util /usr/local/bin
cp ~/xxx/source/xxx_utility/release/xxxcore.so /usr/local/lib
Lưu ý: Xóa tên để bảo vệ người vô tội
Chỉnh sửa: Phiên bản cố định cuối cùng:
clean = $(MAKE) -f xxx_compile.workspace.mak clean;
build = svn up; \
$(clean) \
./cbp2mak/cbp2mak -C . xxx_compile.workspace; \
$(MAKE) -f xxx_compile.workspace.mak $(1); \
.PHONY: release debug clean install
release:
$(call build,)
debug:
$(call build,DEBUG=1)
clean:
$(clean)
install:
cp ./source/xxx_utillity/release/xxx_util /usr/bin
cp ./dlls/Release/xxxcore.so /usr/lib
.PHONY
đó không phải là vấn đề duy nhất của bạn và bạn không thực sự phải chỉnh sửa giải pháp cho câu hỏi, hoặc ít nhất là không còn nữa.)