diff --git a/dev-java/gcj/files/gcj-config b/dev-java/gcj/files/gcj-config new file mode 100755 --- /dev/null +++ b/dev-java/gcj/files/gcj-config @@ -0,0 +1,87 @@ +#!/bin/sh + +if [[ ! -f /etc/env.d/99gcj ]] ; then + echo "Setting correct LDPATH ..." + rm -rf /etc/env.d/99gcj + echo "LDPATH=\"/usr/lib/gcj/lib\"" > /etc/env.d/99gcj + /usr/sbin/env-update || echo "ERROR: env-update failed?!" +fi + +LIBDIR="lib" +INSTPATH="/usr/${LIBDIR}" +CONFFILE="/usr/share/gcj-config/conf" +if [[ ! -f "${CONFFILE}" ]] ; then + echo "Configuration file missing!" + echo "Generating dummy configuration file." + echo + echo "You have to set your prefered GCJ now!" + echo + echo "Run:" + echo "# gcj-config -l" + echo "# gcj-config gcj-" + + mkdir -p $(dirname ${CONFFILE}) + echo "current=\"${INSTPATH}/gcj-4.1.0/bin\"" > ${CONFFILE} + + exit 1 +fi + +GCJ="$(sed -n -r -e "s:^current=.*/(gcj-.*)/.*:\1:p" ${CONFFILE})" +if [[ ${#} -eq 0 ]] ; then + echo "Version set: ${GCJ}" + echo + echo " List of GCJ installations: gcj-config -l" + echo " Set GCJ version: gcj-config gcj-VERSION" +else + case ${1} in + --gcj) +if [[ ${CBUILD} != ${CHOST} ]]; then + echo "$(sed -n -r -e "s:current=\"(.*)\":\1:p" ${CONFFILE})/${CHOST}-gcj" +else + echo "$(sed -n -r -e "s:current=\"(.*)\":\1:p" ${CONFFILE})/gcj" +fi +;; + --dbtool) +echo "$(sed -n -r -e "s:current=\"(.*)\":\1:p" ${CONFFILE})/gcj-dbtool" +;; + --gij) +echo "$(sed -n -r -e "s:current=\"(.*)\":\1:p" ${CONFFILE})/gij" +;; + --gjar) +echo "$(sed -n -r -e "s:current=\"(.*)\":\1:p" ${CONFFILE})/gjar" +;; + -l) +for v in $(ls -1 ${INSTPATH} | grep gcj-); do + [[ ${v} == ${GCJ} ]] && v="${v} *" + echo "${v}" +done +;; + --version) +echo "$(sed -n -r -e "s:current=\".*gcj-(.*)/.*\":\1:p" ${CONFFILE})" +;; + gcj-*) +if [[ ${1} == ${GCJ} ]] ; then + echo "Already set!" +else + found="no" + for v in $(ls -1 ${INSTPATH} | grep gcj-); do + [[ ${v} == ${1} ]] && found="yes" + done + + if [[ ${found} == "no" ]] ; then + echo "${1} not found!" + else + sed -e "s:${GCJ}:${1}:g" -i ${CONFFILE} + rm -f /usr/lib/gcj + ln -s ${INSTPATH}/${1} /usr/lib/gcj + fi +fi +;; + *) +echo "Something wrong you do!" +exit 1 +;; + esac +fi + +exit 0