aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile44
1 files changed, 44 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..ca7ce70
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,44 @@
+SRCDIR = src
+BUILDDIR = build
+OUTPUTEXE = querymanager
+
+CC = gcc
+CXX = g++
+CFLAGS = -m64 -fno-strict-aliasing -pedantic -Wall -Wextra -pthread
+CXXFLAGS = $(CFLAGS) --std=c++11
+LFLAGS = -Wl,-t
+
+DEBUG ?= 0
+ifneq ($(DEBUG), 0)
+ CFLAGS += -g -O0
+ CXXFLAGS += -g -O0
+else
+ CFLAGS += -O2
+ CXXFLAGS += -O2
+endif
+
+$(BUILDDIR)/$(OUTPUTEXE): $(BUILDDIR)/connections.obj $(BUILDDIR)/database.obj $(BUILDDIR)/querymanager.obj $(BUILDDIR)/sqlite3.obj
+ @mkdir -p $(@D)
+ $(CXX) $(CXXFLAGS) -o $@ $^ $(LFLAGS)
+
+$(BUILDDIR)/connections.obj: $(SRCDIR)/connections.cc $(SRCDIR)/querymanager.hh
+ @mkdir -p $(@D)
+ $(CXX) -c $(CXXFLAGS) -o $@ $<
+
+$(BUILDDIR)/database.obj: $(SRCDIR)/database.cc $(SRCDIR)/querymanager.hh
+ @mkdir -p $(@D)
+ $(CXX) -c $(CXXFLAGS) -o $@ $<
+
+$(BUILDDIR)/querymanager.obj: $(SRCDIR)/querymanager.cc $(SRCDIR)/querymanager.hh
+ @mkdir -p $(@D)
+ $(CXX) -c $(CXXFLAGS) -o $@ $<
+
+$(BUILDDIR)/sqlite3.obj: $(SRCDIR)/sqlite3.c $(SRCDIR)/sqlite3.h
+ @mkdir -p $(@D)
+ $(CC) -c $(CFLAGS) -o $@ $<
+
+.PHONY: clean
+
+clean:
+ @rm -rf $(BUILDDIR)
+