gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] 01/02: build: refactor for meson coexistence


From: gnunet
Subject: [gnunet] 01/02: build: refactor for meson coexistence
Date: Mon, 18 Dec 2023 22:17:01 +0100

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository gnunet.

commit 65a759077de172f99053ba00f3ccd3fd17728028
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Mon Dec 18 22:13:53 2023 +0100

    build: refactor for meson coexistence
---
 bin/Makefile.am      |  2 ++
 bin/gana_update.sh   | 59 ++++++++++++++++++++++++++++++++++
 bin/meson.build      | 16 ++++++++++
 bin/sphinx_update.sh | 35 +++++++++++++++++++++
 bootstrap            | 89 +++++-----------------------------------------------
 meson-dist-script    | 31 +-----------------
 meson.build          |  1 +
 7 files changed, 122 insertions(+), 111 deletions(-)

diff --git a/bin/Makefile.am b/bin/Makefile.am
index 6c11e26ef..18fccda56 100644
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -3,4 +3,6 @@ EXTRA_DIST = \
   grephdr.sh \
   grepsrc.sh \
   pogen.sh \
+       sphinx_update.sh \
+       gana_update.sh \
   rename.sh
diff --git a/bin/gana_update.sh b/bin/gana_update.sh
new file mode 100755
index 000000000..0707433f5
--- /dev/null
+++ b/bin/gana_update.sh
@@ -0,0 +1,59 @@
+# This is more portable than `which' but comes with
+# the caveat of not(?) properly working on busybox's ash:
+existence()
+{
+    type "$1" >/dev/null 2>&1
+}
+
+gana_update()
+{
+    if [ ! -z $GNUNET_SKIP_GANA ]; then
+      echo "Skipping GANA update"
+      return
+    fi
+    echo "Updating GANA..."
+    if existence recfmt; then
+      cwd=$PWD
+      cd contrib/gana || exit 1
+      # GNS
+      echo "Updating GNS record types"
+      cd gnu-name-system-record-types && \
+         make >/dev/null && \
+         cp gnu_name_system_record_types.h ../../../src/include/ || exit 1
+      echo "Creating default TLDs"
+      cd ../gnu-name-system-default-tlds && \
+         make >/dev/null && \
+         cp tlds.conf ../../../src/service/gns || exit 1
+      echo "Creating default GNS protocol numbers"
+      cd ../gns-protocol-numbers && \
+         make >/dev/null && \
+         cp gnu_name_system_protocols.h ../../../src/include/ || exit 1
+      echo "Creating default GNS service port nummbers"
+      cd ../gns-service-port-numbers && \
+         make >/dev/null && \
+         cp gnu_name_system_service_ports.h ../../../src/include/ || exit 1
+
+      # Signatures
+      echo "Updating GNUnet signatures"
+      cd ../gnunet-signatures && \
+         make >/dev/null && \
+         cp gnunet_signatures.h ../../../src/include || exit 1
+      # DHT Block Types
+      echo "Updating DHT record types"
+      cd ../gnunet-dht-block-types && \
+         make >/dev/null && \
+         cp gnunet_dht_block_types.h ../../../src/include || exit 1
+      echo "Generating GNUnet error types"
+      cd ../gnunet-error-codes && \
+         make >/dev/null && \
+         cp gnunet_error_codes.h ../../../src/include && \
+         cp gnunet_error_codes.c ../../../src/lib/util || exit 1
+      cd $cwd
+    else
+      echo "ERROR: No recutils found! Unable to generate recent GANA headers 
and configs."
+      exit 1
+    fi
+    echo "GANA finished"
+}
+
+gana_update
diff --git a/bin/meson.build b/bin/meson.build
new file mode 100644
index 000000000..e98bd2fb3
--- /dev/null
+++ b/bin/meson.build
@@ -0,0 +1,16 @@
+binfiles = [
+  'dosubst.awk',
+  'grephdr.sh',
+  'grepsrc.sh',
+  'pogen.sh',
+  'rename.sh',
+  'gana_update.sh',
+  'sphinx_update.sh',
+  ]
+
+foreach f : binfiles
+  configure_file(input : f,
+    output : f,
+    copy: true)
+endforeach
+
diff --git a/bin/sphinx_update.sh b/bin/sphinx_update.sh
new file mode 100755
index 000000000..6d589667c
--- /dev/null
+++ b/bin/sphinx_update.sh
@@ -0,0 +1,35 @@
+# This is more portable than `which' but comes with
+# the caveat of not(?) properly working on busybox's ash:
+existence()
+{
+    type "$1" >/dev/null 2>&1
+}
+
+sphinx_update()
+{
+    echo "Updating handbook..."
+    if existence sphinx-build; then
+      cwd=$PWD
+      cd contrib/handbook || exit 1
+      if test -e _build; then
+        make clean
+      fi
+      # GNS
+      make html >/dev/null || exit 1
+      if test -e ../../doc/handbook/html; then
+        rm -r ../../doc/handbook/html || exit 1
+      fi
+      cp -r _build/html ../../doc/handbook/ || exit 1
+      if test -e ../../doc/handbook/texinfo; then
+        rm -r ../../doc/handbook/texinfo || exit 1
+      fi
+      make info >/dev/null || exit 1
+      cp -r _build/texinfo ../../doc/handbook/ || exit 1
+      cd $cwd
+    else
+      echo "ERROR: Sphinx not found! Unable to generate recent documentation."
+      exit 1
+    fi
+}
+
+sphinx_update
diff --git a/bootstrap b/bootstrap
index b2b6e439e..348c2ce44 100755
--- a/bootstrap
+++ b/bootstrap
@@ -79,8 +79,15 @@ check_libtool()
        existence libtoolize || \
        existence glibtoolize || \
        existence slibtool; then
-        autoreconf -if || exit 1
+        if existence autoreconf; then
+          autoreconf -if
+        elif ! existence meson; then
+          echo "*** No autoconf or meson installed, please install either ***"
+          exit 1
+        fi
         . "bin/pogen.sh" || exit 1
+        . "bin/gana_update.sh" || exit 1
+        . "bin/sphinx_update.sh" || exit 1
     else
         echo "*** No libtoolize (libtool) or libtool found, please install it 
***" >&2;
         exit 1
@@ -102,84 +109,6 @@ submodules()
     fi
 }
 
-sphinx_update()
-{
-    echo "Updating handbook..."
-    if existence sphinx-build; then
-      cwd=$PWD
-      cd contrib/handbook || exit 1
-      if test -e _build; then
-        make clean
-      fi
-      # GNS
-      make html >/dev/null || exit 1
-      if test -e ../../doc/handbook/html; then
-        rm -r ../../doc/handbook/html || exit 1
-      fi
-      cp -r _build/html ../../doc/handbook/ || exit 1
-      if test -e ../../doc/handbook/texinfo; then
-        rm -r ../../doc/handbook/texinfo || exit 1
-      fi
-      make info >/dev/null || exit 1
-      cp -r _build/texinfo ../../doc/handbook/ || exit 1
-      cd $cwd
-    else
-      echo "ERROR: Sphinx not found! Unable to generate recent documentation."
-      exit 1
-    fi
-}
-
-
-gana_update()
-{
-    if [ ! -z $GNUNET_SKIP_GANA ]; then
-      echo "Skipping GANA update"
-      return
-    fi
-    echo "Updating GANA..."
-    if existence recfmt; then
-      cwd=$PWD
-      cd contrib/gana || exit 1
-      # GNS
-      echo "Updating GNS record types"
-      cd gnu-name-system-record-types && \
-         make >/dev/null && \
-         cp gnu_name_system_record_types.h ../../../src/include/ || exit 1
-      echo "Creating default TLDs"
-      cd ../gnu-name-system-default-tlds && \
-         make >/dev/null && \
-         cp tlds.conf ../../../src/service/gns || exit 1
-      echo "Creating default GNS protocol numbers"
-      cd ../gns-protocol-numbers && \
-         make >/dev/null && \
-         cp gnu_name_system_protocols.h ../../../src/include/ || exit 1
-      echo "Creating default GNS service port nummbers"
-      cd ../gns-service-port-numbers && \
-         make >/dev/null && \
-         cp gnu_name_system_service_ports.h ../../../src/include/ || exit 1
-
-      # Signatures
-      echo "Updating GNUnet signatures"
-      cd ../gnunet-signatures && \
-         make >/dev/null && \
-         cp gnunet_signatures.h ../../../src/include || exit 1
-      # DHT Block Types
-      echo "Updating DHT record types"
-      cd ../gnunet-dht-block-types && \
-         make >/dev/null && \
-         cp gnunet_dht_block_types.h ../../../src/include || exit 1
-      echo "Generating GNUnet error types"
-      cd ../gnunet-error-codes && \
-         make >/dev/null && \
-         cp gnunet_error_codes.h ../../../src/include && \
-         cp gnunet_error_codes.c ../../../src/lib/util || exit 1
-      cd $cwd
-    else
-      echo "ERROR: No recutils found! Unable to generate recent GANA headers 
and configs."
-      exit 1
-    fi
-    echo "GANA finished"
-}
 
 install_hooks()
 {
@@ -191,8 +120,6 @@ main()
 {
     cleanup
     submodules
-    gana_update
-    sphinx_update
     check_uncrustify
     check_yapf
     check_libtool
diff --git a/meson-dist-script b/meson-dist-script
index eddda1135..6bcf48f9d 100644
--- a/meson-dist-script
+++ b/meson-dist-script
@@ -2,34 +2,5 @@
 
 set -eu
 
-# This is more portable than `which' but comes with
-# the caveat of not(?) properly working on busybox's ash:
-existence()
-{
-    type "$1" >/dev/null 2>&1
-}
-
 cd "${MESON_DIST_ROOT}"
-echo "Updating handbook..."
-if existence sphinx-build; then
-  cwd=$PWD
-  cd contrib/handbook || exit 1
-  if test -e _build; then
-    make clean
-  fi
-  # GNS
-  make html >/dev/null || exit 1
-  if test -e ../../doc/handbook/html; then
-    rm -r ../../doc/handbook/html || exit 1
-  fi
-  cp -r _build/html ../../doc/handbook/ || exit 1
-  if test -e ../../doc/handbook/texinfo; then
-    rm -r ../../doc/handbook/texinfo || exit 1
-  fi
-  make info >/dev/null || exit 1
-  cp -r _build/texinfo ../../doc/handbook/ || exit 1
-  cd $cwd
-else
-  echo "ERROR: Sphinx not found! Unable to generate recent documentation."
-  exit 1
-fi
+. bin/update_sphinx.sh
diff --git a/meson.build b/meson.build
index 65c8165eb..aa9237a31 100644
--- a/meson.build
+++ b/meson.build
@@ -445,6 +445,7 @@ configuration_inc = include_directories('.')
 
 pkg = import('pkgconfig')
 
+subdir('bin')
 subdir('src')
 subdir('doc')
 subdir('contrib')

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]