| 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 |