This is the mail archive of the
insight@sources.redhat.com
mailing list for the Insight project.
[RFC] Plugin tweaks
- From: Keith Seitz <keiths at redhat dot com>
- To: Insight Maling List <insight at sources dot redhat dot com>
- Date: Tue, 26 Feb 2002 08:45:03 -0800 (PST)
- Subject: [RFC] Plugin tweaks
Hi,
A long, long time ago I promised some plugin changes which would:
. Configure/build plugins on different hosts
. install the plugins properly (into ${exec_prefix}/lib)
Well, I would like some comments (good or bad) about this. I consider
myself to be done with this, but I agree there is room for improvement.
I am only enabling plugins for cygwin, linux, and solaris -- the three
hosts I've tested this on.
Here's what I've changed:
New/changed files (generated files omitted):
gdbtk/configure.in
gdbtk/Makefile.am
gdbtk/plugins/configure.in
gdbtk/plugins/Makefile.am
gdbtk/plugins/rhabout/Makefile.in (replaces current)
gdb/configure.in
This also brings us one step closer to moving all insight configury into
its own directory. The gdbtk/plugins folder was moved from
gdbtk/library/plugins.
The general idea is that plugins should be easy to make. With that in
mind, the gdbtk/plugin/PLUGIN/Makefile.in's should be stupidly easy to
write, and they are.
Here are the new files and the diffs for gdb/configure.in. I've also
included gdbtk/plugins/rhabout/Makefile.in so that you can see an example
of how the plugin's Makefiles are written.
Fire away!
Keith
PS. Yes, you'll note a new "intel-pentium" plugin...
Index: configure.in
===================================================================
RCS file: /cvs/src/src/gdb/configure.in,v
retrieving revision 1.82
diff -u -p -r1.82 configure.in
--- configure.in 2002/02/24 04:31:13 1.82
+++ configure.in 2002/02/26 04:38:12
@@ -51,6 +51,7 @@ CONFIG_CLEAN=
CONFIG_INSTALL=
CONFIG_UNINSTALL=
+SUBDIRS="doc testsuite nlm"
configdirs="doc testsuite"
AC_ARG_ENABLE(multi-ice,
@@ -1067,6 +1068,9 @@ if test "${enable_gdbtk}" = "yes"; then
fi
fi
fi
+
+ SUBDIRS="${SUBDIRS} gdbtk"
+ configdirs="${configdirs} gdbtk"
fi
AC_SUBST(X_CFLAGS)
@@ -1273,7 +1277,6 @@ case "${GDB_MULTI_ARCH}" in
*) AC_MSG_ERROR("GDB: Unknown GDB_MULTI_ARCH value ${GDB_MULTI_ARCH}");;
esac
-SUBDIRS="doc testsuite nlm"
if test "${enable_multi_ice}" = "yes"; then
SUBDIRS="${SUBDIRS} multi-ice"
fi
@@ -1338,6 +1341,7 @@ AC_LINK_FILES($files, $links)
dnl Check for exe extension set on certain hosts (e.g. Win32)
AC_EXEEXT
+AC_OBJEXT
AC_CONFIG_SUBDIRS($configdirs)
AC_OUTPUT(Makefile .gdbinit:gdbinit.in,
Index: gdbtk/Makefile.am:
============================================================
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS = cygnus
SUBDIRS = plugins
gdbtk/configure.in:
AC_INIT(generic/gdbtk.h)
AC_CONFIG_AUX_DIR(../..)
AM_INIT_AUTOMAKE(insight, 1.0)
AM_MAINTAINER_MODE
AC_CANONICAL_HOST
AC_PROG_MAKE_SET
AC_PROG_CC
AC_OBJEXT
AC_EXEEXT
AC_CONFIG_SUBDIRS(plugins)
AC_OUTPUT(Makefile)
Index: gdbtk/plugins/Makefile.am:
============================================================
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS = cygnus
SUBDIRS = @make_subdirs@
Index: gdbtk/plugins/configure.in:
============================================================
AC_INIT(Make-rules)
AC_CONFIG_AUX_DIR(../../..)
AM_INIT_AUTOMAKE(insight, 1.0)
AM_MAINTAINER_MODE
AC_PROG_MAKE_SET
AC_CANONICAL_HOST
AC_PROG_CC
AC_OBJEXT
AC_EXEEXT
# Find Tcl, Tk, etc
CYG_AC_PATH_TCLCONFIG
CYG_AC_LOAD_TCLCONFIG
CYG_AC_PATH_TKCONFIG
CYG_AC_LOAD_TKCONFIG
CYG_AC_PATH_TCLH
CYG_AC_PATH_TKH
AC_SUBST(TCL_SHLIB_SUFFIX)
# Make sure TCL_SHLIB_SUFFIX is set
if test x$TCL_SHLIB_SUFFIX = x ; then
case "${host}" in
*cygwin*) TCL_SHLIB_SUFFIX=".dll" ;;
*) TCL_SHILB_SUFFIX=".so" ;;
esac
fi
# Since we're not using autoconf > 2.1x, we cannot use AC_CONFIG_FILES.
make_subdirs=""
# See if -mwin32 works for cygwin
case "${host}" in
*cygwin*)
ocflags=${CFLAGS}
CFLAGS="${CFLAGS} -mwin32"
AC_TRY_COMPILE(,,,CFLAGS="${ocflags}")
;;
*) ;;
esac
# note toplevel plugin build directory
plugin_builddir=`pwd`
#
# Plugins
#
# Supported hosts
# Only supported/tested on linux, solaris, cygwin
supported=yes
case "${host}" in
*cygwin*) ;;
*solaris*) ;;
*linux*) ;;
*) supported=no ;;
esac
if test x${supported} = xyes; then
plugins="rhabout"
case "${target}" in
*cygwin*) ;;
*linux*) ;;
*i?86*)
plugins="${plugins} intel-pentium"
;;
esac
for i in $plugins ; do
make_subdirs="${make_subdirs} $i"
done
fi
AC_SUBST(make_subdirs)
AC_SUBST(plugin_builddir)
AC_OUTPUT(Makefile rhabout/Makefile:rhabout/Makefile.in:Make-rules rhabout/rhabout.tcl intel-pentium/Makefile:intel-pentium/Makefile.in:Make-rules intel-pentium/intel-pentium.tcl)
Index: gdbtk/plugins/rhabout/Makefile.in:
============================================================
# Plugin definitions
PLUGIN = rhabout
PLUGIN_OBJS = rhabout.$(OBJEXT)
PLUGIN_IMAGE_BASE = 0x65000000
PLUGIN_INSTALL_SRCDIR = rhabout.itcl
# Comment out this to install the example plugin
PLUGIN_INSTALL_TARGET = nothing
nothing: