live-bootstrap/steps-guix/guile-gnutls-v5.0.1/patches/build-target-depends-on-built-sources.patch

82 lines
2.4 KiB
Diff

--- guile-gnutls-v5.0.1/guile/src/Makefile.am
+++ guile-gnutls-v5.0.1/guile/src/Makefile.am
@@ -23,7 +23,8 @@
EXTRA_DIST = \
make-enum-map.scm make-smob-types.scm \
- make-enum-header.scm make-smob-header.scm
+ make-enum-header.scm make-smob-header.scm \
+ guile-static-main.c
# Files generated by the (gnutls build ...) modules.
GENERATED_BINDINGS = \
@@ -35,6 +36,10 @@
CLEANFILES = $(BUILT_SOURCES)
+guile_gnutls_common_cflags = \
+ $(AM_CFLAGS) $(GNULIB_CFLAGS) $(GUILE_CFLAGS) $(GNUTLS_CFLAGS)
+
+if ENABLE_SHARED
guileextension_LTLIBRARIES = guile-gnutls-v-2.la
# Use '-module' to build a "dlopenable module", in Libtool terms.
@@ -43,12 +48,26 @@
guile_gnutls_v_2_la_LDFLAGS = -module -no-undefined
guile_gnutls_v_2_la_SOURCES = core.c errors.c utils.c
-guile_gnutls_v_2_la_CFLAGS = \
- $(AM_CFLAGS) $(GNULIB_CFLAGS) $(GUILE_CFLAGS) $(GNUTLS_CFLAGS)
+guile_gnutls_v_2_la_CFLAGS = $(guile_gnutls_common_cflags)
+guile_gnutls_v_2_la_DEPENDENCIES = $(BUILT_SOURCES)
guile_gnutls_v_2_la_LIBADD = \
$(GNUTLS_LIBS) \
$(GUILE_LDFLAGS)
+else
+lib_LIBRARIES = libguile-gnutls-static.a
+libguile_gnutls_static_a_SOURCES = core.c errors.c utils.c
+libguile_gnutls_static_a_CPPFLAGS = $(AM_CPPFLAGS)
+libguile_gnutls_static_a_CFLAGS = $(guile_gnutls_common_cflags)
+libguile_gnutls_static_a_DEPENDENCIES = $(BUILT_SOURCES)
+bin_PROGRAMS = guile
+guile_SOURCES = guile-static-main.c
+guile_CPPFLAGS = $(AM_CPPFLAGS)
+guile_CFLAGS = $(guile_gnutls_common_cflags)
+guile_LDFLAGS = -static
+guile_LDADD = libguile-gnutls-static.a $(GUILE_LDFLAGS) $(GNUTLS_LIBS)
+endif
+
AM_CPPFLAGS = \
-I$(top_srcdir)/lib/includes \
-I$(top_builddir)/lib/includes \
@@ -102,7 +121,7 @@
# `$(GUILE_CFLAGS)' may contain a series of `-I' switches so it must be
# included here, even though we'd really want `$(GUILE_CPPFLAGS)'.
snarfcppopts = $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(CFLAGS) $(guile_gnutls_v_2_la_CFLAGS)
+ $(CFLAGS) $(guile_gnutls_common_cflags)
# Note: we cannot use the portable ".c.x" form, since that leads
# prerequisites to be ignored:
--- /dev/null
+++ guile-gnutls-v5.0.1/guile/src/guile-static-main.c
@@ -0,0 +1,18 @@
+#include <libguile.h>
+
+void scm_init_gnutls(void);
+
+static void
+inner_main(void *closure, int argc, char **argv)
+{
+ (void) closure;
+ scm_init_gnutls();
+ scm_shell(argc, argv);
+}
+
+int
+main(int argc, char **argv)
+{
+ scm_boot_guile(argc, argv, inner_main, NULL);
+ return 0;
+}