mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
Separate OS and TARGETOS recognition and supported more platforms (nw)
This commit is contained in:
parent
72d5222016
commit
c95c00c8c0
165
makefile
165
makefile
@ -15,8 +15,45 @@
|
||||
################# BEGIN USER-CONFIGURABLE OPTIONS #####################
|
||||
###########################################################################
|
||||
|
||||
ifdef TOOLS
|
||||
PARAMS+= --with-tools
|
||||
#
|
||||
# Determine running OS
|
||||
#
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
OS=windows
|
||||
GENIEOS=windows
|
||||
else
|
||||
UNAME = $(shell uname -mps)
|
||||
GENIEOS=linux
|
||||
ifeq ($(firstword $(filter Linux,$(UNAME))),Linux)
|
||||
OS = linux
|
||||
endif
|
||||
ifeq ($(firstword $(filter Solaris,$(UNAME))),Solaris)
|
||||
OS = solaris
|
||||
endif
|
||||
ifeq ($(firstword $(filter FreeBSD,$(UNAME))),FreeBSD)
|
||||
OS = freebsd
|
||||
endif
|
||||
ifeq ($(firstword $(filter GNU/kFreeBSD,$(UNAME))),GNU/kFreeBSD)
|
||||
OS = freebsd
|
||||
endif
|
||||
ifeq ($(firstword $(filter NetBSD,$(UNAME))),NetBSD)
|
||||
OS = netbsd
|
||||
endif
|
||||
ifeq ($(firstword $(filter OpenBSD,$(UNAME))),OpenBSD)
|
||||
OS = openbsd
|
||||
endif
|
||||
ifeq ($(firstword $(filter Darwin,$(UNAME))),Darwin)
|
||||
OS=macosx
|
||||
GENIEOS=darwin
|
||||
DARWIN_VERSION = $(shell sw_vers -productVersion)
|
||||
endif
|
||||
ifeq ($(firstword $(filter Haiku,$(UNAME))),Haiku)
|
||||
OS = haiku
|
||||
endif
|
||||
ifndef OS
|
||||
$(error Unable to detect OS from uname -a: $(UNAME))
|
||||
endif
|
||||
endif
|
||||
|
||||
#-------------------------------------------------
|
||||
@ -34,22 +71,6 @@ ifndef SUBTARGET
|
||||
SUBTARGET = $(TARGET)
|
||||
endif
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------
|
||||
# specify OSD layer: windows, sdl, etc.
|
||||
# build rules will be included from
|
||||
# src/osd/$(OSD)/$(OSD).mak
|
||||
#-------------------------------------------------
|
||||
|
||||
ifndef OSD
|
||||
ifeq ($(OS),Windows_NT)
|
||||
OSD = windows
|
||||
else
|
||||
OSD = sdl
|
||||
endif
|
||||
endif
|
||||
|
||||
CONFIG = release
|
||||
ifdef DEBUG
|
||||
CONFIG = debug
|
||||
@ -67,69 +88,34 @@ endif
|
||||
|
||||
ifndef TARGETOS
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
|
||||
ifeq ($(OS),windows)
|
||||
TARGETOS = windows
|
||||
OS=windows
|
||||
WINDRES = windres
|
||||
ifeq ($(PROCESSOR_ARCHITECTURE),AMD64)
|
||||
ARCHITECTURE = x64
|
||||
ARCHITECTURE =_x64
|
||||
endif
|
||||
ifeq ($(PROCESSOR_ARCHITECTURE),x86)
|
||||
ARCHITECTURE = x64
|
||||
ARCHITECTURE =_x64
|
||||
ifeq ($(PROCESSOR_ARCHITEW6432),AMD64)
|
||||
else
|
||||
ARCHITECTURE = x86
|
||||
ARCHITECTURE =_x86
|
||||
endif
|
||||
endif
|
||||
|
||||
else
|
||||
WINDRES=x86_64-w64-mingw32-windres
|
||||
UNAME = $(shell uname -mps)
|
||||
OS=linux
|
||||
ifeq ($(firstword $(filter Linux,$(UNAME))),Linux)
|
||||
TARGETOS = linux
|
||||
endif
|
||||
ifeq ($(firstword $(filter Solaris,$(UNAME))),Solaris)
|
||||
TARGETOS = solaris
|
||||
endif
|
||||
ifeq ($(firstword $(filter FreeBSD,$(UNAME))),FreeBSD)
|
||||
TARGETOS = freebsd
|
||||
endif
|
||||
ifeq ($(firstword $(filter GNU/kFreeBSD,$(UNAME))),GNU/kFreeBSD)
|
||||
TARGETOS = freebsd
|
||||
endif
|
||||
ifeq ($(firstword $(filter NetBSD,$(UNAME))),NetBSD)
|
||||
TARGETOS = netbsd
|
||||
endif
|
||||
ifeq ($(firstword $(filter OpenBSD,$(UNAME))),OpenBSD)
|
||||
TARGETOS = openbsd
|
||||
endif
|
||||
ifeq ($(firstword $(filter Darwin,$(UNAME))),Darwin)
|
||||
TARGETOS = macosx
|
||||
OS=darwin
|
||||
DARWIN_VERSION = $(shell sw_vers -productVersion)
|
||||
endif
|
||||
ifeq ($(firstword $(filter Haiku,$(UNAME))),Haiku)
|
||||
TARGETOS = haiku
|
||||
endif
|
||||
WINDRES = x86_64-w64-mingw32-windres
|
||||
UNAME = $(shell uname -mps)
|
||||
TARGETOS = $(OS)
|
||||
|
||||
ifndef TARGETOS
|
||||
$(error Unable to detect TARGETOS from uname -a: $(UNAME))
|
||||
endif
|
||||
|
||||
ARCHITECTURE = x86
|
||||
ARCHITECTURE =_x86
|
||||
|
||||
ifeq ($(firstword $(filter x86_64,$(UNAME))),x86_64)
|
||||
ARCHITECTURE = x64
|
||||
ARCHITECTURE =_x64
|
||||
endif
|
||||
|
||||
ifeq ($(firstword $(filter amd64,$(UNAME))),amd64)
|
||||
ARCHITECTURE = x64
|
||||
ARCHITECTURE =_x64
|
||||
endif
|
||||
|
||||
ifeq ($(firstword $(filter ppc64,$(UNAME))),ppc64)
|
||||
ARCHITECTURE = x64
|
||||
ARCHITECTURE =_x64
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -139,9 +125,9 @@ endif # TARGET_OS
|
||||
|
||||
ifdef PTR64
|
||||
ifeq ($(PTR64),1)
|
||||
ARCHITECTURE = x64
|
||||
ARCHITECTURE =_x64
|
||||
else
|
||||
ARCHITECTURE = x86
|
||||
ARCHITECTURE =_x86
|
||||
endif
|
||||
endif
|
||||
|
||||
@ -150,6 +136,30 @@ PYTHON = @python
|
||||
CC = @gcc
|
||||
LD = @g++
|
||||
|
||||
#-------------------------------------------------
|
||||
# specify OSD layer: windows, sdl, etc.
|
||||
# build rules will be included from
|
||||
# src/osd/$(OSD)/$(OSD).mak
|
||||
#-------------------------------------------------
|
||||
|
||||
ifndef OSD
|
||||
|
||||
OSD = osdmini
|
||||
|
||||
ifeq ($(TARGETOS),windows)
|
||||
OSD = windows
|
||||
endif
|
||||
|
||||
ifeq ($(TARGETOS),linux)
|
||||
OSD = sdl
|
||||
endif
|
||||
|
||||
ifeq ($(TARGETOS),macosx)
|
||||
OSD = sdl
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
#-------------------------------------------------
|
||||
# distribution may change things
|
||||
#-------------------------------------------------
|
||||
@ -252,6 +262,10 @@ SYMLEVEL = 2
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef TOOLS
|
||||
PARAMS+= --with-tools
|
||||
endif
|
||||
|
||||
ifdef SYMBOLS
|
||||
PARAMS+= --SYMBOLS=$(SYMBOLS)
|
||||
endif
|
||||
@ -353,9 +367,9 @@ endif
|
||||
ifeq ($(TARGETOS),macosx)
|
||||
ifneq (,$(findstring 3.,$(CLANG_VERSION)))
|
||||
ifeq ($(ARCHITECTURE),x64)
|
||||
ARCHITECTURE=x64_clang
|
||||
ARCHITECTURE=_x64_clang
|
||||
else
|
||||
ARCHITECTURE=x86_clang
|
||||
ARCHITECTURE=_x86_clang
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@ -364,7 +378,7 @@ ifneq ($(PYTHON_AVAILABLE),python)
|
||||
$(error Python is not available in path)
|
||||
endif
|
||||
|
||||
GENIE=3rdparty/genie/bin/$(OS)/genie
|
||||
GENIE=3rdparty/genie/bin/$(GENIEOS)/genie
|
||||
|
||||
SILENT?=@
|
||||
|
||||
@ -374,7 +388,7 @@ else
|
||||
SUBDIR = $(OSD)/$(TARGET)$(SUBTARGET)
|
||||
endif
|
||||
|
||||
all: $(GENIE) $(TARGETOS)_$(ARCHITECTURE)
|
||||
all: $(GENIE) $(TARGETOS)$(ARCHITECTURE)
|
||||
|
||||
windows_x64: generate
|
||||
ifndef MINGW64
|
||||
@ -385,6 +399,8 @@ ifndef COMPILE
|
||||
endif
|
||||
$(SILENT) $(MAKE) --no-print-directory -R -C build/projects/$(SUBDIR)/gmake-mingw64-gcc config=$(CONFIG)64 WINDRES=$(WINDRES)
|
||||
|
||||
windows: windows_x86
|
||||
|
||||
windows_x86: generate
|
||||
ifndef MINGW32
|
||||
$(error MINGW32 is not set)
|
||||
@ -481,6 +497,9 @@ ifndef COMPILE
|
||||
endif
|
||||
$(SILENT) $(MAKE) --no-print-directory -R -C build/projects/$(SUBDIR)/gmake-asmjs config=$(CONFIG)
|
||||
|
||||
|
||||
nacl: nacl_x86
|
||||
|
||||
nacl_x64: generate
|
||||
ifndef NACL_SDK_ROOT
|
||||
$(error NACL_SDK_ROOT is not set)
|
||||
@ -523,6 +542,8 @@ ifndef COMPILE
|
||||
endif
|
||||
$(SILENT) $(MAKE) --no-print-directory -R -C build/projects/$(SUBDIR)/gmake-linux config=$(CONFIG)64
|
||||
|
||||
linux: linux_x86
|
||||
|
||||
linux_x86: generate
|
||||
ifndef COMPILE
|
||||
$(SILENT) $(GENIE) $(PARAMS) --gcc=linux-gcc --gcc_version=$(GCC_VERSION) gmake
|
||||
@ -547,6 +568,8 @@ ifndef COMPILE
|
||||
endif
|
||||
$(SILENT) $(MAKE) --no-print-directory -R -C build/projects/$(SUBDIR)/gmake-osx config=$(CONFIG)64
|
||||
|
||||
macosx: macosx_x86
|
||||
|
||||
macosx_x86: generate
|
||||
ifndef COMPILE
|
||||
$(SILENT) $(GENIE) $(PARAMS) --gcc=osx --os_version=$(DARWIN_VERSION) --gcc_version=$(GCC_VERSION) gmake
|
||||
@ -598,7 +621,7 @@ MOC_FILES=
|
||||
else
|
||||
MOC_FILES=$(wildcard $(SRC)/osd/modules/debugger/qt/*.h)
|
||||
|
||||
ifeq ($(TARGETOS),windows)
|
||||
ifeq ($(OS),windows)
|
||||
MOC = moc
|
||||
ifneq ($(OSD),sdl)
|
||||
MOC_FILES=
|
||||
|
@ -61,14 +61,19 @@ newoption {
|
||||
trigger = "targetos",
|
||||
description = "Choose target OS",
|
||||
allowed = {
|
||||
{ "android", "Android" },
|
||||
{ "asmjs", "Emscripten/asm.js" },
|
||||
{ "freebsd", "FreeBSD" },
|
||||
{ "linux", "Linux" },
|
||||
{ "ios", "iOS" },
|
||||
{ "nacl", "Native Client" },
|
||||
{ "macosx", "OSX" },
|
||||
{ "windows", "Windows" },
|
||||
{ "android-arm", "Android - ARM" },
|
||||
{ "android-mips", "Android - MIPS" },
|
||||
{ "android-x86", "Android - x86" },
|
||||
{ "asmjs", "Emscripten/asm.js" },
|
||||
{ "freebsd", "FreeBSD" },
|
||||
{ "nacl", "Native Client" },
|
||||
{ "nacl-arm", "Native Client - ARM" },
|
||||
{ "pnacl", "Native Client - PNaCl" },
|
||||
{ "linux", "Linux" },
|
||||
{ "ios", "iOS" },
|
||||
{ "macosx", "OSX" },
|
||||
{ "windows", "Windows" },
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user