mirror of
https://github.com/libretro/RetroArch.git
synced 2024-11-23 16:09:47 +00:00
23f0a85446
== DETAILS The broadcast address is a standard part of TCP/IP that is used to send messages to everyone on the subnet. This patch updates the logging code to do the following: 1. Derive the broadcast address from the Wii U's own IP address and subnet mask. These can all be obtained at runtime, which means we can... 2. Remove the PC_DEVELOPMENT_IP_ADDRESS define from Wii U's Makefile, because compiling in an IP is no longer needed. 3. Rewrite the net_listen script to listen for broadcast packets and print them out with timestamps. Since it's using the broadcast address, the only requirement is that the PC be on the same network subnet as the Wii U. Because of the low overhead of UDP, I've made logging on by default. This will make it a ton easier to get useful bug reports from users.
196 lines
4.4 KiB
Bash
Executable File
196 lines
4.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
. ../version.all
|
|
platform=wiiu
|
|
EXT=a
|
|
scriptDir=
|
|
pngDir=
|
|
infoDir=
|
|
|
|
original_pwd=$(pwd)
|
|
|
|
setScriptDir()
|
|
{
|
|
scriptDir=$(dirname $(readlink -f $1))
|
|
}
|
|
|
|
setInfoDir()
|
|
{
|
|
if [ -d ../../dist/info ]; then
|
|
infoDir=$(readlink -f ../../dist/info)
|
|
elif [ $(ls -1 *.info |wc -l) > 0 ]; then
|
|
infoDir=$(pwd)
|
|
fi
|
|
|
|
if [ -z "$infoDir" ]; then
|
|
echo "WARNING: Could not find your *.info files. meta.xml files will not be generated."
|
|
fi
|
|
}
|
|
|
|
setPngDir()
|
|
{
|
|
pwd
|
|
if [ -d ../media/assets/pkg/wiiu ]; then
|
|
pngDir=$(readlink -f ../media/assets/pkg/wiiu)
|
|
elif [ $(ls -1 *.png |wc -l) > 0 ]; then
|
|
pngDir=$(pwd)
|
|
fi
|
|
|
|
if [ -z "$pngDir" ]; then
|
|
echo "WARNING: Could not find your *.png files. icon.png files will not be generated."
|
|
fi
|
|
}
|
|
|
|
getCores()
|
|
{
|
|
if [ -d ../../dist/wiiu ]; then
|
|
ls -1 ../../dist/wiiu/*.a
|
|
elif [ $(ls -1 *.a |wc -l) > 0 ]; then
|
|
ls -1 *.a
|
|
fi
|
|
}
|
|
|
|
clean()
|
|
{
|
|
local here=$(pwd)
|
|
|
|
cd $scriptDir/..
|
|
make -f Makefile.wiiu clean || exit 1
|
|
|
|
for trash in libretro_wiiu.a libretro_wiiu.elf libretro_wiiu.rpx \
|
|
objs/wiiu pkg/wiiu/wiiu pkg/wiiu/retroarch pkg/wiiu/rpx
|
|
do
|
|
rm -rf $trash
|
|
done
|
|
|
|
cd $here
|
|
}
|
|
|
|
# $1 = core filename (e.g. ../../dist/wiiu/somecore_libretro_wiiu.a
|
|
# $2 = desired package type, e.g. rpx or elf
|
|
coreNameToPackageName()
|
|
{
|
|
local packageName=$(basename $1 |awk -F'\.a' '{print $1}' |sed 's/_wiiu//')
|
|
echo "$packageName"
|
|
}
|
|
|
|
lookup()
|
|
{
|
|
cat | grep "$1 = " | sed "s/$1 = \"//" | sed s/\"//
|
|
}
|
|
|
|
generateMetaXml()
|
|
{
|
|
local infoFile=$1
|
|
local xmlDir=$2
|
|
local outFile=$xmlDir/meta.xml
|
|
|
|
if [ ! -e $infoFile ]; then
|
|
return 1
|
|
fi
|
|
|
|
local display_name=$(cat $infoFile |lookup "display_name")
|
|
local corename=$(cat $infoFile |lookup "corename")
|
|
local authors=$(cat $infoFile |lookup "authors" |sed s/\|/\ -\ /g)
|
|
local systemname=$(cat $infoFile |lookup "systemname")
|
|
local license=$(cat $infoFile |lookup "license")
|
|
local build_date=$(date +%Y%m%d%H%M%S)
|
|
local build_hash=$(git rev-parse --short HEAD 2>/dev/null)
|
|
|
|
mkdir -p $xmlDir
|
|
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' > $outFile
|
|
echo '<app version="1">' >> $outFile
|
|
echo ' <name>'$corename'</name>' >> $outFile
|
|
echo ' <coder>'$authors'</coder>' >> $outFile
|
|
echo ' <version>'$RARCH_VERSION' r'$build_hash'</version>' >> $outFile
|
|
echo ' <release_date>'$build_date'</release_date>' >> $outFile
|
|
echo ' <short_description>RetroArch</short_description>' >> $outFile
|
|
echo -e ' <long_description>'$display_name'\n\nSystem: '$systemname'\nLicense: '$license'</long_description>' >> $outFile
|
|
echo ' <category>emu</category>' >> $outFile
|
|
echo ' <url>https://github.com/libretro</url>' >> $outFile
|
|
echo '</app>' >> $outFile
|
|
}
|
|
|
|
copyPng()
|
|
{
|
|
local pngFilename=$(echo $1 |sed 's/_libretro//').png
|
|
local destFilename=$2/icon.png
|
|
|
|
if [ -e $pngDir/$pngFilename ]; then
|
|
cp $pngDir/$pngFilename $destFilename
|
|
fi
|
|
}
|
|
|
|
buildCore()
|
|
{
|
|
local core=$1
|
|
local distDir=$(pwd)
|
|
local buildDir=$(dirname $(pwd))
|
|
local packageName=$(coreNameToPackageName $core)
|
|
local rpxResult=$packageName.rpx
|
|
local elfResult=$packageName.elf
|
|
|
|
cd $buildDir
|
|
|
|
if [ -f Makefile.wiiu ]; then
|
|
echo "--- building core: $packageName ---"
|
|
rm -f libretro_wiiu.a
|
|
cp $distDir/$core libretro_wiiu.a
|
|
make -f Makefile.wiiu \
|
|
PC_DEVELOPMENT_TCP_PORT=$PC_DEVELOPMENT_TCP_PORT \
|
|
-j3 || exit 1
|
|
|
|
if [ ! -z "$infoDir" ]; then
|
|
for i in 'pkg/wiiu/retroarch/cores' 'pkg/wiiu/rpx/retroarch/cores'; do
|
|
mkdir -p $i/info
|
|
cp $infoDir/$packageName.info $i/info
|
|
generateMetaXml $i/info/$packageName.info $i/../../wiiu/apps/$packageName
|
|
done
|
|
fi
|
|
|
|
if [ ! -z "$pngDir" ]; then
|
|
for i in 'pkg/wiiu/wiiu/apps' 'pkg/wiiu/rpx/wiiu/apps'; do
|
|
copyPng $packageName $i/$packageName
|
|
done
|
|
fi
|
|
|
|
for i in "pkg/wiiu/wiiu/apps/$packageName" 'pkg/wiiu/retroarch/cores'; do
|
|
mkdir -p $i
|
|
cp retroarch_wiiu.elf $i/$elfResult
|
|
done
|
|
for i in "pkg/wiiu/rpx/wiiu/apps/$packageName" 'pkg/wiiu/rpx/retroarch/cores'; do
|
|
mkdir -p $i
|
|
cp retroarch_wiiu.rpx $i/$rpxResult
|
|
done
|
|
else
|
|
echo "ERROR: Something went wrong. Makefile.wiiu not found."
|
|
exit 1
|
|
fi
|
|
|
|
cd $distDir
|
|
}
|
|
|
|
setScriptDir $0
|
|
|
|
clean
|
|
|
|
cd $scriptDir
|
|
if [ -e ../wiiu-devel.properties ]; then
|
|
. ../wiiu-devel.properties
|
|
fi
|
|
|
|
setInfoDir
|
|
setPngDir
|
|
|
|
cores=$(getCores)
|
|
|
|
if [ -z "$cores" ]; then
|
|
echo "ERROR: No cores found. Nothing to do."
|
|
exit 1
|
|
fi
|
|
|
|
for core in $cores; do
|
|
buildCore $core
|
|
done
|
|
|