안녕하세요. 이번 시간에는 이 문서를 보면서, make의 -C 옵션에 대해 알아보는 시간을 가져보겠습니다. 제가 설명할 코드는 4번째 코드입니다. 먼저 man make 페이지를 보면, -C 옵션에 대한 설명이 나와 있습니다. 디렉토리를 바꾼다고 되어 있습니다. 언제? makefile을 읽거나 어떠한 작업을 하기 전에. 이게 무슨 소리일까요? 폴더 구조입니다. 현재 작업 디렉토리 밑에 test1, test2가 있고, test2 밑에 Makefile이 있어요. test2 밑에 있는 Makefile을 보겠습니다. 이 파일에는 echo test2라는 것이 있어요. 그래서, makefile을 실행하면, test2가 출력됩니다. 작업 디렉토리에서 make -C test2를 해 보겠습니다. 보시면, 먼저 test2 ..
MAKE 검색 결과
안녕하세요. 이번 시간에는 make의 phony target과 .phony에 대해서 알아봅시다. Makefile에서 이런 것은 흔히 보셨을 거에요. clean 이라는 목표가 있고, 명령어로 rm *.txt를 수행합니다. 그리고 여태까지 이것을 목표 정도로 설명했을 거에요. 이 clean은 action이거나 파일일 수 있습니다. 여기서 하나 반전. 만약에 Makefile이 있는 위치에 clean 이라는 파일이 있으면 어떻게 될까요? clean이라는 파일을 생성했습니다. make clean을 실행했더니, 'clean' is up to date가 뜨게 됩니다. 그러면서 clean이 실행되지 않게 됩니다. 왜 그럴까요? 이 문제는 결론적으로 clean 이라는 파일 때문에 생긴 문제입니다. 그런데, 왜 up to..
저번 시간에 make에 대해서 배웠어요. 이번에는 의존성에 대해 배워보도록 하겠습니다. 문서에서는 prerequisites 정도로 설명하는 듯 합니다. Makefile이 요렇게 있다고 해 보겠습니다. local 환경에서는 12345를 화면에 뿌려준 다음에 test3 디렉토리를 만듭니다. prod 환경에서는 12345를 화면에 뿌려준 다음에 prod3 디렉토리를 만듭니다. 사실 이렇게 써도 별 문제는 없어 보입니다. make local을 해 보겠습니다. 그러면, 12345를 뿌려준 다음에, test3을 만드는 것을 볼 수 있어요. 그런데, 잘 보면 echo 12345를 뿌려주는 것은 디렉토리를 만드는 작업 전에 일어나고 있어요. 즉, 12345를 출력해 주는 작업은, 디렉토리를 만드는 작업 이전에 수행되어..
프로그램을 개발하다가, 다른 환경에서 테스트를 해야 할 때, 세팅을 편하게 하는 방법이 없을까요? prod 환경일 때에도, local 환경일 때에도 단 1줄만 입력하면 알아서 컴파일 되거나, 명령어를 실행해서 세팅이 될 수 있게끔. make 명령어로 간단하게 할 수 있습니다. 우리는 로컬 환경에서 구동하는 것을 목표로 하거나, 실제 배포 환경에서 구동하는 것을 목표로 할 수 있습니다. 이를 각각 LOCAL, PROD라고 할게요. 이들을 make에서는 TARGET이라고 이야기 합니다. 여기까지 정리해 봅시다. 프로그램이 실행되기 위한, 혹은 환경이 세팅되기 위한 목표를 우리가 정할 수 있어요. 로컬에서 세팅되게 하겠다는 LOCAL, 배포 환경으로 세팅되게 하겠다는 PROD. Makefile을 작성해 보겠습..
최근댓글