1
- UNAME = $(shell uname -s)
1
+ # A MinGW Makefile
2
+ # As it uses -std=c++, g++ must be at least Version 4.7 ( $ g++ --version )
3
+ # I ended up downloading this: http://nuwen.net/mingw.html
2
4
3
- COMPILER_Linux = g++
4
- CXX_FLAGS_Linux = -Wall -std=c++11
5
- DEBUG_LIBS_Linux = -lsfml-system-d -lsfml-window-d -lsfml-graphics-d
6
- RELEASE_LIBS_Linux = -lsfml-system -lsfml-window -lsfml-graphics
5
+ CC = g++
6
+ FLAGS = -Wall -std=c++11
7
+ OFLAG = $(FLAGS ) -c
7
8
8
- COMPILER_Darwin = clang++
9
- CXX_FLAGS_Darwin = -Wall -std=c++11 -stdlib=libc++
10
- CXX_INCLUDE_Darwin = -I/opt/local/include
11
- DEBUG_LIBS_Darwin = -framework SFML -framework sfml-system -framework sfml-window -framework sfml-graphics
12
- RELEASE_LIBS_Darwin = $(DEBUG_LIBS )
9
+ INCLUDE = -I../../include
10
+ LIBDIR = -L../../lib/sfml
11
+ SOURCEDIR = ./src/
13
12
14
- COMPILER = $(COMPILER_$(UNAME ) )
15
- CXX_FLAGS = $(CXX_FLAGS_$(UNAME ) )
16
- CXX_INCLUDE = $(CXX_INCLUDE_$(UNAME ) )
17
- DEBUG_LIBS = $(DEBUG_LIBS_$(UNAME ) )
18
- RELEASE_LIBS = $(RELEASE_LIBS_$(UNAME ) )
13
+ ODIR = ./obj/
14
+ OBJECTS = $(ODIR ) Application.o $(ODIR ) AppStateGame.o $(ODIR ) Graphics.o\
15
+ $(ODIR ) Main.o $(ODIR ) Pawn.o $(ODIR ) Rook.o $(ODIR ) Knight.o $(ODIR ) Bishop.o\
16
+ $(ODIR ) Queen.o $(ODIR ) King.o $(ODIR ) Logger.o $(ODIR ) Piece.o $(ODIR ) Position.o\
17
+ $(ODIR ) Board.o
18
+ EXECUTABLE = ChessPlusPlus.exe
19
19
20
- DEBUG_PREPROCESSOR = -D_DEBUG
21
- RELEASE_PREPROCESSOR = -D_RELEASE
20
+ LIBS = -lsfml-system -lsfml-window -lsfml-graphics
22
21
23
- EXECUTABLE = chesspp
24
- TARGET = ../$(EXECUTABLE )
25
- SOURCE = $(shell cd src ; ls * .cpp) $(shell cd src ; ls board/* .cpp)
22
+ $(EXECUTABLE ) : $(OBJECTS )
23
+ $(CC ) $(FLAGS ) $(OBJECTS ) -o $(EXECUTABLE ) $(LIBDIR ) $(LIBS )
26
24
27
- all : debug
25
+ $(ODIR ) Application.o : $(SOURCEDIR ) Application.cpp $(SOURCEDIR ) Application.hpp
26
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) Application.cpp -o $(ODIR ) Application.o
28
27
29
- debug : CXX_PREPROCESSOR=$(DEBUG_PREPROCESSOR )
30
- debug : LIBS=$(DEBUG_LIBS )
31
- debug : main
28
+ $(ODIR ) AppStateGame.o : $(SOURCEDIR ) AppStateGame.cpp $(SOURCEDIR ) AppStateGame.hpp
29
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) AppStateGame.cpp -o $(ODIR ) AppStateGame.o
32
30
33
- release : CXX_PREPROCESSOR=$(RELEASE_PREPROCESSOR )
34
- release : LIBS=$(RELEASE_LIBS )
35
- release : main
31
+ $(ODIR ) Graphics.o : $(SOURCEDIR ) Graphics.cpp $(SOURCEDIR ) Graphics.hpp
32
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) Graphics.cpp -o $(ODIR ) Graphics.o
36
33
37
- main :
38
- cd src; \
39
- $(COMPILER ) $(CXX_FLAGS ) $(CXX_PREPROCESSOR ) -o $(TARGET ) $(CXX_INCLUDE ) $(SOURCE ) $(LIBS )
34
+ $(ODIR ) Main.o : $(SOURCEDIR ) Main.cpp
35
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) Main.cpp -o $(ODIR ) Main.o
40
36
41
- ifeq ($(UNAME ) , Darwin)
42
- sh MacOS/bundle.sh
43
- endif
37
+ $(ODIR ) Pawn.o : $(SOURCEDIR ) board/Pawn.cpp $(SOURCEDIR ) board/Pawn.hpp
38
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) board/Pawn.cpp -o $(ODIR ) Pawn.o
39
+
40
+ $(ODIR ) Rook.o : $(SOURCEDIR ) board/Rook.cpp $(SOURCEDIR ) board/Rook.hpp
41
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) board/Rook.cpp -o $(ODIR ) Rook.o
42
+
43
+ $(ODIR ) Knight.o : $(SOURCEDIR ) board/Knight.cpp $(SOURCEDIR ) board/Knight.hpp
44
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) board/Knight.cpp -o $(ODIR ) Knight.o
45
+
46
+ $(ODIR ) Bishop.o : $(SOURCEDIR ) board/Bishop.cpp $(SOURCEDIR ) board/Bishop.hpp
47
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) board/Bishop.cpp -o $(ODIR ) Bishop.o
48
+
49
+ $(ODIR ) Queen.o : $(SOURCEDIR ) board/Queen.cpp $(SOURCEDIR ) board/Queen.hpp
50
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) board/Queen.cpp -o $(ODIR ) Queen.o
51
+
52
+ $(ODIR ) King.o : $(SOURCEDIR ) board/King.cpp $(SOURCEDIR ) board/King.hpp
53
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) board/King.cpp -o $(ODIR ) King.o
54
+
55
+ $(ODIR ) Logger.o : $(SOURCEDIR ) board/Logger.cpp $(SOURCEDIR ) board/Logger.hpp
56
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) board/Logger.cpp -o $(ODIR ) Logger.o
57
+
58
+ $(ODIR ) Piece.o : $(SOURCEDIR ) board/Piece.cpp $(SOURCEDIR ) board/Piece.hpp
59
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) board/Piece.cpp -o $(ODIR ) Piece.o
60
+
61
+ $(ODIR ) Position.o : $(SOURCEDIR ) board/Position.cpp $(SOURCEDIR ) board/Position.hpp
62
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) board/Position.cpp -o $(ODIR ) Position.o
63
+
64
+ $(ODIR ) Board.o : $(SOURCEDIR ) board/Board.cpp $(SOURCEDIR ) board/Board.hpp
65
+ $(CC ) $(OFLAG ) $(INCLUDE ) $(SOURCEDIR ) board/Board.cpp -o $(ODIR ) Board.o
66
+
67
+
68
+ clean :
69
+ rm $(OBJECTS ) $(EXECUTABLE )
0 commit comments