-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
102 lines (76 loc) · 2.26 KB
/
Makefile
File metadata and controls
102 lines (76 loc) · 2.26 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#
# $ make help
#
# make
MAKEFLAGS += --no-print-directory
# binaries
B_FILE_PROD = termfu
B_FILE_DEV = termfu_dev
# flags
CC = gcc
FLAGS = -Wall -Wextra
PROD_FLAGS = -O3
DEV_FLAGS = -g
FORMAT_FLAGS = $(DEV_FLAGS) -fdiagnostics-format=json
NCURSES_CFLAGS = $(shell ncurses6-config --cflags)
NCURSES_LIBS = $(shell ncurses6-config --libs) -lform
# source files
C_FILES = $(wildcard ./src/*.c)
C_TEST_FILES = $(filter-out ./src/main.c, $(wildcard ./src/*.c))
C_UPDATE_FILES = $(wildcard ./src/update_window_data/*.c)
C_FORM_IN_FILES = $(wildcard ./src/get_form_input/*.c)
C_DEBUG_FILES = $(wildcard ./src/debug/*.c)
# test programs directory
TEST_PROGS_DIR = test_programs
# configuration, data files
CONFIG_RUN_DEV = configs/.termfu_run_dev
DATA_RUN_DEV = configs/.termfu_run_dev_data
CONFIG_DEBUG = configs/.termfu_debugger
DATA_DEBUG = configs/.termfu_debugger_data
CONFIG_DEBUGGED = configs/.termfu_debugged
DATA_DEBUGGED = configs/.termfu_debugged_data
.PHONY: help all install dev devf devformat debug debug_gdb build run_dev plugins clean_prod clean_dev
all: FLAGS += $(PROD_FLAGS)
all: C_FILES += $(C_UPDATE_FILES) $(C_FORM_IN_FILES) $(C_DEBUG_FILES)
all: clean_prod $(B_FILE_PROD)
@echo ""
dev: FLAGS += $(DEV_FLAGS)
dev: C_FILES += $(C_UPDATE_FILES) $(C_FORM_IN_FILES) $(C_DEBUG_FILES)
dev: clean_dev $(B_FILE_DEV)
@echo ""
devf:
@echo ""
./scripts/make_devf
devformat: FLAGS += $(FORMAT_FLAGS)
devformat: C_FILES += $(C_UPDATE_FILES) $(C_FORM_IN_FILES) $(C_DEBUG_FILES)
devformat: clean_dev $(B_FILE_DEV)
install:
cp termfu /usr/bin/
clean_prod:
@echo ""
rm -f $(B_FILE_PROD)
@echo ""
clean_dev:
@echo ""
rm -f $(B_FILE_DEV)
@echo ""
$(B_FILE_PROD):
$(CC) $(FLAGS) $(NCURSES_CFLAGS) $(C_FILES) -o $(B_FILE_PROD) $(NCURSES_LIBS)
@echo ""
$(B_FILE_DEV):
$(CC) $(FLAGS) $(NCURSES_CFLAGS) $(C_FILES) -o $(B_FILE_DEV) $(NCURSES_LIBS)
@echo ""
help:
@./scripts/make_help
build:
(cd $(TEST_PROGS_DIR) && ./build_c)
run_dev:
./$(B_FILE_DEV) -c $(CONFIG_RUN_DEV) -p $(DATA_RUN_DEV)
debug:
$(B_FILE_PROD) -c $(CONFIG_DEBUG) -p $(DATA_DEBUG)
debug_gdb:
gdb --quiet --tui --args ./termfu_dev -c $(CONFIG_DEBUGGED) -p $(DATA_DEBUGGED)
todo:
./scripts/make_todo
plugins:
./scripts/make_plugins