File tree Expand file tree Collapse file tree 1 file changed +57
-23
lines changed Expand file tree Collapse file tree 1 file changed +57
-23
lines changed Original file line number Diff line number Diff line change 1
- # what to compile
2
- OBJS = main.cpp SU.cpp
1
+ #
2
+ # VARIABLES AND SETTINGS
3
+ #
3
4
4
- # what to compile with
5
- CC = g++
5
+ # compiler
6
+ CC := g++
7
+ # compilation flags
8
+ CFLAGS := -O -Wall -std=c++11 ` sdl-config --cflags ` -DUSING_SDL1
9
+ LFLAGS := ` sdl-config --libs ` -lSDL_ttf
6
10
7
- # compile flags
8
- COMPILER_FLAGS = -O -Wall -std=c++11 ` sdl-config --cflags ` -DUSING_SDL1
9
- COMPILER_FLAGS2 = -O -Wall -std=c++11 ` sdl2-config --cflags `
11
+ # source files
12
+ SRCDIR := src
13
+ SRCEXT := cpp
14
+ SRCS := $(wildcard $(SRCDIR ) /* .$(SRCEXT ) ) $(wildcard $(SRCDIR ) /SU/* .$(SRCEXT ) )
10
15
11
- # what to link
12
- LINKER_FLAGS = ` sdl-config --libs ` -lSDL_ttf
13
- LINKER_FLAGS2 = ` sdl2-config --libs ` -lSDL2_ttf
16
+ # building
17
+ BUILDDIR := build
18
+ OBJS := $( patsubst $( SRCDIR ) / % , $( BUILDDIR ) / % , $( SRCS:. $( SRCEXT ) =.o ) )
14
19
15
- # output name
16
- OBJ_NAME = sdl_universe
20
+ # output
21
+ OUTPUTDIR := bin
22
+ TARGET := SDL_Universe
17
23
18
- default : sdl1
19
24
20
- sdl2 : $(OBJS )
21
- @echo " Building with SDL2"
22
- $(CC ) $(OBJS ) $(COMPILER_FLAGS2 ) $(LINKER_FLAGS2 ) -o $(OBJ_NAME )
23
- ./$(OBJ_NAME )
24
25
25
- sdl1 : $(OBJS )
26
- @echo " Building with SDL1.2"
27
- $(CC ) $(OBJS ) $(COMPILER_FLAGS ) $(LINKER_FLAGS ) -o $(OBJ_NAME )
28
- ./$(OBJ_NAME )
29
26
30
- # fresh start
27
+ #
28
+ # RULES
29
+ #
30
+
31
+ run : $(TARGET )
32
+ @echo " "
33
+ @echo " ### RUNNING"
34
+ @echo -n " "
35
+ ./$(TARGET )
36
+
37
+ # linking rule
38
+ $(TARGET ) : $(OBJS )
39
+ @echo " "
40
+ @echo " ### LINKING" $@
41
+ @echo -n " "
42
+ $(CC ) $^ $(LFLAGS ) -o $(TARGET )
43
+
44
+ # compilation rule
45
+ $(BUILDDIR ) /% .o : $(SRCDIR ) /% .$(SRCEXT )
46
+ @echo " "
47
+ @echo " ### COMPILING" $@
48
+ @echo -n " "
49
+ $(CC ) $(CFLAGS ) -I include -c -o $@ $<
50
+
51
+ # cleanup
31
52
clean :
32
- rm -f $(OBJ_NAME ) * .o
53
+ @echo " "
54
+ @echo " ### CLEANING"
55
+ @echo -n " "
56
+ $(RM ) -r $(BUILDDIR ) /* .o
57
+ @echo -n " "
58
+ $(RM ) -r $(BUILDDIR ) /SU/* .o
59
+ @echo -n " "
60
+ $(RM ) -r $(TARGET )
61
+
62
+ # variable print for debug purposes
63
+ debug-% :
64
+ @echo $* = $($* )
65
+
66
+ .PHONY : clean
You can’t perform that action at this time.
0 commit comments