From: David Pirotte <david@altosw.be>
To: guile-user <guile-user@gnu.org>
Subject: guile-cairo - patch
Date: Tue, 21 Mar 2023 02:05:31 -0300 [thread overview]
Message-ID: <20230321020531.0417f3d9@aicha> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 219 bytes --]
Hello Daniel,
Here comes 1 (attached) patch, which fixes both 'make check'
and 'make distcheck'.
Please double check, try ... and let me know or push if everything
looks good for you as well.
Thanks,
David
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-Fixing-make-check-and-make-distcheck.patch --]
[-- Type: text/x-patch, Size: 11712 bytes --]
From 1de7b5e994fd99e20849d9372963c2aadf782ed1 Mon Sep 17 00:00:00 2001
From: David Pirotte <david@altosw.be>
Date: Tue, 21 Mar 2023 01:54:04 -0300
Subject: [PATCH] Fixing make check and make distcheck
Notes: the main goal of this patch is to remove the hard coded
libguile-cairo path, which makes it impossible to run 'make check',
unless you actualy first install the version you are working
on/checking [which is 'none sense'].
Also, even with the above problem fixed, there were still a few
nitpick things to solve so that make distcheck pass.
Finally, while workig on this patch, I also made a few cosmetic
changes, mostly adding a space before and after '=' in Makefile.am
targets, as well as having each filename on its own line for targets
that requires filenames. Those changes are not commented here below.
* Makefile.am: (1) removing the env target, as we update env.in
this is not only not necessary anymore, but would actually
raise an error; (2) the CLEANFILES target misses $(GOBJECTS);
(3) using $(AM_V_GEN) in .scm.go target; (4) the EXTRA_DIST
target misses $(SOURCES), and does not need to ship autogen.sh
nor build-aux/git-version-gen.
* cairo.scm: Call (dynamic-link "libguile-cairo"),
not (dynamic-link *cairo-lib-path*).
* cairo/Makefile.am: (1) using $(AM_V_GEN) in .scm.go target; (2) in the
config.scm target, removing the @cairolibpath@ substitution; (3) the
EXTRA_DIST target misses vector-types.scm and $(NOCOMP_SOURCES).
* cairo/config.scm.in: Removing the *cairo-lib-path* definition.
* env.in: (1) define and use abs_top_srcdir and abs_top_builddir; (2)
define and export GUILE_LOAD_PATH, GUILE_LOAD_COMPILED_PATH and
LTDL_LIBRARY_PATH.
* tests/unit-tests/Makefile.am: (1) add context-pointer.scm to the TESTS
target; (2) add a TEST_EXTENSIONS = .scm target; (3) update the
TESTS_ENVIRONMENT to use $(abs_top_builddir); (4) remove the %.check
target (unecessary in 'modern' autotools).
---
Makefile.am | 26 ++++++++-----
cairo.scm | 4 +-
cairo/Makefile.am | 30 ++++++++++-----
cairo/config.scm.in | 8 ++--
env.in | 75 +++++++++++++++++++++++++++++++++---
tests/unit-tests/Makefile.am | 21 +++++-----
6 files changed, 125 insertions(+), 39 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 82e41b2..514b758 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,6 @@
# guile-cairo
# Copyright (C) 2007,2011 Andy Wingo <wingo@pobox.com>
+# Copyright (C) 2023 David Pirotte <david@altosw.be>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
@@ -15,18 +16,20 @@
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
-SUBDIRS = guile-cairo cairo examples tests doc
-
-env: Makefile env.in
- sed -e "s|@top_srcdir\@|$(shell cd $(top_srcdir) && pwd)|" \
- $(srcdir)/env.in > env
- chmod +x env
+SUBDIRS = \
+ guile-cairo \
+ cairo \
+ examples \
+ tests \
+ doc
BUILT_SOURCES = env
ACLOCAL_AMFLAGS = -I m4
-CLEANFILES = env
+CLEANFILES = \
+ env \
+ $(GOBJECTS)
GOBJECTS = $(SOURCES:%.scm=%.go)
@@ -39,7 +42,8 @@ nobase_nodist_obj_DATA = $(GOBJECTS)
GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
SUFFIXES = .scm .go
.scm.go:
- $(top_builddir)/env $(GUILD) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<"
+ $(AM_V_GEN) $(top_builddir)/env \
+ $(GUILD) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<"
SOURCES = cairo.scm
@@ -58,4 +62,8 @@ gen-ChangeLog:
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
fi
-EXTRA_DIST = env.in autogen.sh build-aux/git-version-gen HACKING COPYING.LESSER $(scm_DATA)
+EXTRA_DIST = \
+ env.in \
+ HACKING \
+ COPYING.LESSER \
+ $(SOURCES)
diff --git a/cairo.scm b/cairo.scm
index 1361d85..2cb2793 100644
--- a/cairo.scm
+++ b/cairo.scm
@@ -1,5 +1,6 @@
;; guile-cairo
;; Copyright (C) 2007, 2011 Andy Wingo <wingo at pobox dot com>
+;; Copyright (C) 2023 David Pirotte <david@altosw.be>
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU Lesser General Public License as
@@ -31,9 +32,10 @@
(module-use! (module-public-interface (current-module))
(resolve-interface '(cairo vector-types)))
+
;; This will export many things
(dynamic-call "scm_init_cairo"
- (dynamic-link *cairo-lib-path*))
+ (dynamic-link "libguile-cairo"))
(if (not (member *cairo-documentation-path* documentation-files))
(set! documentation-files (cons *cairo-documentation-path*
diff --git a/cairo/Makefile.am b/cairo/Makefile.am
index 05b5973..0299d34 100644
--- a/cairo/Makefile.am
+++ b/cairo/Makefile.am
@@ -1,5 +1,6 @@
# guile-cairo
# Copyright (C) 2007,2011 Andy Wingo <wingo@pobox.com>
+# Copyright (C) 2023 David Pirotte <david@altosw.be>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
@@ -15,11 +16,15 @@
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
-moddir=$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)/cairo
-objdir=$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache/cairo
+moddir = $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)/cairo
+objdir = $(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache/cairo
-SOURCES = config.scm vector-types.scm
-NOCOMP_SOURCES = cairo-procedures.txt
+SOURCES = \
+ config.scm \
+ vector-types.scm
+
+NOCOMP_SOURCES = \
+ cairo-procedures.txt
GOBJECTS = $(SOURCES:%.scm=%.go)
@@ -29,12 +34,12 @@ nobase_nodist_obj_DATA = $(GOBJECTS)
GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
SUFFIXES = .scm .go
.scm.go:
- $(top_builddir)/env $(GUILD) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<"
+ $(AM_V_GEN) $(top_builddir)/env \
+ $(GUILD) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<"
config.scm: Makefile config.scm.in
- sed -e "s|@cairolibpath\@|$(libdir)/libguile-cairo|" \
- -e "s|@cairodocumentationpath\@|$(moddir)/cairo-procedures.txt|" \
- $(srcdir)/config.scm.in > config.scm
+ sed -e "s|\@cairodocumentationpath\@|$(moddir)/cairo-procedures.txt|" \
+ $(srcdir)/config.scm.in > config.scm
cairo-procedures.txt.update:
echo "Generated from upstream documentation; see COPYING.docs for info." \
@@ -42,6 +47,11 @@ cairo-procedures.txt.update:
$(top_srcdir)/doc/docbook-to-guile-doc $(CAIRO_XML_DIR)/*.xml \
>> $(srcdir)/cairo-procedures.txt
-CLEANFILES = config.scm $(GOBJECTS)
+CLEANFILES = \
+ config.scm \
+ $(GOBJECTS)
-EXTRA_DIST = config.scm.in
+EXTRA_DIST = \
+ config.scm.in \
+ vector-types.scm \
+ $(NOCOMP_SOURCES)
diff --git a/cairo/config.scm.in b/cairo/config.scm.in
index ab008fb..92895b9 100644
--- a/cairo/config.scm.in
+++ b/cairo/config.scm.in
@@ -1,5 +1,6 @@
;; guile-cairo
;; Copyright (C) 2007, 2011 Andy Wingo <wingo pobox.com>
+;; Copyright (C) 2023 David Pirotte <david@altosw.be>
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU Lesser General Public License as
@@ -22,8 +23,7 @@
;;; Code:
(define-module (cairo config)
- :export (*cairo-lib-path*
- *cairo-documentation-path*))
+ :export (*cairo-documentation-path*))
-(define *cairo-lib-path* "@cairolibpath@")
-(define *cairo-documentation-path* "@cairodocumentationpath@")
+(define *cairo-documentation-path*
+ "@cairodocumentationpath@")
diff --git a/env.in b/env.in
index eb9d020..e93d212 100644
--- a/env.in
+++ b/env.in
@@ -2,6 +2,7 @@
# guile-cairo
# Copyright (C) 2007,2011 Andy Wingo <wingo@pobox.com>
+# Copyright (C) 2023 David Pirotte <david@altosw.be>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
@@ -17,15 +18,77 @@
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
-this_dir=$(cd $(dirname $0) && pwd)
-src_dir="@top_srcdir@"
-if [ "$src_dir" != "$this_dir" ]; then
- GUILE_LOAD_PATH=$src_dir/$pkg:$this_dir/$pkg:$GUILE_LOAD_PATH
+abs_top_srcdir="@abs_top_srcdir@"
+abs_top_builddir="@abs_top_builddir@"
+
+[ x"$abs_top_srcdir" = x -o ! -d "$abs_top_srcdir" -o \
+ x"$abs_top_builddir" = x -o ! -d "$abs_top_builddir" ] && {
+ echo $0: bad environment
+ echo abs_top_srcdir=$abs_top_srcdir
+ echo abs_top_builddir=$abs_top_builddir
+ exit 1
+}
+
+
+###
+### GUILE_LOAD_PATH
+###
+
+if [ x"$GUILE_LOAD_PATH" = x ]
+then
+ GUILE_LOAD_PATH="${abs_top_srcdir}"
+ if test "${abs_top_srcdir}" != "${abs_top_builddir}"; then
+ GUILE_LOAD_PATH="${abs_top_builddir}:$GUILE_LOAD_PATH"
+ fi
else
- GUILE_LOAD_PATH=$this_dir/$pkg:$GUILE_LOAD_PATH
+ GUILE_LOAD_PATH="${abs_top_srcdir}:$GUILE_LOAD_PATH"
+ if test "${abs_top_srcdir}" != "${abs_top_builddir}"; then
+ GUILE_LOAD_PATH="${abs_top_builddir}:$GUILE_LOAD_PATH"
+ fi
fi
-
+## echo $GUILE_LOAD_PATH
export GUILE_LOAD_PATH
+
+###
+### GUILE_LOAD_COMPILED_PATH
+###
+
+if [ x"$GUILE_LOAD_COMPILED_PATH" = x ]
+then
+ GUILE_LOAD_COMPILED_PATH="${abs_top_srcdir}"
+ if test "${abs_top_srcdir}" != "${abs_top_builddir}"; then
+ GUILE_LOAD_COMPILED_PATH="${abs_top_builddir}:$GUILE_LOAD_COMPILED_PATH"
+ fi
+else
+ GUILE_LOAD_COMPILED_PATH="${abs_top_srcdir}:$GUILE_LOAD_COMPILED_PATH"
+ if test "${abs_top_srcdir}" != "${abs_top_builddir}"; then
+ GUILE_LOAD_COMPILED_PATH="${abs_top_builddir}:$GUILE_LOAD_COMPILED_PATH"
+ fi
+fi
+
+## echo $GUILE_LOAD_COMPILED_PATH
+export GUILE_LOAD_COMPILED_PATH
+
+
+###
+### LTDL_LIBRARY_PATH
+###
+
+if [ x"$LTDL_LIBRARY_PATH" = x ]
+then
+ LTDL_LIBRARY_PATH="${abs_top_srcdir}/guile-cairo:${abs_top_srcdir}/guile-cairo/.libs"
+ if test "${abs_top_srcdir}" != "${abs_top_builddir}"; then
+ LTDL_LIBRARY_PATH="${abs_top_builddir}/guile-cairo:${abs_top_builddir}/guile-cairo/.libs:$LTDL_LIBRARY_PATH"
+ fi
+else
+ LTDL_LIBRARY_PATH="${abs_top_srcdir}/guile-cairo:${abs_top_srcdir}/guile-cairo/.libs:$LTDL_LIBRARY_PATH"
+ if test "${abs_top_srcdir}" != "${abs_top_builddir}"; then
+ LTDL_LIBRARY_PATH="${abs_top_builddir}/guile-cairo:${abs_top_builddir}/guile-cairo/.libs:$LTDL_LIBRARY_PATH"
+ fi
+fi
+## echo $LTDL_LIBRARY_PATH
+export LTDL_LIBRARY_PATH
+
exec "$@"
diff --git a/tests/unit-tests/Makefile.am b/tests/unit-tests/Makefile.am
index 3ba6af9..9b13bbd 100644
--- a/tests/unit-tests/Makefile.am
+++ b/tests/unit-tests/Makefile.am
@@ -16,18 +16,21 @@
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
-TESTS= \
- context-pointer.scm \
+TESTS = \
api-stability.scm \
+ context-pointer.scm \
version.scm
-TESTS_ENVIRONMENT=\
- API_FILE=$(srcdir)/cairo.api $(top_builddir)/env guile -s
+TEST_EXTENSIONS = .scm
-%.api.update:
- $(top_builddir)/env $(srcdir)/update-api $(subst ., ,$*) > $(srcdir)/$*.api
+TESTS_ENVIRONMENT = \
+ API_FILE=$(srcdir)/cairo.api \
+ $(abs_top_builddir)/env $(GUILE) --no-auto-compile
-%.check: %
- $(TESTS_ENVIRONMENT) $*
+%.api.update:
+ $(abs_top_builddir)/env \
+ $(srcdir)/update-api $(subst ., ,$*) > $(srcdir)/$*.api
-EXTRA_DIST=$(TESTS) cairo.api
+EXTRA_DIST = \
+ $(TESTS) \
+ cairo.api
--
2.39.2
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next reply other threads:[~2023-03-21 5:05 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-21 5:05 David Pirotte [this message]
2023-03-21 16:04 ` guile-cairo - patch lloda
2023-03-23 4:07 ` David Pirotte
2023-03-24 3:19 ` David Pirotte
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230321020531.0417f3d9@aicha \
--to=david@altosw.be \
--cc=guile-user@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).