diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..364c1fc --- /dev/null +++ b/Makefile | |||
@@ -0,0 +1,54 @@ | |||
1 | |||
2 | SOURCE_DIR = src/ | ||
3 | INSTALL_DIR = /usr/local/ | ||
4 | |||
5 | BINARY = messenger-cli | ||
6 | SOURCES = messenger_cli.c | ||
7 | HEADERS = | ||
8 | |||
9 | LIBRARIES = gnunetchat | ||
10 | |||
11 | CC = gcc | ||
12 | LD = gcc | ||
13 | RM = rm | ||
14 | |||
15 | CFLAGS = -pedantic -Wall -Wextra -march=native -ggdb3 | ||
16 | LDFLAGS = | ||
17 | |||
18 | DEBUGFLAGS = -O0 -D _DEBUG | ||
19 | RELEASEFLAGS = -O2 -D NDEBUG -fwhole-program | ||
20 | |||
21 | SOURCE_FILES = $(addprefix $(SOURCE_DIR), $(SOURCES)) | ||
22 | OBJECT_FILES = $(SOURCE_FILES:%.c=%.o) | ||
23 | HEADER_FILES = $(addprefix $(SOURCE_DIR), $(HEADERS)) | ||
24 | LIBRARY_FLAGS = $(addprefix -l, $(LIBRARIES)) | ||
25 | |||
26 | all: $(BINARY) | ||
27 | |||
28 | debug: CFLAGS += $(DEBUGFLAGS) | ||
29 | debug: $(BINARY) | ||
30 | |||
31 | release: CFLAGS += $(RELEASEFLAGS) | ||
32 | release: $(BINARY) | ||
33 | |||
34 | %.o: %.c | ||
35 | $(CC) $(CFLAGS) -c $< -o $@ $(LIBRARY_FLAGS) | ||
36 | |||
37 | $(BINARY): $(OBJECT_FILES) | ||
38 | $(LD) $(LDFLAGS) $^ -o $@ $(LIBRARY_FLAGS) | ||
39 | |||
40 | .PHONY: install | ||
41 | |||
42 | install: | ||
43 | install -m 755 $(BINARY) $(addprefix $(INSTALL_DIR), bin/) | ||
44 | |||
45 | .PHONY: uninstall | ||
46 | |||
47 | uninstall: | ||
48 | $(RM) -f $(addsuffix $(BINARY), $(addprefix $(INSTALL_DIR), bin/)) | ||
49 | |||
50 | .PHONY: clean | ||
51 | |||
52 | clean: | ||
53 | $(RM) -f $(BINARY) | ||
54 | $(RM) -f $(OBJECT_FILES) \ No newline at end of file | ||