Tôi nắm bắt ý định của Makefile trong mã giả, sau đó chỉ ra các vấn đề tôi có. Tôi đang tìm một Makefile thân thiện với người dùng hơn trong môi trường thử nghiệm. Việc sử dụng chính xác của Makefile là một trong những điều sau.Sử dụng các quy tắc có điều kiện trong một makefile
make CATEGORY=parser TEST=basic.
make ALL
Nếu người dùng cung cấp cho "JUST" các lệnh như được chỉ ra dưới đây, nó sẽ in một thông báo "CATEGORY định nghĩa THỬ không xác định" và ngược lại
make CATEGORY=parser
make TEST=basic
Tôi cố gắng viết Makefile trong sau cách khác nhau, nhưng nó lỗi ra:
help:
echo"Usage: make CATEGORY=<advanced|basic> TEST=<test-case>
echo" make ALL
ifdef CATEGORY
ifdef TEST
CATEGORY_TEST_DEFINED = 1
else
echo "TEST not defined"
else
echo "CATEGORY not defined"
endif
ifeq ($(CATEGORY_TEST_DEFINED), 1)
$(CATEGORY):
cd $(PROJ)/$(CATEGORY)
make -f test.mk $(TEST)
endif
ifdef ALL
$(ALL):
for i in `ls`
cd $$(i)
make all
endif
Các câu hỏi tôi có bao gồm:
Liệu các quy tắc trong Makefile có thể được chọn lọc hay không (sử dụng ifdef để chọn các quy tắc và mục tiêu).
echo không hoạt động. echo sẽ giúp người dùng sử dụng đúng cách.
Theo dõi điểm @ Beta, bạn nên xem [FAQ] (http://stackoverflow.com/faq) và đặc biệt là phần [Làm cách nào để đặt câu hỏi tại đây?] (Http://stackoverflow.com/faq # howtoask). –