#!/bin/bash # I only maintain this script at github, this is just a link to it. # https://github.com/Light-Wizzard/felgo-qt-bash-installer # this script is outdated. # # Cross-compile environment for Android on ARMv7 and x86 # Clone https://wiki.openssl.org/index.php/File:Setenv-android.sh # # Contents licensed under the terms of the OpenSSL license # http://www.openssl.org/source/license.html # # See http://wiki.openssl.org/index.php/FIPS_Library_and_Android # and http://wiki.openssl.org/index.php/Android # # Modified the above file to get this script. # Modified by Jeffrey Scott Flesher # # delete - in command for Spell Check, one word gives error. # shell-check troubleshoot-qt-andriod.sh && ./troubleshoot-qt-andriod.sh # Variables that need to be set declare TheLastUpdate; TheLastUpdate="16 March 2019"; # Last Update declare ThisTabSpace; ThisTabSpace=" "; # Pad Terminal declare _THIS_LOG_FILE; _THIS_LOG_FILE="Qt-Android-Env.txt"; # File Name for test results declare _THIS_EXPORT_FILE; _THIS_EXPORT_FILE="export-source.txt"; # File Name for export source file declare -i _THIS_SOURCE_BASH_PROFILE; _THIS_SOURCE_BASH_PROFILE=0; # If 0 it will not run _THIS_APPEND_BASH_PROFILE declare -i _THIS_APPEND_BASH_PROFILE; _THIS_APPEND_BASH_PROFILE=0; # it either reads in your profile=1 or skips it declare -i _USE_ENV_BASH_PROFILE; _USE_ENV_BASH_PROFILE=0; # it either reads in your profile env=1 or skips it declare -i _SUDO_REQUIRED; _SUDO_REQUIRED=0; # sudo required to run these commands; 0 will not run them declare -i _THIS_NEW_PATH; _THIS_NEW_PATH=1; # 1=New Path, 0=Use Existing Path ############################################################################### echo; echo; echo; echo; echo; echo; echo;clear; echo; echo "###############################################################################" echo "${ThisTabSpace}Starting troubleshooting-qt-andriod.sh bash script"; echo "###############################################################################" echo set -u; # same as set -o nounset, error if variable is not set set +H; # turn off history expansion echo "Hi!" or set +o histexpand or histchars= # nocaseglob: If set, Bash matches filenames in a case-insensitive fashion when performing filename expansion. # dotglob: If set, Bash includes filenames beginning with a `.' in the results of filename expansion. # -s Enable (set) each optname shopt -s nullglob dotglob; # User's file creation mask. umask sets an environment variable which automatically sets file permissions on newly created files. # i.e. it will set the shell process's file creation mask to mode. umask 022; unalias -a; # -a Remove All aliases; so cp is not cp -i trap "echo Exited!; exit;" SIGINT SIGTERM # declare TheFullScriptPath; TheFullScriptPath="$(dirname "$(readlink -f "${0}")")"; # No Ending / declare _THIS_PATH; _THIS_PATH=""; # declare -x TermScreenAfter; TermScreenAfter="\033[0J"; # Move to location declare -x TermLineBefore; TermLineBefore="\033[1K"; # Erase Current Line #declare -x TermLineAfter; TermLineAfter="\033[0K"; # Erase Current Line declare -x TermUp; TermUp="\033[1A"; # Move up 1 Line declare -x TermUpCount; TermUpCount=2; # declare -x TermMessages; TermMessages="\n"; # declare -x TermProgress; TermProgress=""; # # # *********************************# tput Background declare -a ColorsBG; ColorsBG=(); declare -i ColorBgBlack; ColorBgBlack=0; # "$(tput setab 0)"; looks ugly since most terminals can not do black ColorsBG["${ColorBgBlack}"]=""; # 0: Black ${ColorsBG["${ColorBgBlack}"]} declare -i ColorBgRed; ColorBgRed=1; ColorsBG["${ColorBgRed}"]="$(tput setab 1)"; # 1: Red declare -i ColorBgGreen; ColorBgGreen=2; ColorsBG["${ColorBgGreen}"]="$(tput setab 2)" # 2: Green declare -i ColorBgYellow; ColorBgYellow=3; ColorsBG["${ColorBgYellow}"]="$(tput setab 3)" # 3: Yellow declare -i ColorBgBlue; ColorBgBlue=4; ColorsBG["${ColorBgBlue}"]="$(tput setab 4)" # 4: Blue declare -i ColorBgMagenta; ColorBgMagenta=5; ColorsBG["${ColorBgMagenta}"]="$(tput setab 5)" # 5: Magenta declare -i ColorBgCyan; ColorBgCyan=6; ColorsBG["${ColorBgCyan}"]="$(tput setab 6)" # 6: Cyan declare -i ColorBgWhite; ColorBgWhite=7; # "$(tput setab 7)"; looks ugly since most terminals can not do bright white ColorsBG["${ColorBgWhite}"]=""; # 7: White declare -i ColorBgDefault; ColorBgDefault=9; ColorsBG["${ColorBgDefault}"]="$(tput setab 9)" # 9: Default # # ******************************** # tput Foreground declare -i ColorTheme; ColorTheme=0; # 0=Black BG White FG, 1=White BG Black FG declare -a ColorsFG; ColorsFG=(); declare -i ColorFgBlack; ColorFgBlack=0; ColorsFG["${ColorFgBlack}"]="$(tput setaf 0)"; # 0: Black ${ColorsFG["${ColorFgBlack}"]} declare -i ColorFgRed; ColorFgRed=1; ColorsFG["${ColorFgRed}"]="$(tput setaf 1)" # 1: Red declare -i ColorFgLightRed; ColorFgLightRed=161; ColorsFG["${ColorFgLightRed}"]="$(tput setaf 161)" # 161: Light Red declare -i ColorFgGreen; ColorFgGreen=2; ColorsFG["${ColorFgGreen}"]="$(tput setaf 2)" # 2: Green declare -i ColorFgLightGreen; ColorFgLightGreen=19; ColorsFG["${ColorFgLightGreen}"]="$(tput setaf 19)" # 19: Light Green declare -i ColorFgYellow; ColorFgYellow=3; ColorsFG["${ColorFgYellow}"]="$(tput setaf 3)" # 3: Yellow declare -i ColorFgLightYellow; ColorFgLightYellow=11; ColorsFG["${ColorFgLightYellow}"]="$(tput setaf 11)" # 11: Light Yellow declare -i ColorFgBlue; ColorFgBlue=4; ColorsFG["${ColorFgBlue}"]="$(tput setaf 4)" # 4: Blue declare -i ColorFgLightBlue; ColorFgLightBlue=12; ColorsFG["${ColorFgLightBlue}"]="$(tput setaf 12)" # 12: Light Blue declare -i ColorFgMagenta; ColorFgMagenta=5; ColorsFG["${ColorFgMagenta}"]="$(tput setaf 5)" # 5: Magenta declare -i ColorFgLightMagenta; ColorFgLightMagenta=13; ColorsFG["${ColorFgLightMagenta}"]="$(tput setaf 13)" # 13: Light Magenta declare -i ColorFgCyan; ColorFgCyan=6; ColorsFG["${ColorFgCyan}"]="$(tput setaf 6)" # 6: Cyan declare -i ColorFgLightCyan; ColorFgLightCyan=14; ColorsFG["${ColorFgLightCyan}"]="$(tput setaf 14)" # 14: Light Cyan declare -i ColorFgWhite; ColorFgWhite=7; ColorsFG["${ColorFgWhite}"]="$(tput setaf 7)" # 7: White declare -i ColorFgLightWhite; ColorFgLightWhite=15; ColorsFG["${ColorFgLightWhite}"]="$(tput setaf 15)" # 15: Light White declare -i ColorFgDefault; ColorFgDefault=9; ColorsFG["${ColorFgDefault}"]="$(tput setaf 9)" # 9: Default declare ColorBgTheme; declare ColorFgTheme; declare ColorFgThemeWarn; declare ColorFgThemeError; declare ColorFgThemeInfo; # declare T_Reset; # Reset # shellcheck disable=SC2034 T_Reset="$(tput sgr0)"; declare T_Bold; # T_Bold # shellcheck disable=SC2034 T_Bold="$(tput bold)"; declare -x T_Dim; # T_Dim # shellcheck disable=SC2034 T_Dim="$(tput dim)"; declare -x T_Blink; # T_Blink # shellcheck disable=SC2034 T_Blink="$(tput blink)"; declare -x T_Begin_Underline; # Begin Underline # shellcheck disable=SC2034 T_Begin_Underline="$(tput smul)"; declare -x T_End_Underline; # End Underline # shellcheck disable=SC2034 T_End_Underline="$(tput rmul)"; declare -x T_Reverse; # Reverse # shellcheck disable=SC2034 T_Reverse="$(tput rev)"; declare -x T_Begin_Standout; # Begin Standout # shellcheck disable=SC2034 T_Begin_Standout="$(tput smso)"; declare -x T_End_Standout; # End Standout # shellcheck disable=SC2034 T_End_Standout="$(tput rmso)"; # declare T_Clear_EOL; # Clear to End of Line # shellcheck disable=SC2034 T_Clear_EOL="$(tput el)"; declare T_Clear_BOL; # Clear to Beginning of Line # shellcheck disable=SC2034 T_Clear_BOL="$(tput el1)"; ############################################################################### showDetails() { echo ""; echo "${ThisTabSpace}Last Update: ${TheLastUpdate}"; echo ""; echo "${ThisTabSpace}This bash script was written to build 3 files; and export-source.txt, that contains all the Environment Variables this script tested."; echo "${ThisTabSpace}the Qt-Andriod-Env.txt, it contains all the test results, and can be used to post to forums for Troubleshooting."; echo "${ThisTabSpace}the Felgo-Qt-Info.txt is taken from Qt Creator with Felgo running:"; echo "${ThisTabSpace}With Qtcreator Felgo running: Under Help -> System Information: Copy to Clipboard, save in Script folder as Felgo-Qt-Info.txt"; echo "${ThisTabSpace}Running this script should replace /home/UserName with \${HOME} and UID with with \${UID}, so it is more Secure."; echo "${ThisTabSpace}Make sure it does before posting it, also delete all info you do not want to post, this just helps build the query not refine it."; echo "${ThisTabSpace}These files can be used to Troubleshoot, to make a good Environment, or to check your Environment."; echo ""; echo "${ThisTabSpace}Normal usage is No Arguments."; echo ""; echo ""; echo ""; } showUsage() { showDetails; printf "${ThisTabSpace}%s\n ${ThisTabSpace}${ThisTabSpace}${ThisTabSpace}${ThisTabSpace}%s\n ${ThisTabSpace}${ThisTabSpace}${ThisTabSpace}${ThisTabSpace}%s\n ${ThisTabSpace}${ThisTabSpace}${ThisTabSpace}${ThisTabSpace}%s\n ${ThisTabSpace}${ThisTabSpace}${ThisTabSpace}${ThisTabSpace}%s\n \n\n" "showUsage: ${0}" "-h, --help" "-i, --install" "-t,--theme (Color Theme[0-1])" "-s, --sudoreq (Run CPU and Memory Checks, Requires sudo)" 1>&2; } ############################################################################### declare -i DoBomb; DoBomb=0; # declare -ix ThisRunTest; ThisRunTest=0; # declare -i _InstallFelgo; _InstallFelgo=0; # # Check Argument Count declare -a POSITIONAL; POSITIONAL=(); declare key; declare re; while [[ $# -gt 0 ]]; do key=${1}; case ${key} in -h|--help) DoBomb=1; shift; # past value ;; -i|--install) _InstallFelgo=1; shift; # past value ;; -s|"--sudoreq") _SUDO_REQUIRED=1; shift; # past value ;; "-t"|"--theme") shift; # past argument # # FIXME Sync with how many themes are created re='^[0-9]+$'; if ! [[ "${1}" =~ $re ]] ; then echo "### ERROR: Valid Input: 0 or 1 got: |${1}|"; showUsage; exit 1; fi ColorTheme=$((1 + 0)); [ ${ColorTheme} -lt 0 ] || [ ${ColorTheme} -gt 1 ] && ColorTheme=0; shift; # past value ;; *) # unknown option POSITIONAL+=("${key}") # save it in an array for later shift # past argument ;; esac done set -- "${POSITIONAL[@]}" # restore positional parameters # if [ "${DoBomb}" -eq 1 ]; then showUsage; exit 1; fi # Color Themes, make as many as you like # Note I do not use background colors because they are ugly, # as such the terminal foregrounds are all that change, # and the terminal uses its own Colors, # the reason for a need for this is because of the colors I use to show Errors, Warnings, Cautions, and Info # and White on White or Black on Black do not work for anyone, # so this is a must, its not optional, # if you run this on a Terminal with a black background then you need a color theme for it, same for white, # else you get black on black, have fun reading it, # if you run on a white background, with a black theme, Info is washed out, white on white if [ "${ColorTheme}" -eq 0 ]; then ColorBgTheme="${ColorFgBlack}"; # You can set this to what ever color you want ColorFgTheme="${ColorFgWhite}"; ColorFgThemeWarn="${ColorFgLightYellow}"; ColorFgThemeError="${ColorFgRed}"; ColorFgThemeInfo="${ColorFgLightBlue}"; else ColorBgTheme="${ColorBgWhite}"; # You can set this to what ever color you want ColorFgTheme="${ColorFgBlack}"; ColorFgThemeWarn="${ColorFgLightYellow}"; ColorFgThemeError="${ColorFgRed}"; ColorFgThemeInfo="${ColorFgLightBlue}"; fi # touch "${_THIS_LOG_FILE}"; echo -en "" > "${_THIS_LOG_FILE}"; # touch "${_THIS_EXPORT_FILE}"; echo "#!/bin/bash" > "${_THIS_EXPORT_FILE}" echo "# source export-source.txt" >> "${_THIS_EXPORT_FILE}" echo "#" >> "${_THIS_EXPORT_FILE}" ############################################################################### declare STACK; function get_stack() { if [ $# -ne 1 ]; then printOutput "LOCALIZE_WRONG_ARGS_PASSED_TO ${FUNCNAME[0]}() @ $(basename "${BASH_SOURCE[0]}") : Line # ${LINENO[0]}" "${ColorBgTheme}" "${ColorFgTheme}" 1; exit 1; fi STACK=""; local i message; message="${1:-""}" local stack_size; stack_size=${#FUNCNAME[@]}; local func; local linen; local src; # to avoid noise we start with 1 to skip the get_stack function for (( i=1; i> "${_THIS_LOG_FILE}" } ############################################################################### # exportThis "var" "message"; exportThis() { [[ $# -ne 2 ]] && { echo "LOCALIZE_WRONG_ARGS_PASSED_TO Usage: ${FUNCNAME[0]}(Var, Message) @ $(basename "${BASH_SOURCE[0]}") : ${LINENO[0]}"; exit 1; } # Print to File # shellcheck disable=SC2129 echo "#" >> "${_THIS_EXPORT_FILE}" echo "declare -x ${1}; ${1}=${2};" >> "${_THIS_EXPORT_FILE}" echo "export ${1}=${2};" >> "${_THIS_EXPORT_FILE}" export "${1}"="${2}"; } ############################################################################### # printInColor "Text to Print to Screen" "${ColorBgTheme}" "${ColorFgTheme}" "NewLine=1" printInColor() { [[ $# -ne 4 ]] && { echo "LOCALIZE_WRONG_ARGS_PASSED_TO Usage: ${FUNCNAME[0]}() 'Text' 'Background Color' 'Foreground Color' $(basename "${BASH_SOURCE[0]}") Line # ${LINENO[0]}"; get_stack "${LINENO[0]}"; echo "${STACK}"; return 1; } local myText; myText="${1}"; # local -i myBgColor; myBgColor="${2}"; # local -i myFgColor; myFgColor="${3}"; # local -i myNewLine; myNewLine="${4}"; # # if [ "${myNewLine}" -eq 1 ]; then echo -e "${T_Clear_BOL}${T_Reset}${ColorsBG[${myBgColor}]}${ColorsFG[${myFgColor}]}${ThisTabSpace}${T_Bold}${myText}${T_Clear_EOL}"; else echo -ne "${T_Clear_BOL}${T_Reset}${ColorsBG[${myBgColor}]}${ColorsFG[${myFgColor}]}${ThisTabSpace}${T_Bold}${myText}${T_Clear_EOL}"; fi } ############################################################################### declare -g JAVA_HOME; declare -g EDITOR; declare -g JAVA_JRE; declare -g ANDROID_SDK_ROOT; declare -g ANDROID_HOME; declare -g ANDROID_NDK_ROOT; declare -g ANDROID_TOOLCHAIN; declare -g ANDROID_SYSROOT; declare -g ANDROID_EABI; declare -g FIPS_SIG; declare _JAVA_HOME; _JAVA_HOME=""; # declare _JAVA_JRE; _JAVA_JRE=""; # declare _EDITOR; _EDITOR=""; # declare _ANDROID_SDK_ROOT; _ANDROID_SDK_ROOT=""; # declare _ANDROID_HOME; _ANDROID_HOME=""; # declare _ANDROID_NDK_ROOT; _ANDROID_NDK_ROOT=""; # declare _ANDROID_TOOLCHAIN; _ANDROID_TOOLCHAIN=""; # declare _ANDROID_SYSROOT; _ANDROID_SYSROOT=""; # declare _ANDROID_EABI; _ANDROID_EABI=""; # declare _FIPS_SIG; _FIPS_SIG=""; # declare CurrentJava; # ############################################################################### runTest() { if [ -f "${HOME}/.bash_profile" ] && [ "${_THIS_SOURCE_BASH_PROFILE}" -eq 1 ]; then if [ "${_THIS_SOURCE_BASH_PROFILE}" -eq 1 ]; then # must make sure to source your env to set Java and other path variables # shellcheck source=/dev/null source "${HOME}/.bash_profile"; fi # if [ "${_THIS_APPEND_BASH_PROFILE}" -eq 1 ]; then # ${HOME}/Downloads/v-play/Setenv-android.sh cat "${HOME}"/.bash_profile >> "${_THIS_EXPORT_FILE}"; fi else # if [ ! -f "${HOME}/.bash_profile" ]; then CurrentJava="$(update-alternatives --list java)"; # /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java # _JAVA_JDK_HOME_DEFAULT; # _JAVA_JRE_DEFAULT; # if [ -z "${JAVA_HOME+x}" ]; then if [ -d "${_JAVA_JDK_HOME_DEFAULT}" ]; then _JAVA_HOME="${_JAVA_JDK_HOME_DEFAULT}"; fi else if [ "${_USE_ENV_BASH_PROFILE}" -eq 1 ]; then _JAVA_HOME="${JAVA_HOME}"; if [ -d "${_JAVA_HOME}" ]; then _JAVA_HOME="${_JAVA_HOME}"; fi else if [ -d "${_JAVA_JDK_HOME_DEFAULT}" ]; then _JAVA_HOME="${_JAVA_JDK_HOME_DEFAULT}"; fi fi fi # if [ "${CurrentJava}" != "${_JAVA_HOME}/jre/bin/java" ]; then printOutput "Current Java: |${CurrentJava}| and define: |${_JAVA_HOME}/jre/bin/java| are not the same" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else printOutput "Current Java and JAVA_HOME: |${CurrentJava}| are the same" "${ColorBgTheme}" "${ColorFgThemeInfo}" 1; fi # if [ -z "${JAVA_JRE+x}" ]; then if [ -d "${_JAVA_JRE_DEFAULT}" ]; then _JAVA_JRE="${_JAVA_JRE_DEFAULT}"; fi else if [ "${_USE_ENV_BASH_PROFILE}" -eq 1 ]; then _JAVA_JRE="${JAVA_JRE}"; if [ -d "${_JAVA_JRE}" ]; then _JAVA_JRE="${_JAVA_JRE}"; fi else if [ -d "${_JAVA_JRE_DEFAULT}" ]; then _JAVA_JRE="${_JAVA_JRE_DEFAULT}"; fi fi fi # # FIXME strip duplicates or suffer their long paths if [ "${_THIS_NEW_PATH}" -eq 1 ]; then _THIS_PATH="/usr/local/bin"; _THIS_PATH="${_THIS_PATH}:/usr/bin"; _THIS_PATH="${_THIS_PATH}:/bin"; _THIS_PATH="${_THIS_PATH}:/usr/local/sbin"; _THIS_PATH+="${_THIS_PATH}:${_Anroid_SDK}/platform-tools"; _THIS_PATH="$(echo "${_THIS_PATH}:${_JAVA_HOME}/bin:${_JAVA_JRE}/bin" | xargs -n1 | sort -u | xargs)" # _THIS_PATH+="${_THIS_PATH}:"; else _THIS_PATH="${PATH}"; fi printOutput "PATH=${_THIS_PATH}" "${ColorBgTheme}" "${ColorFgTheme}" 1; exportThis "PATH" "${_THIS_PATH}"; # # Make life in a terminal better if [ -z "${EDITOR+x}" ]; then _EDITOR="$(if [[ -n ${DISPLAY} ]]; then echo "${_THIS_GUI_EDITOR}"; else echo "${_THIS_TERMINAL_EDITOR}"; fi)"; else if [ "${_USE_ENV_BASH_PROFILE}" -eq 1 ]; then _EDITOR="${EDITOR}"; fi fi # # ANDROID_SDK_ROOT if [ -z "${ANDROID_SDK_ROOT+x}" ]; then if [ -d "${_Anroid_SDK}" ]; then _ANDROID_SDK_ROOT="${_Anroid_SDK}"; elif [ -d "/opt/android-sdk" ]; then _ANDROID_SDK_ROOT="/opt/android-sdk"; fi else if [ "${_USE_ENV_BASH_PROFILE}" -eq 1 ]; then _ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT}"; else if [ -d "${_Anroid_SDK}" ]; then _ANDROID_SDK_ROOT="${_Anroid_SDK}"; fi fi fi # ANDROID_HOME this is the same as ANDROID_SDK_ROOT; not sure if that is right FIXME check # if [ -z "${ANDROID_HOME+x}" ]; then if [ -d "${_Anroid_SDK}" ]; then _ANDROID_HOME="${_Anroid_SDK}"; elif [ -d "/opt/android-sdk" ]; then _ANDROID_HOME="/opt/android-sdk"; fi else if [ "${_USE_ENV_BASH_PROFILE}" -eq 1 ]; then _ANDROID_HOME="${ANDROID_HOME}"; else if [ -d "${_Anroid_SDK}" ]; then _ANDROID_HOME="${_Anroid_SDK}"; fi fi fi # if [ -z "${ANDROID_NDK_ROOT+x}" ]; then if [ -d "${_Anroid_NDK}" ]; then # Does not exist, put it here as a FIXME because I think it should _ANDROID_NDK_ROOT="${_Anroid_NDK}"; # even if its just sym links or a copy, I would much rather use a local copy elif [ -d "/opt/android-sdk" ]; then # if the above fails try here, and I need more for other distributions _ANDROID_NDK_ROOT="/opt/android-sdk"; fi else if [ "${_USE_ENV_BASH_PROFILE}" -eq 1 ]; then _ANDROID_NDK_ROOT="${ANDROID_NDK_ROOT}"; else if [ -d "${_Anroid_SDK}" ]; then _ANDROID_NDK_ROOT="${_Anroid_NDK}"; fi fi fi # if [ -z "${ANDROID_TOOLCHAIN+x}" ]; then if [ -d "${_Anroid_NDK}/toolchains" ]; then # Does not exist, put it here as a FIXME because I think it should _ANDROID_TOOLCHAIN="${_Anroid_NDK}/toolchains"; # even if its just sym links or a copy, I would much rather use a local copy elif [ -d "/opt/android-sdk" ]; then _ANDROID_TOOLCHAIN="/opt/android-sdk/toolchains"; fi else if [ "${_USE_ENV_BASH_PROFILE}" -eq 1 ]; then _ANDROID_TOOLCHAIN="${ANDROID_TOOLCHAIN}"; else if [ -d "${_Anroid_SDK}" ]; then _ANDROID_TOOLCHAIN="${_Anroid_NDK}/toolchains"; fi fi fi # if [ -z "${ANDROID_SYSROOT+x}" ]; then if [ -d "${_ANDROID_NDK_ROOT}/platforms/${_ANDROID_API}/${_ANDROID_ARCH}" ]; then # Does not exist, put it here as a FIXME because I think it should _ANDROID_SYSROOT="${_ANDROID_NDK_ROOT}/platforms/${_ANDROID_API}/${_ANDROID_ARCH}"; # even if its just sym links or a copy, I would much rather use a local copy elif [ -d "/opt/android-sdk" ]; then _ANDROID_SYSROOT="/opt/android-sdk/sysroot"; fi else if [ "${_USE_ENV_BASH_PROFILE}" -eq 1 ]; then _ANDROID_SYSROOT="${ANDROID_SYSROOT}"; else if [ -d "${_Anroid_SDK}" ]; then _ANDROID_SYSROOT="${_ANDROID_NDK_ROOT}/platforms/${_ANDROID_API}/${_ANDROID_ARCH}"; fi fi fi # if [ -z "${ANDROID_EABI+x}" ]; then if [ -d "${_Anroid_NDK}/eabi" ]; then # Does not exist, put it here as a FIXME because I think it should _ANDROID_EABI=""; # even if its just sym links or a copy, I would much rather use a local copy elif [ -d "/opt/android-eabi" ]; then # I have no idea where this file is FIXME AUR removed it _ANDROID_EABI=""; fi else if [ "${_USE_ENV_BASH_PROFILE}" -eq 1 ]; then _ANDROID_EABI="${ANDROID_EABI}"; else if [ -d "${_Anroid_SDK}" ]; then _ANDROID_EABI="${_Anroid_NDK}/eabi"; fi fi fi # if [ -z "${FIPS_SIG+x}" ]; then if [ -d "${_Anroid_NDK}/fips" ]; then # Does not exist, put it here as a FIXME because I think it should _FIPS_SIG="${_Anroid_NDK}/fips"; # even if its just sym links or a copy, I would much rather use a local copy elif [ -d "/opt/android-fips" ]; then # I have no idea where this file is FIXME AUR removed it _FIPS_SIG="/opt/android-fips"; fi else if [ "${_USE_ENV_BASH_PROFILE}" -eq 1 ]; then _FIPS_SIG="${FIPS_SIG}"; else if [ -d "${_Anroid_SDK}" ]; then _FIPS_SIG="${_Anroid_NDK}/fips"; fi fi fi # exportThis "JAVA_HOME" "${_JAVA_HOME}"; exportThis "JAVA_JRE" "${_JAVA_JRE}"; exportThis "EDITOR" "${_EDITOR}"; exportThis "ANDROID_SDK_ROOT" "${_ANDROID_SDK_ROOT}"; exportThis "ANDROID_HOME" "${_ANDROID_HOME}"; exportThis "ANDROID_NDK_ROOT" "${_ANDROID_NDK_ROOT}"; exportThis "ANDROID_TOOLCHAIN" "${_ANDROID_TOOLCHAIN}"; exportThis "ANDROID_SYSROOT" "${_ANDROID_SYSROOT}"; exportThis "ANDROID_EABI" "${_ANDROID_EABI}"; exportThis "FIPS_SIG" "${_FIPS_SIG}"; # # Test _THIS_GUI_EDITOR if [ ! -f "${_THIS_GUI_EDITOR}" ]; then printOutput "ERROR: GUI EDITOR not found: ${_THIS_GUI_EDITOR}" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else printOutput "GUI EDITOR: ${_THIS_GUI_EDITOR}" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi # # Test _THIS_TERMINAL_EDITOR if [ ! -f "${_THIS_TERMINAL_EDITOR}" ]; then printOutput "ERROR: Terminal EDITOR not found: ${_THIS_TERMINAL_EDITOR}" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else printOutput "Terminal EDITOR: ${_THIS_TERMINAL_EDITOR}" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi # # Test JAVA_HOME if [ ! -d "${_JAVA_HOME}/bin" ]; then printOutput "ERROR: JAVA_HOME not found: ${_JAVA_HOME}/bin" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else printOutput "JAVA_HOME found: ${_JAVA_HOME}/bin" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi # Test JAVA_JRE if [ ! -d "${_JAVA_JRE}/bin" ]; then printOutput "ERROR: JAVA_JRE not found: ${_JAVA_JRE}/bin" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else printOutput "JAVA_JRE found: ${_JAVA_JRE}/bin" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi # Test ANDROID_SDK_ROOT if [ ! -d "${_ANDROID_SDK_ROOT}" ]; then printOutput "ERROR: ANDROID_SDK_ROOT not found: ${_ANDROID_SDK_ROOT}" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else printOutput "ANDROID_SDK_ROOT found: ${_ANDROID_SDK_ROOT}" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi # Test ANDROID_HOME if [ ! -d "${_ANDROID_HOME}" ]; then printOutput "ERROR: ANDROID_HOME not found: ${_ANDROID_HOME}" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else printOutput "ANDROID_HOME found: ${_ANDROID_HOME}" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi # Test ANDROID_NDK_ROOT if [ ! -d "${_ANDROID_NDK_ROOT}" ]; then printOutput "ERROR: ANDROID_NDK_ROOT not found: ${_ANDROID_NDK_ROOT}" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else printOutput "ANDROID_NDK_ROOT found: ${_ANDROID_NDK_ROOT}" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi # Test ANDROID_TOOLCHAIN if [ ! -d "${_ANDROID_TOOLCHAIN}" ]; then printOutput "ERROR: ANDROID_TOOLCHAIN not found: ${_ANDROID_TOOLCHAIN}" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else printOutput "ANDROID_TOOLCHAIN found: ${_ANDROID_TOOLCHAIN}" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi # Test ANDROID_SYSROOT if [ ! -d "${_ANDROID_SYSROOT}" ]; then printOutput "ERROR: ANDROID_SYSROOT not found: ${_ANDROID_SYSROOT}" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else printOutput "ANDROID_SYSROOT found: ${_ANDROID_SYSROOT}" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi # Test ANDROID_EABI if [ ! -d "${_ANDROID_EABI}" ]; then printOutput "" "${ColorBgTheme}" "${ColorFgThemeError}" 1; printOutput "ERROR: ANDROID_EABI not found: ${_ANDROID_EABI}" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else printOutput "ANDROID_EABI found: ${_ANDROID_EABI}" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi # Test FIPS_SIG if [ ! -d "${_FIPS_SIG}" ]; then printOutput "" "${ColorBgTheme}" "${ColorFgThemeError}" 1; printOutput "ERROR: FIPS_SIG not found: ${_FIPS_SIG}" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else printOutput "FIPS_SIG found: ${_FIPS_SIG}" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi fi # if [ -f "${HOME}/.bash_profile" ]; then echo "" >> "${_THIS_EXPORT_FILE}"; # #*****************************************************************************# # # If the user did not specify the NDK location, try and pick it up. # We expect something like: # ANDROID_NDK_ROOT=/opt/android-ndk-r8e # or ANDROID_NDK_ROOT=/usr/local/android-ndk-r8e. # if [ -z "${_ANDROID_NDK_ROOT+x}" ]; then printOutput "ERROR: _ANDROID_NDK_ROOT is not set: |${_ANDROID_NDK_ROOT}|" "${ColorBgTheme}" "${ColorFgThemeError}" 1; _ANDROID_NDK_ROOT=""; if [ -z "$_ANDROID_NDK_ROOT" ] && [ -d "/usr/local/${_ANDROID_NDK}" ]; then _ANDROID_NDK_ROOT="/usr/local/${_ANDROID_NDK}"; fi if [ -z "$_ANDROID_NDK_ROOT" ] && [ -d "/opt/${_ANDROID_NDK}" ]; then _ANDROID_NDK_ROOT="/opt/${_ANDROID_NDK}"; fi # Check HOME if [ -z "$_ANDROID_NDK_ROOT" ] && [ -d "${HOME}/${_ANDROID_NDK}" ]; then _ANDROID_NDK_ROOT="$HOME/$_ANDROID_NDK"; fi if [ -z "$_ANDROID_NDK_ROOT" ] && [ -d "${PWD}/${_ANDROID_NDK}" ]; then _ANDROID_NDK_ROOT="${PWD}/${_ANDROID_NDK}"; fi # If a path was set, then export it if [ -n "$_ANDROID_NDK_ROOT" ] && [ -d "$_ANDROID_NDK_ROOT" ]; then exportThis "ANDROID_NDK_ROOT" "${_ANDROID_NDK_ROOT}"; fi fi # Error checking # ANDROID_NDK_ROOT should always be set by the user (even when not running this script) # http://groups.google.com/group/android-ndk/browse_thread/thread/a998e139aca71d77 if [ -z "${_ANDROID_NDK_ROOT+x}" ] || [ ! -d "${_ANDROID_NDK_ROOT}" ]; then printOutput "ERROR: ANDROID_NDK_ROOT=${_ANDROID_NDK_ROOT} is not a valid path. Please edit this script." "${ColorBgTheme}" "${ColorFgThemeError}" 1; # echo "${_ANDROID_NDK_ROOT}" # exit 1 fi # Error checking if [ ! -d "${_ANDROID_NDK_ROOT}/toolchains" ]; then printOutput "ERROR: ANDROID_NDK_ROOT/toolchains=${_ANDROID_NDK_ROOT}/toolchains is not a valid path. Please edit this script." "${ColorBgTheme}" "${ColorFgThemeError}" 1; # echo "${_ANDROID_NDK_ROOT}/toolchains"; # exit 1; fi # Error checking if [ -n "${_ANDROID_EABI+x}" ]; then if [ ! -d "${_ANDROID_NDK_ROOT}/toolchains/${_ANDROID_EABI}" ]; then printOutput "ERROR: ANDROID_EABI=${_ANDROID_NDK_ROOT}/toolchains/${_ANDROID_EABI} is not a valid path. Please edit this script." "${ColorBgTheme}" "${ColorFgThemeError}" 1; # echo "${_ANDROID_NDK_ROOT}/toolchains/$_ANDROID_EABI"; # exit 1; fi fi # #*****************************************************************************# # # # Based on ANDROID_NDK_ROOT, try and pick up the required toolchain. We expect something like: # /opt/android-ndk-r83/toolchains/arm-linux-androideabi-4.7/prebuilt/linux-x86_64/bin # Once we locate the toolchain, we add it to the PATH. Note: this is the 'hard way' of # doing things according to the NDK documentation for Ice Cream Sandwich. # https://android.googlesource.com/platform/ndk/+/ics-mr0/docs/STANDALONE-TOOLCHAIN.html # if [ -n "${_ANDROID_EABI+x}" ]; then for host in "linux-x86_64" "linux-x86" "darwin-x86_64" "darwin-x86"; do if [ -d "${_ANDROID_NDK_ROOT}/toolchains/$_ANDROID_EABI/prebuilt/$host/bin" ]; then ANDROID_TOOLCHAIN="${_ANDROID_NDK_ROOT}/toolchains/$_ANDROID_EABI/prebuilt/$host/bin"; break fi done fi # Error checking if [ -z "$ANDROID_TOOLCHAIN" ] || [ ! -d "$ANDROID_TOOLCHAIN" ]; then if [ -n "${_ANDROID_EABI+x}" ]; then printOutput "ERROR: ANDROID_TOOLCHAIN is not valid. Please edit this script." "${ColorBgTheme}" "${ColorFgThemeError}" 1; # echo "$ANDROID_TOOLCHAIN"; # exit 1; fi fi case ${_ANDROID_ARCH} in arch-arm64) ANDROID_TOOLS="aarch64-linux-android-gcc aarch64-linux-android-ranlib aarch64-linux-android-ld" ;; arch-arm) ANDROID_TOOLS="arm-linux-androideabi-gcc arm-linux-androideabi-ranlib arm-linux-androideabi-ld" ;; arch-x86) ANDROID_TOOLS="i686-linux-android-gcc i686-linux-android-ranlib i686-linux-android-ld" ;; *) printOutput "ERROR: No arch-arm od arch-x86 defined." "${ColorBgTheme}" "${ColorFgThemeError}" 1; ;; esac # for tool in $ANDROID_TOOLS; do # Error checking #echo "ANDROID_TOOLCHAIN=|${ANDROID_TOOLCHAIN}|" #echo "${ANDROID_TOOLCHAIN}/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/${tool}"; if [ ! -e "${ANDROID_TOOLCHAIN}/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/${tool}" ]; then printOutput "" "${ColorBgTheme}" "${ColorFgThemeError}" 1; printOutput "ERROR: Failed to find $tool. Please edit this script." "${ColorBgTheme}" "${ColorFgThemeError}" 1; # echo "${ANDROID_TOOLCHAIN}/${tool}"; # exit 1; # I can not find these files; if they do exist, they will be in sub folders; FIXME change to this path # arm-linux-androideabi-ranlib /opt/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin # arm-linux-androideabi-ranlib /opt/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin # arm-linux-androideabi-ld /opt/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin # # # ${_Anroid_SDK}/build-tools/28.0.3 # /opt/android-ndk/toolchains/ # aarch64-linux-android-4.9 # arm-linux-androideabi-4.9 # llvm # renderscript # x86-4.9 # x86_64-4.9 # prebuilt # linux-x86_64 # bin # lib # share # x86_64-linux-android # bin # lib # lib64 # fi done # # Only modify/export PATH if ANDROID_TOOLCHAIN good if [ -n "$ANDROID_TOOLCHAIN" ]; then exportThis "ANDROID_TOOLCHAIN" "${ANDROID_TOOLCHAIN}"; exportThis "PATH" "${PATH}:${ANDROID_TOOLCHAIN}"; fi # #*****************************************************************************# # # For the Android SYSROOT. Can be used on the command line with --sysroot # https://android.googlesource.com/platform/ndk/+/ics-mr0/docs/STANDALONE-TOOLCHAIN.html exportThis "ANDROID_SYSROOT" "${_ANDROID_NDK_ROOT}/platforms/${_ANDROID_API}/${_ANDROID_ARCH}"; exportThis "CROSS_SYSROOT" "${ANDROID_SYSROOT}"; exportThis "NDK_SYSROOT" "${ANDROID_SYSROOT}"; printOutput "" "${ColorBgTheme}" "${ColorFgThemeError}" 1; # Error checking if [ -z "${ANDROID_SYSROOT+x}" ] || [ ! -d "${ANDROID_SYSROOT}" ]; then printOutput "ERROR: ANDROID_SYSROOT=${ANDROID_SYSROOT} is not valid. Please edit this script." "${ColorBgTheme}" "${ColorFgThemeError}" 1; # echo "${ANDROID_SYSROOT}"; # exit 1; fi # Error checking CROSS_SYSROOT if [ -z "${CROSS_SYSROOT+x}" ] || [ ! -d "${CROSS_SYSROOT}" ]; then printOutput "ERROR: CROSS_SYSROOT=${CROSS_SYSROOT} is not valid. Please edit this script." "${ColorBgTheme}" "${ColorFgThemeError}" 1; # echo "${CROSS_SYSROOT}"; # exit 1; fi # Error checking NDK_SYSROOT if [ -z "${NDK_SYSROOT+x}" ] || [ ! -d "${NDK_SYSROOT}" ]; then printOutput "ERROR: NDK_SYSROOT=${NDK_SYSROOT} is not valid. Please edit this script." "${ColorBgTheme}" "${ColorFgThemeError}" 1; # echo "${NDK_SYSROOT}"; # exit 1; fi # #*****************************************************************************# # # If the user did not specify the _FIPS_SIG location, try and pick it up # If the user specified a bad location, then try and pick it up too. if [ -z "${_FIPS_SIG+x}" ] || [ ! -e "$_FIPS_SIG" ]; then # Try and locate it _FIPS_SIG="" if [ -d "/usr/local/ssl/$_ANDROID_API" ]; then _FIPS_SIG=$(find "/usr/local/ssl/$_ANDROID_API" -name incore); fi if [ ! -e "$_FIPS_SIG" ]; then _FIPS_SIG=$(find "${PWD}" -name incore); fi # If a path was set, then export it if [ -n "$_FIPS_SIG" ] && [ -e "$_FIPS_SIG" ]; then exportThis "FIPS_SIG" "${_FIPS_SIG}"; fi fi # Error checking. Its OK to ignore this if you are *not* building for FIPS if [ -z "$_FIPS_SIG" ] || [ ! -e "$_FIPS_SIG" ] && [ "${_USE_FIPS}" -eq 1 ]; then printOutput "ERROR: _FIPS_SIG does not specify incore module. Please edit this script." "${ColorBgTheme}" "${ColorFgThemeError}" 1; # echo "$_FIPS_SIG"; # exit 1; fi # #*****************************************************************************# # # Most of these should be OK (MACHINE, SYSTEM, ARCH). exportThis "MACHINE" "armv7"; exportThis "SYSTEM" "android"; exportThis "ARCH" "arm"; exportThis "CROSS_COMPILE" "arm-linux-androideabi-"; # if [ "${_ANDROID_ARCH}" == "arch-x86" ]; then exportThis "MACHINE" "i686"; exportThis "SYSTEM" "android"; exportThis "ARCH" "x86"; exportThis "CROSS_COMPILE" "i686-linux-android-"; fi # if [ "${_ANDROID_ARCH}" == "arch-arm64" ]; then exportThis "MACHINE" "armv8"; exportThis "RELEASE" "2.6.37"; exportThis "SYSTEM" "android64"; exportThis "ARCH" "arm"; exportThis "CROSS_COMPILE" "aarch64-linux-android-"; fi # # For the Android toolchain # https://android.googlesource.com/platform/ndk/+/ics-mr0/docs/STANDALONE-TOOLCHAIN.html exportThis "ANDROID_SYSROOT" "${_ANDROID_NDK_ROOT}/platforms/${_ANDROID_API}/${_ANDROID_ARCH}"; exportThis "SYSROOT" "${ANDROID_SYSROOT}"; exportThis "NDK_SYSROOT" "${ANDROID_SYSROOT}"; exportThis "ANDROID_NDK_SYSROOT" "${ANDROID_SYSROOT}"; exportThis "ANDROID_API" "${_ANDROID_API}"; # CROSS_COMPILE and ANDROID_DEV are DFW (Don't Fiddle With). Its used by OpenSSL build system. # export CROSS_COMPILE="arm-linux-androideabi-" exportThis "ANDROID_DEV" "${_ANDROID_NDK_ROOT}/platforms/${_ANDROID_API}/${_ANDROID_ARCH}/usr"; exportThis "HOSTCC" "gcc"; exportThis "OPENSSL_LIBS" "'-L/usr/lib/openssl-1.0 -lssl -lcrypto'"; VERBOSE=1 if [ -n "$VERBOSE" ] && [ "$VERBOSE" != "0" ]; then printOutput "" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "ANDROID_NDK_ROOT: ${_ANDROID_NDK_ROOT}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "ANDROID_ARCH: ${_ANDROID_ARCH}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "ANDROID_EABI: ${_ANDROID_EABI}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "ANDROID_API: ${_ANDROID_API}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "ANDROID_SYSROOT: ${ANDROID_SYSROOT}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "ANDROID_TOOLCHAIN: ${ANDROID_TOOLCHAIN}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "FIPS_SIG: ${_FIPS_SIG}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "CROSS_COMPILE: ${CROSS_COMPILE}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "ANDROID_DEV: ${ANDROID_DEV}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "OPENSSL_LIBS: ${OPENSSL_LIBS}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi # declare _THIS_QMAKE; _THIS_QMAKE="$(type -p qmake)"; # if test -x "${_THIS_QMAKE}"; then printOutput "qmake installed: ${_THIS_QMAKE}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "qmake version: $(qmake -v | tr '\n' ' ')" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "" "${ColorBgTheme}" "${ColorFgTheme}" 1; else # The Qt library is missing... printOutput "ERROR: This script requires Qt to be installed." "${ColorBgTheme}" "${ColorFgThemeError}" 1; printOutput "" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi # _THIS_DIST="$( to_upper_case "${_THIS_DIST}")"; if [ "${_THIS_DIST}" == "ARCHLINUX" ] || [ "${_THIS_DIST}" == "MANJARO" ]; then declare _THIS_QT_VERSION; _THIS_QT_VERSION="$(pkg-config --modversion Qt5Core)"; printOutput "Qt5Core version: ${_THIS_QT_VERSION}" "${ColorBgTheme}" "${ColorFgTheme}" 1; if [ "${FELGO_QT_VER}" != "${_THIS_QT_VERSION}" ]; then printOutput "Conflict in Qt Version; wants: ${FELGO_QT_VER} installed: ${_THIS_QT_VERSION}" "${ColorBgTheme}" "${ColorFgThemeWarn}" 1; fi fi # printOutput "" "${ColorBgTheme}" "${ColorFgTheme}" 1; } ############################################################################### # OS Info declare -x _THIS_OS; _THIS_OS=""; # OS: Linux, FreeBSD, MAC, Windows declare -x _THIS_DIST; _THIS_DIST=""; # CentOS, Arch Linux, Debian, Redhat declare -x _THIS_PSUEDONAME; _THIS_PSUEDONAME=""; # PSUEDONAME declare -x _THIS_ARCH; _THIS_ARCH=""; # x86 or x86_64 declare -x _THIS_Ver; _THIS_Ver=""; # OS Version declare -x _THIS_Ver_Major; _THIS_Ver_Major=""; # Major Version Number declare -x _THIS_Ver_Minor; _THIS_Ver_Minor=""; # Major Version Number declare -x _THIS_OS_Update; _THIS_OS_Update=""; # Patch Number declare -x _THIS_OS_Package; _THIS_OS_Package=""; # # to_lower_case() { echo "${1,,}"; } # to_upper_case() { echo "${1^^}"; } # declare _JAVA_JDK_HOME_DEFAULT; declare _JAVA_JRE_DEFAULT; declare _THIS_GUI_EDITOR; declare _THIS_TERMINAL_EDITOR; declare FELGO_QT_VER; declare _Anroid_SDK; declare _Anroid_NDK; # Set ANDROID_NDK_ROOT to you NDK location. For example, # /opt/android-ndk-r8e or /opt/android-ndk-r9. This can be done in a # login script. If ANDROID_NDK_ROOT is not specified, the script will # try to pick it up with the value of _ANDROID_NDK_ROOT below. If # ANDROID_NDK_ROOT is set, then the value is ignored. # android-ndk-r8e, android-ndk-r9, android-ndk-r10, ... declare _ANDROID_NDK; # Set _ANDROID_EABI to the EABI you want to use. You can find the # list in ${_ANDROID_NDK_ROOT}/toolchains. This value is always used. # _ANDROID_EABI="x86-4.6"; # _ANDROID_EABI="arm-linux-androideabi-4.6"; # _ANDROID_EABI="arm-linux-androideabi-4.8"; # _ANDROID_EABI="arm-linux-androideabi-4.9"; # aarch64-linux-android-4.9 declare _ANDROID_EABI; # Set _ANDROID_ARCH to the architecture you are building for. # This value is always used. # _ANDROID_ARCH=arch-x86 declare _ANDROID_ARCH; # https://developer.android.com/ndk/guides/stable_apis # Set _ANDROID_API to the API you want to use. You should set it # to one of: android-14, android-9, android-8, android-14, android-5 # android-4, or android-3. You can't set it to the latest (for # example, API-17) because the NDK does not supply the platform. At # Android 5.0, there will likely be another platform added (android-22?). # This value is always used:android-14, android-18, android-19, ... declare _ANDROID_API; # https://developer.android.com/studio/releases/platforms # Android 9 (API level 28) # declare -i _USE_FIPS; _USE_FIPS=0; # os_info() { _THIS_OS="$(to_lower_case "$(uname -s)")"; # OS: Linux, FreeBSD, MAC, Windows _THIS_OS="${_THIS_OS// /}"; # Remove all Spaces: Windows Nt becomes WindowsNt _THIS_ARCH=$(uname -m); # x86 or x86_64 _THIS_Ver=$(uname -r); # OS Version # if [ "$_THIS_OS" == "sunos" ]; then # Sun OS case $(uname -r) in 4*) _THIS_OS="sunbsd"; ;; 5*) _THIS_OS="solaris"; ;; *) _THIS_OS="solaris"; ;; esac _THIS_ARCH=$(uname -p); _THIS_DIST="$_THIS_OS"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [ "$_THIS_OS" == "HP-UX" ]; then # HP-UX _THIS_OS="hp"; _THIS_DIST="hp"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [ "$_THIS_OS" == "IRIX" ]; then # IRIX _THIS_OS="sgi"; _THIS_DIST="sgi"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [ "$_THIS_OS" == "OSF1" ]; then # OSF1 _THIS_OS="decosf"; _THIS_DIST="decosf"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [ "$_THIS_OS" == "IRIX" ]; then # IRIX _THIS_OS="sgi"; _THIS_DIST="sgi"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [ "$_THIS_OS" == "ULTRIX" ]; then # ULTRIX _THIS_OS="ultrix"; _THIS_DIST="ultrix"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [ "$_THIS_OS" == "aix" ]; then # AIX _THIS_Ver=$(oslevel -r); _THIS_DIST="aix"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [ "$_THIS_OS" == "freebsd" ]; then # Free BSD _THIS_DIST="freebsd"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [ "$_THIS_OS" == "windowsnt" ]; then # Windows NT _THIS_DIST="windowsnt"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [ "$_THIS_OS" == "darwin" ]; then # MAC _THIS_OS="mac"; _THIS_DIST="mac"; # type -P # which if [ -n "$(type -P sw_vers 2>/dev/null)" ]; then _THIS_PSUEDONAME=$(sw_vers -productName); _THIS_Ver=$(sw_vers -productVersion); _THIS_OS_Update="${_THIS_Ver##*.}"; _THIS_Ver="${_THIS_Ver%.*}"; if [[ "$_THIS_Ver" =~ 10.8 ]]; then _THIS_PSUEDONAME="mountain lion"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [[ "$_THIS_Ver" =~ 10.7 ]]; then _THIS_PSUEDONAME="lion"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [[ "$_THIS_Ver" =~ 10.6 ]]; then _THIS_PSUEDONAME="snow leopard" _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [[ "$_THIS_Ver" =~ 10.5 ]]; then _THIS_PSUEDONAME="leopard"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [[ "$_THIS_Ver" =~ 10.4 ]]; then _THIS_PSUEDONAME="tiger"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [[ "$_THIS_Ver" =~ 10.3 ]]; then _THIS_PSUEDONAME="panther"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [[ "$_THIS_Ver" =~ 10.2 ]]; then _THIS_PSUEDONAME="jaguar"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [[ "$_THIS_Ver" =~ 10.1 ]]; then _THIS_PSUEDONAME="puma"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [[ "$_THIS_Ver" =~ 10.0 ]]; then _THIS_PSUEDONAME="cheetah"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; else _THIS_PSUEDONAME="unknown"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; fi fi elif [ "$_THIS_OS" == "linux" ]; then # Linux if [ -f /etc/centos-release ] ; then # CentOS _THIS_DIST="redhat"; _THIS_PSUEDONAME="CentOS"; _THIS_Ver_Major=$(cut -d " " -f 3 /etc/redhat-release | cut -d '.' -f 1); _THIS_Ver_Minor=$(cut -d " " -f 3 /etc/redhat-release | cut -d '.' -f 2); _THIS_Ver="${_THIS_Ver_Major}.${_THIS_Ver_Minor}"; # $(cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*//); _THIS_OS_Update=$(uname -r); _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [ -f /etc/redhat-release ] ; then # Redhat _THIS_DIST="redhat"; _THIS_PSUEDONAME="Redhat"; _THIS_Ver_Major=$(cut -d " " -f 3 /etc/redhat-release | cut -d '.' -f 1); _THIS_Ver_Minor=$(cut -d " " -f 3 /etc/redhat-release | cut -d '.' -f 2); _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; # shellcheck disable=SC2002 _THIS_Ver=$(cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*//); elif [ -f /etc/fedora-release ] ; then # Fedora _THIS_DIST="fedora"; _THIS_PSUEDONAME="Fedora"; _THIS_Ver_Major=$(cut -d " " -f 3 /etc/fedora-release | cut -d '.' -f 1); _THIS_Ver_Minor=$(cut -d " " -f 3 /etc/fedora-release | cut -d '.' -f 2); _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; # shellcheck disable=SC2002 _THIS_Ver=$(cat /etc/fedora-release | sed s/.*release\ // | sed s/\ .*//); elif [ -f /etc/SuSE-release ] ; then # SuSE _THIS_DIST="suse"; _THIS_PSUEDONAME="SuSe"; _THIS_Ver_Major=$(cut -d " " -f 3 /etc/SuSE-release | cut -d '.' -f 1); _THIS_Ver_Minor=$(cut -d " " -f 3 /etc/SuSE-release | cut -d '.' -f 2); _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; # shellcheck disable=SC2002 _THIS_Ver=$(cat /etc/SuSE-release | tr "\n" " " | sed s/.*=\ //); elif [ -f /etc/mandrake-release ] ; then # Mandrake _THIS_DIST="mandrake"; _THIS_PSUEDONAME="Mandrake"; _THIS_Ver_Major=$(cut -d " " -f 3 /etc/mandrake-release | cut -d '.' -f 1); _THIS_Ver_Minor=$(cut -d " " -f 3 /etc/mandrake-release | cut -d '.' -f 2); _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; # shellcheck disable=SC2002 _THIS_Ver=$(cat /etc/mandrake-release | sed s/.*release\ // | sed s/\ .*//); elif [ -f /etc/debian_version ]; then # Debian, Ubuntu, LMDE _THIS_DIST="debian"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; if grep -Fxq "Debian" /etc/issue ; then _THIS_PSUEDONAME="Debian"; elif grep -Fxq "Ubuntu" /etc/issue ; then _THIS_PSUEDONAME="Ubuntu"; elif grep -Fxq "Linux Mint Debian Edition" /etc/issue ; then _THIS_PSUEDONAME="LMDE"; elif grep -Fq "LMDE" /etc/issue ; then _THIS_PSUEDONAME="LMDE"; else _THIS_PSUEDONAME="Debian"; fi # shellcheck disable=SC2002 _THIS_Ver="$(cat /etc/lsb-release | grep '^DISTRIB_RELEASE' | awk -F= '{print $2}')"; # elif [ -f /etc/arch-release ] ; then # ArchLinux They may drop this like Manjaro did if [[ "$_THIS_Ver" == *"MANJARO"* ]]; then _THIS_DIST="MANJARO"; else _THIS_DIST="ARCHLINUX"; fi _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _THIS_PSUEDONAME="Archlinux"; _THIS_OS_Package="pacman"; _THIS_Ver_Major="NA"; # FIXME read value, not that it matters its a rolling Distro _THIS_Ver_Minor="NA"; _THIS_OS_Update="NA"; _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [ -f /etc/os-release ]; then # Manjaro - ArchLinux _THIS_DIST="MANJARO"; _THIS_PSUEDONAME="ARCHLINUX"; _THIS_OS_Package="pacman"; _THIS_Ver_Major="NA"; # FIXME read value, not that it matters its a rolling Distro _THIS_Ver_Minor="NA"; _THIS_OS_Update="NA"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="/opt/android-ndk"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [ -f /etc/UnitedLinux-release ] ; then # United Linux _THIS_DIST="unitedlinux"; _THIS_PSUEDONAME="UnitedLinux"; # shellcheck disable=SC2002 _THIS_Ver="$(cat /etc/UnitedLinux-release | tr "\n" " " | sed s/VERSION.*//)"; # which witch to use: which lsb_release # type -p lsb_release _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif [[ -x $(type -p lsb_release 2>/dev/null) ]]; then # Debian #_THIS_PSUEDONAME=$( lsb_release -i -s); # LinuxMint _THIS_Ver=$( lsb_release -r -s ); # LMDE=1 if is_needle_in_haystack "." "$_THIS_Ver" 5; then # 5=Anywhere _THIS_Ver_Major=$(string_split "$_THIS_Ver" "." 1); # 1=First Half _THIS_Ver_Minor=$(string_split "$_THIS_Ver" "." 2); # 2=Second Half else _THIS_Ver_Major="$_THIS_Ver"; _THIS_Ver_Minor="0"; fi _THIS_DIST=$(lsb_release -c -s); # debian _THIS_OS_Package="rpm"; if [[ "$_THIS_PSUEDONAME" =~ Debian,Ubuntu ]]; then _THIS_OS_Package="deb"; elif [[ "SUSE LINUX" =~ $_THIS_PSUEDONAME ]]; then if lsb_release -d -s | grep -q openSUSE; then _THIS_PSUEDONAME="openSUSE"; fi elif [[ $_THIS_PSUEDONAME =~ Red.*Hat ]]; then _THIS_PSUEDONAME="Red Hat"; fi if grep -Fxq "Debian" /etc/issue ; then _THIS_PSUEDONAME="Debian"; _THIS_OS_Package="deb"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif grep -Fxq "Ubuntu" /etc/issue ; then _THIS_PSUEDONAME="Ubuntu"; _THIS_OS_Package="deb"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif grep -Fxq "Linux Mint Debian Edition" /etc/issue ; then _THIS_PSUEDONAME="LMDE"; _THIS_OS_Package="deb"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; elif grep -Fq "LMDE" /etc/issue ; then _THIS_PSUEDONAME="LMDE"; _THIS_OS_Package="deb"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r10e"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-10"; else _THIS_PSUEDONAME="Debian"; _THIS_OS_Package="deb"; _JAVA_JDK_HOME_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64" _JAVA_JRE_DEFAULT="/usr/lib/jvm/java-8-openjdk-amd64/jre" _THIS_GUI_EDITOR="$(type -p gedit)"; # GUI Editor _THIS_TERMINAL_EDITOR="$(type -p nano)"; # Terminal Editor used by Terminal FELGO_QT_VER="5.11.1"; # Latest Version Felgo requires _Anroid_SDK="${HOME}/Android/Sdk"; # Manual Install of Andriod SDK alternative /opt/andriod-sdk _Anroid_NDK="${HOME}/Android/Ndk/android-ndk-r10e"; # _ANDROID_NDK="android-ndk-r19b"; _ANDROID_EABI="aarch64-linux-android-4.9"; # Not installed do not use _ANDROID_ARCH="arch-x86"; _ANDROID_API="android-19"; fi # if grep -Fxq " fi # if [ -f fi # if [ "$_THIS_OS" == } # os_info; # ############################################################################### # cleanUp() { # printOutput "OS=$_THIS_OS" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "ARCH=$_THIS_ARCH" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "DIST=${_THIS_DIST}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "PSUEDONAME=$_THIS_PSUEDONAME" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Ver=$_THIS_Ver" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Ver Major=$_THIS_Ver_Major" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Ver Minor=$_THIS_Ver_Minor" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "OS Package Manager=$_THIS_OS_Package" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "OS Update or Patch #=$_THIS_OS_Update" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "" "${ColorBgTheme}" "${ColorFgTheme}" 1; # I am looking for a command line to extract this information. # so this is a hack that works. if [ -f Felgo-Qt-Info.txt ]; then printInColor "${ThisTabSpace}Securing Qt Info: Replacing ${HOME} with \${HOME} and ${UID} with \${UID}" "${ColorBgTheme}" "${ColorFgThemeInfo}" 1; # if ! sed -i "s|${HOME}|\${HOME}|g" Qt-Android-Env.txt; then printInColor "sed failed to replace ${HOME} with \${HOME} in Qt-Android-Env.txt" "${ColorBgTheme}" "${ColorFgThemeError}" 1; else if grep -q "${HOME}" Qt-Android-Env.txt; then printInColor "sed failed to replace ${HOME} with \${HOME} in Qt-Android-Env.txt" "${ColorBgTheme}" "${ColorFgThemeError}" 1; fi fi # if ! sed -i "s|${HOME}|\${HOME}|g" Felgo-Qt-Info.txt; then printInColor "sed failed to replace ${HOME} with \${HOME} in Felgo-Qt-Info.txt" "${ColorBgTheme}" "${ColorFgThemeError}" 1; fi # if ! sed -i "s|${HOME}|\${HOME}|g" export-source.txt; then printInColor "sed failed to replace ${HOME} with \${HOME} in export-source.txt" "${ColorBgTheme}" "${ColorFgThemeError}" 1; fi # */run/user/UID* if ! sed -i "s|\*/run/user/${UID}\*|\*/run/user/\${UID}\*|g" Felgo-Qt-Info.txt; then printInColor "sed failed to replace ${UID} with \${UID}" "${ColorBgTheme}" "${ColorFgThemeError}" 1; fi printInColor "" "${ColorBgTheme}" "${ColorFgTheme}" 1; else printInColor "With Qtcreator Felgo running: Under Help -> System Information: Copy to Clipboard, save in Script folder as Felgo-Qt-Info.txt" "${ColorBgTheme}" "${ColorFgTheme}" 1; printInColor "Running this script should replace /home/UserName with \${HOME} and UID with with \${UID}, so it is more Secure." "${ColorBgTheme}" "${ColorFgTheme}" 1; printInColor "Make sure it does before posting it, also delete all info you do not want to post, this just helps build the query not refine it." "${ColorBgTheme}" "${ColorFgTheme}" 1; fi } # cleanUp ############################################################################### cpuInfo() { printOutput "You must use sudo to run this command. Set _SUDO_REQUIRED=0 if you do not want this Information." "${ColorBgTheme}" "${ColorFgTheme}" 1; local CpuCode; CpuCode="$(sudo dmidecode -t4|awk '/Handle / {print $2}' |sed 's/,//')"; printOutput "Memory Slots: $(sudo dmidecode -t17 |awk '/Handle / {print $2}'|wc -l)" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Populated Slots: $(sudo dmidecode -t17 |awk '/Size:/'|awk '!/No/'|wc -l)" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Unpopulated slots: $(sudo dmidecode -t17 |awk '/Size:/'|awk '/No/'|wc -l)" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "CPU ID: ${CpuCode}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "# of CPU(s): $(sudo dmidecode -t4 |awk '/Populated/ {print $2}'|wc -l)" "${ColorBgTheme}" "${ColorFgTheme}" 1; # for memoryid in $(sudo dmidecode -t17|awk '/Handle / {print $2}'|tr -d ','); do populated="$(sudo dmidecode -t17|grep -A17 "Handle ${memoryid}"|awk '/Size:/ {print $2, $3}')"; if [[ "$populated" != "No Module" ]]; then printOutput "Locator: $(sudo dmidecode -t17|grep -A17 "Handle ${memoryid}"|awk '/Locator:/ {print $2}'|head -1)" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Size: $(sudo dmidecode -t17|grep -A17 "Handle ${memoryid}"|awk '/Size:/ {print $2, $3}')" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Speed: $(sudo dmidecode -t17|grep -A17 "Handle ${memoryid}"|awk '/Speed:/ {print $2, $3}')" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Type: $(sudo dmidecode -t17|grep -A17 "Handle ${memoryid}"|awk '/Type:/ {print $2, $3}')" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Serial Number: $(sudo dmidecode -t17|grep -A17 "Handle ${memoryid}"|awk '/Serial Number:/ {print $3}') $(sudo dmidecode -t17|grep -A17 "Handle ${memoryid}"|awk '/Part Number:/ {print $3}')" "${ColorBgTheme}" "${ColorFgTheme}" 1; fi done # for cpus in $(sudo dmidecode -t4|awk '/Handle / {print $2}'); do printOutput "Socket Designation: $(sudo dmidecode -t4|sed '/Flags/,/Version/d'|grep -A20 "Handle ${cpus}"|grep -m 1 "Socket Designation"|grep -o '.\{0,0\}:.\{0,18\}'|tr -d '\:| ')" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Family: $(sudo dmidecode -t4|sed '/Flags/,/Version/d'|grep -A20 "Handle ${cpus}"|grep -m 1 "Family"|grep -o '.\{0,0\}:.\{0,18\}'|tr -d '\:| ')" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Manufacturer: $(sudo dmidecode -t4|sed '/Flags/,/Version/d'|grep -A20 "Handle ${cpus}"|grep -m 1 "Manufacturer"|grep -o '.\{0,0\}:.\{0,18\}'|tr -d '\:| ')" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Current Speed: $(sudo dmidecode -t4|sed '/Flags/,/Version/d'|grep -A20 "Handle ${cpus}"|grep -m 1 "Current Speed"|grep -o '.\{0,0\}:.\{0,18\}'|tr -d '\:| ')" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Voltage: $(sudo dmidecode -t4|sed '/Flags/,/Version/d'|grep -A20 "Handle ${cpus}"|grep -m 1 "Voltage"|grep -o '.\{0,0\}:.\{0,18\}'|tr -d '\:| ')" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "Core Count: $(sudo dmidecode -t4|sed '/Flags/,/Version/d'|grep -A20 "Handle ${cpus}"|grep -m 1 "Core Count"|grep -o '.\{0,0\}:.\{0,18\}'|tr -d '\:| ')" "${ColorBgTheme}" "${ColorFgTheme}" 1; done printOutput "" "${ColorBgTheme}" "${ColorFgTheme}" 1; } ############################################################################### installFelgo() { if [ -z "${_THIS_DIST+x}" ]; then printOutput "No Distro found" "${ColorBgTheme}" "${ColorFgThemeError}" 1; return 1; fi _THIS_DIST="$( to_upper_case "${_THIS_DIST}")"; printOutput "" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "${ThisTabSpace}Starting Install sudo is required to install: ${_THIS_DIST}" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "" "${ColorBgTheme}" "${ColorFgTheme}" 1; if [ "${_THIS_DIST}" == "FEDORA" ]; then # printOutput "Fedora" "${ColorBgTheme}" "${ColorFgThemeInfo}" 1; sudo dnf -y groupinstall "Development Tools"; sudo dnf -y install gcc-c++ mesa-libGLU-devel gstreamer-plugins-base pulseaudio-libs-devel glib2-devel valgrind; sudo dnf -y install qt-devel qt-creator qt5-qttools-devel qt5-qttools qt5-qtquickcontrols qt5-qtdeclarative qt5-qtbase-devel sudo dnf -y install qt5-qtbase-gui qt5-qtdeclarative-devel qt5-qtmultimedia-devel qt5-examples qt5-connectivity qt5-location sudo dnf -y install qt5-networkauth qt5-quickcontrols qt5-quickcontrols2 qt5-sensors qt5-speech qt5-styleplugins qt5-svg sudo dnf -y install qt5-systems qt5-translations qt5-tools qt5-webengine qt5-webglplugin qt5-webkit qt5-websockets qt5-webview sudo dnf -y install qt5ct qt5-xmlpatterns sudo dnf -y install android-tools # # ******************************************************************* # elif [ "${_THIS_DIST}" == "CENTOS" ]; then # printOutput "CentOS" "${ColorBgTheme}" "${ColorFgThemeInfo}" 1; sudo yum groupinstall "Development Tools"; sudo yum install gcc-c++ mesa-libGLU-devel gstreamer-plugins-base pulseaudio-libs-devel glib2-devel valgrind; sudo yum install qt-devel qt-creator qt5-qttools-devel qt5-qttools qt5-qtquickcontrols qt5-qtdeclarative qt5-qtbase-devel sudo yum install qt5-qtbase-gui qt5-qtdeclarative-devel qt5-qtmultimedia-devel qt5-examples qt5-connectivity qt5-location sudo yum install qt5-networkauth qt5-quickcontrols qt5-quickcontrols2 qt5-sensors qt5-speech qt5-styleplugins qt5-svg sudo yum install qt5-systems qt5-translations qt5-tools qt5-webengine qt5-webglplugin qt5-webkit qt5-websockets qt5-webview sudo yum install qt5ct qt5-xmlpatterns # # ******************************************************************* # elif [ "${_THIS_DIST}" == "UBUNTU" ]; then # printOutput "Ubuntu" "${ColorBgTheme}" "${ColorFgThemeInfo}" 1; sudo snap install android-studio --classic sudo apt-get install ubuntu-make umake android # or # sudo apt-add-repository ppa:paolorotolo/android-studio # sudo apt-get update # sudo apt-get install android-studio # # ******************************************************************* # elif [ "${_THIS_DIST}" == "OPENSUSE" ]; then # printOutput "OpenSUSE" "${ColorBgTheme}" "${ColorFgThemeInfo}" 1; sudo zypper install android-tools # # ******************************************************************* # elif [ "${_THIS_DIST}" == "DEBIAN" ]; then # # ***************************** DEBIAN ****************************** # # # FIXME are Ubuntu and Debain Repos have the Same file names? besides apt vs apt-get printOutput "Debian" "${ColorBgTheme}" "${ColorFgThemeInfo}" 1; local -i doThisInstall; doThisInstall=1; if [ "${doThisInstall}" -eq 1 ]; then sudo apt-get -y update; sudo apt-get -y upgrade; sudo apt-get -y dist-upgrade; sudo apt-get -y check; sudo apt-get install -f; sudo dpkg --configure -a; sudo apt-get -y install g++ gbd build-essential valgrind; sudo apt-get -y install openjdk-8-jdk openjdk-8-*; sudo apt-get -y install libxrender-dev libx11-xcb-dev libpulse-dev libglib2.0-dev libsmali-java libscout; sudo apt-get -y install sqlite3; sudo apt-get -y install -t stretch-backports qt-sdk; sudo apt-get -y install -t stretch-backports openssl; # =libssl1.0.0 -V ; not a good idea sudo apt-get -y install -t stretch-backports mesa-common-dev libdrm-dev libgl1-mesa-dev libgl1-mesa-glx libglu1-mesa-dev; sudo apt-get -y install androguard apktool diffoscope dummydroid enjarify gplaycli repo # Recommended and Suggested sudo apt-get -y install python-pyside.qtcore python-pyside.qtgui junit-doc libcommons-io-java-doc sudo apt-get -y install libcommons-lang3-java-doc libavalon-framework-java libcommons-logging-java-doc sudo apt-get -y install libexcalibur-logkit-java liblog4j1.2-java python-cryptography-doc python-cryptography-vectors sudo apt-get -y install python-enum34-doc python-networkx-doc python-openssl-doc python-pexpect-doc sudo apt-get -y install ttf-bitstream-vera python-setuptools-doc python-scipy-doc python-dev python-imaging sudo apt-get -y install binutils-multiarch caca-utils fontforge-extras fp-utils ghc jsbeautifier llvm mono-utils pdftk sudo apt-get -y install rpm2cpio sng python3-argcomplete python3-guestfs python3-progressbar python3-rpm python3-tlsh sudo apt-get -y install fdroidserver python-matplotlib python-pygraphviz python-pydot python-scipy python-yaml sudo apt-get -y install fonts-lato libjs-modernizr sphinx-rtd-theme-common python3-openssl javascript-common # # locate libssl # /usr/lib/x86_64-linux-gnu/libssl.so.1.0.2 # /usr/lib/x86_64-linux-gnu/libssl.so.1.1 if [ ! -e "/usr/lib/x86_64-linux-gnu/libssl.so.1.0.0" ]; then sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.2 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 fi # if [ ! -e "/usr/lib/x86_64-linux-gnu/libssl.so.1.0.1" ]; then sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.2 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.1 sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.1 fi # # qt4 is required for qtcreator # Use Android Studio instead # sudo apt-get -y install android-sdk android-sdk-build-tools android-sdk-build-tools-common android-sdk-common android-sdk-platform-23 android-sdk-platform-tools android-sdk-platform-tools-common # use Qt Online Installer instead #sudo apt-get -y install qt5-qmake qtbase5-dev qttools5-dev-tools qtdeclarative5-dev qtmultimedia5-dev qtdeclarative5-dev #sudo apt-get -y install qml qmlscene qt4-demos qt4-doc qt4-doc-html qt5-doc qt5-doc-html qtcreator #sudo apt-get -y install qtquickcontrols5-doc qtquickcontrols5-doc-html qt4-default qt4-qmlviewer #sudo apt-get -y install qml-module-qtquick-controls qml-module-qtquick-dialogs qml-module-qtmultimedia #sudo apt-get -y install qttools5-dev-tools qttools5-dev fi # if [ ! -d "${HOME}/Qt" ]; then if [ ! -f "qt-unified-linux-x64-3.0.6-online.run" ]; then wget http://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run; fi ./qt-unified-linux-x64-3.0.6-online.run; fi # FIXME what version? sudo apt-get -y install sun-java6-jre sun-java6-plugin # # # FIXME # https://developer.android.com/studio/ scrape page for dac-studio-version #
3.3.2 for Linux 64-bit (1014 MB)
if [ ! -d "${_Anroid_SDK}" ]; then if [ ! -f "android-studio-ide-182.5314842-linux.zip" ]; then wget https://developer.android.com/studio/android-studio-ide-182.5314842-linux.zip; fi unzip android-studio-ide-182.5314842-linux.zip; if ! cd android-studio/bin; then printOutput "cd failed: android-studio/bin" "${ColorBgTheme}" "${ColorFgThemeError}" 1; fi ./studio.sh; fi # if ! cd "${TheFullScriptPath}"; then printOutput "cd failed: ${TheFullScriptPath}" "${ColorBgTheme}" "${ColorFgThemeError}" 1; fi # https://felgo.com/doc/qt/androidgs/ # JDK 8 and an Android NDK version 10-17 (NDK 19 for example is not compatible atm) # https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html # # jdk-8u201-linux-x64.tar.gz # /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java CurrentJava="$(update-alternatives --list java)"; # FIXME test for all version that work, also this is distro specific # java-8-openjdk Arch Linux Manjaro # java-8-openjdk-amd64 Debian if [[ "${CurrentJava}" != *"java-8-openjdk"* ]] || [[ "${CurrentJava}" != *"java-8-openjdk-amd64"* ]]; then if [ ! -d "${_JAVA_HOME}" ]; then # FIXME Should I put this in HOME? mkdir -p "${_JAVA_HOME}"; # /opt/java-jdk8/ # if [ ! -f "jdk-8u201-linux-x64.tar.gz" ]; then wget https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz; fi # tar -C /opt/java-jdk8 -zxf jdk-8u121-linux-x64.tar.gz; # update-alternatives --install /usr/bin/java java "${_JAVA_HOME}"jdk1.8.0_121/bin/java 1; update-alternatives: using "${_JAVA_HOME}jdk1.8.0_121/bin/java to provide /usr/bin/java (java) in auto mode"; # update-alternatives --install /usr/bin/javac javac "${_JAVA_HOME}"jdk1.8.0_121/bin/javac 1; update-alternatives: using "${_JAVA_HOME}jdk1.8.0_121/bin/javac to provide /usr/bin/javac (javac) in auto mode"; java -version fi # if [ ! -d "${_JAVA_HOME}" ]; then fi # if [[ "${CurrentJava}" != *"java-8-openjdk"* ]]; then # # https://developer.android.com/ndk/downloads/older_releases.html # # if [ ! -d "${_Anroid_NDK}" ]; then if [ ! -f "android-ndk-r10e-linux-x86_64.zip" ]; then wget https://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip; fi printOutput "Requires sudo to mkdir: ${_Anroid_NDK}" "${ColorBgTheme}" "${ColorFgThemeWarn}" 1; sudo mkdir -p "${_Anroid_NDK}"; sudo chown "${USER}":"${USER}" "${_Anroid_NDK}"; sudo chmod 755 "${_Anroid_NDK}"; unzip android-ndk-r10e-linux-x86_64.zip -d "${_Anroid_NDK}"; # not sure I need to do this since unzip is running from the user, # Not for Multiple User Env, unless you use Group only FIXME # maybe set the user to root, and a dev group to # sudo chown -R "root":"dev" "${_Anroid_NDK}"; # Single User installation mode sudo chown -R "${USER}":"${USER}" "${_Anroid_NDK}"; fi # if [ ! -d "${HOME}/Felgo" ]; then printInColor "Installing Felgo" "${ColorBgTheme}" "${ColorFgThemeInfo}" 1; if [ ! -f "FelgoInstaller-x64-online.tar.gz" ]; then wget https://felgo.com/download/linux-x64/FelgoInstaller-x64-online.tar.gz; fi if [ ! -f "FelgoInstaller-linux_x64-online.run" ]; then tar -zxvf FelgoInstaller-x64-online.tar.gz; fi if ! ./FelgoInstaller-linux_x64-online.run; then printOutput "Felgo Installer Failed: ${?}" "${ColorBgTheme}" "${ColorFgThemeError}" 1; fi fi # # ******************************************************************* # elif [ "${_THIS_DIST}" == "ARCHLINUX" ] || [ "${_THIS_DIST}" == "MANJARO" ]; then # printOutput "Arch Linux or Manjaro" "${ColorBgTheme}" "${ColorFgThemeInfo}" 1; sudo pacman --noconfirm --needed -Suyya; sudo pacman --noconfirm --needed -S base-devel; sudo pacman --noconfirm --needed -S gcc glu gst-plugins-base pulseaudio glib2 valgrind android-tools lib32-readline sudo pacman --noconfirm --needed -S lib32-gcc-libs git gnupg flex bison gperf sdl wxgtk2 squashfs-tools curl ncurses zlib pngcrush sudo pacman --noconfirm --needed -S schedtool perl-switch zip unzip libxslt python2-virtualenv bc rsync lib32-zlib lib32-ncurses sudo pacman --noconfirm --needed -S qt5-base qtcreator qt5-declarative qt5-doc qt5-webkit qt5-imageformats qt5-3d qt5-canvas3d lzop sudo pacman --noconfirm --needed -S qt5-connectivity qt5-examples qt5-location qt5-multimedia qt5-networkauth qt5-quickcontrols sudo pacman --noconfirm --needed -S qt5-quickcontrols2 qt5-sensors qt5-speech qt5-styleplugins qt5-svg qt5-systems qt5-translations sudo pacman --noconfirm --needed -S qt5-tools qt5-webengine qt5-webglplugin qt5-webkit qt5-websockets qt5-webview qt5ct qt5-xmlpatterns sudo pacman --noconfirm --needed -S imagemagick xml2 #sudo pacman --noconfirm --needed -S # yaourt --noconfirm --needed -S android-ndk; yaourt --noconfirm --needed -S android-studio; # Problem with keys if ! yaourt --noconfirm --needed -S android-platform; then yaourt --noconfirm --needed -S android-platform --m-arg --skipchecksums; fi # yaourt --noconfirm --needed -S android-sdk yaourt --noconfirm --needed -S android-sdk-platform-tools yaourt --noconfirm --needed -S android-sdk-build-tools yaourt --noconfirm --needed -S android-support android-support-repository #yaourt --noconfirm --needed -S android-studio-launcher yaourt --noconfirm --needed -S etcher etcher-cli # Needs key, but seem to have a problem with the one I need, skipchecksum on error sudo gpg --recv-keys 702353E0F7E48EDB # Problem with keys if ! yaourt --noconfirm --needed -S aosp-devel; then yaourt --noconfirm --needed --m-arg "--skippgpcheck" -S aosp-devel; fi # yaourt --noconfirm --needed -S lib32-ncurses5-compat-libs # Problem with keys if ! yaourt --noconfirm --needed -S ncurses5-compat-libs; then yaourt --noconfirm --needed --m-arg "--skippgpcheck" -S ncurses5-compat-libs; fi # yaourt --noconfirm --needed -S lineageos-devel # these do not compile any longer # yaourt --noconfirm --needed -S android-armv7a-eabi-qt5 # yaourt --noconfirm --needed -S android-x86-qt5 # yaourt --noconfirm --needed -S android-x86-64-qt5 # Felgo Repos # https://sdk.v-play.net/2/linux # https://sdk.v-play.net/qt/linux_x64 # yaourt -S android-aarch64-openssl # yaourt -S android-armv7a-eabi-openssl # fi # if [ "${_THIS_DIST}" == "?" ] printOutput "" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "${ThisTabSpace}Finished Install" "${ColorBgTheme}" "${ColorFgTheme}" 1; printOutput "" "${ColorBgTheme}" "${ColorFgTheme}" 1; } # END installFelgo ############################################################################### # if [ "${_InstallFelgo}" -eq 1 ]; then installFelgo; fi # if [ "${_SUDO_REQUIRED}" -eq 1 ]; then cpuInfo; fi # runTest; # cleanUp; ############################################################################### # # # ################################# END OF FILE ###############################