build-sys: create a regular shared libfdisk.so
- symbols versioning - SONAME from configure.ac - library version to header file - modify build-sys to compile and install shared lib Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
784467ad2d
commit
0bb4c979c6
|
@ -18,14 +18,15 @@ LDADD = $(LTLIBINTL)
|
|||
dist_noinst_DATA = $(dist_man_MANS)
|
||||
|
||||
# Paths to in-tree libraries (use ul_ prefix to avoid possible collisions) Note
|
||||
# that blkid.h, libmount.h and libsmartcols.h are generated and stored in build
|
||||
# dirs.
|
||||
# that blkid.h, libmount.h, libfdisk.h and libsmartcols.h are generated and
|
||||
# stored in build dirs.
|
||||
#
|
||||
ul_libblkid_incdir = $(top_builddir)/libblkid/src
|
||||
ul_libmount_incdir = $(top_builddir)/libmount/src
|
||||
ul_libsmartcols_incdir = $(top_builddir)/libsmartcols/src
|
||||
ul_libfdisk_incdir = $(top_builddir)/libfdisk/src
|
||||
|
||||
ul_libuuid_incdir = $(top_srcdir)/libuuid/src
|
||||
ul_libfdisk_incdir = $(top_srcdir)/libfdisk/src
|
||||
|
||||
pkgconfigdir = $(usrlib_execdir)/pkgconfig
|
||||
|
||||
|
|
22
configure.ac
22
configure.ac
|
@ -53,6 +53,13 @@ LIBSMARTCOLS_LT_MINOR=1
|
|||
LIBSMARTCOLS_LT_MICRO=0
|
||||
LIBSMARTCOLS_VERSION_INFO=`expr $LIBSMARTCOLS_LT_MAJOR + $LIBSMARTCOLS_LT_MINOR`:$LIBSMARTCOLS_LT_MICRO:$LIBSMARTCOLS_LT_MINOR
|
||||
|
||||
dnl libfdisk version
|
||||
LIBFDISK_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
|
||||
LIBFDISK_LT_MAJOR=1
|
||||
LIBFDISK_LT_MINOR=1
|
||||
LIBFDISK_LT_MICRO=0
|
||||
LIBFDISK_VERSION_INFO=`expr $LIBFDISK_LT_MAJOR + $LIBFDISK_LT_MINOR`:$LIBFDISK_LT_MICRO:$LIBFDISK_LT_MINOR
|
||||
|
||||
# Check whether exec_prefix=/usr:
|
||||
AS_CASE([$exec_prefix:$prefix],
|
||||
[NONE:NONE | NONE:/usr | /usr:*],
|
||||
|
@ -843,11 +850,21 @@ AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartc
|
|||
|
||||
|
||||
dnl
|
||||
dnl libfdisk is enabled at all times if possible
|
||||
dnl libfdisk
|
||||
dnl
|
||||
UL_BUILD_INIT([libfdisk], [check])
|
||||
AC_ARG_ENABLE([libfdisk],
|
||||
AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
|
||||
[], [UL_DEFAULT_ENABLE([libfdisk], [check])]
|
||||
)
|
||||
UL_BUILD_INIT([libfdisk])
|
||||
UL_REQUIRES_BUILD([libfdisk], [libuuid])
|
||||
AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
|
||||
AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes -a "x$enable_static" = xyes])
|
||||
|
||||
AC_SUBST([LIBFDISK_VERSION])
|
||||
AC_SUBST([LIBFDISK_VERSION_INFO])
|
||||
AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
|
||||
|
||||
|
||||
UL_BUILD_INIT([fdisk], [check])
|
||||
UL_REQUIRES_BUILD([fdisk], [libfdisk])
|
||||
|
@ -1844,6 +1861,7 @@ libmount/src/libmount.h
|
|||
libsmartcols/docs/Makefile
|
||||
libsmartcols/docs/version.xml
|
||||
libsmartcols/src/libsmartcols.h
|
||||
libfdisk/src/libfdisk.h
|
||||
po/Makefile.in
|
||||
])
|
||||
|
||||
|
|
|
@ -2,4 +2,6 @@ if BUILD_LIBFDISK
|
|||
|
||||
include libfdisk/src/Makemodule.am
|
||||
|
||||
EXTRA_DIST += libfdisk/COPYING
|
||||
|
||||
endif # BUILD_LIBFDISK
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
libfdisk.h
|
|
@ -1,13 +1,11 @@
|
|||
#
|
||||
# The libfdisk is used for internal util-linux purpose. The library is not
|
||||
# distributed as shared library for now. Maybe one day...
|
||||
#
|
||||
|
||||
# libfdisk.h is generated, so it's stored in builddir!
|
||||
fdiskincdir = $(includedir)/libfdisk
|
||||
nodist_fdiskinc_HEADERS = $(top_builddir)/libfdisk/src/libfdisk.h
|
||||
|
||||
noinst_LTLIBRARIES += libfdisk.la
|
||||
usrlib_exec_LTLIBRARIES += libfdisk.la
|
||||
libfdisk_la_SOURCES = \
|
||||
libfdisk/src/libfdisk.h \
|
||||
libfdisk/src/fdiskP.h \
|
||||
include/list.h \
|
||||
\
|
||||
libfdisk/src/init.c \
|
||||
libfdisk/src/test.c \
|
||||
|
@ -26,47 +24,55 @@ libfdisk_la_SOURCES = \
|
|||
libfdisk/src/sgi.c \
|
||||
libfdisk/src/dos.c \
|
||||
libfdisk/src/bsd.c \
|
||||
libfdisk/src/gpt.c
|
||||
libfdisk/src/gpt.c \
|
||||
$(nodist_fdiskinc_HEADERS)
|
||||
|
||||
|
||||
nodist_libfdisk_la_SOURCES = libfdisk/src/fdiskP.h
|
||||
|
||||
libfdisk_la_LIBADD = libcommon.la
|
||||
libfdisk_la_DEPENDENCIES = libcommon.la
|
||||
libfdisk_la_LIBADD = libcommon.la libuuid.la
|
||||
|
||||
libfdisk_la_CFLAGS = \
|
||||
$(SOLIB_CFLAGS) \
|
||||
-I$(ul_libuuid_incdir) \
|
||||
-I$(ul_libfdisk_incdir) \
|
||||
-I$(top_srcdir)/libfdisk/src
|
||||
|
||||
libfdisk_la_DEPENDENCIES = \
|
||||
libcommon.la \
|
||||
libuuid.la \
|
||||
libfdisk/src/libfdisk.sym \
|
||||
libfdisk/src/libfdisk.h.in
|
||||
|
||||
libfdisk_la_LDFLAGS = \
|
||||
$(SOLIB_LDFLAGS) \
|
||||
-Wl,--version-script=$(top_srcdir)/libfdisk/src/libfdisk.sym \
|
||||
-version-info $(LIBFDISK_VERSION_INFO)
|
||||
|
||||
if BUILD_LIBBLKID
|
||||
libfdisk_la_LIBADD += libblkid.la
|
||||
libfdisk_la_DEPENDENCIES += libblkid.la
|
||||
libfdisk_la_CFLAGS += -I$(ul_libblkid_incdir)
|
||||
endif
|
||||
|
||||
if BUILD_LIBUUID
|
||||
libfdisk_la_LIBADD += libuuid.la
|
||||
libfdisk_la_DEPENDENCIES += libuuid.la
|
||||
libfdisk_la_CFLAGS += -I$(ul_libuuid_incdir)
|
||||
endif
|
||||
EXTRA_DIST += \
|
||||
libfdisk/src/libfdisk.sym \
|
||||
libfdisk/src/libfdisk.h.in
|
||||
|
||||
if BUILD_LIBFDISK_TESTS
|
||||
check_PROGRAMS += \
|
||||
test_fdisk_ask \
|
||||
test_fdisk_script \
|
||||
test_fdisk_utils
|
||||
|
||||
libfdisk_tests_cflags = -DTEST_PROGRAM $(libfdisk_la_CFLAGS)
|
||||
libfdisk_tests_ldflags = -static
|
||||
libfdisk_tests_ldadd = libfdisk.la
|
||||
libfdisk_tests_ldflags = libuuid.la -static
|
||||
libfdisk_tests_ldadd = libfdisk.la $(UUID_LIBS)
|
||||
|
||||
if BUILD_LIBBLKID
|
||||
libfdisk_tests_ldflags += libblkid.la
|
||||
endif
|
||||
|
||||
if BUILD_LIBUUID
|
||||
libfdisk_tests_ldflags += libuuid.la
|
||||
endif
|
||||
|
||||
test_fdisk_ask_SOURCES = libfdisk/src/ask.c
|
||||
test_fdisk_ask_CFLAGS = $(libfdisk_tests_cflags)
|
||||
test_fdisk_ask_LDFLAGS = $(libfdisk_tests_ldflags)
|
||||
|
@ -81,3 +87,25 @@ test_fdisk_script_SOURCES = libfdisk/src/script.c
|
|||
test_fdisk_script_CFLAGS = $(libfdisk_tests_cflags)
|
||||
test_fdisk_script_LDFLAGS = $(libfdisk_tests_ldflags)
|
||||
test_fdisk_script_LDADD = $(libfdisk_tests_ldadd)
|
||||
|
||||
endif # BUILD_LIBFDISK_TESTS
|
||||
|
||||
|
||||
# move lib from $(usrlib_execdir) to $(libdir) if needed
|
||||
install-exec-hook-libfdisk:
|
||||
if test "$(usrlib_execdir)" != "$(libdir)" -a -f "$(DESTDIR)$(usrlib_execdir)/libfdisk.so"; then \
|
||||
mkdir -p $(DESTDIR)$(libdir); \
|
||||
mv $(DESTDIR)$(usrlib_execdir)/libfdisk.so.* $(DESTDIR)$(libdir); \
|
||||
so_img_name=$$(readlink $(DESTDIR)$(usrlib_execdir)/libfdisk.so); \
|
||||
so_img_rel_target=$$(echo $(usrlib_execdir) | sed 's,\(^/\|\)[^/][^/]*,..,g'); \
|
||||
(cd $(DESTDIR)$(usrlib_execdir) && \
|
||||
rm -f libfdisk.so && \
|
||||
$(LN_S) $$so_img_rel_target$(libdir)/$$so_img_name libfdisk.so); \
|
||||
fi
|
||||
|
||||
uninstall-hook-libfdisk:
|
||||
rm -f $(DESTDIR)$(libdir)/libfdisk.so*
|
||||
|
||||
INSTALL_EXEC_HOOKS += install-exec-hook-libfdisk
|
||||
UNINSTALL_HOOKS += uninstall-hook-libfdisk
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* libfdisk.h - libfdisk API
|
||||
*
|
||||
* Copyright (C) 2012 Karel Zak <kzak@redhat.com>
|
||||
* Copyright (C) 2012-2014 Karel Zak <kzak@redhat.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -18,8 +18,8 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef _LIBFDISK_FDISK_H
|
||||
#define _LIBFDISK_FDISK_H
|
||||
#ifndef _LIBFDISK_H
|
||||
#define _LIBFDISK_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
@ -29,6 +29,13 @@ extern "C" {
|
|||
#include <stdarg.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* LIBFDISK_VERSION:
|
||||
*
|
||||
* Library version string
|
||||
*/
|
||||
#define LIBFDISK_VERSION "@LIBFDISK_VERSION@"
|
||||
|
||||
/**
|
||||
* fdisk_context:
|
||||
*
|
||||
|
@ -561,4 +568,4 @@ extern char *fdisk_partname(const char *dev, size_t partno);
|
|||
}
|
||||
#endif
|
||||
|
||||
#endif /* _LIBFDISK_FDISK_H */
|
||||
#endif /* _LIBFDISK_H */
|
|
@ -0,0 +1,232 @@
|
|||
/*
|
||||
* The symbol versioning ensures that a new application requiring symbol foo;
|
||||
* can't run with old libblkid.so not providing foo;
|
||||
* version info can't enforce this since we never change the SONAME.
|
||||
*
|
||||
* Copyright (C) 2014 Karel Zak <kzak@redhat.com>
|
||||
*/
|
||||
MOUNT_2.26 {
|
||||
global:
|
||||
fdisk_add_partition;
|
||||
fdisk_align_lba;
|
||||
fdisk_align_lba_in_range;
|
||||
fdisk_apply_script;
|
||||
fdisk_apply_script_headers;
|
||||
fdisk_apply_table;
|
||||
fdisk_ask_get_query;
|
||||
fdisk_ask_get_type;
|
||||
fdisk_ask_menu_get_default;
|
||||
fdisk_ask_menu_get_item;
|
||||
fdisk_ask_menu_get_nitems;
|
||||
fdisk_ask_menu_get_result;
|
||||
fdisk_ask_menu_set_result;
|
||||
fdisk_ask_number;
|
||||
fdisk_ask_number_get_base;
|
||||
fdisk_ask_number_get_default;
|
||||
fdisk_ask_number_get_high;
|
||||
fdisk_ask_number_get_low;
|
||||
fdisk_ask_number_get_range;
|
||||
fdisk_ask_number_get_result;
|
||||
fdisk_ask_number_get_unit;
|
||||
fdisk_ask_number_inchars;
|
||||
fdisk_ask_number_set_relative;
|
||||
fdisk_ask_number_set_result;
|
||||
fdisk_ask_partnum;
|
||||
fdisk_ask_print_get_errno;
|
||||
fdisk_ask_print_get_mesg;
|
||||
fdisk_ask_string;
|
||||
fdisk_ask_string_get_result;
|
||||
fdisk_ask_string_set_result;
|
||||
fdisk_ask_yesno;
|
||||
fdisk_ask_yesno_get_result;
|
||||
fdisk_ask_yesno_set_result;
|
||||
fdisk_assign_device;
|
||||
fdisk_bsd_edit_disklabel;
|
||||
fdisk_bsd_link_partition;
|
||||
fdisk_bsd_write_bootstrap;
|
||||
fdisk_copy_parttype;
|
||||
fdisk_create_disklabel;
|
||||
fdisk_deassign_device;
|
||||
fdisk_delete_all_partitions;
|
||||
fdisk_delete_partition;
|
||||
fdisk_dos_enable_compatible;
|
||||
fdisk_dos_is_compatible;
|
||||
fdisk_dos_move_begin;
|
||||
fdisk_enable_details;
|
||||
fdisk_enable_listonly;
|
||||
fdisk_field_get_id;
|
||||
fdisk_field_get_name;
|
||||
fdisk_field_get_width;
|
||||
fdisk_field_is_number;
|
||||
fdisk_free_iter;
|
||||
fdisk_get_alignment_offset;
|
||||
fdisk_get_devfd;
|
||||
fdisk_get_devname;
|
||||
fdisk_get_disklabel_id;
|
||||
fdisk_get_first_lba;
|
||||
fdisk_get_freespaces;
|
||||
fdisk_get_geom_cylinders;
|
||||
fdisk_get_geom_heads;
|
||||
fdisk_get_geom_sectors;
|
||||
fdisk_get_grain_size;
|
||||
fdisk_get_label;
|
||||
fdisk_get_last_lba;
|
||||
fdisk_get_minimal_iosize;
|
||||
fdisk_get_nlabels;
|
||||
fdisk_get_npartitions;
|
||||
fdisk_get_nsectors;
|
||||
fdisk_get_optimal_iosize;
|
||||
fdisk_get_parent;
|
||||
fdisk_get_partition;
|
||||
fdisk_get_partitions;
|
||||
fdisk_get_physector_size;
|
||||
fdisk_get_script;
|
||||
fdisk_get_sector_size;
|
||||
fdisk_get_unit;
|
||||
fdisk_get_units_per_sector;
|
||||
fdisk_gpt_is_hybrid;
|
||||
fdisk_has_label;
|
||||
fdisk_has_user_device_properties;
|
||||
fdisk_info;
|
||||
fdisk_init_debug;
|
||||
fdisk_is_details;
|
||||
fdisk_is_labeltype;
|
||||
fdisk_is_listonly;
|
||||
fdisk_is_partition_used;
|
||||
fdisk_is_readonly;
|
||||
fdisk_iter_get_direction;
|
||||
fdisk_label_get_field;
|
||||
fdisk_label_get_field_by_name;
|
||||
fdisk_label_get_fields_ids;
|
||||
fdisk_label_get_name;
|
||||
fdisk_label_get_nparttypes;
|
||||
fdisk_label_get_parttype;
|
||||
fdisk_label_get_parttype_from_code;
|
||||
fdisk_label_get_parttype_from_string;
|
||||
fdisk_label_get_type;
|
||||
fdisk_label_has_code_parttypes;
|
||||
fdisk_label_is_changed;
|
||||
fdisk_label_is_disabled;
|
||||
fdisk_label_parse_parttype;
|
||||
fdisk_label_require_geometry;
|
||||
fdisk_label_set_changed;
|
||||
fdisk_label_set_disabled;
|
||||
fdisk_lba_is_phy_aligned;
|
||||
fdisk_list_disklabel;
|
||||
fdisk_locate_disklabel;
|
||||
fdisk_new_context;
|
||||
fdisk_new_iter;
|
||||
fdisk_new_nested_context;
|
||||
fdisk_new_partition;
|
||||
fdisk_new_parttype;
|
||||
fdisk_new_script;
|
||||
fdisk_new_script_from_file;
|
||||
fdisk_new_table;
|
||||
fdisk_new_unknown_parttype;
|
||||
fdisk_next_label;
|
||||
fdisk_override_geometry;
|
||||
fdisk_partition_cmp_partno;
|
||||
fdisk_partition_cmp_start;
|
||||
fdisk_partition_end_follow_default;
|
||||
fdisk_partition_end_is_default;
|
||||
fdisk_partition_get_attrs;
|
||||
fdisk_partition_get_name;
|
||||
fdisk_partition_get_parent;
|
||||
fdisk_partition_get_partno;
|
||||
fdisk_partition_get_size;
|
||||
fdisk_partition_get_start;
|
||||
fdisk_partition_get_type;
|
||||
fdisk_partition_get_uuid;
|
||||
fdisk_partition_has_partno;
|
||||
fdisk_partition_has_size;
|
||||
fdisk_partition_has_start;
|
||||
fdisk_partition_is_bootable;
|
||||
fdisk_partition_is_container;
|
||||
fdisk_partition_is_freespace;
|
||||
fdisk_partition_is_nested;
|
||||
fdisk_partition_is_used;
|
||||
fdisk_partition_next_partno;
|
||||
fdisk_partition_partno_follow_default;
|
||||
fdisk_partition_set_attrs;
|
||||
fdisk_partition_set_name;
|
||||
fdisk_partition_set_partno;
|
||||
fdisk_partition_set_size;
|
||||
fdisk_partition_set_start;
|
||||
fdisk_partition_set_type;
|
||||
fdisk_partition_set_uuid;
|
||||
fdisk_partition_size_explicit;
|
||||
fdisk_partition_start_follow_default;
|
||||
fdisk_partition_start_is_default;
|
||||
fdisk_partition_toggle_flag;
|
||||
fdisk_partition_to_string;
|
||||
fdisk_partition_unset_partno;
|
||||
fdisk_partition_unset_size;
|
||||
fdisk_partition_unset_start;
|
||||
fdisk_partname;
|
||||
fdisk_parttype_get_code;
|
||||
fdisk_parttype_get_name;
|
||||
fdisk_parttype_get_string;
|
||||
fdisk_parttype_is_unknown;
|
||||
fdisk_parttype_set_code;
|
||||
fdisk_parttype_set_name;
|
||||
fdisk_parttype_set_typestr;
|
||||
fdisk_ref_ask;
|
||||
fdisk_ref_context;
|
||||
fdisk_ref_partition;
|
||||
fdisk_ref_parttype;
|
||||
fdisk_ref_script;
|
||||
fdisk_ref_table;
|
||||
fdisk_reorder_partitions;
|
||||
fdisk_reread_partition_table;
|
||||
fdisk_reset_alignment;
|
||||
fdisk_reset_device_properties;
|
||||
fdisk_reset_iter;
|
||||
fdisk_reset_partition;
|
||||
fdisk_reset_table;
|
||||
fdisk_save_user_geometry;
|
||||
fdisk_save_user_sector_size;
|
||||
fdisk_script_get_header;
|
||||
fdisk_script_get_nlines;
|
||||
fdisk_script_get_table;
|
||||
fdisk_script_read_context;
|
||||
fdisk_script_read_file;
|
||||
fdisk_script_read_line;
|
||||
fdisk_script_set_header;
|
||||
fdisk_script_write_file;
|
||||
fdisk_set_ask;
|
||||
fdisk_set_disklabel_id;
|
||||
fdisk_set_first_lba;
|
||||
fdisk_set_last_lba;
|
||||
fdisk_set_partition;
|
||||
fdisk_set_partition_type;
|
||||
fdisk_set_script;
|
||||
fdisk_set_unit;
|
||||
fdisk_sgi_create_info;
|
||||
fdisk_sgi_set_bootfile;
|
||||
fdisk_sun_set_alt_cyl;
|
||||
fdisk_sun_set_ilfact;
|
||||
fdisk_sun_set_pcylcount;
|
||||
fdisk_sun_set_rspeed;
|
||||
fdisk_sun_set_xcyl;
|
||||
fdisk_table_add_partition;
|
||||
fdisk_table_get_nents;
|
||||
fdisk_table_get_partition;
|
||||
fdisk_table_is_empty;
|
||||
fdisk_table_next_partition;
|
||||
fdisk_table_remove_partition;
|
||||
fdisk_table_sort_partitions;
|
||||
fdisk_table_wrong_order;
|
||||
fdisk_unref_ask;
|
||||
fdisk_unref_context;
|
||||
fdisk_unref_partition;
|
||||
fdisk_unref_parttype;
|
||||
fdisk_unref_script;
|
||||
fdisk_unref_table;
|
||||
fdisk_use_cylinders;
|
||||
fdisk_verify_disklabel;
|
||||
fdisk_warn;
|
||||
fdisk_warnx;
|
||||
fdisk_write_disklabel;
|
||||
local:
|
||||
*;
|
||||
};
|
Loading…
Reference in New Issue