# # 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. # # Modified Makefile for Win32 MinGW 32-bit environment. # # Version: @(#)Makefile.mingw 1.0.7 2017/05/07 # # Authors: Kotori, # Fred N. van Kempen, # Sarah Walker, # Richard G., # # Name of the executable. PROG = 86Box # Various compile-time options. # -DROM_TRACE=0xcd800 traces ROM access from segment C800 # -DIO_TACE=0x66 traces I/O on port 0x66 STUFF = # Add feature selections here. # -DBUGGER adds the ISA BusBugger emulation. EXTRAS = # Do we want a debugging build? DEBUG = n OPTIM = n X64 = n ######################################################################### # Nothing should need changing from here on.. # ######################################################################### VPATH = . cpu sound sound/resid-fp video lzf slirp CPP = g++.exe CC = gcc.exe WINDRES = windres.exe OPTS = -DWIN32 $(EXTRAS) $(STUFF) ifeq ($(DEBUG), y) ifeq ($(VRAMDUMP), y) DFLAGS = -march=i686 -ggdb -DDEBUG -DENABLE_VRAM_DUMP else DFLAGS = -march=i686 -ggdb -DDEBUG endif COPTIM = -Og else ifeq ($(OPTIM), y) DFLAGS = -march=native COPTIM = -O6 else ifeq ($(X64), y) DFLAGS = else DFLAGS = -march=i686 endif COPTIM = -O3 endif endif ifeq ($(OPTIM), y) AOPTIM = -mtune=native else AOPTIM = endif AFLAGS = -msse -msse2 \ -mfpmath=sse ifeq ($(RELEASE), y) CFLAGS = $(OPTS) $(DFLAGS) $(COPTIM) $(AOPTIM) $(AFLAGS) \ -fomit-frame-pointer -mstackrealign -DRELEASE_BUILD RFLAGS = --input-format=rc -O coff -DRELEASE_BUILD else CFLAGS = $(OPTS) $(DFLAGS) $(COPTIM) $(AOPTIM) $(AFLAGS) \ -fomit-frame-pointer -mstackrealign ifeq ($(VRAMDUMP), y) RFLAGS = --input-format=rc -O coff -DENABLE_VRAM_DUMP else RFLAGS = --input-format=rc -O coff endif endif ifeq ($(X64), y) PLATCG = codegen_x86-64.o else PLATCG = codegen_x86.o endif 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 \ codegen_timing_winchip.o $(PLATCG) \ x86seg.o x87.o SYSOBJ = model.o \ 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 \ 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 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 \ hdd.o \ mfm_at.o mfm_xebec.o hdd_esdi.o ide.o xtide.o piix.o \ disc.o \ disc_86f.o disc_fdi.o disc_imd.o disc_img.o \ disc_random.o disc_td0.o \ cdrom.o cdrom-ioctl.o cdrom-iso.o cdrom-null.o USBOBJ = usb.o NETOBJ = network.o net_ne2000.o SCSIOBJ = scsi.o scsi_disk.o scsi_buslogic.o scsi_aha154x.o SNDOBJ = sound.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 \ 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 \ snd_mpu401_uart.o snd_pas16.o snd_resid.o \ snd_sn76489.o snd_ssi2001.o snd_wss.o \ snd_ym7128.o VIDOBJ = video.o \ vid_cga.o vid_cga_comp.o vid_mda.o vid_ega.o \ 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 WINOBJ = win.o \ win-d3d.o win-d3d-fs.o \ win-ddraw.o win-ddraw-fs.o win-ddraw-screenshot.o \ win-language.o win-status.o \ win-video.o win-serial.o win-mouse.o \ win-joystick.o win-midi.o \ win-settings.o win-deviceconfig.o win-joystickconfig.o \ 86Box.res OBJ = $(MAINOBJ) $(CPUOBJ) $(SYSOBJ) $(DEVOBJ) $(USBOBJ) \ $(NETOBJ) $(SCSIOBJ) $(SNDOBJ) $(VIDOBJ) $(WINOBJ) LZFOBJ = lzf_c.o lzf_d.o SLIRPOBJ= bootp.o ip_icmp.o misc.o socket.o tcp_timer.o cksum.o \ ip_input.o queue.o tcp_input.o tftp.o debug.o ip_output.o \ sbuf.o tcp_output.o udp.o if.o mbuf.o slirp.o tcp_subr.o LIBS = -mwindows -lcomctl32 -lwinmm -lopenal.dll -lopenal -lddraw \ -ldinput8 -ldxguid -ld3d9 -ld3dx9 -lwsock32 -liphlpapi \ -lstdc++ -lpsapi -static-libstdc++ -static-libgcc \ -static -L. -lwpcapdelay # Build rules. %.o: %.c @echo $< $(CC) $(CFLAGS) -c $< %.o: %.cc @echo $< @$(CPP) $(CFLAGS) -c $< %.o: %.cpp @echo $< @$(CPP) $(CFLAGS) -c $< $(PROG).exe: $(OBJ) $(LZFOBJ) $(SLIRPOBJ) @echo Linking $(PROG).exe .. @$(CC) -o $(PROG).exe \ $(OBJ) $(LZFOBJ) $(SLIRPOBJ) $(LIBS) ifneq ($(DEBUG), y) strip $(PROG).exe endif all: $(PROG).exe clean: rm *.o rm *.exe rm *.res 86Box.res: 86Box.rc @echo Processing $< @$(WINDRES) $(RFLAGS) -i 86Box.rc -o 86Box.res # End of Makefile.mingw.