Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Libretro
libretro-chailove
Commits
dc2ed14e
Verified
Commit
dc2ed14e
authored
Oct 19, 2017
by
RobLoach
Browse files
Update the Makefile
parent
f823443b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Makefile
View file @
dc2ed14e
DEBUG
=
0
ifeq
($(platform),)
platform
=
unix
ifeq
($(shell uname -a),)
platform
=
win
else
ifneq
($(findstring Darwin,$(shell uname -a)),)
platform
=
osx
else
ifneq
($(findstring MINGW,$(shell uname -a)),)
platform
=
win
endif
endif
TARGET_NAME
:=
chaigame
ifeq
($(platform), unix)
TARGET
:=
$(TARGET_NAME)
_libretro.so
fpic
+=
-fPIC
SHARED
:=
-shared
-Wl
,--no-undefined
-Wl
,--version-script
=
link.T
ENDIANNESS_DEFINES
:=
-DLSB_FIRST
FLAGS
+=
-D__LINUX__
-D__linux
SDL_PREFIX
:=
unix
# android arm
else
ifneq
(,$(findstring android,$(platform)))
TARGET
:=
$(TARGET_NAME)
_libretro_android.so
fpic
+=
-fPIC
SHARED
:=
-lstdc
++
-lstd
++fs
-llog
-lz
-shared
-Wl
,--version-script
=
link.T
-Wl
,--no-undefined
CFLAGS
+=
-g
-O2
FLAGS
+=
-DANDROID
# cross Windows
else
ifeq
($(platform), wincross64)
TARGET
:=
$(TARGET_NAME)
_libretro.dll
AR
=
x86_64-w64-mingw32-ar
CC
=
x86_64-w64-mingw32-gcc
CXX
=
x86_64-w64-mingw32-g++
SHARED
:=
-shared
-Wl
,--no-undefined
-Wl
,--version-script
=
link.T
LDFLAGS
+=
-static-libgcc
-static-libstdc
++
-lstd
++fs
ENDIANNESS_DEFINES
:=
-DLSB_FIRST
FLAGS
+=
-D_WIN64
EXTRA_LDF
:=
-lwinmm
-Wl
,--export-all-symbols
SDL_PREFIX
:=
win
else
TARGET
:=
$(TARGET_NAME)
_retro.dll
CC
=
gcc
CXX
=
g++
SHARED
:=
-shared
-Wl
,--no-undefined
-Wl
,--version-script
=
link.T
LDFLAGS
+=
-static-libgcc
-static-libstdc
++
-lstd
++fs
ENDIANNESS_DEFINES
:=
-DLSB_FIRST
FLAGS
+=
-D_WIN32
EXTRA_LDF
+=
-lwinmm
-Wl
,--export-all-symbols
SDL_PREFIX
:=
win
endif
# MacOSX
ifeq
($(platform), osx)
FLAGS
+=
-D__APPLE__
endif
# ChaiGame
SOURCES_CXX
+=
$(
wildcard
\
src/
*
.cpp
\
src/chaigame/
*
.cpp
\
test
/
*
.cpp
\
src/chaigame/graphics/
*
.cpp
\
src/chaigame/input/
*
.cpp
\
src/chaigame/audio/
*
.cpp
\
src/chaigame/system/
*
.cpp
\
)
# PhysFS
SOURCES_C
+=
$(
wildcard
\
vendor/physfs/extras/physfsrwops.c
\
vendor/physfs/src/
*
.c
\
)
# SDL_tty
SOURCES_C
+=
$(
wildcard
\
vendor/SDL_tty/src/SDL_tty.c
\
vendor/SDL_tty/src/SDL_fnt.c
\
)
include
Makefile.libretro
include
Makefile.common
# SDL_gfx
SOURCES_C
+=
$(
wildcard
\
vendor/sdl-libretro/tests/SDL_gfx-2.0.26/
*
.c
\
)
# SDL
ifeq
($(platform), win)
SDL_SOURCES_C
+=
$(
wildcard
./vendor/sdl-libretro/src/
*
.c ./vendor/sdl-libretro/src/audio/
*
.c ./vendor/sdl-libretro/src/cdrom/win32/
*
.c ./vendor/sdl-libretro/src/cdrom/
*
.c ./vendor/sdl-libretro/src/cpuinfo/
*
.c ./vendor/sdl-libretro/src/events/
*
.c ./vendor/sdl-libretro/src/file/
*
.c ./vendor/sdl-libretro/src/stdlib/
*
.c ./vendor/sdl-libretro/src/thread/
*
.c ./vendor/sdl-libretro/src/timer/
*
.c ./vendor/sdl-libretro/src/video/
*
.c ./vendor/sdl-libretro/src/joystick/
*
.c ./vendor/sdl-libretro/src/video/libretro/
*
.c ./vendor/sdl-libretro/src/joystick/libretro/
*
.c ./vendor/sdl-libretro/src/timer/libretro/
*
.c ./vendor/sdl-libretro/src/audio/libretro/
*
.c ./vendor/sdl-libretro/src/thread/win32/SDL_sysmutex.c ./vendor/sdl-libretro/src/thread/win32/SDL_syssem.c ./vendor/sdl-libretro/src/thread/win32/SDL_systhread.c ./vendor/sdl-libretro/src/thread/generic/SDL_syscond.c ./vendor/sdl-libretro/src/loadso/dummy/
*
.c
)
else
SDL_SOURCES_C
+=
$(
wildcard
./vendor/sdl-libretro/src/
*
.c ./vendor/sdl-libretro/src/audio/
*
.c ./vendor/sdl-libretro/src/cdrom/linux/
*
.c ./vendor/sdl-libretro/src/cdrom/
*
.c ./vendor/sdl-libretro/src/cpuinfo/
*
.c ./vendor/sdl-libretro/src/events/
*
.c ./vendor/sdl-libretro/src/file/
*
.c ./vendor/sdl-libretro/src/stdlib/
*
.c ./vendor/sdl-libretro/src/thread/
*
.c ./vendor/sdl-libretro/src/timer/
*
.c ./vendor/sdl-libretro/src/video/
*
.c ./vendor/sdl-libretro/src/joystick/
*
.c ./vendor/sdl-libretro/src/video/libretro/
*
.c ./vendor/sdl-libretro/src/thread/pthread/
*
.c ./vendor/sdl-libretro/src/joystick/libretro/
*
.c ./vendor/sdl-libretro/src/timer/libretro/
*
.c ./vendor/sdl-libretro/src/audio/libretro/
*
.c ./vendor/sdl-libretro/src/loadso/dummy/
*
.c
)
endif
OBJECTS
+=
$(SDL_SOURCES_C:.c=.o)
$(SOURCES_CXX:.cpp=.o)
$(SOURCES_C:.c=.o)
# Build all the dependencies, and the core.
all
:
| dependencies $(TARGET)
ifeq
($(DEBUG), 0)
FLAGS
+=
-O3
-ffast-math
-fomit-frame-pointer
else
FLAGS
+=
-O0
-g
endif
LDFLAGS
+=
$(fpic)
$(SHARED)
\
-ldl
\
-lpthread
\
$(EXTRA_LDF)
FLAGS
+=
-I
.
\
-Ivendor
/sdl-libretro/include
\
-Ivendor
/libretro-common/include
\
-Ivendor
/chaiscript/include
\
-Ivendor
/SDL_tty/include
\
-Ivendor
/spdlog/include
\
-Ivendor
/sdl-libretro/tests/SDL_gfx-2.0.26
\
-Ivendor
/sdl-libretro/tests/SDL_ttf-2.0.11/VisualC/external/include
\
-Ivendor
/ChaiScript_Extras/include
\
-Ivendor
/physfs/src
\
-Ivendor
/Snippets
\
-Ivendor
/stb
WARNINGS
:=
ifeq
($(HAVE_CHAISCRIPT),)
FLAGS
+=
-D__HAVE_CHAISCRIPT__
-DCHAISCRIPT_NO_THREADS
-DCHAISCRIPT_NO_THREADS_WARNING
endif
ifneq
($(HAVE_TESTS),)
FLAGS
+=
-D__HAVE_TESTS__
ifeq
($(STATIC_LINKING),1)
FLAGS
+=
-DSTATIC_LINKING
endif
FLAGS
+=
-D__LIBRETRO__
$(
ENDIANNESS
_DEFINES)
$(WARNINGS)
$(fpic)
FLAGS
+=
-D__LIBRETRO__
$(
COREDEFINES)
$(ENDIANNESS_DEFINES)
$(PLATFORM
_DEFINES)
$(WARNINGS)
$(fpic)
CXXFLAGS
+=
$(FLAGS)
-fpermissive
-std
=
c++14
CFLAGS
+=
$(FLAGS)
-std
=
gnu99
...
...
Makefile.common
0 → 100644
View file @
dc2ed14e
# ChaiGame
SOURCES_CXX
+=
$(
wildcard
\
src/
*
.cpp
\
src/chaigame/
*
.cpp
\
test
/
*
.cpp
\
src/chaigame/graphics/
*
.cpp
\
src/chaigame/input/
*
.cpp
\
src/chaigame/audio/
*
.cpp
\
src/chaigame/system/
*
.cpp
\
)
# PhysFS
SOURCES_C
+=
$(
wildcard
\
vendor/physfs/extras/physfsrwops.c
\
vendor/physfs/src/
*
.c
\
)
# SDL_tty
SOURCES_C
+=
$(
wildcard
\
vendor/SDL_tty/src/SDL_tty.c
\
vendor/SDL_tty/src/SDL_fnt.c
\
)
# SDL_gfx
SOURCES_C
+=
$(
wildcard
\
vendor/sdl-libretro/tests/SDL_gfx-2.0.26/
*
.c
\
)
# SDL
ifeq
($(platform), win)
SDL_SOURCES_C
+=
$(
wildcard
./vendor/sdl-libretro/src/
*
.c ./vendor/sdl-libretro/src/audio/
*
.c ./vendor/sdl-libretro/src/cdrom/win32/
*
.c ./vendor/sdl-libretro/src/cdrom/
*
.c ./vendor/sdl-libretro/src/cpuinfo/
*
.c ./vendor/sdl-libretro/src/events/
*
.c ./vendor/sdl-libretro/src/file/
*
.c ./vendor/sdl-libretro/src/stdlib/
*
.c ./vendor/sdl-libretro/src/thread/
*
.c ./vendor/sdl-libretro/src/timer/
*
.c ./vendor/sdl-libretro/src/video/
*
.c ./vendor/sdl-libretro/src/joystick/
*
.c ./vendor/sdl-libretro/src/video/libretro/
*
.c ./vendor/sdl-libretro/src/joystick/libretro/
*
.c ./vendor/sdl-libretro/src/timer/libretro/
*
.c ./vendor/sdl-libretro/src/audio/libretro/
*
.c ./vendor/sdl-libretro/src/thread/win32/SDL_sysmutex.c ./vendor/sdl-libretro/src/thread/win32/SDL_syssem.c ./vendor/sdl-libretro/src/thread/win32/SDL_systhread.c ./vendor/sdl-libretro/src/thread/generic/SDL_syscond.c ./vendor/sdl-libretro/src/loadso/dummy/
*
.c
)
else
SDL_SOURCES_C
+=
$(
wildcard
./vendor/sdl-libretro/src/
*
.c ./vendor/sdl-libretro/src/audio/
*
.c ./vendor/sdl-libretro/src/cdrom/linux/
*
.c ./vendor/sdl-libretro/src/cdrom/
*
.c ./vendor/sdl-libretro/src/cpuinfo/
*
.c ./vendor/sdl-libretro/src/events/
*
.c ./vendor/sdl-libretro/src/file/
*
.c ./vendor/sdl-libretro/src/stdlib/
*
.c ./vendor/sdl-libretro/src/thread/
*
.c ./vendor/sdl-libretro/src/timer/
*
.c ./vendor/sdl-libretro/src/video/
*
.c ./vendor/sdl-libretro/src/joystick/
*
.c ./vendor/sdl-libretro/src/video/libretro/
*
.c ./vendor/sdl-libretro/src/thread/pthread/
*
.c ./vendor/sdl-libretro/src/joystick/libretro/
*
.c ./vendor/sdl-libretro/src/timer/libretro/
*
.c ./vendor/sdl-libretro/src/audio/libretro/
*
.c ./vendor/sdl-libretro/src/loadso/dummy/
*
.c
)
endif
OBJECTS
+=
$(SDL_SOURCES_C:.c=.o)
$(SOURCES_CXX:.cpp=.o)
$(SOURCES_C:.c=.o)
# Build all the dependencies, and the core.
all
:
| dependencies $(TARGET)
ifeq
($(DEBUG), 0)
FLAGS
+=
-O3
-ffast-math
-fomit-frame-pointer
else
FLAGS
+=
-O0
-g
endif
LDFLAGS
+=
$(fpic)
$(SHARED)
\
-ldl
\
-lpthread
\
$(EXTRA_LDF)
FLAGS
+=
-I
.
\
-Ivendor
/sdl-libretro/include
\
-Ivendor
/libretro-common/include
\
-Ivendor
/chaiscript/include
\
-Ivendor
/SDL_tty/include
\
-Ivendor
/spdlog/include
\
-Ivendor
/sdl-libretro/tests/SDL_gfx-2.0.26
\
-Ivendor
/sdl-libretro/tests/SDL_ttf-2.0.11/VisualC/external/include
\
-Ivendor
/ChaiScript_Extras/include
\
-Ivendor
/physfs/src
\
-Ivendor
/Snippets
\
-Ivendor
/stb
WARNINGS
:=
ifeq
($(HAVE_CHAISCRIPT),)
FLAGS
+=
-D__HAVE_CHAISCRIPT__
-DCHAISCRIPT_NO_THREADS
-DCHAISCRIPT_NO_THREADS_WARNING
endif
ifneq
($(HAVE_TESTS),)
FLAGS
+=
-D__HAVE_TESTS__
endif
Makefile.libretro
0 → 100644
View file @
dc2ed14e
DEBUG
=
0
ifeq
($(platform),)
platform
=
unix
ifeq
($(shell uname -a),)
platform
=
win
else
ifneq
($(findstring MINGW,$(shell uname -a)),)
platform
=
win
else
ifneq
($(findstring Darwin,$(shell uname -a)),)
platform
=
osx
arch
=
intel
ifeq
($(shell uname -p),powerpc)
arch
=
ppc
endif
else
ifneq
($(findstring win,$(shell uname -a)),)
platform
=
win
endif
endif
# system platform
system_platform
=
unix
ifeq
($(shell uname -a),)
EXE_EXT
=
.exe
system_platform
=
win
else
ifneq
($(findstring Darwin,$(shell uname -a)),)
system_platform
=
osx
arch
=
intel
ifeq
($(shell uname -p),powerpc)
arch
=
ppc
endif
else
ifneq
($(findstring MINGW,$(shell uname -a)),)
system_platform
=
win
endif
GIT_VERSION
:=
"
$(
shell
git rev-parse --short HEAD || echo unknown
)
"
ifneq
($(GIT_VERSION)," unknown")
CFLAGS
+=
-DGIT_VERSION
=
\"
$(GIT_VERSION)
\"
endif
LIBM
:=
-lm
LIBS
:=
# Unix
ifeq
($(platform), unix)
TARGET
:=
$(TARGET_NAME)
_libretro.so
fpic
:=
-fPIC
SHARED
:=
-shared
-Wl
,--version-script
=
link.T
-Wl
,-no-undefined
else
ifeq
($(platform), linux-portable)
TARGET
:=
$(TARGET_NAME)
_libretro.so
fpic
:=
-fPIC
-nostdlib
SHARED
:=
-shared
-Wl
,--version-script
=
link.T
LIBM
:=
# OS X
else
ifeq
($(platform), osx)
TARGET
:=
$(TARGET_NAME)
_libretro.dylib
fpic
:=
-fPIC
SHARED
:=
-dynamiclib
ifeq
($(arch),ppc)
ENDIANNESS_DEFINES
+=
-DMSB_FIRST
endif
OSXVER
=
`
sw_vers
-productVersion
|
cut
-d
.
-f
2
`
OSX_LT_MAVERICKS
=
`
((
$(OSXVER)
<
=
9
))
&&
echo
"YES"
`
fpic
+=
-mmacosx-version-min
=
10.1
ifndef
($(NOUNIVERSAL))
CFLAGS
+=
$(ARCHFLAGS)
LDFLAGS
+=
$(ARCHFLAGS)
endif
# iOS
else
ifneq
(,$(findstring ios,$(platform)))
TARGET
:=
$(TARGET_NAME)
_libretro_ios.dylib
fpic
:=
-fPIC
SHARED
:=
-dynamiclib
CFLAGS
+=
-DIOS
ifeq
($(IOSSDK),)
IOSSDK
:=
$(
shell
xcodebuild
-version
-sdk
iphoneos Path
)
endif
ifeq
($(platform),ios-arm64)
CC
=
cc
-arch
arm64
-isysroot
$(IOSSDK)
else
CC
=
cc
-arch
armv7
-isysroot
$(IOSSDK)
endif
CFLAGS
+=
-DIOS
ifeq
($(platform),$(filter $(platform),ios9 ios-arm64))
CC
+=
-miphoneos-version-min
=
8.0
CFLAGS
+=
-miphoneos-version-min
=
8.0
else
CC
+=
-miphoneos-version-min
=
5.0
CFLAGS
+=
-miphoneos-version-min
=
5.0
endif
# Theos iOS
else
ifeq
($(platform), theos_ios)
DEPLOYMENT_IOSVERSION
=
5.0
TARGET
=
iphone:latest:
$(DEPLOYMENT_IOSVERSION)
ARCHS
=
armv7 armv7s
TARGET_IPHONEOS_DEPLOYMENT_VERSION
=
$(DEPLOYMENT_IOSVERSION)
THEOS_BUILD_DIR
:=
objs
include
$(THEOS)/makefiles/common.mk
LIBRARY_NAME
=
$(TARGET_NAME)
_libretro_ios
# QNX
else
ifeq
($(platform), qnx)
TARGET
:=
$(TARGET_NAME)
_libretro_qnx.so
fpic
:=
-fPIC
SHARED
:=
-shared
-Wl
,--version-script
=
link.T
-Wl
,-no-undefined
CC
=
qcc
-Vgcc_ntoarmv7le
AR
=
qcc
-Vgcc_ntoarmv7le
PLATFORM_DEFINES
:=
-D__BLACKBERRY_QNX__
-marm
-mcpu
=
cortex-a9
-mfpu
=
neon
-mfloat-abi
=
softfp
# PS3
else
ifeq
($(platform), ps3)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
CC
=
$(CELL_SDK)
/host-win32/ppu/bin/ppu-lv2-gcc.exe
AR
=
$(CELL_SDK)
/host-win32/ppu/bin/ppu-lv2-ar.exe
PLATFORM_DEFINES
:=
-D__CELLOS_LV2
ENDIANNESS_DEFINES
+=
-DMSB_FIRST
STATIC_LINKING
=
1
EXTERNAL_ZLIB
=
1
# sncps3
else
ifeq
($(platform), sncps3)
TARGET
:=
$(TARGET_NAME)
_libretro_ps3.a
CC
=
$(CELL_SDK)
/host-win32/sn/bin/ps3ppusnc.exe
AR
=
$(CELL_SDK)
/host-win32/sn/bin/ps3snarl.exe
PLATFORM_DEFINES
:=
-D__CELLOS_LV2
ENDIANNESS_DEFINES
+=
-DMSB_FIRST
STATIC_LINKING
=
1
EXTERNAL_ZLIB
=
1
# PSP
else
ifeq
($(platform), psp1)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
CC
=
psp-gcc
$(EXE_EXT)
AR
=
psp-ar
$(EXE_EXT)
PLATFORM_DEFINES
:=
-DPSP
-G0
PLATFORM_DEFINES
+=
-march
=
allegrex
-mfp32
-mgp32
-mlong32
-mabi
=
eabi
PLATFORM_DEFINES
+=
-fomit-frame-pointer
-fstrict-aliasing
PLATFORM_DEFINES
+=
-falign-functions
=
32
-falign-loops
-falign-labels
-falign-jumps
STATIC_LINKING
=
1
EXTERNAL_ZLIB
=
1
# Vita
else
ifeq
($(platform), vita)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
CC
=
arm-vita-eabi-gcc
$(EXE_EXT)
AR
=
arm-vita-eabi-ar
$(EXE_EXT)
PLATFORM_DEFINES
:=
-DVITA
STATIC_LINKING
=
1
EXTERNAL_ZLIB
=
1
# DOS
else
ifeq
($(platform), dos)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
CC
=
i686-pc-msdosdjgpp-gcc
AR
=
i686-pc-msdosdjgpp-ar
CFLAGS
+=
-march
=
i386
STATIC_LINKING
=
1
EXTERNAL_ZLIB
=
1
# CTR(3DS)
else
ifeq
($(platform), ctr)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
CC
=
$(DEVKITARM)
/bin/arm-none-eabi-gcc
$(EXE_EXT)
AR
=
$(DEVKITARM)
/bin/arm-none-eabi-ar
$(EXE_EXT)
PLATFORM_DEFINES
:=
-DARM11
-D_3DS
CFLAGS
+=
-march
=
armv6k
-mtune
=
mpcore
-mfloat-abi
=
hard
CFLAGS
+=
-Wall
-mword-relocations
CFLAGS
+=
-fomit-frame-pointer
-fstrict-aliasing
-ffast-math
STATIC_LINKING
=
1
EXTERNAL_ZLIB
=
1
# Raspberry Pi 1
else
ifeq
($(platform), rpi1)
TARGET
:=
$(TARGET_NAME)
_libretro.so
fpic
:=
-fPIC
SHARED
:=
-shared
-Wl
,--version-script
=
link.T
-Wl
,-no-undefined
CFLAGS
+=
-DARM11
CFLAGS
+=
-marm
-march
=
armv6j
-mfpu
=
vfp
-mfloat-abi
=
hard
-funsafe-math-optimizations
CFLAGS
+=
-fomit-frame-pointer
-fstrict-aliasing
-ffast-math
# Raspberry Pi 2
else
ifeq
($(platform), rpi2)
TARGET
:=
$(TARGET_NAME)
_libretro.so
fpic
:=
-fPIC
SHARED
:=
-shared
-Wl
,--version-script
=
link.T
-Wl
,-no-undefined
CFLAGS
+=
-DARM
CFLAGS
+=
-marm
-mcpu
=
cortex-a7
-mfpu
=
neon-vfpv4
-mfloat-abi
=
hard
-funsafe-math-optimizations
CFLAGS
+=
-fomit-frame-pointer
-fstrict-aliasing
-ffast-math
# Lightweight PS3 Homebrew SDK
else
ifeq
($(platform), psl1ght)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
CC
=
$(PS3DEV)
/ppu/bin/ppu-gcc
$(EXE_EXT)
AR
=
$(PS3DEV)
/ppu/bin/ppu-ar
$(EXE_EXT)
PLATFORM_DEFINES
:=
-D__CELLOS_LV2
ENDIANNESS_DEFINES
+=
-DMSB_FIRST
STATIC_LINKING
=
1
EXTERNAL_ZLIB
=
1
# Xbox 360
else
ifeq
($(platform), xenon)
TARGET
:=
$(TARGET_NAME)
_libretro_xenon360.a
CC
=
xenon-gcc
$(EXE_EXT)
AR
=
xenon-ar
$(EXE_EXT)
PLATFORM_DEFINES
:=
-D__LIBXENON__
ENDIANNESS_DEFINES
+=
-DMSB_FIRST
STATIC_LINKING
=
1
EXTERNAL_ZLIB
=
1
# Nintendo Game Cube
else
ifeq
($(platform), ngc)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
CC
=
$(DEVKITPPC)
/bin/powerpc-eabi-gcc
$(EXE_EXT)
AR
=
$(DEVKITPPC)
/bin/powerpc-eabi-ar
$(EXE_EXT)
PLATFORM_DEFINES
:=
-DGEKKO
-DHW_DOL
-mrvl
-mcpu
=
750
-meabi
-mhard-float
PLATFORM_DEFINES
+=
-U__INT32_TYPE__
-U
__UINT32_TYPE__
-D__INT32_TYPE__
=
int
ENDIANNESS_DEFINES
+=
-DMSB_FIRST
STATIC_LINKING
=
1
EXTERNAL_ZLIB
=
1
# Nintendo Wii
else
ifeq
($(platform), wii)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
CC
=
$(DEVKITPPC)
/bin/powerpc-eabi-gcc
$(EXE_EXT)
AR
=
$(DEVKITPPC)
/bin/powerpc-eabi-ar
$(EXE_EXT)
PLATFORM_DEFINES
:=
-DGEKKO
-DHW_RVL
-mrvl
-mcpu
=
750
-meabi
-mhard-float
PLATFORM_DEFINES
+=
-U__INT32_TYPE__
-U
__UINT32_TYPE__
-D__INT32_TYPE__
=
int
ENDIANNESS_DEFINES
+=
-DMSB_FIRST
STATIC_LINKING
=
1
EXTERNAL_ZLIB
=
1
# Nintendo WiiU
else
ifeq
($(platform), wiiu)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
CC
=
$(DEVKITPPC)
/bin/powerpc-eabi-gcc
$(EXE_EXT)
AR
=
$(DEVKITPPC)
/bin/powerpc-eabi-ar
$(EXE_EXT)
PLATFORM_DEFINES
:=
-DGEKKO
-DHW_RVL
-mwup
-mcpu
=
750
-meabi
-mhard-float
PLATFORM_DEFINES
+=
-U__INT32_TYPE__
-U
__UINT32_TYPE__
-D__INT32_TYPE__
=
int
ENDIANNESS_DEFINES
+=
-DMSB_FIRST
STATIC_LINKING
=
1
EXTERNAL_ZLIB
=
1
# ARM
else
ifneq
(,$(findstring armv,$(platform)))
TARGET
:=
$(TARGET_NAME)
_libretro.so
SHARED
:=
-shared
-Wl
,--version-script
=
link.T
-Wl
,-no-undefined
fpic
:=
-fPIC
ifneq
(,$(findstring cortexa5,$(platform)))
PLATFORM_DEFINES
+=
-marm
-mcpu
=
cortex-a5
else
ifneq
(,$(findstring cortexa8,$(platform)))
PLATFORM_DEFINES
+=
-marm
-mcpu
=
cortex-a8
else
ifneq
(,$(findstring cortexa9,$(platform)))
PLATFORM_DEFINES
+=
-marm
-mcpu
=
cortex-a9
else
ifneq
(,$(findstring cortexa15a7,$(platform)))
PLATFORM_DEFINES
+=
-marm
-mcpu
=
cortex-a15.cortex-a7
else
PLATFORM_DEFINES
+=
-marm
endif
ifneq
(,$(findstring softfloat,$(platform)))
PLATFORM_DEFINES
+=
-mfloat-abi
=
softfp
else
ifneq
(,$(findstring hardfloat,$(platform)))
PLATFORM_DEFINES
+=
-mfloat-abi
=
hard
endif
PLATFORM_DEFINES
+=
-DARM
# emscripten
else
ifeq
($(platform), emscripten)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.bc
STATIC_LINKING
=
1
EXTERNAL_ZLIB
=
1
# GCW0
else
ifeq
($(platform), gcw0)
TARGET
:=
$(TARGET_NAME)
_libretro.so
CC
=
/opt/gcw0-toolchain/usr/bin/mipsel-linux-gcc
CXX
=
/opt/gcw0-toolchain/usr/bin/mipsel-linux-g++
AR
=
/opt/gcw0-toolchain/usr/bin/mipsel-linux-ar
fpic
:=
-fPIC
SHARED
:=
-shared
-Wl
,--version-script
=
link.T
-Wl
,-no-undefined
PLATFORM_DEFINES
+=
-ffast-math
-march
=
mips32
-mtune
=
mips32r2
-mhard-float
EXTERNAL_ZLIB
=
1
# Windows MSVC 2017 all architectures
else
ifneq
(,$(findstring windows_msvc2017,$(platform)))
PlatformSuffix
=
$(
subst
windows_msvc2017_,,
$(platform)
)
ifneq
(,$(findstring desktop,$(PlatformSuffix)))
WinPartition
=
desktop
MSVC2017CompileFlags
=
-DWINAPI_FAMILY
=
WINAPI_FAMILY_DESKTOP_APP
LDFLAGS
+=
-MANIFEST
-LTCG
:incremental
-NXCOMPAT
-DYNAMICBASE
-DEBUG
-OPT
:REF
-INCREMENTAL
:NO
-SUBSYSTEM
:WINDOWS
-MANIFESTUAC
:
"level='asInvoker' uiAccess='false'"
-OPT
:ICF
-ERRORREPORT
:PROMPT
-NOLOGO
-TLBID
:1
LIBS
+=
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
else
ifneq
(,$(findstring uwp,$(PlatformSuffix)))
WinPartition
=
uwp
MSVC2017CompileFlags
=
-DWINAPI_FAMILY
=
WINAPI_FAMILY_APP
-DWINDLL
-D_UNICODE
-DUNICODE
-DWRL_NO_DEFAULT_LIB
LDFLAGS
+=
-APPCONTAINER
-NXCOMPAT
-DYNAMICBASE
-MANIFEST
:NO
-LTCG
-OPT
:REF
-SUBSYSTEM
:CONSOLE
-MANIFESTUAC
:NO
-OPT
:ICF
-ERRORREPORT
:PROMPT
-NOLOGO
-TLBID
:1
-DEBUG
:FULL
-WINMD
:NO
LIBS
+=
WindowsApp.lib
endif
CFLAGS
+=
$(MSVC2017CompileFlags)
CXXFLAGS
+=
$(MSVC2017CompileFlags)
TargetArchMoniker
=
$(
subst
$(WinPartition)
_,,
$(PlatformSuffix)
)
CC
=
cl.exe
CXX
=
cl.exe
reg_query
=
$(
call
filter_out2,
$(
subst
$2
,,
$(
shell
reg query
"
$2
"
-v
"
$1
"
2>nul
)))
fix_path
=
$(
subst
$(SPACE)
,
\
,
$(
subst
\,
/,
$1
))
ProgramFiles86w
:=
$(
shell
cmd /c
"echo %PROGRAMFILES(x86
)
%"
)
ProgramFiles86
:=
$(
shell
cygpath
"
$(ProgramFiles86w)
"
)
WindowsSdkDir
?=
$(
call
reg_query,InstallationFolder,HKEY_LOCAL_MACHINE
\S
OFTWARE
\W
ow6432Node
\M
icrosoft
\M
icrosoft SDKs
\W
indows
\v
10.0
)
WindowsSdkDir
?=
$(
call
reg_query,InstallationFolder,HKEY_CURRENT_USER
\S
OFTWARE
\W
ow6432Node
\M
icrosoft
\M
icrosoft SDKs
\W
indows
\v
10.0
)
WindowsSdkDir
?=
$(
call
reg_query,InstallationFolder,HKEY_LOCAL_MACHINE
\S
OFTWARE
\M
icrosoft
\M
icrosoft SDKs
\W
indows
\v
10.0
)
WindowsSdkDir
?=
$(
call
reg_query,InstallationFolder,HKEY_CURRENT_USER
\S
OFTWARE
\M
icrosoft
\M
icrosoft SDKs
\W
indows
\v
10.0
)
WindowsSdkDir
:=
$(WindowsSdkDir)
WindowsSDKVersion
?=
$(
firstword
$(
foreach
folder,
$(
subst
$(
subst
\,
/,
$(WindowsSdkDir)
Include/
)
,,
$(
wildcard
$(
call
fix_path,
$(WindowsSdkDir)
Include
\*
)))
,
$(
if
$(
wildcard
$(
call
fix_path,
$(WindowsSdkDir)
Include/
$(folder)
/um/Windows.h
))
,
$(folder)
,
)))
$(BACKSLASH)
WindowsSDKVersion
:=
$(WindowsSDKVersion)
VsInstallBuildTools
=
$(ProgramFiles86)
/Microsoft Visual Studio/2017/BuildTools
VsInstallEnterprise
=
$(ProgramFiles86)
/Microsoft Visual Studio/2017/Enterprise
VsInstallProfessional
=
$(ProgramFiles86)
/Microsoft Visual Studio/2017/Professional
VsInstallCommunity
=
$(ProgramFiles86)
/Microsoft Visual Studio/2017/Community
VsInstallRoot
?=
$(
shell
if
[
-d
"
$(VsInstallBuildTools)
"
]
;
then
echo
"
$(VsInstallBuildTools)
"
;
fi
)
ifeq
($(VsInstallRoot), )
VsInstallRoot
=
$(
shell
if
[
-d
"
$(VsInstallEnterprise)
"
]
;
then
echo
"
$(VsInstallEnterprise)
"
;
fi
)
endif
ifeq
($(VsInstallRoot), )
VsInstallRoot
=
$(
shell
if
[
-d
"
$(VsInstallProfessional)
"
]
;
then
echo
"
$(VsInstallProfessional)
"
;
fi
)
endif
ifeq
($(VsInstallRoot), )
VsInstallRoot
=
$(
shell
if
[
-d
"
$(VsInstallCommunity)
"
]
;
then
echo
"
$(VsInstallCommunity)
"
;
fi
)
endif
VsInstallRoot
:=
$(VsInstallRoot)
VcCompilerToolsVer
:=
$(
shell
cat
"
$(VsInstallRoot)
/VC/Auxiliary/Build/Microsoft.VCToolsVersion.default.txt"
|
grep
-o
'[0-9\.]*'
)
VcCompilerToolsDir
:=
$(VsInstallRoot)
/VC/Tools/MSVC/
$(VcCompilerToolsVer)
WindowsSDKSharedIncludeDir
:=
$(
shell
cygpath
-w
"
$(WindowsSdkDir)
\I
nclude
\$
(WindowsSDKVersion
)
\s
hared"
)
WindowsSDKUCRTIncludeDir
:=
$(
shell
cygpath
-w
"
$(WindowsSdkDir)
\I
nclude
\$
(WindowsSDKVersion
)
\u
crt"
)
WindowsSDKUMIncludeDir
:=
$(
shell
cygpath
-w
"
$(WindowsSdkDir)
\I
nclude
\$
(WindowsSDKVersion
)
\u
m"
)
WindowsSDKUCRTLibDir
:=
$(
shell
cygpath
-w
"
$(WindowsSdkDir)
\L
ib
\$
(WindowsSDKVersion
)
\u
crt
\$
(TargetArchMoniker
)
"
)
WindowsSDKUMLibDir
:=
$(
shell
cygpath
-w
"
$(WindowsSdkDir)
\L
ib
\$
(WindowsSDKVersion
)
\u
m
\$
(TargetArchMoniker
)
"
)
# For some reason the HostX86 compiler doesn't like compiling for x64
# ("no such file" opening a shared library), and vice-versa.
# Work around it for now by using the strictly x86 compiler for x86, and x64 for x64.
# NOTE: What about ARM?
ifneq
(,$(findstring x64,$(TargetArchMoniker)))
VCCompilerToolsBinDir
:=
$(VcCompilerToolsDir)
\b
in
\H
ostX64
else
VCCompilerToolsBinDir
:=
$(VcCompilerToolsDir)
\b
in
\H
ostX86
endif
PATH
:=
$(
shell
IFS
=
$$
'\n'
;
cygpath
"
$(VCCompilerToolsBinDir)
/
$(TargetArchMoniker)
"
)
:
$(PATH)
PATH
:=
$(PATH)
:
$(
shell
IFS
=
$$
'\n'
;
cygpath
"
$(VsInstallRoot)
/Common7/IDE"
)
INCLUDE
:=
$(
shell
IFS
=
$$
'\n'
;
cygpath
-w
"
$(VcCompilerToolsDir)
/include"
)
LIB
:=
$(
shell
IFS
=
$$
'\n'
;
cygpath
-w
"
$(VcCompilerToolsDir)
/lib/
$(TargetArchMoniker)
"
)
export
INCLUDE
:=
$(INCLUDE)
;
$(WindowsSDKSharedIncludeDir)
;
$(WindowsSDKUCRTIncludeDir)
;
$(WindowsSDKUMIncludeDir)
export
LIB
:=
$(LIB)
;
$(WindowsSDKUCRTLibDir)
;
$(WindowsSDKUMLibDir)
TARGET
:=
$(TARGET_NAME)
_libretro.dll
PSS_STYLE
:=
2
LDFLAGS
+=
-DLL
# Windows MSVC 2010 x64
else
ifeq
($(platform), windows_msvc2010_x64)
CC
=
cl.exe
CXX
=
cl.exe
PATH
:=
$(
shell
IFS
=
$$
'\n'
;
cygpath
"
$(VS100COMNTOOLS)
../../VC/bin/amd64"
)
:
$(PATH)
PATH
:=
$(PATH)
:
$(
shell
IFS
=
$$
'\n'
;
cygpath
"
$(VS100COMNTOOLS)
../IDE"
)
INCLUDE
:=
$(
shell
IFS
=
$$
'\n'
;
cygpath
"
$(VS100COMNTOOLS)
../../VC/include"
)
LIB
:=
$(
shell
IFS
=
$$
'\n'
;
cygpath
"
$(VS100COMNTOOLS)
../../VC/lib/amd64"
)
BIN
:=
$(
shell
IFS
=
$$
'\n'
;
cygpath
"
$(VS100COMNTOOLS)
../../VC/bin"
)
WindowsSdkDir
:=
$(
shell
reg query
"HKLM
\S
OFTWARE
\M
icrosoft
\M
icrosoft SDKs
\W
indows
\v
7.0A"
-v
"InstallationFolder"
|
grep
-o
'[A-Z]:\\.*'
)
lib/x64
WindowsSdkDir
?=
$(
shell
reg query
"HKLM
\S
OFTWARE
\M
icrosoft
\M
icrosoft SDKs
\W
indows
\v
7.1A"
-v
"InstallationFolder"
|
grep
-o
'[A-Z]:\\.*'
)
lib/x64
export
INCLUDE
:=
$(INCLUDE)
export
LIB
:=
$(LIB)
;
$(WindowsSdkDir)
TARGET
:=
$(TARGET_NAME)
_libretro.dll
PSS_STYLE
:=
2
LDFLAGS
+=
-DLL
# Windows MSVC 2010 x86
else
ifeq
($(platform), windows_msvc2010_x86)
CC
=
cl.exe
CXX
=
cl.exe
PATH
:=
$(
shell
IFS
=
$$
'\n'
;
cygpath
"
$(VS100COMNTOOLS)
../../VC/bin"
)
:
$(PATH)
PATH
:=
$(PATH)
:
$(
shell
IFS
=
$$
'\n'
;
cygpath
"
$(VS100COMNTOOLS)
../IDE"
)
INCLUDE
:=
$(
shell
IFS
=
$$
'\n'
;
cygpath
"
$(VS100COMNTOOLS)
../../VC/include"
)
LIB
:=
$(
shell
IFS
=
$$
'\n'
;
cygpath
-w
"
$(VS100COMNTOOLS)
../../VC/lib"
)
BIN
:=
$(
shell
IFS
=
$$
'\n'
;
cygpath
"
$(VS100COMNTOOLS)
../../VC/bin"
)
WindowsSdkDir
:=
$(
shell
reg query
"HKLM
\S
OFTWARE
\M
icrosoft
\M
icrosoft SDKs
\W
indows
\v
7.0A"
-v
"InstallationFolder"
|
grep
-o
'[A-Z]:\\.*'
)
lib
WindowsSdkDir
?=
$(
shell
reg query
"HKLM
\S
OFTWARE
\M
icrosoft
\M
icrosoft SDKs
\W
indows
\v
7.1A"
-v
"InstallationFolder"
|
grep
-o
'[A-Z]:\\.*'
)
lib
export
INCLUDE
:=
$(INCLUDE)
export
LIB
:=
$(LIB)
;
$(WindowsSdkDir)
TARGET
:=
$(TARGET_NAME)
_libretro.dll
PSS_STYLE
:=
2
LDFLAGS
+=
-DLL
# Windows MSVC 2003 Xbox 1
else
ifeq
($(platform), xbox1_msvc2003)
TARGET
:=
$(TARGET_NAME)
_libretro_xdk1.lib
CC
=
CL.exe
CXX
=
CL.exe
LD
=
lib.exe
export
INCLUDE
:=
$(XDK)
\x
box
\i
nclude