From 29c8fc0caf7b43824fb406ba85b088b0e9ec308b Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Sun, 1 Dec 2019 10:03:22 +0100 Subject: Compilation system --- 2019/.gitignore | 26 ++++++++++++++++++++++++++ 2019/Makefile | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 2019/.gitignore create mode 100644 2019/Makefile diff --git a/2019/.gitignore b/2019/.gitignore new file mode 100644 index 0000000..3564178 --- /dev/null +++ b/2019/.gitignore @@ -0,0 +1,26 @@ +obj/ +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 diff --git a/2019/Makefile b/2019/Makefile new file mode 100644 index 0000000..a8383a3 --- /dev/null +++ b/2019/Makefile @@ -0,0 +1,33 @@ +GHC = ghc +GHCFLAGS = -Wall -O3 +CXX = g++ +CXXFLAGS = -Wall -Wextra -std=c++17 -O2 + +OBJDIR = obj + +HASKELL_AUX := Input.hs +CPP_AUX := +HASKELL_SRC := $(filter-out $(HASKELL_AUX),$(wildcard *.hs)) +CPP_SRC := $(filter-out $(CPP_AUX),$(wildcard *.cpp)) +HASKELL_BIN := $(HASKELL_SRC:.hs=) +CPP_BIN := $(CPP_SRC:.cpp=) + +BINARIES := $(HASKELL_BIN) $(CPP_BIN) + +.PHONY: all clean + + +all: $(BINARIES) + +clean: + rm -f $(BINARIES) + rm -rf $(OBJDIR) + +$(HASKELL_BIN): %: %.hs $(HASKELL_AUX) | $(OBJDIR)/% + $(GHC) $(GHCFLAGS) -odir $(OBJDIR)/$* -hidir $(OBJDIR)/$* -o $@ $< + +$(CPP_BIN): %: %.cpp $(CPP_AUX) | $(OBJDIR) + $(CXX) $(CXXFLAGS) -o $@ $< + +$(OBJDIR)/%: + mkdir -p $@ -- cgit v1.2.3-70-g09d2