๐ %
%๋ Makefile์ ํจํด ๋งค์นญ(Pattern Matching)์์ ์ฌ์ฉ๋๋ ์์ผ๋์นด๋(wildcard) ์ญํ ์ด๋ค.
์ด๋ค ๋ฌธ์์ด๊ณผ๋ ๋์ํ ์ ์๋ 'placeholder'๊ฐ์ ๊ฒ์ด๋ค.
๊ธฐ๋ณธ ์ญํ (ํจํด ๊ท์น)
%๋ ํ๋์ ๋ฌธ์์ด ํจํด์ ์๋ฏธํ๋ค.
%.o: %.c๋ .cํ์ผ์ .oํ์ผ๋ก ๋ณํํ๋ ์ผ๋ฐ ๊ท์น์ ๋ง๋ค ๋ ์ฌ์ฉํ๋ค.
์์
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
%.o: ๋ชจ๋ .o ํ์ผ%.c: ๋ชจ๋ .c ํ์ผ๊ณผ ๋์$<: ํ์ฌ ์ปดํ์ผ ์ค์ธ.cํ์ผ ์ด๋ฆ (%.c)$@: ํ์ฌ ์์ฑ ์ค์ธ .o ํ์ผ ์ด๋ฆ** (%.o)
ํจํด ๋ณํ $(VAR:%.c=%.o)
%๋ ๋ณ์ ๊ฐ์์ ํน์ ํจํด์ ๋ณํํ ๋๋ ์ฌ์ฉํ๋ค.
์์
SRC = srcs/ft_putchar.c srcs/ft_swap.c
OBJ = $(SRC:%.c=%.o)
%.c→%.o:srcs/ft_putchar.c๋srcs/ft_putchar.o๋ก ๋ณํ๋๋ค.$(OBJ)→srcs/ft_putchar.osrcs/ft_swap.o
์๋ธ ๋๋ ํ ๋ฆฌ ํฌํจ ๊ท์น
%๋ ์๋ธ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
SRC = srcs/ft_putchar.c srcs/ft_swap.c
OBJ = $(SRC:srcs/%.c=srcs/%.o)
srcs/ft_putchar.c → srcs/ft_putchar.o๋ก ๋ณํํด์ค๋ค.
'๐โโ๏ธ Activities > 42 Cursus' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Makefile] PHONY (1) | 2025.05.30 |
|---|---|
| [Makefile] SRC / OBJ / NAME (0) | 2025.05.30 |
| [Makefile] make & make all ์ฐจ์ด (0) | 2025.05.30 |
| [ํค๋ํ์ผ(.h)] ํค๋๊ฐ๋ (1) | 2025.05.29 |
| [Makefile] Makefile ๊ตฌ์กฐ์ rule (0) | 2025.05.29 |