forked from Baron-von-Riedesel/VSBHDA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdjgpp.mak
146 lines (119 loc) · 4.97 KB
/
djgpp.mak
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
# create vsbhdad.exe with DJGPP and JWasm.
# to create a debug version, enter: make -f djgpp.mak DEBUG=1
# note that JWasm v2.17+ is needed ( understands -djgpp option )
ifndef DEBUG
DEBUG=0
endif
ifndef PENTIUM4
PENTIUM4=0
endif
NAME=vsbhda
ifeq ($(PENTIUM4),1)
NAME=vsbhdap4
endif
ifeq ($(DEBUG),1)
OUTD=djgppd
C_DEBUG_FLAGS=-D_DEBUG
else
OUTD=djgpp
C_DEBUG_FLAGS=
endif
ifeq ($(PENTIUM4),1)
ifeq ($(DEBUG),1)
OUTD=djgppp4d
else
OUTD=djgppp4
endif
endif
vpath_src=src mpxplay
vpath %.c $(vpath_src)
vpath %.cpp $(vpath_src)
vpath %.asm $(vpath_src)
vpath_header=src mpxplay
vpath %.h $(vpath_header)
vpath_obj=./$(OUTD)/
vpath %.o $(vpath_obj)
OBJFILES=\
$(OUTD)/main.o $(OUTD)/sndisr.o $(OUTD)/ptrap.o $(OUTD)/dbopl.o $(OUTD)/linear.o $(OUTD)/pic.o\
$(OUTD)/vsb.o $(OUTD)/vdma.o $(OUTD)/virq.o $(OUTD)/vopl3.o $(OUTD)/vmpu.o\
$(OUTD)/ac97mix.o $(OUTD)/au_cards.o\
$(OUTD)/dmairq.o $(OUTD)/pcibios.o $(OUTD)/memory.o $(OUTD)/physmem.o $(OUTD)/timer.o\
$(OUTD)/sc_e1371.o $(OUTD)/sc_ich.o $(OUTD)/sc_inthd.o $(OUTD)/sc_via82.o $(OUTD)/sc_sbliv.o $(OUTD)/sc_sbl24.o\
$(OUTD)/stackio.o $(OUTD)/stackisr.o $(OUTD)/sbisr.o $(OUTD)/int31.o $(OUTD)/rmwrap.o $(OUTD)/mixer.o\
$(OUTD)/hapi.o $(OUTD)/dprintf.o $(OUTD)/vioout.o $(OUTD)/djdpmi.o $(OUTD)/uninst.o
INCLUDE_DIRS=src mpxplay
SRC_DIRS=src mpxplay
C_OPT_FLAGS=-Os -fno-asynchronous-unwind-tables -fno-strict-aliasing
ifeq ($(PENTIUM4),1)
C_EXTRA_FLAGS=-frounding-math -march=pentium4 -msse -msse2 -mmmx -mfpmath=both -DPENTIUM4
else
C_EXTRA_FLAGS=-march=i386
endif
LD_FLAGS=$(addprefix -Xlinker ,$(LD_EXTRA_FLAGS))
LD_EXTRA_FLAGS=-Map $(OUTD)/$(NAME).map
INCLUDES=$(addprefix -I,$(INCLUDE_DIRS))
LIBS=$(addprefix -l,stdcxx m)
COMPILE.asm.o=jwasm.exe -q -djgpp -Istartup -D?MODEL=small -DDJGPP -DPENTIUM4=$(PENTIUM4) -Fo$@ $<
COMPILE.c.o=gcc $(C_DEBUG_FLAGS) $(C_OPT_FLAGS) $(C_EXTRA_FLAGS) $(CFLAGS) $(INCLUDES) -c $< -o $@
COMPILE.cpp.o=gcc $(C_DEBUG_FLAGS) $(C_OPT_FLAGS) $(C_EXTRA_FLAGS) $(CPPFLAGS) -fno-exceptions $(INCLUDES) -c $< -o $@
$(OUTD)/%.o: src/%.c
$(COMPILE.c.o)
$(OUTD)/%.o: src/%.cpp
$(COMPILE.cpp.o)
$(OUTD)/%.o: src/%.asm
$(COMPILE.asm.o)
$(OUTD)/%.o: mpxplay/%.c
$(COMPILE.c.o)
all:: $(OUTD) $(OUTD)/$(NAME).exe
$(OUTD):
@mkdir $(OUTD)
$(OUTD)/$(NAME).exe:: $(OUTD)/$(NAME).ar
gcc -o $@ $(OUTD)/main.o $(OUTD)/$(NAME).ar $(LD_FLAGS) $(LIBS)
strip -s $@
exe2coff $@
copy /b res\stub.bin + $(OUTD)\$(NAME) $(OUTD)\$(NAME).exe
$(OUTD)/$(NAME).ar:: $(OBJFILES)
ar --target=coff-go32 r $(OUTD)/$(NAME).ar $(OBJFILES)
# to avoid problems with 16-bit relocations, the 16-bit code
# is included in binary format into rmwrap.asm.
$(OUTD)/rmwrap.o:: rmwrap.asm rmcode.asm
jwasm.exe -q -bin -Fl$(OUTD)/ -Fo$(OUTD)/rmcode.bin src/rmcode.asm
jwasm.exe -q -djgpp -D?MODEL=small -DOUTD=$(OUTD) -Fo$@ src/rmwrap.asm
$(OUTD)/ac97mix.o:: ac97mix.c mpxplay.h au_cards.h ac97mix.h
$(OUTD)/au_cards.o:: au_cards.c mpxplay.h au_cards.h dmairq.h config.h
$(OUTD)/dmairq.o:: dmairq.c mpxplay.h au_cards.h dmairq.h
$(OUTD)/memory.o:: memory.c
$(OUTD)/pcibios.o:: pcibios.c pcibios.h
$(OUTD)/physmem.o:: physmem.c
$(OUTD)/sc_e1371.o:: sc_e1371.c mpxplay.h au_cards.h dmairq.h pcibios.h ac97mix.h
$(OUTD)/sc_ich.o:: sc_ich.c mpxplay.h au_cards.h dmairq.h pcibios.h ac97mix.h
$(OUTD)/sc_inthd.o:: sc_inthd.c mpxplay.h au_cards.h dmairq.h pcibios.h sc_inthd.h
$(OUTD)/sc_sbl24.o:: sc_sbl24.c mpxplay.h au_cards.h dmairq.h pcibios.h ac97mix.h sc_sbl24.h emu10k1.h
$(OUTD)/sc_sbliv.o:: sc_sbliv.c mpxplay.h au_cards.h dmairq.h pcibios.h ac97mix.h sc_sbliv.h emu10k1.h
$(OUTD)/sc_via82.o:: sc_via82.c mpxplay.h au_cards.h dmairq.h pcibios.h ac97.h
$(OUTD)/timer.o:: timer.c mpxplay.h au_cards.h timer.h
$(OUTD)/dbopl.o:: dbopl.cpp dbopl.h
$(OUTD)/linear.o:: linear.c linear.h platform.h
$(OUTD)/main.o:: main.c linear.h platform.h ptrap.h vopl3.h pic.h config.h vsb.h vdma.h virq.h au.h tsf.h
$(OUTD)/pic.o:: pic.c pic.h platform.h ptrap.h
$(OUTD)/ptrap.o:: ptrap.c linear.h platform.h ptrap.h config.h
$(OUTD)/sndisr.o:: sndisr.c linear.h platform.h vopl3.h pic.h config.h vsb.h vdma.h virq.h ctadpcm.h au.h tsf.h
$(OUTD)/vdma.o:: vdma.c linear.h platform.h ptrap.h vdma.h config.h
$(OUTD)/virq.o:: virq.c linear.h platform.h pic.h ptrap.h virq.h config.h
$(OUTD)/vopl3.o:: vopl3.cpp dbopl.h vopl3.h config.h
$(OUTD)/vsb.o:: vsb.c linear.h platform.h vsb.h config.h
$(OUTD)/vmpu.o:: vmpu.c linear.h platform.h vmpu.h config.h tsf.h
$(OUTD)/djdpmi.o:: djdpmi.asm
$(OUTD)/dprintf.o:: dprintf.asm
$(OUTD)/hapi.o:: hapi.asm
$(OUTD)/int31.o:: int31.asm
$(OUTD)/mixer.o:: mixer.asm
$(OUTD)/sbisr.o:: sbisr.asm
$(OUTD)/stackio.o:: stackio.asm
$(OUTD)/stackisr.o:: stackisr.asm
$(OUTD)/uninst.o:: uninst.asm
$(OUTD)/vioout.o:: vioout.asm
clean::
del $(OUTD)\$(NAME).exe
del $(OUTD)\$(NAME).ar
del $(OUTD)\*.o