This board returns D4 POST with no output. Needs further examination. Meant for the future PC87307 implementation. Also all boards that miss their SIO chips got Dev Branched just in case 2.10 gets released while some miss their SIO.
836 lines
17 KiB
Makefile
836 lines
17 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.
|
|
#
|
|
# Version: @(#)Makefile.mingw 1.0.143 2020/01/25
|
|
#
|
|
# 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
|
|
ifndef FLTO
|
|
FLTO := full
|
|
endif
|
|
|
|
ifeq ($(DEV_BUILD), y)
|
|
ifndef DEBUG
|
|
DEBUG := y
|
|
endif
|
|
ifndef DEV_BRANCH
|
|
DEV_BRANCH := y
|
|
endif
|
|
ifndef AMD_K5
|
|
AMD_K5 := y
|
|
endif
|
|
ifndef CL5422
|
|
CL5422 := y
|
|
endif
|
|
ifndef LASERXT
|
|
LASERXT := y
|
|
endif
|
|
ifndef MGA
|
|
MGA := y
|
|
endif
|
|
ifndef MR495
|
|
MR495 := y
|
|
endif
|
|
ifndef MRTHOR
|
|
MRTHOR := y
|
|
endif
|
|
ifndef PAS16
|
|
PAS16 := n
|
|
endif
|
|
ifndef PORTABLE3
|
|
PORTABLE3 := y
|
|
endif
|
|
ifndef PS1M2133
|
|
PS1M2133 := y
|
|
endif
|
|
ifndef PS2M70T4
|
|
PS2M70T4 := y
|
|
endif
|
|
ifndef VECTRA54
|
|
VECTRA54 := y
|
|
endif
|
|
ifndef VPP60
|
|
VP660 := y
|
|
endif
|
|
ifndef SIEMENS
|
|
SIEMENS := y
|
|
endif
|
|
ifndef 596B
|
|
596B := y
|
|
endif
|
|
ifndef VGAWONDER
|
|
VGAWONDER := y
|
|
endif
|
|
ifndef VNC
|
|
VNC := y
|
|
endif
|
|
ifndef WIN471
|
|
WIN471 := y
|
|
endif
|
|
ifndef XL24
|
|
XL24 := y
|
|
endif
|
|
ifndef NO_SIO
|
|
NO_SIO := y
|
|
endif
|
|
else
|
|
ifndef DEBUG
|
|
DEBUG := n
|
|
endif
|
|
ifndef DEV_BRANCH
|
|
DEV_BRANCH := n
|
|
endif
|
|
ifndef AMD_K5
|
|
AMD_K5 := n
|
|
endif
|
|
ifndef CL5422
|
|
CL5422 := n
|
|
endif
|
|
ifndef LASERXT
|
|
LASERXT := n
|
|
endif
|
|
ifndef MGA
|
|
MGA := n
|
|
endif
|
|
ifndef MR495
|
|
MR495 := n
|
|
endif
|
|
ifndef MRTHOR
|
|
MRTHOR := n
|
|
endif
|
|
ifndef PAS16
|
|
PAS16 := n
|
|
endif
|
|
ifndef PORTABLE3
|
|
PORTABLE3 := n
|
|
endif
|
|
ifndef PS1M2133
|
|
PS1M2133 := n
|
|
endif
|
|
ifndef PS2M70T4
|
|
PS2M70T4 := n
|
|
endif
|
|
ifndef VECTRA54
|
|
VECTRA54 := n
|
|
endif
|
|
ifndef VPP60
|
|
VP660 := n
|
|
endif
|
|
ifndef 596B
|
|
596B := n
|
|
endif
|
|
ifndef VGAWONDER
|
|
VGAWONDER := n
|
|
endif
|
|
ifndef VNC
|
|
VNC := n
|
|
endif
|
|
ifndef WIN471
|
|
WIN471 := n
|
|
endif
|
|
ifndef XL24
|
|
XL24 := n
|
|
endif
|
|
ifndef NO_SIO
|
|
NO_SIO := 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 WX
|
|
WX := n
|
|
endif
|
|
ifndef USB
|
|
USB := n
|
|
endif
|
|
ifndef DINPUT
|
|
DINPUT := y
|
|
endif
|
|
ifndef OPENAL
|
|
OPENAL := y
|
|
endif
|
|
ifndef FLUIDSYNTH
|
|
FLUIDSYNTH := y
|
|
endif
|
|
ifndef MUNT
|
|
MUNT := y
|
|
endif
|
|
ifndef DYNAREC
|
|
DYNAREC := y
|
|
ifeq ($(ARM), y)
|
|
DYNAREC := n
|
|
endif
|
|
ifeq ($(ARM64), y)
|
|
DYNAREC := n
|
|
endif
|
|
endif
|
|
ifndef DISCORD
|
|
DISCORD := y
|
|
endif
|
|
|
|
|
|
# Name of the executable.
|
|
ifndef PROG
|
|
ifneq ($(WX), n)
|
|
PROG := Wx86Box
|
|
else
|
|
PROG := 86Box
|
|
endif
|
|
endif
|
|
|
|
# WxWidgets basic info. Extract using the config program.
|
|
ifneq ($(WX), n)
|
|
EXPATH += wx
|
|
WX_CONFIG := wx-config.exe
|
|
ifeq ($(WX), y)
|
|
WX_PATH := C:/MinGW32/WxWidgets
|
|
WX_FLAGS := -I$(WX_PATH)/lib/wx/include/msw-unicode-3.0 \
|
|
-I$(WX_PATH)/include/wx-3.0 \
|
|
-D__WXMSW__ -DWX_PRECOMP -D_FILE_OFFSET_BITS=64 -pthread
|
|
# -lwx_mswu_gl-3.0 -lwxtiff-3.0 -llzma
|
|
WX_LIBS := -mwindows -mthreads -L$(WX_PATH)/lib \
|
|
-lwx_mswu-3.0.dll \
|
|
-lrpcrt4 -loleaut32 -lole32 -luuid \
|
|
-lwinspool -lwinmm -lshell32 -lcomctl32 \
|
|
-lcomdlg32 -ladvapi32 -lwsock32 -lgdi32
|
|
endif
|
|
ifeq ($(WX), static)
|
|
WX_PATH := C:/MinGW32/WxWidgets
|
|
WX_FLAGS := -I$(WX_PATH)/lib/wx/include/msw-unicode-3.0 \
|
|
-I$(WX_PATH)/include/wx-3.0 \
|
|
-D__WXMSW__ -DWX_PRECOMP -D_FILE_OFFSET_BITS=64 -pthread
|
|
# -lwx_mswu_gl-3.0 -lwxtiff-3.0 -llzma
|
|
WX_LIBS := -mwindows -mthreads -L$(WX_PATH)/lib \
|
|
-lwx_mswu-3.0 -lwxscintilla-3.0 \
|
|
-lwxjpeg-3.0 -lwxpng-3.0 -lwxzlib-3.0 \
|
|
-lwxregexu-3.0 -lwxexpat-3.0 \
|
|
-lrpcrt4 -loleaut32 -lole32 -luuid \
|
|
-lwinspool -lwinmm -lshell32 -lcomctl32 \
|
|
-lcomdlg32 -ladvapi32 -lwsock32 -lgdi32
|
|
endif
|
|
endif
|
|
|
|
|
|
#########################################################################
|
|
# Nothing should need changing from here on.. #
|
|
#########################################################################
|
|
VPATH := $(EXPATH) . cpu cpu_common \
|
|
cdrom chipset disk floppy game machine \
|
|
printer \
|
|
sound \
|
|
sound/munt sound/munt/c_interface sound/munt/sha1 \
|
|
sound/munt/srchelper \
|
|
sound/resid-fp \
|
|
scsi video network network/slirp win
|
|
ifeq ($(X64), y)
|
|
TOOL_PREFIX := x86_64-w64-mingw32-
|
|
else
|
|
TOOL_PREFIX := i686-w64-mingw32-
|
|
endif
|
|
CPP := ${TOOL_PREFIX}g++
|
|
CC := gcc
|
|
WINDRES := windres
|
|
STRIP := strip
|
|
ifeq ($(ARM64), y)
|
|
CPP := aarch64-w64-mingw32-g++
|
|
CC := aarch64-w64-mingw32-gcc
|
|
WINDRES := aarch64-w64-mingw32-windres
|
|
STRIP := aarch64-w64-mingw32-strip
|
|
endif
|
|
ifeq ($(ARM), y)
|
|
CPP := armv7-w64-mingw32-g++
|
|
CC := armv7-w64-mingw32-gcc
|
|
WINDRES := armv7-w64-mingw32-windres
|
|
STRIP := armv7-w64-mingw32-strip
|
|
endif
|
|
DEPS = -MMD -MF $*.d -c $<
|
|
DEPFILE := win/.depends
|
|
|
|
# Set up the correct toolchain flags.
|
|
OPTS := $(EXTRAS) $(STUFF)
|
|
OPTS += -Iinclude \
|
|
-iquote cpu -iquote cpu_common
|
|
ifdef EXFLAGS
|
|
OPTS += $(EXFLAGS)
|
|
endif
|
|
ifdef EXINC
|
|
OPTS += -I$(EXINC)
|
|
endif
|
|
ifeq ($(X64), y)
|
|
ifeq ($(OPTIM), y)
|
|
DFLAGS := -march=native
|
|
else
|
|
DFLAGS :=
|
|
endif
|
|
else
|
|
ifeq ($(OPTIM), y)
|
|
DFLAGS := -march=native
|
|
else
|
|
DFLAGS := -march=i686
|
|
endif
|
|
endif
|
|
ifeq ($(DEBUG), y)
|
|
DFLAGS += -ggdb -DDEBUG
|
|
AOPTIM :=
|
|
ifndef COPTIM
|
|
COPTIM := -Og
|
|
endif
|
|
else
|
|
DFLAGS += -g0
|
|
ifeq ($(OPTIM), y)
|
|
AOPTIM := -mtune=native
|
|
ifndef COPTIM
|
|
COPTIM := -O3 -flto=$(FLTO)
|
|
endif
|
|
else
|
|
ifndef COPTIM
|
|
COPTIM := -O3
|
|
endif
|
|
endif
|
|
endif
|
|
AFLAGS := -msse2 -mfpmath=387
|
|
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
|
|
ifeq ($(RELEASE), y)
|
|
OPTS += -DRELEASE_BUILD
|
|
RFLAGS += -DRELEASE_BUILD
|
|
endif
|
|
ifeq ($(VRAMDUMP), y)
|
|
OPTS += -DENABLE_VRAM_DUMP
|
|
RFLAGS += -DENABLE_VRAM_DUMP
|
|
endif
|
|
|
|
|
|
# Optional modules.
|
|
ifeq ($(DYNAREC), y)
|
|
ifeq ($(X64), y)
|
|
PLATCG := codegen_x86-64.o
|
|
else
|
|
PLATCG := codegen_x86.o
|
|
endif
|
|
|
|
OPTS += -DUSE_DYNAREC
|
|
RFLAGS += -DUSE_DYNAREC
|
|
DYNARECOBJ := 386_dynarec_ops.o \
|
|
codegen.o \
|
|
codegen_ops.o 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 $(PLATCG)
|
|
endif
|
|
|
|
ifneq ($(WX), n)
|
|
OPTS += -DUSE_WX $(WX_FLAGS)
|
|
LIBS += $(WX_LIBS)
|
|
UIOBJ := wx_main.o wx_ui.o wx_stbar.o wx_render.o
|
|
else
|
|
UIOBJ := win_ui.o win_stbar.o \
|
|
win_sdl.o \
|
|
win_dialog.o win_about.o \
|
|
win_settings.o win_devconf.o win_snd_gain.o \
|
|
win_new_floppy.o win_jsconf.o
|
|
endif
|
|
|
|
ifeq ($(OPENAL), y)
|
|
OPTS += -DUSE_OPENAL
|
|
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 File.o FileStream.o LA32Ramp.o \
|
|
LA32FloatWaveGenerator.o LA32WaveGenerator.o \
|
|
MidiStreamParser.o Part.o Partial.o PartialManager.o \
|
|
Poly.o ROMInfo.o SampleRateConverter_dummy.o Synth.o \
|
|
Tables.o TVA.o TVF.o TVP.o sha1.o c_interface.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 ($(DISCORD), y)
|
|
OPTS += -DUSE_DISCORD
|
|
RFLAGS += -DUSE_DISCORD
|
|
DISCORDOBJ := win_discord.o
|
|
endif
|
|
|
|
# Options for the DEV branch.
|
|
ifeq ($(DEV_BRANCH), y)
|
|
OPTS += -DDEV_BRANCH
|
|
DEVBROBJ :=
|
|
|
|
ifeq ($(AMD_K5), y)
|
|
OPTS += -DUSE_AMD_K5
|
|
endif
|
|
|
|
ifeq ($(CL5422), y)
|
|
OPTS += -DUSE_CL5422
|
|
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 ($(MR495), y)
|
|
OPTS += -DUSE_MR495
|
|
endif
|
|
|
|
ifeq ($(MRTHOR), y)
|
|
OPTS += -DUSE_MRTHOR
|
|
endif
|
|
|
|
ifeq ($(PAS16), y)
|
|
OPTS += -DUSE_PAS16
|
|
DEVBROBJ += snd_pas16.o
|
|
endif
|
|
|
|
ifeq ($(PORTABLE3), y)
|
|
OPTS += -DUSE_PORTABLE3
|
|
endif
|
|
|
|
ifeq ($(PS1M2133), y)
|
|
OPTS += -DUSE_PS1M2133
|
|
endif
|
|
|
|
ifeq ($(PS2M70T4), y)
|
|
OPTS += -DUSE_PS2M70T4
|
|
endif
|
|
|
|
ifeq ($(VECTRA54), y)
|
|
OPTS += -DUSE_VECTRA54
|
|
endif
|
|
|
|
ifeq ($(VPP60), y)
|
|
OPTS += -DUSE_VPP60
|
|
endif
|
|
|
|
ifeq ($(SIEMENS), y)
|
|
OPTS += -DUSE_SIEMENS
|
|
endif
|
|
|
|
ifeq ($(596B), y)
|
|
OPTS += -DUSE_596B
|
|
endif
|
|
|
|
ifeq ($(VGAWONDER), y)
|
|
OPTS += -DUSE_VGAWONDER
|
|
endif
|
|
|
|
ifeq ($(WIN471), y)
|
|
OPTS += -DUSE_WIN471
|
|
endif
|
|
|
|
ifeq ($(XL24), y)
|
|
OPTS += -DUSE_XL24
|
|
endif
|
|
|
|
ifeq ($(NO_SIO), y)
|
|
OPTS += -DNO_SIO
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
# Options for works-in-progress.
|
|
ifndef SERIAL
|
|
SERIAL := serial.o
|
|
endif
|
|
|
|
|
|
# Final versions of the toolchain flags.
|
|
CFLAGS := $(WX_FLAGS) $(OPTS) $(DFLAGS) $(COPTIM) $(AOPTIM) \
|
|
$(AFLAGS) -pipe -fomit-frame-pointer -mstackrealign -Wall \
|
|
-fno-strict-aliasing
|
|
# -funroll-loops
|
|
|
|
# Add freetyp2 references through pkgconfig
|
|
ifeq ($(DEBUG), y)
|
|
CFLAGS := $(CFLAGS) -fstack-protector-all `pkg-config --cflags freetype2`
|
|
else
|
|
CFLAGS := $(CFLAGS) `pkg-config --cflags freetype2`
|
|
endif
|
|
|
|
CXXFLAGS := $(CFLAGS)
|
|
|
|
|
|
#########################################################################
|
|
# Create the (final) list of objects to build. #
|
|
#########################################################################
|
|
MAINOBJ := pc.o config.o random.o timer.o io.o acpi.o apm.o dma.o ddma.o \
|
|
nmi.o pic.o pit.o port_92.o ppi.o pci.o mca.o mcr.o mem.o rom.o \
|
|
usb.o device.o nvr.o nvr_at.o nvr_ps2.o sst_flash.o via_vt82c586b.o \
|
|
via_vt82c596b.o $(VNCOBJ)
|
|
|
|
INTELOBJ := intel_flash.o \
|
|
intel_sio.o intel_piix.o
|
|
|
|
CPUOBJ := cpu.o cpu_table.o \
|
|
808x.o \
|
|
386.o 386_common.o \
|
|
386_dynarec.o \
|
|
x86seg.o x87.o \
|
|
$(DYNARECOBJ)
|
|
|
|
CHIPSETOBJ := acc2168.o acer_m3a.o cs8230.o ali1429.o headland.o \
|
|
intel_4x0.o neat.o opti495.o scamp.o scat.o \
|
|
sis_85c471.o sis_85c496.o \
|
|
via_apollo.o via_vpx.o wd76c10.o
|
|
|
|
MCHOBJ := machine.o machine_table.o \
|
|
m_xt.o m_xt_compaq.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_olivetti_m24.o m_tandy.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_5.o m_at_socket7_s7.o m_at_super7_ss7.o \
|
|
m_at_socket8.o m_at_slot1.o m_at_socket370.o
|
|
|
|
DEVOBJ := bugger.o hwm.o hwm_w83781d.o ibm_5161.o isamem.o isartc.o lpt.o postcard.o $(SERIAL) \
|
|
sio_detect.o sio_acc3221.o \
|
|
sio_f82c710.o \
|
|
sio_fdc37c66x.o sio_fdc37c669.o \
|
|
sio_fdc37c93x.o \
|
|
sio_pc87306.o \
|
|
sio_w83787f.o \
|
|
sio_w83877f.o sio_w83977f.o \
|
|
sio_um8669f.o \
|
|
smbus.o smbus_piix4.o spd.o \
|
|
keyboard.o \
|
|
keyboard_xt.o keyboard_at.o \
|
|
gameport.o \
|
|
joystick_standard.o joystick_ch_flightstick_pro.o \
|
|
joystick_sw_pad.o joystick_tm_fcs.o \
|
|
mouse.o \
|
|
mouse_bus.o \
|
|
mouse_serial.o mouse_ps2.o
|
|
|
|
FDDOBJ := fdd.o fdc.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
|
|
|
|
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_sff8038i.o
|
|
|
|
CDROMOBJ := cdrom.o \
|
|
cdrom_image_backend.o cdrom_image.o
|
|
|
|
ZIPOBJ := zip.o
|
|
|
|
MOOBJ := mo.o
|
|
|
|
ifeq ($(USB), y)
|
|
USBOBJ := usb.o
|
|
endif
|
|
|
|
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_spock.o
|
|
|
|
NETOBJ := network.o \
|
|
net_pcap.o \
|
|
net_slirp.o \
|
|
bootp.o ip_icmp.o misc.o socket.o tcp_timer.o cksum.o \
|
|
ip_input.o queue.o tcp_input.o debug.o ip_output.o \
|
|
sbuf.o tcp_output.o udp.o if.o mbuf.o slirp.o tcp_subr.o \
|
|
net_dp8390.o \
|
|
net_3c503.o net_ne2000.o \
|
|
net_pcnet.o net_wd8003.o
|
|
|
|
PRINTOBJ := png.o prt_cpmap.o \
|
|
prt_escp.o prt_text.o prt_ps.o
|
|
|
|
SNDOBJ := sound.o \
|
|
openal.o \
|
|
snd_opl.o snd_opl_backend.o \
|
|
nukedopl.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 midi_system.o \
|
|
snd_speaker.o \
|
|
snd_pssj.o \
|
|
snd_lpt_dac.o snd_lpt_dss.o \
|
|
snd_adlib.o snd_adlibgold.o snd_ad1848.o snd_audiopci.o \
|
|
snd_azt2316a.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 := 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_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_ics2595.o \
|
|
vid_cl54xx.o \
|
|
vid_et4000.o vid_sc1502x_ramdac.o \
|
|
vid_et4000w32.o vid_stg_ramdac.o \
|
|
vid_ht216.o \
|
|
vid_oak_oti.o \
|
|
vid_paradise.o \
|
|
vid_ti_cf62011.o \
|
|
vid_tvga.o \
|
|
vid_tgui9440.o vid_tkd8001_ramdac.o \
|
|
vid_att20c49x_ramdac.o \
|
|
vid_s3.o vid_s3_virge.o \
|
|
vid_sdac_ramdac.o \
|
|
vid_voodoo.o
|
|
|
|
PLATOBJ := win.o \
|
|
win_dynld.o win_thread.o \
|
|
win_cdrom.o win_keyboard.o \
|
|
win_crashdump.o win_midi.o \
|
|
win_mouse.o
|
|
|
|
ifeq ($(DINPUT), y)
|
|
PLATOBJ += win_joystick.o
|
|
else
|
|
PLATOBJ += win_joystick_rawinput.o
|
|
endif
|
|
|
|
OBJ := $(MAINOBJ) $(INTELOBJ) $(CPUOBJ) $(CHIPSETOBJ) $(MCHOBJ) \
|
|
$(DEVOBJ) $(FDDOBJ) $(CDROMOBJ) $(ZIPOBJ) $(MOOBJ) $(HDDOBJ) \
|
|
$(USBOBJ) $(NETOBJ) $(PRINTOBJ) $(SCSIOBJ) $(SNDOBJ) $(VIDOBJ) \
|
|
$(PLATOBJ) $(UIOBJ) $(FSYNTHOBJ) $(MUNTOBJ) $(DEVBROBJ) \
|
|
$(DISCORDOBJ)
|
|
ifdef EXOBJ
|
|
OBJ += $(EXOBJ)
|
|
endif
|
|
|
|
LIBS := -mwindows -lcomctl32 \
|
|
-lopenal -lole32
|
|
ifeq ($(DEBUG), y)
|
|
LIBS += -lssp
|
|
endif
|
|
|
|
ifeq ($(VNC), y)
|
|
LIBS += $(VNCLIB) -lws2_32
|
|
endif
|
|
ifneq ($(WX), n)
|
|
LIBS += $(WX_LIBS) -lm
|
|
endif
|
|
LIBS += -lpng -lz -lwsock32 -lshell32 -liphlpapi -lpsapi -lSDL2 -limm32 -lhid -lsetupapi -loleaut32 -lversion -lwinmm -static -lstdc++
|
|
ifneq ($(X64), y)
|
|
LIBS += -Wl,--large-address-aware
|
|
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 $< >NUL
|
|
|
|
%.d: %.cc $(wildcard $*.d)
|
|
@echo $<
|
|
@$(CPP) $(CXXFLAGS) $(DEPS) -E $< >NUL
|
|
|
|
%.d: %.cpp $(wildcard $*.d)
|
|
@echo $<
|
|
@$(CPP) $(CXXFLAGS) $(DEPS) -E $< >NUL
|
|
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 ..
|
|
ifeq ($(DEBUG), y)
|
|
@$(CC) $(LDFLAGS) -o pcap_if.exe pcap_if.o win_dynld.o pcap_if.res -lssp
|
|
else
|
|
@$(CC) $(LDFLAGS) -o pcap_if.exe pcap_if.o win_dynld.o pcap_if.res
|
|
@$(STRIP) pcap_if.exe
|
|
endif
|
|
|
|
hello.exe: hello.o
|
|
$(CXX) $(LDFLAGS) -o hello.exe hello.o $(WXLIBS) $(LIBS)
|
|
ifneq ($(DEBUG), y)
|
|
@$(STRIP) hello.exe
|
|
endif
|
|
|
|
|
|
clean:
|
|
@echo Cleaning objects..
|
|
@-rm -f *.o 2>NUL
|
|
@-rm -f *.res 2>NUL
|
|
|
|
clobber: clean
|
|
@echo Cleaning executables..
|
|
@-rm -f *.d 2>NUL
|
|
@-rm -f *.exe 2>NUL
|
|
# @-rm -f $(DEPFILE) 2>NUL
|
|
|
|
ifneq ($(AUTODEP), y)
|
|
depclean:
|
|
@-rm -f $(DEPFILE) 2>NUL
|
|
@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.
|