2013-03-27 21:18:29 -07:00
#
2015-01-02 14:43:11 -08:00
# Copyright 2011-2015 Branimir Karadzic. All rights reserved.
2013-03-27 21:18:29 -07:00
# License: http://www.opensource.org/licenses/BSD-2-Clause
#
2014-03-02 21:27:22 -08:00
UNAME := $( shell uname)
2015-04-10 16:46:49 +02:00
i f e q ( $( UNAME ) , $( filter $ ( UNAME ) ,Linux Darwin FreeBSD GNU /kFreeBSD ) )
2014-03-02 21:27:22 -08:00
i f e q ( $( UNAME ) , $( filter $ ( UNAME ) ,Darwin ) )
OS = darwin
e l s e
2015-04-10 16:46:49 +02:00
i f e q ( $( UNAME ) , $( filter $ ( UNAME ) ,FreeBSD GNU /kFreeBSD ) )
OS = bsd
e l s e
2014-03-02 21:27:22 -08:00
OS = linux
e n d i f
2015-04-10 16:46:49 +02:00
e n d i f
2014-03-02 21:27:22 -08:00
e l s e
OS = windows
e n d i f
2015-04-10 14:40:47 -07:00
# $(info $(OS))
2015-04-10 16:46:49 +02:00
2015-09-09 08:45:07 +07:00
GENIE = ../bx/tools/bin/$( OS) /genie $( GENIE_FLAGS)
2014-03-02 21:27:22 -08:00
2013-03-27 21:18:29 -07:00
all :
2014-09-10 21:40:40 -07:00
$( GENIE) --with-tools --with-shared-lib vs2008
$( GENIE) --with-tools --with-shared-lib vs2010
$( GENIE) --with-tools --with-shared-lib vs2012
$( GENIE) --with-tools --with-shared-lib vs2013
2015-04-11 09:45:11 -07:00
$( GENIE) --with-tools --with-shared-lib vs2015
2014-10-18 15:44:45 -07:00
$( GENIE) --with-tools --with-shared-lib --gcc= mingw-gcc gmake
2014-09-10 21:40:40 -07:00
$( GENIE) --with-tools --with-shared-lib --gcc= linux-gcc gmake
$( GENIE) --with-tools --with-shared-lib --gcc= osx gmake
2015-01-14 19:50:45 +01:00
$( GENIE) --with-tools --with-shared-lib --xcode= osx xcode4
$( GENIE) --with-tools --with-shared-lib --xcode= ios xcode4
2015-04-10 16:46:49 +02:00
$( GENIE) --with-shared-lib --gcc= freebsd gmake
2015-01-31 15:21:53 -08:00
2014-09-10 21:40:40 -07:00
$( GENIE) --gcc= android-arm gmake
$( GENIE) --gcc= android-mips gmake
$( GENIE) --gcc= android-x86 gmake
$( GENIE) --gcc= asmjs gmake
$( GENIE) --gcc= ios-arm gmake
$( GENIE) --gcc= ios-simulator gmake
$( GENIE) --gcc= nacl gmake
$( GENIE) --gcc= nacl-arm gmake
$( GENIE) --gcc= pnacl gmake
$( GENIE) --gcc= rpi gmake
2013-03-27 21:18:29 -07:00
2013-11-22 19:14:50 -08:00
.build/projects/gmake-android-arm :
2014-09-10 21:40:40 -07:00
$( GENIE) --gcc= android-arm gmake
2013-11-22 19:14:50 -08:00
android-arm-debug : .build /projects /gmake -android -arm
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-android-arm config = debug
2013-11-22 19:14:50 -08:00
android-arm-release : .build /projects /gmake -android -arm
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-android-arm config = release
2013-04-15 23:10:32 -07:00
android-arm : android -arm -debug android -arm -release
2013-11-22 19:14:50 -08:00
.build/projects/gmake-android-mips :
2014-09-10 21:40:40 -07:00
$( GENIE) --gcc= android-mips gmake
2013-11-22 19:14:50 -08:00
android-mips-debug : .build /projects /gmake -android -mips
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-android-mips config = debug
2013-11-22 19:14:50 -08:00
android-mips-release : .build /projects /gmake -android -mips
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-android-mips config = release
2013-11-09 10:52:19 -08:00
android-mips : android -mips -debug android -mips -release
2013-11-22 19:14:50 -08:00
.build/projects/gmake-android-x86 :
2014-09-10 21:40:40 -07:00
$( GENIE) --gcc= android-x86 gmake
2013-11-22 19:14:50 -08:00
android-x86-debug : .build /projects /gmake -android -x 86
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-android-x86 config = debug
2013-11-22 19:14:50 -08:00
android-x86-release : .build /projects /gmake -android -x 86
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-android-x86 config = release
2013-11-09 10:52:19 -08:00
android-x86 : android -x 86-debug android -x 86-release
2014-03-16 20:10:25 -07:00
.build/projects/gmake-asmjs :
2014-09-10 21:40:40 -07:00
$( GENIE) --gcc= asmjs gmake
2014-03-16 20:10:25 -07:00
asmjs-debug : .build /projects /gmake -asmjs
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-asmjs config = debug
2014-03-16 20:10:25 -07:00
asmjs-release : .build /projects /gmake -asmjs
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-asmjs config = release
2014-03-16 20:10:25 -07:00
asmjs : asmjs -debug asmjs -release
2013-11-22 19:14:50 -08:00
.build/projects/gmake-linux :
2014-09-10 21:40:40 -07:00
$( GENIE) --with-tools --with-shared-lib --gcc= linux-gcc gmake
2013-11-22 19:14:50 -08:00
linux-debug32 : .build /projects /gmake -linux
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-linux config = debug32
2013-11-22 19:14:50 -08:00
linux-release32 : .build /projects /gmake -linux
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-linux config = release32
2013-11-22 19:14:50 -08:00
linux-debug64 : .build /projects /gmake -linux
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-linux config = debug64
2013-11-22 19:14:50 -08:00
linux-release64 : .build /projects /gmake -linux
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-linux config = release64
2013-03-27 21:18:29 -07:00
linux : linux -debug 32 linux -release 32 linux -debug 64 linux -release 64
2015-04-10 16:46:49 +02:00
.build/projects/gmake-freebsd :
$( GENIE) --with-tools --with-shared-lib --gcc= freebsd gmake
freebsd-debug32 : .build /projects /gmake -freebsd
$( MAKE) -R -C .build/projects/gmake-freebsd config = debug32
freebsd-release32 : .build /projects /gmake -freebsd
$( MAKE) -R -C .build/projects/gmake-freebsd config = release32
freebsd-debug64 : .build /projects /gmake -freebsd
$( MAKE) -R -C .build/projects/gmake-freebsd config = debug64
freebsd-release64 : .build /projects /gmake -freebsd
$( MAKE) -R -C .build/projects/gmake-freebsd config = release64
freebsd : freebsd -debug 32 freebsd -release 32 freebsd -debug 64 freebsd -release 64
2014-10-18 15:44:45 -07:00
.build/projects/gmake-mingw-gcc :
2014-12-15 20:59:22 -08:00
$( GENIE) --with-tools --with-shared-lib --gcc= mingw-gcc gmake
2014-12-12 21:19:13 -08:00
mingw-gcc-debug32 : .build /projects /gmake -mingw -gcc
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-mingw-gcc config = debug32
2014-12-12 21:19:13 -08:00
mingw-gcc-release32 : .build /projects /gmake -mingw -gcc
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-mingw-gcc config = release32
2014-12-12 21:19:13 -08:00
mingw-gcc-debug64 : .build /projects /gmake -mingw -gcc
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-mingw-gcc config = debug64
2014-12-12 21:19:13 -08:00
mingw-gcc-release64 : .build /projects /gmake -mingw -gcc
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-mingw-gcc config = release64
2014-12-12 21:19:13 -08:00
mingw-gcc : mingw -gcc -debug 32 mingw -gcc -release 32 mingw -gcc -debug 64 mingw -gcc -release 64
.build/projects/gmake-mingw-clang :
2015-01-31 15:21:53 -08:00
$( GENIE) --gcc= mingw-clang gmake
2014-12-12 21:19:13 -08:00
mingw-clang-debug32 : .build /projects /gmake -mingw -clang
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-mingw-clang config = debug32
2014-12-12 21:19:13 -08:00
mingw-clang-release32 : .build /projects /gmake -mingw -clang
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-mingw-clang config = release32
2014-12-12 21:19:13 -08:00
mingw-clang-debug64 : .build /projects /gmake -mingw -clang
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-mingw-clang config = debug64
2014-12-12 21:19:13 -08:00
mingw-clang-release64 : .build /projects /gmake -mingw -clang
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-mingw-clang config = release64
2014-12-12 21:19:13 -08:00
mingw-clang : mingw -clang -debug 32 mingw -clang -release 32 mingw -clang -debug 64 mingw -clang -release 64
2013-03-27 21:18:29 -07:00
2013-11-22 19:14:50 -08:00
.build/projects/vs2008 :
2014-09-10 21:40:40 -07:00
$( GENIE) --with-tools --with-shared-lib vs2008
2015-04-11 09:45:11 -07:00
vs2008-debug32 : .build /projects /vs 2008
2013-03-27 21:18:29 -07:00
devenv .build/projects/vs2008/bgfx.sln /Build "Debug|Win32"
2015-04-11 09:45:11 -07:00
vs2008-release32 : .build /projects /vs 2008
2013-03-27 21:18:29 -07:00
devenv .build/projects/vs2008/bgfx.sln /Build "Release|Win32"
2015-04-11 09:45:11 -07:00
vs2008-debug64 : .build /projects /vs 2008
2013-03-27 21:18:29 -07:00
devenv .build/projects/vs2008/bgfx.sln /Build "Debug|x64"
2015-04-11 09:45:11 -07:00
vs2008-release64 : .build /projects /vs 2008
2013-03-27 21:18:29 -07:00
devenv .build/projects/vs2008/bgfx.sln /Build "Release|x64"
vs2008 : vs 2008-debug 32 vs 2008-release 32 vs 2008-debug 64 vs 2008-release 64
2013-11-22 19:14:50 -08:00
.build/projects/vs2010 :
2014-09-10 21:40:40 -07:00
$( GENIE) --with-tools --with-shared-lib vs2010
2013-11-22 19:14:50 -08:00
2013-11-26 09:56:03 -08:00
.build/projects/vs2012 :
2014-09-10 21:40:40 -07:00
$( GENIE) --with-tools --with-shared-lib vs2012
2013-11-26 09:56:03 -08:00
2014-09-08 20:32:31 -07:00
.build/projects/vs2013 :
2014-09-10 21:40:40 -07:00
$( GENIE) --with-tools --with-shared-lib vs2013
2014-09-08 20:32:31 -07:00
2015-04-11 09:45:11 -07:00
.build/projects/vs2015 :
$( GENIE) --with-tools --with-shared-lib vs2015
2013-11-22 19:14:50 -08:00
.build/projects/gmake-nacl :
2014-09-10 21:40:40 -07:00
$( GENIE) --gcc= nacl gmake
2013-11-22 19:14:50 -08:00
nacl-debug32 : .build /projects /gmake -nacl
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-nacl config = debug32
2013-11-22 19:14:50 -08:00
nacl-release32 : .build /projects /gmake -nacl
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-nacl config = release32
2013-11-22 19:14:50 -08:00
nacl-debug64 : .build /projects /gmake -nacl
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-nacl config = debug64
2013-11-22 19:14:50 -08:00
nacl-release64 : .build /projects /gmake -nacl
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-nacl config = release64
2013-03-27 21:18:29 -07:00
nacl : nacl -debug 32 nacl -release 32 nacl -debug 64 nacl -release 64
2013-11-22 19:14:50 -08:00
.build/projects/gmake-nacl-arm :
2014-09-10 21:40:40 -07:00
$( GENIE) --gcc= nacl-arm gmake
2013-11-22 19:14:50 -08:00
nacl-arm-debug : .build /projects /gmake -nacl -arm
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-nacl-arm config = debug
2013-11-22 19:14:50 -08:00
nacl-arm-release : .build /projects /gmake -nacl -arm
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-nacl-arm config = release
2013-03-27 21:18:29 -07:00
nacl-arm : nacl -arm -debug 32 nacl -arm -release 32
2013-11-22 19:14:50 -08:00
.build/projects/gmake-pnacl :
2014-09-10 21:40:40 -07:00
$( GENIE) --gcc= pnacl gmake
2013-11-22 19:14:50 -08:00
pnacl-debug : .build /projects /gmake -pnacl
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-pnacl config = debug
2013-11-22 19:14:50 -08:00
pnacl-release : .build /projects /gmake -pnacl
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-pnacl config = release
2013-03-27 21:18:29 -07:00
pnacl : pnacl -debug pnacl -release
2013-11-22 19:14:50 -08:00
.build/projects/gmake-osx :
2014-09-10 21:40:40 -07:00
$( GENIE) --with-tools --with-shared-lib --gcc= osx gmake
2013-11-22 19:14:50 -08:00
osx-debug32 : .build /projects /gmake -osx
2015-04-10 16:46:49 +02:00
$( MAKE) -C .build/projects/gmake-osx config = debug32
2013-11-22 19:14:50 -08:00
osx-release32 : .build /projects /gmake -osx
2015-04-10 16:46:49 +02:00
$( MAKE) -C .build/projects/gmake-osx config = release32
2013-11-22 19:14:50 -08:00
osx-debug64 : .build /projects /gmake -osx
2015-04-10 16:46:49 +02:00
$( MAKE) -C .build/projects/gmake-osx config = debug64
2013-11-22 19:14:50 -08:00
osx-release64 : .build /projects /gmake -osx
2015-04-10 16:46:49 +02:00
$( MAKE) -C .build/projects/gmake-osx config = release64
2013-03-27 21:18:29 -07:00
osx : osx -debug 32 osx -release 32 osx -debug 64 osx -release 64
2013-11-22 19:14:50 -08:00
.build/projects/gmake-ios-arm :
2014-09-10 21:40:40 -07:00
$( GENIE) --gcc= ios-arm gmake
2013-11-22 19:14:50 -08:00
ios-arm-debug : .build /projects /gmake -ios -arm
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-ios-arm config = debug
2013-11-22 19:14:50 -08:00
ios-arm-release : .build /projects /gmake -ios -arm
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-ios-arm config = release
2013-07-21 14:44:53 -07:00
ios-arm : ios -arm -debug ios -arm -release
2013-11-22 19:14:50 -08:00
.build/projects/gmake-ios-simulator :
2014-09-10 21:40:40 -07:00
$( GENIE) --gcc= ios-simulator gmake
2013-11-22 19:14:50 -08:00
ios-simulator-debug : .build /projects /gmake -ios -simulator
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-ios-simulator config = debug
2013-11-22 19:14:50 -08:00
ios-simulator-release : .build /projects /gmake -ios -simulator
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-ios-simulator config = release
2013-07-21 14:44:53 -07:00
ios-simulator : ios -simulator -debug ios -simulator -release
2013-07-14 13:14:48 -07:00
2014-08-24 17:41:41 -07:00
.build/projects/gmake-rpi :
2014-09-10 21:40:40 -07:00
$( GENIE) --gcc= rpi gmake
2014-08-24 17:41:41 -07:00
rpi-debug : .build /projects /gmake -rpi
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-rpi config = debug
2014-08-24 17:41:41 -07:00
rpi-release : .build /projects /gmake -rpi
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C .build/projects/gmake-rpi config = release
2014-08-24 17:41:41 -07:00
rpi : rpi -debug rpi -release
2013-03-27 21:18:29 -07:00
rebuild-shaders :
2015-04-10 16:46:49 +02:00
$( MAKE) -R -C examples rebuild
2013-03-27 21:18:29 -07:00
2013-08-11 19:01:17 -07:00
analyze :
cppcheck src/
cppcheck examples/
2013-03-27 21:18:29 -07:00
docs :
2014-10-03 20:28:31 -07:00
doxygen scripts/bgfx.doxygen
2013-03-27 21:18:29 -07:00
markdown README.md > .build/docs/readme.html
clean :
@echo Cleaning...
2013-10-18 08:29:11 -07:00
-@rm -rf .build
2014-02-09 18:59:49 -08:00
###
SILENT ?= @
UNAME := $( shell uname)
2015-04-10 16:46:49 +02:00
i f e q ( $( UNAME ) , $( filter $ ( UNAME ) ,Linux Darwin FreeBSD GNU /kFreeBSD ) )
2014-02-09 18:59:49 -08:00
i f e q ( $( UNAME ) , $( filter $ ( UNAME ) ,Darwin ) )
OS = darwin
BUILD_PROJECT_DIR = gmake-osx
2014-11-11 19:28:30 -08:00
BUILD_OUTPUT_DIR = osx64_clang
2014-02-09 19:05:33 -08:00
BUILD_TOOLS_CONFIG = release64
2015-03-31 15:09:43 -07:00
BUILD_TOOLS_SUFFIX = Release
2014-02-09 18:59:49 -08:00
EXE =
e l s e
2015-04-10 16:46:49 +02:00
i f e q ( $( UNAME ) , $( filter $ ( UNAME ) ,FreeBSD GNU /kFreeBSD ) )
OS = bsd
BUILD_PROJECT_DIR = gmake-freebsd
BUILD_OUTPUT_DIR = freebsd64_gcc
BUILD_TOOLS_CONFIG = release64
BUILD_TOOLS_SUFFIX = Release
EXE =
e l s e
2014-02-09 18:59:49 -08:00
OS = linux
BUILD_PROJECT_DIR = gmake-linux
2014-02-09 19:05:33 -08:00
BUILD_OUTPUT_DIR = linux64_gcc
BUILD_TOOLS_CONFIG = release64
2015-03-31 15:09:43 -07:00
BUILD_TOOLS_SUFFIX = Release
2014-02-09 18:59:49 -08:00
EXE =
e n d i f
2015-04-10 16:46:49 +02:00
e n d i f
2014-02-09 18:59:49 -08:00
e l s e
OS = windows
2014-10-18 15:44:45 -07:00
BUILD_PROJECT_DIR = gmake-mingw-gcc
BUILD_OUTPUT_DIR = win32_mingw-gcc
2014-02-09 18:59:49 -08:00
BUILD_TOOLS_CONFIG = release32
2015-03-31 15:09:43 -07:00
BUILD_TOOLS_SUFFIX = Release
2014-02-09 18:59:49 -08:00
EXE = .exe
e n d i f
2015-03-31 15:09:43 -07:00
tools/bin/$(OS)/shaderc$(EXE) : .build /projects /$( BUILD_PROJECT_DIR )
2015-04-10 16:46:49 +02:00
$( SILENT) $( MAKE) -C .build/projects/$( BUILD_PROJECT_DIR) -f shaderc.make config = $( BUILD_TOOLS_CONFIG)
2015-03-31 15:09:43 -07:00
$( SILENT) cp .build/$( BUILD_OUTPUT_DIR) /bin/shaderc$( BUILD_TOOLS_SUFFIX) $( EXE) $( @)
2014-02-09 18:59:49 -08:00
2015-03-31 15:09:43 -07:00
tools/bin/$(OS)/geometryc$(EXE) : .build /projects /$( BUILD_PROJECT_DIR )
2015-04-10 16:46:49 +02:00
$( SILENT) $( MAKE) -C .build/projects/$( BUILD_PROJECT_DIR) -f geometryc.make config = $( BUILD_TOOLS_CONFIG)
2015-03-31 15:09:43 -07:00
$( SILENT) cp .build/$( BUILD_OUTPUT_DIR) /bin/geometryc$( BUILD_TOOLS_SUFFIX) $( EXE) $( @)
2014-02-09 18:59:49 -08:00
tools : tools /bin /$( OS ) /shaderc $( EXE ) tools /bin /$( OS ) /geometryc $( EXE )