Previous 199869 Revisions Next

r36818 Tuesday 31st March, 2015 at 04:13:12 UTC by Vasantha Crabb
Fix VERBOSE=1 for top-level makefile, fix always regenerating makefiles on Windows, make many variable in top-level makefile immediate rather than deferred
[/trunk]makefile

trunk/makefile
r245329r245330
2020#
2121
2222ifeq ($(OS),Windows_NT)
23OS=windows
24GENIEOS=windows
23OS := windows
24GENIEOS := windows
2525else
26UNAME = $(shell uname -mps)
27GENIEOS=linux
26UNAME := $(shell uname -mps)
27GENIEOS := linux
2828ifeq ($(firstword $(filter Linux,$(UNAME))),Linux)
29OS = linux
29OS := linux
3030endif
3131ifeq ($(firstword $(filter Solaris,$(UNAME))),Solaris)
32OS = solaris
32OS := solaris
3333endif
3434ifeq ($(firstword $(filter FreeBSD,$(UNAME))),FreeBSD)
35OS = freebsd
35OS := freebsd
3636endif
3737ifeq ($(firstword $(filter GNU/kFreeBSD,$(UNAME))),GNU/kFreeBSD)
38OS = freebsd
38OS := freebsd
3939endif
4040ifeq ($(firstword $(filter NetBSD,$(UNAME))),NetBSD)
41OS = netbsd
41OS := netbsd
4242endif
4343ifeq ($(firstword $(filter OpenBSD,$(UNAME))),OpenBSD)
44OS = openbsd
44OS := openbsd
4545endif
4646ifeq ($(firstword $(filter Darwin,$(UNAME))),Darwin)
47OS=macosx
48GENIEOS=darwin
49DARWIN_VERSION = $(shell sw_vers -productVersion)
47OS := macosx
48GENIEOS := darwin
49DARWIN_VERSION := $(shell sw_vers -productVersion)
5050endif
5151ifeq ($(firstword $(filter Haiku,$(UNAME))),Haiku)
52OS = haiku
52OS := haiku
5353endif
5454ifndef OS
5555$(error Unable to detect OS from uname -a: $(UNAME))
r245329r245330
6464#-------------------------------------------------
6565
6666ifndef TARGET
67TARGET = mame
67TARGET := mame
6868endif
6969
7070ifndef SUBTARGET
71SUBTARGET = $(TARGET)
71SUBTARGET := $(TARGET)
7272endif
7373
7474CONFIG = release
7575ifdef DEBUG
76CONFIG = debug
76CONFIG := debug
7777endif
7878
79ifndef verbose
80  SILENT = @
79ifndef VERBOSE
80  SILENT := @
8181endif
8282
8383#-------------------------------------------------
r245329r245330
8989ifndef TARGETOS
9090
9191ifeq ($(OS),windows)
92TARGETOS = windows
93WINDRES = windres
92TARGETOS := windows
93WINDRES := windres
9494ifeq ($(PROCESSOR_ARCHITECTURE),AMD64)
95ARCHITECTURE =_x64
95ARCHITECTURE := _x64
9696endif
9797ifeq ($(PROCESSOR_ARCHITECTURE),x86)
98ARCHITECTURE =_x64
98ARCHITECTURE := _x64
9999ifeq ($(PROCESSOR_ARCHITEW6432),AMD64)
100100else
101ARCHITECTURE =_x86
101ARCHITECTURE := _x86
102102endif
103103endif
104104else
105WINDRES  = x86_64-w64-mingw32-windres
106UNAME    = $(shell uname -mps)
107TARGETOS = $(OS)
105WINDRES  := x86_64-w64-mingw32-windres
106UNAME    := $(shell uname -mps)
107TARGETOS := $(OS)
108108
109ARCHITECTURE =_x86
109ARCHITECTURE := _x86
110110
111111ifeq ($(firstword $(filter x86_64,$(UNAME))),x86_64)
112ARCHITECTURE =_x64
112ARCHITECTURE := _x64
113113endif
114114ifeq ($(firstword $(filter amd64,$(UNAME))),amd64)
115ARCHITECTURE =_x64
115ARCHITECTURE := _x64
116116endif
117117ifeq ($(firstword $(filter ppc64,$(UNAME))),ppc64)
118ARCHITECTURE =_x64
118ARCHITECTURE := _x64
119119endif
120120endif
121121
122122else
123CROSS_BUILD = 1
123CROSS_BUILD := 1
124124endif # TARGET_OS
125125
126126ifdef PTR64
127127ifeq ($(PTR64),1)
128ARCHITECTURE =_x64
128ARCHITECTURE := _x64
129129else
130ARCHITECTURE =_x86
130ARCHITECTURE := _x86
131131endif
132132endif
133133
134134
135PYTHON = @python
136CC = @gcc
137LD = @g++
135PYTHON := $(SILENT)python
136CC := $(SILENT)gcc
137LD := $(SILENT)g++
138138
139139#-------------------------------------------------
140140# specify OSD layer: windows, sdl, etc.
r245329r245330
144144
145145ifndef OSD
146146
147OSD = osdmini
147OSD := osdmini
148148
149149ifeq ($(TARGETOS),windows)
150OSD = windows
150OSD := windows
151151endif
152152
153153ifeq ($(TARGETOS),linux)
154OSD = sdl
154OSD := sdl
155155endif
156156
157157ifeq ($(TARGETOS),macosx)
158OSD = sdl
158OSD := sdl
159159endif
160160endif
161161
r245329r245330
165165#-------------------------------------------------
166166
167167ifeq ($(DISTRO),)
168DISTRO = generic
168DISTRO := generic
169169else
170170ifeq ($(DISTRO),debian-stable)
171171else
172172ifeq ($(DISTRO),ubuntu-intrepid)
173173# Force gcc-4.2 on ubuntu-intrepid
174CC = @gcc -V 4.2
175LD = @g++-4.2
174CC := $(SILENT)gcc -V 4.2
175LD := $(SILENT)g++-4.2
176176else
177177ifeq ($(DISTRO),gcc44-generic)
178CC = @gcc-4.4
179LD = @g++-4.4
178CC := $(SILENT)gcc-4.4
179LD := $(SILENT)g++-4.4
180180else
181181ifeq ($(DISTRO),gcc45-generic)
182CC = @gcc-4.5
183LD = @g++-4.5
182CC := $(SILENT)gcc-4.5
183LD := $(SILENT)g++-4.5
184184else
185185ifeq ($(DISTRO),gcc46-generic)
186CC = @gcc-4.6
187LD = @g++-4.6
186CC := $(SILENT)gcc-4.6
187LD := $(SILENT)g++-4.6
188188else
189189ifeq ($(DISTRO),gcc47-generic)
190CC = @gcc-4.7
191LD = @g++-4.7
190CC := $(SILENT)gcc-4.7
191LD := $(SILENT)g++-4.7
192192else
193193$(error DISTRO $(DISTRO) unknown)
194194endif
r245329r245330
202202PARAMS+= --distro=$(DISTRO)
203203
204204ifdef OVERRIDE_CC
205PARAMS+= --CC='$(OVERRIDE_CC)'
205PARAMS += --CC='$(OVERRIDE_CC)'
206206ifndef CROSS_BUILD
207CC = $(OVERRIDE_CC)
207CC := $(OVERRIDE_CC)
208208endif
209209endif
210210ifdef OVERRIDE_CXX
211PARAMS+= --CXX='$(OVERRIDE_CXX)'
211PARAMS += --CXX='$(OVERRIDE_CXX)'
212212ifndef CROSS_BUILD
213CXX = $(OVERRIDE_CXX)
213CXX := $(OVERRIDE_CXX)
214214endif
215215endif
216216ifdef OVERRIDE_LD
217PARAMS+= --LD='$(OVERRIDE_LD)'
217PARAMS += --LD='$(OVERRIDE_LD)'
218218ifndef CROSS_BUILD
219LD = $(OVERRIDE_LD)
219LD := $(OVERRIDE_LD)
220220endif
221221endif
222222
r245329r245330
264264endif
265265
266266ifdef TOOLS
267PARAMS+= --with-tools
267PARAMS += --with-tools
268268endif
269269
270270ifdef SYMBOLS
271PARAMS+= --SYMBOLS=$(SYMBOLS)
271PARAMS += --SYMBOLS=$(SYMBOLS)
272272endif
273273
274274ifdef SYMLEVEL
275PARAMS+= --SYMLEVEL=$(SYMLEVEL)
275PARAMS += --SYMLEVEL=$(SYMLEVEL)
276276endif
277277
278278ifdef PROFILER
279PARAMS+= --PROFILER=$(PROFILER)
279PARAMS += --PROFILER=$(PROFILER)
280280endif
281281
282282ifdef PROFILE
283PARAMS+= --PROFILE=$(PROFILE)
283PARAMS += --PROFILE=$(PROFILE)
284284endif
285285
286286ifdef OPTIMIZE
287PARAMS+= --OPTIMIZE=$(OPTIMIZE)
287PARAMS += --OPTIMIZE=$(OPTIMIZE)
288288endif
289289
290290ifdef ARCHOPTS
291PARAMS+= --ARCHOPTS='$(ARCHOPTS)'
291PARAMS += --ARCHOPTS='$(ARCHOPTS)'
292292endif
293293
294294ifdef MAP
295PARAMS+= --MAP=$(MAP)
295PARAMS += --MAP=$(MAP)
296296endif
297297
298298ifdef USE_BGFX
299PARAMS+= --USE_BGFX=$(USE_BGFX)
299PARAMS += --USE_BGFX=$(USE_BGFX)
300300endif
301301
302302ifdef NOWERROR
303PARAMS+= --NOWERROR=$(NOWERROR)
303PARAMS += --NOWERROR=$(NOWERROR)
304304endif
305305
306306ifdef TARGET
307PARAMS+= --target=$(TARGET)
307PARAMS += --target=$(TARGET)
308308endif
309309
310310ifdef SUBTARGET
311PARAMS+= --subtarget=$(SUBTARGET)
311PARAMS += --subtarget=$(SUBTARGET)
312312endif
313313
314314ifdef OSD
315PARAMS+= --osd=$(OSD)
315PARAMS += --osd=$(OSD)
316316endif
317317
318318ifdef TARGETOS
319PARAMS+= --targetos=$(TARGETOS)
319PARAMS += --targetos=$(TARGETOS)
320320endif
321321
322322ifndef USE_QT
323323ifneq ($(TARGETOS),macosx)
324USE_QT = 1
324USE_QT := 1
325325else
326USE_QT = 0
326USE_QT := 0
327327endif
328328endif
329PARAMS+= --USE_QT=$(USE_QT)
329PARAMS += --USE_QT=$(USE_QT)
330330
331331ifdef LDOPTS
332PARAMS+= --LDOPTS='$(LDOPTS)'
332PARAMS += --LDOPTS='$(LDOPTS)'
333333endif
334334
335335#-------------------------------------------------
r245329r245330
363363#-------------------------------------------------
364364
365365# extension for executables
366EXE =
366EXE :=
367367
368368ifeq ($(OS),windows)
369EXE = .exe
369EXE := .exe
370370endif
371371ifeq ($(OS),os2)
372EXE = .exe
372EXE := .exe
373373endif
374374
375375SHELLTYPE := msdos
r245329r245330
389389endif
390390
391391GENDIR = build/generated
392PROJECTDIR = build/projects/$(SUBDIR)
393392
394393# all sources are under the src/ directory
395394SRC = src
r245329r245330
3983973RDPARTY = 3rdparty
399398
400399ifeq ($(OS),windows)
401GCC_VERSION:=$(shell gcc -dumpversion 2> NUL)
402CLANG_VERSION:=$(shell %CLANG%\bin\clang --version 2> NUL| head -n 1 | sed "s/[^0-9,.]//g")
403PYTHON_AVAILABLE:=$(shell python --version > NUL 2>&1 && echo python)
404CHECK_CLANG:=
400GCC_VERSION      := $(shell gcc -dumpversion 2> NUL)
401CLANG_VERSION    := $(shell %CLANG%\bin\clang --version 2> NUL| head -n 1 | sed "s/[^0-9,.]//g")
402PYTHON_AVAILABLE := $(shell python --version > NUL 2>&1 && echo python)
403CHECK_CLANG      :=
405404else
406GCC_VERSION:=$(shell $(subst @,,$(CC)) -dumpversion 2> /dev/null)
407CLANG_VERSION:=$(shell clang --version  2> /dev/null | grep 'LLVM [0-9]\.[0-9]' -o | grep '[0-9]\.[0-9]' -o | head -n 1)
408PYTHON_AVAILABLE:=$(shell python --version > /dev/null 2>&1 && echo python)
409CHECK_CLANG:=$(shell gcc --version  2> /dev/null | grep 'clang' | head -n 1)
405GCC_VERSION      := $(shell $(subst @,,$(CC)) -dumpversion 2> /dev/null)
406CLANG_VERSION    := $(shell clang --version  2> /dev/null | grep 'LLVM [0-9]\.[0-9]' -o | grep '[0-9]\.[0-9]' -o | head -n 1)
407PYTHON_AVAILABLE := $(shell python --version > /dev/null 2>&1 && echo python)
408CHECK_CLANG      := $(shell gcc --version  2> /dev/null | grep 'clang' | head -n 1)
410409endif
411410
412411ifeq ($(TARGETOS),macosx)
413412ifneq (,$(findstring 3.,$(CLANG_VERSION)))
414413ifeq ($(ARCHITECTURE),_x64)
415ARCHITECTURE=_x64_clang
414ARCHITECTURE := _x64_clang
416415else
417ARCHITECTURE=_x86_clang
416ARCHITECTURE := _x86_clang
418417endif
419418endif
420419endif
r245329r245330
423422$(error Python is not available in path)
424423endif
425424
426GENIE=3rdparty/genie/bin/$(GENIEOS)/genie
425GENIE := 3rdparty/genie/bin/$(GENIEOS)/genie$(EXE)
427426
428SILENT?=@
429
430427ifeq ($(TARGET),$(SUBTARGET))
431SUBDIR = $(OSD)/$(TARGET)
428SUBDIR := $(OSD)/$(TARGET)
432429else
433SUBDIR = $(OSD)/$(TARGET)$(SUBTARGET)
430SUBDIR := $(OSD)/$(TARGET)$(SUBTARGET)
434431endif
432PROJECTDIR := build/projects/$(SUBDIR)
435433
436434.PHONY: all clean regenie generate
437435all: $(GENIE) $(TARGETOS)$(ARCHITECTURE)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team