Skip to content

Latest commit

ย 

History

History
56 lines (39 loc) ยท 2.42 KB

File metadata and controls

56 lines (39 loc) ยท 2.42 KB

Makefile

Reference : Makefile็š„ๅ†™ๆณ•

Makefile

Table of Contents

About

make ๋Š” Makefile ์„ ํ† ๋Œ€๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผ ํ•œ๋‹ค.
make ๋Š” Makefile ์†์— ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ์˜์กด๊ด€๊ณ„(dependencies)์™€ ๋ช…๋ น(commands)์„ ์ฐธ๊ณ ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œ์‹œ์ผœ์ค€๋‹ค.

make

make ๋Š” Linux์˜ ํŒŒ์ผ ๊ด€๋ฆฌ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ด๋‹ค.
์ด๋Š” Makefile ์„ ๊ธฐ์ค€์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œํ•ด์ค€๋‹ค.

make
make ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ : make ๋Š” Makefile ์ด ์กด์žฌํ•  ์‹œ Makefile ์„ ์‹คํ–‰์‹œํ‚จ๋‹ค.

  • ๋ฐ˜๋“œ์‹œ Makefile ๋ช…์ด ์•„๋‹ˆ์—ฌ๋„ ๋œ๋‹ค.
    make ๊ฐ€ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ด๋ฆ„์€ GNUmakefile ๊ณผ makefile ์ด ์žˆ๋‹ค.
    make ๊ฐ€ ์ฐพ๋Š” ์ˆœ์„œ๋Š” GNUmakefile โ†’ makefile โ†’ Makefile
    ํ•˜์ง€๋งŒ, GNUmakefile ์ด๋ฆ„์˜ ๊ฒฝ์šฐ make ๊ฐ€ ์ธ์‹์„ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋‹ˆ ์•ˆ์ „ํ•˜๊ฒŒ Makefile์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜์ž.

โ†‘ return to TOC

Makefile

make ๋กœ ์ปดํŒŒ์ผ(็ผ–่ฏ‘)ํ•  ํŒŒ์ผ๋“ค์„ ์ผ์ผ์ด ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ Makefile ์„ ํ†ตํ•ด ๊ฐ„ํŽธํžˆ ์ปดํŒŒ์ผ ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ฐœ๋ฐœ์„ ์ง„ํ–‰์‹œ ๋ผ์ธ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๊ฒŒ ๋˜๋ฉด์„œ ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ๋กœ ์ชผ๊ฐœ์ง€๊ฒŒ ๋˜๊ณ  ๊ทธ๋กœ์ธํ•ด ์ปดํŒŒ์ผ ํ•ด์•ผํ• ๊ฒƒ๋“ค์ด ๋Š˜์–ด๋‚˜๊ฒŒ ๋œ๋‹ค. ๋‹จ์ˆœํžˆ make ๋ฅผ ํ†ตํ•ด ์ปดํŒŒ์ผ ์‹œํ‚ฌ ์ˆ˜ ์žˆ์ง€๋งŒ ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…(๊ธธ์–ด์ง€๋Š” ๋ช…๋ น์–ด)์ด ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ปดํŒŒ์ผํ•ด์•ผ ํ•  ๊ฒƒ์„ ๋นผ๋จน๋Š” ๊ฒฝ์šฐ๋„ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

Makefile ์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ๋“ค์„ ํ•ด๊ฒฐํ•ด์ฃผ๋ฉฐ ์ปดํŒŒ์ผ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค.

Makefile ๋‚ด๋ถ€๊ตฌ์กฐ

Makefile ์€ ๋‚ด๋ถ€์ ์œผ๋กœ ์„ธ ๊ฐ€์ง€๋กœ ๊ตฌ์กฐ๋กœ๋˜์–ด ์žˆ๋‹ค.

  • ๋ชฉํ‘œ target

  • ์˜์กด๊ด€๊ณ„ dependency

  • ๋ช…๋ น command

    target: dependencies  
            command
    • command ์•ž์€ tab ์œผ๋กœ ๋“ค์—ฌ์“ฐ๊ธฐ

Makefile ์€ ํ•œ ๋ผ์ธ์„ ๋ช…๋ น์–ด๋กœ ์ธ์‹ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ๋ผ์ธ์— ํ•œ ๋ช…๋ น์–ด๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

โ†‘ return to TOC