Makefile 문법 해석 - cryptopp GNUmakefile 파일

in #zyx7 years ago (edited)

Awesomw > 코딩

cryptopp GNUmakefile 파일


SHELL = bash

= 는 변수가 사용될때마다 값이 요구된다. CFLAGS = $(CFLAGS) -O 이런 문법은 재귀적으로 확장되어 무한루프를 생성할 수 있기때문에 사용시 주의 해야한다.


AR ?= ar

?=의 문법은 아래와 같다

ifeq ($(origin AR), undefined)
  AR = ar
endif

UNAME := $(shell uname)

:= 또는 ::= 는 변수 값을 한번만 할당하고 사용한다.


$(shell uname)

쉘 명령어를 실행한 결과를 가져온다.


.PHONY: valgrind

.PHONY: 로 정의한 target 들은 실제 파일 이름이 아닌 가상의 이름을 나타낸다. 만약에 clean, all 이라는 파일이 존재한다면 target과 혼동하여 make 가 오작동할 가능성이 있다. 이때 .PHONY 로 지정해서 실제 파일이 아님을 확인시켜줄 수 있다.


%.o : %.cpp

% 는 파일 확장자를 제외한 파일 이름 이다.


$>

입력 파일명.


$@

출력 파일명.


$*

입력 파일에서 확장자(.c, .o)를 제외한 파일명.

참고