1 | # If SRC or TARGET is a folder it must end in a slash "/"
|
---|
2 | SRC =
|
---|
3 | TARGET = ../build/
|
---|
4 | DIST_TARGET = ../dist/00020DaodanWin
|
---|
5 | SUBFOLDERS = Patches beaengine
|
---|
6 |
|
---|
7 | DEF = BEA_ENGINE_STATIC
|
---|
8 | INCLUDEPATHS = .
|
---|
9 | GCCFLAGS = -std=gnu99 -ggdb -O0 -Wall -fomit-frame-pointer -Wextra -Wno-pragmas -Wno-unused-variable $(addprefix -I,$(INCLUDEPATHS)) -Wno-unused-parameter $(addprefix -D,$(DEF))
|
---|
10 | LINKFLAGS = -O0 -Wall -fomit-frame-pointer -mdll
|
---|
11 | LOCALE = LC_MESSAGES=C
|
---|
12 |
|
---|
13 | LIBDIRS =
|
---|
14 | LIBS = -lgdi32 -lwsock32
|
---|
15 | OBJS = $(SRC)binkw32.def
|
---|
16 | OUT = $(TARGET)binkw32.dll
|
---|
17 |
|
---|
18 | FILES := _DLLInfo.rc $(foreach dir,. $(SUBFOLDERS),$(wildcard $(SRC)$(dir)/*.c))
|
---|
19 |
|
---|
20 | DIST_OUT = $(DIST_TARGET)/plain/win_only/binkw32.dll
|
---|
21 | DIST_FILES := $(DIST_TARGET)/Mod_Info.cfg \
|
---|
22 | $(DIST_TARGET)/plain/win_only/realbink.dll \
|
---|
23 | $(DIST_TARGET)/plain/win_only/run_full.bat \
|
---|
24 | $(DIST_TARGET)/plain/win_only/run_wind.bat \
|
---|
25 | $(DIST_OUT)
|
---|
26 | DIST = $(DIST_TARGET).zip
|
---|
27 |
|
---|
28 | ###################################################
|
---|
29 | # #
|
---|
30 | # Should not be required to change anything below #
|
---|
31 | # #
|
---|
32 | ###################################################
|
---|
33 |
|
---|
34 | UNAME := $(shell uname -s)
|
---|
35 | ifeq ("Linux","$(UNAME)")
|
---|
36 | GCC := i686-w64-mingw32-gcc
|
---|
37 | WINDRES := i686-w64-mingw32-windres
|
---|
38 | else
|
---|
39 | GCC := gcc
|
---|
40 | WINDRES := windres
|
---|
41 | endif
|
---|
42 |
|
---|
43 | DESTFOLDERS = $(addprefix $(TARGET),$(SUBFOLDERS))
|
---|
44 | DEST = $(patsubst $(SRC)%.rc,$(TARGET)%.o,$(patsubst $(SRC)%.c,$(TARGET)%.o,$(FILES)))
|
---|
45 |
|
---|
46 | all: $(OUT)
|
---|
47 | .PHONY: all
|
---|
48 |
|
---|
49 | $(OUT): $(DESTFOLDERS) $(DEST) $(OBJS)
|
---|
50 | @echo "Linking"
|
---|
51 | $(LOCALE) $(GCC) $(LINKFLAGS) -o $(OUT) $(DEST) $(OBJS) $(LIBDIRS) $(LIBS)
|
---|
52 |
|
---|
53 | clean:
|
---|
54 | -rm -f $(DEST)
|
---|
55 | -rm -Rf $(DESTFOLDERS)
|
---|
56 | -rm -f $(OUT)
|
---|
57 | -rm -f $(DIST) $(DIST_OUT)
|
---|
58 | .PHONY: clean
|
---|
59 |
|
---|
60 | $(DESTFOLDERS):
|
---|
61 | mkdir -p $@
|
---|
62 |
|
---|
63 | $(TARGET)%.o: $(SRC)%.c
|
---|
64 | @echo "Compiling $<"
|
---|
65 | $(LOCALE) $(GCC) $(GCCFLAGS) -c -o $@ $<
|
---|
66 | @echo
|
---|
67 |
|
---|
68 | $(TARGET)%.o: $(SRC)%.rc
|
---|
69 | @echo "Assembling resource $<"
|
---|
70 | $(WINDRES) -i $< -o $@
|
---|
71 | @echo
|
---|
72 |
|
---|
73 | $(DIST): $(DIST_FILES)
|
---|
74 | bsdtar -acf $@ --strip-components 2 $(DIST_FILES)
|
---|
75 |
|
---|
76 | $(DIST_OUT): $(OUT)
|
---|
77 | cp -f $< $@
|
---|
78 |
|
---|
79 | dist: $(DIST)
|
---|
80 | .PHONY: dist
|
---|