forked from Alke-Games/Dauphine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile.windows
78 lines (66 loc) · 2.17 KB
/
Makefile.windows
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
## Edit this to fit your settings ##
## Lua settings
LUA_DIR := /usr/local
LUA_LIBDIR := $(LUA_DIR)/lib
LUA_INCDIR := $(LUA_DIR)/include
LUA_LINK := -llua52
##
# Folders containing files
INCLUDES := include
SOURCES := src
RESOURCES := res
BUILD := build
SDL_MINGW_ROOT = /usr/i686-w64-mingw32
# Lib settings
LIB_DIR := $(CURDIR)/lib
LINK_LIBS := -L$(LUA_LIBDIR) -L$(LIB_DIR) $(LUA_LINK) -lm -ltmxparser -ltinyxml -lz
# Compiler
export LD := /usr/bin/i686-w64-mingw32-g++
# Compiler flags
CPPFLAGS= `$(SDL_MINGW_ROOT)/bin/sdl2-config --cflags` -O2 -g -W -Wall -pedantic -ansi -static-libgcc -static-libstdc++ -std=c++0x -Wextra -Wshadow
# Linking flags
LDFLAGS = `$(SDL_MINGW_ROOT)/bin/sdl2-config --libs` -lSDL2_image -lSDL2_mixer -lSDL2_gfx -lSDL2_ttf $(LINK_LIBS)
# Target program name
TARGET := Dauphine
# Automatically build a list of object files
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
# Object files
export OFILES := $(addprefix $(BUILD)/,$(CPPFILES:.cpp=.o))
#
CPPFILES := $(addprefix $(SOURCES)/,$(CPPFILES))
# Build a list of include paths
export INCLUDE := $(foreach dir,$(INCLUDES), -I$(CURDIR)/$(dir)) -I$(CURDIR)/$(BUILD)
INCLUDE += -I$(LUA_INCDIR)
$(BUILD)/%.o:$(SOURCES)/%.cpp
@mkdir -p $(BUILD)
@echo Building $^ ...
@$(LD) $(CPPFLAGS) -c $^ -o $@ $(INCLUDE)
main:$(LIB_DIR)/libtinyxml.a $(LIB_DIR)/libtmxparser.a $(OFILES)
@unzip -j windows.zip
@mkdir -p $(BUILD)
@echo Linking necessary libraries...
@$(LD) $(OFILES) $(CPPFLAGS) $(LDFLAGS) -o $(TARGET).exe
@echo Built executable "$(TARGET).exe"
$(LIB_DIR)/libtinyxml.a:
@echo --- Creating libtinyxml.a ...
@cd $(LIB_DIR)/tinyxml && $(MAKE)
@cd $(LIB_DIR)/tinyxml && ar rcs libtinyxml.a *.o
@cd $(LIB_DIR)/tinyxml && mv libtinyxml.a ../
@cd $(LIB_DIR)/tinyxml && $(MAKE) clean
@echo --- Done.
$(LIB_DIR)/libtmxparser.a:
@echo --- Creating libtmxparser.a ...
@cd $(LIB_DIR)/ && $(MAKE) -f Makefile.tmxparser
@cd $(LIB_DIR)/ && $(MAKE) -f Makefile.tmxparser clean
@echo --- Done.
clean:
@echo Cleaning...
@rm -rf $(BUILD)/
@rm -f $(TARGET)
@rm -f $(TARGET).exe
@rm -f *.dll
@rm -f LICENSES.txt
hardclean: clean
@echo Deleting static libraries...
@rm -f $(LIB_DIR)/*.a
@echo Done.