Make
[CMake](https://texonom.com/cmake-d1b9bc35500240ba948b8274dad0f362) 


공부하지 않으면 절대 유추할 수 없는 기호들을 쓰는 ㅈ같은 c 빌드 툴


make execution file by makefile


## meta
gcc source file name can be placed anywhere except between option and operand
## options


```type$ make config           /* 설정 작업을 한다 */    $ make dep              /* 화일 의존성을 검사한다 */    $ make clean            /* 만든 화일들을 지우고                                깨긋한 상태로 만든다 */    $ make zImage           /* zImage(압축커널)를 만든다 */    $ make zlilo            /* 커널을 만들고 LILO를 설정한다 */    $ make bzImage          /* bzImage(비대압축커널)를 만든다 */    $ make modules          /* 커널 모듈을 만든다 */    $ make modules_install  /* 커널 모듈을 인스톨한다 */```



## suffix rule


$< 입력 일을 의미합니다. 콜론의 오른쪽에 오는 패턴을 치환합니다.$@ 출력 파일을 의미합니다. 콜론의 왼쪽에 오는 패턴을 치환합니다.$* 입력 파일에서 꼬리말(.c, .s 등)을 떼넨 화일명을 나타냅니다.



# pattern rule
## make file


목표: 목표를 만드는데 필요한 구성요소들...목표를 달성하기 위한 명령 1목표를 달성하기 위한 명령 2



## conventions


```type$ make -f Makefile.platform : convention```
CC: 컴파일러CFLAGS: 컴파일 옵션OBJS: 중간 산물 Object 파일 목록TARGET: 빌드 대상(실행 파일) 이름LDFLAGS: 링커 옵션LDLIBS: 링크 라이브러리
ex. ${CFLAGS}





