(RARCH_CONSOLE) Fix whole archive linking for NXEngine cores

This commit is contained in:
twinaphex 2014-04-17 18:10:04 +02:00
parent 70dd57ed63
commit d4845cc6e3
10 changed files with 24 additions and 13 deletions

View File

@ -49,6 +49,11 @@ PYTHON2 = python2$(EXE_EXT)
PYTHON3 = python3$(EXE_EXT)
GIT = git$(EXE_EXT)
ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_START := -Wl,--whole-archive
WHOLE_END := -Wl,--no-whole-archive
endif
ifeq ($(platform), ngc)
CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT)
@ -120,10 +125,6 @@ else ifeq ($(platform), psp1)
endif
CFLAGS += -Wall -std=gnu99 $(MACHDEP) $(INCLUDE)
ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_START := -Wl,--whole-archive
WHOLE_END := -Wl,--no-whole-archive
endif
OBJ = griffin/griffin.o $(PLATOBJS)

View File

@ -8,7 +8,7 @@ fi
make -C ../ -f Makefile.emscripten clean || exit 1
for f in *_emscripten.bc ; do
name=`echo "$f" | sed 's/\(_libretro\|\)_emscripten.bc$//'`
name=`echo "$f" | sed 's/\(_libretro_emscripten\|\).bc$//'`
lto=1
echo "building $name"
if [ $name = "tyrquake" ] ; then

View File

@ -3,13 +3,15 @@
make -C ../ -f Makefile.griffin platform=ngc clean || exit 1
for f in *_ngc.a ; do
name=`echo "$f" | sed 's/\(_libretro\|\)_ngc.a$//'`
name=`echo "$f" | sed 's/\(_libretro_ngc\|\).a$//'`
whole_archive=
big_stack=
if [ $name = "nxengine" ] ; then
echo "NXEngine found, applying whole archive linking..."
whole_archive="WHOLE_ARCHIVE_LINK=1"
fi
if [ $name = "tyrquake" ] ; then
echo "Tyrquake found, applying big stack..."
big_stack="BIG_STACK=1"
fi
cp -f "$f" ../libretro_ngc.a

View File

@ -11,9 +11,10 @@ make -C ../ -f Makefile.ps3.rgl || exit 1
EXE_PATH=/usr/local/cell/host-win32/bin
for f in *_ps3.a ; do
name=`echo "$f" | sed 's/\(_libretro\|\)_ps3.a$//'`
name=`echo "$f" | sed 's/\(_libretro_ps3\|\).a$//'`
whole_archive=
if [ $name = "nxengine" ] ; then
echo "NXEngine found, applying whole archive linking..."
whole_archive="WHOLE_ARCHIVE_LINK=1"
echo $name yes
fi

View File

@ -13,9 +13,10 @@ SCETOOL_PATH=/cygdrive/c/Users/aaa801/ps3tools/ps3tools/tools/scetool/scetool.ex
SCETOOL_FLAGS="--sce-type SELF --compress-data FALSE --self-type APP --key-revision 0004 --self-fw-version 0003004100000000 --self-app-version 0001000000000000 --self-auth-id 1010000001000003 --self-vendor-id 01000002 --self-cap-flags 00000000000000000000000000000000000000000000003b0000000100040000"
for f in *_ps3.a ; do
name=`echo "$f" | sed 's/\(_libretro\|\)_ps3.a$//'`
name=`echo "$f" | sed 's/\(_libretro_ps3\|\).a$//'`
whole_archive=
if [ $name = "nxengine" ] ; then
echo "NXEngine found, applying whole archive linking..."
whole_archive="WHOLE_ARCHIVE_LINK=1"
echo $name yes
fi

View File

@ -12,9 +12,10 @@ MAKE_FSELF_NPDRM=$EXE_PATH/make_fself_npdrm.exe
MAKE_PACKAGE_NPDRM=$EXE_PATH/make_package_npdrm.exe
for f in *_ps3.a ; do
name=`echo "$f" | sed 's/\(_libretro\|\)_ps3.a$//'`
name=`echo "$f" | sed 's/\(_libretro_ps3\|\).a$//'`
whole_archive=
if [ $name = "nxengine" ] ; then
echo "NXEngine found, applying whole archive linking..."
whole_archive="WHOLE_ARCHIVE_LINK=1"
echo $name yes
fi

View File

@ -7,13 +7,15 @@ make -C ../ -f Makefile.psp1 clean || exit 1
make -C ../ -f Makefile.psp1 || exit 1
for f in *_psp1.a ; do
name=`echo "$f" | sed 's/\(_libretro\|\)_psp1.a$//'`
name=`echo "$f" | sed 's/\(_libretro_psp1\|\).a$//'`
whole_archive=
big_stack=
if [ $name = "nxengine" ] ; then
echo "NXEngine found, applying whole archive linking..."
whole_archive="WHOLE_ARCHIVE_LINK=1"
fi
if [ $name = "tyrquake" ] ; then
echo "Tyrquake found, applying big stack..."
big_stack="BIG_STACK=1"
fi
cp -f "$f" ../libretro_psp1.a

View File

@ -7,13 +7,15 @@ make -C ../ -f Makefile.wii.salamander || exit 1
make -C ../ -f Makefile.wii.salamander pkg || exit 1
for f in *_wii.a ; do
name=`echo "$f" | sed 's/\(_libretro\|\)_wii.a$//'`
name=`echo "$f" | sed 's/\(_libretro_wii\|\).a$//'`
whole_archive=
big_stack=
if [ $name = "nxengine" ] ; then
echo "NXEngine found, applying whole archive linking..."
whole_archive="WHOLE_ARCHIVE_LINK=1"
fi
if [ $name = "tyrquake" ] ; then
echo "Tyrquake found, applying big stack..."
big_stack="BIG_STACK=1"
fi
cp -f "$f" ../libretro_wii.a

View File

@ -12,9 +12,10 @@ mkdir -p ../msvc/RetroArch-Xbox1/Release
mkdir -p ../msvc/RetroArch-Xbox1/Release_LTCG
for f in *_xdk.lib ; do
name=`echo "$f" | sed 's/\(_libretro\|\)_xdk.lib$//'`
name=`echo "$f" | sed 's/\(_libretro_xdk\|\).lib$//'`
echo $name
if [ $name = "tyrquake" ] || [ $name = "genesis_plus_gx" ] ; then
echo "Applying whole archive linking for this core..."
cp -f "$f" ../msvc/RetroArch-Xbox1/Release_LTCG_BigStack/libretro_xdk.lib
cmd.exe /k xdk1_env_bigstack.bat ${name}_libretro_xdk1
else

View File

@ -10,7 +10,7 @@ mkdir -p ../msvc/RetroArch-360/Release
mkdir -p ../msvc/RetroArch-360/Release_LTCG
for f in *_xdk360.lib ; do
name=`echo "$f" | sed 's/\(_libretro\|\)_xdk360.lib$//'`
name=`echo "$f" | sed 's/\(_libretro_xdk360\|\).lib$//'`
echo $name
cp -f "$f" ../msvc/RetroArch-360/Release_LTCG/libretro_xdk360.lib
cmd.exe /k xdk360_env.bat ${name}_libretro_xdk360