From: zwelch Date: Sun, 10 May 2009 22:03:57 +0000 (+0000) Subject: Extend autotools build to create shared library libopenocd with libtool: X-Git-Tag: v0.2.0~811 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=647e61cc6d9b13dd2799d2302ce9289a1627e36c Extend autotools build to create shared library libopenocd with libtool: - Add libtoolize step too bootstrap script; creates ltmain.sh script. - Add AC_PROG_LIBTOOL to configure.in to add libtool support to build. - Change Makefile.am library rules from static (_a) to libtool (_la). - Install libopenocd.{la,so,a} in $(libdir); update openocd link rules. - Extend MAINTAINERCLEANFILES in top-level Makefile.am to remove ltmain.sh. git-svn-id: svn://svn.berlios.de/openocd/trunk@1695 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- diff --git a/Makefile.am b/Makefile.am index c01c48f6c0..98c38f3815 100644 --- a/Makefile.am +++ b/Makefile.am @@ -20,6 +20,7 @@ MAINTAINERCLEANFILES = \ config.h.in \ config.h.in~ \ compile \ + ltmain.sh \ missing \ aclocal.m4 \ install-sh diff --git a/bootstrap b/bootstrap index d5a808e8e9..b49fda3244 100755 --- a/bootstrap +++ b/bootstrap @@ -1,5 +1,6 @@ aclocal \ && autoheader \ +&& libtoolize --automake \ && automake --foreign --add-missing --copy \ && autoconf diff --git a/configure.in b/configure.in index a6177e1d9d..8256adb7b1 100644 --- a/configure.in +++ b/configure.in @@ -787,6 +787,7 @@ AC_PROG_CC AC_PROG_CC_C99 AM_PROG_CC_C_O AC_PROG_RANLIB +AC_PROG_LIBTOOL # Look for environ alternatives. Possibility #1: is environ in unistd.h or stdlib.h? AC_MSG_CHECKING([for environ in unistd.h and stdlib.h]) diff --git a/src/Makefile.am b/src/Makefile.am index 3cbfd3e49e..c785e2acd7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,3 +1,6 @@ +SUBDIRS = helper jtag xsvf svf target server flash pld + +lib_LTLIBRARIES = libopenocd.la bin_PROGRAMS = openocd if ECOSBOARD @@ -6,7 +9,10 @@ else MAINFILE = main.c endif -openocd_SOURCES = $(MAINFILE) openocd.c +openocd_SOURCES = $(MAINFILE) +openocd_LDADD = libopenocd.la + +libopenocd_la_SOURCES = openocd.c # set the include path found by configure AM_CPPFLAGS = \ @@ -21,22 +27,21 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/pld # pass path to prefix path -openocd_CPPFLAGS = \ +libopenocd_la_CPPFLAGS = \ -DPKGLIBDIR=\"$(pkglibdir)\" \ -DPKGBLDDATE=\"`date +%F-%R`\" if RELEASE -openocd_CPPFLAGS += -DRELSTR=\"Release\" -DPKGBLDREV=\"\" +libopenocd_la_CPPFLAGS += -DRELSTR=\"Release\" -DPKGBLDREV=\"\" else -openocd_CPPFLAGS += -DRELSTR=\"svn:\" -DPKGBLDREV=\"`$(top_srcdir)/guess-rev.sh $(top_srcdir)`\" +libopenocd_la_CPPFLAGS += -DRELSTR=\"svn:\" -DPKGBLDREV=\"`$(top_srcdir)/guess-rev.sh $(top_srcdir)`\" endif # add default CPPFLAGS -openocd_CPPFLAGS += $(AM_CPPFLAGS) $(CPPFLAGS) +libopenocd_la_CPPFLAGS += $(AM_CPPFLAGS) $(CPPFLAGS) # the library search path. -openocd_LDFLAGS = $(all_libraries) -SUBDIRS = helper jtag xsvf svf target server flash pld +libopenocd_la_LDFLAGS = $(all_libraries) if IS_MINGW MINGWLDADD = -lwsock32 @@ -72,16 +77,19 @@ endif endif endif -openocd_LDADD = $(top_builddir)/src/xsvf/libxsvf.a $(top_builddir)/src/svf/libsvf.a \ - $(top_builddir)/src/target/libtarget.a $(top_builddir)/src/jtag/libjtag.a \ - $(top_builddir)/src/helper/libhelper.a \ - $(top_builddir)/src/server/libserver.a $(top_builddir)/src/helper/libhelper.a \ - $(top_builddir)/src/flash/libflash.a $(top_builddir)/src/target/libtarget.a \ - $(top_builddir)/src/pld/libpld.a \ +libopenocd_la_LIBADD = \ + $(top_builddir)/src/xsvf/libxsvf.la \ + $(top_builddir)/src/svf/libsvf.la \ + $(top_builddir)/src/pld/libpld.la \ + $(top_builddir)/src/jtag/libjtag.la \ + $(top_builddir)/src/flash/libflash.la \ + $(top_builddir)/src/target/libtarget.la \ + $(top_builddir)/src/server/libserver.la \ + $(top_builddir)/src/helper/libhelper.la \ $(FTDI2232LIB) $(MINGWLDADD) $(LIBUSB) if HTTPD -openocd_LDADD += -lmicrohttpd +libopenocd_la_LIBADD += -lmicrohttpd endif nobase_dist_pkglib_DATA = \ diff --git a/src/flash/Makefile.am b/src/flash/Makefile.am index db24001ae0..7895edc85a 100644 --- a/src/flash/Makefile.am +++ b/src/flash/Makefile.am @@ -4,8 +4,8 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/target METASOURCES = AUTO -noinst_LIBRARIES = libflash.a -libflash_a_SOURCES = \ +noinst_LTLIBRARIES = libflash.la +libflash_la_SOURCES = \ flash.c lpc2000.c cfi.c non_cfi.c at91sam7.c \ str7x.c str9x.c aduc702x.c nand.c nand_ecc.c \ lpc3180_nand_controller.c stellaris.c str9xpec.c stm32x.c tms470.c \ diff --git a/src/helper/Makefile.am b/src/helper/Makefile.am index afe26b8106..a55827830b 100644 --- a/src/helper/Makefile.am +++ b/src/helper/Makefile.am @@ -5,7 +5,7 @@ AM_CPPFLAGS = \ -DPKGLIBDIR=\"$(pkglibdir)\" METASOURCES = AUTO -noinst_LIBRARIES = libhelper.a +noinst_LTLIBRARIES = libhelper.la if ECOSBOARD CONFIGFILES = @@ -15,19 +15,19 @@ endif -libhelper_a_SOURCES = \ +libhelper_la_SOURCES = \ binarybuffer.c $(CONFIGFILES) configuration.c \ log.c command.c time_support.c \ replacements.c fileio.c startup_tcl.c if IOUTIL -libhelper_a_SOURCES += ioutil.c +libhelper_la_SOURCES += ioutil.c endif -libhelper_a_CFLAGS = +libhelper_la_CFLAGS = if IS_MINGW # FD_* macros are sloppy with their signs on MinGW32 platform -libhelper_a_CFLAGS += -Wno-sign-compare +libhelper_la_CFLAGS += -Wno-sign-compare endif noinst_HEADERS = binarybuffer.h configuration.h types.h log.h command.h \ diff --git a/src/jtag/Makefile.am b/src/jtag/Makefile.am index 4588312195..7ee59076b1 100644 --- a/src/jtag/Makefile.am +++ b/src/jtag/Makefile.am @@ -3,7 +3,7 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/target METASOURCES = AUTO -noinst_LIBRARIES = libjtag.a +noinst_LTLIBRARIES = libjtag.la if BITBANG BITBANGFILES = bitbang.c @@ -109,8 +109,12 @@ else ARMJTAGEWFILES = endif -libjtag_a_SOURCES = jtag.c $(BITBANGFILES) $(PARPORTFILES) $(DUMMYFILES) $(FT2232FILES) $(AMTJTAGACCELFILES) $(EP93XXFILES) \ - $(AT91RM9200FILES) $(GW16012FILES) $(BITQFILES) $(PRESTOFILES) $(USBPROGFILES) $(ECOSBOARDFILES) $(JLINKFILES) $(RLINKFILES) $(VSLLINKFILES) $(ARMJTAGEWFILES) +libjtag_la_SOURCES = jtag.c \ + $(BITBANGFILES) $(PARPORTFILES) $(DUMMYFILES) \ + $(FT2232FILES) $(AMTJTAGACCELFILES) $(EP93XXFILES) \ + $(AT91RM9200FILES) $(GW16012FILES) $(BITQFILES) \ + $(PRESTOFILES) $(USBPROGFILES) $(ECOSBOARDFILES) \ + $(JLINKFILES) $(RLINKFILES) $(VSLLINKFILES) $(ARMJTAGEWFILES) noinst_HEADERS = bitbang.h jtag.h bitq.h rlink/dtc_cmd.h rlink/ep1_cmd.h rlink/rlink.h rlink/st7.h diff --git a/src/pld/Makefile.am b/src/pld/Makefile.am index 7fab855e0d..24e2c3d939 100644 --- a/src/pld/Makefile.am +++ b/src/pld/Makefile.am @@ -4,8 +4,8 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/jtag METASOURCES = AUTO -noinst_LIBRARIES = libpld.a +noinst_LTLIBRARIES = libpld.la noinst_HEADERS = pld.h xilinx_bit.h virtex2.h -libpld_a_SOURCES = pld.c xilinx_bit.c virtex2.c +libpld_la_SOURCES = pld.c xilinx_bit.c virtex2.c MAINTAINERCLEANFILES = Makefile.in diff --git a/src/server/Makefile.am b/src/server/Makefile.am index 34957a6d7b..4c8a3dce14 100644 --- a/src/server/Makefile.am +++ b/src/server/Makefile.am @@ -6,23 +6,23 @@ AM_CPPFLAGS = \ -DPKGLIBDIR=\"$(pkglibdir)\" METASOURCES = AUTO -noinst_LIBRARIES = libserver.a +noinst_LTLIBRARIES = libserver.la noinst_HEADERS = server.h telnet_server.h gdb_server.h -libserver_a_SOURCES = server.c telnet_server.c gdb_server.c +libserver_la_SOURCES = server.c telnet_server.c gdb_server.c if HTTPD -libserver_a_SOURCES += httpd.c +libserver_la_SOURCES += httpd.c endif -libserver_a_CFLAGS = +libserver_la_CFLAGS = if IS_MINGW # FD_* macros are sloppy with their signs on MinGW32 platform -libserver_a_CFLAGS += -Wno-sign-compare +libserver_la_CFLAGS += -Wno-sign-compare endif # tcl server addons noinst_HEADERS += tcl_server.h -libserver_a_SOURCES += tcl_server.c +libserver_la_SOURCES += tcl_server.c if HTTPD nobase_dist_pkglib_DATA = $(wildcard $(srcdir)/httpd/*.tcl $(srcdir)/httpd/*.css $(srcdir)/httpd/menu_cuts/*.png) diff --git a/src/svf/Makefile.am b/src/svf/Makefile.am index 73edd43f33..2709788f8f 100644 --- a/src/svf/Makefile.am +++ b/src/svf/Makefile.am @@ -4,8 +4,8 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/jtag METASOURCES = AUTO -noinst_LIBRARIES = libsvf.a +noinst_LTLIBRARIES = libsvf.la noinst_HEADERS = svf.h -libsvf_a_SOURCES = svf.c +libsvf_la_SOURCES = svf.c MAINTAINERCLEANFILES = Makefile.in diff --git a/src/target/Makefile.am b/src/target/Makefile.am index 640ff4a6b8..90796180e4 100644 --- a/src/target/Makefile.am +++ b/src/target/Makefile.am @@ -11,8 +11,9 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/xsvf METASOURCES = AUTO -noinst_LIBRARIES = libtarget.a -libtarget_a_SOURCES = target.c register.c breakpoints.c armv4_5.c embeddedice.c etm.c arm7tdmi.c arm9tdmi.c \ +noinst_LTLIBRARIES = libtarget.la +libtarget_la_SOURCES = target.c register.c breakpoints.c \ + armv4_5.c embeddedice.c etm.c arm7tdmi.c arm9tdmi.c \ arm_jtag.c arm7_9_common.c algorithm.c arm920t.c arm720t.c armv4_5_mmu.c armv4_5_cache.c arm_disassembler.c \ arm966e.c arm926ejs.c feroceon.c etb.c xscale.c arm_simulator.c image.c armv7m.c cortex_m3.c cortex_a8.c arm_adi_v5.c \ etm_dummy.c $(OOCD_TRACE_FILES) target_request.c trace.c arm11.c arm11_dbgtap.c mips32.c mips_m4k.c \ diff --git a/src/xsvf/Makefile.am b/src/xsvf/Makefile.am index 3553a7af59..abc6b482b2 100644 --- a/src/xsvf/Makefile.am +++ b/src/xsvf/Makefile.am @@ -4,8 +4,8 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/jtag METASOURCES = AUTO -noinst_LIBRARIES = libxsvf.a +noinst_LTLIBRARIES = libxsvf.la noinst_HEADERS = xsvf.h -libxsvf_a_SOURCES = xsvf.c +libxsvf_la_SOURCES = xsvf.c MAINTAINERCLEANFILES = Makefile.in