gnu make에서 $$@ 와 같은 기능이 있나요?
글쓴이: sekim / 작성시간: 목, 2006/07/13 - 6:01오후
make 에서는 $$@가 사용 가능한데 gnu make에서는 에러가 발생하네요.
다음과 같이 Makefile을 구성해서 사용중이었는데 linux에서 사용하려니 에러가 발생합니다.
PROGRAM = test1 test2 test3
$(PROGRAM) : $$@.o
$(CC) -o $@ $?
gnu make에서 대체 가능한 macro는 없습니까?
gnu make manual을 뒤져보니 .SECONDEXPANSION: 이라는게 있더군요.
문제는 3.81 이상 버전에서만 작동하는것 같습니다.
3.79 버전에서 추가하고 해봤더니 여전히 에러가 생깁니다.
gnu make update 이외에는 방법이 없을까요?
Forums:
$$@라는 것이 어떤
어느 make에서 지원하는 것인지 모르겠지만 $$@라는 것이 어떤 역할을 하는 것인지 알려주셔야죠.
O'Relly의 make책을 보니 $$@에 대해
다음과 같이 있네요.
$$@ The name of the current target.Can be used onlyu to the right of the colon in dependency lines.
위의 Makefile을 이용해서 make test1 하였을경우 다음과 같이 대체된다고 봅니다.
test1 : test1.o
gcc -o test1 test1.o
즉 다음과 같은 Makefile이
test1 : test1.o
gcc -o test1 test1.o
test2 : test2.o
gcc -o test3 test3.o
test3 : test3.o
gcc -o test3 test3.o
다음과 같이 간단히 할수 있는 기능을 합니다.
PROGRAM = test1 test2 test3
$(PROGRAM) : $$@.o
$(CC) -o $@ $?
프로그램 목록이 많아지면 훨씬 편하겠죠.. PROGRAM에 program명만 넣으면 되니까요. ^^
사용 make는 AIX make 였습니다.
댓글 달기