makefile에서 "스위치"를하는 좋은 방법
-
03-07-2019 - |
문제
직장에서 업데이트 된 빌드 시스템을 실험하고 있습니다. 현재 대상 플랫폼에 따라 컴파일러 및 플래그를 설정하는 좋은 방법을 찾고 있습니다.
내가하고 싶은 것은 같은 것입니다
switch $(PLATFORM)_$(BUILD_TYPE)
case "Linux_x86_release"
CFLAGS = -O3
case "Linux_x86_debug"
CFLAGS = -O0 -g
case "ARM_release"
CC = armcc
AR = armlink
CFLAGS = -O2 -fx
...
GNU Make에서 지원하지 않습니다. 이제 내 첫 생각은 그냥 그렇게하는 것이 었습니다
-include $(PLATFORM)_$(BUILD_TYPE)
그러나 꽤 괜찮은 솔루션이지만 파일 간의 다른 것에 대한 개요를 얻기가 어렵습니다. 각각의 변수 정의 세트를 포함하는 좋은 60-80 파일을 작성하고 유지 관리하기를 기대하는 것은 말할 것도 없습니다. .
이것을 달성하는 더 나은 방법을 아는 사람이 있습니까? 즉 다른 변수를 기반으로 한 플래그 세트 및 기타 옵션을 설정합니까?
해결책
(Automake/Autoconf)를 위해 그것을하는 시스템으로 전환하는 것은 더 간단 할 수 있습니다 ...
다른 팁
어때요 :
CFLAGS_Linux_x86_release = -O3
CFLAGS_Linux_x86_debug = -O0 -g
CFLAGS = ${CFLAGS_${PLATFORM}_${BUILD}}
제휴하지 않습니다 StackOverflow