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