필자는 내가 원하는 방식대로 작동하도록 makefile을 얻는 데 어려움을 겪고있다. 첫째로, 나는 이것이 POSIX make라고 말하고 싶다. http://www.opengroup.org/onlinepubs/009695399/utilities/make.html BSD와 GNU (Linux) 모두에서 작동하도록 빌드 시스템이 필요하다.오브젝트와 소스를 메이크 파일로 분리
제가 원했던 것은 제로 유지 보수 메이크 파일입니다. src /에있는 모든 .c 및 .asm 파일을 컴파일하고 objs /에 오브젝트 파일을 놓은 다음 objs /에있는 모든 파일을 이진 파일에 연결합니다.
많은 작업을 수행 할 수 있지만 소스 및 obj 파일을 구분할 수는 없습니다.
약간의 내장 쉘 스크립팅 (/ bin/sh가 정의 된 POSIX 사용)이 필요하면 괜찮지 만, 의존성을 제대로 작동시키지 못한다. 소스 파일이 더 새로운 경우에만 오브젝트 파일을 빌드하기를 원합니다.
내 가장 가까운 이것이다 : 이것은 아직 지정해야 문제가
${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에서 "close"라고 생각합니다. – Earlz
기다림, 실제로는 전혀 작동하지 않습니다. BSD make – Earlz