blob: 5389be7b1ebdb251d20ac19f999819cb98424ce0 [file] [log] [blame] [raw]
# This makefile is for corss-compiling simh to Windows on POSIX platforms
# If you are running Windows now, run build_mingw.bat
ifndef GCC
GCC = i586-mingw32msvc-gcc
else
ifeq ($(findstring mingw32ce,$(GCC)),mingw32ce)
WCE = true
endif
endif
export CONSOLE=1
ifneq (,$(DISPLAY_USEFUL))
DISPLAYL = ${DISPLAYD}/display.c $(DISPLAYD)/win32.c
DISPLAYVT = ${DISPLAYD}/vt11.c
DISPLAY_OPT = -DUSE_DISPLAY
ifndef WCE
DISPLAY_OPT += -lgdi32
endif
endif
GCC_VERSION = $(word 3,$(shell $(GCC) --version))
COMPILER_NAME = GCC Version: $(GCC_VERSION)
TEST = test
ifeq ($(USE_BUILDIN_PTHERADS),1)
PTHREADS_CCDEFS = -DUSE_READER_THREAD -DPTW32_STATIC_LIB -D_POSIX_C_SOURCE -I../windows-build/pthreads/Pre-built.2/include
PTHREADS_LDFLAGS = -lpthreadGC2 -L../windows-build/pthreads/Pre-built.2/lib
else
PTHREADS_CCDEFS = -DUSE_READER_THREAD
#PTHREADS_LDFLAGS = -lpthreadGC2
PTHREADS_LDFLAGS = -lpthread
endif
ifeq (,$(NOASYNCH))
PTHREADS_CCDEFS += -DSIM_ASYNCH_IO
endif
ifdef PCAP
ifeq ($(PCAP),BUILDIN)
NETWORK_LDFLAGS =
NETWORK_OPT = -DUSE_SHARED -I../windows-build/winpcap/Wpdpack/include
NETWORK_FEATURES = - dynamic networking support using windows-build provided libpcap components
else
NETWORK_LDFLAGS =
NETWORK_OPT = -DUSE_SHARED
NETWORK_FEATURES = - dynamic networking support using libpcap components from the MinGW directories
endif
endif
ifneq (,$(VIDEO_USEFUL))
VIDEO_CCDEFS += -DHAVE_LIBSDL
VIDEO_LDFLAGS += -lSDL
VIDEO_FEATURES = - video capabilities provided by libSDL2 (Simple Directmedia Layer)
endif
OS_CCDEFS += -fms-extensions $(PTHREADS_CCDEFS)
OS_LDFLAGS += -lm $(PTHREADS_LDFLAGS)
ifdef WCE
# Need some console API from port.dll
OS_LDFLAGS += -lport
OS_LDFLAGS += -lc -lws2 -lmmtimer
else
OS_LDFLAGS += -lwsock32 -lwinmm
endif
EXE = .exe
ifneq (binexists,$(shell if $(TEST) -e BIN; then echo binexists; fi))
MKDIRBIN = mkdir -p BIN
endif
ifeq (commit-id-exists,$(shell if $(TEST) -e .git-commit-id; then echo commit-id-exists; fi))
GIT_COMMIT_ID=$(shell cat .git-commit-id)
else
ifeq (,$(shell grep 'define SIM_GIT_COMMIT_ID' sim_rev.h | grep 'Format:'))
GIT_COMMIT_ID=$(shell grep 'define SIM_GIT_COMMIT_ID' sim_rev.h | awk '{ print $$3 }')
endif
endif
ifneq (,$(GIT_COMMIT_ID))
CFLAGS_GIT = -DSIM_GIT_COMMIT_ID=$(GIT_COMMIT_ID)
endif
ifneq ($(DEBUG),)
CFLAGS_G = -g -ggdb -g3
CFLAGS_O = -O0
BUILD_FEATURES = - debugging support
else
ifndef WCE
CFLAGS_O = -O1
endif
endif
ifneq ($(DONT_USE_ROMS),)
ROMS_OPT = -DDONT_USE_INTERNAL_ROM
else
BUILD_ROMS = ${BIN}BuildROMs
endif
ifneq ($(DONT_USE_READER_THREAD),)
NETWORK_OPT += -DDONT_USE_READER_THREAD
endif
CC_OUTSPEC = -o $@
CC := $(GCC) $(CC_STD) -U__STRICT_ANSI__ $(CFLAGS_G) $(CFLAGS_O) $(CFLAGS_GIT) -DSIM_COMPILER="$(COMPILER_NAME)" -I . $(OS_CCDEFS) $(ROMS_OPT)
HOST_CC := gcc $(CC_STD) -U__STRICT_ANSI__ $(CFLAGS_G) $(CFLAGS_O) $(CFLAGS_GIT) -I . $(OS_CCDEFS) $(ROMS_OPT)
LDFLAGS := $(OS_LDFLAGS) $(NETWORK_LDFLAGS) $(LDFLAGS_O)
include sources.mk
include rules.mk