Создать make-файл для нескольких ОС, этот make (ext?) Не работает?
У меня есть рабочий make-файл, который собирается с mingw32. Теперь я переименовал этот make-файл в Makefile.w32 (источник -> http://pastie.org/319964).
Теперь у меня есть Makefile со следующим. Проблема в том, что он не создает мой источник
all:
make mingw32
clean:
@echo "causes an infinite loop -> make mingw32 clean"
mingw32:
@echo "yeahhhhhhhhh"
make Makefile.w32
mingw32-clean:
@echo "mingw clean"
make Makefile.w32 clean
результат:
> "make"
make mingw32
make[1]: Entering directory `/c/nightly/test'
yeahhhhhhhhh
make Makefile.w32
make[2]: Entering directory `/c/nightly/test'
make[2]: Nothing to be done for `Makefile.w32'.
make[2]: Leaving directory `/c/nightly/test'
make[1]: Leaving directory `/c/nightly/test'
Мне кажется, ему не нравится расширение Makefile.w32. Я не понимаю, почему это не здание. Это, очевидно, доходит до моей строки "make Makefile.w32".
2 ответа
"make Makefile.w32" ищет цель с именем Makefile.w32, а не файл make с таким именем. Чтобы запустить make и попросить его прочитать файл make "Makefile.w32", используйте ключ -f:
make -f Makefile.w32
Редактировать: Кстати, почему вы запускаете отдельный экземпляр make в цели "all", если все, что вам нужно, это чтобы "all" зависело от цели "mingw32" в том же файле make? ИМХО, было бы лучше объявить его как зависимую цель:
all: mingw32
Аналогично с "clean" и "mingw32-clean":
clean: mingw32-clean
Вы можете использовать cmake для генерации make-файлов. Это должно работать на большинстве платформ.