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
Lutro
Commits
c4c4686c
Unverified
Commit
c4c4686c
authored
Mar 30, 2021
by
RobLoach
Browse files
Merge branch 'master' of github.com:libretro/libretro-lutro into update-libretro
parents
8677a38b
b5469ad2
Changes
71
Expand all
Hide whitespace changes
Inline
Side-by-side
.editorconfig
0 → 100644
View file @
c4c4686c
root = true
[*]
end_of_line = lf
[*.go]
indent_style = tab
indent_size = 3
insert_final_newline = true
# c/cpp/h rules match libretro
[*.{c,cpp,h,inl}]
indent_style = space
insert_final_newline = true
indent_size = 3
[*.{txt,md}]
indent_style = space
indent_size = 4
[*,{html,xml,cs}]
indent_style = space
indent_size = 2
[*,{csproj,vcxproj,sln}]
indent_style = tab
indent_size = 4
end_of_line = crlf
.gitignore
View file @
c4c4686c
# Editor workspaces
.vs/
.vscode/
*.user
# Object files
*.o
*.ko
...
...
@@ -5,9 +10,10 @@
*.elf
/obj
# Precompiled Headers
# Precompiled Headers
vand other Build Artifacts
*.gch
*.pch
*.ilk
# Libraries
*.lib
...
...
@@ -23,6 +29,7 @@
# Executables
*.exe
*.pdb
*.out
*.app
*.i*86
...
...
.gitlab-ci.yml
View file @
c4c4686c
...
...
@@ -43,6 +43,14 @@ include:
-
project
:
'
libretro-infrastructure/ci-templates'
file
:
'
/android-jni.yml'
# iOS
-
project
:
'
libretro-infrastructure/ci-templates'
file
:
'
/ios-arm64.yml'
# iOS (armv7)
-
project
:
'
libretro-infrastructure/ci-templates'
file
:
'
/ios9.yml'
################################## CONSOLES ################################
# PlayStation Vita
-
project
:
'
libretro-infrastructure/ci-templates'
...
...
@@ -56,6 +64,12 @@ include:
-
project
:
'
libretro-infrastructure/ci-templates'
file
:
'
/wii-static.yml'
# tvOS (AppleTV)
-
project
:
'
libretro-infrastructure/ci-templates'
file
:
'
/tvos-arm64.yml'
#################################### MISC ##################################
# Stages for building
stages
:
-
build-prepare
...
...
@@ -128,6 +142,24 @@ android-x86:
-
.libretro-android-jni-x86
-
.core-defs
# iOS
libretro-build-ios-arm64
:
extends
:
-
.libretro-ios-arm64-make-default
-
.core-defs
# iOS (armv7) [iOS 9 and up]
libretro-build-ios9
:
extends
:
-
.libretro-ios9-make-default
-
.core-defs
# tvOS
libretro-build-tvos-arm64
:
extends
:
-
.libretro-tvos-arm64-make-default
-
.core-defs
################################### CONSOLES #################################
# Nintendo GameCube
libretro-build-ngc
:
...
...
AUTHORS
View file @
c4c4686c
...
...
@@ -2,5 +2,13 @@ Higor Eurípedes - <heuripedes@gmail.com>
- Main code
Jean-André Santoni - <jean.andre.santoni@gmail.com>
-
graphics.c
-
Love2d compatibility
Rob Loach - <robloach@gmail.com>
- Love2d compatibility
Bob Paradiso - <bobparadiso@gmail.com>
- Ogg vorbis support
Daniel de Matteis - <libretro@gmail.com>
- Makefile
Makefile
View file @
c4c4686c
...
...
@@ -4,21 +4,21 @@ WANT_JIT=0
WANT_ZLIB
=
1
WANT_UNZIP
=
1
WANT_LUASOCKET
=
0
WANT_PHYSFS
=
1
WANT_PHYSFS
=
0
MMD
:=
-MMD
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
else
ifneq
($(findstring win,$(shell uname -a)),)
platform
=
win
endif
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
else
ifneq
($(findstring win,$(shell uname -a)),)
platform
=
win
endif
endif
# system platform
...
...
@@ -47,57 +47,55 @@ endif
LIBM
:=
-lm
STATIC_LINKING
:=
0
ifeq
($(platform), unix)
TARGET
:=
$(TARGET_NAME)
_libretro.so
fpic
:=
-fPIC
SHARED
:=
-shared
-Wl
,--no-as-needed,--no-undefined
LUA_SYSCFLAGS
:=
-DLUA_USE_POSIX
HAVE_INOTIFY
=
1
LDFLAGS
+=
-Wl
,-E
TARGET
:=
$(TARGET_NAME)
_libretro.so
fpic
:=
-fPIC
SHARED
:=
-shared
-Wl
,--no-as-needed,--no-undefined
LUA_SYSCFLAGS
:=
-DLUA_USE_POSIX
HAVE_INOTIFY
=
1
LDFLAGS
+=
-Wl
,-E
else
ifeq
($(platform), linux-portable)
TARGET
:=
$(TARGET_NAME)
_libretro.so
fpic
:=
-fPIC
-nostdlib
SHARED
:=
-shared
HAVE_INOTIFY
=
1
LUA_SYSCFLAGS
:=
-DLUA_USE_POSIX
LIBM
:=
LDFLAGS
+=
-Wl
,-E
TARGET
:=
$(TARGET_NAME)
_libretro.so
fpic
:=
-fPIC
-nostdlib
SHARED
:=
-shared
HAVE_INOTIFY
=
1
LUA_SYSCFLAGS
:=
-DLUA_USE_POSIX
LIBM
:=
LDFLAGS
+=
-Wl
,-E
else
ifeq
($(platform), osx)
TARGET
:=
$(TARGET_NAME)
_libretro.dylib
fpic
:=
-fPIC
SHARED
:=
-dynamiclib
LUA_SYSCFLAGS
:=
-DLUA_USE_MACOSX
CFLAGS
+=
-DHAVE_STRL
WANT_PHYSFS
=
0
MMD
:=
ifeq
($(UNIVERSAL),1)
ifeq
($(ARCHFLAGS),)
ARCHFLAGS
=
-arch
i386
-arch
x86_64
endif
ifeq
($(archs),arm)
ARCHFLAGS
=
-arch
arm64
endif
ifeq
($(archs),ppc)
ARCHFLAGS
=
-arch
ppc
-arch
ppc64
endif
endif
ifeq
($(CROSS_COMPILE),1)
TARGET_RULE
=
-target
$(LIBRETRO_APPLE_PLATFORM)
-isysroot
$(LIBRETRO_APPLE_ISYSROOT)
CC
+=
$(TARGET_RULE)
CFLAGS
+=
$(TARGET_RULE)
CPPFLAGS
+=
$(TARGET_RULE)
CXXFLAGS
+=
$(TARGET_RULE)
LDFLAGS
+=
$(TARGET_RULE)
LUA_SYSCFLAGS
+=
$(TARGET_RULE)
CFLAGS
+=
-DDONT_WANT_ARM_OPTIMIZATIONS
else
ifeq
($(shell uname -p),arm)
CFLAGS
+=
-DDONT_WANT_ARM_OPTIMIZATIONS
endif
endif
TARGET
:=
$(TARGET_NAME)
_libretro.dylib
fpic
:=
-fPIC
SHARED
:=
-dynamiclib
LUA_SYSCFLAGS
:=
-DLUA_USE_MACOSX
CFLAGS
+=
-DHAVE_STRL
-DDONT_WANT_ARM_OPTIMIZATIONS
WANT_PHYSFS
=
0
MMD
:=
ifeq
($(UNIVERSAL),1)
ifeq
($(ARCHFLAGS),)
ARCHFLAGS
=
-arch
i386
-arch
x86_64
endif
ifeq
($(archs),arm)
ARCHFLAGS
=
-arch
arm64
endif
ifeq
($(archs),ppc)
ARCHFLAGS
=
-arch
ppc
-arch
ppc64
endif
endif
ifeq
($(CROSS_COMPILE),1)
TARGET_RULE
=
-target
$(LIBRETRO_APPLE_PLATFORM)
-isysroot
$(LIBRETRO_APPLE_ISYSROOT)
CC
+=
$(TARGET_RULE)
CFLAGS
+=
$(TARGET_RULE)
CPPFLAGS
+=
$(TARGET_RULE)
CXXFLAGS
+=
$(TARGET_RULE)
LDFLAGS
+=
$(TARGET_RULE)
LUA_SYSCFLAGS
+=
$(TARGET_RULE)
CFLAGS
+=
-DDONT_WANT_ARM_OPTIMIZATIONS
else
ifeq
($(shell uname -p),arm)
CFLAGS
+=
-DDONT_WANT_ARM_OPTIMIZATIONS
endif
endif
CFLAGS
+=
$(ARCHFLAGS)
CXXFLAGS
+=
$(ARCHFLAGS)
...
...
@@ -105,77 +103,98 @@ endif
# iOS
else
ifneq
(,$(findstring ios,$(platform)))
TARGET
:=
$(TARGET_NAME)
_libretro_ios.dylib
fpic
:=
-fPIC
SHARED
:=
-dynamiclib
DEFINES
:=
-DIOS
CFLAGS
+=
-DHAVE_STRL
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
IPHONEMINVER
:=
ifeq
($(platform),ios9)
IPHONEMINVER
=
-miphoneos-version-min
=
8.0
TARGET
:=
$(TARGET_NAME)
_libretro_ios.dylib
fpic
:=
-fPIC
SHARED
:=
-dynamiclib
DEFINES
:=
-DIOS
CFLAGS
+=
-DHAVE_STRL
-DDONT_WANT_ARM_OPTIMIZATIONS
MINVERSION
:=
ifeq
($(IOSSDK),)
IOSSDK
:=
$(
shell
xcodebuild
-version
-sdk
iphoneos Path
)
endif
ifeq
($(platform),$(filter $(platform),ios9 ios-arm64))
CC
=
cc
-arch
arm64
-isysroot
$(IOSSDK)
else
IPHONEMINVER
=
-miphoneos-version-min
=
6.0
CC
=
cc
-arch
armv7
-isysroot
$(IOSSDK)
endif
LDFLAGS
+=
$(IPHONEMINVER)
FLAGS
+=
$(IPHONEMINVER)
CCFLAGS
+=
$(IPHONEMINVER)
CXXFLAGS
+=
$(IPHONEMINVER)
WANT_PHYSFS
=
0
ifeq
($(platform),ios9)
MINVERSION
=
-miphoneos-version-min
=
8.0
else
MINVERSION
=
-miphoneos-version-min
=
6.0
endif
LDFLAGS
+=
$(MINVERSION)
FLAGS
+=
$(MINVERSION)
CFLAGS
+=
$(MINVERSION)
CXXFLAGS
+=
$(MINVERSION)
LUA_MYCFLAGS
:=
$(MINVERSION)
WANT_PHYSFS
=
0
LUADEFINES
=
-DIOS
else
ifeq
($(platform), tvos-arm64)
TARGET
:=
$(TARGET_NAME)
_libretro_tvos.dylib
fpic
:=
-fPIC
SHARED
:=
-dynamiclib
DEFINES
:=
-DIOS
CFLAGS
+=
-DHAVE_STRL
-DDONT_WANT_ARM_OPTIMIZATIONS
MINVERSION
:=
ifeq
($(IOSSDK),)
IOSSDK
:=
$(
shell
xcodebuild
-version
-sdk
appletvos Path
)
endif
CC
=
cc
-arch
arm64
-isysroot
$(IOSSDK)
LDFLAGS
+=
$(MINVERSION)
FLAGS
+=
$(MINVERSION)
CFLAGS
+=
$(MINVERSION)
CXXFLAGS
+=
$(MINVERSION)
LUA_MYCFLAGS
:=
$(MINVERSION)
WANT_PHYSFS
=
0
LUADEFINES
=
-DIOS
else
ifeq
($(platform), qnx)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.so
fpic
:=
-fPIC
SHARED
:=
-shared
-Wl
,--no-undefined
MMD
:=
CC
=
qcc
-Vgcc_ntoarmv7le
CXX
=
QCC
-Vgcc_ntoarmv7le
# Blackberry is fully capable to do thumb2 but gcc 4.6.3 crashes on
# physfs/7z compilation. Also cdrom part of physfs fails to compile
# but we don't need it anyway
CFLAGS
+=
-marm
-mthumb-interwork
-DPHYSFS_NO_CDROM_SUPPORT
=
1
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.so
fpic
:=
-fPIC
SHARED
:=
-shared
-Wl
,--no-undefined
MMD
:=
CC
=
qcc
-Vgcc_ntoarmv7le
CXX
=
QCC
-Vgcc_ntoarmv7le
# Blackberry is fully capable to do thumb2 but gcc 4.6.3 crashes on
# physfs/7z compilation. Also cdrom part of physfs fails to compile
# but we don't need it anyway
CFLAGS
+=
-marm
-mthumb-interwork
-DPHYSFS_NO_CDROM_SUPPORT
=
1
else
ifeq
($(platform), emscripten)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.bc
STATIC_LINKING
=
1
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.bc
STATIC_LINKING
=
1
# PSP
else
ifeq
($(platform), psp1)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
fpic
:=
CC
=
psp-gcc
$(EXE_EXT)
CXX
=
psp-g++
$(EXE_EXT)
AR
=
psp-ar
$(EXE_EXT)
DEFINES
:=
-DPSP
-G0
-DLSB_FIRST
-DHAVE_ASPRINTF
CFLAGS
+=
-march
=
allegrex
-mfp32
-mgp32
-mlong32
-mabi
=
eabi
CFLAGS
+=
-fomit-frame-pointer
-fstrict-aliasing
CFLAGS
+=
-falign-functions
=
32
-falign-loops
-falign-labels
-falign-jumps
CFLAGS
+=
-I
$(
shell
psp-config
--pspsdk-path
)
/include
LDFLAGS
+=
$(DEVKITPSP)
psp/lib/libc.a
$(DEVKITPSP)
psp/sdk/lib/libpspkernel.a
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
STATIC_LINKING
=
1
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
fpic
:=
CC
=
psp-gcc
$(EXE_EXT)
CXX
=
psp-g++
$(EXE_EXT)
AR
=
psp-ar
$(EXE_EXT)
DEFINES
:=
-DPSP
-G0
-DLSB_FIRST
-DHAVE_ASPRINTF
CFLAGS
+=
-march
=
allegrex
-mfp32
-mgp32
-mlong32
-mabi
=
eabi
CFLAGS
+=
-fomit-frame-pointer
-fstrict-aliasing
CFLAGS
+=
-falign-functions
=
32
-falign-loops
-falign-labels
-falign-jumps
CFLAGS
+=
-I
$(
shell
psp-config
--pspsdk-path
)
/include
LDFLAGS
+=
$(DEVKITPSP)
psp/lib/libc.a
$(DEVKITPSP)
psp/sdk/lib/libpspkernel.a
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
STATIC_LINKING
=
1
WANT_PHYSFS
=
0
MMD
:=
MMD
:=
# Vita
else
ifeq
($(platform), vita)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
fpic
:=
-fno-PIC
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
fpic
:=
-fno-PIC
CC
=
arm-vita-eabi-gcc
$(EXE_EXT)
CXX
=
arm-vita-eabi-g++
$(EXE_EXT)
AR
=
arm-vita-eabi-ar
$(EXE_EXT)
DEFINES
:=
-DVITA
-DHAVE_ASPRINTF
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
STATIC_LINKING
=
1
DEFINES
:=
-DVITA
-DHAVE_ASPRINTF
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
STATIC_LINKING
=
1
WANT_PHYSFS
=
0
MMD
:=
MMD
:=
else
ifeq
($(platform), ngc)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
...
...
@@ -185,9 +204,9 @@ else ifeq ($(platform), ngc)
AR
=
$(DEVKITPPC)
/bin/powerpc-eabi-ar
$(EXE_EXT)
DEFINES
+=
-DGEKKO
-DHW_DOL
-mrvl
-mcpu
=
750
-meabi
-mhard-float
WANT_PHYSFS
=
0
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
STATIC_LINKING
=
1
MMD
:=
MMD
:=
else
ifeq
($(platform), wii)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
...
...
@@ -197,9 +216,9 @@ else ifeq ($(platform), wii)
AR
=
$(DEVKITPPC)
/bin/powerpc-eabi-ar
$(EXE_EXT)
DEFINES
+=
-DGEKKO
-DHW_RVL
-mrvl
-mcpu
=
750
-meabi
-mhard-float
WANT_PHYSFS
=
0
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
STATIC_LINKING
=
1
MMD
:=
MMD
:=
else
ifeq
($(platform), wiiu)
TARGET
:=
$(TARGET_NAME)
_libretro_
$(platform)
.a
...
...
@@ -208,10 +227,10 @@ else ifeq ($(platform), wiiu)
CXX
=
$(DEVKITPPC)
/bin/powerpc-eabi-g++
$(EXE_EXT)
AR
=
$(DEVKITPPC)
/bin/powerpc-eabi-ar
$(EXE_EXT)
DEFINES
+=
-DGEKKO
-DWIIU
-DHW_RVL
-mrvl
-mcpu
=
750
-meabi
-mhard-float
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
STATIC_LINKING
=
1
WANT_PHYSFS
=
0
MMD
:=
MMD
:=
# CTR(3DS)
else
ifeq
($(platform), ctr)
...
...
@@ -246,37 +265,37 @@ else ifeq ($(platform), ps3)
CXX
=
$(CELL_SDK)
/host-win32/ppu/bin/ppu-lv2-g++.exe
AR
=
$(CELL_SDK)
/host-win32/ppu/bin/ppu-lv2-ar.exe
DEFINES
:=
-D__CELLOS_LV2__
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
STATIC_LINKING
=
1
MMD
:=
MMD
:=
# ARM
else
ifneq
(,$(findstring armv,$(platform)))
TARGET
:=
$(TARGET_NAME)
_libretro.so
SHARED
:=
-shared
-Wl
,--no-undefined
fpic
:=
-fPIC
CFLAGS
+=
-D_GNU_SOURCE
=
1
ifneq
(,$(findstring cortexa8,$(platform)))
CFLAGS
+=
-marm
-mcpu
=
cortex-a8
ASFLAGS
+=
-mcpu
=
cortex-a8
else
ifneq
(,$(findstring cortexa9,$(platform)))
CFLAGS
+=
-marm
-mcpu
=
cortex-a9
ASFLAGS
+=
-mcpu
=
cortex-a9
endif
CFLAGS
+=
-marm
ifneq
(,$(findstring neon,$(platform)))
CFLAGS
+=
-mfpu
=
neon
ASFLAGS
+=
-mfpu
=
neon
HAVE_NEON
=
1
endif
ifneq
(,$(findstring softfloat,$(platform)))
CFLAGS
+=
-mfloat-abi
=
softfp
ASFLAGS
+=
-mfloat-abi
=
softfp
else
ifneq
(,$(findstring hardfloat,$(platform)))
CFLAGS
+=
-mfloat-abi
=
hard
ASFLAGS
+=
-mfloat-abi
=
hard
endif
CFLAGS
+=
-DARM
TARGET
:=
$(TARGET_NAME)
_libretro.so
SHARED
:=
-shared
-Wl
,--no-undefined
fpic
:=
-fPIC
CFLAGS
+=
-D_GNU_SOURCE
=
1
ifneq
(,$(findstring cortexa8,$(platform)))
CFLAGS
+=
-marm
-mcpu
=
cortex-a8
ASFLAGS
+=
-mcpu
=
cortex-a8
else
ifneq
(,$(findstring cortexa9,$(platform)))
CFLAGS
+=
-marm
-mcpu
=
cortex-a9
ASFLAGS
+=
-mcpu
=
cortex-a9
endif
CFLAGS
+=
-marm
ifneq
(,$(findstring neon,$(platform)))
CFLAGS
+=
-mfpu
=
neon
ASFLAGS
+=
-mfpu
=
neon
HAVE_NEON
=
1
endif
ifneq
(,$(findstring softfloat,$(platform)))
CFLAGS
+=
-mfloat-abi
=
softfp
ASFLAGS
+=
-mfloat-abi
=
softfp
else
ifneq
(,$(findstring hardfloat,$(platform)))
CFLAGS
+=
-mfloat-abi
=
hard
ASFLAGS
+=
-mfloat-abi
=
hard
endif
CFLAGS
+=
-DARM
# sncps3
else
ifeq
($(platform), sncps3)
...
...
@@ -286,40 +305,40 @@ else ifeq ($(platform), sncps3)
CXX
=
$(CELL_SDK)
/host-win32/sn/bin/ps3ppusnc.exe
AR
=
$(CELL_SDK)
/host-win32/sn/bin/ps3snarl.exe
DEFINES
:=
-D__CELLOS_LV2__
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
LUA_MYCFLAGS
:=
$(DEFINES)
$(CFLAGS)
STATIC_LINKING
=
1
MMD
:=
MMD
:=
else
CC
?=
gcc
TARGET
:=
$(TARGET_NAME)
_libretro.dll
SHARED
:=
-shared
-static-libgcc
-static-libstdc
++
-s
-Wl
,--no-undefined
CC
?=
gcc
TARGET
:=
$(TARGET_NAME)
_libretro.dll
SHARED
:=
-shared
-static-libgcc
-static-libstdc
++
-s
-Wl
,--no-undefined
endif
ifeq
($(DEBUG), 1)
CFLAGS
+=
-O0
-g
LUA_MYCFLAGS
+=
-O0
-g
-DLUA_USE_APICHECK
CFLAGS
+=
-O0
-g
LUA_MYCFLAGS
+=
-O0
-g
-DLUA_USE_APICHECK
else
CFLAGS
+=
-O3
LUA_MYCFLAGS
+=
-O3
CFLAGS
+=
-O3
LUA_MYCFLAGS
+=
-O3
endif
CORE_DIR
:=
.
include
Makefile.common
OBJS
+=
$(SOURCES_C:.c=.o)
$(SOURCES_CXX:.cpp=.o)
$(SOURCES_ASM:.S=.o)
OBJS
+=
$(SOURCES_C:.c=.o)
$(VORBIS_SOURCES_C:.c=.o)
$(SOURCES_CXX:.cpp=.o)
$(SOURCES_ASM:.S=.o)
CFLAGS
+=
-Wall
-pedantic
$(fpic)
$(INCFLAGS)
LUADIR
:=
deps/lua/src
LUALIB
:=
$(LUADIR)
/liblua.a
ifeq
($(WANT_JIT),1)
LUADIR
:=
deps/luajit/src
LUALIB
:=
$(LUADIR)
/libluajit.a
ifeq
($(platform), unix)
LIBS
+=
-ldl
endif
CFLAGS
+=
-DHAVE_JIT
LUADIR
:=
deps/luajit/src
LUALIB
:=
$(LUADIR)
/libluajit.a
ifeq
($(platform), unix)
LIBS
+=
-ldl
endif
CFLAGS
+=
-DHAVE_JIT
endif
CFLAGS
+=
-I
$(LUADIR)
$(DEFINES)
-DOUTSIDE_SPEEX
-DRANDOM_PREFIX
=
speex
-DEXPORT
=
-DFIXED_POINT
...
...
@@ -327,33 +346,66 @@ CFLAGS += -I$(LUADIR) $(DEFINES) -DOUTSIDE_SPEEX -DRANDOM_PREFIX=speex -DEXPORT=
LIBS
+=
$(LUALIB)
$(LIBM)
ifeq
($(platform), qnx)
CFLAGS
+=
-Wc
,-std
=
gnu99
CFLAGS
+=
-Wc
,-std
=
gnu99
else
ifneq
($(platform), sncps3)
CFLAGS
+=
-std
=
gnu99
CFLAGS
+=
-std
=
gnu99
endif
ifneq
($(SANITIZER),)
CFLAGS
+=
-fsanitize
=
$(SANITIZER)
LDFLAGS
+=
-fsanitize
=
$(SANITIZER)
SHARED
:=
-shared
CFLAGS
+=
-fsanitize
=
$(SANITIZER)
LDFLAGS
+=
-fsanitize
=
$(SANITIZER)
SHARED
:=
-shared
endif
ifeq
($(platform), osx)
ifndef
($(NOUNIVERSAL))
CFLAGS
+=
$(ARCHFLAGS)
LFLAGS
+=
$(ARCHFLAGS)
endif
endif
ifeq
($(platform),ios-arm64)
LUADEFINES
=
-DIOS
ifndef
($(NOUNIVERSAL))
CFLAGS
+=
$(ARCHFLAGS)
LFLAGS
+=
$(ARCHFLAGS)
endif
endif
OBJS
:=
$(
addprefix
obj/,
$(OBJS)
)
all
:
$(TARGET)
# TARGET: vcxproj
#
# This target bypasses most config options and generates an msbuild property sheet which is included into
# one or more vcxproj targets. Most build options are still configured via the vcxproj itself (via Visual
# Studio target selector, and other VS IDE things). This just provides a nice way of generating sources and
# include dirs from one authorative list: Makefile.common
#
# Limitations:
# - msbuild cannot handle easily options per-sourcefile. Such functionality will require multiple msbuild files,
# or authoring a standalone tool that can can inject the massive amount of red-tape xml boilerplate needed to
# specify build settings per sourcefile. (the latter is not recommended)
#
# - if any of the SOURCES_C items are populated using wildcards then this will fail. In that case, there needs
# to be dependency checks on the contents of each dir (gnu make supports this, just specify dirs as dependencies
# and any files added/removed/renamed within them will trigger a rule rebuild).
#
vcxproj
:
msbuild/lutro_sources.props
msbuild/lutro_sources.props
:
Makefile Makefile.common
@
printf
"msbuild/lutro_sources.props: Generating with %d sources, %d includes
\n
"
$(
words
$(SOURCES_C)
)
$(
words
$(MSVC_SOURCES_H)
)
@
>
msbuild/lutro_sources.props
echo
'<?xml version="1.0" encoding="utf-8"?>'
@
>>
msbuild/lutro_sources.props
echo
'<!-- AUTO_GENERATED FILE - generated by '
make vcxproj
' -->'
@
>>
msbuild/lutro_sources.props
echo
'<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">'
@
>>
msbuild/lutro_sources.props
echo
' <ItemGroup>'
@
>>
msbuild/lutro_sources.props
printf
" <ClCompile Include=
\"
../%s
\"
/>
\n
"
$(SOURCES_C)
@
>>
msbuild/lutro_sources.props
echo
' </ItemGroup>'
@
[[
-z
"
$(MSVC_SOURCES_H)
"
]]
||
\
>>
msbuild/lutro_sources.props
echo
' <ItemGroup>'
&&
\
>>
msbuild/lutro_sources.props
printf
" <ClInclude Include=
\"
../%s
\"
/>
\n
"
$(MSVC_SOURCES_H)
&&
\
>>
msbuild/lutro_sources.props
echo
' </ItemGroup>'
@
>>
msbuild/lutro_sources.props
echo
' <ItemDefinitionGroup>'
@
>>
msbuild/lutro_sources.props
echo
' <ClCompile>'
@
>>
msbuild/lutro_sources.props
printf
" <AdditionalIncludeDirectories>%%(AdditionalIncludeDirectories);../%s</AdditionalIncludeDirectories>
\n
"
$(
subst
-I
,,
$(
filter
-I
%,
$(CFLAGS)
))