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
This commit is contained in:
zwelch 2009-05-10 22:03:57 +00:00
parent 104580e0bf
commit 647e61cc6d
12 changed files with 54 additions and 38 deletions

View File

@ -20,6 +20,7 @@ MAINTAINERCLEANFILES = \
config.h.in \
config.h.in~ \
compile \
ltmain.sh \
missing \
aclocal.m4 \
install-sh

View File

@ -1,5 +1,6 @@
aclocal \
&& autoheader \
&& libtoolize --automake \
&& automake --foreign --add-missing --copy \
&& autoconf

View File

@ -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])

View File

@ -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 = \

View File

@ -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 \

View File

@ -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 \

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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 \

View File

@ -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