-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
85 lines (69 loc) · 2.56 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
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
79
80
81
82
83
84
85
BUILD_DIR=builds
GAME_DIR=game
GAME_FILE_NAME=Soviet_VS_Asteroids
COMPILED_GAME_FILE=$(BUILD_DIR)/$(GAME_FILE_NAME).love
LINUX_DIR=$(BUILD_DIR)/Linux
MAC_DIR=$(BUILD_DIR)/Mac
WINx64_DIR=$(BUILD_DIR)/Windows_x64
WINx86_DIR=$(BUILD_DIR)/Windows_x86
LINUX_EXE=$(LINUX_DIR)/$(GAME_FILE_NAME)
MAC_EXE=$(MAC_DIR)/$(GAME_FILE_NAME).app
WINx64_EXE=$(WINx64_DIR)/$(GAME_FILE_NAME)_x64.exe
WINx86_EXE=$(WINx86_DIR)/$(GAME_FILE_NAME)_x86.exe
TMP_DIR=tmp
LIN_TMP_DIR=$(GAME_FILE_NAME)_lin
MAC_TMP_DIR=$(GAME_FILE_NAME)_mac
WINx64_TMP_DIR=$(GAME_FILE_NAME)_win_x64
WINx86_TMP_DIR=$(GAME_FILE_NAME)_win_x86
all: archive
archive: build archive-linux archive-mac archive-win-x64 archive-win-x86
archive-linux: build-linux
mkdir -p $(TMP_DIR)/$(LIN_TMP_DIR)
cp $(LINUX_EXE) $(TMP_DIR)/$(LIN_TMP_DIR)
cd $(TMP_DIR); zip -r $(LIN_TMP_DIR).zip $(LIN_TMP_DIR)
mv $(TMP_DIR)/$(LIN_TMP_DIR).zip .
rm -rf $(TMP_DIR)
archive-mac: build-mac
mkdir -p $(TMP_DIR)/$(MAC_TMP_DIR)
cp -r $(MAC_EXE) $(TMP_DIR)/$(MAC_TMP_DIR)
cd $(TMP_DIR); zip -r $(MAC_TMP_DIR).zip $(MAC_TMP_DIR)
mv $(TMP_DIR)/$(MAC_TMP_DIR).zip .
rm -rf $(TMP_DIR)
archive-win-x64: build-win-x64
mkdir -p $(TMP_DIR)/$(WINx64_TMP_DIR)
cp $(WINx64_EXE) $(TMP_DIR)/$(WINx64_TMP_DIR)
cp $(WINx64_DIR)/*.dll $(TMP_DIR)/$(WINx64_TMP_DIR)
cd $(TMP_DIR); zip -r $(WINx64_TMP_DIR).zip $(WINx64_TMP_DIR)
mv $(TMP_DIR)/$(WINx64_TMP_DIR).zip .
rm -rf $(TMP_DIR)
archive-win-x86: build-win-x86
mkdir -p $(TMP_DIR)/$(WINx86_TMP_DIR)
cp $(WINx86_EXE) $(TMP_DIR)/$(WINx86_TMP_DIR)
cp $(WINx86_DIR)/*.dll $(TMP_DIR)/$(WINx86_TMP_DIR)
cd $(TMP_DIR); zip -r $(WINx86_TMP_DIR).zip $(WINx86_TMP_DIR)
mv $(TMP_DIR)/$(WINx86_TMP_DIR).zip .
rm -rf $(TMP_DIR)
build: compile-game build-linux build-mac build-win-x64 build-win-x86
compile-game:
cd $(GAME_DIR); zip -r ../$(COMPILED_GAME_FILE) *
cp $(COMPILED_GAME_FILE) .
build-linux: compile-game
echo "Building for Linux..."
rm -rf $(LINUX_EXE)
cat $(LINUX_DIR)/love $(COMPILED_GAME_FILE) >> $(LINUX_EXE)
chmod +x $(LINUX_EXE)
build-mac: compile-game
echo "Building for Mac OS..."
rm -rf $(MAC_EXE)
cp -r $(MAC_DIR)/love.app $(MAC_EXE)
cp $(COMPILED_GAME_FILE) $(MAC_EXE)/Contents/Resources/
build-win-x64: compile-game
echo "Building for Windows x64..."
rm -rf $(WINx64_EXE)
cat $(WINx64_DIR)/love.exe $(COMPILED_GAME_FILE) >> $(WINx64_EXE)
build-win-x86: compile-game
echo "Building for Windows x86..."
rm -rf $(WINx86_EXE)
cat $(WINx86_DIR)/love.exe $(COMPILED_GAME_FILE) >> $(WINx86_EXE)
clear:
rm -rf $(COMPILED_GAME_FILE) $(LINUX_EXE) $(MAC_EXE) $(WINx64_EXE) $(WINx86_EXE) $(TMP_DIR) *.zip *.love