904 lines
20 KiB
Makefile
904 lines
20 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 DEV_BRANCH
|
|
DEV_BRANCH := y
|
|
endif
|
|
ifndef AMD_K5
|
|
AMD_K5 := y
|
|
endif
|
|
ifndef CL5422
|
|
CL5422 := y
|
|
endif
|
|
ifndef CYRIX_6X86
|
|
CYRIX_6X86 := y
|
|
endif
|
|
ifndef GUSMAX
|
|
GUSMAX := y
|
|
endif
|
|
ifndef HEDAKA
|
|
HEDAKA := y
|
|
endif
|
|
ifndef LASERXT
|
|
LASERXT := y
|
|
endif
|
|
ifndef MGA
|
|
MGA := y
|
|
endif
|
|
ifndef NO_SIO
|
|
NO_SIO := y
|
|
endif
|
|
ifndef OPEN_AT
|
|
OPEN_AT := y
|
|
endif
|
|
ifndef PAS16
|
|
PAS16 := n
|
|
endif
|
|
ifndef PS1M2133
|
|
PS1M2133 := y
|
|
endif
|
|
ifndef PS2M70T4
|
|
PS2M70T4 := y
|
|
endif
|
|
ifndef S3TRIO3D2X
|
|
S3TRIO3D2X := y
|
|
endif
|
|
ifndef SIO_DETECT
|
|
SIO_DETECT := y
|
|
endif
|
|
ifndef STPC
|
|
STPC := y
|
|
endif
|
|
ifndef M1489
|
|
M1489 := y
|
|
endif
|
|
ifndef M6117
|
|
M6117 := y
|
|
endif
|
|
ifndef VGAWONDER
|
|
VGAWONDER := y
|
|
endif
|
|
ifndef VNC
|
|
VNC := y
|
|
endif
|
|
ifndef XL24
|
|
XL24 := y
|
|
endif
|
|
ifndef USE_VECT486VL
|
|
USE_VECT486VL := 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 CYRIX_6X86
|
|
CYRIX_6X86 := n
|
|
endif
|
|
ifndef GUSMAX
|
|
GUSMAX := n
|
|
endif
|
|
ifndef HEDAKA
|
|
HEDAKA := n
|
|
endif
|
|
ifndef LASERXT
|
|
LASERXT := n
|
|
endif
|
|
ifndef MGA
|
|
MGA := n
|
|
endif
|
|
ifndef NO_SIO
|
|
NO_SIO := n
|
|
endif
|
|
ifndef OPEN_AT
|
|
OPEN_AT := n
|
|
endif
|
|
ifndef PAS16
|
|
PAS16 := n
|
|
endif
|
|
ifndef PS1M2133
|
|
PS1M2133 := n
|
|
endif
|
|
ifndef PS2M70T4
|
|
PS2M70T4 := n
|
|
endif
|
|
ifndef S3TRIO3D2X
|
|
S3TRIO3D2X := n
|
|
endif
|
|
ifndef SIO_DETECT
|
|
SIO_DETECT := n
|
|
endif
|
|
ifndef STPC
|
|
STPC := y
|
|
endif
|
|
ifndef M1489
|
|
M1489 := n
|
|
endif
|
|
ifndef M6117
|
|
M6117 := n
|
|
endif
|
|
ifndef VGAWONDER
|
|
VGAWONDER := n
|
|
endif
|
|
ifndef VNC
|
|
VNC := n
|
|
endif
|
|
ifndef XL24
|
|
XL24 := n
|
|
endif
|
|
ifndef USE_VECT486VL
|
|
USE_VECT486VL := 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 DINPUT
|
|
DINPUT := n
|
|
endif
|
|
ifndef OPENAL
|
|
OPENAL := y
|
|
endif
|
|
ifndef FLUIDSYNTH
|
|
FLUIDSYNTH := y
|
|
endif
|
|
ifndef MUNT
|
|
MUNT := y
|
|
endif
|
|
ifndef NEW_DYNAREC
|
|
NEW_DYNAREC := n
|
|
endif
|
|
ifndef DYNAREC
|
|
DYNAREC := 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
|
|
ifndef DISCORD
|
|
DISCORD := y
|
|
endif
|
|
|
|
|
|
# Path to the dynamic recompiler code.
|
|
ifeq ($(NEW_DYNAREC), y)
|
|
CODEGEN := codegen_new
|
|
else
|
|
CODEGEN := codegen
|
|
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) . $(CODEGEN) 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 \
|
|
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 := ${TOOL_PREFIX}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 $(CODEGEN) -iquote cpu
|
|
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 -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
|
|
ifeq ($(RELEASE), y)
|
|
OPTS += -DRELEASE_BUILD
|
|
RFLAGS += -DRELEASE_BUILD
|
|
endif
|
|
ifeq ($(VRAMDUMP), y)
|
|
OPTS += -DENABLE_VRAM_DUMP
|
|
RFLAGS += -DENABLE_VRAM_DUMP
|
|
endif
|
|
ifeq ($(NOHOOK), y)
|
|
OPTS += -DNO_KEYBOARD_HOOK
|
|
RFLAGS += -DNO_KEYBOARD_HOOK
|
|
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 ($(WX), y)
|
|
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 win_media_menu.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.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 ($(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 ($(CYRIX_6X86), y)
|
|
OPTS += -DUSE_CYRIX_6X86
|
|
endif
|
|
|
|
ifeq ($(GUSMAX), y)
|
|
OPTS += -DUSE_GUSMAX
|
|
endif
|
|
|
|
ifeq ($(HEDAKA), y)
|
|
OPTS += -DUSE_HEDAKA
|
|
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 ($(NO_SIO), y)
|
|
OPTS += -DNO_SIO
|
|
endif
|
|
|
|
ifeq ($(OPEN_AT), y)
|
|
OPTS += -DUSE_OPEN_AT
|
|
endif
|
|
|
|
ifeq ($(PAS16), y)
|
|
OPTS += -DUSE_PAS16
|
|
DEVBROBJ += snd_pas16.o
|
|
endif
|
|
|
|
ifeq ($(PS1M2133), y)
|
|
OPTS += -DUSE_PS1M2133
|
|
endif
|
|
|
|
ifeq ($(PS2M70T4), y)
|
|
OPTS += -DUSE_PS2M70T4
|
|
endif
|
|
|
|
ifeq ($(S3TRIO3D2X), y)
|
|
OPTS += -DUSE_S3TRIO3D2X
|
|
endif
|
|
|
|
ifeq ($(SIO_DETECT), y)
|
|
OPTS += -DUSE_SIO_DETECT
|
|
DEVBROBJ += sio_detect.o
|
|
endif
|
|
|
|
ifeq ($(STPC), y)
|
|
OPTS += -DUSE_STPC
|
|
DEVBROBJ += stpc.o
|
|
endif
|
|
|
|
ifeq ($(M1489), y)
|
|
OPTS += -DUSE_M1489
|
|
DEVBROBJ += ali1489.o
|
|
endif
|
|
|
|
ifeq ($(M6117), y)
|
|
OPTS += -DUSE_M6117
|
|
DEVBROBJ += ali6117.o
|
|
endif
|
|
|
|
ifeq ($(VGAWONDER), y)
|
|
OPTS += -DUSE_VGAWONDER
|
|
endif
|
|
|
|
ifeq ($(XL24), y)
|
|
OPTS += -DUSE_XL24
|
|
endif
|
|
|
|
ifeq ($(USE_VECT486VL), y)
|
|
OPTS += -DUSE_VECT486VL
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
# Final versions of the toolchain flags.
|
|
CFLAGS := $(WX_FLAGS) $(OPTS) $(DFLAGS) $(COPTIM) $(AOPTIM) \
|
|
$(AFLAGS) -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 := 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 \
|
|
usb.o device.o nvr.o nvr_at.o nvr_ps2.o \
|
|
$(VNCOBJ)
|
|
|
|
MEMOBJ := catalyst_flash.o i2c_eeprom.o intel_flash.o mem.o rom.o smram.o spd.o sst_flash.o
|
|
|
|
CPUOBJ := cpu.o cpu_table.o \
|
|
808x.o 386.o 386_common.o 386_dynarec.o 386_dynarec_ops.o $(CGTOBJ) \
|
|
x86seg.o x87.o x87_timings.o \
|
|
$(DYNARECOBJ)
|
|
|
|
CHIPSETOBJ := acc2168.o cs8230.o ali1429.o headland.o intel_82335.o cs4031.o \
|
|
intel_420ex.o intel_4x0.o intel_sio.o intel_piix.o ioapic.o \
|
|
neat.o opti495.o opti895.o opti5x7.o scamp.o scat.o via_vt82c49x.o via_vt82c505.o \
|
|
sis_85c310.o sis_85c4xx.o sis_85c496.o sis_85c50x.o opti283.o opti291.o umc491.o \
|
|
via_apollo.o via_pipc.o wd76c10.o vl82c480.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_xt_olivetti.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.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
|
|
|
|
DEVOBJ := bugger.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 vpc2007.o clock_ics9xxx.o \
|
|
i2c.o i2c_gpio.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
|
|
|
|
SIOOBJ := sio_acc3221.o \
|
|
sio_f82c710.o sio_82091aa.o \
|
|
sio_fdc37c661.o sio_fdc37c66x.o sio_fdc37c669.o sio_fdc37c93x.o \
|
|
sio_pc87306.o sio_pc87307.o sio_pc87309.o sio_pc87332.o \
|
|
sio_w83787f.o \
|
|
sio_w83877f.o sio_w83977f.o \
|
|
sio_um8669f.o \
|
|
sio_vt82c686.o
|
|
|
|
FDDOBJ := fdd.o fdc.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_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.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 \
|
|
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
|
|
|
|
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_nuked.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_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_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 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 \
|
|
vid_ogc.o \
|
|
vid_nga.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) $(CPUOBJ) $(CHIPSETOBJ) $(MCHOBJ) $(DEVOBJ) $(MEMOBJ) \
|
|
$(FDDOBJ) $(GAMEOBJ) $(CDROMOBJ) $(ZIPOBJ) $(MOOBJ) $(HDDOBJ) $(MINIVHDOBJ) \
|
|
$(NETOBJ) $(PRINTOBJ) $(SCSIOBJ) $(SIOOBJ) $(SNDOBJ) $(VIDOBJ) \
|
|
$(PLATOBJ) $(UIOBJ) $(FSYNTHOBJ) $(MUNTOBJ) $(DEVBROBJ) \
|
|
$(DISCORDOBJ)
|
|
ifdef EXOBJ
|
|
OBJ += $(EXOBJ)
|
|
endif
|
|
|
|
LIBS := -mwindows -lcomctl32 \
|
|
-lopenal -lole32
|
|
|
|
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 -luxtheme -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 $< >/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
|
|
|
|
|
|
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 $(WXLIBS) $(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.
|