1#!/bin/sh
2
3# usage:
4# copy core libs (*_libretro_wiiu.a), info files (https://github.com/libretro/libretro-super/tree/master/dist/info)
5# and icons (https://github.com/libretro/retroarch-assets/tree/master/pkg/wiiu) to this directory then run
6# the script. the output will be in retroarch/pkg/wiiu
7
8. ../version.all
9
10platform=wiiu
11EXT=a
12
13mkdir -p ../pkg/wiiu/retroarch/cores/info
14cp *.info ../pkg/wiiu/retroarch/cores/info/
15mkdir -p ../pkg/wiiu/rpx/retroarch/cores/info
16cp *.info ../pkg/wiiu/rpx/retroarch/cores/info/
17
18make -C ../ -f Makefile.${platform} SALAMANDER_BUILD=1 clean || exit 1
19make -C ../ -f Makefile.${platform} SALAMANDER_BUILD=1 BUILD_HBL_ELF=1 BUILD_RPX=1 -j3 || exit 1
20
21mkdir -p ../pkg/wiiu/wiiu/apps/retroarch
22mv -f ../retroarch_wiiu_salamander.elf ../pkg/wiiu/wiiu/apps/retroarch/retroarch.elf
23cp -f ../pkg/wiiu/meta.xml ../pkg/wiiu/wiiu/apps/retroarch/meta.xml
24cp -f ../pkg/wiiu/icon.png ../pkg/wiiu/wiiu/apps/retroarch/icon.png
25mkdir -p ../pkg/wiiu/rpx/wiiu/apps/retroarch
26mv -f ../retroarch_wiiu_salamander.rpx ../pkg/wiiu/rpx/wiiu/apps/retroarch/retroarch.rpx
27rm -f ../retroarch_wiiu_salamander.rpx.elf
28cp -f ../pkg/wiiu/meta.xml ../pkg/wiiu/rpx/wiiu/apps/retroarch/meta.xml
29cp -f ../pkg/wiiu/icon.png ../pkg/wiiu/rpx/wiiu/apps/retroarch/icon.png
30
31make -C ../ -f Makefile.${platform} clean || exit 1
32
33lookup()
34{
35   cat | grep "$1 = " | sed "s/$1 = \"//" | sed s/\"//
36}
37
38gen_meta_xml()
39{
40   info="$1"_libretro.info
41   if [  -e $info ] ; then
42      display_name=`cat $info | lookup "display_name"`
43      corename=`cat $info | lookup "corename"`
44      authors=`cat $info | lookup "authors" | sed s/\|/\ -\ /g`
45      systemname=`cat $info | lookup "systemname"`
46      license=`cat $info | lookup "license"`
47      date=`date +%Y%m%d%H%M%S`
48      build_hash=`git rev-parse --short HEAD 2>/dev/null`
49      echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' > "$1"_meta.xml
50      echo '<app version="1">' >> "$1"_meta.xml
51      echo '  <name>'$corename'</name>' >> "$1"_meta.xml
52      echo '  <coder>'$authors'</coder>' >> "$1"_meta.xml
53      echo '  <version>'$PACKAGE_VERSION' r'$build_hash'</version>' >> "$1"_meta.xml
54      echo '  <release_date>'$date'</release_date>' >> "$1"_meta.xml
55      echo '  <short_description>RetroArch</short_description>' >> "$1"_meta.xml
56      echo -e '  <long_description>'$display_name'\n\nSystem: '$systemname'\nLicense: '$license'</long_description>' >> "$1"_meta.xml
57      echo '  <category>emu</category>' >> "$1"_meta.xml
58      echo '  <url>https://github.com/libretro</url>' >> "$1"_meta.xml
59      echo '</app>' >> "$1"_meta.xml
60   fi
61}
62
63for f in `ls -v *_${platform}.${EXT}`; do
64   name=`echo "$f" | sed "s/\(_libretro_${platform}\|\).${EXT}$//"`
65   whole_archive=
66   build_hbl_elf=1
67   build_rpx=1
68
69   if [ $name = "nxengine" ] ; then
70      echo "Applying whole archive linking..."
71      whole_archive="WHOLE_ARCHIVE_LINK=1"
72   fi
73
74   if [ $name = "mame2003" ] ; then
75      build_hbl_elf=0
76   fi
77
78   if [ $name = "fbalpha2012" ] ; then
79      build_hbl_elf=0
80   fi
81
82   if [ $name = "mame2003_midway" ] ; then
83      build_rpx=0
84   fi
85   if [ $name = "fbalpha2012_cps1" ] ; then
86      build_rpx=0
87   fi
88   if [ $name = "fbalpha2012_cps2" ] ; then
89      build_rpx=0
90   fi
91   if [ $name = "fbalpha2012_cps3" ] ; then
92      build_rpx=0
93   fi
94   if [ $name = "fbalpha2012_neogeo" ] ; then
95      build_rpx=0
96   fi
97
98   echo "-- Building core: $name --"
99   cp -f "$f" ../libretro_${platform}.${EXT}
100   echo NAME: $name
101
102   # Compile core
103   make -C ../ -f Makefile.${platform} LIBRETRO=$name BUILD_HBL_ELF=$build_hbl_elf BUILD_RPX=$build_rpx $whole_archive -j3 || exit 1
104   gen_meta_xml $name
105
106   if [  -e ../retroarch_wiiu.elf ] ; then
107      cp ../retroarch_wiiu.elf ../pkg/wiiu/retroarch/cores/${name}_libretro.elf
108      mkdir -p ../pkg/wiiu/wiiu/apps/${name}_libretro
109      mv -f ../retroarch_wiiu.elf ../pkg/wiiu/wiiu/apps/${name}_libretro/${name}_libretro.elf
110      if [  -e ${name}_meta.xml ] ; then
111         cp -f ${name}_meta.xml ../pkg/wiiu/wiiu/apps/${name}_libretro/meta.xml
112      else
113         cp -f ../pkg/wiiu/meta.xml ../pkg/wiiu/wiiu/apps/${name}_libretro/meta.xml
114      fi
115      if [  -e $name.png ] ; then
116         cp -f $name.png ../pkg/wiiu/wiiu/apps/${name}_libretro/icon.png
117      else
118         cp -f ../pkg/wiiu/icon.png ../pkg/wiiu/wiiu/apps/${name}_libretro/icon.png
119      fi
120   fi
121   if [  -e ../retroarch_wiiu.rpx ] ; then
122      cp ../retroarch_wiiu.rpx ../pkg/wiiu/rpx/retroarch/cores/${name}_libretro.rpx
123      mkdir -p ../pkg/wiiu/rpx/wiiu/apps/${name}_libretro
124      mv -f ../retroarch_wiiu.rpx ../pkg/wiiu/rpx/wiiu/apps/${name}_libretro/${name}_libretro.rpx
125      rm -f ../retroarch_wiiu.rpx.elf
126      if [  -e ${name}_meta.xml ] ; then
127         cp -f ${name}_meta.xml ../pkg/wiiu/rpx/wiiu/apps/${name}_libretro/meta.xml
128      else
129         cp -f ../pkg/wiiu/meta.xml ../pkg/wiiu/rpx/wiiu/apps/${name}_libretro/meta.xml
130      fi
131      if [  -e $name.png ] ; then
132         cp -f $name.png ../pkg/wiiu/rpx/wiiu/apps/${name}_libretro/icon.png
133      else
134         cp -f ../pkg/wiiu/icon.png ../pkg/wiiu/rpx/wiiu/apps/${name}_libretro/icon.png
135      fi
136   fi
137   rm -rf ${name}_meta.xml
138
139done
140
141# Additional build step
142