diff options
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 |
commit | 9a8109a63c04891842626a4db03648a2e57fe0d6 (patch) | |
tree | 2ac31b38584b9c08db90f1ad1a14a2f815ce9f69 /makefile | |
parent | eb17c33b2db69e19add930e98953180d2b22aa96 (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-- | makefile | 188 |
1 files changed, 93 insertions, 95 deletions
@@ -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) |