-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
53 lines (39 loc) · 1.1 KB
/
Makefile
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
UNAME_S := $(shell uname -s)
CFLAGS=-g -Wall -Wextra -std=c++17
#CFLAGS += -fsyntax-only
#CFLAGS += -fmax-errors=4
CFLAGS += -Wno-unused-variable -Wno-unused-parameter
#CCFLAGS=-D BOOST_MATH_STANDALONE
# I always keep my source files in a directory called "src"
SRC=src
SRCS=$(wildcard $(SRC)/*.cpp)
OBJ=obj
OBJS=$(patsubst $(SRC)/%.cpp, $(OBJ)/%.o, $(SRCS))
# executables
BINDIR=bin
BIN = $(BINDIR)/main
ifeq ($(UNAME_S),Linux)
CC=/usr/bin/clang-15
CCFLAGS += -D LINUX
BOOST_ROOT=/home/lundberg/coding/libs/boost/1.83.0
endif
ifeq ($(UNAME_S),Darwin)
CC=/opt/homebrew/Cellar/gcc/13.2.0/bin/g++-13
CCFLAGS += -D OSX
BOOST_ROOT=/opt/homebrew/Cellar/boost/1.83.0
endif
#INCLUDE=-Iinclude -I$(BOOST_ROOT)/include
INCLUDE=-Iinclude
LDFLAGS=
LDLIBS=-lstdc++
#LDLIBS=-lboost_system -l:libboost_program_options.a -L$(BOOST_ROOT)/lib
all:$(BIN)
release: CFLAGS=-Wall -O2 -DNDEBUG
release: clean
release: $(BIN)
$(BIN): $(OBJS)
$(CC) $(CFLAGS) $(INCLUDE) $(OBJS) $(LDFLAGS) $(LDLIBS) -o $@
$(OBJ)/%.o: $(SRC)/%.cpp
$(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
clean:
$(RM) -r $(BINDIR)/* $(OBJ)/*