trunk/makefile
| r245276 | r245277 | |
| 15 | 15 | ################# BEGIN USER-CONFIGURABLE OPTIONS ##################### |
| 16 | 16 | ########################################################################### |
| 17 | 17 | |
| 18 | | ifdef TOOLS |
| 19 | | PARAMS+= --with-tools |
| 18 | # |
| 19 | # Determine running OS |
| 20 | # |
| 21 | |
| 22 | ifeq ($(OS),Windows_NT) |
| 23 | OS=windows |
| 24 | GENIEOS=windows |
| 25 | else |
| 26 | UNAME = $(shell uname -mps) |
| 27 | GENIEOS=linux |
| 28 | ifeq ($(firstword $(filter Linux,$(UNAME))),Linux) |
| 29 | OS = linux |
| 20 | 30 | endif |
| 31 | ifeq ($(firstword $(filter Solaris,$(UNAME))),Solaris) |
| 32 | OS = solaris |
| 33 | endif |
| 34 | ifeq ($(firstword $(filter FreeBSD,$(UNAME))),FreeBSD) |
| 35 | OS = freebsd |
| 36 | endif |
| 37 | ifeq ($(firstword $(filter GNU/kFreeBSD,$(UNAME))),GNU/kFreeBSD) |
| 38 | OS = freebsd |
| 39 | endif |
| 40 | ifeq ($(firstword $(filter NetBSD,$(UNAME))),NetBSD) |
| 41 | OS = netbsd |
| 42 | endif |
| 43 | ifeq ($(firstword $(filter OpenBSD,$(UNAME))),OpenBSD) |
| 44 | OS = openbsd |
| 45 | endif |
| 46 | ifeq ($(firstword $(filter Darwin,$(UNAME))),Darwin) |
| 47 | OS=macosx |
| 48 | GENIEOS=darwin |
| 49 | DARWIN_VERSION = $(shell sw_vers -productVersion) |
| 50 | endif |
| 51 | ifeq ($(firstword $(filter Haiku,$(UNAME))),Haiku) |
| 52 | OS = haiku |
| 53 | endif |
| 54 | ifndef OS |
| 55 | $(error Unable to detect OS from uname -a: $(UNAME)) |
| 56 | endif |
| 57 | endif |
| 21 | 58 | |
| 22 | 59 | #------------------------------------------------- |
| 23 | 60 | # specify core target: mame, mess, etc. |
| r245276 | r245277 | |
| 34 | 71 | SUBTARGET = $(TARGET) |
| 35 | 72 | endif |
| 36 | 73 | |
| 37 | | |
| 38 | | |
| 39 | | #------------------------------------------------- |
| 40 | | # specify OSD layer: windows, sdl, etc. |
| 41 | | # build rules will be included from |
| 42 | | # src/osd/$(OSD)/$(OSD).mak |
| 43 | | #------------------------------------------------- |
| 44 | | |
| 45 | | ifndef OSD |
| 46 | | ifeq ($(OS),Windows_NT) |
| 47 | | OSD = windows |
| 48 | | else |
| 49 | | OSD = sdl |
| 50 | | endif |
| 51 | | endif |
| 52 | | |
| 53 | 74 | CONFIG = release |
| 54 | 75 | ifdef DEBUG |
| 55 | 76 | CONFIG = debug |
| r245276 | r245277 | |
| 67 | 88 | |
| 68 | 89 | ifndef TARGETOS |
| 69 | 90 | |
| 70 | | ifeq ($(OS),Windows_NT) |
| 71 | | |
| 91 | ifeq ($(OS),windows) |
| 72 | 92 | TARGETOS = windows |
| 73 | | OS=windows |
| 74 | 93 | WINDRES = windres |
| 75 | 94 | ifeq ($(PROCESSOR_ARCHITECTURE),AMD64) |
| 76 | | ARCHITECTURE = x64 |
| 95 | ARCHITECTURE =_x64 |
| 77 | 96 | endif |
| 78 | 97 | ifeq ($(PROCESSOR_ARCHITECTURE),x86) |
| 79 | | ARCHITECTURE = x64 |
| 98 | ARCHITECTURE =_x64 |
| 80 | 99 | ifeq ($(PROCESSOR_ARCHITEW6432),AMD64) |
| 81 | 100 | else |
| 82 | | ARCHITECTURE = x86 |
| 101 | ARCHITECTURE =_x86 |
| 83 | 102 | endif |
| 84 | 103 | endif |
| 85 | | |
| 86 | 104 | else |
| 87 | | WINDRES=x86_64-w64-mingw32-windres |
| 88 | | UNAME = $(shell uname -mps) |
| 89 | | OS=linux |
| 90 | | ifeq ($(firstword $(filter Linux,$(UNAME))),Linux) |
| 91 | | TARGETOS = linux |
| 92 | | endif |
| 93 | | ifeq ($(firstword $(filter Solaris,$(UNAME))),Solaris) |
| 94 | | TARGETOS = solaris |
| 95 | | endif |
| 96 | | ifeq ($(firstword $(filter FreeBSD,$(UNAME))),FreeBSD) |
| 97 | | TARGETOS = freebsd |
| 98 | | endif |
| 99 | | ifeq ($(firstword $(filter GNU/kFreeBSD,$(UNAME))),GNU/kFreeBSD) |
| 100 | | TARGETOS = freebsd |
| 101 | | endif |
| 102 | | ifeq ($(firstword $(filter NetBSD,$(UNAME))),NetBSD) |
| 103 | | TARGETOS = netbsd |
| 104 | | endif |
| 105 | | ifeq ($(firstword $(filter OpenBSD,$(UNAME))),OpenBSD) |
| 106 | | TARGETOS = openbsd |
| 107 | | endif |
| 108 | | ifeq ($(firstword $(filter Darwin,$(UNAME))),Darwin) |
| 109 | | TARGETOS = macosx |
| 110 | | OS=darwin |
| 111 | | DARWIN_VERSION = $(shell sw_vers -productVersion) |
| 112 | | endif |
| 113 | | ifeq ($(firstword $(filter Haiku,$(UNAME))),Haiku) |
| 114 | | TARGETOS = haiku |
| 115 | | endif |
| 105 | WINDRES = x86_64-w64-mingw32-windres |
| 106 | UNAME = $(shell uname -mps) |
| 107 | TARGETOS = $(OS) |
| 116 | 108 | |
| 117 | | ifndef TARGETOS |
| 118 | | $(error Unable to detect TARGETOS from uname -a: $(UNAME)) |
| 119 | | endif |
| 109 | ARCHITECTURE =_x86 |
| 120 | 110 | |
| 121 | | ARCHITECTURE = x86 |
| 122 | | |
| 123 | 111 | ifeq ($(firstword $(filter x86_64,$(UNAME))),x86_64) |
| 124 | | ARCHITECTURE = x64 |
| 112 | ARCHITECTURE =_x64 |
| 125 | 113 | endif |
| 126 | | |
| 127 | 114 | ifeq ($(firstword $(filter amd64,$(UNAME))),amd64) |
| 128 | | ARCHITECTURE = x64 |
| 115 | ARCHITECTURE =_x64 |
| 129 | 116 | endif |
| 130 | | |
| 131 | 117 | ifeq ($(firstword $(filter ppc64,$(UNAME))),ppc64) |
| 132 | | ARCHITECTURE = x64 |
| 118 | ARCHITECTURE =_x64 |
| 133 | 119 | endif |
| 134 | 120 | endif |
| 135 | 121 | |
| r245276 | r245277 | |
| 139 | 125 | |
| 140 | 126 | ifdef PTR64 |
| 141 | 127 | ifeq ($(PTR64),1) |
| 142 | | ARCHITECTURE = x64 |
| 128 | ARCHITECTURE =_x64 |
| 143 | 129 | else |
| 144 | | ARCHITECTURE = x86 |
| 130 | ARCHITECTURE =_x86 |
| 145 | 131 | endif |
| 146 | 132 | endif |
| 147 | 133 | |
| r245276 | r245277 | |
| 151 | 137 | LD = @g++ |
| 152 | 138 | |
| 153 | 139 | #------------------------------------------------- |
| 140 | # specify OSD layer: windows, sdl, etc. |
| 141 | # build rules will be included from |
| 142 | # src/osd/$(OSD)/$(OSD).mak |
| 143 | #------------------------------------------------- |
| 144 | |
| 145 | ifndef OSD |
| 146 | |
| 147 | OSD = osdmini |
| 148 | |
| 149 | ifeq ($(TARGETOS),windows) |
| 150 | OSD = windows |
| 151 | endif |
| 152 | |
| 153 | ifeq ($(TARGETOS),linux) |
| 154 | OSD = sdl |
| 155 | endif |
| 156 | |
| 157 | ifeq ($(TARGETOS),macosx) |
| 158 | OSD = sdl |
| 159 | endif |
| 160 | endif |
| 161 | |
| 162 | |
| 163 | #------------------------------------------------- |
| 154 | 164 | # distribution may change things |
| 155 | 165 | #------------------------------------------------- |
| 156 | 166 | |
| r245276 | r245277 | |
| 252 | 262 | endif |
| 253 | 263 | endif |
| 254 | 264 | |
| 265 | ifdef TOOLS |
| 266 | PARAMS+= --with-tools |
| 267 | endif |
| 268 | |
| 255 | 269 | ifdef SYMBOLS |
| 256 | 270 | PARAMS+= --SYMBOLS=$(SYMBOLS) |
| 257 | 271 | endif |
| r245276 | r245277 | |
| 353 | 367 | ifeq ($(TARGETOS),macosx) |
| 354 | 368 | ifneq (,$(findstring 3.,$(CLANG_VERSION))) |
| 355 | 369 | ifeq ($(ARCHITECTURE),x64) |
| 356 | | ARCHITECTURE=x64_clang |
| 370 | ARCHITECTURE=_x64_clang |
| 357 | 371 | else |
| 358 | | ARCHITECTURE=x86_clang |
| 372 | ARCHITECTURE=_x86_clang |
| 359 | 373 | endif |
| 360 | 374 | endif |
| 361 | 375 | endif |
| r245276 | r245277 | |
| 364 | 378 | $(error Python is not available in path) |
| 365 | 379 | endif |
| 366 | 380 | |
| 367 | | GENIE=3rdparty/genie/bin/$(OS)/genie |
| 381 | GENIE=3rdparty/genie/bin/$(GENIEOS)/genie |
| 368 | 382 | |
| 369 | 383 | SILENT?=@ |
| 370 | 384 | |
| r245276 | r245277 | |
| 374 | 388 | SUBDIR = $(OSD)/$(TARGET)$(SUBTARGET) |
| 375 | 389 | endif |
| 376 | 390 | |
| 377 | | all: $(GENIE) $(TARGETOS)_$(ARCHITECTURE) |
| 391 | all: $(GENIE) $(TARGETOS)$(ARCHITECTURE) |
| 378 | 392 | |
| 379 | 393 | windows_x64: generate |
| 380 | 394 | ifndef MINGW64 |
| r245276 | r245277 | |
| 385 | 399 | endif |
| 386 | 400 | $(SILENT) $(MAKE) --no-print-directory -R -C build/projects/$(SUBDIR)/gmake-mingw64-gcc config=$(CONFIG)64 WINDRES=$(WINDRES) |
| 387 | 401 | |
| 402 | windows: windows_x86 |
| 403 | |
| 388 | 404 | windows_x86: generate |
| 389 | 405 | ifndef MINGW32 |
| 390 | 406 | $(error MINGW32 is not set) |
| r245276 | r245277 | |
| 481 | 497 | endif |
| 482 | 498 | $(SILENT) $(MAKE) --no-print-directory -R -C build/projects/$(SUBDIR)/gmake-asmjs config=$(CONFIG) |
| 483 | 499 | |
| 500 | |
| 501 | nacl: nacl_x86 |
| 502 | |
| 484 | 503 | nacl_x64: generate |
| 485 | 504 | ifndef NACL_SDK_ROOT |
| 486 | 505 | $(error NACL_SDK_ROOT is not set) |
| r245276 | r245277 | |
| 523 | 542 | endif |
| 524 | 543 | $(SILENT) $(MAKE) --no-print-directory -R -C build/projects/$(SUBDIR)/gmake-linux config=$(CONFIG)64 |
| 525 | 544 | |
| 545 | linux: linux_x86 |
| 546 | |
| 526 | 547 | linux_x86: generate |
| 527 | 548 | ifndef COMPILE |
| 528 | 549 | $(SILENT) $(GENIE) $(PARAMS) --gcc=linux-gcc --gcc_version=$(GCC_VERSION) gmake |
| r245276 | r245277 | |
| 547 | 568 | endif |
| 548 | 569 | $(SILENT) $(MAKE) --no-print-directory -R -C build/projects/$(SUBDIR)/gmake-osx config=$(CONFIG)64 |
| 549 | 570 | |
| 571 | macosx: macosx_x86 |
| 572 | |
| 550 | 573 | macosx_x86: generate |
| 551 | 574 | ifndef COMPILE |
| 552 | 575 | $(SILENT) $(GENIE) $(PARAMS) --gcc=osx --os_version=$(DARWIN_VERSION) --gcc_version=$(GCC_VERSION) gmake |
| r245276 | r245277 | |
| 598 | 621 | else |
| 599 | 622 | MOC_FILES=$(wildcard $(SRC)/osd/modules/debugger/qt/*.h) |
| 600 | 623 | |
| 601 | | ifeq ($(TARGETOS),windows) |
| 624 | ifeq ($(OS),windows) |
| 602 | 625 | MOC = moc |
| 603 | 626 | ifneq ($(OSD),sdl) |
| 604 | 627 | MOC_FILES= |
trunk/scripts/genie.lua
| r245276 | r245277 | |
| 61 | 61 | trigger = "targetos", |
| 62 | 62 | description = "Choose target OS", |
| 63 | 63 | allowed = { |
| 64 | | { "android", "Android" }, |
| 65 | | { "asmjs", "Emscripten/asm.js" }, |
| 66 | | { "freebsd", "FreeBSD" }, |
| 67 | | { "linux", "Linux" }, |
| 68 | | { "ios", "iOS" }, |
| 69 | | { "nacl", "Native Client" }, |
| 70 | | { "macosx", "OSX" }, |
| 71 | | { "windows", "Windows" }, |
| 64 | { "android-arm", "Android - ARM" }, |
| 65 | { "android-mips", "Android - MIPS" }, |
| 66 | { "android-x86", "Android - x86" }, |
| 67 | { "asmjs", "Emscripten/asm.js" }, |
| 68 | { "freebsd", "FreeBSD" }, |
| 69 | { "nacl", "Native Client" }, |
| 70 | { "nacl-arm", "Native Client - ARM" }, |
| 71 | { "pnacl", "Native Client - PNaCl" }, |
| 72 | { "linux", "Linux" }, |
| 73 | { "ios", "iOS" }, |
| 74 | { "macosx", "OSX" }, |
| 75 | { "windows", "Windows" }, |
| 76 | |
| 72 | 77 | }, |
| 73 | 78 | } |
| 74 | 79 | |