Makefile 에서 ifeq 이중 조건
글쓴이: kreutz / 작성시간: 목, 2007/12/06 - 10:55오후
프로그래밍으로 따지자면 이런 느낌일텐데
if (조건 == 0) && (조건 >= 3) include file else do not include file
make 파일 내에서 ifeq로 처리해야 하는데 이게 좀 어렵네요. 아니 가능하긴 한가요? -_-;
한마디로 1과 2일 때는 file을 빼둬야 하고 0과 3일 때만 파일을 컴파일 해야 합니다.
3은 앞으로도 늘어날 수 있는 숫자입니다.
띄엄띄엄 0,3 과 1,2 짝이라 < > 부등호로 처리를 할 수가 없어요.
ifeq ("$(다른조건)","다른조건") $(MOD_NAME)-y += a.o \ ifeq ($(조건),03) b.o \ endif c.o endif
b가 0과 3일 때만 컴파일 되야 합니다.
...뭔가 제가 무식하게; 접근하고 있다는 느낌이 들어서 고수님들의 조언을 구합니다.
Forums:
음... 중첩 조건에
음... 중첩 조건에 대해서는 정석인진 몰라도 가능은 합니다. 저도 전에 찾어봤었는데요...
gnumake conditional 관련 메뉴얼 부분은 이게 다인듯 싶은데,
http://www.gnu.org/software/make/manual/html_node/Conditionals.html#Conditionals
잘 모르겠더군요. 아무튼 일단 해결책은, 어셈블리어처럼 조건 구문이 잘 발달되지 않은 언어에서 하듯 하면 됩니다... AND 에 대한 예이고, 비슷하게 OR 도 가능하겠죠.
그리고 아직 사용처가 없어서 그냥 덮긴 했습니다만, 같다, 다르다 말고, 작다 크다는 어떻게 판별하나요? 지금 3보다 큰 경우를 테스트하시는 것 같은데...
Orion Project : http://orionids.org
bash랑 헷갈린...
답변 정말 감사합니다.
bash script처럼 생각했습니다. 이경우 부등호가 불가능하죠...
하도 오랜만에 makefile을 만들다보니 너무 헷갈리네요.
아무리 생각해도 너무 심오한 세계... (그래서 멀리했다?)
결국 03이 04로 늘어나면 그때마다 추가해주는 수밖에 없는데
그런 건 좀.... .......하여간 그렇게 하고 싶진 않은데...
(저도 제 심경을 잘 설명을 못하겠네요. 밥 먹고 나왔는데 앞니에 김이 낀 기분이랄까;;;)
마지막으로 한번더, 답변 정말 고맙습니다. 체스맨님. m(_ _)m
1, 2인 경우에는 넣지
1, 2인 경우에는 넣지 않고, 다른 경우에는 넣도록 접근하면 되지 않을까요?
댓글 달기