[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.