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