blob: 6259d429852ecfc79aacefd3a9fa99379a4a8df7 (
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
26
27
28
29
30
31
32
33
34
35
36
37
|
################################################################################
LIBIRCCLIENT_LIB_FLAGS =
include Makefile_libircclient
################################################################################
CFLAGS += -O3
CFLAGS += -Wall -Wextra -pedantic -Werror
CFLAGS += -D_POSIX_SOURCE
CFLAGS += -D_POSIX_C_SOURCE=200809L
CFLAGS += $(LIBIRCCLIENT_LIB_FLAGS)
################################################################################
EXECUTABLE ?= jh-irc
BASE_DIR ?= $(CURDIR)
SRC_DIR ?= $(BASE_DIR)/src
COMPILE_DIR ?= $(BASE_DIR)/compilation_data
################################################################################
SRC_FILES ?= $(shell find $(SRC_DIR) -type f -name *.c)
OBJ_FILES ?= $(patsubst $(SRC_DIR)/%.c,$(COMPILE_DIR)/%.o,$(SRC_FILES))
DEP_FILES ?= $(patsubst %.o,%.d,$(OBJ_FILES))
################################################################################
build: $(EXECUTABLE)
$(OBJ_FILES): $(COMPILE_DIR)/%.o : $(SRC_DIR)/%.c $(COMPILE_DIR)/%.d
$(CC) $(CFLAGS) -c -o $@ $<
$(DEP_FILES): $(COMPILE_DIR)/%.d: $(SRC_DIR)/%.c
mkdir -p $(dir $@)
@set -e; rm -f $@; \
$(CC) -M $(CFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
$(EXECUTABLE): $(OBJ_FILES)
$(CC) $(CFLAGS) -o $@ $^
clean:
rm -fr $(EXECUTABLE) $(COMPILE_DIR)
|