summaryrefslogtreecommitdiffstatshomepage
path: root/makefile
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2015-03-31 15:13:12 +1100
committer Vas Crabb <vas@vastheman.com>2015-03-31 15:13:12 +1100
commit9a8109a63c04891842626a4db03648a2e57fe0d6 (patch)
tree2ac31b38584b9c08db90f1ad1a14a2f815ce9f69 /makefile
parenteb17c33b2db69e19add930e98953180d2b22aa96 (diff)
Fix VERBOSE=1 for top-level makefile, fix always regenerating makefiles on Windows, make many variable in top-level makefile immediate rather than deferred
Diffstat (limited to 'makefile')
-rw-r--r--makefile188
1 files changed, 93 insertions, 95 deletions
diff --git a/makefile b/makefile
index 65c155c3b2f..f51c8cad727 100644
--- a/makefile
+++ b/makefile
@@ -20,36 +20,36 @@
#
ifeq ($(OS),Windows_NT)
-OS=windows
-GENIEOS=windows
+OS := windows
+GENIEOS := windows
else
-UNAME = $(shell uname -mps)
-GENIEOS=linux
+UNAME := $(shell uname -mps)
+GENIEOS := linux
ifeq ($(firstword $(filter Linux,$(UNAME))),Linux)
-OS = linux
+OS := linux
endif
ifeq ($(firstword $(filter Solaris,$(UNAME))),Solaris)
-OS = solaris
+OS := solaris
endif
ifeq ($(firstword $(filter FreeBSD,$(UNAME))),FreeBSD)
-OS = freebsd
+OS := freebsd
endif
ifeq ($(firstword $(filter GNU/kFreeBSD,$(UNAME))),GNU/kFreeBSD)
-OS = freebsd
+OS := freebsd
endif
ifeq ($(firstword $(filter NetBSD,$(UNAME))),NetBSD)
-OS = netbsd
+OS := netbsd
endif
ifeq ($(firstword $(filter OpenBSD,$(UNAME))),OpenBSD)
-OS = openbsd
+OS := openbsd
endif
ifeq ($(firstword $(filter Darwin,$(UNAME))),Darwin)
-OS=macosx
-GENIEOS=darwin
-DARWIN_VERSION = $(shell sw_vers -productVersion)
+OS := macosx
+GENIEOS := darwin
+DARWIN_VERSION := $(shell sw_vers -productVersion)
endif
ifeq ($(firstword $(filter Haiku,$(UNAME))),Haiku)
-OS = haiku
+OS := haiku
endif
ifndef OS
$(error Unable to detect OS from uname -a: $(UNAME))
@@ -64,20 +64,20 @@ endif
#-------------------------------------------------
ifndef TARGET
-TARGET = mame
+TARGET := mame
endif
ifndef SUBTARGET
-SUBTARGET = $(TARGET)
+SUBTARGET := $(TARGET)
endif
CONFIG = release
ifdef DEBUG
-CONFIG = debug
+CONFIG := debug
endif
-ifndef verbose
- SILENT = @
+ifndef VERBOSE
+ SILENT := @
endif
#-------------------------------------------------
@@ -89,52 +89,52 @@ endif
ifndef TARGETOS
ifeq ($(OS),windows)
-TARGETOS = windows
-WINDRES = windres
+TARGETOS := 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)
-TARGETOS = $(OS)
+WINDRES := x86_64-w64-mingw32-windres
+UNAME := $(shell uname -mps)
+TARGETOS := $(OS)
-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
else
-CROSS_BUILD = 1
+CROSS_BUILD := 1
endif # TARGET_OS
ifdef PTR64
ifeq ($(PTR64),1)
-ARCHITECTURE =_x64
+ARCHITECTURE := _x64
else
-ARCHITECTURE =_x86
+ARCHITECTURE := _x86
endif
endif
-PYTHON = @python
-CC = @gcc
-LD = @g++
+PYTHON := $(SILENT)python
+CC := $(SILENT)gcc
+LD := $(SILENT)g++
#-------------------------------------------------
# specify OSD layer: windows, sdl, etc.
@@ -144,18 +144,18 @@ LD = @g++
ifndef OSD
-OSD = osdmini
+OSD := osdmini
ifeq ($(TARGETOS),windows)
-OSD = windows
+OSD := windows
endif
ifeq ($(TARGETOS),linux)
-OSD = sdl
+OSD := sdl
endif
ifeq ($(TARGETOS),macosx)
-OSD = sdl
+OSD := sdl
endif
endif
@@ -165,30 +165,30 @@ endif
#-------------------------------------------------
ifeq ($(DISTRO),)
-DISTRO = generic
+DISTRO := generic
else
ifeq ($(DISTRO),debian-stable)
else
ifeq ($(DISTRO),ubuntu-intrepid)
# Force gcc-4.2 on ubuntu-intrepid
-CC = @gcc -V 4.2
-LD = @g++-4.2
+CC := $(SILENT)gcc -V 4.2
+LD := $(SILENT)g++-4.2
else
ifeq ($(DISTRO),gcc44-generic)
-CC = @gcc-4.4
-LD = @g++-4.4
+CC := $(SILENT)gcc-4.4
+LD := $(SILENT)g++-4.4
else
ifeq ($(DISTRO),gcc45-generic)
-CC = @gcc-4.5
-LD = @g++-4.5
+CC := $(SILENT)gcc-4.5
+LD := $(SILENT)g++-4.5
else
ifeq ($(DISTRO),gcc46-generic)
-CC = @gcc-4.6
-LD = @g++-4.6
+CC := $(SILENT)gcc-4.6
+LD := $(SILENT)g++-4.6
else
ifeq ($(DISTRO),gcc47-generic)
-CC = @gcc-4.7
-LD = @g++-4.7
+CC := $(SILENT)gcc-4.7
+LD := $(SILENT)g++-4.7
else
$(error DISTRO $(DISTRO) unknown)
endif
@@ -202,21 +202,21 @@ endif
PARAMS+= --distro=$(DISTRO)
ifdef OVERRIDE_CC
-PARAMS+= --CC='$(OVERRIDE_CC)'
+PARAMS += --CC='$(OVERRIDE_CC)'
ifndef CROSS_BUILD
-CC = $(OVERRIDE_CC)
+CC := $(OVERRIDE_CC)
endif
endif
ifdef OVERRIDE_CXX
-PARAMS+= --CXX='$(OVERRIDE_CXX)'
+PARAMS += --CXX='$(OVERRIDE_CXX)'
ifndef CROSS_BUILD
-CXX = $(OVERRIDE_CXX)
+CXX := $(OVERRIDE_CXX)
endif
endif
ifdef OVERRIDE_LD
-PARAMS+= --LD='$(OVERRIDE_LD)'
+PARAMS += --LD='$(OVERRIDE_LD)'
ifndef CROSS_BUILD
-LD = $(OVERRIDE_LD)
+LD := $(OVERRIDE_LD)
endif
endif
@@ -264,72 +264,72 @@ endif
endif
ifdef TOOLS
-PARAMS+= --with-tools
+PARAMS += --with-tools
endif
ifdef SYMBOLS
-PARAMS+= --SYMBOLS=$(SYMBOLS)
+PARAMS += --SYMBOLS=$(SYMBOLS)
endif
ifdef SYMLEVEL
-PARAMS+= --SYMLEVEL=$(SYMLEVEL)
+PARAMS += --SYMLEVEL=$(SYMLEVEL)
endif
ifdef PROFILER
-PARAMS+= --PROFILER=$(PROFILER)
+PARAMS += --PROFILER=$(PROFILER)
endif
ifdef PROFILE
-PARAMS+= --PROFILE=$(PROFILE)
+PARAMS += --PROFILE=$(PROFILE)
endif
ifdef OPTIMIZE
-PARAMS+= --OPTIMIZE=$(OPTIMIZE)
+PARAMS += --OPTIMIZE=$(OPTIMIZE)
endif
ifdef ARCHOPTS
-PARAMS+= --ARCHOPTS='$(ARCHOPTS)'
+PARAMS += --ARCHOPTS='$(ARCHOPTS)'
endif
ifdef MAP
-PARAMS+= --MAP=$(MAP)
+PARAMS += --MAP=$(MAP)
endif
ifdef USE_BGFX
-PARAMS+= --USE_BGFX=$(USE_BGFX)
+PARAMS += --USE_BGFX=$(USE_BGFX)
endif
ifdef NOWERROR
-PARAMS+= --NOWERROR=$(NOWERROR)
+PARAMS += --NOWERROR=$(NOWERROR)
endif
ifdef TARGET
-PARAMS+= --target=$(TARGET)
+PARAMS += --target=$(TARGET)
endif
ifdef SUBTARGET
-PARAMS+= --subtarget=$(SUBTARGET)
+PARAMS += --subtarget=$(SUBTARGET)
endif
ifdef OSD
-PARAMS+= --osd=$(OSD)
+PARAMS += --osd=$(OSD)
endif
ifdef TARGETOS
-PARAMS+= --targetos=$(TARGETOS)
+PARAMS += --targetos=$(TARGETOS)
endif
ifndef USE_QT
ifneq ($(TARGETOS),macosx)
-USE_QT = 1
+USE_QT := 1
else
-USE_QT = 0
+USE_QT := 0
endif
endif
-PARAMS+= --USE_QT=$(USE_QT)
+PARAMS += --USE_QT=$(USE_QT)
ifdef LDOPTS
-PARAMS+= --LDOPTS='$(LDOPTS)'
+PARAMS += --LDOPTS='$(LDOPTS)'
endif
#-------------------------------------------------
@@ -363,13 +363,13 @@ endif
#-------------------------------------------------
# extension for executables
-EXE =
+EXE :=
ifeq ($(OS),windows)
-EXE = .exe
+EXE := .exe
endif
ifeq ($(OS),os2)
-EXE = .exe
+EXE := .exe
endif
SHELLTYPE := msdos
@@ -389,7 +389,6 @@ else
endif
GENDIR = build/generated
-PROJECTDIR = build/projects/$(SUBDIR)
# all sources are under the src/ directory
SRC = src
@@ -398,23 +397,23 @@ SRC = src
3RDPARTY = 3rdparty
ifeq ($(OS),windows)
-GCC_VERSION:=$(shell gcc -dumpversion 2> NUL)
-CLANG_VERSION:=$(shell %CLANG%\bin\clang --version 2> NUL| head -n 1 | sed "s/[^0-9,.]//g")
-PYTHON_AVAILABLE:=$(shell python --version > NUL 2>&1 && echo python)
-CHECK_CLANG:=
+GCC_VERSION := $(shell gcc -dumpversion 2> NUL)
+CLANG_VERSION := $(shell %CLANG%\bin\clang --version 2> NUL| head -n 1 | sed "s/[^0-9,.]//g")
+PYTHON_AVAILABLE := $(shell python --version > NUL 2>&1 && echo python)
+CHECK_CLANG :=
else
-GCC_VERSION:=$(shell $(subst @,,$(CC)) -dumpversion 2> /dev/null)
-CLANG_VERSION:=$(shell clang --version 2> /dev/null | grep 'LLVM [0-9]\.[0-9]' -o | grep '[0-9]\.[0-9]' -o | head -n 1)
-PYTHON_AVAILABLE:=$(shell python --version > /dev/null 2>&1 && echo python)
-CHECK_CLANG:=$(shell gcc --version 2> /dev/null | grep 'clang' | head -n 1)
+GCC_VERSION := $(shell $(subst @,,$(CC)) -dumpversion 2> /dev/null)
+CLANG_VERSION := $(shell clang --version 2> /dev/null | grep 'LLVM [0-9]\.[0-9]' -o | grep '[0-9]\.[0-9]' -o | head -n 1)
+PYTHON_AVAILABLE := $(shell python --version > /dev/null 2>&1 && echo python)
+CHECK_CLANG := $(shell gcc --version 2> /dev/null | grep 'clang' | head -n 1)
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
@@ -423,15 +422,14 @@ ifneq ($(PYTHON_AVAILABLE),python)
$(error Python is not available in path)
endif
-GENIE=3rdparty/genie/bin/$(GENIEOS)/genie
-
-SILENT?=@
+GENIE := 3rdparty/genie/bin/$(GENIEOS)/genie$(EXE)
ifeq ($(TARGET),$(SUBTARGET))
-SUBDIR = $(OSD)/$(TARGET)
+SUBDIR := $(OSD)/$(TARGET)
else
-SUBDIR = $(OSD)/$(TARGET)$(SUBTARGET)
+SUBDIR := $(OSD)/$(TARGET)$(SUBTARGET)
endif
+PROJECTDIR := build/projects/$(SUBDIR)
.PHONY: all clean regenie generate
all: $(GENIE) $(TARGETOS)$(ARCHITECTURE)