aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile46
1 files changed, 46 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..c456577
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,46 @@
+SRCDIR = src
+BUILDDIR = build
+OUTPUTEXE = login
+
+CXX = g++
+CXXFLAGS = -m64 -fno-strict-aliasing -pedantic -Wno-unused-parameter -Wall -Wextra -pthread --std=c++11
+LFLAGS = -Wl,-t -lcrypto
+
+DEBUG ?= 0
+ifneq ($(DEBUG), 0)
+ CXXFLAGS += -g -O0
+else
+ CXXFLAGS += -O2
+endif
+
+HEADERS = $(SRCDIR)/common.hh $(SRCDIR)/login.hh
+
+$(BUILDDIR)/$(OUTPUTEXE): $(BUILDDIR)/common.obj $(BUILDDIR)/connections.obj $(BUILDDIR)/crypto.obj $(BUILDDIR)/login.obj $(BUILDDIR)/query.obj
+ @mkdir -p $(@D)
+ $(CXX) $(CXXFLAGS) -o $@ $^ $(LFLAGS)
+
+$(BUILDDIR)/common.obj: $(SRCDIR)/common.cc $(HEADERS)
+ @mkdir -p $(@D)
+ $(CXX) -c $(CXXFLAGS) -o $@ $<
+
+$(BUILDDIR)/connections.obj: $(SRCDIR)/connections.cc $(HEADERS)
+ @mkdir -p $(@D)
+ $(CXX) -c $(CXXFLAGS) -o $@ $<
+
+$(BUILDDIR)/crypto.obj: $(SRCDIR)/crypto.cc $(HEADERS)
+ @mkdir -p $(@D)
+ $(CXX) -c $(CXXFLAGS) -o $@ $<
+
+$(BUILDDIR)/login.obj: $(SRCDIR)/login.cc $(HEADERS)
+ @mkdir -p $(@D)
+ $(CXX) -c $(CXXFLAGS) -o $@ $<
+
+$(BUILDDIR)/query.obj: $(SRCDIR)/query.cc $(HEADERS)
+ @mkdir -p $(@D)
+ $(CXX) -c $(CXXFLAGS) -o $@ $<
+
+.PHONY: clean
+
+clean:
+ @rm -rf $(BUILDDIR)
+