-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
123 lines (97 loc) · 3.08 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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
FLAGS := -DGBI_PREFIX=F3DEX2 -DVFILE_VISIBILITY=static -DNDEBUG -Wno-unused-function -Wno-unused-variable -Wall -Os -s -Igfxasm/src -Iwowlib -DWOW_OVERLOAD_FILE -Isrc
MFLAGS := -lm -flto
WinGcc := i686-w64-mingw32.static-gcc
WindRes := i686-w64-mingw32.static-windres
SourceC := $(shell find src/* -type f -name '*.c') $(shell find gfxasm/src/* -type f -name '*.c')
BuildGuiWinO := $(foreach f,$(SourceC:.c=.o),bin/gui/win32/$f)
BuildCliWinO := $(foreach f,$(SourceC:.c=.o),bin/cli/win32/$f)
BuildGuiLinO := $(foreach f,$(SourceC:.c=.o),bin/gui/linux/$f)
BuildCliLinO := $(foreach f,$(SourceC:.c=.o),bin/cli/linux/$f)
.PHONY: wingui wincli clean
$(shell mkdir -p bin/release)
$(shell mkdir -p bin/ $(foreach dir, \
$(dir $(BuildGuiWinO)) \
$(dir $(BuildCliWinO)) \
$(dir $(BuildGuiLinO)) \
$(dir $(BuildCliLinO)) \
,$(dir)))
default:
@echo Possible targets:
@echo make lingui
@echo make lincli
@echo make wingui
@echo make wincli
clean:
@rm -f -r bin/**
@rm -f z64convert-cl*
@rm -f z64convert-gu*
# lin-gui:
# @gcc -o bin/release/z64convert-linux-gui -DZ64CONVERT_GUI $(FLAGS) `wowlib/deps/wow_gui_x11.sh`
# lin-cli:
# @gcc -o bin/release/z64convert-linux $(FLAGS)
# w32-gui:
# @$(WindRes) src/icon.rc -o bin/o/win32/icon.o
# @$(WinGcc) -o bin/release/z64convert.exe $(FLAGS) \
# -municode -DZ64CONVERT_GUI \
# -mwindows -lgdi32 -luser32 -lkernel32 -lm \
# bin/o/win32/icon.o \
# -Wno-switch -Wno-format -Wno-unused-but-set-variable
#
# Linux GUI
#
lingui: $(BuildGuiLinO) z64convert-gui
bin/gui/linux/%.o: %.c
@echo [$<]
@$(gcc) -c -o $@ $< $(FLAGS) \
-DZ64CONVERT_GUI \
-Wno-switch -Wno-format -Wno-unused-but-set-variable
z64convert-gui: $(BuildGuiLinO)
@echo [$@]
@$(gcc) -o $@ $^ $(FLAGS) $(MFLAGS) \
-DZ64CONVERT_GUI \
-Wno-switch -Wno-format -Wno-unused-but-set-variable \
-no-pie -lX11 -lm -lpthread
#
# Linux CLI
#
lincli: $(BuildCliLinO) z64convert-cli
bin/cli/linux/%.o: %.c
@echo [$<]
@gcc -c -o $@ $< $(FLAGS) \
-Wno-switch -Wno-format -Wno-unused-but-set-variable
z64convert-cli: $(BuildCliLinO)
@echo [$@]
@gcc -o $@ $^ $(FLAGS) $(MFLAGS) \
-Wno-switch -Wno-format -Wno-unused-but-set-variable
#
# Windows32 GUI
#
wingui: $(BuildGuiWinO) bin/gui/win32/src/icon.ro z64convert-gui.exe
bin/gui/win32/%.o: %.c
@echo [$<]
@$(WinGcc) -c -o $@ $< $(FLAGS) \
-municode -DZ64CONVERT_GUI -mwindows \
-Wno-switch -Wno-format -Wno-unused-but-set-variable
bin/gui/win32/src/icon.ro: src/icon.rc
@echo [$<]
@$(WindRes) -o $@ $^
z64convert-gui.exe: $(BuildGuiWinO) bin/gui/win32/src/icon.ro
@echo [$@]
@$(WinGcc) -o $@ $^ $(FLAGS) $(MFLAGS) \
-municode -DZ64CONVERT_GUI -mwindows \
-lgdi32 -luser32 -lkernel32 -lm \
-Wno-switch -Wno-format -Wno-unused-but-set-variable
#
# Windows32 CLI
#
wincli: $(BuildCliWinO) z64convert-cli.exe
bin/cli/win32/%.o: %.c
@echo [$<]
@$(WinGcc) -c -o $@ $< $(FLAGS) \
-municode -mconsole \
-Wno-switch -Wno-format -Wno-unused-but-set-variable
z64convert-cli.exe: $(BuildCliWinO)
@echo [z64convert-cli.exe]
@$(WinGcc) -o $@ $^ $(FLAGS) $(MFLAGS) \
-municode -mconsole \
-Wno-switch -Wno-format -Wno-unused-but-set-variable