Index: b/configure.ac
===================================================================
--- a/configure.ac 2010-06-04 12:15:06.000000000 +0100
+++ b/configure.ac 2010-06-04 12:15:06.000000000 +0100
@@ -56,7 +56,6 @@
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
-AC_PROG_RANLIB
AC_PROG_YACC
AC_PROG_LEX
AC_PROG_F77(gfortran pgf90 pgf77 xlf gfortran f77 g77 f90 ifort)
@@ -158,6 +157,13 @@
dnl What OS are we running?
AC_CANONICAL_HOST
+dnl Use libtool
+AM_PROG_LIBTOOL
+dnl Libtool version information (we use 0 and '0d' for debian until grib_api
+dnl maintainers start providing shared libraries)
+GRIBAPI_LIBTOOL_VERSIONING="-version-info 0:0:0 -release 0d"
+AC_SUBST(GRIBAPI_LIBTOOL_VERSIONING)
+
GRIB_SAMPLES_PATH=$samples_files_path
GRIB_TEMPLATES_PATH=$samples_files_path
GRIB_DEFINITION_PATH=$definition_files_path
Index: b/examples/C/Makefile.am
===================================================================
--- a/examples/C/Makefile.am 2010-06-04 12:15:00.000000000 +0100
+++ b/examples/C/Makefile.am 2010-06-04 12:15:06.000000000 +0100
@@ -23,7 +23,7 @@
INCLUDES = -I$(top_builddir)/src
-LDADD = $(top_builddir)/src/libgrib_api.a
+LDADD = $(top_builddir)/src/libgrib_api.la
DEPENDENCIES = $(LDADD)
EXTRA_DIST =$(TESTS) include.sh
Index: b/examples/F90/Makefile.am
===================================================================
--- a/examples/F90/Makefile.am 2010-06-04 12:15:00.000000000 +0100
+++ b/examples/F90/Makefile.am 2010-06-04 12:15:06.000000000 +0100
@@ -37,7 +37,7 @@
AM_FCFLAGS = $(F90_MODULE_FLAG)$(top_builddir)/fortran
-LDADD = $(top_builddir)/fortran/libgrib_api_f90.a $(top_builddir)/src/libgrib_api.a
+LDADD = $(top_builddir)/fortran/libgrib_api_f90.la $(top_builddir)/src/libgrib_api.la
DEPENDENCIES = $(LDADD)
EXTRA_DIST =$(TESTS) include.sh
Index: b/fortran/Makefile.am
===================================================================
--- a/fortran/Makefile.am 2010-06-04 12:15:00.000000000 +0100
+++ b/fortran/Makefile.am 2010-06-04 12:15:06.000000000 +0100
@@ -2,14 +2,18 @@
AM_CFLAGS = @WARN_PEDANTIC@
-lib_LIBRARIES = libgrib_api_f77.a libgrib_api_f90.a
-include_HEADERS = grib_api_f77.h
+BUILT_SOURCES = grib_kinds.h
-libgrib_api_f77_a_SOURCES= grib_fortran.c grib_f77.c
-libgrib_api_f77_a_DEPENDENCIES = $(top_builddir)/src/libgrib_api.a
+lib_LTLIBRARIES = libgrib_api_f77.la libgrib_api_f90.la
+include_HEADERS = grib_api_f77.h
-libgrib_api_f90_a_SOURCES= grib_fortran.c grib_f90.f90
-libgrib_api_f90_a_DEPENDENCIES = $(top_builddir)/src/libgrib_api.a grib_api_externals.h grib_api_visibility.h grib_api_constants.h grib_kinds.h
+libgrib_api_f77_la_SOURCES= grib_fortran.c grib_f77.c
+libgrib_api_f77_la_LDFLAGS = @GRIBAPI_LIBTOOL_VERSIONING@
+libgrib_api_f77_la_DEPENDENCIES = $(top_builddir)/src/libgrib_api.la
+
+libgrib_api_f90_la_SOURCES= grib_fortran.c grib_f90.f90
+libgrib_api_f90_la_LDFLAGS = @GRIBAPI_LIBTOOL_VERSIONING@
+libgrib_api_f90_la_DEPENDENCIES = $(top_builddir)/src/libgrib_api.la grib_api_externals.h grib_api_visibility.h grib_api_constants.h grib_kinds.h
libgrib_api_fortran_prototypes= grib_fortran.c
@@ -26,7 +30,7 @@
## Make sure these will be cleaned even when they're not built by
## default.
-CLEANFILES = libgrib_api_f77.a libgrib_api_f90.a grib_f90.f90 *.mod grib_types grib_kinds.h
+CLEANFILES = libgrib_api_f77.a libgrib_api_f77.la libgrib_api_f90.a libgrib_api_f90.la grib_f90.f90 *.mod grib_types grib_kinds.h
#noinst_HEADERS =
Index: b/src/Makefile.am
===================================================================
--- a/src/Makefile.am 2010-06-04 12:15:00.000000000 +0100
+++ b/src/Makefile.am 2010-06-04 12:15:06.000000000 +0100
@@ -7,10 +7,10 @@
# -DYYDEBUG
-lib_LIBRARIES = libgrib_api.a
+lib_LTLIBRARIES = libgrib_api.la
include_HEADERS = grib_api.h
-libgrib_api_a_prototypes= action.c \
+libgrib_api_la_prototypes= action.c \
action_class_alias.c \
action_class_gen.c \
action_class_if.c \
@@ -137,7 +137,6 @@
grib_accessor_class_spectral_truncation.c \
grib_accessor_class_time.c \
grib_accessor_class_transient.c \
- grib_accessor_class_g1_half_byte_codeflag.c \
grib_accessor_class_values.c \
grib_accessor_class_simple_packing_error.c \
grib_accessor_class_data_simple_packing.c \
@@ -258,10 +257,11 @@
grib_expression.c \
md5.c
-libgrib_api_a_SOURCES = $(libgrib_api_a_prototypes) grib_yacc.c grib_lex.c
+libgrib_api_la_SOURCES = $(libgrib_api_la_prototypes) grib_yacc.c grib_lex.c
-libgrib_api_a_LIBADD = @LIBOBJS@
-libgrib_api_a_DEPENDENCIES = grib_api.h $(libgrib_api_a_LIBADD)
+libgrib_api_la_LIBADD = @LIBOBJS@
+libgrib_api_la_LDFLAGS = @GRIBAPI_LIBTOOL_VERSIONING@
+libgrib_api_la_DEPENDENCIES = grib_api.h $(libgrib_api_la_LIBADD)
# set the include path
@@ -269,7 +269,7 @@
## Make sure these will be cleaned even when they're not built by
## default.
-CLEANFILES = libgrib_api.a
+CLEANFILES = libgrib_api.a libgrib_api.la
noinst_HEADERS = grib_api_internal.h \
Index: b/tests/Makefile.am
===================================================================
--- a/tests/Makefile.am 2010-06-04 12:15:00.000000000 +0100
+++ b/tests/Makefile.am 2010-06-04 12:15:06.000000000 +0100
@@ -30,7 +30,7 @@
gribex_perf_SOURCES = gribex_perf.c
gribex_perf_SOURCES = gauss_sub.c
- LDADD = $(top_builddir)/src/libgrib_api.a $(EMOS_LIB)
+ LDADD = $(top_builddir)/src/libgrib_api.la $(EMOS_LIB)
INCLUDES = -I$(top_builddir)/src
Index: b/tigge/Makefile.am
===================================================================
--- a/tigge/Makefile.am 2010-06-04 12:15:00.000000000 +0100
+++ b/tigge/Makefile.am 2010-06-04 12:15:06.000000000 +0100
@@ -12,5 +12,5 @@
INCLUDES = -I$(top_builddir)/src
-LDADD = $(top_builddir)/src/libgrib_api.a
+LDADD = $(top_builddir)/src/libgrib_api.la
DEPENDENCIES = $(LDADD)
Index: b/tools/Makefile.am
===================================================================
--- a/tools/Makefile.am 2010-06-04 12:15:00.000000000 +0100
+++ b/tools/Makefile.am 2010-06-04 12:15:06.000000000 +0100
@@ -3,9 +3,9 @@
AM_YFLAGS = -d
-noinst_LIBRARIES = libgrib_tools.a
+noinst_LTLIBRARIES = libgrib_tools.la
-libgrib_tools_a_SOURCES = grib_tools.c \
+libgrib_tools_la_SOURCES = grib_tools.c \
grib_options.c
@@ -60,12 +60,12 @@
INCLUDES = -I$(top_builddir)/src
-LDADD = libgrib_tools.a $(top_builddir)/src/libgrib_api.a
+LDADD = libgrib_tools.la $(top_builddir)/src/libgrib_api.la
DEPENDENCIES = $(LDADD)
## Make sure these will be cleaned even when they're not built by
## default.
-CLEANFILES = libgrib_tools.a
+CLEANFILES = libgrib_tools.la libgrib_tools.a
grib1to2$(EXEEXT): grib1to2.txt
sed "s:toolsdir:$(bindir):" grib1to2.txt > grib1to2