forked from FWGS/xash3d-fwgs
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
106 lines (77 loc) · 2.46 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
#
# Basic KallistiOS skeleton / test program
# Copyright (C)2001-2004 Megan Potter
#
PROJECT_NAME = xash
TARGET = xash
include engine.mk
# Module paths and lib names
FILESYSTEM_DIR = filesystem
REF_GL_DIR = ref/gl
MAINUI_DIR = mainui_cpp
CL_DLL_DIR = ../hlsdk-portable_dc/cl_dll
SV_DLL_DIR = ../hlsdk-portable_dc/dlls
MAINUI_LIB = $(MAINUI_DIR)/libmenu.a
FILESYSTEM_LIB = $(FILESYSTEM_DIR)/libfilesystem_stdio.a
REF_GL_LIB = $(REF_GL_DIR)/libref_gl.a
CL_DLL_LIB = $(CL_DLL_DIR)/libcl_dll.a
SV_DLL_LIB = $(SV_DLL_DIR)/libhl.a
OBJS = $(XASH_CLIENT_OBJS) $(XASH_OBJS) $(XASH_SERVER_OBJS) $(XASH_PLATFORM_OBJS)
LIBS = -L../hlsdk-portable_dc \
-L3rdparty/dreamcast/GLdc/build \
-L$(KOS_BASE)/addons/lib/$(KOS_ARCH) \
-L$(KOS_PORTS)/lib \
-L$(FILESYSTEM_DIR) \
-L$(REF_GL_DIR) \
-L$(MAINUI_DIR) \
-lfatfs \
-lfilesystem_stdio \
-lhl \
-lcl_dll \
-lref_gl \
-l:libGL.a \
-lppp
# Build module libraries
$(CS_DLL_LIB):
$(MAKE) -C $(CL_DLL_DIR)
$(FILESYSTEM_LIB):
$(MAKE) -C $(FILESYSTEM_DIR)
$(REF_GL_LIB):
$(MAKE) -C $(REF_GL_DIR)
$(SV_DLL_LIB):
$(MAKE) -C $(SV_DLL_DIR)
# The rm-elf step is to remove the target before building, to force the
# re-creation of the rom disk.
all: $(FILESYSTEM_LIB) $(REF_GL_LIB) $(SV_DLL_LIB) $(TARGET) IP.BIN $(PROJECT_NAME).iso $(PROJECT_NAME).cdi
include $(KOS_BASE)/Makefile.rules
clean:
-rm -f $(OBJS)
-rm -f $(TARGET)
$(MAKE) -C $(FILESYSTEM_DIR) clean
$(MAKE) -C $(REF_GL_DIR) clean
-rm -f $(TARGET).bin
-rm -f $(PROJECT_NAME).cdi
-rm -f 1ST_READ.BIN
-rm -f build/IP.BIN
-rm -f $(PROJECT_NAME).iso
-rm -f $(PROJECT_NAME).cdi
$(TARGET): $(OBJS) $(FILESYSTEM_LIB) $(REF_GL_LIB) $(SV_DLL_LIB)
kos-c++ -o $(TARGET) $(OBJS) $(LIBS) -Wl,--gc-sections -fwhole-program -Wl,--build-id=none
run: $(TARGET)
$(KOS_LOADER) $(TARGET)
1ST_READ_ISO.BIN: $(TARGET) IP.BIN
kos-objcopy -R .stack -O binary $(TARGET) 1ST_READ.BIN
cp 1ST_READ.BIN build
1ST_READ.BIN: $(TARGET) IP.BIN
kos-objcopy -R .stack -O binary $(TARGET) $(TARGET).BIN
$(KOS_BASE)/utils/scramble/scramble $(TARGET).bin 1ST_READ.BIN
-rm -f build/1ST_READ.BIN
cp 1ST_READ.BIN build
IP.BIN: ip.txt
-rm -f build/IP.BIN
$(KOS_BASE)/utils/makeip/makeip ip.txt build/IP.BIN
$(PROJECT_NAME).iso: 1ST_READ_ISO.BIN
mkisofs -V XashDC -G build/IP.BIN -r -J -l -o xash.iso build
$(PROJECT_NAME).cdi: 1ST_READ.BIN
./mkdcdisc -e xash -D build -o Xash3D.cdi
.PHONY: all clean 1ST_READ.BIN IP.BIN cdi