Files
@ 6cb31802ff55
Branch filter:
Location: ohnobinki_overlay/dev-java/gcj/files/rebuild-classmap-db - annotation
6cb31802ff55
2.8 KiB
text/plain
imported dev-libs/confuse from Portage, disabled building of examples to support crosscompiling to mingw32
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 5a1af5749a73 | #!/bin/sh
# Author: Hanno Meyer-Thurow
# Revision: 4
#
# Use: Rebuild your classmap database.
# defaults
JAVA_PKG_DB_TOOL="${JAVA_PKG_DB_TOOL:="$(gcj-config --dbtool)"}"
JAVA_PKG_CLASSMAP="${JAVA_PKG_CLASSMAP:="/usr/share/java/classmap.gcjdb"}"
# functions
die() {
echo "ERROR: ${@}"
exit 1
}
show_help() {
echo "To rebuild your database run:"
echo " '${0} <database file> [ <packages> | <path> ]'"
echo
echo "To print only what would be done run:"
echo " '${0} printonly [ <packages> | <path> ]'"
echo
echo "To recreate the default database with all packages being checked execute:"
echo " '${0} ${JAVA_PKG_CLASSMAP}'"
echo
echo "---------------"
echo " database file: /path/to/classmap.gcjdb"
echo " packages: comma-separated list of packages from 'java-config -l'"
echo " path: fetch Jar files recursively from path"
}
get_classpath() {
local classpath
if [ -d "${@}" ] ; then
local jar
for jar in $(find ${@} -type f -name '*.jar') ; do
[[ ( -f "${jar}" ) && ( ".jar" == "${jar: -4:4}" ) ]] \
&& classpath="${jar}:${classpath}"
done
classpath=${classpath%:}
else
classpath="$(java-config --classpath=${@} 2>&1)"
fi
if [[ "${classpath}" =~ "ERROR" ]] ; then
die "A package missing/mispelled?!"
fi
echo "${classpath}"
}
check_jar() {
local ret_val=0
if [ -L "${1}" ] || [ ".jar" != "${1: -4:4}" ] ; then
echo -e "\033[01;31mno jarfile:\033[0m ${1}"
ret_val=1
elif [ ! -f "${2}" ] ; then
echo -e "\033[01;31mnot found:\033[0m ${2}"
ret_val=1
fi
return ${ret_val}
}
add_lib() {
echo "register: ${2}"
if [ "${DB_FILE}" != "printonly" ] ; then
${JAVA_PKG_DB_TOOL} -a ${DB_FILE} ${1} ${2} \
|| die "failed to register jar file"
fi
}
reg_pkgs() {
local pkg pkgs
for pkg in $(java-config -l | cut -d] -f1 | cut -c2-) ; do
pkgs="${pkg},${pkgs}"
done
pkgs="${pkgs//vm,active,the,by,Provided,}"
reg_classpath "${pkgs%,}"
}
reg_classpath() {
echo "check classpath ..."
local classpath="$(get_classpath "${1}")"
echo "${classpath}"
echo
local jar to
for jar in ${classpath//:/ } ; do
to="$(dirname ${jar})/lib$(basename ${jar}).so"
check_jar "${jar}" "${to}" && add_lib "${jar}" "${to}"
done
}
# errors
if [[ ( ${#} -lt 1 ) || ( ${#} -ge 3 ) ]] ; then
show_help
exit 1
fi
if [ ! -x "$(which ${JAVA_PKG_DB_TOOL})" ] ; then
die "Java database tool unusable!"
fi
DB_FILE="${1}"
if [ "${DB_FILE}" != "printonly" ] ; then
if [ ! -d "$(dirname ${DB_FILE})" ] ; then
die "Path to database file missing?!"
fi
if [ ".gcjdb" != "${DB_FILE: -6:6}" ] ; then
die "Given file has unknown format?!"
fi
fi
# start
echo "(re-)create classmap database (${DB_FILE})"
echo
if [ "${DB_FILE}" != "printonly" ] ; then
rm -f ${DB_FILE}
${JAVA_PKG_DB_TOOL} -n ${DB_FILE}
fi
if [ -n "${2}" ] ; then
reg_classpath "${2}"
else
reg_pkgs
fi
echo "... done!"
exit 0
|