summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2011-09-06 07:45:11 +0200
committerDavid Tardon <dtardon@redhat.com>2011-09-06 08:01:27 +0200
commitd7880811629cb08e7828482d6044d77ac40aef0a (patch)
treead20b0927879ce48fc0433a182ff4d5647534c79 /solenv
parent69bf43444e0cdf00ff909feb8138188b28394139 (diff)
make pretty printers available during build already
Diffstat (limited to 'solenv')
-rwxr-xr-xsolenv/bin/install-gdb-printers56
-rw-r--r--solenv/gdb/makefile.mk41
-rw-r--r--solenv/prj/build.lst1
-rwxr-xr-xsolenv/prj/d.lst2
4 files changed, 87 insertions, 13 deletions
diff --git a/solenv/bin/install-gdb-printers b/solenv/bin/install-gdb-printers
index 10f7add57dec..05621bd24193 100755
--- a/solenv/bin/install-gdb-printers
+++ b/solenv/bin/install-gdb-printers
@@ -1,6 +1,7 @@
#!/usr/bin/env bash
GDBDIR="${SOLARENV}/gdb"
+SOLVERLIBDIR="${SOLARVER}/${INPATH}/lib"
die() {
echo "$1" >&2
@@ -8,41 +9,69 @@ die() {
}
make_autoload() {
- local dir="${DESTDIR}${autoloaddir}/$2"
- local gdbfile="${dir}/$3-gdb.py"
+ local dir="${DESTDIR}${autoloaddir}"
+ ${flat} || dir="${dir}/$2"
+ local lib="${dir}/$3"
+
+ if ! ${flat}; then
+ lib="$(readlink -f "${DESTDIR}${installdir}/$2/$3")"
+ dir="${lib%/*}"
+ fi
if ${create}; then
mkdir -p "${dir}" || die "cannot create dir '${dir}'"
- elif ${follow}; then
- gdbfile="$(readlink -f "${dir}/$3")-gdb.py"
fi
- sed -e "s!%PYTHONDIR%!${pythondir}!" -e "s!%MODULE%!libreoffice.$1!" \
- "${GDBDIR}/autoload.template" > "${gdbfile}"
+
+ if ${link}; then
+ if [[ ! -f ${lib}-gdb.py ]]; then
+ local gdbname="${lib##*/}-gdb.py"
+ ln -s "${SOLVERLIBDIR}/${gdbname}" "${dir}/${gdbname}"
+ fi
+ else
+ sed -e "s!%PYTHONDIR%!${pythondir}!" -e "s!%MODULE%!libreoffice.$1!" \
+ "${GDBDIR}/autoload.template" > "${lib}-gdb.py"
+ fi
}
# dir where the autoloaders will be placed
autoloaddir=
+# The installation dir. If only one of these is set, the other is set to
+# the same value.
+installdir=
# dir where the pretty printers will be placed
pythondir="${GDBDIR}"
# Create autoload dir if it does not exist. This only makes sense when
# installing into system gdb dir, so $autoloaddir must be absolute path.
create=false
-# Follow links when looking up the path for the autoload file. This only
-# makes sense for dev-install.
-follow=false
+# Create symlinks to existing autoloaders in solver. This only makes
+# sense for dev-install.
+link=false
+# This option is only here to enable using the script during build of
+# solenv/gdb . We must (or, better, want to :) avoid using the
+# installation subpaths (like basis-link), because all libs in solver
+# are in the same dir.
+flat=false
-# b defghijklmno qrstuvwxyzABCDEFGHIJK MNOPQRSTUVWXYZ0123456789
-while getopts :a:cp:L opt; do
+# b de gh jklmno qrstuvwxyzABCDEFGHIJK MNOPQRSTUVWXYZ0123456789
+while getopts :a:cfi:p:L opt; do
case ${opt} in
a) autoloaddir="${OPTARG}" ;;
c) create=true ;;
+ f) flat=true ;;
+ i) installdir="${OPTARG}" ;;
p) pythondir="${OPTARG}" ;;
- L) follow=true ;;
+ L) link=true ;;
*) die "unknown option ${OPTARG}" ;;
esac
done
-${create} && ${follow} && die "-c and -L cannot be used together"
+if [[ -n ${autoloaddir} && -z ${installdir} ]]; then
+ installdir="${autoloaddir}"
+elif [[ -z ${autoloaddir} && -n ${installdir} ]]; then
+ autoloaddir="${installdir}"
+fi
+
+${create} && ${link} && die "-c and -L cannot be used together"
if [[ -n ${DESTDIR} ]]; then
[[ ${autoloaddir:0:1} = / ]] || die 'the arg to -a must be an absolute path'
[[ ${pythondir:0:1} = / ]] || die 'the arg to -p must be an absolute path'
@@ -52,6 +81,7 @@ if ${create}; then
else
[[ ! -d ${DESTDIR}${autoloaddir} ]] && die "directory '${DESTDIR}${autoloaddir}' does not exist"
fi
+[[ ! -d ${DESTDIR}${installdir} ]] && die "directory '${DESTDIR}${installdir}' does not exist"
[[ ! -d ${GDBDIR} ]] && die "directory '${GDBDIR}' does not exist"
if [[ ${DESTDIR}${pythondir} != ${GDBDIR} ]]; then
diff --git a/solenv/gdb/makefile.mk b/solenv/gdb/makefile.mk
new file mode 100644
index 000000000000..da1afb7f269c
--- /dev/null
+++ b/solenv/gdb/makefile.mk
@@ -0,0 +1,41 @@
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Initial Developer of the Original Code is
+# David Tardon, Red Hat Inc. <dtardon@redhat.com>
+# Portions created by the Initial Developer are Copyright (C) 2010 the
+# Initial Developer. All Rights Reserved.
+#
+# Major Contributor(s):
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+PRJ=..
+PRJNAME=gdb
+TARGET=gdb
+
+.INCLUDE : settings.mk
+.INCLUDE : target.mk
+.INCLUDE : versionlist.mk
+
+ALLTAR : $(MISC)/autoloaders.flag
+
+$(MISC)/autoloaders.flag : autoload.template
+ install-gdb-printers -a $(MISC) -f
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/solenv/prj/build.lst b/solenv/prj/build.lst
index d7a7f36b19fe..eb46b06a0419 100644
--- a/solenv/prj/build.lst
+++ b/solenv/prj/build.lst
@@ -1,3 +1,4 @@
sn solenv : NULL
sn solenv usr1 - all sn_mkout NULL
sn solenv nmake - all sn_init NULL
+sn solenv\gdb nmake - all sn_gdb NULL
diff --git a/solenv/prj/d.lst b/solenv/prj/d.lst
index 9972651fb090..1773c48440e9 100755
--- a/solenv/prj/d.lst
+++ b/solenv/prj/d.lst
@@ -1,4 +1,6 @@
mkdir: %_DEST%\bin
mkdir: %_DEST%\inc
+mkdir: %_DEST%\lib
..\inc\version.lst %_DEST%\bin\version.lst
..\%__SRC%\inc\versionlist.hrc %_DEST%\inc\versionlist.hrc
+..\%__SRC%\misc\*-gdb.py %_DEST%\lib\*-gdb.py