-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
162 lines (127 loc) · 5.2 KB
/
makefile
File metadata and controls
162 lines (127 loc) · 5.2 KB
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# Compiler and linker settings
CXX=wpp386
LD=wlink
SYSTEM=dos4g
CFLAGS=-zq -zastd=c++0x -bt=dos -dDEBUG_LOGS -d0
LDFLAGS=option quiet
SRC_DIR=src
BIN_DIR=bin
OBJ_DIR=obj
TEST_DIR=tests
VENDOR_DIR=vendor
FONTS_DIR=fonts
SRC_DIR_EVT=$(SRC_DIR)/events
SRC_DIR_FMT=$(SRC_DIR)/filefmt
SRC_DIR_HAL=$(SRC_DIR)/hal
SRC_DIR_HLP=$(SRC_DIR)/helper
SRC_DIR_TUI=$(SRC_DIR)/textui
CXX_INCL=-i=$(SRC_DIR) -i=$(SRC_DIR_EVT) -i=$(SRC_DIR_FMT) -i=$(SRC_DIR_HAL) -i=$(SRC_DIR_HLP) -i=$(SRC_DIR_TUI) -i=$(VENDOR_DIR) -i=$(FONTS_DIR)
!ifdef __UNIX__
O_EXT=o
RM=rm -f
RD=rm -rf
SEP=/
MD_BIN=mkdir -p $(BIN_DIR)
MD_OBJ=mkdir -p $(OBJ_DIR)
!else
RM=del
RD=rd
SEP=\
O_EXT=obj
MD_BIN=if not exist bin md bin
MD_OBJ=if not exist $(OBJ_DIR) md $(OBJ_DIR)
!endif
# SRC_EVENTS=events.cpp
# SRC_FILEFMT=file.cpp fileio.cpp bnkfile.cpp rolfile.cpp
# SRC_HAL=instrmnt.cpp opl2.cpp
# SRC_HELPER=list.cpp
# SRC_TEXTUI=mouse.cpp dpmiutil.cpp textmode.cpp vga.cpp
LIB_CORE_SRCS=log.cpp dpmiutil.cpp vga.cpp mouse.cpp keyboard.cpp textmode.cpp list.cpp fileio.cpp pathutil.cpp
LIB_UI_SRCS=ui_event.cpp ui_common.cpp ui_label.cpp ui_btn.cpp ui_input.cpp ui_lsbox.cpp ui_piano.cpp ui_range.cpp ui_sheet.cpp ui_load.cpp cmponent.cpp
LIB_OPL_SRCS=bnkfile.cpp rolfile.cpp file.cpp instrmnt.cpp opl2.cpp
SRCS=$(LIB_CORE_SRCS) $(LIB_UI_SRCS) $(LIB_OPL_SRCS) main.cpp
TEST_COMMON_SRCS=log.cpp bnkfile.cpp rolfile.cpp list.cpp fileio.cpp file.cpp
TEST_EVT_SRCS=events.cpp test_evt.cpp
TEST_ROL_SRCS=$(TEST_COMMON_SRCS) instrmnt.cpp opl2.cpp test_rol.cpp
TEST_BNK_SRCS=$(TEST_COMMON_SRCS) instrmnt.cpp opl2.cpp test_bnk.cpp
TESTINST_SRCS=$(TEST_COMMON_SRCS) instrmnt.cpp testinst.cpp
TEST_TMR_SRCS=dpmiutil.cpp textmode.cpp timer.cpp test_tmr.cpp
TEST_KBD_SRCS=dpmiutil.cpp textmode.cpp keyboard.cpp mouse.cpp test_kbd.cpp
TEST_MOU_SRCS=dpmiutil.cpp textmode.cpp mouse.cpp test_mou.cpp
TEST_FNT_SRCS=test_fnt.cpp
TEST_LST_SRCS=list.cpp test_lst.cpp
TEST_PTH_SRCS=pathutil.cpp test_pth.cpp
TEST_UI_SRCS=$(LIB_CORE_SRCS) $(LIB_UI_SRCS) test_ui.cpp
TEST_CMP_SRCS=$(LIB_CORE_SRCS) $(LIB_UI_SRCS) test_cmp.cpp
TEST_SRCS =$(TEST_COMMON_SRCS) instrmnt.cpp test.cpp
OBJS=$(SRCS:.cpp=.$(O_EXT))
TEST_EVT_OBJS=$(TEST_EVT_SRCS:.cpp=.$(O_EXT))
TEST_ROL_OBJS=$(TEST_ROL_SRCS:.cpp=.$(O_EXT))
TEST_BNK_OBJS=$(TEST_BNK_SRCS:.cpp=.$(O_EXT))
TESTINST_OBJS=$(TESTINST_SRCS:.cpp=.$(O_EXT))
TEST_TMR_OBJS=$(TEST_TMR_SRCS:.cpp=.$(O_EXT))
TEST_MOU_OBJS=$(TEST_MOU_SRCS:.cpp=.$(O_EXT))
TEST_KBD_OBJS=$(TEST_KBD_SRCS:.cpp=.$(O_EXT))
TEST_FNT_OBJS=$(TEST_FNT_SRCS:.cpp=.$(O_EXT))
TEST_CMP_OBJS=$(TEST_CMP_SRCS:.cpp=.$(O_EXT))
TEST_LST_OBJS=$(TEST_LST_SRCS:.cpp=.$(O_EXT))
TEST_PTH_OBJS=$(TEST_PTH_SRCS:.cpp=.$(O_EXT))
TEST_UI_OBJS=$(TEST_UI_SRCS:.cpp=.$(O_EXT))
TEST_OBJS=$(TEST_SRCS:.cpp=.$(O_EXT))
# Executable name
TARGET = muzimake.exe
TESTS = testinst.exe test_fnt.exe test_evt.exe test_rol.exe test_bnk.exe test_ui.exe test_tmr.exe test_kbd.exe test_mou.exe test_cmp.exe test_lst.exe test_pth.exe test.exe
# Default target
.erase
all: prebuild $(TARGET) postbuild .symbolic
.erase
tests: prebuild $(TESTS) postbuild .symbolic
prebuild: .symbolic
$(MD_OBJ)
$(MD_BIN)
postbuild: .symbolic
%copy $(%WATCOM)/binw/dos4gw.exe $(BIN_DIR)
%copy $(TEST_DIR)/STANDARD.BNK $(BIN_DIR)
%copy $(TEST_DIR)/STARTREK.ROL $(BIN_DIR)
.o: $(OBJ_DIR)
.obj: $(OBJ_DIR)
.exe: $(BIN_DIR)
.cpp: $(SRC_DIR);$(SRC_DIR_EVT);$(SRC_DIR_FMT);$(SRC_DIR_HAL);$(SRC_DIR_HLP);$(SRC_DIR_TUI);$(TEST_DIR)
.cpp.$(O_EXT):
*$(CXX) $[@ $(CXX_INCL) -fo=$(OBJ_DIR)/$[&.$(O_EXT) $(CFLAGS)
# Link rule for the executable
$(TARGET): $(OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/$(TARGET) file { $< }
test.exe: $(TEST_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/test.exe file { $< }
testinst.exe: $(TESTINST_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/testinst.exe file { $< }
test_bnk.exe: $(TEST_BNK_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/test_bnk.exe file { $< }
test_evt.exe: $(TEST_EVT_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/test_evt.exe file { $< }
test_rol.exe: $(TEST_ROL_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/test_rol.exe file { $< }
test_ui.exe: $(TEST_UI_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/test_ui.exe file { $< }
test_cmp.exe: $(TEST_CMP_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/test_cmp.exe file { $< }
test_tmr.exe: $(TEST_TMR_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/test_tmr.exe file { $< }
test_kbd.exe: $(TEST_KBD_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/test_kbd.exe file { $< }
test_mou.exe: $(TEST_MOU_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/test_mou.exe file { $< }
test_fnt.exe: $(TEST_FNT_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/test_fnt.exe file { $< }
test_lst.exe: $(TEST_LST_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/test_lst.exe file { $< }
test_pth.exe: $(TEST_PTH_OBJS)
*$(LD) system $(SYSTEM) $(LDFLAGS) name $(BIN_DIR)/test_pth.exe file { $< }
# Clean rule
clean: .symbolic
$(RM) $(BIN_DIR)$(SEP)*.*
$(RD) $(BIN_DIR)
$(RM) $(OBJ_DIR)$(SEP)*.*
$(RD) $(OBJ_DIR)
$(RM) *.err