2017-05-05 01:49:42 +02:00
|
|
|
#
|
|
|
|
|
# 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.
|
|
|
|
|
#
|
2017-06-04 02:11:19 -04:00
|
|
|
# Modified Makefile for Win32 (MinGW32) environment.
|
2017-05-05 01:49:42 +02:00
|
|
|
#
|
2017-06-04 02:14:27 +02:00
|
|
|
# Version: @(#)Makefile.mingw 1.0.23 2017/06/03
|
2017-05-05 01:49:42 +02:00
|
|
|
#
|
2017-06-03 16:34:40 +02:00
|
|
|
# Authors: Miran Grca, <mgrca8@gmail.com>
|
2017-05-05 01:49:42 +02:00
|
|
|
# Fred N. van Kempen, <decwiz@yahoo.com>
|
|
|
|
|
# Sarah Walker,
|
|
|
|
|
# Richard G.,
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
# Name of the executable.
|
2017-05-24 00:27:42 -04:00
|
|
|
ifndef PROG
|
2017-05-05 01:49:42 +02:00
|
|
|
PROG = 86Box
|
2017-05-24 00:27:42 -04:00
|
|
|
endif
|
2017-05-05 01:49:42 +02:00
|
|
|
|
|
|
|
|
# Various compile-time options.
|
|
|
|
|
# -DROM_TRACE=0xcd800 traces ROM access from segment C800
|
|
|
|
|
# -DIO_TACE=0x66 traces I/O on port 0x66
|
2017-05-24 00:27:42 -04:00
|
|
|
ifndef STUFF
|
2017-05-05 01:49:42 +02:00
|
|
|
STUFF =
|
2017-05-24 00:27:42 -04:00
|
|
|
endif
|
2017-05-05 01:49:42 +02:00
|
|
|
|
|
|
|
|
# Add feature selections here.
|
2017-05-31 01:22:52 -04:00
|
|
|
# -DANSI_CFG forces the config file to ANSI encoding.
|
2017-06-04 02:11:19 -04:00
|
|
|
# -DENABLE_VRAM_DUMP enables Video Ram dumping.
|
|
|
|
|
# -DENABLE_LOG_BREAKPOINT enables extra logging.
|
|
|
|
|
# -DENABLE_BUSLOGIC_LOG enables extra logging.
|
|
|
|
|
# -DENABLE_CDROM_LOG enables extra logging.
|
|
|
|
|
# -DENABLE_D86F_LOG enables extra logging.
|
|
|
|
|
# -DENABLE_FDC_LOG enables extra logging.
|
|
|
|
|
# -DENABLE_IDE_LOG enables extra logging.
|
|
|
|
|
# -DENABLE_SERIAL_LOG enables extra logging.
|
|
|
|
|
# -DENABLE_NIC_LOG enables extra logging.
|
2017-05-24 00:27:42 -04:00
|
|
|
ifndef EXTRAS
|
2017-05-24 00:35:51 -04:00
|
|
|
EXTRAS =
|
2017-05-24 00:27:42 -04:00
|
|
|
endif
|
2017-05-05 01:49:42 +02:00
|
|
|
|
|
|
|
|
# Do we want a debugging build?
|
2017-05-24 00:27:42 -04:00
|
|
|
ifndef DEBUG
|
2017-05-22 00:21:22 -04:00
|
|
|
DEBUG = n
|
2017-05-24 00:27:42 -04:00
|
|
|
endif
|
|
|
|
|
ifndef OPTIM
|
2017-06-01 01:47:54 +02:00
|
|
|
OPTIM = n
|
2017-05-24 00:27:42 -04:00
|
|
|
endif
|
2017-06-03 14:24:19 +02:00
|
|
|
ifndef RELEASE
|
|
|
|
|
RELEASE = n
|
|
|
|
|
endif
|
2017-06-04 02:14:27 +02:00
|
|
|
ifndef USB
|
|
|
|
|
USB = n
|
|
|
|
|
endif
|
2017-06-04 02:11:19 -04:00
|
|
|
ifndef X64
|
|
|
|
|
X64 = n
|
|
|
|
|
endif
|
2017-05-05 01:49:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
#########################################################################
|
|
|
|
|
# Nothing should need changing from here on.. #
|
|
|
|
|
#########################################################################
|
2017-05-18 01:57:16 -04:00
|
|
|
VPATH = . cpu sound sound/resid-fp video lzf slirp win
|
|
|
|
|
PLAT = win/
|
2017-05-05 01:49:42 +02:00
|
|
|
CPP = g++.exe
|
|
|
|
|
CC = gcc.exe
|
|
|
|
|
WINDRES = windres.exe
|
|
|
|
|
|
2017-05-24 00:27:42 -04:00
|
|
|
OPTS = -DWIN32 -I$(PLAT) $(EXTRAS) $(STUFF)
|
2017-05-05 01:49:42 +02:00
|
|
|
ifeq ($(DEBUG), y)
|
2017-05-07 04:56:34 +02:00
|
|
|
ifeq ($(VRAMDUMP), y)
|
|
|
|
|
DFLAGS = -march=i686 -ggdb -DDEBUG -DENABLE_VRAM_DUMP
|
|
|
|
|
else
|
2017-05-06 17:48:33 +02:00
|
|
|
DFLAGS = -march=i686 -ggdb -DDEBUG
|
2017-05-07 04:56:34 +02:00
|
|
|
endif
|
2017-05-24 00:27:42 -04:00
|
|
|
ifndef COPTIM
|
2017-05-06 17:48:33 +02:00
|
|
|
COPTIM = -Og
|
2017-05-24 00:27:42 -04:00
|
|
|
endif
|
2017-05-05 01:49:42 +02:00
|
|
|
else
|
2017-05-06 17:48:33 +02:00
|
|
|
ifeq ($(OPTIM), y)
|
|
|
|
|
DFLAGS = -march=native
|
2017-05-24 00:27:42 -04:00
|
|
|
ifndef COPTIM
|
2017-05-06 17:48:33 +02:00
|
|
|
COPTIM = -O6
|
2017-05-24 00:27:42 -04:00
|
|
|
endif
|
2017-05-05 02:58:42 +02:00
|
|
|
else
|
2017-05-06 17:48:33 +02:00
|
|
|
ifeq ($(X64), y)
|
|
|
|
|
DFLAGS =
|
|
|
|
|
else
|
|
|
|
|
DFLAGS = -march=i686
|
|
|
|
|
endif
|
2017-05-24 00:27:42 -04:00
|
|
|
ifndef COPTIM
|
2017-05-06 17:48:33 +02:00
|
|
|
COPTIM = -O3
|
2017-05-05 02:58:42 +02:00
|
|
|
endif
|
2017-05-05 01:49:42 +02:00
|
|
|
endif
|
2017-05-24 00:27:42 -04:00
|
|
|
endif
|
2017-05-06 17:48:33 +02:00
|
|
|
ifeq ($(OPTIM), y)
|
|
|
|
|
AOPTIM = -mtune=native
|
|
|
|
|
else
|
|
|
|
|
AOPTIM =
|
|
|
|
|
endif
|
|
|
|
|
AFLAGS = -msse -msse2 \
|
|
|
|
|
-mfpmath=sse
|
2017-05-07 04:56:34 +02:00
|
|
|
ifeq ($(RELEASE), y)
|
|
|
|
|
CFLAGS = $(OPTS) $(DFLAGS) $(COPTIM) $(AOPTIM) $(AFLAGS) \
|
|
|
|
|
-fomit-frame-pointer -mstackrealign -DRELEASE_BUILD
|
|
|
|
|
RFLAGS = --input-format=rc -O coff -DRELEASE_BUILD
|
|
|
|
|
else
|
2017-05-06 17:48:33 +02:00
|
|
|
CFLAGS = $(OPTS) $(DFLAGS) $(COPTIM) $(AOPTIM) $(AFLAGS) \
|
2017-05-05 01:49:42 +02:00
|
|
|
-fomit-frame-pointer -mstackrealign
|
2017-05-07 04:56:34 +02:00
|
|
|
ifeq ($(VRAMDUMP), y)
|
|
|
|
|
RFLAGS = --input-format=rc -O coff -DENABLE_VRAM_DUMP
|
|
|
|
|
else
|
2017-05-05 01:49:42 +02:00
|
|
|
RFLAGS = --input-format=rc -O coff
|
2017-05-07 04:56:34 +02:00
|
|
|
endif
|
|
|
|
|
endif
|
2017-05-05 01:49:42 +02:00
|
|
|
|
2017-05-06 17:48:33 +02:00
|
|
|
ifeq ($(X64), y)
|
|
|
|
|
PLATCG = codegen_x86-64.o
|
|
|
|
|
else
|
|
|
|
|
PLATCG = codegen_x86.o
|
|
|
|
|
endif
|
|
|
|
|
|
2017-05-05 01:49:42 +02:00
|
|
|
|
|
|
|
|
MAINOBJ = pc.o config.o device.o timer.o dma.o io.o nmi.o pic.o \
|
|
|
|
|
mca.o mcr.o pit.o ppi.o pci.o sio.o intel.o rom.o mem.o \
|
|
|
|
|
memregs.o intel_flash.o rtc.o nvr.o ps2_nvr.o
|
|
|
|
|
CPUOBJ = cpu.o 386.o 386_dynarec.o 386_dynarec_ops.o 808x.o \
|
|
|
|
|
codegen.o \
|
|
|
|
|
codegen_ops.o codegen_timing_486.o \
|
|
|
|
|
codegen_timing_686.o codegen_timing_pentium.o \
|
2017-05-06 17:48:33 +02:00
|
|
|
codegen_timing_winchip.o $(PLATCG) \
|
2017-05-05 01:49:42 +02:00
|
|
|
x86seg.o x87.o
|
|
|
|
|
SYSOBJ = model.o \
|
2017-05-24 00:27:42 -04:00
|
|
|
headland.o \
|
|
|
|
|
i430hx.o i430lx.o i430fx.o i430nx.o i430vx.o i440fx.o \
|
|
|
|
|
neat.o \
|
|
|
|
|
ali1429.o \
|
|
|
|
|
opti495.o \
|
|
|
|
|
scat.o \
|
|
|
|
|
sis496.o \
|
|
|
|
|
wd76c10.o \
|
2017-06-04 02:11:19 -04:00
|
|
|
laserxt.o \
|
2017-05-24 00:27:42 -04:00
|
|
|
acer386sx.o acerm3a.o amstrad.o \
|
|
|
|
|
compaq.o olivetti_m24.o jim.o ps1.o ps2.o ps2_mca.o \
|
|
|
|
|
tandy_eeprom.o tandy_rom.o
|
2017-05-05 01:49:42 +02:00
|
|
|
DEVOBJ = bugger.o lpt.o serial.o \
|
|
|
|
|
um8669f.o pc87306.o sis85c471.o w83877f.o \
|
|
|
|
|
keyboard.o \
|
|
|
|
|
keyboard_xt.o keyboard_at.o keyboard_pcjr.o \
|
|
|
|
|
keyboard_amstrad.o keyboard_olim24.o \
|
|
|
|
|
gameport.o \
|
|
|
|
|
joystick_standard.o joystick_ch_flightstick_pro.o \
|
|
|
|
|
joystick_sw_pad.o joystick_tm_fcs.o \
|
|
|
|
|
mouse.o mouse_serial.o mouse_ps2.o mouse_bus.o \
|
|
|
|
|
fdd.o fdc.o \
|
|
|
|
|
fdc37c665.o fdc37c669.o fdc37c932fr.o fdi2raw.o \
|
2017-05-06 17:48:33 +02:00
|
|
|
hdd.o \
|
|
|
|
|
mfm_at.o mfm_xebec.o hdd_esdi.o ide.o xtide.o piix.o \
|
2017-05-05 01:49:42 +02:00
|
|
|
disc.o \
|
|
|
|
|
disc_86f.o disc_fdi.o disc_imd.o disc_img.o \
|
|
|
|
|
disc_random.o disc_td0.o \
|
2017-05-08 18:27:42 -04:00
|
|
|
cdrom.o \
|
2017-05-18 01:57:16 -04:00
|
|
|
cdrom_dosbox.o cdrom_image.o cdrom_ioctl.o cdrom_null.o
|
2017-06-04 02:11:19 -04:00
|
|
|
ifdef USB
|
2017-05-05 01:49:42 +02:00
|
|
|
USBOBJ = usb.o
|
2017-06-04 02:14:27 +02:00
|
|
|
endif
|
2017-05-11 03:25:23 -04:00
|
|
|
NETOBJ = network.o \
|
2017-05-24 00:27:42 -04:00
|
|
|
net_pcap.o net_slirp.o \
|
|
|
|
|
net_ne2000.o
|
2017-05-06 17:48:33 +02:00
|
|
|
SCSIOBJ = scsi.o scsi_disk.o scsi_buslogic.o scsi_aha154x.o
|
|
|
|
|
SNDOBJ = sound.o \
|
2017-05-24 00:27:42 -04:00
|
|
|
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 \
|
|
|
|
|
dbopl.o nukedopl.o openal.o \
|
|
|
|
|
snd_speaker.o snd_ps1.o snd_pssj.o \
|
|
|
|
|
snd_adlib.o snd_adlibgold.o snd_ad1848.o \
|
|
|
|
|
snd_sb.o snd_sb_dsp.o snd_cms.o snd_dbopl.o \
|
|
|
|
|
snd_emu8k.o snd_gus.o snd_opl.o \
|
2017-06-04 02:11:19 -04:00
|
|
|
snd_mpu401.o snd_pas16.o snd_resid.o \
|
2017-05-24 00:27:42 -04:00
|
|
|
snd_sn76489.o snd_ssi2001.o snd_wss.o \
|
|
|
|
|
snd_ym7128.o
|
2017-05-05 01:49:42 +02:00
|
|
|
VIDOBJ = video.o \
|
2017-06-01 17:55:38 +02:00
|
|
|
vid_cga.o vid_cga_comp.o vid_mda.o \
|
|
|
|
|
vid_ega.o vid_ega_render.o \
|
2017-05-24 00:27:42 -04:00
|
|
|
vid_vga.o vid_svga.o vid_svga_render.o \
|
|
|
|
|
vid_hercules.o vid_herculesplus.o vid_incolor.o \
|
|
|
|
|
vid_colorplus.o \
|
|
|
|
|
vid_genius.o \
|
|
|
|
|
vid_s3.o vid_s3_virge.o \
|
|
|
|
|
vid_et4000.o vid_et4000w32.o vid_icd2061.o \
|
|
|
|
|
vid_oti067.o \
|
|
|
|
|
vid_paradise.o \
|
|
|
|
|
vid_tvga.o vid_tgui9440.o vid_tkd8001_ramdac.o \
|
|
|
|
|
vid_ati_eeprom.o vid_ati18800.o vid_ati28800.o \
|
|
|
|
|
vid_ati68860_ramdac.o vid_ati_mach64.o \
|
|
|
|
|
vid_ics2595.o \
|
|
|
|
|
vid_sdac_ramdac.o \
|
|
|
|
|
vid_stg_ramdac.o \
|
|
|
|
|
vid_unk_ramdac.o \
|
|
|
|
|
vid_wy700.o \
|
|
|
|
|
vid_voodoo.o \
|
|
|
|
|
vid_pcjr.o vid_ps1_svga.o \
|
|
|
|
|
vid_olivetti_m24.o \
|
|
|
|
|
vid_pc1512.o vid_pc1640.o vid_pc200.o \
|
|
|
|
|
vid_tandy.o vid_tandysl.o
|
2017-05-05 01:49:42 +02:00
|
|
|
WINOBJ = win.o \
|
2017-05-24 00:27:42 -04:00
|
|
|
win_ddraw.o win_ddraw_fs.o win_ddraw_screenshot.o \
|
|
|
|
|
win_d3d.o win_d3d_fs.o \
|
|
|
|
|
win_language.o win_status.o win_opendir.o win_dynld.o \
|
2017-05-27 03:53:32 +02:00
|
|
|
win_video.o win_serial.o win_keyboard.o win_mouse.o \
|
|
|
|
|
win_iodev.o win_joystick.o win_midi.o \
|
2017-05-24 00:27:42 -04:00
|
|
|
win_settings.o win_deviceconfig.o win_joystickconfig.o \
|
2017-05-05 01:49:42 +02:00
|
|
|
86Box.res
|
|
|
|
|
OBJ = $(MAINOBJ) $(CPUOBJ) $(SYSOBJ) $(DEVOBJ) $(USBOBJ) \
|
|
|
|
|
$(NETOBJ) $(SCSIOBJ) $(SNDOBJ) $(VIDOBJ) $(WINOBJ)
|
|
|
|
|
|
|
|
|
|
LZFOBJ = lzf_c.o lzf_d.o
|
2017-05-06 17:48:33 +02:00
|
|
|
SLIRPOBJ= bootp.o ip_icmp.o misc.o socket.o tcp_timer.o cksum.o \
|
2017-05-08 18:27:42 -04:00
|
|
|
ip_input.o queue.o tcp_input.o debug.o ip_output.o \
|
2017-05-06 17:48:33 +02:00
|
|
|
sbuf.o tcp_output.o udp.o if.o mbuf.o slirp.o tcp_subr.o
|
2017-05-05 01:49:42 +02:00
|
|
|
|
2017-05-28 23:49:06 -04:00
|
|
|
LIBS = -lddraw -ldinput8 -ldxguid -ld3d9 -ld3dx9 -lopenal.dll \
|
|
|
|
|
-mwindows -lcomctl32 -lwinmm -lwsock32 -liphlpapi -lpsapi \
|
|
|
|
|
-static-libstdc++ -static -lstdc++ -static-libgcc -static -lgcc
|
2017-05-05 01:49:42 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
# Build rules.
|
|
|
|
|
%.o: %.c
|
|
|
|
|
@echo $<
|
2017-05-24 00:35:51 -04:00
|
|
|
@$(CC) $(CFLAGS) -c $<
|
2017-05-05 01:49:42 +02:00
|
|
|
|
|
|
|
|
%.o: %.cc
|
|
|
|
|
@echo $<
|
|
|
|
|
@$(CPP) $(CFLAGS) -c $<
|
|
|
|
|
|
|
|
|
|
%.o: %.cpp
|
|
|
|
|
@echo $<
|
|
|
|
|
@$(CPP) $(CFLAGS) -c $<
|
|
|
|
|
|
2017-05-08 18:27:42 -04:00
|
|
|
all: $(PROG).exe pcap_if.exe
|
|
|
|
|
|
|
|
|
|
|
2017-05-06 17:48:33 +02:00
|
|
|
$(PROG).exe: $(OBJ) $(LZFOBJ) $(SLIRPOBJ)
|
2017-05-05 01:49:42 +02:00
|
|
|
@echo Linking $(PROG).exe ..
|
|
|
|
|
@$(CC) -o $(PROG).exe \
|
2017-05-12 17:33:28 -04:00
|
|
|
$(OBJ) $(LZFOBJ) $(SLIRPOBJ) \
|
2017-05-22 00:21:22 -04:00
|
|
|
$(LIBS) #-static -Lpcap -lwpcapdelay
|
2017-05-05 02:35:21 +02:00
|
|
|
ifneq ($(DEBUG), y)
|
2017-05-12 17:33:28 -04:00
|
|
|
@strip $(PROG).exe
|
2017-05-05 01:49:42 +02:00
|
|
|
endif
|
|
|
|
|
|
2017-05-11 03:25:23 -04:00
|
|
|
pcap_if.exe: pcap_if.o pcap_if.res
|
2017-05-08 18:27:42 -04:00
|
|
|
@echo Linking pcap_if.exe ..
|
|
|
|
|
@$(CC) -o pcap_if.exe \
|
2017-05-12 17:33:28 -04:00
|
|
|
pcap_if.o pcap_if.res -static -Lpcap -lwpcapdelay
|
2017-05-08 18:27:42 -04:00
|
|
|
ifneq ($(DEBUG), y)
|
2017-05-12 17:33:28 -04:00
|
|
|
@strip pcap_if.exe
|
2017-05-08 18:27:42 -04:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
2017-05-05 02:43:34 +02:00
|
|
|
|
2017-05-05 01:49:42 +02:00
|
|
|
clean:
|
2017-06-01 20:26:05 -04:00
|
|
|
-rm *.o
|
|
|
|
|
-rm *.exe
|
|
|
|
|
-rm *.res
|
2017-05-05 01:49:42 +02:00
|
|
|
|
|
|
|
|
86Box.res: 86Box.rc
|
|
|
|
|
@echo Processing $<
|
2017-06-04 02:11:19 -04:00
|
|
|
@$(WINDRES) $(RFLAGS) $(EXTRAS) -i win/86Box.rc -o 86Box.res
|
2017-05-18 01:57:16 -04:00
|
|
|
|
2017-05-11 03:25:23 -04:00
|
|
|
pcap_if.res: pcap_if.rc
|
|
|
|
|
@echo Processing $<
|
2017-05-18 01:57:16 -04:00
|
|
|
@$(WINDRES) $(RFLAGS) -i win/pcap_if.rc -o pcap_if.res
|
2017-05-11 03:25:23 -04:00
|
|
|
|
2017-05-05 01:49:42 +02:00
|
|
|
|
|
|
|
|
# End of Makefile.mingw.
|