3
# Note: -O2 is sometimes broken in GCC when setjump/longjump is being
4
# used. Try -O2 only with released simulators.
8
ifeq ($(OSTYPE),solaris)
9
OS_CCDEFS = -lsocket -lnsl -lpthread -D_GNU_SOURCE
11
OS_CCDEFS = -D_GNU_SOURCE
13
CC = gcc -std=c99 -O2 -g -lm $(OS_CCDEFS) -I .
14
ifeq ($(USE_NETWORK),)
16
NETWORK_OPT = -DUSE_NETWORK -lpcap -isystem /usr/local/include -L /usr/local/lib
20
LDFLAGS = -lm -lwsock32
21
CC = gcc -std=c99 -U__STRICT_ANSI__ -O0 -I.
23
ifeq ($(USE_NETWORK),)
25
NETWORK_OPT = -DUSE_NETWORK -lwpcap -lpacket
34
BIN = $(DESTDIR)/usr/bin/
35
SIM = scp.c sim_console.c sim_fio.c sim_timer.c sim_sock.c \
36
sim_tmxr.c sim_ether.c sim_tape.c
40
# Emulator source files and compile time options
43
PDP1 = ${PDP1D}pdp1_lp.c ${PDP1D}pdp1_cpu.c ${PDP1D}pdp1_stddev.c \
44
${PDP1D}pdp1_sys.c ${PDP1D}pdp1_dt.c ${PDP1D}pdp1_drm.c
45
PDP1_OPT = -I ${PDP1D}
49
NOVA = ${NOVAD}nova_sys.c ${NOVAD}nova_cpu.c ${NOVAD}nova_dkp.c \
50
${NOVAD}nova_dsk.c ${NOVAD}nova_lp.c ${NOVAD}nova_mta.c \
51
${NOVAD}nova_plt.c ${NOVAD}nova_pt.c ${NOVAD}nova_clk.c \
52
${NOVAD}nova_tt.c ${NOVAD}nova_tt1.c ${NOVAD}nova_qty.c
53
NOVA_OPT = -I ${NOVAD}
58
PDP18B = ${PDP18BD}pdp18b_dt.c ${PDP18BD}pdp18b_drm.c ${PDP18BD}pdp18b_cpu.c \
59
${PDP18BD}pdp18b_lp.c ${PDP18BD}pdp18b_mt.c ${PDP18BD}pdp18b_rf.c \
60
${PDP18BD}pdp18b_rp.c ${PDP18BD}pdp18b_stddev.c ${PDP18BD}pdp18b_sys.c \
61
${PDP18BD}pdp18b_rb.c ${PDP18BD}pdp18b_tt1.c ${PDP18BD}pdp18b_fpp.c
62
PDP4_OPT = -DPDP4 -I ${PDP18BD}
63
PDP7_OPT = -DPDP7 -I ${PDP18BD}
64
PDP9_OPT = -DPDP9 -I ${PDP18BD}
65
PDP15_OPT = -DPDP15 -I ${PDP18BD}
70
PDP11 = ${PDP11D}pdp11_fp.c ${PDP11D}pdp11_cpu.c ${PDP11D}pdp11_dz.c \
71
${PDP11D}pdp11_cis.c ${PDP11D}pdp11_lp.c ${PDP11D}pdp11_rk.c \
72
${PDP11D}pdp11_rl.c ${PDP11D}pdp11_rp.c ${PDP11D}pdp11_rx.c \
73
${PDP11D}pdp11_stddev.c ${PDP11D}pdp11_sys.c ${PDP11D}pdp11_tc.c \
74
${PDP11D}pdp11_tm.c ${PDP11D}pdp11_ts.c ${PDP11D}pdp11_io.c \
75
${PDP11D}pdp11_rq.c ${PDP11D}pdp11_tq.c ${PDP11D}pdp11_pclk.c \
76
${PDP11D}pdp11_ry.c ${PDP11D}pdp11_pt.c ${PDP11D}pdp11_hk.c \
77
${PDP11D}pdp11_xq.c ${PDP11D}pdp11_xu.c
78
PDP11_OPT = -DVM_PDP11 -I ${PDP11D} ${NETWORK_OPT}
83
VAX = ${VAXD}vax_cpu1.c ${VAXD}vax_cpu.c ${VAXD}vax_fpa.c ${VAXD}vax_io.c \
84
${VAXD}vax_mmu.c ${VAXD}vax_stddev.c ${VAXD}vax_sys.c \
86
${PDP11D}pdp11_rl.c ${PDP11D}pdp11_rq.c ${PDP11D}pdp11_ts.c \
87
${PDP11D}pdp11_dz.c ${PDP11D}pdp11_lp.c ${PDP11D}pdp11_tq.c \
88
${PDP11D}pdp11_pt.c ${PDP11D}pdp11_xq.c ${PDP11D}pdp11_ry.c
89
VAX_OPT = -DVM_VAX -DUSE_INT64 -I ${VAXD} -I ${PDP11D} ${NETWORK_OPT}
94
PDP10 = ${PDP10D}pdp10_fe.c ${PDP11D}pdp11_dz.c ${PDP10D}pdp10_cpu.c \
95
${PDP10D}pdp10_ksio.c ${PDP10D}pdp10_lp20.c ${PDP10D}pdp10_mdfp.c \
96
${PDP10D}pdp10_pag.c ${PDP10D}pdp10_rp.c ${PDP10D}pdp10_sys.c \
97
${PDP10D}pdp10_tim.c ${PDP10D}pdp10_tu.c ${PDP10D}pdp10_xtnd.c \
98
${PDP11D}pdp11_pt.c ${PDP11D}pdp11_ry.c ${PDP11D}pdp11_xu.c
99
PDP10_OPT = -DVM_PDP10 -DUSE_INT64 -I ${PDP10D} -I ${PDP11D} -I ${VAXD} ${NETWORK_OPT}
104
PDP8 = ${PDP8D}pdp8_cpu.c ${PDP8D}pdp8_clk.c ${PDP8D}pdp8_df.c \
105
${PDP8D}pdp8_dt.c ${PDP8D}pdp8_lp.c ${PDP8D}pdp8_mt.c \
106
${PDP8D}pdp8_pt.c ${PDP8D}pdp8_rf.c ${PDP8D}pdp8_rk.c \
107
${PDP8D}pdp8_rx.c ${PDP8D}pdp8_sys.c ${PDP8D}pdp8_tt.c \
108
${PDP8D}pdp8_ttx.c ${PDP8D}pdp8_rl.c ${PDP8D}pdp8_tsc.c \
110
PDP8_OPT = -I ${PDP8D}
115
H316 = ${H316D}h316_stddev.c ${H316D}h316_lp.c ${H316D}h316_cpu.c \
116
${H316D}h316_sys.c ${H316D}h316_mt.c ${H316D}h316_fhd.c \
118
H316_OPT = -I ${H316D}
123
HP2100 = ${HP2100D}hp2100_stddev.c ${HP2100D}hp2100_dp.c ${HP2100D}hp2100_dq.c \
124
${HP2100D}hp2100_dr.c ${HP2100D}hp2100_lps.c ${HP2100D}hp2100_ms.c \
125
${HP2100D}hp2100_mt.c ${HP2100D}hp2100_mux.c ${HP2100D}hp2100_cpu.c \
126
${HP2100D}hp2100_fp.c ${HP2100D}hp2100_sys.c ${HP2100D}hp2100_lpt.c \
127
${HP2100D}hp2100_ipl.c
128
HP2100_OPT = -I ${HP2100D}
133
I1401 = ${I1401D}i1401_lp.c ${I1401D}i1401_cpu.c ${I1401D}i1401_iq.c \
134
${I1401D}i1401_cd.c ${I1401D}i1401_mt.c ${I1401D}i1401_dp.c \
136
I1401_OPT = -I ${I1401D}
141
I1620 = ${I1620D}i1620_cd.c ${I1620D}i1620_dp.c ${I1620D}i1620_pt.c \
142
${I1620D}i1620_tty.c ${I1620D}i1620_cpu.c ${I1620D}i1620_lp.c \
143
${I1620D}i1620_fp.c ${I1620D}i1620_sys.c
144
I1620_OPT = -I ${I1620D}
149
ID16 = ${ID16D}id16_cpu.c ${ID16D}id16_sys.c ${ID16D}id_dp.c \
150
${ID16D}id_fd.c ${ID16D}id_fp.c ${ID16D}id_idc.c ${ID16D}id_io.c \
151
${ID16D}id_lp.c ${ID16D}id_mt.c ${ID16D}id_pas.c ${ID16D}id_pt.c \
152
${ID16D}id_tt.c ${ID16D}id_uvc.c ${ID16D}id16_dboot.c ${ID16D}id_ttp.c
153
ID16_OPT = -I ${ID16D}
158
ID32 = ${ID32D}id32_cpu.c ${ID32D}id32_sys.c ${ID32D}id_dp.c \
159
${ID32D}id_fd.c ${ID32D}id_fp.c ${ID32D}id_idc.c ${ID32D}id_io.c \
160
${ID32D}id_lp.c ${ID32D}id_mt.c ${ID32D}id_pas.c ${ID32D}id_pt.c \
161
${ID32D}id_tt.c ${ID32D}id_uvc.c ${ID32D}id32_dboot.c ${ID32D}id_ttp.c
162
ID32_OPT = -I ${ID32D}
167
S3 = ${S3D}s3_cd.c ${S3D}s3_cpu.c ${S3D}s3_disk.c ${S3D}s3_lp.c \
168
${S3D}s3_pkb.c ${S3D}s3_sys.c
174
ALTAIR = ${ALTAIRD}altair_sio.c ${ALTAIRD}altair_cpu.c ${ALTAIRD}altair_dsk.c \
175
${ALTAIRD}altair_sys.c
176
ALTAIR_OPT = -I ${ALTAIRD}
180
ALTAIRZ80D = AltairZ80/
181
ALTAIRZ80 = ${ALTAIRZ80D}altairz80_cpu.c ${ALTAIRZ80D}altairz80_dsk.c \
182
${ALTAIRZ80D}altairz80_sio.c ${ALTAIRZ80D}altairz80_sys.c \
183
${ALTAIRZ80D}altairz80_hdsk.c
184
ALTAIRZ80_OPT = -I ${ALTAIRZ80D}
189
GRI = ${GRID}gri_cpu.c ${GRID}gri_stddev.c ${GRID}gri_sys.c
195
LGP = ${LGPD}lgp_cpu.c ${LGPD}lgp_stddev.c ${LGPD}lgp_sys.c
201
SDS = ${SDSD}sds_cpu.c ${SDSD}sds_drm.c ${SDSD}sds_dsk.c ${SDSD}sds_io.c \
202
${SDSD}sds_lp.c ${SDSD}sds_mt.c ${SDSD}sds_mux.c ${SDSD}sds_rad.c \
203
${SDSD}sds_stddev.c ${SDSD}sds_sys.c
208
MACRO1D = TOOLS/crossassemblers/
209
MACRO1 = ${MACRO1D}macro1.c
213
MACRO7D = TOOLS/crossassemblers/
214
MACRO7 = ${MACRO7D}macro7.c
218
MACRO8XD = TOOLS/crossassemblers/
219
MACRO8X = ${MACRO8XD}macro8x.c
223
DTOS8CVTD = TOOLS/converters/
224
DTOS8CVT = ${DTOS8CVTD}dtos8cvt.c
228
GT7CVTD = TOOLS/converters/
229
GT7CVT = ${GT7CVTD}gt7cvt.c
233
MTCVTV23D = TOOLS/converters/
234
MTCVTV23 = ${MTCVTV23D}mtcvtv23.c
238
MTCVTFIXD = TOOLS/converters/
239
MTCVTFIX = ${MTCVTFIXD}mtcvtfix.c
243
MTDUMPD = TOOLS/extracters/
244
MTDUMP = ${MTDUMPD}mtdump.c
248
MMDIRD = TOOLS/extracters/
249
MMDIR = ${MMDIRD}mmdir.c
253
LITTCVTD = TOOLS/converters/
254
LITTCVT = ${LITTCVTD}littcvt.c
258
MTCVTODDD = TOOLS/converters/
259
MTCVTODD = ${MTCVTODDD}mtcvtodd.c
263
SFMTCVTD = TOOLS/converters/
264
SFMTCVT = ${SFMTCVTD}sfmtcvt.c
268
CONFIG11D = TOOLS/config11/
269
CONFIG11 = ${CONFIG11D}config11.c
273
SDSDUMPD = TOOLS/extracters/
274
SDSDUMP = ${SDSDUMPD}sdsdump.c
278
TP512CVTD = TOOLS/converters/
279
TP512CVT = ${TP512CVTD}tp512cvt.c
286
ALL = ${BIN}pdp1${EXE} ${BIN}pdp4${EXE} ${BIN}pdp7${EXE} ${BIN}pdp8${EXE} \
287
${BIN}pdp9${EXE} ${BIN}pdp15${EXE} ${BIN}pdp11${EXE} ${BIN}pdp10${EXE} \
288
${BIN}nova${EXE} ${BIN}h316${EXE} \
289
${BIN}hp2100${EXE} ${BIN}i1401${EXE} ${BIN}i1620${EXE} ${BIN}s3${EXE} \
290
${BIN}altair${EXE} ${BIN}altairz80${EXE} \
291
${BIN}i1620${EXE} ${BIN}id16${EXE} \
292
${BIN}id32${EXE} ${BIN}sds${EXE} ${BIN}lgp${EXE} \
294
${BIN}dtos8cvt ${BIN}gt7cvt ${BIN}macro1 ${BIN}macro7 \
295
${BIN}macro8x ${BIN}mtcvtv23 ${BIN}mtdump ${BIN}littcvt \
296
${BIN}mtcvtodd ${BIN}sfmtcvt ${BIN}config11 ${BIN}sdsdump \
297
${BIN}mtcvtfix ${BIN}mmdir ${BIN}tp512cvt
305
if exist BIN\*.exe del /q BIN\*.exe
310
${BIN}pdp1${EXE} : ${PDP1} ${SIM}
311
${CC} ${PDP1} ${SIM} ${PDP1_OPT} -o $@ ${LDFLAGS}
315
${BIN}pdp4${EXE} : ${PDP18B} ${SIM}
316
${CC} ${PDP18B} ${SIM} ${PDP4_OPT} -o $@ ${LDFLAGS}
320
${BIN}pdp7${EXE} : ${PDP18B} ${SIM}
321
${CC} ${PDP18B} ${SIM} ${PDP7_OPT} -o $@ ${LDFLAGS}
325
${BIN}pdp8${EXE} : ${PDP8} ${SIM}
326
${CC} ${PDP8} ${SIM} ${PDP8_OPT} -o $@ ${LDFLAGS}
330
${BIN}pdp9${EXE} : ${PDP18B} ${SIM}
331
${CC} ${PDP18B} ${SIM} ${PDP9_OPT} -o $@ ${LDFLAGS}
335
${BIN}pdp15${EXE} : ${PDP18B} ${SIM}
336
${CC} ${PDP18B} ${SIM} ${PDP15_OPT} -o $@ ${LDFLAGS}
340
${BIN}pdp10${EXE} : ${PDP10} ${SIM}
341
${CC} ${PDP10} ${SIM} ${PDP10_OPT} -o $@ ${LDFLAGS}
345
${BIN}pdp11${EXE} : ${PDP11} ${SIM}
346
${CC} ${PDP11} ${SIM} ${PDP11_OPT} -o $@ ${LDFLAGS}
350
${BIN}nova${EXE} : ${NOVA} ${SIM}
351
${CC} ${NOVA} ${SIM} ${NOVA_OPT} -o $@ ${LDFLAGS}
355
${BIN}h316${EXE} : ${H316} ${SIM}
356
${CC} ${H316} ${SIM} ${H316_OPT} -o $@ ${LDFLAGS}
360
${BIN}hp2100${EXE} : ${HP2100} ${SIM}
361
${CC} ${HP2100} ${SIM} ${HP2100_OPT} -o $@ ${LDFLAGS}
365
${BIN}i1401${EXE} : ${I1401} ${SIM}
366
${CC} ${I1401} ${SIM} ${I1401_OPT} -o $@ ${LDFLAGS}
370
${BIN}i1620${EXE} : ${I1620} ${SIM}
371
${CC} ${I1620} ${SIM} ${I1620_OPT} -o $@ ${LDFLAGS}
374
${BIN}ibm1130${EXE} : ${IBM1130}
375
${CC} ${IBM1130} ${SIM} ${IBM1130_OPT} -o $@ ${LDFLAGS}
378
${BIN}s3${EXE} : ${S3} ${SIM}
379
${CC} ${S3} ${SIM} ${S3_OPT} -o $@ ${LDFLAGS}
382
${BIN}altair${EXE} : ${ALTAIR} ${SIM}
383
${CC} ${ALTAIR} ${SIM} ${ALTAIR_OPT} -o $@ ${LDFLAGS}
386
${BIN}altairz80${EXE} : ${ALTAIRZ80} ${SIM}
387
${CC} ${ALTAIRZ80} ${SIM} ${ALTAIRZ80_OPT} -o $@ ${LDFLAGS}
390
${BIN}gri909${EXE} : ${GRI} ${SIM}
391
${CC} ${GRI} ${SIM} ${GRI_OPT} -o $@ ${LDFLAGS}
394
${BIN}lgp${EXE} : ${LGP} ${SIM}
395
${CC} ${LGP} ${SIM} ${LGP_OPT} -o $@ ${LDFLAGS}
398
${BIN}id16${EXE} : ${ID16} ${SIM}
399
${CC} ${ID16} ${SIM} ${ID16_OPT} -o $@ ${LDFLAGS}
402
${BIN}id32${EXE} : ${ID32} ${SIM}
403
${CC} ${ID32} ${SIM} ${ID32_OPT} -o $@ ${LDFLAGS}
406
${BIN}sds${EXE} : ${SDS} ${SIM}
407
${CC} ${SDS} ${SIM} ${SDS_OPT} -o $@ ${LDFLAGS}
410
${BIN}macro1 : ${MACRO1}
411
${CC} ${MACRO1} -o $@
413
${BIN}macro7 : ${MACRO7}
414
${CC} ${MACRO7} -o $@
416
${BIN}macro8x : ${MACRO8X}
417
${CC} ${MACRO8X} -o $@
419
${BIN}dtos8cvt : ${DTOS8CVT}
420
${CC} ${DTOS8CVT} -o $@
422
${BIN}gt7cvt : ${GT7CVT}
423
${CC} ${GT7CVT} -o $@
425
${BIN}mtcvtv23 : ${MTCVTV23}
426
${CC} ${MTCVTV23} -o $@
428
${BIN}mtcvtfix : ${MTCVTFIX}
429
${CC} ${MTCVTFIX} -o $@
431
${BIN}mtdump : ${MTDUMP}
432
${CC} ${MTDUMP} -o $@
434
${BIN}mmdir : ${MMDIR}
437
${BIN}littcvt : ${LITTCVT}
438
${CC} ${LITTCVT} -o $@
440
${BIN}mtcvtodd : ${MTCVTODD}
441
${CC} ${MTCVTODD} -o $@
443
${BIN}sfmtcvt : ${SFMTCVT}
444
${CC} ${SFMTCVT} -o $@
446
${BIN}config11 : ${CONFIG11}
447
${CC} ${CONFIG11} -o $@
449
${BIN}sdsdump : ${SDSDUMP}
450
${CC} ${SDSDUMP} -o $@
452
${BIN}tp512cvt : ${TP512CVT}
453
${CC} ${TP512CVT} -o $@