[완료] makefile 내에서 Shell Command로 변수 저장하기
1. 상황설명
cygwin을 이용, Windows 내에서 프로젝트(컴파일) 수행중...
makefile(D:\Project\Model\TOP\Build에 존재함) 내에
TOP = d:\Project\Model\TOP
라고 셋팅이 되어있음.
현재 상태로 컴파일에는 문제가 전혀 없으나,
컴파일 환경의 경로(path)가 모든 컴퓨터 마다 동일하지 않아서
컴파일 할 때마다 사용자에 맞게 TOP 변수를 수정을 해줘야함
DOS의 Cmd의 경우
현재경로를 알아내는 방법을 응용하면 가능하나
Makefile내에서는 도스 명령을 먹지 않아서 해결에 어려움을 겪음
2. 그래서 다음과 같이 수정해봄.
TOP = $(shell pwd)/..
안됨 ㅡㅡ;; (뭔가 되는듯한데;;)
이래저래 써봤으나 머리의 한계로 더이상 해결방법을 모르겠음
3. 질문:
Makefile 은 경로가 D:\Project\Model\TOP\Build\Makefile 입니다.
제가 원하는 TOP에 들어갈 문자열은 "D:\Project\Model\TOP\" 입니다.
하지만 개발자달의 컴퓨터마다 경로가 다릅니다.
(TOP이외의 상위 경로는 다릅니다.)
예를 들면
C:\TOP 일 수도있고
D:\Test\TOP일 수도있고
D:\Source\TOP일 수도 있고... 상위 경로가 다양합니다.
Linux Shell 명령을 이용하여 현재 Path의 상위 디렉토리를 문자열로 받아서 TOP이란 변수에 저장하고 싶습니다.
방법을 알려주세요 +_+
P.S. $(cd ..;pwd)를 해봤으나 커멘드에서는 되는데 컴파일에선 안되네요 ㅠ.ㅠ
cygwin 은 안써봐서
cygwin 은 안써봐서 어떤지 모르지만,
리눅스 bash 에서는 다음과 같이 합니다.
TOP=$(cd ../../; pwd)
cygwin에서도 되긴 되네요
근데, 실제 컴파일을 해볼려고 하니 에러가 나네요
정확하게 값을 못가져오나보네요 ㅠ.ㅠ
원하는 답은
원하는 답은 아니었지만,
$(shell cd ..;pwd)로 하면 되긴 됩니다.
하지만, 제가 원하던거와는 거리가있어서...
좀더 뒤져봐야할듯합니다
그래도 도와주셔서 감사합니다.
redneval님 shell에선 됩니다만,
실제 컴파일을 해볼려고 하니 에러가 나네요
정확하게 값을 못가져오나보네요 ㅠ.ㅠ
음냐 댓글은 어찌 삭제하죠 ㅡㅡ;;
지울려하고 하니 지우는 법을 모르겠네요
댓글 달기