Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add a new --enable-staticonly option to only build the static chain
Baptiste Daroussin committed 11 years ago
commit bf6ed49c62e667795a09fdadac885932d3b8163a
parent cb4ce5c
5 files changed +63 -23
modified configure.ac
@@ -176,18 +176,12 @@ AC_SEARCH_LIBS([jail_getid], [jail], [
	LIBJAIL_LIB="-ljail"
	], [])

-
LIBELF_LIB="\$(top_builddir)/external/libelf.la"
-
LIBELF_BUNDLED="libelf.la"
-
LIBELF_INCLUDE="-I\$(top_srcdir)/external/libelf"
-

AC_CHECK_HEADERS([gelf.h libelf.h], [
	AC_CHECK_TYPES([Elf_Note], [
		AC_DEFINE(HAVE_GELF_H, 1, [Define to 1 if you have the <gelf.h> header file.])
		AC_CHECK_LIB(elf, gelf_getehdr, [
			AC_DEFINE(HAVE_LIBELF, 1, [Define to 1 if you have the 'elf' library (-lelf).])
-
			LIBELF_LIB="-lelf"
-
			LIBELF_BUNDLED=
-
			LIBELF_INCLUDE=
+
			libelf_bundled=no
		]) dnl AC_CHECK_LIB
	], dnl AC_CHECK_TYPES
	[], AC_LANG_SOURCE(
@@ -236,9 +230,20 @@ if test "$ac_cv_func_arc4random_uniform" = yes ; then
	AC_DEFINE(HAVE_ARC4RANDOM, 1, [Define 1 if you have 'arc4random_uniform' function.])
fi

-
AC_SUBST([LIBELF_LIB])
-
AC_SUBST([LIBELF_BUNDLED])
-
AC_SUBST([LIBELF_INCLUDE])
+
AC_MSG_CHECKING([whether we should only build the static version of pkg])
+
AC_ARG_ENABLE([staticonly],
+
	      [AS_HELP_STRING([--enable-staticonly],
+
			      [Only build the static version (default is no)])])
+

+
if test "$enable_staticonly" = "yes"; then
+
	AC_MSG_RESULT([yes])
+
else
+
	AC_MSG_RESULT([no])
+
fi
+

+
AM_CONDITIONAL(DYNAMIC, test "$enable_staticonly" = "no")
+
AM_CONDITIONAL(LIBELF_BUNDLED, test "$libelf_bundled" != "no")
+

AC_SUBST([LIBSBUF_LIB])
AC_SUBST([LIBSBUF_BUNDLED])
AC_SUBST([LIBSBUF_INCLUDE])
modified external/Makefile.am
@@ -64,14 +64,25 @@ noinst_HEADERS= expat/amiga/expat_68k.h \
		include/siphash.h \
		config.h

-
EXTRA_LTLIBRARIES=	libelf.la
+
DYNLIBS=		libucl.la \
+
			libsqlite.la \
+
			libexpat.la \
+
			libsbuf.la \
+
			libpicosat.la
+
noinst_LTLIBRARIES=	libucl_static.la \
+
			libsqlite_static.la \
+
			libexpat_static.la \
+
			libsbuf_static.la \
+
			libpicosat_static.la
+
if LIBELF_BUNDLED
+
DYNLIBS+=		libelf.la
+
noinst_LTLIBRARIES+=	libelf_static.la
+
endif
+

+
if DYNAMIC
+
noinst_LTLIBRARIES+=	$(DYNLIBS)
+
endif

-
noinst_LTLIBRARIES=	libucl.la libucl_static.la \
-
			libsqlite.la libsqlite_static.la \
-
			libexpat.la libexpat_static.la \
-
			libsbuf.la libsbuf_static.la \
-
			libpicosat.la libpicosat_static.la \
-
			@LIBELF_BUNDLED@

libelf_la_SOURCES=	libelf/elf.c \
			libelf/elf_begin.c \
modified libpkg/Makefile.am
@@ -1,7 +1,6 @@
EXTRA_DIST=		libpkg.ver

pkg_common_cflags=	-I$(top_srcdir)/libpkg -I$(top_builddir)/libpkg \
-
			@LIBELF_INCLUDE@ \
			@LDNS_CFLAGS@ \
			-I$(top_srcdir)/external/libsbuf \
			-I$(top_srcdir)/external/expat/lib \
@@ -12,6 +11,11 @@ pkg_common_cflags= -I$(top_srcdir)/libpkg -I$(top_builddir)/libpkg \
			-I$(top_srcdir)/external/include \
			-DPREFIX=\"$(prefix)\" \
			-Wno-pointer-sign
+

+
if LIBELF_BUNDLED
+
pkg_common_cflags+=	-I$(top_srcdir)/external/libelf
+
endif
+

libpkg_la_SOURCES=	pkg.c \
			backup.c \
			dns_utils.c \
@@ -61,7 +65,6 @@ libpkg_la_LIBADD= $(top_builddir)/external/libucl.la \
			$(top_builddir)/external/libsbuf.la \
			$(top_builddir)/external/libpicosat.la \
			@REPOS_LDADD@ \
-
			@LIBELF_LIB@ \
			@LIBEXECINFO_LIB@ \
			@LDNS_LIBS@ \
			-larchive \
@@ -70,11 +73,20 @@ libpkg_la_LIBADD= $(top_builddir)/external/libucl.la \
			-lssl \
			-lcrypto \
			-lm
+
if LIBELF_BUNDLED
+
libpkg_la_LIBADD+=	$(top_builddir)/external/libelf.la
+
else
+
libpkg_la_LIBADD+=	-lelf
+
endif

libpkg_la_LDFLAGS=	-version-info @LIBPKG_SO_VERSION@ -Wl,--version-script=$(srcdir)/libpkg.ver
EXTRA_libpkg_la_DEPENDENCIES=	@REPOS_LDADD@ libpkg.ver

-
lib_LTLIBRARIES=	libpkg.la libpkg_static.la
+
DYNLIBS=		libpkg.la
+
lib_LTLIBRARIES=	libpkg_static.la
+
if DYNAMIC
+
lib_LTLIBRARIES+=	$(DYNLIBS)
+
endif
include_HEADERS=	pkg.h

libpkg_static_la_SOURCES=	$(libpkg_la_SOURCES)
modified libpkg/repo/binary/Makefile.am
@@ -19,5 +19,10 @@ librepo_binary_static_la_LDFLAGS= -all-static
librepo_binary_static_la_SOURCES=	$(librepo_binary_la_SOURCES)
librepo_binary_static_la_CFLAGS=	$(pkg_common_cflags) -static

-
noinst_LTLIBRARIES= librepo_binary.la librepo_binary_static.la
+
DYNLIBS=		librepo_binary.la
+
noinst_LTLIBRARIES= librepo_binary_static.la
+
if DYNAMIC
+
noinst_LTLIBRARIES+=	$(DYNLIBS)
+
endif
+

noinst_HEADERS=		binary.h binary_private.h
modified src/Makefile.am
@@ -53,7 +53,6 @@ pkg_static_LDADD= $(top_builddir)/libpkg/libpkg_static.la \
			$(pkg_OBJECTS) \
			@LIBJAIL_LIB@ \
			@LIBEXECINFO_LIB@ \
-
			@LIBELF_LIB@ \
			@LDNS_LIBS@ \
			-lfetch \
			-larchive \
@@ -65,7 +64,15 @@ pkg_static_LDADD= $(top_builddir)/libpkg/libpkg_static.la \
			-lcrypto \
			-lmd \
			-lm
+
if !LIBELF_BUNDLED
+
pkg_static_LDADD+=	-lelf
+
endif
+

pkg_static_LDFLAGS=	-all-static
-
sbin_PROGRAMS=		pkg pkg-static
+
DYNPROG=		pkg
+
sbin_PROGRAMS=		pkg-static
+
if DYNAMIC
+
sbin_PROGRAMS+=		$(DYNPROG)
+
endif

dist_sysconf_DATA=	pkg.conf.sample