Commit | Line | Data |
---|---|---|
9ddaa0b9 ST |
1 | uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') |
2 | ||
3 | ifeq ($(uname_S),Darwin) | |
4 | # Native build on yosemite. Requires: brew install readline | |
5 | CXX=g++ | |
6 | READLINE=/usr/local/Cellar/readline/6.3.8 | |
7 | INCPATHS=-I$(READLINE)/include | |
8 | LIBPATHS=-L$(READLINE)/lib | |
9 | else | |
10 | # Ubuntu 14.10 / docker | |
11 | CXX=clang++-3.5 | |
12 | endif | |
13 | ||
14 | LD=$(CXX) | |
15 | AR=ar | |
16 | ||
17 | DEBUG=-ggdb | |
18 | CXXFLAGS=-O3 -Wall $(DEBUG) $(INCPATHS) -std=c++11 | |
19 | LDFLAGS=-O3 $(DEBUG) $(LIBPATHS) -L. -lreadline -lhistory | |
20 | ||
179e8eaf ST |
21 | LIBSOURCES=Environment.cpp Reader.cpp ReadLine.cpp String.cpp \ |
22 | Types.cpp Validation.cpp | |
9ddaa0b9 ST |
23 | LIBOBJS=$(LIBSOURCES:%.cpp=%.o) |
24 | ||
25 | MAINS=$(wildcard step*.cpp) | |
26 | TARGETS=$(MAINS:%.cpp=%) | |
27 | ||
28 | .PHONY: all clean | |
29 | ||
30 | .SUFFIXES: .cpp .o | |
31 | ||
32 | all: $(TARGETS) | |
33 | ||
34 | .deps: *.cpp *.h | |
35 | $(CXX) $(CXXFLAGS) -MM *.cpp > .deps | |
36 | ||
37 | $(TARGETS): %: %.o libmal.a | |
38 | $(LD) $(LDFLAGS) $^ -o $@ | |
39 | ||
40 | libmal.a: $(LIBOBJS) | |
41 | $(AR) rcs $@ $^ | |
42 | ||
43 | .cpp.o: | |
44 | $(CXX) $(CXXFLAGS) -c $< -o $@ | |
45 | ||
46 | clean: | |
47 | rm -rf *.o $(TARGETS) libmal.a .deps | |
48 | ||
49 | -include .deps |