diff options
Diffstat (limited to 'src/emu/cpu/cpu.mak')
-rw-r--r-- | src/emu/cpu/cpu.mak | 1689 |
1 files changed, 1689 insertions, 0 deletions
diff --git a/src/emu/cpu/cpu.mak b/src/emu/cpu/cpu.mak new file mode 100644 index 00000000000..06c86237c95 --- /dev/null +++ b/src/emu/cpu/cpu.mak @@ -0,0 +1,1689 @@ +########################################################################### +# +# cpu.mak +# +# Rules for building CPU cores +# +# Copyright (c) 1996-2007, Nicola Salmoria and the MAME Team. +# Visit http://mamedev.org for licensing and usage restrictions. +# +########################################################################### + + +CPUSRC = $(EMUSRC)/cpu +CPUOBJ = $(EMUOBJ)/cpu + + +#------------------------------------------------- +# Dynamic recompiler objects +#------------------------------------------------- + +ifdef PTR64 + +DRCOBJ = $(CPUOBJ)/x64drc.o $(CPUOBJ)/x86log.o $(CPUOBJ)/drcfe.o + +DRCDEPS = $(CPUSRC)/x86emit.h \ + $(CPUSRC)/x64drc.c \ + $(CPUSRC)/x64drc.h \ + +$(DRCOBJ): $(DRCDEPS) + +else + +DRCOBJ = $(CPUOBJ)/x86drc.o $(CPUOBJ)/x86log.o $(CPUOBJ)/drcfe.o + +DRCDEPS = $(CPUSRC)/x86emit.h \ + $(CPUSRC)/x86drc.c \ + $(CPUSRC)/x86drc.h \ + +$(DRCOBJ): $(DRCDEPS) + +endif + + +#------------------------------------------------- +# Acorn ARM series +#------------------------------------------------- + +CPUDEFS += -DHAS_ARM=$(if $(filter ARM,$(CPUS)),1,0) +CPUDEFS += -DHAS_ARM7=$(if $(filter ARM7,$(CPUS)),1,0) + +ifneq ($(filter ARM,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/arm +CPUOBJS += $(CPUOBJ)/arm/arm.o +DBGOBJS += $(CPUOBJ)/arm/armdasm.o +endif + +ifneq ($(filter ARM7,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/arm7 +CPUOBJS += $(CPUOBJ)/arm7/arm7.o +DBGOBJS += $(CPUOBJ)/arm7/arm7dasm.o +endif + +$(CPUOBJ)/arm/arm.o: $(CPUSRC)/arm/arm.c \ + $(CPUSRC)/arm/arm.h + +$(CPUOBJ)/arm7/arm7.o: $(CPUSRC)/arm7/arm7.c \ + $(CPUSRC)/arm7/arm7.h \ + $(CPUSRC)/arm7/arm7exec.c \ + $(CPUSRC)/arm7/arm7core.c + + + +#------------------------------------------------- +# Advanced Digital Chips SE3208 +#------------------------------------------------- + +CPUDEFS += -DHAS_SE3208=$(if $(filter SE3208,$(CPUS)),1,0) + +ifneq ($(filter SE3208,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/se3208 +CPUOBJS += $(CPUOBJ)/se3208/se3208.o +DBGOBJS += $(CPUOBJ)/se3208/se3208dis.o +endif + +$(CPUOBJ)/se3208/se3208.o: $(CPUSRC)/se3208/se3208.c \ + $(CPUSRC)/se3208/se3208.h + + + +#------------------------------------------------- +# Alpha 8201 +#------------------------------------------------- + +CPUDEFS += -DHAS_ALPHA8201=$(if $(filter ALPHA8201,$(CPUS)),1,0) +CPUDEFS += -DHAS_ALPHA8301=$(if $(filter ALPHA8301,$(CPUS)),1,0) + +ifneq ($(filter ALPHA8201 ALPHA8301,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/alph8201 +CPUOBJS += $(CPUOBJ)/alph8201/alph8201.o +DBGOBJS += $(CPUOBJ)/alph8201/8201dasm.o +endif + +$(CPUOBJ)/alph8201/alph8201.o: $(CPUSRC)/alph8201/alph8201.c \ + $(CPUSRC)/alph8201/alph8201.h + + + +#------------------------------------------------- +# Analog Devices ADSP21xx series +#------------------------------------------------- + +CPUDEFS += -DHAS_ADSP2100=$(if $(filter ADSP2100,$(CPUS)),1,0) +CPUDEFS += -DHAS_ADSP2101=$(if $(filter ADSP2101,$(CPUS)),1,0) +CPUDEFS += -DHAS_ADSP2104=$(if $(filter ADSP2104,$(CPUS)),1,0) +CPUDEFS += -DHAS_ADSP2105=$(if $(filter ADSP2105,$(CPUS)),1,0) +CPUDEFS += -DHAS_ADSP2115=$(if $(filter ADSP2115,$(CPUS)),1,0) +CPUDEFS += -DHAS_ADSP2181=$(if $(filter ADSP2181,$(CPUS)),1,0) + +ifneq ($(filter ADSP2100 ADSP2101 ADSP2104 ADSP2105 ADSP2115 ADSP2181,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/adsp2100 +CPUOBJS += $(CPUOBJ)/adsp2100/adsp2100.o +DBGOBJS += $(CPUOBJ)/adsp2100/2100dasm.o +endif + +$(CPUOBJ)/adsp2100/adsp2100.o: $(CPUSRC)/adsp2100/adsp2100.c \ + $(CPUSRC)/adsp2100/adsp2100.h \ + $(CPUSRC)/adsp2100/2100ops.c + + + +#------------------------------------------------- +# Analog Devices "Sharc" ADSP21062 +#------------------------------------------------- + +CPUDEFS += -DHAS_ADSP21062=$(if $(filter ADSP21062,$(CPUS)),1,0) + +ifneq ($(filter ADSP21062,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/sharc +CPUOBJS += $(CPUOBJ)/sharc/sharc.o +DBGOBJS += $(CPUOBJ)/sharc/sharcdsm.o +endif + +$(CPUOBJ)/sharc/sharc.o: $(CPUSRC)/sharc/sharc.c \ + $(CPUSRC)/sharc/sharc.h \ + $(CPUSRC)/sharc/sharcops.c \ + $(CPUSRC)/sharc/sharcops.h \ + $(CPUSRC)/sharc/sharcdsm.c \ + $(CPUSRC)/sharc/sharcdsm.h \ + $(CPUSRC)/sharc/compute.c \ + $(CPUSRC)/sharc/sharcdma.c \ + $(CPUSRC)/sharc/sharcmem.c + + + +#------------------------------------------------- +# APEXC +#------------------------------------------------- + +CPUDEFS += -DHAS_APEXC=$(if $(filter APEXC,$(CPUS)),1,0) + +ifneq ($(filter APEXC,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/apexc +CPUOBJS += $(CPUOBJ)/apexc/apexc.o +DBGOBJS += $(CPUOBJ)/apexc/apexcdsm.o +endif + +$(CPUOBJ)/apexc/apexc.o: $(CPUSRC)/apexc/apexc.c \ + $(CPUSRC)/apexc/apexc.h + + + +#------------------------------------------------- +# AT&T DSP32C +#------------------------------------------------- + +CPUDEFS += -DHAS_DSP32C=$(if $(filter DSP32C,$(CPUS)),1,0) + +ifneq ($(filter DSP32C,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/dsp32 +CPUOBJS += $(CPUOBJ)/dsp32/dsp32.o +DBGOBJS += $(CPUOBJ)/dsp32/dsp32dis.o +endif + +$(CPUOBJ)/dsp32/dsp32.o: $(CPUSRC)/dsp32/dsp32.c \ + $(CPUSRC)/dsp32/dsp32.h + + + +#------------------------------------------------- +# Atari custom RISC processor +#------------------------------------------------- + +CPUDEFS += -DHAS_ASAP=$(if $(filter ASAP,$(CPUS)),1,0) + +ifneq ($(filter ASAP,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/asap +CPUOBJS += $(CPUOBJ)/asap/asap.o +DBGOBJS += $(CPUOBJ)/asap/asapdasm.o +endif + +$(CPUOBJ)/asap/asap.o: $(CPUSRC)/asap/asap.c \ + $(CPUSRC)/asap/asap.h + + + +#------------------------------------------------- +# Atari Jaguar custom DSPs +#------------------------------------------------- + +CPUDEFS += -DHAS_JAGUAR=$(if $(filter JAGUAR,$(CPUS)),1,0) + +ifneq ($(filter JAGUAR,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/jaguar +CPUOBJS += $(CPUOBJ)/jaguar/jaguar.o +DBGOBJS += $(CPUOBJ)/jaguar/jagdasm.o +endif + +$(CPUOBJ)/jaguar/jaguar.o: $(CPUSRC)/jaguar/jaguar.c \ + $(CPUSRC)/jaguar/jaguar.h + + + +#------------------------------------------------- +# RCA CDP1802 +#------------------------------------------------- + +CPUDEFS += -DHAS_CDP1802=$(if $(filter CDP1802,$(CPUS)),1,0) + +ifneq ($(filter CDP1802,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/cdp1802 +CPUOBJS += $(CPUOBJ)/cdp1802/cdp1802.o +DBGOBJS += $(CPUOBJ)/cdp1802/1802dasm.o +endif + +$(CPUOBJ)/cdp1802/cdp1802.o: $(CPUSRC)/cdp1802/cdp1802.c \ + $(CPUSRC)/cdp1802/cdp1802.h + + + +#------------------------------------------------- +# National Semiconductor COP4xx +#------------------------------------------------- + +CPUDEFS += -DHAS_COP410=$(if $(filter COP410,$(CPUS)),1,0) +CPUDEFS += -DHAS_COP411=$(if $(filter COP411,$(CPUS)),1,0) +CPUDEFS += -DHAS_COP420=$(if $(filter COP420,$(CPUS)),1,0) + +ifneq ($(filter COP410 COP411,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/cop400 +CPUOBJS += $(CPUOBJ)/cop400/cop410.o +DBGOBJS += $(CPUOBJ)/cop400/cop410ds.o +endif + +ifneq ($(filter COP420,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/cop400 +CPUOBJS += $(CPUOBJ)/cop400/cop420.o +DBGOBJS += $(CPUOBJ)/cop400/cop420ds.o +endif + +$(CPUOBJ)/cop400/cop410.o: $(CPUSRC)/cop400/cop410.c \ + $(CPUSRC)/cop400/cop400.h \ + $(CPUSRC)/cop400/410ops.c + +$(CPUOBJ)/cop400/cop420.o: $(CPUSRC)/cop400/cop420.c \ + $(CPUSRC)/cop400/cop400.h \ + $(CPUSRC)/cop400/410ops.c \ + $(CPUSRC)/cop400/420ops.c + + + +#------------------------------------------------- +# CP1610 +#------------------------------------------------- + +CPUDEFS += -DHAS_CP1610=$(if $(filter CP1610,$(CPUS)),1,0) + +ifneq ($(filter CP1610,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/cp1610 +CPUOBJS += $(CPUOBJ)/cp1610/cp1610.o +DBGOBJS += $(CPUOBJ)/cp1610/1610dasm.o +endif + +$(CPUOBJ)/cp1610/cp1610.o: $(CPUSRC)/cp1610/cp1610.c \ + $(CPUSRC)/cp1610/cp1610.h + + + +#------------------------------------------------- +# Cinematronics vector "CPU" +#------------------------------------------------- + +CPUDEFS += -DHAS_CCPU=$(if $(filter CCPU,$(CPUS)),1,0) + +ifneq ($(filter CCPU,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/ccpu +CPUOBJS += $(CPUOBJ)/ccpu/ccpu.o +DBGOBJS += $(CPUOBJ)/ccpu/ccpudasm.o +endif + +$(CPUOBJ)/ccpu/ccpu.o: $(CPUSRC)/ccpu/ccpu.c \ + $(CPUSRC)/ccpu/ccpu.h + + + +#------------------------------------------------- +# DEC T-11 +#------------------------------------------------- + +CPUDEFS += -DHAS_T11=$(if $(filter T11,$(CPUS)),1,0) + +ifneq ($(filter T11,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/t11 +CPUOBJS += $(CPUOBJ)/t11/t11.o +DBGOBJS += $(CPUOBJ)/t11/t11dasm.o +endif + +$(CPUOBJ)/t11/t11.o: $(CPUSRC)/t11/t11.c \ + $(CPUSRC)/t11/t11.h \ + $(CPUSRC)/t11/t11ops.c \ + $(CPUSRC)/t11/t11table.c + + + +#------------------------------------------------- +# F8 +#------------------------------------------------- + +CPUDEFS += -DHAS_F8=$(if $(filter F8,$(CPUS)),1,0) + +ifneq ($(filter F8,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/f8 +CPUOBJS += $(CPUOBJ)/f8/f8.o +DBGOBJS += $(CPUOBJ)/f8/f8dasm.o +endif + +$(CPUOBJ)/f8/f8.o: $(CPUSRC)/f8/f8.c \ + $(CPUSRC)/f8/f8.h + + + +#------------------------------------------------- +# G65816 +#------------------------------------------------- + +CPUDEFS += -DHAS_G65816=$(if $(filter G65816,$(CPUS)),1,0) + +ifneq ($(filter G65816,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/g65816 +CPUOBJS += \ + $(CPUOBJ)/g65816/g65816.o \ + $(CPUOBJ)/g65816/g65816o0.o \ + $(CPUOBJ)/g65816/g65816o1.o \ + $(CPUOBJ)/g65816/g65816o2.o \ + $(CPUOBJ)/g65816/g65816o3.o \ + $(CPUOBJ)/g65816/g65816o4.o +DBGOBJS += $(CPUOBJ)/g65816/g65816ds.o +endif + +G65816DEPS = \ + $(CPUSRC)/g65816/g65816.h \ + $(CPUSRC)/g65816/g65816cm.h \ + $(CPUSRC)/g65816/g65816op.h + +$(CPUOBJ)/g65816/g65816.o: $(CPUSRC)/g65816/g65816.c \ + $(G65816DEPS) + +$(CPUOBJ)/g65816/g65816o0.o: $(CPUSRC)/g65816/g65816o0.c \ + $(G65816DEPS) + +$(CPUOBJ)/g65816/g65816o1.o: $(CPUSRC)/g65816/g65816o1.c \ + $(G65816DEPS) + +$(CPUOBJ)/g65816/g65816o2.o: $(CPUSRC)/g65816/g65816o2.c \ + $(G65816DEPS) + +$(CPUOBJ)/g65816/g65816o3.o: $(CPUSRC)/g65816/g65816o3.c \ + $(G65816DEPS) + +$(CPUOBJ)/g65816/g65816o4.o: $(CPUSRC)/g65816/g65816o4.c \ + $(G65816DEPS) + + + +#------------------------------------------------- +# Hitachi 6309 +#------------------------------------------------- + +CPUDEFS += -DHAS_HD6309=$(if $(filter HD6309,$(CPUS)),1,0) + +ifneq ($(filter HD6309,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/hd6309 +CPUOBJS += $(CPUOBJ)/hd6309/hd6309.o +DBGOBJS += $(CPUOBJ)/hd6309/6309dasm.o +endif + +$(CPUOBJ)/hd6309/hd6309.o: $(CPUSRC)/hd6309/hd6309.c \ + $(CPUSRC)/hd6309/hd6309.h \ + $(CPUSRC)/hd6309/6309ops.c \ + $(CPUSRC)/hd6309/6309tbl.c + + + +#------------------------------------------------- +# Hitachi H8/3002 +#------------------------------------------------- + +CPUDEFS += -DHAS_H83002=$(if $(filter H83002,$(CPUS)),1,0) + +ifneq ($(filter H83002,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/h83002 +CPUOBJS += $(CPUOBJ)/h83002/h83002.o $(CPUOBJ)/h83002/h8periph.o +DBGOBJS += $(CPUOBJ)/h83002/h8disasm.o +endif + +$(CPUOBJ)/h83002/h83002.o: $(CPUSRC)/h83002/h83002.c \ + $(CPUSRC)/h83002/h83002.h \ + $(CPUSRC)/h83002/h8priv.h + +$(CPUOBJ)/h83002/h8disasm.o: $(CPUSRC)/h83002/h8disasm.c + +$(CPUOBJ)/h83002/h8periph.o: $(CPUSRC)/h83002/h8periph.c \ + $(CPUSRC)/h83002/h8priv.h + + + +#------------------------------------------------- +# Hitachi SH2 +#------------------------------------------------- + +CPUDEFS += -DHAS_SH2=$(if $(filter SH2,$(CPUS)),1,0) + +ifneq ($(filter SH2,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/sh2 +CPUOBJS += $(CPUOBJ)/sh2/sh2.o +DBGOBJS += $(CPUOBJ)/sh2/sh2dasm.o +endif + +$(CPUOBJ)/sh2/sh2.o: $(CPUSRC)/sh2/sh2.c \ + $(CPUSRC)/sh2/sh2.h + +#------------------------------------------------- +# Hitachi SH4 +#------------------------------------------------- + +CPUDEFS += -DHAS_SH4=$(if $(filter SH4,$(CPUS)),1,0) + +ifneq ($(filter SH4,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/sh4 +CPUOBJS += $(CPUOBJ)/sh4/sh4.o +DBGOBJS += $(CPUOBJ)/sh4/sh4dasm.o +endif + +$(CPUOBJ)/sh4/sh4.o: $(CPUSRC)/sh4/sh4.c \ + $(CPUSRC)/sh4/sh4.h + +#------------------------------------------------- +# Hudsonsoft 6280 +#------------------------------------------------- + +CPUDEFS += -DHAS_H6280=$(if $(filter H6280,$(CPUS)),1,0) + +ifneq ($(filter H6280,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/h6280 +CPUOBJS += $(CPUOBJ)/h6280/h6280.o +DBGOBJS += $(CPUOBJ)/h6280/6280dasm.o +endif + +$(CPUOBJ)/h6280/h6280.o: $(CPUSRC)/h6280/h6280.c \ + $(CPUSRC)/h6280/h6280.h \ + $(CPUSRC)/h6280/h6280ops.h \ + $(CPUSRC)/h6280/tblh6280.c + + + +#------------------------------------------------- +# Hyperstone E1 series +#------------------------------------------------- + +CPUDEFS += -DHAS_E116T=$(if $(filter E116T,$(CPUS)),1,0) +CPUDEFS += -DHAS_E116XT=$(if $(filter E116XT,$(CPUS)),1,0) +CPUDEFS += -DHAS_E116XS=$(if $(filter E116XS,$(CPUS)),1,0) +CPUDEFS += -DHAS_E116XSR=$(if $(filter E116XSR,$(CPUS)),1,0) +CPUDEFS += -DHAS_E132N=$(if $(filter E132N,$(CPUS)),1,0) +CPUDEFS += -DHAS_E132T=$(if $(filter E132T,$(CPUS)),1,0) +CPUDEFS += -DHAS_E132XN=$(if $(filter E132XN,$(CPUS)),1,0) +CPUDEFS += -DHAS_E132XT=$(if $(filter E132XT,$(CPUS)),1,0) +CPUDEFS += -DHAS_E132XS=$(if $(filter E132XS,$(CPUS)),1,0) +CPUDEFS += -DHAS_E132XSR=$(if $(filter E132XSR,$(CPUS)),1,0) +CPUDEFS += -DHAS_GMS30C2116=$(if $(filter GMS30C2116,$(CPUS)),1,0) +CPUDEFS += -DHAS_GMS30C2132=$(if $(filter GMS30C2132,$(CPUS)),1,0) +CPUDEFS += -DHAS_GMS30C2216=$(if $(filter GMS30C2216,$(CPUS)),1,0) +CPUDEFS += -DHAS_GMS30C2232=$(if $(filter GMS30C2232,$(CPUS)),1,0) + +ifneq ($(filter E116T E116XT E116XS E116XSR E132N E132T E132XN E132XT E132XS E132XSR GMS30C2116 GMS30C2132 GMS30C2216 GMS30C2232,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/e132xs +CPUOBJS += $(CPUOBJ)/e132xs/e132xs.o +DBGOBJS += $(CPUOBJ)/e132xs/32xsdasm.o +endif + +$(CPUOBJ)/e132xs/e132xs.o: $(CPUSRC)/e132xs/e132xs.c \ + $(CPUSRC)/e132xs/e132xs.h + + + +#------------------------------------------------- +# Intel 8080/8085A +#------------------------------------------------- + +CPUDEFS += -DHAS_8080=$(if $(filter 8080,$(CPUS)),1,0) +CPUDEFS += -DHAS_8085A=$(if $(filter 8085A,$(CPUS)),1,0) + +ifneq ($(filter 8080 8085A,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/i8085 +CPUOBJS += $(CPUOBJ)/i8085/i8085.o +DBGOBJS += $(CPUOBJ)/i8085/8085dasm.o +endif + +$(CPUOBJ)/i8085/i8085.o: $(CPUSRC)/i8085/i8085.c \ + $(CPUSRC)/i8085/i8085.h \ + $(CPUSRC)/i8085/i8085cpu.h \ + $(CPUSRC)/i8085/i8085daa.h + + + +#------------------------------------------------- +# Intel 8039 and derivatives +#------------------------------------------------- + +CPUDEFS += -DHAS_I8035=$(if $(filter I8035,$(CPUS)),1,0) +CPUDEFS += -DHAS_I8039=$(if $(filter I8039,$(CPUS)),1,0) +CPUDEFS += -DHAS_I8048=$(if $(filter I8048,$(CPUS)),1,0) +CPUDEFS += -DHAS_N7751=$(if $(filter N7751,$(CPUS)),1,0) + +ifneq ($(filter I8035 I8039 I8048 N7751,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/i8039 +CPUOBJS += $(CPUOBJ)/i8039/i8039.o +DBGOBJS += $(CPUOBJ)/i8039/8039dasm.o +endif + +$(CPUOBJ)/i8039/i8039.o: $(CPUSRC)/i8039/i8039.c \ + $(CPUSRC)/i8039/i8039.h + + + +#------------------------------------------------- +# Intel 8x41 +#------------------------------------------------- + +CPUDEFS += -DHAS_I8X41=$(if $(filter I8X41,$(CPUS)),1,0) + +ifneq ($(filter I8X41,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/i8x41 +CPUOBJS += $(CPUOBJ)/i8x41/i8x41.o +DBGOBJS += $(CPUOBJ)/i8x41/8x41dasm.o +endif + +$(CPUOBJ)/i8x41/i8x41.o: $(CPUSRC)/i8x41/i8x41.c \ + $(CPUSRC)/i8x41/i8x41.h + + + +#------------------------------------------------- +# Intel 8051 and derivatives +#------------------------------------------------- + +CPUDEFS += -DHAS_I8051=$(if $(filter I8051,$(CPUS)),1,0) +CPUDEFS += -DHAS_I8052=$(if $(filter I8052,$(CPUS)),1,0) +CPUDEFS += -DHAS_I8751=$(if $(filter I8751,$(CPUS)),1,0) +CPUDEFS += -DHAS_I8752=$(if $(filter I8752,$(CPUS)),1,0) + +ifneq ($(filter I8051 I8052 I8751 I8752,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/i8051 +CPUOBJS += $(CPUOBJ)/i8051/i8051.o +DBGOBJS += $(CPUOBJ)/i8051/8051dasm.o +endif + +$(CPUOBJ)/i8051/i8051.o: $(CPUSRC)/i8051/i8051.c \ + $(CPUSRC)/i8051/i8051.h \ + $(CPUSRC)/i8051/i8051ops.c + + + +#------------------------------------------------- +# Intel 80x86 series +#------------------------------------------------- + +CPUDEFS += -DHAS_I8086=$(if $(filter I8086,$(CPUS)),1,0) +CPUDEFS += -DHAS_I8088=$(if $(filter I8088,$(CPUS)),1,0) +CPUDEFS += -DHAS_I80186=$(if $(filter I80186,$(CPUS)),1,0) +CPUDEFS += -DHAS_I80188=$(if $(filter I80188,$(CPUS)),1,0) +CPUDEFS += -DHAS_I80286=$(if $(filter I80286,$(CPUS)),1,0) +CPUDEFS += -DHAS_I386=$(if $(filter I386,$(CPUS)),1,0) +CPUDEFS += -DHAS_I486=$(if $(filter I486,$(CPUS)),1,0) +CPUDEFS += -DHAS_PENTIUM=$(if $(filter PENTIUM,$(CPUS)),1,0) +CPUDEFS += -DHAS_MEDIAGX=$(if $(filter MEDIAGX,$(CPUS)),1,0) + +ifneq ($(filter I8086 I8088 I80186 I80188,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/i86 $(CPUOBJ)/i386 +CPUOBJS += $(CPUOBJ)/i86/i86.o +DBGOBJS += $(CPUOBJ)/i386/i386dasm.o +endif + + +ifneq ($(filter I80286,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/i86 $(CPUOBJ)/i386 +CPUOBJS += $(CPUOBJ)/i86/i286.o +DBGOBJS += $(CPUOBJ)/i386/i386dasm.o +endif + + +ifneq ($(filter I386 I486 PENTIUM MEDIAGX,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/i386 +CPUOBJS += $(CPUOBJ)/i386/i386.o +DBGOBJS += $(CPUOBJ)/i386/i386dasm.o +endif + +I86DEPS = \ + $(CPUSRC)/i86/i86.h \ + $(CPUSRC)/i86/ea.h \ + $(CPUSRC)/i86/host.h \ + $(CPUSRC)/i86/modrm.h + +$(CPUOBJ)/i86/i86.o: $(CPUSRC)/i86/i86.c \ + $(CPUSRC)/i86/instr86.c \ + $(CPUSRC)/i86/instr186.c \ + $(CPUSRC)/i86/i86intf.h \ + $(CPUSRC)/i86/i186intf.h \ + $(I86DEPS) + +$(CPUOBJ)/i86/i286.o: $(CPUSRC)/i86/i86.c \ + $(CPUSRC)/i86/instr286.c \ + $(CPUSRC)/i86/i286intf.h \ + $(I86DEPS) + +$(CPUOBJ)/i386/i386.o: $(CPUSRC)/i386/i386.c \ + $(CPUSRC)/i386/i386.h \ + $(CPUSRC)/i386/i386intf.h \ + $(CPUSRC)/i386/i386op16.c \ + $(CPUSRC)/i386/i386op32.c \ + $(CPUSRC)/i386/i386ops.c \ + $(CPUSRC)/i386/i486ops.c \ + $(CPUSRC)/i386/pentops.c \ + $(CPUSRC)/i386/x87ops.c \ + $(CPUSRC)/i386/i386ops.h \ + $(CPUSRC)/i386/cycles.h + + + +#------------------------------------------------- +# Intel i960 +#------------------------------------------------- + +CPUDEFS += -DHAS_I960=$(if $(filter I960,$(CPUS)),1,0) + +ifneq ($(filter I960,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/i960 +CPUOBJS += $(CPUOBJ)/i960/i960.o +DBGOBJS += $(CPUOBJ)/i960/i960dis.o +endif + +$(CPUOBJ)/i960/i960.o: $(CPUSRC)/i960/i960.c \ + $(CPUSRC)/i960/i960.h + + + +#------------------------------------------------- +# Konami custom CPU (6809-based) +#------------------------------------------------- + +CPUDEFS += -DHAS_KONAMI=$(if $(filter KONAMI,$(CPUS)),1,0) + +ifneq ($(filter KONAMI,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/konami +CPUOBJS += $(CPUOBJ)/konami/konami.o +DBGOBJS += $(CPUOBJ)/konami/knmidasm.o +endif + +$(CPUOBJ)/konami/konami.o: $(CPUSRC)/konami/konami.c \ + $(CPUSRC)/konami/konami.h \ + $(CPUSRC)/konami/konamops.c \ + $(CPUSRC)/konami/konamtbl.c + + + +#------------------------------------------------- +# LH5801 +#------------------------------------------------- + +CPUDEFS += -DHAS_LH5801=$(if $(filter LH5801,$(CPUS)),1,0) + +ifneq ($(filter LH5801,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/lh5801 +CPUOBJS += $(CPUOBJ)/lh5801/lh5801.o +DBGOBJS += $(CPUOBJ)/lh5801/5801dasm.o +endif + +$(CPUOBJ)/lh5801/lh5801.o: $(CPUSRC)/lh5801/lh5801.c \ + $(CPUSRC)/lh5801/5801tbl.c \ + $(CPUSRC)/lh5801/lh5801.h + + + +#------------------------------------------------- +# Fujitsu MB88xx +#------------------------------------------------- + +CPUDEFS += -DHAS_MB8841=$(if $(filter MB8841,$(CPUS)),1,0) +CPUDEFS += -DHAS_MB8842=$(if $(filter MB8842,$(CPUS)),1,0) +CPUDEFS += -DHAS_MB8843=$(if $(filter MB8843,$(CPUS)),1,0) +CPUDEFS += -DHAS_MB8844=$(if $(filter MB8844,$(CPUS)),1,0) + +ifneq ($(filter MB8841 MB8842 MB8843 MB8844,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/mb88xx +CPUOBJS += $(CPUOBJ)/mb88xx/mb88xx.o +DBGOBJS += $(CPUOBJ)/mb88xx/mb88dasm.o +endif + +$(CPUOBJ)/mb88xx/mb88xx.o: $(CPUSRC)/mb88xx/mb88xx.c \ + $(CPUSRC)/mb88xx/mb88xx.h + + + +#------------------------------------------------- +# Fujitsu MB86233 +#------------------------------------------------- + +CPUDEFS += -DHAS_MB86233=$(if $(filter MB86233,$(CPUS)),1,0) + +ifneq ($(filter MB86233,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/mb86233 +CPUOBJS += $(CPUOBJ)/mb86233/mb86233.o +DBGOBJS += $(CPUOBJ)/mb86233/mb86233d.o +endif + +$(CPUOBJ)/mb86233/mb86233.o: $(CPUSRC)/mb86233/mb86233.c \ + $(CPUSRC)/mb86233/mb86233.h + + + +#------------------------------------------------- +# Microchip PIC16C5x +#------------------------------------------------- + +CPUDEFS += -DHAS_PIC16C54=$(if $(filter PIC16C54,$(CPUS)),1,0) +CPUDEFS += -DHAS_PIC16C55=$(if $(filter PIC16C55,$(CPUS)),1,0) +CPUDEFS += -DHAS_PIC16C56=$(if $(filter PIC16C56,$(CPUS)),1,0) +CPUDEFS += -DHAS_PIC16C57=$(if $(filter PIC16C57,$(CPUS)),1,0) +CPUDEFS += -DHAS_PIC16C58=$(if $(filter PIC16C58,$(CPUS)),1,0) + +ifneq ($(filter PIC16C54 PIC16C55 PIC16C56 PIC16C57 PIC16C58,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/pic16c5x +CPUOBJS += $(CPUOBJ)/pic16c5x/pic16c5x.o +DBGOBJS += $(CPUOBJ)/pic16c5x/16c5xdsm.o +endif + +$(CPUOBJ)/pic16c5x/pic16c5x.o: $(CPUSRC)/pic16c5x/pic16c5x.c \ + $(CPUSRC)/pic16c5x/pic16c5x.h + + + +#------------------------------------------------- +# MIPS R3000 (MIPS I/II) series +#------------------------------------------------- + +CPUDEFS += -DHAS_R3000=$(if $(filter R3000,$(CPUS)),1,0) + +ifneq ($(filter R3000,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/mips +CPUOBJS += $(CPUOBJ)/mips/r3000.o +DBGOBJS += $(CPUOBJ)/mips/r3kdasm.o +endif + +$(CPUOBJ)/mips/r3000.o: $(CPUSRC)/mips/r3000.c \ + $(CPUSRC)/mips/r3000.h + + + +#------------------------------------------------- +# MIPS R4000 (MIPS III/IV) series +#------------------------------------------------- + +CPUDEFS += -DHAS_R4600=$(if $(filter R4600,$(CPUS)),1,0) +CPUDEFS += -DHAS_R4650=$(if $(filter R4650,$(CPUS)),1,0) +CPUDEFS += -DHAS_R4700=$(if $(filter R4700,$(CPUS)),1,0) +CPUDEFS += -DHAS_R5000=$(if $(filter R5000,$(CPUS)),1,0) +CPUDEFS += -DHAS_QED5271=$(if $(filter QED5271,$(CPUS)),1,0) +CPUDEFS += -DHAS_RM7000=$(if $(filter RM7000,$(CPUS)),1,0) + +ifneq ($(filter R4600 R4650 R4700 R5000 QED5271 RM7000,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/mips +CPUOBJS += $(CPUOBJ)/mips/mips3com.o +DBGOBJS += $(CPUOBJ)/mips/mips3dsm.o + +ifdef X86_MIPS3_DRC +CPUOBJS += $(CPUOBJ)/mips/mips3drc.o $(CPUOBJ)/mips/mips3fe.o $(DRCOBJ) +else +CPUOBJS += $(CPUOBJ)/mips/mips3.o +endif +endif + +$(CPUOBJ)/mips/mips3.o: $(CPUSRC)/mips/mips3.c \ + $(CPUSRC)/mips/mips3.h \ + $(CPUSRC)/mips/mips3com.h + +$(CPUOBJ)/mips/mips3drc.o: $(CPUSRC)/mips/mips3drc.c \ + $(CPUSRC)/mips/mdrcold.c \ + $(CPUSRC)/mips/mdrc64.c \ + $(CPUSRC)/mips/mips3.h \ + $(CPUSRC)/mips/mips3com.h \ + $(CPUSRC)/mips/mips3fe.h \ + $(DRCDEPS) + + + +#------------------------------------------------- +# Mitsubishi M37702 and M37710 (based on 65C816) +#------------------------------------------------- + +CPUDEFS += -DHAS_M37702=$(if $(filter M37702,$(CPUS)),1,0) +CPUDEFS += -DHAS_M37710=$(if $(filter M37710,$(CPUS)),1,0) + +ifneq ($(filter M37702 M37710,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/m37710 +CPUOBJS += \ + $(CPUOBJ)/m37710/m37710.o \ + $(CPUOBJ)/m37710/m37710o0.o \ + $(CPUOBJ)/m37710/m37710o1.o \ + $(CPUOBJ)/m37710/m37710o2.o \ + $(CPUOBJ)/m37710/m37710o3.o +DBGOBJS += $(CPUOBJ)/m37710/m7700ds.o +endif + +M37710DEPS = \ + $(CPUSRC)/m37710/m37710.h \ + $(CPUSRC)/m37710/m37710op.h \ + $(CPUSRC)/m37710/m7700ds.h + +$(CPUOBJ)/m37710/m37710.o: $(CPUSRC)/m37710/m37710.c \ + $(M37710DEPS) + +$(CPUOBJ)/m37710/m37710o0.o: $(CPUSRC)/m37710/m37710o0.c \ + $(M37710DEPS) + +$(CPUOBJ)/m37710/m37710o1.o: $(CPUSRC)/m37710/m37710o1.c \ + $(M37710DEPS) + +$(CPUOBJ)/m37710/m37710o2.o: $(CPUSRC)/m37710/m37710o2.c \ + $(M37710DEPS) + +$(CPUOBJ)/m37710/m37710o3.o: $(CPUSRC)/m37710/m37710o3.c \ + $(M37710DEPS) + +$(CPUOBJ)/m37710/m7700ds.o: $(CPUSRC)/m37710/m7700ds.c \ + $(CPUSRC)/m37710/m7700ds.h + + + +#------------------------------------------------- +# Mostek 6502 and its many derivatives +#------------------------------------------------- + +CPUDEFS += -DHAS_M6502=$(if $(filter M6502,$(CPUS)),1,0) +CPUDEFS += -DHAS_M65C02=$(if $(filter M65C02,$(CPUS)),1,0) +CPUDEFS += -DHAS_M65SC02=$(if $(filter M65SC02,$(CPUS)),1,0) +CPUDEFS += -DHAS_M65CE02=$(if $(filter M65CE02,$(CPUS)),1,0) +CPUDEFS += -DHAS_M6509=$(if $(filter M6509,$(CPUS)),1,0) +CPUDEFS += -DHAS_M6510=$(if $(filter M6510 M6510T M7501 M8502,$(CPUS)),1,0) +CPUDEFS += -DHAS_M6510T=$(if $(filter M6510T,$(CPUS)),1,0) +CPUDEFS += -DHAS_M7501=$(if $(filter M7501,$(CPUS)),1,0) +CPUDEFS += -DHAS_M8502=$(if $(filter M8502,$(CPUS)),1,0) +CPUDEFS += -DHAS_N2A03=$(if $(filter N2A03,$(CPUS)),1,0) +CPUDEFS += -DHAS_DECO16=$(if $(filter DECO16,$(CPUS)),1,0) +CPUDEFS += -DHAS_M4510=$(if $(filter M4510,$(CPUS)),1,0) + +ifneq ($(filter M6502 M65C02 M65SC02 M6510 M6510T M7501 M8502 N2A03 DECO16,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/m6502 +CPUOBJS += $(CPUOBJ)/m6502/m6502.o +DBGOBJS += $(CPUOBJ)/m6502/6502dasm.o +endif + +ifneq ($(filter M65CE02,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/m6502 +CPUOBJS += $(CPUOBJ)/m6502/m65ce02.o +DBGOBJS += $(CPUOBJ)/m6502/6502dasm.o +endif + +ifneq ($(filter M6509,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/m6502 +CPUOBJS += $(CPUOBJ)/m6502/m6509.o +DBGOBJS += $(CPUOBJ)/m6502/6502dasm.o +endif + +ifneq ($(filter M4510,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/m6502 +CPUOBJS += $(CPUOBJ)/m6502/m4510.o +DBGOBJS += $(CPUOBJ)/m6502/6502dasm.o +endif + +$(CPUOBJ)/m6502/m6502.o: $(CPUSRC)/m6502/m6502.c \ + $(CPUSRC)/m6502/m6502.h \ + $(CPUSRC)/m6502/ops02.h \ + $(CPUSRC)/m6502/t6502.c \ + $(CPUSRC)/m6502/t65c02.c \ + $(CPUSRC)/m6502/t65sc02.c \ + $(CPUSRC)/m6502/t6510.c \ + $(CPUSRC)/m6502/tdeco16.c + +$(CPUOBJ)/m6502/m65ce02.o: $(CPUSRC)/m6502/m65ce02.c \ + $(CPUSRC)/m6502/m65ce02.h \ + $(CPUSRC)/m6502/opsce02.h \ + $(CPUSRC)/m6502/t65ce02.c + +$(CPUOBJ)/m6502/m6509.o: $(CPUSRC)/m6502/m6509.c \ + $(CPUSRC)/m6502/m6509.h \ + $(CPUSRC)/m6502/ops09.h \ + $(CPUSRC)/m6502/t6509.c + + + +#------------------------------------------------- +# Motorola 680x +#------------------------------------------------- + +CPUDEFS += -DHAS_M6800=$(if $(filter M6800,$(CPUS)),1,0) +CPUDEFS += -DHAS_M6801=$(if $(filter M6801,$(CPUS)),1,0) +CPUDEFS += -DHAS_M6802=$(if $(filter M6802,$(CPUS)),1,0) +CPUDEFS += -DHAS_M6803=$(if $(filter M6803,$(CPUS)),1,0) +CPUDEFS += -DHAS_M6808=$(if $(filter M6808,$(CPUS)),1,0) +CPUDEFS += -DHAS_HD63701=$(if $(filter HD63701,$(CPUS)),1,0) +CPUDEFS += -DHAS_NSC8105=$(if $(filter NSC8105,$(CPUS)),1,0) + +ifneq ($(filter M6800 M6801 M6802 M6803 M6808 HD63701 NSC8105,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/m6800 +CPUOBJS += $(CPUOBJ)/m6800/m6800.o +DBGOBJS += $(CPUOBJ)/m6800/6800dasm.o +endif + +$(CPUOBJ)/m6800/m6800.o: $(CPUSRC)/m6800/m6800.c \ + $(CPUSRC)/m6800/m6800.h \ + $(CPUSRC)/m6800/6800ops.c \ + $(CPUSRC)/m6800/6800tbl.c + + + +#------------------------------------------------- +# Motorola 6805 +#------------------------------------------------- + +CPUDEFS += -DHAS_M6805=$(if $(filter M6805,$(CPUS)),1,0) +CPUDEFS += -DHAS_M68705=$(if $(filter M68705,$(CPUS)),1,0) +CPUDEFS += -DHAS_HD63705=$(if $(filter HD63705,$(CPUS)),1,0) + +ifneq ($(filter M6805 M68705 HD63705,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/m6805 +CPUOBJS += $(CPUOBJ)/m6805/m6805.o +DBGOBJS += $(CPUOBJ)/m6805/6805dasm.o +endif + +$(CPUOBJ)/m6805/m6805.o: $(CPUSRC)/m6805/m6805.c \ + $(CPUSRC)/m6805/m6805.h \ + $(CPUSRC)/m6805/6805ops.c + + + +#------------------------------------------------- +# Motorola 6809 +#------------------------------------------------- + +CPUDEFS += -DHAS_M6809=$(if $(filter M6809,$(CPUS)),1,0) +CPUDEFS += -DHAS_M6809E=$(if $(filter M6809E,$(CPUS)),1,0) + +ifneq ($(filter M6809 M6809E,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/m6809 +CPUOBJS += $(CPUOBJ)/m6809/m6809.o +DBGOBJS += $(CPUOBJ)/m6809/6809dasm.o +endif + +$(CPUOBJ)/m6809/m6809.o: $(CPUSRC)/m6809/m6809.c \ + $(CPUSRC)/m6809/m6809.h \ + $(CPUSRC)/m6809/6809ops.c \ + $(CPUSRC)/m6809/6809tbl.c + + + +#------------------------------------------------- +# Motorola 68HC11 +#------------------------------------------------- + +CPUDEFS += -DHAS_MC68HC11=$(if $(filter MC68HC11,$(CPUS)),1,0) + +ifneq ($(filter MC68HC11,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/mc68hc11 +CPUOBJS += $(CPUOBJ)/mc68hc11/mc68hc11.o +DBGOBJS += $(CPUOBJ)/mc68hc11/hc11dasm.o +endif + +$(CPUOBJ)/mc68hc11/mc68hc11.o: $(CPUSRC)/mc68hc11/mc68hc11.c \ + $(CPUSRC)/mc68hc11/hc11dasm.c + + + +#------------------------------------------------- +# Motorola 68000 series +#------------------------------------------------- + +CPUDEFS += -DHAS_M68000=$(if $(filter M68000,$(CPUS)),1,0) +CPUDEFS += -DHAS_M68008=$(if $(filter M68008,$(CPUS)),1,0) +CPUDEFS += -DHAS_M68010=$(if $(filter M68010,$(CPUS)),1,0) +CPUDEFS += -DHAS_M68EC020=$(if $(filter M68EC020,$(CPUS)),1,0) +CPUDEFS += -DHAS_M68020=$(if $(filter M68020,$(CPUS)),1,0) +CPUDEFS += -DHAS_M68040=$(if $(filter M68040,$(CPUS)),1,0) + +ifneq ($(filter M68000 M68008 M68010 M68EC020 M68020 M68040,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/m68000 +CPUOBJS += $(CPUOBJ)/m68000/m68kcpu.o $(CPUOBJ)/m68000/m68kmame.o $(CPUOBJ)/m68000/m68kops.o +DBGOBJS += $(CPUOBJ)/m68000/m68kdasm.o +endif + +# when we compile source files we need to include generated files from the OBJ directory +$(CPUOBJ)/m68000/%.o: $(CPUSRC)/m68000/%.c + @echo Compiling $<... + $(CC) $(CDEFS) $(CFLAGS) -I$(CPUOBJ)/m68000 -c $< -o $@ + +# when we compile generated files we need to include stuff from the src directory +$(CPUOBJ)/m68000/%.o: $(CPUOBJ)/m68000/%.c + @echo Compiling $<... + $(CC) $(CDEFS) $(CFLAGS) -I$(CPUSRC)/m68000 -c $< -o $@ + +# rule to generate the C files +$(CPUOBJ)/m68000/m68kops.c: $(CPUOBJ)/m68000/m68kmake$(EXE) $(CPUSRC)/m68000/m68k_in.c + @echo Generating M68K source files... + $(CPUOBJ)/m68000/m68kmake$(EXE) $(CPUOBJ)/m68000 $(CPUSRC)/m68000/m68k_in.c + +# rule to build the generator +$(CPUOBJ)/m68000/m68kmake$(EXE): $(CPUOBJ)/m68000/m68kmake.o $(LIBOCORE) + @echo Linking $@... + $(LD) $(LDFLAGS) $(OSDBGLDFLAGS) $^ $(LIBS) -o $@ + +# rule to ensure we build the header before building the core CPU file +$(CPUOBJ)/m68000/m68kcpu.o: $(CPUOBJ)/m68000/m68kops.c + + + +#------------------------------------------------- +# Motorola/Freescale dsp56k +#------------------------------------------------- + +CPUDEFS += -DHAS_DSP56156=$(if $(filter DSP56156,$(CPUS)),1,0) + +ifneq ($(filter DSP56156,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/dsp56k +CPUOBJS += $(CPUOBJ)/dsp56k/dsp56k.o +DBGOBJS += $(CPUOBJ)/dsp56k/dsp56dsm.o +endif + +$(CPUOBJ)/dsp56k/dsp56k.o: $(CPUSRC)/dsp56k/dsp56k.c \ + $(CPUSRC)/dsp56k/dsp56ops.c \ + $(CPUSRC)/dsp56k/dsp56k.h + + + +#------------------------------------------------- +# PDP-1 +#------------------------------------------------- + +CPUDEFS += -DHAS_PDP1=$(if $(filter PDP1,$(CPUS)),1,0) + +ifneq ($(filter PDP1,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/pdp1 +CPUOBJS += $(CPUOBJ)/pdp1/pdp1.o +DBGOBJS += $(CPUOBJ)/pdp1/pdp1dasm.o +endif + +$(CPUOBJ)/pdp1/pdp1.o: $(CPUSRC)/pdp1/pdp1.c \ + $(CPUSRC)/pdp1/pdp1.h + + + +#------------------------------------------------- +# Motorola PowerPC series +#------------------------------------------------- + +CPUDEFS += -DHAS_PPC403=$(if $(filter PPC403,$(CPUS)),1,0) +CPUDEFS += -DHAS_PPC601=$(if $(filter PPC601,$(CPUS)),1,0) +CPUDEFS += -DHAS_PPC602=$(if $(filter PPC602,$(CPUS)),1,0) +CPUDEFS += -DHAS_PPC603=$(if $(filter PPC603,$(CPUS)),1,0) +CPUDEFS += -DHAS_MPC8240=$(if $(filter MPC8240,$(CPUS)),1,0) + +ifneq ($(filter PPC403 PPC601 PPC602 PPC603 MPC8240,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/powerpc +DBGOBJS += $(CPUOBJ)/powerpc/ppc_dasm.o + +ifdef X86_PPC_DRC +CPUOBJS += $(CPUOBJ)/powerpc/ppcdrc.o $(DRCOBJ) +else +CPUOBJS += $(CPUOBJ)/powerpc/ppc.o +endif +endif + +$(CPUOBJ)/powerpc/ppc.o: $(CPUSRC)/powerpc/ppc.c \ + $(CPUSRC)/powerpc/ppc.h \ + $(CPUSRC)/powerpc/ppc_ops.c \ + $(CPUSRC)/powerpc/ppc_mem.c \ + $(CPUSRC)/powerpc/ppc403.c \ + $(CPUSRC)/powerpc/ppc602.c \ + $(CPUSRC)/powerpc/ppc603.c + +$(CPUOBJ)/powerpc/ppcdrc.o: $(CPUSRC)/powerpc/ppcdrc.c \ + $(CPUSRC)/powerpc/ppc.h \ + $(CPUSRC)/powerpc/drc_ops.c \ + $(CPUSRC)/powerpc/drc_ops.h \ + $(CPUSRC)/powerpc/ppc_ops.c \ + $(CPUSRC)/powerpc/ppc_mem.c \ + $(CPUSRC)/powerpc/ppc403.c \ + $(CPUSRC)/powerpc/ppc602.c \ + $(CPUSRC)/powerpc/ppc603.c \ + $(DRCDEPS) + + + +#------------------------------------------------- +# NEC V-series Intel-compatible +#------------------------------------------------- + +CPUDEFS += -DHAS_V20=$(if $(filter V20,$(CPUS)),1,0) +CPUDEFS += -DHAS_V25=$(if $(filter V25,$(CPUS)),1,0) +CPUDEFS += -DHAS_V30=$(if $(filter V30,$(CPUS)),1,0) +CPUDEFS += -DHAS_V30MZ=$(if $(filter V30MZ,$(CPUS)),1,0) +CPUDEFS += -DHAS_V33=$(if $(filter V33,$(CPUS)),1,0) +CPUDEFS += -DHAS_V35=$(if $(filter V35,$(CPUS)),1,0) + +ifneq ($(filter V20 V25 V30 V33 V35,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/nec +CPUOBJS += $(CPUOBJ)/nec/nec.o +DBGOBJS += $(CPUOBJ)/nec/necdasm.o +endif + +ifneq ($(filter V30MZ,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/v30mz $(CPUOBJ)/nec +CPUOBJS += $(CPUOBJ)/v30mz/v30mz.o +DBGOBJS += $(CPUOBJ)/nec/necdasm.o +endif + +$(CPUOBJ)/nec/nec.o: $(CPUSRC)/nec/nec.c \ + $(CPUSRC)/nec/nec.h \ + $(CPUSRC)/nec/necintrf.h \ + $(CPUSRC)/nec/necea.h \ + $(CPUSRC)/nec/nechost.h \ + $(CPUSRC)/nec/necinstr.h \ + $(CPUSRC)/nec/necmodrm.h + +$(CPUOBJ)/v30mz/v30mz.o: $(CPUSRC)/v30mz/v30mz.c \ + $(CPUSRC)/v30mz/v30mz.h \ + $(CPUSRC)/v30mz/necmodrm.h \ + $(CPUSRC)/v30mz/necinstr.h \ + $(CPUSRC)/v30mz/necea.h \ + $(CPUSRC)/v30mz/nechost.h \ + $(CPUSRC)/v30mz/necintrf.h + + + +#------------------------------------------------- +# NEC V60/V70 +#------------------------------------------------- + +CPUDEFS += -DHAS_V60=$(if $(filter V60,$(CPUS)),1,0) +CPUDEFS += -DHAS_V70=$(if $(filter V70,$(CPUS)),1,0) + +ifneq ($(filter V60 V70,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/v60 +CPUOBJS += $(CPUOBJ)/v60/v60.o +DBGOBJS += $(CPUOBJ)/v60/v60d.o +endif + +$(CPUOBJ)/v60/v60.o: $(CPUSRC)/v60/am.c \ + $(CPUSRC)/v60/am1.c \ + $(CPUSRC)/v60/am2.c \ + $(CPUSRC)/v60/am3.c \ + $(CPUSRC)/v60/op12.c \ + $(CPUSRC)/v60/op2.c \ + $(CPUSRC)/v60/op3.c \ + $(CPUSRC)/v60/op4.c \ + $(CPUSRC)/v60/op5.c \ + $(CPUSRC)/v60/op6.c \ + $(CPUSRC)/v60/op7a.c \ + $(CPUSRC)/v60/optable.c \ + $(CPUSRC)/v60/v60.c \ + $(CPUSRC)/v60/v60.h \ + $(CPUSRC)/v60/v60d.c + + + +#------------------------------------------------- +# NEC V810 (uPD70732) +#------------------------------------------------- + +CPUDEFS += -DHAS_V810=$(if $(filter V810,$(CPUS)),1,0) + +ifneq ($(filter V810,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/v810 +CPUOBJS += $(CPUOBJ)/v810/v810.o +DBGOBJS += $(CPUOBJ)/v810/v810dasm.o +endif + +$(CPUOBJ)/v810/v810.o: $(CPUSRC)/v810/v810.c \ + $(CPUSRC)/v810/v810.h + + + +#------------------------------------------------- +# NEC uPD7810 series +#------------------------------------------------- + +CPUDEFS += -DHAS_UPD7810=$(if $(filter UPD7810,$(CPUS)),1,0) +CPUDEFS += -DHAS_UPD7807=$(if $(filter UPD7807,$(CPUS)),1,0) + +ifneq ($(filter UPD7810 UPD7807,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/upd7810 +CPUOBJS += $(CPUOBJ)/upd7810/upd7810.o +DBGOBJS += $(CPUOBJ)/upd7810/7810dasm.o +endif + +$(CPUOBJ)/upd7810/upd7810.o: $(CPUSRC)/upd7810/upd7810.c \ + $(CPUSRC)/upd7810/7810tbl.c \ + $(CPUSRC)/upd7810/7810ops.c \ + $(CPUSRC)/upd7810/upd7810.h + + + +#------------------------------------------------- +# Nintendo/SGI RSP (R3000-based + vector processing) +#------------------------------------------------- + +CPUDEFS += -DHAS_RSP=$(if $(filter RSP,$(CPUS)),1,0) + +ifneq ($(filter RSP,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/rsp +CPUOBJS += $(CPUOBJ)/rsp/rsp.o +DBGOBJS += $(CPUOBJ)/rsp/rsp_dasm.o +endif + +$(CPUOBJ)/rsp/rsp.o: $(CPUSRC)/rsp/rsp.c \ + $(CPUSRC)/rsp/rsp.h + + + +#------------------------------------------------- +# Saturn +#------------------------------------------------- + +CPUDEFS += -DHAS_SATURN=$(if $(filter SATURN,$(CPUS)),1,0) + +ifneq ($(filter SATURN,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/saturn +CPUOBJS += $(CPUOBJ)/saturn/saturn.o +DBGOBJS += $(CPUOBJ)/saturn/saturnds.o +endif + +$(CPUOBJ)/saturn/saturn.o: $(CPUSRC)/saturn/saturn.c \ + $(CPUSRC)/saturn/sattable.c \ + $(CPUSRC)/saturn/satops.c \ + $(CPUSRC)/saturn/saturn.h \ + $(CPUSRC)/saturn/sat.h + + + +#------------------------------------------------- +# Signetics 2650 +#------------------------------------------------- + +CPUDEFS += -DHAS_S2650=$(if $(filter S2650,$(CPUS)),1,0) + +ifneq ($(filter S2650,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/s2650 +CPUOBJS += $(CPUOBJ)/s2650/s2650.o +DBGOBJS += $(CPUOBJ)/s2650/2650dasm.o +endif + +$(CPUOBJ)/s2650/s2650.o: $(CPUSRC)/s2650/s2650.c \ + $(CPUSRC)/s2650/s2650.h \ + $(CPUSRC)/s2650/s2650cpu.h + + + +#------------------------------------------------- +# SC61860 +#------------------------------------------------- + +CPUDEFS += -DHAS_SC61860=$(if $(filter SC61860,$(CPUS)),1,0) + +ifneq ($(filter SC61860,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/sc61860 +CPUOBJS += $(CPUOBJ)/sc61860/sc61860.o +DBGOBJS += $(CPUOBJ)/sc61860/scdasm.o +endif + +$(CPUOBJ)/sc61860/sc61860.o: $(CPUSRC)/sc61860/sc61860.h \ + $(CPUSRC)/sc61860/sc.h \ + $(CPUSRC)/sc61860/scops.c \ + $(CPUSRC)/sc61860/sctable.c + + + +#------------------------------------------------- +# SM8500 +#------------------------------------------------- + +CPUDEFS += -DHAS_SM8500=$(if $(filter SM8500,$(CPUS)),1,0) + +ifneq ($(filter SM8500,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/sm8500 +CPUOBJS += $(CPUOBJ)/sm8500/sm8500.o +DBGOBJS += $(CPUOBJ)/sm8500/sm8500d.o +endif + +$(CPUOBJ)/sm8500/sm8500.o: $(CPUSRC)/sm8500/sm8500.c \ + $(CPUSRC)/sm8500/sm8500.h \ + $(CPUSRC)/sm8500/sm85ops.h + + + +#------------------------------------------------- +# Sony/Nintendo SPC700 +#------------------------------------------------- + +CPUDEFS += -DHAS_SPC700=$(if $(filter SPC700,$(CPUS)),1,0) + +ifneq ($(filter SPC700,$(CPUS)),) +SPCD = cpu/spc700 +OBJDIRS += $(CPUOBJ)/spc700 +CPUOBJS += $(CPUOBJ)/spc700/spc700.o +DBGOBJS += $(CPUOBJ)/spc700/spc700ds.o +endif + +$(CPUOBJ)/spc700/spc700.o: $(CPUSRC)/spc700/spc700.c \ + $(CPUSRC)/spc700/spc700.h + + + +#------------------------------------------------- +# Sony PlayStation CPU (R3000-based + GTE) +#------------------------------------------------- + +CPUDEFS += -DHAS_PSXCPU=$(if $(filter PSXCPU,$(CPUS)),1,0) + +ifneq ($(filter PSXCPU,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/mips +CPUOBJS += $(CPUOBJ)/mips/psx.o +DBGOBJS += $(CPUOBJ)/mips/mipsdasm.o +endif + +$(CPUOBJ)/mips/psx.o: $(CPUSRC)/mips/psx.c \ + $(CPUSRC)/mips/psx.h + + + +#------------------------------------------------- +# SSP1610 +#------------------------------------------------- + +CPUDEFS += -DHAS_SSP1610=$(if $(filter SSP1610,$(CPUS)),1,0) + +ifneq ($(filter SSP1610,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/ssp1610 +CPUOBJS += $(CPUOBJ)/ssp1610/ssp1610.o +DBGOBJS += $(CPUOBJ)/ssp1610/ssp1610d.o +endif + +$(CPUOBJ)/ssp1610/ssp1610.o: $(CPUSRC)/ssp1610/ssp1610.c \ + $(CPUSRC)/ssp1610/ssp1610.h + + + +#------------------------------------------------- +# Texas Instruments TMS7000 series +#------------------------------------------------- + +CPUDEFS += -DHAS_TMS7000=$(if $(filter TMS7000,$(CPUS)),1,0) +CPUDEFS += -DHAS_TMS7000_EXL=$(if $(filter TMS7000_EXL,$(CPUS)),1,0) + +ifneq ($(filter TMS7000 TMS7000_EXL,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/tms7000 +CPUOBJS += $(CPUOBJ)/tms7000/tms7000.o +DBGOBJS += $(CPUOBJ)/tms7000/7000dasm.o +endif + +$(CPUOBJ)/tms7000/tms7000.o: $(CPUSRC)/tms7000/tms7000.h \ + $(CPUSRC)/tms7000/tms7000.c + +$(CPUOBJ)/tms7000/7000dasm.o: $(CPUSRC)/tms7000/tms7000.h \ + $(CPUSRC)/tms7000/7000dasm.c + + + +#------------------------------------------------- +# Texas Instruments TMS99xx series +#------------------------------------------------- + +CPUDEFS += -DHAS_TMS9900=$(if $(filter TMS9900,$(CPUS)),1,0) +CPUDEFS += -DHAS_TMS9940=$(if $(filter TMS9940,$(CPUS)),1,0) +CPUDEFS += -DHAS_TMS9980=$(if $(filter TMS9980,$(CPUS)),1,0) +CPUDEFS += -DHAS_TMS9985=$(if $(filter TMS9985,$(CPUS)),1,0) +CPUDEFS += -DHAS_TMS9989=$(if $(filter TMS9989,$(CPUS)),1,0) +CPUDEFS += -DHAS_TMS9995=$(if $(filter TMS9995,$(CPUS)),1,0) +CPUDEFS += -DHAS_TMS99105A=$(if $(filter TMS99105A,$(CPUS)),1,0) +CPUDEFS += -DHAS_TMS99110A=$(if $(filter TMS99110A,$(CPUS)),1,0) +CPUDEFS += -DHAS_TMS99000=$(if $(filter TMS99000,$(CPUS)),1,0) +CPUDEFS += -DHAS_TI990_10=$(if $(filter TMS99010,$(CPUS)),1,0) + +ifneq ($(filter TMS9900 TMS9940 TMS99000,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/tms9900 +CPUOBJS += $(CPUOBJ)/tms9900/tms9900.o +DBGOBJS += $(CPUOBJ)/tms9900/9900dasm.o +endif + +ifneq ($(filter TMS9980 TMS9985 TMS9989,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/tms9900 +CPUOBJS += $(CPUOBJ)/tms9900/tms9980a.o +DBGOBJS += $(CPUOBJ)/tms9900/9900dasm.o +endif + +ifneq ($(filter TMS9995 TMS99105A TMS99110A,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/tms9900 +CPUOBJS += $(CPUOBJ)/tms9900/tms9995.o +DBGOBJS += $(CPUOBJ)/tms9900/9900dasm.o +endif + +ifneq ($(filter TMS99010,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/tms9900 +CPUOBJS += $(CPUOBJ)/tms9900/ti990_10.o +DBGOBJS += $(CPUOBJ)/tms9900/9900dasm.o +endif + +$(CPUOBJ)/tms9900/tms9900.o: $(CPUSRC)/tms9900/tms9900.c \ + $(CPUSRC)/tms9900/tms9900.h \ + $(CPUSRC)/tms9900/99xxcore.h \ + $(CPUSRC)/tms9900/99xxstat.h + +$(CPUOBJ)/tms9900/tms9980a.o: $(CPUSRC)/tms9900/tms9980a.c \ + $(CPUSRC)/tms9900/tms9900.h \ + $(CPUSRC)/tms9900/99xxcore.h \ + $(CPUSRC)/tms9900/99xxstat.h + +$(CPUOBJ)/tms9900/tms9995.o: $(CPUSRC)/tms9900/tms9995.c \ + $(CPUSRC)/tms9900/tms9900.h \ + $(CPUSRC)/tms9900/99xxcore.h \ + $(CPUSRC)/tms9900/99xxstat.h + +$(CPUOBJ)/tms9900/ti990_10.o: $(CPUSRC)/tms9900/ti990_10.c \ + $(CPUSRC)/tms9900/tms9900.h \ + $(CPUSRC)/tms9900/99xxcore.h \ + $(CPUSRC)/tms9900/99xxstat.h + + + +#------------------------------------------------- +# Texas Instruments TMS340x0 graphics controllers +#------------------------------------------------- + +CPUDEFS += -DHAS_TMS34010=$(if $(filter TMS34010,$(CPUS)),1,0) +CPUDEFS += -DHAS_TMS34020=$(if $(filter TMS34020,$(CPUS)),1,0) + +ifneq ($(filter TMS34010 TMS34020,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/tms34010 +CPUOBJS += $(CPUOBJ)/tms34010/tms34010.o $(CPUOBJ)/tms34010/34010fld.o +DBGOBJS += $(CPUOBJ)/tms34010/34010dsm.o +endif + +$(CPUOBJ)/tms34010/34010fld.o: $(CPUSRC)/tms34010/34010fld.c + +$(CPUOBJ)/tms34010/tms34010.o: $(CPUSRC)/tms34010/tms34010.c \ + $(CPUSRC)/tms34010/tms34010.h \ + $(CPUSRC)/tms34010/34010ops.c \ + $(CPUSRC)/tms34010/34010gfx.c \ + $(CPUSRC)/tms34010/34010tbl.c + + + +#------------------------------------------------- +# Texas Instruments TMS3201x DSP +#------------------------------------------------- + +CPUDEFS += -DHAS_TMS32010=$(if $(filter TMS32010,$(CPUS)),1,0) + +ifneq ($(filter TMS32010,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/tms32010 +CPUOBJS += $(CPUOBJ)/tms32010/tms32010.o +DBGOBJS += $(CPUOBJ)/tms32010/32010dsm.o +endif + +$(CPUOBJ)/tms32010/tms32010.o: $(CPUSRC)/tms32010/tms32010.c \ + $(CPUSRC)/tms32010/tms32010.h + + + +#------------------------------------------------- +# Texas Instruments TMS3202x DSP +#------------------------------------------------- + +CPUDEFS += -DHAS_TMS32025=$(if $(filter TMS32025,$(CPUS)),1,0) +CPUDEFS += -DHAS_TMS32026=$(if $(filter TMS32026,$(CPUS)),1,0) + +ifneq ($(filter TMS32025 TMS32026,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/tms32025 +CPUOBJS += $(CPUOBJ)/tms32025/tms32025.o +DBGOBJS += $(CPUOBJ)/tms32025/32025dsm.o +endif + +$(CPUOBJ)/tms32025/tms32025.o: $(CPUSRC)/tms32025/tms32025.c \ + $(CPUSRC)/tms32025/tms32025.h + + + +#------------------------------------------------- +# Texas Instruments TMS3203x DSP +#------------------------------------------------- + +CPUDEFS += -DHAS_TMS32031=$(if $(filter TMS32031,$(CPUS)),1,0) +CPUDEFS += -DHAS_TMS32032=$(if $(filter TMS32032,$(CPUS)),1,0) + +ifneq ($(filter TMS32031 TMS32032,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/tms32031 +CPUOBJS += $(CPUOBJ)/tms32031/tms32031.o +DBGOBJS += $(CPUOBJ)/tms32031/dis32031.o +endif + +$(CPUOBJ)/tms32031/tms32031.o: $(CPUSRC)/tms32031/tms32031.c \ + $(CPUSRC)/tms32031/tms32031.h \ + $(CPUSRC)/tms32031/32031ops.c + + + +#------------------------------------------------- +# Texas Instruments TMS3205x DSP +#------------------------------------------------- + +CPUDEFS += -DHAS_TMS32051=$(if $(filter TMS32051,$(CPUS)),1,0) + +ifneq ($(filter TMS32051,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/tms32051 +CPUOBJS += $(CPUOBJ)/tms32051/tms32051.o +DBGOBJS += $(CPUOBJ)/tms32051/dis32051.o +endif + +$(CPUOBJ)/tms32051/tms32051.o: $(CPUSRC)/tms32051/tms32051.c \ + $(CPUSRC)/tms32051/tms32051.h + + + +#------------------------------------------------- +# Toshiba TLCS-90 Series +#------------------------------------------------- + +CPUDEFS += -DHAS_TLCS90=$(if $(filter TLCS90,$(CPUS)),1,0) + +ifneq ($(filter TLCS90,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/tlcs90 +CPUOBJS += $(CPUOBJ)/tlcs90/tlcs90.o +#DBGOBJS += $(CPUOBJ)/tlcs90/tlcs90.o +endif + +$(CPUOBJ)/tlcs90/tlcs90.o: $(CPUSRC)/tlcs90/tlcs90.c \ + $(CPUSRC)/tlcs90/tlcs90.h + + + +#------------------------------------------------- +# TX0 +#------------------------------------------------- + +CPUDEFS += -DHAS_TX0_64KW=$(if $(filter TX0,$(CPUS)),1,0) +CPUDEFS += -DHAS_TX0_8KW=$(if $(filter TX0,$(CPUS)),1,0) + +ifneq ($(filter TX0,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/pdp1 +CPUOBJS += $(CPUOBJ)/pdp1/tx0.o +DBGOBJS += $(CPUOBJ)/pdp1/tx0dasm.o +endif + +$(CPUOBJ)/pdp1/tx0.o: $(CPUSRC)/pdp1/tx0.h \ + $(CPUSRC)/pdp1/tx0.c + +$(CPUOBJ)/pdp1/tx0dasm.o: $(CPUSRC)/pdp1/tx0.h \ + $(CPUSRC)/pdp1/tx0dasm.c + + + +#------------------------------------------------- +# Zilog Z80 +#------------------------------------------------- + +CPUDEFS += -DHAS_Z80=$(if $(filter Z80,$(CPUS)),1,0) + +ifneq ($(filter Z80,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/z80 +CPUOBJS += $(CPUOBJ)/z80/z80.o $(CPUOBJ)/z80/z80daisy.o +DBGOBJS += $(CPUOBJ)/z80/z80dasm.o +endif + +$(CPUOBJ)/z80/z80.o: $(CPUSRC)/z80/z80.c \ + $(CPUSRC)/z80/z80.h + + + +#------------------------------------------------- +# Zilog Z180 +#------------------------------------------------- + +CPUDEFS += -DHAS_Z180=$(if $(filter Z180,$(CPUS)),1,0) + +ifneq ($(filter Z180,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/z180 $(CPUOBJ)/z80 +CPUOBJS += $(CPUOBJ)/z180/z180.o $(CPUOBJ)/z80/z80daisy.o +DBGOBJS += $(CPUOBJ)/z180/z180dasm.o +endif + +$(CPUOBJ)/z180/z180.o: $(CPUSRC)/z180/z180.c \ + $(CPUSRC)/z180/z180.h \ + $(CPUSRC)/z180/z180daa.h \ + $(CPUSRC)/z180/z180op.c \ + $(CPUSRC)/z180/z180ops.h \ + $(CPUSRC)/z180/z180tbl.h \ + $(CPUSRC)/z180/z180cb.c \ + $(CPUSRC)/z180/z180dd.c \ + $(CPUSRC)/z180/z180ed.c \ + $(CPUSRC)/z180/z180fd.c \ + $(CPUSRC)/z180/z180xy.c + + + +#------------------------------------------------- +# Zilog Z8000 +#------------------------------------------------- + +CPUDEFS += -DHAS_Z8000=$(if $(filter Z8000,$(CPUS)),1,0) + +ifneq ($(filter Z8000,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/z8000 +CPUOBJS += $(CPUOBJ)/z8000/z8000.o +DBGOBJS += $(CPUOBJ)/z8000/8000dasm.o +endif + +$(CPUOBJ)/z8000/z8000.o: $(CPUSRC)/z8000/z8000.c \ + $(CPUSRC)/z8000/z8000.h \ + $(CPUSRC)/z8000/z8000cpu.h \ + $(CPUSRC)/z8000/z8000dab.h \ + $(CPUSRC)/z8000/z8000ops.c \ + $(CPUSRC)/z8000/z8000tbl.c + + + +#------------------------------------------------- +# Game Boy Z-80 +#------------------------------------------------- + +CPUDEFS += -DHAS_Z80GB=$(if $(filter Z80GB,$(CPUS)),1,0) + +ifneq ($(filter Z80GB,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/z80gb +CPUOBJS += $(CPUOBJ)/z80gb/z80gb.o +DBGOBJS += $(CPUOBJ)/z80gb/z80gbd.o +endif + +$(CPUOBJ)/z80gb/z80gb.o: $(CPUSRC)/z80gb/z80gb.c \ + $(CPUSRC)/z80gb/z80gb.h \ + $(CPUSRC)/z80gb/opc_cb.h \ + $(CPUSRC)/z80gb/opc_main.h + +#------------------------------------------------- +# Nintendo Minx +#------------------------------------------------- + +CPUDEFS += -DHAS_MINX=$(if $(filter MINX,$(CPUS)),1,0) + +ifneq ($(filter MINX,$(CPUS)),) +OBJDIRS += $(CPUOBJ)/minx +CPUOBJS += $(CPUOBJ)/minx/minx.o +DBGOBJS += $(CPUOBJ)/minx/minxd.o +endif + +$(CPUOBJ)/minx/minx.o: $(CPUSRC)/minx/minx.c \ + $(CPUSRC)/minx/minx.h \ + $(CPUSRC)/minx/minxd.c \ + $(CPUSRC)/minx/minxopce.h \ + $(CPUSRC)/minx/minxopcf.h \ + $(CPUSRC)/minx/minxops.h \ + $(CPUSRC)/minx/minxfunc.h + + |