이 포스트에는 Makfile작성시 유용한 팁을 정리해봤다.
short cut 만든는 방법
Makefile에서 아래와 같이 정의해주고 make s
커맨드를 실행하면 ls -la
커맨드를 실행할 수 있게됨.
s:
ls -la
※주의사항: s:
개행후 스페이스는 위와 같이 지정해줄것. (안해주면 에러)
메소드 만드는 방법
define을 사용해서 반복되는 코드를 정의해주고 호출해줄 수 있다.
s:
$(SS)
define SS
ls -la
endef
define메소드에 인자 넘겨주는 방법
call define명, 인자
와 같은 문법으로 define을 호출해주면 가능하다.
뒤에 인자는 순서대로 ${1}
,${2}
같은 방법으로 가져올 수 있다.
define add_target
${1}: ${2}
endef
... $(call add_target, A, B)
... $(call add_target, A, B C D)
shell커맨드 실행
아래와 같이 shell커맨드의 결과를 변수에 담을 수 있다.
API_CONTAINER_ID=`docker ps | grep rails | awk '{print $$1}'`
※주의사항 =
사이에 띄어쓰기 넣지말것
환경변수
.makerc라는걸 만들어서 git에서 관리하고 싶지않는 키값들을 여기에 정의해주고
Makefile에서 include .makerc
해주자.
https://unix.stackexchange.com/questions/235223/makefile-include-env-file/235254
makefile-call-function-how-to-get-all-arguments를 참고