Advertisement
inukaze

mupen64plus-git 2020-04-12

Apr 12th, 2020
1,522
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 23.03 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. echo '
  4. Autor ----------------> Inukaze ( Venezuela )
  5. Sitio ----------------> https://goo.gl/ij6WqW
  6. Correo-E -------------> bloginukaze@gmail.com
  7. Licencia -------------> GPL 2
  8.  
  9. ******* Inicio : Acerca de este Script ********
  10.                  
  11.  Yo intento escribir scripts compatibles con
  12.   Sistemas operativos Unix & POSIX , y otros
  13.   Sistemas operativos que soporten bash
  14.  
  15.  Este archivo es un guion simple para
  16.   Descargar y compilar Mupen64Plus
  17.  
  18. ******** Fin : Acerca de este Script **********'
  19. sleep 3
  20.  
  21. unset MensajeBase
  22.  
  23. function MensajeBase()
  24. {
  25. echo -e "\nLa forma correcta de utilizar este guion es :\n$0 instalar <modulo> <opcion>\n"
  26. echo -e "Modulos Disponibles :\nNucleo\nRSP     [Opciones : HLE, Z64, CXD4]\nSDL     [Opciones : Audio, Entrada]\nIGU     [Opciones : Terminal (Necesaria), Python, QT, UI], IGU=Interfaz Grafica para Usuario\nVideo   [Opciones : Glide64, Glide64Mk2, GlideN64, Rice, Z64]\nTodo    [Lo instalara todo : Modulos + Opciones]"
  27. echo -e "\nPor Ejemplo :\n1) $0 instalar sdl audio \n2) sudo $0 instalar igu ui\n3) su -c '"$0" instalar video rice' root\n"
  28. }
  29.  
  30. #NOTAS :
  31. #1) Debo encontrar : las dependencias escenciales/basicas para poder compilar cada uno de los componentes
  32. #2) Debo escribir una(s) funcion(es) que me permitan : 1 - Determinar la distro, 2 - Determinar el gestor de paquetes instalado, 3 - Instalar dependencias
  33. #3) Luego de tener eso, añadirle una parte grafica a este guion permitiendo asi, a traves de seleccion multiple seleccionar que cosas se van a instalar.
  34.  
  35. if [ "$(whoami)" != root ]; then
  36.  
  37.     echo
  38.     echo
  39.     echo 'Por favor ejecuta este guion como SuperUsuario (root)'
  40.     echo
  41.     echo 'Utilize este Script bajo su Propio Riesgro'
  42.     echo 'El Autor , o sea yo , no me hago responsable'
  43.     echo 'de las consecuencias imprevistas que puedan'
  44.     echo 'acontecer en tu sistema operativo'
  45.     echo
  46.     MensajeBase
  47. else
  48. # Obtener la Arquitectura
  49. Arquitectura=$(uname -m)
  50. case "$Arquitectura" in
  51.     x86)    Arquitectura="x32"                      ;;
  52.     i?86)   Arquitectura="x32"                      ;;
  53.     amd64)  Arquitectura="x64"                      ;;
  54.     x86_64) Arquitectura="x64"                      ;;
  55.     * ) echo    "Tu Arquitectura '$Arquitectura' -> NO ESTA SOPORTADA." ;;
  56. esac
  57.  
  58. # Optimizaciones #NOTA : se requiere tener instalado 'cpuid' para usar el valor "native" en -march.
  59. CFLAGS='-O3 -march=native -mtune=native' ; CXXFLAGS='-O3 -march=native -mtune=native' ; OPTFLAGS='-O3 -march=native -mtune=native'
  60. export {C,CXX}FLAGS='-O3 -march=native -mtune=native' ; export OPTFLAGS='-O3 -march=native -mtune=native'
  61.  
  62. #Crear Directorios que se usaran e ingresar al directorio de trabajo "/tmp/src/mupen64plus" despues de crearlo
  63. mkdir -p /tmp/src/mupen64plus
  64. mkdir -p /opt/videojuegos/emuladores
  65. cd /tmp/src/mupen64plus
  66.  
  67. #VARIABLES :
  68. CARPETA="/tmp/src/mupen64plus" #Directorio de Trabajo
  69. export DEBUG=1 # Simbolos de depuracion
  70. export V=1 # Salida Verbosa
  71. export PIC=1 # Codigo de Posicion Independiente
  72. export HLEVIDEO=1 # RSP Z64 & CXD4 : Mover emulacion de tareas graficas al complemento de video HLE
  73.  
  74. # Exportando las "Rutas" para cada parte
  75. # Necesitaras tener instalada en tu distro la herramienta "cpuid"
  76. # Para poder utilizar las "banderas" (flags) de optimizacion correspondientes a tu procesador.
  77.  
  78. # Para el Nucleo :
  79. #export TARGETDIR="/usr"
  80. export TARGETDIR="/media/Compartido/Videojuegos/Linux/Emulador/mupen64plus/64Bits"
  81. export PREFIX="$TARGETDIR"          #Predeterminado para todas las distros -> /usr
  82. export SHAREDIR="$TARGETDIR/share"      #Predeterminado para todas las distros -> /usr/share
  83. export LIBDIR="$TARGETDIR/lib"          #Predeterminado para todas las distros -> /usr/lib/mupen64plus
  84. export INCDIR="$TARGETDIR/include"      #Predeterminado para todas las distros -> /usr/include/mupen64plus
  85.  
  86. # Para Los Complementos :
  87. export PREFIX="$TARGETDIR"          #Predeterminado para todas las distros -> /usr/share/games/mupen64plus
  88. export LIBDIR="$TARGETDIR/lib/"         #Predeterminado para todas las distros -> /usr/lib/mupen64plus
  89. export PLUGINDIR="$TARGETDIR/plugin/"       #Predeterminado para todas las distros -> /usr/lib/mupen64plus
  90.  
  91. # Para la Interfaz de Consola :
  92. export COREDIR="$TARGETDIR/lib/"        #Predeterminado para todas las distros -> /usr/lib/mupen64plus
  93. export APIDIR="$TARGETDIR/include/"     #Predeterminado para todas las distros -> /usr/include/mupen64plus
  94. export BINDIR="$TARGETDIR"          #Predeterminado para todas las distros -> /usr/games
  95. export MANDIR="$TARGETDIR/share/"       #Predeterminado para todas las distros -> /usr/share/man
  96. export APPSDIR="$TARGETDIR"         #Predeterminado para todas las distros -> /usr/share/applications
  97. export ICONSDIR="$TARGETDIR/share/icons/"   #Predeterminado para todas las distros -> /usr/share/icons
  98.  
  99. #Prevenir las funciones para que no sean usadas automaticamente
  100. #al iniciar este guion :
  101. unset core
  102. unset rsp_hle
  103. unset rsp_z64
  104. unset rsp_cxd4
  105. unset sdl_audio
  106. unset sdl_entrada
  107. unset video_arachnoid
  108. unset video_glide64
  109. unset video_glide64mk2
  110. unset video_rice
  111. unset video_z64
  112. unset video_gliden64
  113. unset igu_terminal
  114. unset igu_python
  115. unset igu_qt
  116. unset igu_ui
  117. unset rom
  118.  
  119. #QMAKE#function dependencias{
  120. #QMAKE##qmake=4.0.0
  121. #QMAKE#
  122. #QMAKE##RESOLVER DEPENDENCIAS de forma Manual [Puede ser fuera de la funcion, o en otra funcion para esto]
  123. #QMAKE#QMAKE=$(qmake -version | tail -n1 | awk '{print $4}')
  124. #QMAKE#if (( $(awk 'BEGIN {print ("'4.0.0'" < "'$QMAKE'")}') )); then
  125. #QMAKE#    echo 'QMake QT Version : '"$QMAKE"''
  126. #QMAKE#    echo 'Version minima requerida o superior NO Encontrada'
  127. #QMAKE#    echo 'Si intentara descargar, compilar e instalar QT Version : '"$QMAKE.tar.gz"''
  128. #QMAKE#    mkdir -p "/tmp/cdf" ; cd "/tmp/cdf"
  129. #QMAKE#    wget -c "https://www./$QMAKE.tar.gz"
  130. #QMAKE#    tar xfvz "$QMAKE.tar.gz"
  131. #QMAKE#    cd "$QMAKE"
  132. #QMAKE#    ./autogen.sh
  133. #QMAKE#fi
  134. #QMAKE##RESOLVER DEPENDENCIAS de forma Manual [Puede ser fuera de la funcion, o en otra funcion para esto]
  135. #QMAKE#}
  136.  
  137. function core(){
  138. #001 El Nucleo / La Base :
  139. # Ir a a la carpeta establecida en la variable CARPETA
  140. cd "$CARPETA"
  141. git clone https://github.com/mupen64plus/mupen64plus-core
  142. cd mupen64plus-core/projects/unix
  143. make clean
  144. make all
  145. make install
  146.     #Enlazar la libreria principal de Mupen64Plus al Sistema :
  147.     if [ "$Arquitectura" = "x64" ]; then
  148.     if [ -d "/usr/x86_64-linux-gnu/lib64" ] ; then
  149.         ln -s "$PREFIX/lib/libmupen64plus.so.2.0.0" "/usr/x86_64-linux-gnu/lib64/libmupen64plus.so.2"
  150.     fi
  151.     if [ -d "/usr/x86_64-linux-gnu/lib" ] ; then
  152.         ln -s "$PREFIX/lib/libmupen64plus.so.2.0.0" "/usr/x86_64-linux-gnu/lib/libmupen64plus.so.2"
  153.     fi
  154.     if [ -d "/usr/local/lib/x86_64-linux-gnu" ] ; then
  155.         ln -s "$PREFIX/lib/libmupen64plus.so.2.0.0" "/usr/local/lib/x86_64-linux-gnu/libmupen64plus.so.2"
  156.     fi
  157.     if [ -d "/usr/lib/x86_64-linux-gnu" ] ; then
  158.         ln -s "$PREFIX/lib/libmupen64plus.so.2.0.0" "/usr/lib/x86_64-linux-gnu/libmupen64plus.so.2"
  159.     fi
  160.     if [ -d "/usr/local/lib64" ] ; then
  161.         ln -s "$PREFIX/lib/libmupen64plus.so.2.0.0" "/usr/local/lib64/libmupen64plus.so.2"
  162.     fi
  163.     if [ -d "/lib64" ] ; then
  164.         ln -s "$PREFIX/lib/libmupen64plus.so.2.0.0" "/lib64/libmupen64plus.so.2"
  165.     fi
  166.     if [ -d "/lib64" ] ; then
  167.         ln -s "$PREFIX/lib/libmupen64plus.so.2.0.0" "/usr/lib64/libmupen64plus.so.2"
  168.     fi
  169.     fi
  170.    
  171.     if [ "$Arquitectura" = "x32" ]; then
  172.     if [ -d "/usr/local/lib" ] ; then
  173.         ln -s "$PREFIX/lib/libmupen64plus.so.2.0.0" "/usr/local/lib/libmupen64plus.so.2"
  174.     fi
  175.     if [ -d "/lib" ] ; then
  176.         ln -s "$PREFIX/lib/libmupen64plus.so.2.0.0" "/lib/libmupen64plus.so.2"
  177.     fi
  178.     if [ -d "/usr/lib" ] ; then
  179.         ln -s "$PREFIX/lib/libmupen64plus.so.2.0.0" "/usr/local/lib/libmupen64plus.so.2"
  180.     fi
  181.     fi
  182.  
  183. # Terminar de preparar los archivos necesarios
  184. # Crear / Actualizar los enlaces necesarios para ser utilizados con la rutina
  185. # y el enlazador "ld.so" del sistema
  186.  
  187. #ENLACE1
  188. echo '[Desktop Entry]
  189. Version=1.0
  190. Type=Application
  191. Name=Mupen64Plus
  192. GenericName=N64 Emulator
  193. Comment=Nintendo 64 emulator and plugins for Linux, Mac OSX, FreeBSD, and Windows
  194. Exec='$TARGETDIR/mupen64plus %f'
  195. Icon='$TARGETDIR/share/icons/scalable/apps/mupen64plus.svg'
  196. MimeType=application/x-n64-rom;
  197. Categories=Game;Emulator;
  198. Keywords=Emulator;Nintendo64;Mupen64plus;
  199. NoDisplay=true' | tee "$TARGETDIR/mupen64plus.desktop"
  200. #ENLACE1
  201.  
  202. chmod a+o+x "$TARGETDIR/mupen64plus.desktop" ; mv "$TARGETDIR/mupen64plus.desktop" "/usr/share/applications/"
  203. mv "$SHAREDIR/icons/48x48/apps/mupen64plus.png" "/usr/share/icons/hicolor/48x48/apps/"
  204. mv "$SHAREDIR/icons/scalable/apps/mupen64plus.svg" "/usr/share/icons/hicolor/scalable/apps/"
  205. mv "$SHAREDIR/man6/mupen64plus.6" "/usr/share/man/man6/"
  206. rm -rf "$SHAREDIR/icons"
  207. rm -rf "$SHAREDIR/man6"
  208. ldconfig
  209. }
  210.  
  211. function rsp_hle()
  212. {
  213. ##002 Complemento : "Procesador de señal de realidad : Emulación de alto nivel" [RSP - HLE] :
  214. # Ir a a la carpeta establecida en la variable CARPETA
  215. cd "$CARPETA"
  216. #Descargar
  217. git clone https://github.com/mupen64plus/mupen64plus-rsp-hle
  218. # Inregresar a la carpeta "projects/unix" del directorio que se acaba de descargar de internet
  219. cd mupen64plus-rsp-hle/projects/unix
  220. # Limpiar cualquier archivo indeseado
  221. make clean
  222. # Compilar todo
  223. make all
  224. #Instalar complemento, en caso de que no tenga install, copiar manualmente la libreria generada "muepn64plus-rsp-hle.so" al directorio de complementos.
  225. make install
  226. cp *.so "$PLUGINDIR"
  227. }
  228.  
  229.  
  230. function rsp_z64()
  231. {
  232. ##003 Complemento : "Procesador de señal de realidad : Emulación de bajo nivel (z64)" [RSP - Z64] :
  233. # Ir a a la carpeta establecida en la variable CARPETA
  234. cd "$CARPETA"
  235. #Descargar mediante git
  236. git clone https://github.com/mupen64plus/mupen64plus-rsp-z64
  237. # Inregresar a la carpeta "projects/unix" del directorio que se acaba de descargar de internet
  238. cd mupen64plus-rsp-z64/projects/unix
  239. # Limpiar cualquier archivo indeseado
  240. make clean
  241. # Compilar todo
  242. make all
  243. #Instalar complemento, en caso de que no tenga install, copiar manualmente la libreria generada "muepn64plus-rsp-z64.so" al directorio de complementos.
  244. cp *.so "$PLUGINDIR"
  245. }
  246.  
  247. function rsp_cxd4()
  248. {
  249. #004 Complemento RSP - cxd4
  250. ##004 Complemento : Procesador de señal de realidad : Procesador de señal de tecnología (cxd4)" [RSP - CXD4] :
  251. # Ir a a la carpeta establecida en la variable CARPETA
  252. cd "$CARPETA"
  253. #Descargar mediante git
  254. git clone https://github.com/mupen64plus/mupen64plus-rsp-cxd4
  255. cd mupen64plus-rsp-cxd4/projects/unix
  256. make clean
  257. make all
  258. cp *.so "$PLUGINDIR"
  259. }
  260.  
  261.  
  262. function rom()
  263. {
  264. cd "$CARPETA"
  265. git clone https://github.com/mupen64plus/mupen64plus-rom
  266. cd mupen64plus-rom
  267. cp "m64p_test_rom.v64" "$PREFIX/"
  268. }
  269.  
  270. function sdl_audio()
  271. {
  272. #005 Complemento de Audio - SDL
  273. # Ir a a la carpeta establecida en la variable CARPETA
  274. cd "$CARPETA"
  275. git clone https://github.com/mupen64plus/mupen64plus-audio-sdl
  276. cd mupen64plus-audio-sdl/projects/unix
  277. make clean
  278. make all
  279. make install
  280. }
  281.  
  282. function sdl_entrada()
  283. {
  284. #006 Complemento de Entrada - SDL
  285. # Ir a a la carpeta establecida en la variable CARPETA
  286. cd "$CARPETA"
  287. git clone https://github.com/mupen64plus/mupen64plus-input-sdl
  288. cd mupen64plus-input-sdl/projects/unix
  289. make clean
  290. make all
  291. make install
  292. }
  293.  
  294. function video_arachnoid(){
  295. #007 Complemento de Video - Arachnoid
  296. # Ir a a la carpeta establecida en la variable CARPETA
  297. cd "$CARPETA"
  298. git clone https://github.com/mupen64plus/mupen64plus-video-arachnoid
  299. cd mupen64plus-video-arachnoid/projects/unix
  300. make clean
  301. make all
  302. make install
  303. }
  304.  
  305. function video_glide64(){
  306. #008 Complemento de Video - Glide64
  307. # Ir a a la carpeta establecida en la variable CARPETA
  308. cd "$CARPETA"
  309. git clone https://github.com/mupen64plus/mupen64plus-video-glide64
  310. cd mupen64plus-video-glide64/projects/unix
  311. make clean
  312. make all
  313. make install
  314. cd ../../..
  315. }
  316.  
  317. function video_glide64mk2()
  318. {
  319. #009 Complemento de Video - Glide64mk2
  320. # Ir a a la carpeta establecida en la variable CARPETA
  321. cd "$CARPETA"
  322. git clone https://github.com/mupen64plus/mupen64plus-video-glide64mk2
  323. cd mupen64plus-video-glide64mk2/projects/unix
  324. make clean
  325. make all
  326. make install
  327. }
  328.  
  329. function video_rice()
  330. {
  331. #010 Complemento de Video - Rice
  332. # Ir a a la carpeta establecida en la variable CARPETA
  333. cd "$CARPETA"
  334. git clone https://github.com/mupen64plus/mupen64plus-video-rice
  335. cd mupen64plus-video-rice/projects/unix
  336. make clean
  337. make all
  338. make install
  339. }
  340.  
  341. function video_z64()
  342. {
  343. #011 Complemento de Video - z64
  344. # Ir a a la carpeta establecida en la variable CARPETA
  345. cd "$CARPETA"
  346. git clone https://github.com/mupen64plus/mupen64plus-video-z64
  347. cd mupen64plus-video-z64/projects/unix
  348. make clean
  349. make all
  350. cp *.so "$PLUGINDIR" &> /dev/null
  351. }
  352.  
  353. function igu_terminal()
  354. {
  355. #012 Interfaz de Consola:
  356. # Ir a a la carpeta establecida en la variable CARPETA
  357. cd "$CARPETA"
  358. git clone https://github.com/mupen64plus/mupen64plus-ui-console
  359. cd mupen64plus-ui-console/projects/unix/
  360. make clean
  361. make all
  362. make install
  363. }
  364.  
  365. function igu_python()
  366. {
  367. #013 Interfaz Python :
  368. # Ir a a la carpeta establecida en la variable CARPETA
  369. cd "$CARPETA"
  370. git clone https://github.com/mupen64plus/mupen64plus-ui-python
  371. cd mupen64plus-ui-python
  372. python setup.py install
  373. echo '[Desktop Entry]
  374. Name=M64Py
  375. Exec=/usr/local/bin/m64py %f
  376. Terminal=false
  377. Type=Application
  378. Icon=m64py
  379. Comment=A frontend for Mupen64Plus
  380. Categories=Game;Emulator;
  381. MimeType=application/x-n64-rom;
  382. Keywords=Emulator;Nintendo64;Mupen64plus;' | tee /usr/share/applications/m64py.desktop
  383. chmod a+o+x /usr/share/applications/m64py.desktop
  384. cd /usr/share/icons/
  385. wget -c "https://github.com/mupen64plus/mupen64plus-ui-python/raw/master/xdg/m64py.png"
  386. }
  387.  
  388. function igu_qt()
  389. {
  390. #014 Interfaz Qt :
  391. # Ir a a la carpeta establecida en la variable CARPETA
  392. cd "$CARPETA"
  393. git clone https://github.com/dh4/mupen64plus-qt
  394. cd mupen64plus-qt
  395.  
  396. #Intentar usar la version mas actualizada de qmake que se encuentre :
  397. QMAKE=$(whereis -B "/usr/sbin" "/usr/local/sbin" "/sbin" "/usr/bin" "/usr/local/bin" "/bin" -b qmake-qt5 | grep -i "qmake-qt5" | cut -d " " -f02 | cut -c10-18) ; eval "$QMAKE"
  398. QMAKEVER=$(eval $QMAKE -version | tail -n1 | cut -d " " -f04  | cut -c01)
  399. if [ "$QMAKE" = "qmake-qt5" ]; then
  400.     #echo 'Se encontro el binario ejecutable : qmake | Version : '$QMAKEVER''
  401.     eval "$QMAKE mupen64plus-qt.pro"
  402. else
  403.     echo "No se encontro el binario ejecutable : qmake-qt5, buscando qmake en su lugar"
  404.     QMAKE=$(whereis -B "/usr/sbin" "/usr/local/sbin" "/sbin" "/usr/bin" "/usr/local/bin" "/bin" -b qmake | grep -i "qmake" | cut -d " " -f02 | cut -c10-14) ; eval "$QMAKE"
  405.     if [ -z "$QMAKE" ]; then
  406.         echo "No se encontro el binario ejecutable : qmake, instala QT & QMake para poder compilar esta IGU"
  407.     else
  408.         eval "$QMAKE mupen64plus-qt.pro"
  409.     fi
  410. fi
  411. make
  412. cp mupen64plus-qt "$TARGETDIR"
  413. #cp mupen64plus-qt /usr/bin/
  414. cp ./resources/mupen64plus-qt.desktop /usr/share/applications/mupen64plus-qt.desktop
  415. cp ./resources/images/mupen64plus.png /usr/share/icons/mupen64plus-qt.png
  416. }
  417.  
  418. function igu_ui()
  419. {
  420. #015 Interfaz Qt Alternativa [Esta mejor trabajada]
  421. cd "$CARPETA"
  422. git clone https://github.com/robalni/mupen64plus-ui
  423. cd mupen64plus-ui/
  424.  
  425. #AC##Arreglo - No encuentra los archivos :
  426. #AC##m64p_common.h, m64p_types.h, m64p_frontend.h, m64p_config.h
  427. #AC#wget -c "https://raw.githubusercontent.com/mupen64plus/mupen64plus-core/master/src/api/m64p_common.h" ; \
  428. #AC#wget -c "https://raw.githubusercontent.com/mupen64plus/mupen64plus-core/master/src/api/m64p_types.h"  ; \
  429. #AC#wget -c "https://raw.githubusercontent.com/mupen64plus/mupen64plus-core/master/src/api/m64p_frontend.h"  ; \
  430. #AC#wget -c "https://raw.githubusercontent.com/mupen64plus/mupen64plus-core/master/src/api/m64p_config.h"
  431.  
  432. #Intentar usar la version mas actualizada de qmake que se encuentre :
  433. QMAKE=$(whereis -B "/usr/sbin" "/usr/local/sbin" "/sbin" "/usr/bin" "/usr/local/bin" "/bin" -b qmake-qt5 | grep -i "qmake-qt5" | cut -d " " -f02 | cut -c10-18) ; eval "$QMAKE"
  434. QMAKEVER=$(eval $QMAKE -version | tail -n1 | cut -d " " -f04  | cut -c01)
  435. if [ "$QMAKE" = "qmake-qt5" ]; then
  436.     #echo 'Se encontro el binario ejecutable : qmake | Version : '$QMAKEVER''
  437.     eval "$QMAKE mupen64plus-ui.pro"
  438. else
  439.     echo "No se encontro el binario ejecutable : qmake-qt5, buscando qmake en su lugar"
  440.     QMAKE=$(whereis -B "/usr/sbin" "/usr/local/sbin" "/sbin" "/usr/bin" "/usr/local/bin" "/bin" -b qmake | grep -i "qmake" | cut -d " " -f02 | cut -c10-14) ; eval "$QMAKE"
  441.     if [ -z "$QMAKE" ]; then
  442.         echo "No se encontro el binario ejecutable : qmake, instala QT & QMake para poder compilar esta IGU"
  443.     else
  444.         eval "$QMAKE mupen64plus-ui.pro"
  445.     fi
  446. fi
  447.  
  448. #Arreglar el archivo Makefile
  449. #NOTAS :
  450. #NOTA#ORIGINAL :
  451. #NOTA#INCPATH       = -I. -isystem /usr/include/SDL2 -isystem /usr/local/include/mupen64plus -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtXml -isystem /usr/include/qt5/QtSql -isystem /usr/include/qt5/QtCore -I. -isystem /usr/include/libdrm -I. -I/usr/lib64/qt5/mkspecs/linux-g++
  452. #NOTA#
  453. #NOTA#DESTINO :
  454. #NOTA#INCPATH       = -I. -isystem /usr/include/SDL2 -isystem "$TARGETDIR/include" -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtXml -isystem /usr/include/qt5/QtSql -isystem /usr/include/qt5/QtCore -I. -isystem /usr/include/libdrm -I. -I/usr/lib64/qt5/mkspecs/linux-g++
  455. #NOTA#
  456. #NOTA#ORIGINAL :
  457. #NOTA#LIBS          = $(SUBLIBS) -lquazip5 -lSDL2 -lmupen64plus -ldl -lQt5Widgets -lQt5Gui -lQt5Netwo$
  458. #NOTA#
  459. #NOTA#DESTINO : ¿?
  460. #NOTA#
  461.  
  462. #Compilar
  463. make
  464. mv mupen64plus mupen64plus-ui
  465. cp mupen64plus-ui "$TARGETDIR"
  466. cp resources/images/mupen64plus.png "$TARGETDIR/mupen64plus-ui.png"
  467. echo '[Desktop Entry]
  468. Version=1.0
  469. Type=Application
  470. Name=Mupen64Plus UI
  471. GenericName=Mupen64Plus Launcher
  472. Comment=An emulator for Nintendo 64
  473. Exec='"$TARGETDIR/mupen64plus-ui"'
  474. Icon='"$TARGETDIR/mupen64plus-ui.png"'
  475. Terminal=false
  476. Categories=Game;Emulator;
  477. Keywords=emulator;mupen;mupen64plus;Nintendo;64;' | sudo tee "$TARGETDIR/mupen64plus-ui.desktop"
  478. }
  479.  
  480. function video_gliden64()
  481. {
  482. #016 Complemento de Video - GLideN64
  483. cd "$CARPETA"
  484. git clone https://github.com/gonetz/GLideN64
  485. cd GLideN64/src
  486. chmod a+o+x getRevision.sh
  487. bash getRevision.sh
  488. #cmake -DVEC4_OPT=On -DMUPENPLUSAPI=On .
  489. cmake -DMUPENPLUSAPI=On .
  490. make
  491. cd plugin/Release/
  492. cp *.so "$PLUGINDIR"
  493. }
  494.  
  495. #Si el usuario no pasa ningun parametro indicar como se usa este guion
  496. if [ -z "$1" ]; then
  497.     MensajeBase
  498. fi
  499.  
  500. #Guion : Aqui se ha definido como se utilizara este guion correctamente para instalar lo que se desee de forma especifica.
  501. #Entrada : Cualquier palabra pasada por el parametro $1 sera convertida en minusculas
  502. Entrada=$(echo "$1" | tr -s  '[:upper:]'  '[:lower:]')
  503.  
  504. #Si el usuario usa este guion por ejemplo
  505. #./esteguion instalar
  506. #le mostrara lo que esta contenido en la funcion 'echo'
  507. if [ "$Entrada" == "instalar" ]; then
  508. MensajeBase
  509. #Entrada : Cualquier palabra pasada por el parametro $2 sera convertida en minusculas
  510. Entrada=$(echo "$2" | tr -s  '[:upper:]'  '[:lower:]')
  511.         if [ "$Entrada" == "nucleo" ]; then
  512.         echo "Has decidido : $1 el $2"
  513.         core
  514.         fi
  515.         if [ "$Entrada" == "rsp" ]; then
  516.         echo -e 'Debes especificar que tipo de complemento "Procesador de señal de realidad (RSP) : Emulación de alto nivel (HLE)" quieres instalar, puede ser\nhle\nz64\cxd4'
  517.             #Entrada : Cualquier palabra pasada por el parametro $3 sera convertida en minusculas
  518.             Entrada=$(echo "$3" | tr -s  '[:upper:]'  '[:lower:]')
  519.             if [ "$Entrada" == "hle" ]; then
  520.             echo "Has decidido $1 el complemento : $3"
  521.             rsp_hle
  522.             fi
  523.             if [ "$Entrada" == "z64" ]; then
  524.             echo 'Has decidido '"'$1'"' el complemento : "Procesador de señal de realidad : Emulación de bajo nivel ('"$3"')'
  525.             rsp_z64
  526.             fi
  527.             if [ "$Entrada" == "cxd4" ]; then
  528.             echo 'Has decidido '"'$1'"' el complemento : "Procesador de señal de realidad : Procesador de señal de tecnología" ('"$3"')'
  529.             rsp_cxd4
  530.             fi
  531.         fi
  532.         if [ "$Entrada" == "sdl" ]; then
  533.         echo -e "Debes especificar cual complemento SDL deseas instalar, esta disponible\n\nAudio\nEntrada"
  534.         #Entrada : Cualquier palabra pasada por el parametro $3 sera convertida en minusculas
  535.         Entrada=$(echo "$3" | tr -s  '[:upper:]'  '[:lower:]')
  536.             if [ "$Entrada" == "audio" ]; then
  537.             echo "Has seleccionado : $1 $3"
  538.             echo 'Has decidido '"'$1'"' el complemento '"$2"' de '"$3"''
  539.             sdl_audio
  540.             fi
  541.             if [ "$Entrada" == "entrada" ]; then
  542.             echo 'Has decidido '"'$1'"' el complemento '"$2"' de '"$3"''
  543.             sdl_entrada
  544.             fi
  545.         fi
  546.         if [ "$Entrada" == "video" ]; then
  547.         echo -e "Debes especificar cual complemento de video, esta disponible\n\nArachnoid\nGlide64\nGlide64Mk2\nGlideN64\nRice\nZ64"
  548.         #Entrada : Cualquier palabra pasada por el parametro $3 sera convertida en minusculas
  549.         Entrada=$(echo "$3" | tr -s  '[:upper:]'  '[:lower:]')
  550.             if [ "$Entrada" == "arachnoid" ]; then
  551.             echo "Has seleccionado : $1 $3"
  552.             echo 'Has decidido '"'$1'"' el complemento de '"$2"' : '"$3"''
  553.             video_arachnoid
  554.             fi
  555.             if [ "$Entrada" == "glide64" ]; then
  556.             echo 'Has decidido '"'$1'"' el complemento de '"$2"' : '"$3"''
  557.             video_glide64
  558.             fi
  559.             if [ "$Entrada" == "glide64mk2" ]; then
  560.             echo 'Has decidido '"'$1'"' el complemento de '"$2"' : '"$3"''
  561.             video_glide64mk2
  562.             fi
  563.             if [ "$Entrada" == "rice" ]; then
  564.             echo 'Has decidido '"'$1'"' el complemento de '"$2"' : '"$3"''
  565.             video_rice
  566.             fi
  567.             if [ "$Entrada" == "z64" ]; then
  568.             echo 'Has decidido '"'$1'"' el complemento de '"$2"' : '"$3"''
  569.             video_z64
  570.             fi
  571.             if [ "$Entrada" == "gliden64" ]; then
  572.             echo 'Has decidido '"'$1'"' el complemento de '"$2"' : '"$3"''
  573.             video_gliden64
  574.             fi
  575.         fi
  576.         if [ "$Entrada" == "igu" ]; then
  577.         echo -e "Debes especificar cual Interfaz para usuario quieres instalar\n\nTerminal\nPython\nQT\nUI"
  578.         #Entrada : Cualquier palabra pasada por el parametro $3 sera convertida en minusculas
  579.         Entrada=$(echo "$3" | tr -s  '[:upper:]'  '[:lower:]')
  580.             if [ "$Entrada" == "terminal" ]; then
  581.             echo 'Has decidido '"'$1'"' la interfaz para usuario : '"$3"''
  582.             igu_terminal
  583.             fi
  584.             if [ "$Entrada" == "python" ]; then
  585.             echo 'Has decidido '"'$1'"' la interfaz para usuario : '"$3"''
  586.             igu_python
  587.             fi
  588.             if [ "$Entrada" == "qt" ]; then
  589.             echo 'Has decidido '"'$1'"' la interfaz para usuario : '"$3"''
  590.             igu_qt
  591.             fi
  592.             if [ "$Entrada" == "ui" ]; then
  593.             echo 'Has decidido '"'$1'"' la interfaz para usuario : '"$3"''
  594.             igu_ui
  595.             fi
  596.         fi
  597.         if [ "$Entrada" == "todo" ]; then
  598.         #Entrada : Cualquier palabra pasada por el parametro $3 sera convertida en minusculas
  599.         echo "Has seleccionado : $1 $2"
  600.         core
  601.         rsp_hle
  602.         rsp_z64
  603.         rsp_cxd4
  604.         sdl_audio
  605.         sdl_entrada
  606.         video_arachnoid
  607.         video_glide64
  608.         video_glide64mk2
  609.         video_rice
  610.         video_z64
  611.         video_gliden64
  612.         igu_terminal
  613.         igu_python
  614.         igu_qt
  615.         igu_ui
  616.         fi
  617. fi
  618.  
  619. # Permitir a todo(s) hacer lo que quiera con el mupen64plus
  620. chmod -R 777 "$TARGETDIR"
  621.  
  622. #Final de la primera condicion : La que establece que este guion se debe usar con permisos administrativos
  623. #Por ejemplo la cuenta del SuperUsuario
  624. #
  625. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement