summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-12-08 11:07:46 -0800
committerKeith Packard <keithp@keithp.com>2013-12-08 11:07:46 -0800
commitebb36d56c732ffe9cdb8d2ea53d00e1d4ece8f97 (patch)
tree46b321232b9b56cb77d538c49293073d20bdd241
parent5fd0dc6f69e7614ba71bbc215b32260a11595af3 (diff)
ao-tools: Allow building without stlink and readline
This adds --without-stlink and --without-readline options to configure to disable these features, and adjusts the build process and code to handle that. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--ao-tools/Makefile.am5
-rw-r--r--ao-tools/ao-dbg/Makefile.am2
-rw-r--r--ao-tools/ao-dbg/ao-dbg-main.c11
-rw-r--r--ao-tools/ao-elftohex/Makefile.am14
-rw-r--r--ao-tools/ao-stmload/Makefile.am6
-rw-r--r--ao-tools/ao-usbload/Makefile.am4
-rw-r--r--configure.ac41
7 files changed, 58 insertions, 25 deletions
diff --git a/ao-tools/Makefile.am b/ao-tools/Makefile.am
index 02d6c227..d40648d8 100644
--- a/ao-tools/Makefile.am
+++ b/ao-tools/Makefile.am
@@ -1,4 +1,7 @@
SUBDIRS=lib ao-rawload ao-dbg ao-bitbang ao-eeprom ao-list \
- ao-load ao-telem ao-stmload ao-send-telem ao-sky-flash \
+ ao-load ao-telem ao-send-telem ao-sky-flash \
ao-dumpflash ao-edit-telem ao-dump-up ao-elftohex \
ao-flash
+if LIBSTLINK
+SUBDIRS += ao-stmload
+endif
diff --git a/ao-tools/ao-dbg/Makefile.am b/ao-tools/ao-dbg/Makefile.am
index ad2cb280..2c33cf06 100644
--- a/ao-tools/ao-dbg/Makefile.am
+++ b/ao-tools/ao-dbg/Makefile.am
@@ -7,6 +7,6 @@ man_MANS = ao-dbg.1
ao_dbg_DEPENDENCIES = $(AO_DBG_LIBS)
-ao_dbg_LDADD=$(AO_DBG_LIBS) $(LIBUSB_LIBS) -lreadline
+ao_dbg_LDADD=$(AO_DBG_LIBS) $(LIBUSB_LIBS) $(LIBREADLINE)
ao_dbg_SOURCES = ao-dbg-parse.c ao-dbg-command.c ao-dbg-main.c
diff --git a/ao-tools/ao-dbg/ao-dbg-main.c b/ao-tools/ao-dbg/ao-dbg-main.c
index 21b83a3d..25eca54b 100644
--- a/ao-tools/ao-dbg/ao-dbg-main.c
+++ b/ao-tools/ao-dbg/ao-dbg-main.c
@@ -16,6 +16,10 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include "ao-dbg.h"
#include <unistd.h>
#include <sys/types.h>
@@ -204,13 +208,16 @@ s51_putc(int c)
putc(c, s51_output);
}
+#if HAVE_LIBREADLINE
#include <readline/readline.h>
#include <readline/history.h>
+#endif
int
s51_read_line(char *line, int len)
{
int ret;
+#if HAVE_LIBREADLINE
if (s51_output == stdout && s51_input == stdin && s51_prompt) {
char *r;
@@ -221,7 +228,9 @@ s51_read_line(char *line, int len)
line[len-1] = '\0';
add_history(r);
return 1;
- } else {
+ } else
+#endif
+ {
if (s51_prompt)
s51_printf("%s", s51_prompt);
else
diff --git a/ao-tools/ao-elftohex/Makefile.am b/ao-tools/ao-elftohex/Makefile.am
index 33c9923f..dd0046d7 100644
--- a/ao-tools/ao-elftohex/Makefile.am
+++ b/ao-tools/ao-elftohex/Makefile.am
@@ -1,18 +1,12 @@
-if LIBSTLINK
-
bin_PROGRAMS=ao-elftohex
-LIBSTLINKDIR=/local/src/stlink
-
-AM_CFLAGS=-I$(top_srcdir)/ao-tools/lib $(LIBSTLINK_CFLAGS) $(LIBUSB_CFLAGS)
-AO_STMLOAD_LIBS=$(top_builddir)/ao-tools/lib/libao-tools.a
+AM_CFLAGS=-I$(top_srcdir)/ao-tools/lib $(LIBUSB_CFLAGS)
+AO_ELFTOHEX_LIBS=$(top_builddir)/ao-tools/lib/libao-tools.a
-ao_elftohex_DEPENDENCIES = $(AO_STMLOAD_LIBS)
+ao_elftohex_DEPENDENCIES = $(AO_ELFTOHEX_LIBS)
-ao_elftohex_LDADD=$(AO_STMLOAD_LIBS) $(LIBSTLINK_LIBS) $(LIBUSB_LIBS) -lelf
+ao_elftohex_LDADD=$(AO_ELFTOHEX_LIBS) -lelf
ao_elftohex_SOURCES=ao-elftohex.c
man_MANS = ao-elftohex.1
-
-endif
diff --git a/ao-tools/ao-stmload/Makefile.am b/ao-tools/ao-stmload/Makefile.am
index 9ed286cc..45eb6216 100644
--- a/ao-tools/ao-stmload/Makefile.am
+++ b/ao-tools/ao-stmload/Makefile.am
@@ -2,14 +2,12 @@ if LIBSTLINK
bin_PROGRAMS=ao-stmload
-LIBSTLINKDIR=/local/src/stlink
-
-AM_CFLAGS=-I$(top_srcdir)/ao-tools/lib $(LIBSTLINK_CFLAGS) $(LIBUSB_CFLAGS)
+AM_CFLAGS=-I$(top_srcdir)/ao-tools/lib $(STLINK_CFLAGS) $(LIBUSB_CFLAGS)
AO_STMLOAD_LIBS=$(top_builddir)/ao-tools/lib/libao-tools.a
ao_stmload_DEPENDENCIES = $(AO_STMLOAD_LIBS)
-ao_stmload_LDADD=$(AO_STMLOAD_LIBS) $(LIBSTLINK_LIBS) $(LIBUSB_LIBS) -lelf
+ao_stmload_LDADD=$(AO_STMLOAD_LIBS) $(STLINK_LIBS) $(LIBUSB_LIBS) -lelf
ao_stmload_SOURCES=ao-stmload.c ao-stmload.h
diff --git a/ao-tools/ao-usbload/Makefile.am b/ao-tools/ao-usbload/Makefile.am
index 144e25df..e3b63a85 100644
--- a/ao-tools/ao-usbload/Makefile.am
+++ b/ao-tools/ao-usbload/Makefile.am
@@ -1,5 +1,3 @@
-if LIBSTLINK
-
bin_PROGRAMS=ao-usbload
AM_CFLAGS=-I$(top_srcdir)/ao-tools/lib $(LIBUSB_CFLAGS)
@@ -12,5 +10,3 @@ ao_usbload_LDADD=$(AO_STMLOAD_LIBS) $(LIBUSB_LIBS) -lelf
ao_usbload_SOURCES=ao-usbload.c ao-usbload.h
man_MANS = ao-usbload.1
-
-endif
diff --git a/configure.ac b/configure.ac
index a2a22063..aa957b1f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,7 +26,6 @@ AM_MAINTAINER_MODE
VERSION_DASH=`echo $VERSION | sed 's/\./-/g'`
AC_SUBST(VERSION_DASH)
-
dnl ==========================================================================
dnl Java library versions
@@ -365,16 +364,50 @@ if test "x$HAVE_NICKLE" = "xno"; then
AC_MSG_ERROR([Please install nickle to build AltOs])
fi
-AC_CHECK_LIB(readline, readline)
+AC_ARG_WITH([readline],
+ [AS_HELP_STRING([--with-readline],
+ [enable readline functionality in ao-dbg @<:@default=auto@:>@])],
+ [],
+ [with_readline=auto])
+
+LIBREADLINE_LIBS=
+
+if test x"$with_readline" != "xno"; then
+ AC_CHECK_LIB([readline], [main],
+ [AC_SUBST([LIBREADLINE], ["-lreadline -lncurses"])
+ AC_DEFINE([HAVE_LIBREADLINE], [1],
+ [Define if you have libreadline])],
+ [if test "x$with_readline" != xauto; then
+ AC_MSG_ERROR([--with-readline was given, but test for readline failed])
+ fi],
+ -lncurses)
+fi
PKG_CHECK_MODULES([LIBUSB], [libusb-1.0])
AC_CHECK_HEADERS(libelf.h libelf/libelf.h, [break])
AC_CHECK_HEADERS(gelf.h libelf/gelf.h, [break])
-PKG_CHECK_MODULES([LIBSTLINK], [stlink], [HAVE_STLINK=yes], [HAVE_STLINK=no])
+AC_ARG_WITH([stlink],
+ [AS_HELP_STRING([--with-stlink],
+ [Build tools that use the stlink library (default: auto)])],
+ [],
+ [with_stlink=auto])
+
+if test x"$with_stlink" != "xno"; then
+ PKG_CHECK_MODULES([STLINK], [stlink], [HAVE_STLINK=yes], [HAVE_STLINK=no])
+ if test x"$HAVE_STLINK" = "xno" -a x"$with_stlink" != "xauto"; then
+ AC_MSG_ERROR([--with-stlink was given, but stlink was not found])
+ fi
+else
+ HAVE_STLINK=no
+fi
+
+if test x"$HAVE_STLINK" = "xyes"; then
+ AC_DEFINE(HAVE_STLINK,1,[Using STlink library])
+fi
-AM_CONDITIONAL([LIBSTLINK], [test x$HAVE_STLINK != xno])
+AM_CONDITIONAL([LIBSTLINK], [test x$HAVE_STLINK == xyes])
AC_OUTPUT([
Makefile