First Commit of my working state
[simh.git] / Makefile.org
1 #
2 # CC Command
3 #
4 ifneq ($(WIN32),)
5
6 #Win32 Environments
7 LDFLAGS = -lm -lwsock32 -lwinmm
8 CFLAGS=-std=c99 -U__STRICT_ANSI__ -O2 -I. -Wall
9 CC = gcc
10 EXEC_SUFFIX = .exe
11 ifneq ($(USE_NETWORK),)
12 CFLAGS+=-DUSE_NETWORK
13 LDFLAGS+=-lwpcap -lpacket
14 endif
15
16 else
17 #Unix Environments
18
19 ifneq (,$(findstring solaris,$(OSTYPE)))
20 #Solaris
21 CFLAGS=-D_GNU_SOURCE
22 LDFLAGS=-lm -lsocket -lnsl -lrt -lpthread
23 CC=gcc
24 else
25 ifneq (,$(findstring darwin,$(OSTYPE)))
26 #Darwin
27 CFLAGS = -D_GNU_SOURCE
28 LDFLAGS=
29 CC=gcc
30 else
31 CFLAGS =-D_GNU_SOURCE
32 LDFLAGS=-lrt -lm
33 CC=gcc
34 endif
35 endif
36
37 CC = gcc -std=c99 -U__STRICT_ANSI__ -g $(OS_CCDEFS) -I .
38 ifeq ($(USE_NETWORK),)
39 else
40 NETWORK_OPT = -DUSE_NETWORK -isystem /usr/local/include /usr/local/lib/libpcap.a
41 endif
42
43 endif
44
45 #
46 # Common Libraries
47 #
48 BIN = BIN/
49 SIM = scp.c sim_console.c sim_fio.c sim_timer.c sim_sock.c \
50 sim_tmxr.c sim_ether.c sim_tape.c
51
52
53 #
54 # Emulator source files and compile time options
55 #
56 PDP1D = PDP1
57 PDP1 = ${PDP1D}/pdp1_lp.c ${PDP1D}/pdp1_cpu.c ${PDP1D}/pdp1_stddev.c \
58 ${PDP1D}/pdp1_sys.c ${PDP1D}/pdp1_dt.c ${PDP1D}/pdp1_drm.c \
59 ${PDP1D}/pdp1_clk.c ${PDP1D}/pdp1_dcs.c
60 PDP1_OPT = -I ${PDP1D}
61
62
63 NOVAD = NOVA
64 NOVA = ${NOVAD}/nova_sys.c ${NOVAD}/nova_cpu.c ${NOVAD}/nova_dkp.c \
65 ${NOVAD}/nova_dsk.c ${NOVAD}/nova_lp.c ${NOVAD}/nova_mta.c \
66 ${NOVAD}/nova_plt.c ${NOVAD}/nova_pt.c ${NOVAD}/nova_clk.c \
67 ${NOVAD}/nova_tt.c ${NOVAD}/nova_tt1.c ${NOVAD}/nova_qty.c
68 NOVA_OPT = -I ${NOVAD}
69
70
71 ECLIPSE = ${NOVAD}/eclipse_cpu.c ${NOVAD}/eclipse_tt.c ${NOVAD}/nova_sys.c \
72 ${NOVAD}/nova_dkp.c ${NOVAD}/nova_dsk.c ${NOVAD}/nova_lp.c \
73 ${NOVAD}/nova_mta.c ${NOVAD}/nova_plt.c ${NOVAD}/nova_pt.c \
74 ${NOVAD}/nova_clk.c ${NOVAD}/nova_tt1.c ${NOVAD}/nova_qty.c
75 ECLIPSE_OPT = -I ${NOVAD} -DECLIPSE -DUSE_INT64
76
77
78 PDP18BD = PDP18B
79 PDP18B = ${PDP18BD}/pdp18b_dt.c ${PDP18BD}/pdp18b_drm.c ${PDP18BD}/pdp18b_cpu.c \
80 ${PDP18BD}/pdp18b_lp.c ${PDP18BD}/pdp18b_mt.c ${PDP18BD}/pdp18b_rf.c \
81 ${PDP18BD}/pdp18b_rp.c ${PDP18BD}/pdp18b_stddev.c ${PDP18BD}/pdp18b_sys.c \
82 ${PDP18BD}/pdp18b_rb.c ${PDP18BD}/pdp18b_tt1.c ${PDP18BD}/pdp18b_fpp.c
83 PDP4_OPT = -DPDP4 -I ${PDP18BD}
84 PDP7_OPT = -DPDP7 -I ${PDP18BD}
85 PDP9_OPT = -DPDP9 -I ${PDP18BD}
86 PDP15_OPT = -DPDP15 -I ${PDP18BD}
87
88
89 PDP11D = PDP11
90 PDP11 = ${PDP11D}/pdp11_fp.c ${PDP11D}/pdp11_cpu.c ${PDP11D}/pdp11_dz.c \
91 ${PDP11D}/pdp11_cis.c ${PDP11D}/pdp11_lp.c ${PDP11D}/pdp11_rk.c \
92 ${PDP11D}/pdp11_rl.c ${PDP11D}/pdp11_rp.c ${PDP11D}/pdp11_rx.c \
93 ${PDP11D}/pdp11_stddev.c ${PDP11D}/pdp11_sys.c ${PDP11D}/pdp11_tc.c \
94 ${PDP11D}/pdp11_tm.c ${PDP11D}/pdp11_ts.c ${PDP11D}/pdp11_io.c \
95 ${PDP11D}/pdp11_rq.c ${PDP11D}/pdp11_tq.c ${PDP11D}/pdp11_pclk.c \
96 ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_pt.c ${PDP11D}/pdp11_hk.c \
97 ${PDP11D}/pdp11_xq.c ${PDP11D}/pdp11_xu.c ${PDP11D}/pdp11_vh.c \
98 ${PDP11D}/pdp11_rh.c ${PDP11D}/pdp11_tu.c ${PDP11D}/pdp11_cpumod.c \
99 ${PDP11D}/pdp11_cr.c ${PDP11D}/pdp11_rf.c ${PDP11D}/pdp11_dl.c \
100 ${PDP11D}/pdp11_ta.c ${PDP11D}/pdp11_rc.c ${PDP11D}/pdp11_kg.c \
101 ${PDP11D}/pdp11_ke.c ${PDP11D}/pdp11_dc.c
102 PDP11_OPT = -DVM_PDP11 -I ${PDP11D} ${NETWORK_OPT}
103
104
105 VAXD = VAX
106 VAX = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c ${VAXD}/vax_io.c \
107 ${VAXD}/vax_cis.c ${VAXD}/vax_octa.c ${VAXD}/vax_cmode.c \
108 ${VAXD}/vax_mmu.c ${VAXD}/vax_stddev.c ${VAXD}/vax_sysdev.c \
109 ${VAXD}/vax_sys.c ${VAXD}/vax_syscm.c ${VAXD}/vax_syslist.c \
110 ${PDP11D}/pdp11_rl.c ${PDP11D}/pdp11_rq.c ${PDP11D}/pdp11_ts.c \
111 ${PDP11D}/pdp11_dz.c ${PDP11D}/pdp11_lp.c ${PDP11D}/pdp11_tq.c \
112 ${PDP11D}/pdp11_xq.c ${PDP11D}/pdp11_ry.c \
113 ${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_cr.c
114 VAX_OPT = -DVM_VAX -DUSE_INT64 -DUSE_ADDR64 -I ${VAXD} -I ${PDP11D} ${NETWORK_OPT}
115
116
117 VAX780 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \
118 ${VAXD}/vax_cis.c ${VAXD}/vax_octa.c ${VAXD}/vax_cmode.c \
119 ${VAXD}/vax_mmu.c ${VAXD}/vax_sys.c ${VAXD}/vax_syscm.c \
120 ${VAXD}/vax780_stddev.c ${VAXD}/vax780_sbi.c \
121 ${VAXD}/vax780_mem.c ${VAXD}/vax780_uba.c ${VAXD}/vax780_mba.c \
122 ${VAXD}/vax780_fload.c ${VAXD}/vax780_syslist.c \
123 ${PDP11D}/pdp11_rl.c ${PDP11D}/pdp11_rq.c ${PDP11D}/pdp11_ts.c \
124 ${PDP11D}/pdp11_dz.c ${PDP11D}/pdp11_lp.c ${PDP11D}/pdp11_tq.c \
125 ${PDP11D}/pdp11_xu.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_cr.c \
126 ${PDP11D}/pdp11_rp.c ${PDP11D}/pdp11_tu.c ${PDP11D}/pdp11_hk.c
127 VAX780_OPT = -DVM_VAX -DVAX_780 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT}
128
129
130 PDP10D = PDP10
131 PDP10 = ${PDP10D}/pdp10_fe.c ${PDP11D}/pdp11_dz.c ${PDP10D}/pdp10_cpu.c \
132 ${PDP10D}/pdp10_ksio.c ${PDP10D}/pdp10_lp20.c ${PDP10D}/pdp10_mdfp.c \
133 ${PDP10D}/pdp10_pag.c ${PDP10D}/pdp10_rp.c ${PDP10D}/pdp10_sys.c \
134 ${PDP10D}/pdp10_tim.c ${PDP10D}/pdp10_tu.c ${PDP10D}/pdp10_xtnd.c \
135 ${PDP11D}/pdp11_pt.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_xu.c \
136 ${PDP11D}/pdp11_cr.c
137 PDP10_OPT = -DVM_PDP10 -DUSE_INT64 -I ${PDP10D} -I ${PDP11D} ${NETWORK_OPT}
138
139
140
141 PDP8D = PDP8
142 PDP8 = ${PDP8D}/pdp8_cpu.c ${PDP8D}/pdp8_clk.c ${PDP8D}/pdp8_df.c \
143 ${PDP8D}/pdp8_dt.c ${PDP8D}/pdp8_lp.c ${PDP8D}/pdp8_mt.c \
144 ${PDP8D}/pdp8_pt.c ${PDP8D}/pdp8_rf.c ${PDP8D}/pdp8_rk.c \
145 ${PDP8D}/pdp8_rx.c ${PDP8D}/pdp8_sys.c ${PDP8D}/pdp8_tt.c \
146 ${PDP8D}/pdp8_ttx.c ${PDP8D}/pdp8_rl.c ${PDP8D}/pdp8_tsc.c \
147 ${PDP8D}/pdp8_td.c ${PDP8D}/pdp8_ct.c ${PDP8D}/pdp8_fpp.c
148 PDP8_OPT = -I ${PDP8D}
149
150
151 H316D = H316
152 H316 = ${H316D}/h316_stddev.c ${H316D}/h316_lp.c ${H316D}/h316_cpu.c \
153 ${H316D}/h316_sys.c ${H316D}/h316_mt.c ${H316D}/h316_fhd.c \
154 ${H316D}/h316_dp.c
155 H316_OPT = -I ${H316D}
156
157
158 HP2100D = HP2100
159 HP2100 = ${HP2100D}/hp2100_stddev.c ${HP2100D}/hp2100_dp.c ${HP2100D}/hp2100_dq.c \
160 ${HP2100D}/hp2100_dr.c ${HP2100D}/hp2100_lps.c ${HP2100D}/hp2100_ms.c \
161 ${HP2100D}/hp2100_mt.c ${HP2100D}/hp2100_mux.c ${HP2100D}/hp2100_cpu.c \
162 ${HP2100D}/hp2100_fp.c ${HP2100D}/hp2100_sys.c ${HP2100D}/hp2100_lpt.c \
163 ${HP2100D}/hp2100_ipl.c ${HP2100D}/hp2100_ds.c ${HP2100D}/hp2100_cpu0.c \
164 ${HP2100D}/hp2100_cpu1.c ${HP2100D}/hp2100_cpu2.c ${HP2100D}/hp2100_cpu3.c \
165 ${HP2100D}/hp2100_cpu4.c ${HP2100D}/hp2100_cpu5.c ${HP2100D}/hp2100_cpu6.c \
166 ${HP2100D}/hp2100_cpu7.c ${HP2100D}/hp2100_fp1.c ${HP2100D}/hp2100_baci.c
167 HP2100_OPT = -DHAVE_INT64 -I ${HP2100D}
168
169
170 I1401D = I1401
171 I1401 = ${I1401D}/i1401_lp.c ${I1401D}/i1401_cpu.c ${I1401D}/i1401_iq.c \
172 ${I1401D}/i1401_cd.c ${I1401D}/i1401_mt.c ${I1401D}/i1401_dp.c \
173 ${I1401D}/i1401_sys.c
174 I1401_OPT = -I ${I1401D}
175
176
177 I1620D = I1620
178 I1620 = ${I1620D}/i1620_cd.c ${I1620D}/i1620_dp.c ${I1620D}/i1620_pt.c \
179 ${I1620D}/i1620_tty.c ${I1620D}/i1620_cpu.c ${I1620D}/i1620_lp.c \
180 ${I1620D}/i1620_fp.c ${I1620D}/i1620_sys.c
181 I1620_OPT = -I ${I1620D}
182
183
184 I7094D = I7094
185 I7094 = ${I7094D}/i7094_cpu.c ${I7094D}/i7094_cpu1.c ${I7094D}/i7094_io.c \
186 ${I7094D}/i7094_cd.c ${I7094D}/i7094_clk.c ${I7094D}/i7094_com.c \
187 ${I7094D}/i7094_drm.c ${I7094D}/i7094_dsk.c ${I7094D}/i7094_sys.c \
188 ${I7094D}/i7094_lp.c ${I7094D}/i7094_mt.c ${I7094D}/i7094_binloader.c
189 I7094_OPT = -DUSE_INT64 -I ${I7094D}
190
191
192 IBM1130D = Ibm1130
193 IBM1130 = ${IBM1130D}/ibm1130_cpu.c ${IBM1130D}/ibm1130_cr.c \
194 ${IBM1130D}/ibm1130_disk.c ${IBM1130D}/ibm1130_stddev.c \
195 ${IBM1130D}/ibm1130_sys.c ${IBM1130D}/ibm1130_gdu.c \
196 ${IBM1130D}/ibm1130_gui.c ${IBM1130D}/ibm1130_prt.c \
197 ${IBM1130D}/ibm1130_fmt.c ${IBM1130D}/ibm1130_ptrp.c \
198 ${IBM1130D}/ibm1130_plot.c ${IBM1130D}/ibm1130_sca.c \
199 ${IBM1130D}/ibm1130_t2741.c
200 IBM1130_OPT = -I ${IBM1130D}
201
202
203 ID16D = Interdata
204 ID16 = ${ID16D}/id16_cpu.c ${ID16D}/id16_sys.c ${ID16D}/id_dp.c \
205 ${ID16D}/id_fd.c ${ID16D}/id_fp.c ${ID16D}/id_idc.c ${ID16D}/id_io.c \
206 ${ID16D}/id_lp.c ${ID16D}/id_mt.c ${ID16D}/id_pas.c ${ID16D}/id_pt.c \
207 ${ID16D}/id_tt.c ${ID16D}/id_uvc.c ${ID16D}/id16_dboot.c ${ID16D}/id_ttp.c
208 ID16_OPT = -I ${ID16D}
209
210
211 ID32D = Interdata
212 ID32 = ${ID32D}/id32_cpu.c ${ID32D}/id32_sys.c ${ID32D}/id_dp.c \
213 ${ID32D}/id_fd.c ${ID32D}/id_fp.c ${ID32D}/id_idc.c ${ID32D}/id_io.c \
214 ${ID32D}/id_lp.c ${ID32D}/id_mt.c ${ID32D}/id_pas.c ${ID32D}/id_pt.c \
215 ${ID32D}/id_tt.c ${ID32D}/id_uvc.c ${ID32D}/id32_dboot.c ${ID32D}/id_ttp.c
216 ID32_OPT = -I ${ID32D}
217
218
219 S3D = S3
220 S3 = ${S3D}/s3_cd.c ${S3D}/s3_cpu.c ${S3D}/s3_disk.c ${S3D}/s3_lp.c \
221 ${S3D}/s3_pkb.c ${S3D}/s3_sys.c
222 S3_OPT = -I ${S3D}
223
224
225 ALTAIRD = ALTAIR
226 ALTAIR = ${ALTAIRD}/altair_sio.c ${ALTAIRD}/altair_cpu.c ${ALTAIRD}/altair_dsk.c \
227 ${ALTAIRD}/altair_sys.c
228 ALTAIR_OPT = -I ${ALTAIRD}
229
230
231 ALTAIRZ80D = AltairZ80
232 ALTAIRZ80 = ${ALTAIRZ80D}/altairz80_cpu.c ${ALTAIRZ80D}/altairz80_cpu_nommu.c \
233 ${ALTAIRZ80D}/altairz80_dsk.c ${ALTAIRZ80D}/disasm.c \
234 ${ALTAIRZ80D}/altairz80_sio.c ${ALTAIRZ80D}/altairz80_sys.c \
235 ${ALTAIRZ80D}/altairz80_hdsk.c ${ALTAIRZ80D}/altairz80_net.c \
236 ${ALTAIRZ80D}/flashwriter2.c ${ALTAIRZ80D}/i86_decode.c \
237 ${ALTAIRZ80D}/i86_ops.c ${ALTAIRZ80D}/i86_prim_ops.c \
238 ${ALTAIRZ80D}/i8272.c ${ALTAIRZ80D}/insnsa.c ${ALTAIRZ80D}/insnsd.c \
239 ${ALTAIRZ80D}/mfdc.c ${ALTAIRZ80D}/n8vem.c ${ALTAIRZ80D}/vfdhd.c \
240 ${ALTAIRZ80D}/s100_disk1a.c ${ALTAIRZ80D}/s100_disk2.c \
241 ${ALTAIRZ80D}/s100_fif.c ${ALTAIRZ80D}/s100_mdriveh.c \
242 ${ALTAIRZ80D}/s100_mdsad.c ${ALTAIRZ80D}/s100_selchan.c \
243 ${ALTAIRZ80D}/s100_ss1.c ${ALTAIRZ80D}/s100_64fdc.c \
244 ${ALTAIRZ80D}/s100_scp300f.c ${ALTAIRZ80D}/sim_imd.c \
245 ${ALTAIRZ80D}/wd179x.c
246 ALTAIRZ80_OPT = -I ${ALTAIRZ80D}
247
248
249 GRID = GRI
250 GRI = ${GRID}/gri_cpu.c ${GRID}/gri_stddev.c ${GRID}/gri_sys.c
251 GRI_OPT = -I ${GRID}
252
253
254 LGPD = LGP
255 LGP = ${LGPD}/lgp_cpu.c ${LGPD}/lgp_stddev.c ${LGPD}/lgp_sys.c
256 LGP_OPT = -I ${LGPD}
257
258
259 SDSD = SDS
260 SDS = ${SDSD}/sds_cpu.c ${SDSD}/sds_drm.c ${SDSD}/sds_dsk.c ${SDSD}/sds_io.c \
261 ${SDSD}/sds_lp.c ${SDSD}/sds_mt.c ${SDSD}/sds_mux.c ${SDSD}/sds_rad.c \
262 ${SDSD}/sds_stddev.c ${SDSD}/sds_sys.c
263 SDS_OPT = -I ${SDSD}
264
265 #
266 # Build everything
267 #
268 ALL = pdp1 pdp4 pdp7 pdp8 pdp9 pdp15 pdp11 pdp10 \
269 vax vax780 nova eclipse hp2100 i1401 i1620 s3 \
270 altair altairz80 gri i1620 i7094 ibm1130 id16 \
271 id32 sds lgp h316
272
273 all : ${ALL}
274
275 clean :
276 ifeq ($(WIN32),)
277 ${RM} ${BIN}*
278 else
279 if exist BIN\*.exe del /q BIN\*.exe
280 endif
281
282 #
283 # Individual builds
284 #
285 pdp1 : ${BIN}pdp1${EXE}
286
287 ${BIN}pdp1${EXE} : ${PDP1} ${SIM}
288 ${CC} ${PDP1} ${SIM} ${PDP1_OPT} -o $@ ${LDFLAGS}
289
290 pdp4 : ${BIN}pdp4${EXE}
291
292 ${BIN}pdp4${EXE} : ${PDP18B} ${SIM}
293 ${CC} ${PDP18B} ${SIM} ${PDP4_OPT} -o $@ ${LDFLAGS}
294
295 pdp7 : ${BIN}pdp7${EXE}
296
297 ${BIN}pdp7${EXE} : ${PDP18B} ${SIM}
298 ${CC} ${PDP18B} ${SIM} ${PDP7_OPT} -o $@ ${LDFLAGS}
299
300 pdp8 : ${BIN}pdp8${EXE}
301
302 ${BIN}pdp8${EXE} : ${PDP8} ${SIM}
303 ${CC} ${PDP8} ${SIM} ${PDP8_OPT} -o $@ ${LDFLAGS}
304
305 pdp9 : ${BIN}pdp9${EXE}
306
307 ${BIN}pdp9${EXE} : ${PDP18B} ${SIM}
308 ${CC} ${PDP18B} ${SIM} ${PDP9_OPT} -o $@ ${LDFLAGS}
309
310 pdp15 : ${BIN}pdp15${EXE}
311
312 ${BIN}pdp15${EXE} : ${PDP18B} ${SIM}
313 ${CC} ${PDP18B} ${SIM} ${PDP15_OPT} -o $@ ${LDFLAGS}
314
315 pdp10 : ${BIN}pdp10${EXE}
316
317 ${BIN}pdp10${EXE} : ${PDP10} ${SIM}
318 ${CC} ${PDP10} ${SIM} ${PDP10_OPT} -o $@ ${LDFLAGS}
319
320 pdp11 : ${BIN}pdp11${EXE}
321
322 ${BIN}pdp11${EXE} : ${PDP11} ${SIM}
323 ${CC} ${PDP11} ${SIM} ${PDP11_OPT} -o $@ ${LDFLAGS}
324
325 vax : ${BIN}vax${EXE}
326
327 ${BIN}vax${EXE} : ${VAX} ${SIM}
328 ${CC} ${VAX} ${SIM} ${VAX_OPT} -o $@ ${LDFLAGS}
329
330 vax780 : ${BIN}vax780${EXE}
331
332 ${BIN}vax780${EXE} : ${VAX780} ${SIM}
333 ${CC} ${VAX780} ${SIM} ${VAX780_OPT} -o $@ ${LDFLAGS}
334
335 nova : ${BIN}nova${EXE}
336
337 ${BIN}nova${EXE} : ${NOVA} ${SIM}
338 ${CC} ${NOVA} ${SIM} ${NOVA_OPT} -o $@ ${LDFLAGS}
339
340 eclipse : ${BIN}eclipse${EXE}
341
342 ${BIN}eclipse${EXE} : ${ECLIPSE} ${SIM}
343 ${CC} ${ECLIPSE} ${SIM} ${ECLIPSE_OPT} -o $@ ${LDFLAGS}
344
345 h316 : ${BIN}h316${EXE}
346
347 ${BIN}h316${EXE} : ${H316} ${SIM}
348 ${CC} ${H316} ${SIM} ${H316_OPT} -o $@ ${LDFLAGS}
349
350 hp2100 : ${BIN}hp2100${EXE}
351
352 ${BIN}hp2100${EXE} : ${HP2100} ${SIM}
353 ${CC} ${HP2100} ${SIM} ${HP2100_OPT} -o $@ ${LDFLAGS}
354
355 i1401 : ${BIN}i1401${EXE}
356
357 ${BIN}i1401${EXE} : ${I1401} ${SIM}
358 ${CC} ${I1401} ${SIM} ${I1401_OPT} -o $@ ${LDFLAGS}
359
360 i1620 : ${BIN}i1620${EXE}
361
362 ${BIN}i1620${EXE} : ${I1620} ${SIM}
363 ${CC} ${I1620} ${SIM} ${I1620_OPT} -o $@ ${LDFLAGS}
364
365 i7094 : ${BIN}i7094${EXE}
366
367 ${BIN}i7094${EXE} : ${I7094} ${SIM}
368 ${CC} ${I7094} ${SIM} ${I7094_OPT} -o $@ ${LDFLAGS}
369
370 ibm1130 : ${BIN}ibm1130${EXE}
371
372 ${BIN}ibm1130${EXE} : ${IBM1130}
373 ${CC} ${IBM1130} ${SIM} ${IBM1130_OPT} -o $@ ${LDFLAGS}
374
375 s3 : ${BIN}s3${EXE}
376
377 ${BIN}s3${EXE} : ${S3} ${SIM}
378 ${CC} ${S3} ${SIM} ${S3_OPT} -o $@ ${LDFLAGS}
379
380 altair : ${BIN}altair${EXE}
381
382 ${BIN}altair${EXE} : ${ALTAIR} ${SIM}
383 ${CC} ${ALTAIR} ${SIM} ${ALTAIR_OPT} -o $@ ${LDFLAGS}
384
385 altairz80 : ${BIN}altairz80${EXE}
386
387 ${BIN}altairz80${EXE} : ${ALTAIRZ80} ${SIM}
388 ${CC} ${ALTAIRZ80} ${SIM} ${ALTAIRZ80_OPT} -o $@ ${LDFLAGS}
389
390 gri : ${BIN}gri${EXE}
391
392 ${BIN}gri${EXE} : ${GRI} ${SIM}
393 ${CC} ${GRI} ${SIM} ${GRI_OPT} -o $@ ${LDFLAGS}
394
395 lgp : ${BIN}lgp${EXE}
396
397 ${BIN}lgp${EXE} : ${LGP} ${SIM}
398 ${CC} ${LGP} ${SIM} ${LGP_OPT} -o $@ ${LDFLAGS}
399
400 id16 : ${BIN}id16${EXE}
401
402 ${BIN}id16${EXE} : ${ID16} ${SIM}
403 ${CC} ${ID16} ${SIM} ${ID16_OPT} -o $@ ${LDFLAGS}
404
405 id32 : ${BIN}id32${EXE}
406
407 ${BIN}id32${EXE} : ${ID32} ${SIM}
408 ${CC} ${ID32} ${SIM} ${ID32_OPT} -o $@ ${LDFLAGS}
409
410 sds : ${BIN}sds${EXE}
411
412 ${BIN}sds${EXE} : ${SDS} ${SIM}
413 ${CC} ${SDS} ${SIM} ${SDS_OPT} -o $@ ${LDFLAGS}