mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-25 20:46:32 +01:00
fix(guile-avahi): build static Guile bindings instead of dlopenable avahi extension
This commit is contained in:
parent
74da573c33
commit
49537b4100
2 changed files with 249 additions and 10 deletions
|
|
@ -2,30 +2,101 @@
|
|||
|
||||
src_prepare() {
|
||||
default
|
||||
autoreconf -fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local host_triplet pkg_config_path
|
||||
local host_triplet pkg_config_path guile_cflags guile_static_libs
|
||||
local avahi_cflags avahi_static_libs
|
||||
host_triplet="$(gcc -dumpmachine)"
|
||||
pkg_config_path="${LIBDIR}/pkgconfig"
|
||||
pkg_config_path="${LIBDIR}/pkgconfig:${PREFIX}/lib/pkgconfig:${PREFIX}/share/pkgconfig"
|
||||
guile_cflags="$(PKG_CONFIG_LIBDIR="${pkg_config_path}" PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
/usr/bin/pkg-config --cflags guile-3.0)"
|
||||
guile_static_libs="$(PKG_CONFIG_LIBDIR="${pkg_config_path}" PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
/usr/bin/pkg-config --static --libs guile-3.0)"
|
||||
avahi_cflags="$(PKG_CONFIG_LIBDIR="${pkg_config_path}" PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
/usr/bin/pkg-config --cflags avahi-client)"
|
||||
avahi_static_libs="$(PKG_CONFIG_LIBDIR="${pkg_config_path}" PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
/usr/bin/pkg-config --static --libs avahi-client)"
|
||||
|
||||
PATH="${PREFIX}/bin:/usr/bin:/bin" \
|
||||
PKG_CONFIG_LIBDIR="${pkg_config_path}:${PREFIX}/lib/pkgconfig" \
|
||||
PKG_CONFIG_PATH="${pkg_config_path}:${PREFIX}/lib/pkgconfig" \
|
||||
LD_LIBRARY_PATH="${LIBDIR}:${LD_LIBRARY_PATH}" \
|
||||
PKG_CONFIG="/usr/bin/pkg-config" \
|
||||
PKG_CONFIG_LIBDIR="${pkg_config_path}" \
|
||||
PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
LD_LIBRARY_PATH="${LIBDIR}:${PREFIX}/lib:${LD_LIBRARY_PATH}" \
|
||||
GUILE_CFLAGS="${guile_cflags}" \
|
||||
GUILE_LDFLAGS="${guile_static_libs}" \
|
||||
AVAHI_CFLAGS="${avahi_cflags}" \
|
||||
AVAHI_LIBS="${avahi_static_libs}" \
|
||||
./configure \
|
||||
--prefix="${PREFIX}" \
|
||||
--libdir="${LIBDIR}" \
|
||||
--host="${host_triplet}" \
|
||||
--build="${host_triplet}"
|
||||
--build="${host_triplet}" \
|
||||
--enable-static \
|
||||
--disable-shared \
|
||||
'--with-guilemoduledir=$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)'
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
make "${MAKEJOBS}" -f Makefile PREFIX="${PREFIX}" \
|
||||
CROSS_COMPILING_VARIABLE="AVAHI_GUILE_CROSS_COMPILING=yes"
|
||||
local pkg_config_path guile_cflags guile_static_libs avahi_cflags avahi_static_libs
|
||||
pkg_config_path="${LIBDIR}/pkgconfig:${PREFIX}/lib/pkgconfig:${PREFIX}/share/pkgconfig"
|
||||
guile_cflags="$(PKG_CONFIG_LIBDIR="${pkg_config_path}" PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
/usr/bin/pkg-config --cflags guile-3.0)"
|
||||
guile_static_libs="$(PKG_CONFIG_LIBDIR="${pkg_config_path}" PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
/usr/bin/pkg-config --static --libs guile-3.0)"
|
||||
avahi_cflags="$(PKG_CONFIG_LIBDIR="${pkg_config_path}" PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
/usr/bin/pkg-config --cflags avahi-client)"
|
||||
avahi_static_libs="$(PKG_CONFIG_LIBDIR="${pkg_config_path}" PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
/usr/bin/pkg-config --static --libs avahi-client)"
|
||||
|
||||
CPPFLAGS="${guile_cflags} ${avahi_cflags} ${CPPFLAGS:-}" \
|
||||
GUILE_CFLAGS="${guile_cflags}" \
|
||||
GUILE_LDFLAGS="${guile_static_libs}" \
|
||||
AVAHI_CFLAGS="${avahi_cflags}" \
|
||||
AVAHI_LIBS="${avahi_static_libs}" \
|
||||
default_src_compile
|
||||
}
|
||||
|
||||
src_install() {
|
||||
make -f Makefile install PREFIX="${PREFIX}" DESTDIR="${DESTDIR}" \
|
||||
CROSS_COMPILING_VARIABLE="AVAHI_GUILE_CROSS_COMPILING=yes"
|
||||
local pkg_config_path guile_cflags guile_static_libs avahi_cflags avahi_static_libs
|
||||
pkg_config_path="${LIBDIR}/pkgconfig:${PREFIX}/lib/pkgconfig:${PREFIX}/share/pkgconfig"
|
||||
guile_cflags="$(PKG_CONFIG_LIBDIR="${pkg_config_path}" PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
/usr/bin/pkg-config --cflags guile-3.0)"
|
||||
guile_static_libs="$(PKG_CONFIG_LIBDIR="${pkg_config_path}" PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
/usr/bin/pkg-config --static --libs guile-3.0)"
|
||||
avahi_cflags="$(PKG_CONFIG_LIBDIR="${pkg_config_path}" PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
/usr/bin/pkg-config --cflags avahi-client)"
|
||||
avahi_static_libs="$(PKG_CONFIG_LIBDIR="${pkg_config_path}" PKG_CONFIG_PATH="${pkg_config_path}" \
|
||||
/usr/bin/pkg-config --static --libs avahi-client)"
|
||||
|
||||
CPPFLAGS="${guile_cflags} ${avahi_cflags} ${CPPFLAGS:-}" \
|
||||
GUILE_CFLAGS="${guile_cflags}" \
|
||||
GUILE_LDFLAGS="${guile_static_libs}" \
|
||||
AVAHI_CFLAGS="${avahi_cflags}" \
|
||||
AVAHI_LIBS="${avahi_static_libs}" \
|
||||
default_src_install
|
||||
}
|
||||
|
||||
src_postprocess() {
|
||||
local guile_site_path guile_core_site guile_site_ccache guile_core_ccache
|
||||
|
||||
default_src_postprocess
|
||||
|
||||
if find "${DESTDIR}" -type f \( -name '*.so' -o -name '*.so.*' \) | grep -q .; then
|
||||
echo "guile-avahi: shared objects are forbidden in static profile." >&2
|
||||
false
|
||||
fi
|
||||
|
||||
guile_site_path="${DESTDIR}${PREFIX}/share/guile/site/3.0"
|
||||
guile_core_site="${PREFIX}/share/guile/3.0"
|
||||
guile_site_ccache="${DESTDIR}${LIBDIR}/guile/3.0/site-ccache"
|
||||
guile_core_ccache="${LIBDIR}/guile/3.0/ccache"
|
||||
|
||||
PATH="${DESTDIR}${PREFIX}/bin:${PREFIX}/bin:/usr/bin:/bin" \
|
||||
GUILE_LOAD_PATH="${guile_site_path}:${guile_core_site}" \
|
||||
GUILE_LOAD_COMPILED_PATH="${guile_site_ccache}:${guile_core_ccache}" \
|
||||
GUILE_SYSTEM_PATH="${guile_site_path}:${guile_core_site}" \
|
||||
GUILE_SYSTEM_COMPILED_PATH="${guile_site_ccache}:${guile_core_ccache}" \
|
||||
"${DESTDIR}${PREFIX}/bin/guile" -c '(use-modules (avahi) (avahi client)) (display "avahi-module-ok\n")'
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue