From a6ce32567a4560df2d51165c228bd1588a31e86e Mon Sep 17 00:00:00 2001
From: Olivier Dion <olivier.dion@savoirfairelinux.com>
Date: Tue, 13 Jul 2021 09:37:04 -0400
Subject: [PATCH] contrib: Add Guile 3.0.7

Change-Id: I5340a0215512be416a618c526f8a0962c8401087
---
 configure.ac                   | 11 ++++++++++-
 contrib/src/guile/SHA512SUMS   |  1 +
 contrib/src/guile/package.json | 24 ++++++++++++++++++++++++
 contrib/src/guile/rules.mak    | 30 ++++++++++++++++++++++++++++++
 test/Makefile.am               |  6 +++++-
 5 files changed, 70 insertions(+), 2 deletions(-)
 create mode 100644 contrib/src/guile/SHA512SUMS
 create mode 100644 contrib/src/guile/package.json
 create mode 100644 contrib/src/guile/rules.mak

diff --git a/configure.ac b/configure.ac
index 8c3db9caee..9af84db15f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,6 +46,12 @@ AC_ARG_ENABLE([fuzzing],
 AM_CONDITIONAL([ENABLE_FUZZING], [test "x$enable_fuzzing" = "xyes"])
 AM_COND_IF([ENABLE_FUZZING], [AC_CONFIG_FILES([test/fuzzing/Makefile])])
 
+AC_ARG_ENABLE([agent],
+  AS_HELP_STRING([--enable-agent],
+    [Build agent]))
+AM_CONDITIONAL([ENABLE_AGENT], [test "x$enable_agent" = "xyes"])
+AM_COND_IF([ENABLE_AGENT], [AC_CONFIG_FILES([test/agent/Makefile])])
+
 dnl Check for programs
 AC_PROG_CC
 AC_PROG_CXX
@@ -280,6 +286,10 @@ dnl Check for pjproject
 PKG_CHECK_MODULES(PJPROJECT, libpjproject,,
   AC_MSG_ERROR([Missing pjproject files]))
 
+dnl Guile
+AM_COND_IF([ENABLE_AGENT],
+  [PKG_CHECK_MODULES(GUILE, [guile-3.0 >= 3.0.7],, AC_MSG_ERROR([Missing guile files]))],)
+
 PKG_CHECK_MODULES([YAMLCPP], [yaml-cpp >= 0.5.1],,
   AC_MSG_ERROR([yaml-cpp not found]))
 
@@ -659,7 +669,6 @@ AC_CONFIG_FILES([Makefile \
                  test/Makefile\
                  test/sip/Makefile
                  test/unitTest/Makefile \
-                 test/agent/Makefile \
                  man/Makefile \
                  doc/Makefile \
                  doc/doxygen/Makefile])
diff --git a/contrib/src/guile/SHA512SUMS b/contrib/src/guile/SHA512SUMS
new file mode 100644
index 0000000000..a2d3cbddd1
--- /dev/null
+++ b/contrib/src/guile/SHA512SUMS
@@ -0,0 +1 @@
+d7b159e109fd4a08231ef9b961376e71c2872f08d47d82896d96ccac250f5677b35be9a8ce3b9a758bd2ed78d6451e4fdd844408a1baf684256d9bfa09999f3f  guile-3.0.7.tar.gz
\ No newline at end of file
diff --git a/contrib/src/guile/package.json b/contrib/src/guile/package.json
new file mode 100644
index 0000000000..2869d5c52a
--- /dev/null
+++ b/contrib/src/guile/package.json
@@ -0,0 +1,24 @@
+{
+    "name": "guile",
+    "version": "3.0.7",
+    "url": "https://ftp.gnu.org/gnu/guile/guile-__VERSION__.tar.gz"
+    "deps": [
+        "gmp",
+        "iconv"
+        "libintl",
+        "libltdl",
+        "libunistring",
+        "libgc",
+        "libffi",
+    ],
+    "patches": [],
+    "win_patches": [],
+    "project_paths": [
+    ],
+    "with_env" : "",
+    "custom_scripts": {
+        "pre_build": [],
+        "build": [],
+        "post_build": []
+    }
+}
diff --git a/contrib/src/guile/rules.mak b/contrib/src/guile/rules.mak
new file mode 100644
index 0000000000..361704b531
--- /dev/null
+++ b/contrib/src/guile/rules.mak
@@ -0,0 +1,30 @@
+# GNU Guile
+
+GUILE_VERSION := 3.0.7
+GUILE_URL     := https://ftp.gnu.org/gnu/guile/guile-${GUILE_VERSION}.tar.gz
+
+ifeq ($(call need_pkg "libguile-3.0 >= 3.0.7"),)
+PKGS_FOUND += guile
+endif
+
+DEPS_guile = gmp iconv
+
+$(TARBALLS)/guile-$(GUILE_VERSION).tar.gz:
+	$(call download,$(GUILE_URL))
+
+.sum-guile: guile-$(GUILE_VERSION).tar.gz
+
+guile: guile-$(GUILE_VERSION).tar.gz .sum-guile
+	$(UNPACK)
+	$(UPDATE_AUTOCONFIG)
+	$(MOVE)
+
+GUILE_CONF := \
+	--enable-static \
+	--disable-shared \
+	$(HOSTCONF)
+
+.guile: guile
+	cd $< && $(HOSTVARS) ./configure $(GUILE_CONF)
+	cd $< && $(MAKE) install
+	touch $@
diff --git a/test/Makefile.am b/test/Makefile.am
index 1d65e7b9e3..ce5d4e7eb6 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,5 +1,9 @@
-SUBDIRS = unitTest agent
+SUBDIRS = unitTest
 SUBDIRS += sip
 if ENABLE_FUZZING
 SUBDIRS += fuzzing
 endif
+
+if ENABLE_AGENT
+SUBDIRS += agent
+endif
-- 
GitLab