Создать make-файл для нескольких ОС, этот make (ext?) Не работает? - PullRequest
1 голос
/ 20 ноября 2008

У меня есть рабочий make-файл, который собирается с помощью mingw32. Теперь я переименовал этот makefile в 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 ]

3 голосов
/ 21 ноября 2008

"make Makefile.w32" ищет target с именем 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
0 голосов
/ 21 ноября 2008

Вы можете использовать cmake для генерации make-файлов. Должно работать на большинстве платформ.

...