wow
This commit is contained in:
parent
1a6bfc0925
commit
303192b198
9 changed files with 1154 additions and 34 deletions
8
Makefile
8
Makefile
|
|
@ -1,29 +1,37 @@
|
|||
# 컴파일러와 플래그 기본값은 환경 변수나 make 인자로 덮어쓸 수 있습니다.
|
||||
CC ?= cc
|
||||
CPPFLAGS ?= -Iinclude
|
||||
CFLAGS ?= -std=c11 -O2 -Wall -Wextra -Wpedantic
|
||||
LDLIBS ?=
|
||||
|
||||
# Windows 빌드는 호환 컴파일러/링커를 사용할 때 bcrypt가 필요합니다.
|
||||
ifeq ($(OS),Windows_NT)
|
||||
LDLIBS += -lbcrypt
|
||||
endif
|
||||
|
||||
# 최종 실행 파일 경로, 소스 목록, 여기서 파생되는 오브젝트 파일 경로입니다.
|
||||
TARGET := build/gerbera
|
||||
SOURCES := src/main.c src/encrypt.c src/decrypt.c src/cipher.c
|
||||
OBJECTS := $(SOURCES:src/%.c=build/%.o)
|
||||
|
||||
# 모든 오브젝트 파일을 컴파일한 뒤 실행 파일을 링크합니다.
|
||||
$(TARGET): $(OBJECTS)
|
||||
$(CC) $(CFLAGS) -o $@ $^ $(LDLIBS)
|
||||
|
||||
# 각 C 파일을 build/<name>.o로 컴파일하며, 필요하면 build/를 먼저 만듭니다.
|
||||
build/%.o: src/%.c include/gerbera.h | build
|
||||
$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
# 컴파일이나 링크 전에 출력 디렉터리가 존재하도록 보장합니다.
|
||||
build:
|
||||
mkdir -p build
|
||||
|
||||
.PHONY: clean test
|
||||
|
||||
# 방금 빌드한 실행 파일로 셸 테스트 모음을 실행합니다.
|
||||
test: $(TARGET)
|
||||
GERBERA_BIN=./$(TARGET) sh tests/test.sh
|
||||
|
||||
# 생성된 모든 빌드 산출물을 삭제합니다.
|
||||
clean:
|
||||
rm -rf build
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue