summaryrefslogtreecommitdiff
path: root/makefile
blob: 85d82874735188ca295f9863ef75532057d8c989 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
PROD_DIR = src/main
TEST_DIR = src/test
BUILD_DIR = build

HEADERS := $(wildcard $(PROD_DIR)/*.h)
PROD_TARGET := $(BUILD_DIR)/asyncc.so
PROD_SRC := $(wildcard $(PROD_DIR)/*.c)
TEST_TARGET := $(BUILD_DIR)/test.out
TEST_SRC := $(wildcard $(TEST_DIR)/*.c)

CC = gcc
CFLAGS = -I $(PROD_DIR) -Wall -Werror -Wextra -std=c99 -g
PROD_CFLAGS = -shared
TEST_CFLAGS = -Wno-incompatible-pointer-types -Wno-int-conversion -Wno-pointer-to-int-cast
all: main test
main: $(PROD_TARGET)
test: $(TEST_TARGET)

$(PROD_TARGET): $(HEADERS) $(PROD_SRC)
	mkdir -p $(BUILD_DIR)
	$(CC) $(CFLAGS) $(PROD_CFLAGS) $(PROD_SRC) -o $(PROD_TARGET)

$(TEST_TARGET): $(HEADERS) $(PROD_SRC) $(TEST_SRC)
	mkdir -p $(BUILD_DIR)
	$(CC) $(CFLAGS) $(TEST_CFLAGS) $(PROD_SRC) $(TEST_SRC) -o $(TEST_TARGET)