Files
86Box/src/win/Makefile.mingw
Lubomir Rintel 7026204aea Add the Epson Equity LT Machine
This is a portable computer based around NEC V30 processor and what
seems to be a proprietary Epson chip set.

The chip set provides a XT-class keyboard controller/PPI, controller for
two DD floppy drives, CGA-compatible video, one serial and one parallel
port. There's no datasheet for the chip set.

The machine has a 640x200 monochromatic LCD display, optionally backlit
and an external CRT connector. There can be up to two floppy drives,
one of them optionally connected to an external connector (shared with
the parallel port). There are physical switches to enable the external
CRT and floppy connectors.

There's a battery-backed RTC/NVRAM that holds configuration, including
backlight timeout, UART configuration and floppy types.

The machine has two expansion slots, half the pich of a regular 8-bit
ISA, but electrically compatible. Hard drive and modem adapters were
available, I don't have them.

The checksums of the ROM images are as follows:

  SHA1(2d58397f81f006e7729648dd3720e3004e20ac36) =
  roms/machines/elt/HLO-B2.rom

  SHA1(8c06cd3905f71f15fec2a3759cea5b2c5dc602c3) =
  roms/machines/elt/HLO-A2.rom
2022-10-23 13:47:53 +02:00

918 lines
21 KiB
Makefile

#
#
# 86Box A hypervisor and IBM PC system emulator that specializes in
# running old operating systems and software designed for IBM
# PC systems and compatibles from 1981 through fairly recent
# system designs based on the PCI bus.
#
# This file is part of the 86Box distribution.
#
# Makefile for Win32 (MinGW32) environment.
#
# Authors: Miran Grca, <mgrca8@gmail.com>
# Fred N. van Kempen, <decwiz@yahoo.com>
#
# Various compile-time options.
ifndef STUFF
STUFF :=
endif
# Add feature selections here.
ifndef EXTRAS
EXTRAS :=
endif
ifndef DEV_BUILD
DEV_BUILD := n
endif
ifeq ($(DEV_BUILD), y)
ifndef DEBUG
DEBUG := y
endif
ifndef GDBSTUB
GDBSTUB := n
endif
ifndef DEV_BRANCH
DEV_BRANCH := y
endif
ifndef AMD_K5
AMD_K5 := y
endif
ifndef AN430TX
AN430TX := y
endif
ifndef CYRIX_6X86
CYRIX_6X86 := y
endif
ifndef DESKPRO386
DESKPRO386 := y
endif
ifndef GUSMAX
GUSMAX := y
endif
ifndef ISAMEM_RAMPAGE
ISAMEM_RAMPAGE := y
endif
ifndef ISAMEM_IAB
ISAMEM_IAB := y
endif
ifndef ISAMEM_BRAT
ISAMEM_BRAT := y
endif
ifndef LASERXT
LASERXT := y
endif
ifndef MGA
MGA := y
endif
ifndef OLIVETTI
OLIVETTI := y
endif
ifndef OPEN_AT
OPEN_AT := y
endif
ifndef PAS16
PAS16 := y
endif
ifndef SIO_DETECT
SIO_DETECT := y
endif
ifndef VGAWONDER
VGAWONDER := y
endif
ifndef XL24
XL24 := y
endif
ifndef NEW_KBC
NEW_KBC := n
endif
else
ifndef DEBUG
DEBUG := n
endif
ifndef GDBSTUB
GDBSTUB := n
endif
ifndef DEV_BRANCH
DEV_BRANCH := n
endif
ifndef AMD_K5
AMD_K5 := n
endif
ifndef AN430TX
AN430TX := n
endif
ifndef CYRIX_6X86
CYRIX_6X86 := n
endif
ifndef DESKPRO386
DESKPRO386 := n
endif
ifndef GUSMAX
GUSMAX := n
endif
ifndef ISAMEM_RAMPAGE
ISAMEM_RAMPAGE := n
endif
ifndef ISAMEM_IAB
ISAMEM_IAB := n
endif
ifndef ISAMEM_BRAT
ISAMEM_BRAT := n
endif
ifndef LASERXT
LASERXT := n
endif
ifndef MGA
MGA := n
endif
ifndef OLIVETTI
OLIVETTI := n
endif
ifndef OPEN_AT
OPEN_AT := n
endif
ifndef PAS16
PAS16 := n
endif
ifndef SIO_DETECT
SIO_DETECT := n
endif
ifndef VGAWONDER
VGAWONDER := n
endif
ifndef XL24
XL24 := n
endif
ifndef NEW_KBC
NEW_KBC := n
endif
endif
# Defaults for several build options (possibly defined in a chained file.)
ifndef AUTODEP
AUTODEP := n
endif
ifndef OPTIM
OPTIM := n
endif
ifndef RELEASE
RELEASE := n
endif
ifndef X64
X64 := n
endif
ifndef ARM
ARM := n
endif
ifndef ARM64
ARM64 := n
endif
ifndef DINPUT
DINPUT := n
endif
ifndef FAUDIO
FAUDIO := n
endif
ifndef OPENAL
OPENAL := n
endif
ifndef FLUIDSYNTH
FLUIDSYNTH := y
endif
ifndef MUNT
MUNT := y
endif
ifndef VNC
VNC := n
endif
ifndef NEW_DYNAREC
NEW_DYNAREC := n
endif
ifndef DYNAREC
DYNAREC := y
endif
ifndef CPPTHREADS
CPPTHREADS := y
endif
ifndef RTMIDI
RTMIDI := y
endif
ifeq ($(DYNAREC), y)
ifeq ($(ARM), y)
ifeq ($(NEW_DYNAREC), n)
DYNAREC := n
endif
endif
ifeq ($(ARM64), y)
ifeq ($(NEW_DYNAREC), n)
DYNAREC := n
endif
endif
endif
# Path to the dynamic recompiler code.
ifeq ($(NEW_DYNAREC), y)
CODEGEN := codegen_new
else
CODEGEN := codegen
endif
# Name of the executable.
PROG := 86Box
#########################################################################
# Nothing should need changing from here on.. #
#########################################################################
VPATH := $(EXPATH) . $(CODEGEN) minitrace cpu \
cdrom chipset device disk disk/minivhd floppy \
game machine mem printer \
sio sound \
sound/munt sound/munt/c_interface sound/munt/sha1 \
sound/munt/srchelper sound/munt/srchelper/srctools/src \
sound/resid-fp sound/ymfm \
scsi video network network/slirp win
ifeq ($(X64), y)
TOOL_PREFIX := x86_64-w64-mingw32-
else
TOOL_PREFIX := i686-w64-mingw32-
endif
WINDRES := windres
STRIP := strip
ifeq ($(ARM64), y)
WINDRES := aarch64-w64-mingw32-windres
STRIP := aarch64-w64-mingw32-strip
endif
ifeq ($(ARM), y)
WINDRES := armv7-w64-mingw32-windres
STRIP := armv7-w64-mingw32-strip
endif
ifeq ($(CLANG), y)
CPP := clang++
CC := clang
ifeq ($(ARM64), y)
CPP := aarch64-w64-mingw32-clang++
CC := aarch64-w64-mingw32-clang
endif
ifeq ($(ARM), y)
CPP := armv7-w64-mingw32-clang++
CC := armv7-w64-mingw32-clang
endif
else
CPP := ${TOOL_PREFIX}g++
CC := ${TOOL_PREFIX}gcc
ifeq ($(ARM64), y)
CPP := aarch64-w64-mingw32-g++
CC := aarch64-w64-mingw32-gcc
endif
ifeq ($(ARM), y)
CPP := armv7-w64-mingw32-g++
CC := armv7-w64-mingw32-gcc
endif
endif
DEPS = -MMD -MF $*.d -c $<
DEPFILE := win/.depends
# Set up the correct toolchain flags.
OPTS := $(EXTRAS) $(STUFF)
OPTS += -Iinclude -Iinclude_make \
-iquote $(CODEGEN) -iquote cpu
ifdef EXFLAGS
OPTS += $(EXFLAGS)
endif
ifdef EXINC
OPTS += -I$(EXINC)
endif
ifeq ($(OPTIM), y)
DFLAGS := -march=native
else
ifeq ($(X64), y)
DFLAGS :=
else
DFLAGS := -march=i686
endif
endif
ifeq ($(DEBUG), y)
DFLAGS += -ggdb -DDEBUG -DUSE_ACYCS
AOPTIM :=
ifndef COPTIM
COPTIM := -Og
endif
else
DFLAGS += -g0
ifeq ($(OPTIM), y)
AOPTIM := -mtune=native
ifndef COPTIM
COPTIM := -O3 -ffp-contract=fast -flto
endif
else
ifndef COPTIM
COPTIM := -O3
endif
endif
endif
AFLAGS := -msse2 -mfpmath=sse
ifeq ($(ARM), y)
DFLAGS := -march=armv7-a
AOPTIM :=
AFLAGS := -mfloat-abi=hard
endif
ifeq ($(ARM64), y)
DFLAGS := -march=armv8-a
AOPTIM :=
AFLAGS := -mfloat-abi=hard
endif
RFLAGS := --input-format=rc -O coff -Iinclude -Iinclude_make
ifeq ($(RELEASE), y)
OPTS += -DRELEASE_BUILD
RFLAGS += -DRELEASE_BUILD
endif
# Optional modules.
ifeq ($(DYNAREC), y)
OPTS += -DUSE_DYNAREC
RFLAGS += -DUSE_DYNAREC
ifeq ($(NEW_DYNAREC), y)
OPTS += -DUSE_NEW_DYNAREC
RFLAGS += -DUSE_NEW_DYNAREC
ifeq ($(X64), y)
PLATCG := codegen_backend_x86-64.o codegen_backend_x86-64_ops.o codegen_backend_x86-64_ops_sse.o \
codegen_backend_x86-64_uops.o
else ifeq ($(ARM64), y)
PLATCG := codegen_backend_arm64.o codegen_backend_arm64_ops.o codegen_backend_arm64_uops.o \
codegen_backend_arm64_imm.o
else ifeq ($(ARM), y)
PLATCG := codegen_backend_arm.o codegen_backend_arm_ops.o codegen_backend_arm_uops.o
else
PLATCG := codegen_backend_x86.o codegen_backend_x86_ops.o codegen_backend_x86_ops_fpu.o \
codegen_backend_x86_ops_sse.o codegen_backend_x86_uops.o
endif
DYNARECOBJ := codegen.o codegen_accumulate.o codegen_allocator.o codegen_block.o codegen_ir.o codegen_ops.o \
codegen_ops_3dnow.o codegen_ops_branch.o codegen_ops_arith.o codegen_ops_fpu_arith.o \
codegen_ops_fpu_constant.o codegen_ops_fpu_loadstore.o codegen_ops_fpu_misc.o codegen_ops_helpers.o \
codegen_ops_jump.o codegen_ops_logic.o codegen_ops_misc.o codegen_ops_mmx_arith.o codegen_ops_mmx_cmp.o \
codegen_ops_mmx_loadstore.o codegen_ops_mmx_logic.o codegen_ops_mmx_pack.o codegen_ops_mmx_shift.o \
codegen_ops_mov.o codegen_ops_shift.o codegen_ops_stack.o codegen_reg.o $(PLATCG)
else
ifeq ($(X64), y)
PLATCG := codegen_x86-64.o codegen_accumulate_x86-64.o
else
PLATCG := codegen_x86.o codegen_accumulate_x86.o
endif
DYNARECOBJ := codegen.o \
codegen_ops.o $(PLATCG)
endif
CGTOBJ := codegen_timing_486.o \
codegen_timing_686.o codegen_timing_common.o codegen_timing_k6.o codegen_timing_pentium.o \
codegen_timing_p6.o codegen_timing_winchip.o codegen_timing_winchip2.o
else
ifeq ($(NEW_DYNAREC), y)
OPTS += -DUSE_NEW_DYNAREC
RFLAGS += -DUSE_NEW_DYNAREC
endif
endif
ifeq ($(FLUIDSYNTH), y)
OPTS += -DUSE_FLUIDSYNTH
FSYNTHOBJ := midi_fluidsynth.o
endif
ifeq ($(MUNT), y)
OPTS += -DUSE_MUNT
MUNTOBJ := midi_mt32.o \
Analog.o BReverbModel.o Display.o File.o FileStream.o LA32Ramp.o \
LA32FloatWaveGenerator.o LA32WaveGenerator.o \
MidiStreamParser.o Part.o Partial.o PartialManager.o \
Poly.o ROMInfo.o SampleRateConverter.o \
FIRResampler.o IIR2xResampler.o LinearResampler.o ResamplerModel.o \
SincResampler.o InternalResampler.o \
Synth.o Tables.o TVA.o TVF.o TVP.o sha1.o c_interface.o
endif
ifeq ($(CPPTHREADS), y)
THREADOBJ := thread.o
else
THREADOBJ := win_thread.o
endif
ifeq ($(VNC), y)
OPTS += -DUSE_VNC
RFLAGS += -DUSE_VNC
ifneq ($(VNC_PATH), )
OPTS += -I$(VNC_PATH)\INCLUDE
VNCLIB := -L$(VNC_PATH)\LIB
endif
VNCLIB += -lvncserver
VNCOBJ := vnc.o vnc_keymap.o
endif
ifeq ($(MINITRACE), y)
OPTS += -DMTR_ENABLED
RFLAGS += -DMTR_ENABLED
MINITRACEOBJ := minitrace.o
endif
ifeq ($(FAUDIO), y)
OPTS += -DUSE_FAUDIO
endif
# Options for the DEV branch.
ifeq ($(DEV_BRANCH), y)
OPTS += -DDEV_BRANCH
RFLAGS += -DDEV_BRANCH
DEVBROBJ :=
ifeq ($(AMD_K5), y)
OPTS += -DUSE_AMD_K5
endif
ifeq ($(AN430TX), y)
OPTS += -DUSE_AN430TX
endif
ifeq ($(CYRIX_6X86), y)
OPTS += -DUSE_CYRIX_6X86
endif
ifeq ($(DESKPRO386), y)
OPTS += -DUSE_DESKPRO386
endif
ifeq ($(GUSMAX), y)
OPTS += -DUSE_GUSMAX
endif
ifeq ($(ISAMEM_RAMPAGE), y)
OPTS += -DUSE_ISAMEM_RAMPAGE
endif
ifeq ($(ISAMEM_IAB), y)
OPTS += -DUSE_ISAMEM_IAB
endif
ifeq ($(ISAMEM_BRAT), y)
OPTS += -DUSE_ISAMEM_BRAT
endif
ifeq ($(LASERXT), y)
OPTS += -DUSE_LASERXT
DEVBROBJ += m_xt_laserxt.o
endif
ifeq ($(MGA), y)
OPTS += -DUSE_MGA
DEVBROBJ += vid_mga.o
endif
ifeq ($(OPEN_AT), y)
OPTS += -DUSE_OPEN_AT
endif
ifeq ($(PAS16), y)
OPTS += -DUSE_PAS16
DEVBROBJ += snd_pas16.o
endif
ifeq ($(SIO_DETECT), y)
OPTS += -DUSE_SIO_DETECT
DEVBROBJ += sio_detect.o
endif
ifeq ($(VGAWONDER), y)
OPTS += -DUSE_VGAWONDER
endif
ifeq ($(XL24), y)
OPTS += -DUSE_XL24
endif
ifeq ($(OLIVETTI), y)
OPTS += -DUSE_OLIVETTI
DEVBROBJ += olivetti_eva.o
endif
ifeq ($(GDBSTUB), y)
OPTS += -DUSE_GDBSTUB
DEVBROBJ += gdbstub.o
endif
endif
# Final versions of the toolchain flags.
CFLAGS := $(OPTS) $(DFLAGS) $(COPTIM) $(AOPTIM) \
$(AFLAGS) -fomit-frame-pointer -mstackrealign -Wall \
-fno-strict-aliasing
# Add freetyp2 references through pkgconfig
CFLAGS := $(CFLAGS) `pkg-config --cflags freetype2`
CXXFLAGS := $(CFLAGS)
#########################################################################
# Create the (final) list of objects to build. #
#########################################################################
MAINOBJ := 86box.o config.o log.o random.o timer.o io.o acpi.o apm.o dma.o ddma.o \
nmi.o pic.o pit.o pit_fast.o port_6x.o port_92.o ppi.o pci.o mca.o fifo8.o \
usb.o device.o nvr.o nvr_at.o nvr_ps2.o machine_status.o ini.o \
$(VNCOBJ)
MEMOBJ := catalyst_flash.o i2c_eeprom.o intel_flash.o mem.o rom.o smram.o spd.o sst_flash.o
CPUOBJ := $(DYNARECOBJ) \
$(CGTOBJ) \
cpu.o cpu_table.o fpu.o x86.o \
808x.o 386.o 386_common.o 386_dynarec.o 386_dynarec_ops.o \
x86seg.o x87.o x87_timings.o
CHIPSETOBJ := 82c100.o acc2168.o \
contaq_82c59x.o \
cs4031.o cs8230.o \
ali1429.o ali1489.o ali1531.o ali1541.o ali1543.o ali1621.o ali6117.o \
gc100.o headland.o \
ims8848.o intel_82335.o intel_420ex.o intel_4x0.o intel_i450kx.o intel_sio.o intel_piix.o \
ioapic.o \
neat.o \
opti283.o opti291.o opti391.o opti495.o opti822.o opti895.o opti5x7.o \
scamp.o scat.o \
stpc.o \
wd76c10.o vl82c480.o \
umc_8886.o umc_hb4.o \
via_vt82c49x.o via_vt82c505.o via_apollo.o via_pipc.o \
sis_85c310.o sis_85c4xx.o sis_85c496.o sis_85c50x.o sis_5511.o sis_5571.o
MCHOBJ := machine.o machine_table.o \
m_xt.o m_xt_compaq.o \
m_xt_philips.o \
m_xt_t1000.o m_xt_t1000_vid.o \
m_xt_xi8088.o m_xt_zenith.o \
m_pcjr.o \
m_amstrad.o m_europc.o \
m_elt.o \
m_xt_olivetti.o m_tandy.o m_v86p.o \
m_at.o m_at_commodore.o \
m_at_t3100e.o m_at_t3100e_vid.o \
m_ps1.o m_ps1_hdc.o \
m_ps2_isa.o m_ps2_mca.o \
m_at_compaq.o \
m_at_286_386sx.o m_at_386dx_486.o \
m_at_socket4.o m_at_socket5.o m_at_socket7_3v.o m_at_socket7.o m_at_sockets7.o \
m_at_socket8.o m_at_slot1.o m_at_slot2.o m_at_socket370.o \
m_at_misc.o
ifeq ($(NEW_KBC), y)
DEVOBJ := bugger.o cartridge.o cassette.o hasp.o hwm.o hwm_lm75.o hwm_lm78.o hwm_gl518sm.o hwm_vt82c686.o \
ibm_5161.o isamem.o isartc.o lpt.o pci_bridge.o postcard.o serial.o \
clock_ics9xxx.o isapnp.o \
i2c.o i2c_gpio.o smbus_ali7101.o smbus_piix4.o \
keyboard.o \
keyboard_xt.o kbc_at.o kbd_at.o \
mouse.o \
mouse_bus.o \
mouse_serial.o mouse_ps2.o \
phoenix_486_jumper.o
else
DEVOBJ := bugger.o cartridge.o cassette.o hasp.o hwm.o hwm_lm75.o hwm_lm78.o hwm_gl518sm.o hwm_vt82c686.o \
ibm_5161.o isamem.o isartc.o lpt.o pci_bridge.o postcard.o serial.o \
clock_ics9xxx.o isapnp.o \
i2c.o i2c_gpio.o smbus_ali7101.o smbus_piix4.o \
keyboard.o \
keyboard_xt.o keyboard_at.o \
mouse.o \
mouse_bus.o \
mouse_serial.o mouse_ps2.o \
phoenix_486_jumper.o
endif
SIOOBJ := sio_acc3221.o sio_ali5123.o \
sio_f82c710.o sio_82091aa.o sio_fdc37c6xx.o \
sio_fdc37c67x.o sio_fdc37c669.o sio_fdc37c93x.o sio_fdc37m60x.o \
sio_it8661f.o \
sio_pc87306.o sio_pc87307.o sio_pc87309.o sio_pc87310.o sio_pc87311.o sio_pc87332.o \
sio_prime3b.o sio_prime3c.o \
sio_w83787f.o \
sio_w83877f.o sio_w83977f.o \
sio_um8669f.o \
sio_vt82c686.o
FDDOBJ := fdd.o fdc.o fdc_magitronic.o fdc_pii15xb.o \
fdi2raw.o \
fdd_common.o fdd_86f.o \
fdd_fdi.o fdd_imd.o fdd_img.o fdd_json.o \
fdd_mfm.o fdd_td0.o
GAMEOBJ := gameport.o \
joystick_standard.o joystick_ch_flightstick_pro.o \
joystick_sw_pad.o joystick_tm_fcs.o
HDDOBJ := hdd.o \
hdd_image.o hdd_table.o \
hdc.o \
hdc_st506_xt.o hdc_st506_at.o \
hdc_xta.o \
hdc_esdi_at.o hdc_esdi_mca.o \
hdc_xtide.o hdc_ide.o \
hdc_ide_opti611.o \
hdc_ide_cmd640.o hdc_ide_cmd646.o \
hdc_ide_sff8038i.o
MINIVHDOBJ := cwalk.o libxml2_encoding.o minivhd_convert.o \
minivhd_create.o minivhd_io.o minivhd_manage.o \
minivhd_struct_rw.o minivhd_util.o
CDROMOBJ := cdrom.o \
cdrom_image_backend.o cdrom_image_viso.o cdrom_image.o
ZIPOBJ := zip.o
MOOBJ := mo.o
SCSIOBJ := scsi.o scsi_device.o \
scsi_cdrom.o scsi_disk.o \
scsi_x54x.o \
scsi_aha154x.o scsi_buslogic.o \
scsi_ncr5380.o scsi_ncr53c8xx.o \
scsi_pcscsi.o scsi_spock.o
NETOBJ := network.o \
net_pcap.o \
net_slirp.o tinyglib.o \
arp_table.o bootp.o cksum.o dnssearch.o if.o ip_icmp.o ip_input.o \
ip_output.o mbuf.o misc.o sbuf.o slirp.o socket.o tcp_input.o \
tcp_output.o tcp_subr.o tcp_timer.o udp.o util.o version.o \
net_dp8390.o \
net_3c503.o net_ne2000.o \
net_pcnet.o net_wd8003.o \
net_plip.o net_event.o
PRINTOBJ := png.o prt_cpmap.o \
prt_escp.o prt_text.o prt_ps.o
SNDOBJ := sound.o \
snd_opl.o snd_opl_nuked.o snd_opl_ymfm.o \
ymfm_adpcm.o ymfm_misc.o ymfm_opl.o ymfm_opm.o \
ymfm_opn.o ymfm_opq.o ymfm_opz.o ymfm_pcm.o ymfm_ssg.o \
snd_resid.o \
convolve.o convolve-sse.o envelope.o extfilt.o \
filter.o pot.o sid.o voice.o wave6581__ST.o \
wave6581_P_T.o wave6581_PS_.o wave6581_PST.o \
wave8580__ST.o wave8580_P_T.o wave8580_PS_.o \
wave8580_PST.o wave.o \
midi.o \
snd_speaker.o \
snd_pssj.o \
snd_ps1.o \
snd_lpt_dac.o snd_lpt_dss.o \
snd_adlib.o snd_adlibgold.o snd_ad1848.o snd_audiopci.o \
snd_ac97_codec.o snd_ac97_via.o \
snd_azt2316a.o snd_cs423x.o snd_cmi8x38.o \
snd_cms.o \
snd_gus.o \
snd_sb.o snd_sb_dsp.o \
snd_emu8k.o snd_mpu401.o \
snd_sn76489.o snd_ssi2001.o \
snd_wss.o \
snd_ym7128.o
VIDOBJ := agpgart.o video.o \
vid_table.o \
vid_cga.o vid_cga_comp.o \
vid_compaq_cga.o \
vid_mda.o \
vid_hercules.o vid_herculesplus.o vid_incolor.o \
vid_colorplus.o \
vid_genius.o \
vid_pgc.o vid_im1024.o \
vid_sigma.o \
vid_wy700.o \
vid_ega.o vid_ega_render.o \
vid_svga.o vid_svga_render.o \
vid_8514a.o \
vid_ddc.o \
vid_vga.o \
vid_ati_eeprom.o \
vid_ati18800.o vid_ati28800.o \
vid_ati_mach64.o vid_ati68860_ramdac.o \
vid_bt48x_ramdac.o \
vid_av9194.o vid_icd2061.o vid_ics2494.o vid_ics2595.o \
vid_cl54xx.o \
vid_et4000.o vid_sc1148x_ramdac.o \
vid_sc1502x_ramdac.o \
vid_et4000w32.o vid_stg_ramdac.o \
vid_ht216.o \
vid_oak_oti.o \
vid_paradise.o \
vid_rtg310x.o \
vid_ti_cf62011.o \
vid_f82c425.o \
vid_tvga.o \
vid_tgui9440.o vid_tkd8001_ramdac.o \
vid_att20c49x_ramdac.o \
vid_att2xc498_ramdac.o \
vid_s3.o vid_s3_virge.o \
vid_ibm_rgb528_ramdac.o vid_sdac_ramdac.o \
vid_ogc.o \
vid_nga.o \
vid_tvp3026_ramdac.o \
vid_xga.o
VOODOOOBJ := vid_voodoo.o vid_voodoo_banshee.o \
vid_voodoo_banshee_blitter.o \
vid_voodoo_blitter.o \
vid_voodoo_display.o vid_voodoo_fb.o \
vid_voodoo_fifo.o vid_voodoo_reg.o \
vid_voodoo_render.o vid_voodoo_setup.o \
vid_voodoo_texture.o
PLATOBJ := win.o \
win_dynld.o \
win_cdrom.o win_keyboard.o \
win_mouse.o
UIOBJ := win_ui.o win_icon.o win_stbar.o discord.o \
win_sdl.o win_opengl.o win_opengl_glslp.o glad.o \
win_dialog.o win_about.o \
win_settings.o win_devconf.o win_snd_gain.o win_specify_dim.o win_preferences.o \
win_new_floppy.o win_jsconf.o \
win_media_menu.o win_toolbar.o
ifeq ($(DINPUT), y)
PLATOBJ += win_joystick.o
else
PLATOBJ += win_joystick_rawinput.o
endif
ifeq ($(OPENAL), y)
SNDOBJ += openal.o
else
SNDOBJ += xaudio2.o
endif
OBJ := $(MAINOBJ) $(CPUOBJ) $(CHIPSETOBJ) $(MCHOBJ) $(DEVOBJ) $(MEMOBJ) \
$(FDDOBJ) $(GAMEOBJ) $(CDROMOBJ) $(ZIPOBJ) $(MOOBJ) $(HDDOBJ) $(MINIVHDOBJ) \
$(NETOBJ) $(PRINTOBJ) $(SCSIOBJ) $(SIOOBJ) $(SNDOBJ) $(VIDOBJ) $(VOODOOOBJ) \
$(PLATOBJ) $(UIOBJ) $(FSYNTHOBJ) $(MUNTOBJ) $(DEVBROBJ) $(MINITRACEOBJ) $(THREADOBJ)
ifdef EXOBJ
OBJ += $(EXOBJ)
endif
ifeq ($(OPENAL), y)
LIBS := -mwindows -lopenal -lcomctl32 -lSDL2 -limagehlp -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lws2_32
else
ifeq ($(FAUDIO), y)
LIBS := -mwindows -lfaudio -lcomctl32 -lSDL2 -limagehlp -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lws2_32
else
LIBS := -mwindows -lcomctl32 -lSDL2 -limagehlp -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lws2_32
endif
endif
ifeq ($(RTMIDI), y)
SNDOBJ += midi_rtmidi.o
OPTS += -DUSE_RTMIDI
LIBS += -lrtmidi
endif
ifeq ($(VNC), y)
LIBS += $(VNCLIB) -lws2_32
endif
LIBS += -lpng -lz -lwsock32 -liphlpapi -lpsapi -lhid -lsetupapi -luxtheme -static -lstdc++
ifneq ($(X64), y)
ifneq ($(ARM64), y)
LIBS += -Wl,--large-address-aware
endif
endif
ifeq ($(ARM64), y)
LIBS += -lgcc
endif
ifeq ($(DINPUT), y)
LIBS += -ldinput8
endif
LIBS += -static
# Build module rules.
ifeq ($(AUTODEP), y)
%.o: %.c
@echo $<
@$(CC) $(CFLAGS) $(DEPS) -c $<
%.o: %.cc
@echo $<
@$(CPP) $(CXXFLAGS) $(DEPS) -c $<
%.o: %.cpp
@echo $<
@$(CPP) $(CXXFLAGS) $(DEPS) -c $<
else
%.o: %.c
@echo $<
@$(CC) $(CFLAGS) -c $<
%.o: %.cc
@echo $<
@$(CPP) $(CXXFLAGS) -c $<
%.o: %.cpp
@echo $<
@$(CPP) $(CXXFLAGS) -c $<
%.d: %.c $(wildcard $*.d)
@echo $<
@$(CC) $(CFLAGS) $(DEPS) -E $< >/dev/null
%.d: %.cc $(wildcard $*.d)
@echo $<
@$(CPP) $(CXXFLAGS) $(DEPS) -E $< >/dev/null
%.d: %.cpp $(wildcard $*.d)
@echo $<
@$(CPP) $(CXXFLAGS) $(DEPS) -E $< >/dev/null
endif
# Suppress false positive warnings in vid_voodoo_codegen_x86[-64].h
# that cause ~3000 lines to be output into the logs each time.
ifneq ($(CLANG), y)
$(VOODOOOBJ): CFLAGS += -Wstringop-overflow=0
endif
all: $(PROG).exe
86Box.res: 86Box.rc
@echo Processing $<
@$(WINDRES) $(RFLAGS) $(EXTRAS) -i $< -o 86Box.res
$(PROG).exe: $(OBJ) 86Box.res
@echo Linking $(PROG).exe ..
@$(CC) $(LDFLAGS) -o $(PROG).exe $(OBJ) 86Box.res $(LIBS) -pipe
ifneq ($(DEBUG), y)
@$(STRIP) $(PROG).exe
endif
pcap_if.res: pcap_if.rc
@echo Processing $<
@$(WINDRES) $(RFLAGS) -i $< -o pcap_if.res
pcap_if.exe: pcap_if.o win_dynld.o pcap_if.res
@echo Linking pcap_if.exe ..
@$(CC) $(LDFLAGS) -o pcap_if.exe pcap_if.o win_dynld.o pcap_if.res
ifneq ($(DEBUG), y)
@$(STRIP) pcap_if.exe
endif
hello.exe: hello.o
$(CXX) $(LDFLAGS) -o hello.exe hello.o $(LIBS)
ifneq ($(DEBUG), y)
@$(STRIP) hello.exe
endif
clean:
@echo Cleaning objects..
@-rm -f *.o 2>/dev/null
@-rm -f *.res 2>/dev/null
clobber: clean
@echo Cleaning executables..
@-rm -f *.d 2>/dev/null
@-rm -f *.exe 2>/dev/null
# @-rm -f $(DEPFILE) 2>/dev/null
ifneq ($(AUTODEP), y)
depclean:
@-rm -f $(DEPFILE) 2>/dev/null
@echo Creating dependencies..
@echo # Run "make depends" to re-create this file. >$(DEPFILE)
depends: DEPOBJ=$(OBJ:%.o=%.d)
depends: depclean $(OBJ:%.o=%.d)
@-cat $(DEPOBJ) >>$(DEPFILE)
@-rm -f $(DEPOBJ)
$(DEPFILE):
endif
# Module dependencies.
ifeq ($(AUTODEP), y)
#-include $(OBJ:%.o=%.d) (better, but sloooowwwww)
-include *.d
else
include $(wildcard $(DEPFILE))
endif
# End of Makefile.mingw.