У меня возникли проблемы с получением моих файлов, чтобы работать так, как я хочу. Во-первых, я хотел бы сказать, что это POSIX make, как в http://www.opengroup.org/onlinepubs/009695399/utilities/make.html Мне нужна моя система сборки для работы как с BSD, так и с GNU (Linux).Разделение объектов и источника с помощью makefile
То, что я хочу, - это нулевой файл make maintenance. Я хочу, чтобы он просто скомпилировал все файлы .c и .asm в src/и поместил объектные файлы в objs /, а затем связал все в objs/с двоичным файлом.
Я могу много сделать, но я не могу заставить его отделять исходные файлы и файлы obj.
Я в порядке, если для этого требуется небольшой встроенный сценарий оболочки (с использованием POSIX defined/bin/sh), но я просто не могу заставить зависимости работать правильно. Я хочу, чтобы он только создавал объектный файл, если исходный файл более новый.
Мой самый близкий это:
${C_OBJS}: ${HDRS} ${*:objs/%=src/%}.c ${CC} ${CFLAGS} -c ${*:objs/%=src/%}.c -o $*.o
Это проблема, что я должен еще указать C_OBJS = OBJS/foo.o и такие, а также это едва не POSIX и, следовательно, компилирует с BSD сделать, но не GNU make.
Является ли это саркастическим? Думаю, я могу просто поддержать BSD и GNU make, что, похоже, работает на GNU make, и я думаю, что «близко» к работе над BSD make .. – Earlz
Хорошо, подождите, на самом деле это не работает вообще для BSD – Earlz