У меня есть проект, над которым я работаю, который на самом деле содержит 3 подпроекта, каждый из которых должен быть скомпилирован за один раз. Мой make-файл выглядит примерно так:
all: a b c
a:
@cd a && make
b:
@cd b && make
c:
@cd c && make
Проекты A и B прекрасно компилируются, но для третьего проекта он говорит, что ничего не поделаешь, хотя переключение в каталог C и запуск make фактически компилируют код.
Чтобы быть более конкретным: Project C в приведенном выше примере на самом деле является SpiderMonkey от Mozilla Принимая во внимание, что A и B - это написанные мною кодовые / make-файлы, C - просто необработанная копия SpiderMonkey с веб-сайта Mozilla. Фактически команда для его компиляции:
make JS_DIST=/usr JS_THREADSAFE=1 JS_HAS_FILE_OBJECT=1
В моем мастере Makefile у меня есть:
spidermonkey:
@cd spidermonkey/src && $(MAKE) JS_DIST=/usr JS_THREADSAFE=1 JS_HAS_FILE_OBJECT=1
Запуск "make spidermonkey" выводит "make: Ничего не нужно делать для` spidermonkey '". Как мне заставить make выполнить команду?
EDIT:
Я попытался добавить следующие строки в мой make-файл:
.PHONY: spidermonkey
Как и переименование правила spidermonkey в sm, но без изменений.
EDIT:
Виноват! У меня были пробелы, когда у меня должна была быть вкладка. DOH!