1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00
guile/module/Makefile.am
Andy Wingo 2e26538d6a Replace libltdl with raw dlopen, dlsym
* NEWS: Update.
* am/bootstrap.am (SOURCES):
* module/Makefile.am (SOURCES): Add system/foreign-library.scm.
* configure.ac: Replace ltdl check with -ldl check.
* libguile/dynl.c: Rewrite to just expose core dlopen / dlsym / etc to a
  helper Scheme module.
  (scm_dynamic_link, scm_dynamic_pointer, scm_dynamic_function)
  (scm_dynamic_object_p, scm_dynamic_call): Rewrite in terms of (system
  foreign-library).
* libguile/extensions.c (load_extension): Avoid scm_dynamic_call.
* module/system/foreign-library.scm: New file.
* module/oop/goops.scm (<dynamic-object>): Hackily export
  <foreign-library> instead of a class here.
* doc/ref/api-foreign.texi (Foreign Function Interface): Rewrite to only
  document the new interfaces.  Eventually we will deprecate
  dynamic-link and friends.
* doc/ref/guile.texi (API Reference): Move Foreign Objects after Foreign
  Function Interface.  Seems there should be some closer relationship
  but this will do for now.
* doc/ref/tour.texi (Putting Extensions into Modules):
* doc/ref/libguile-parallel.texi (Parallel Installations): Update for
  rename of Modules and Extensions to Foreign Extensions.
* libguile/deprecated.h:
* libguile/deprecated.c (scm_dynamic_unlink): Deprecate.
* libguile/guile.c: Remove ltdl include.
* test-suite/tests/foreign.test: Update tests to use new API, and update
  error expectations.
2021-02-03 23:02:21 +01:00

431 lines
12 KiB
Makefile

## Process this file with automake to produce Makefile.in.
##
## Copyright (C) 2009-2021 Free Software Foundation, Inc.
##
## This file is part of GUILE.
##
## GUILE is free software; you can redistribute it and/or modify it
## under the terms of the GNU Lesser General Public License as
## published by the Free Software Foundation; either version 3, or
## (at your option) any later version.
##
## GUILE is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU Lesser General Public License for more details.
##
## You should have received a copy of the GNU Lesser General Public
## License along with GUILE; see the file COPYING.LESSER. If not,
## write to the Free Software Foundation, Inc., 51 Franklin Street,
## Fifth Floor, Boston, MA 02110-1301 USA
include $(top_srcdir)/am/guilec
# We're at the root of the module hierarchy.
modpath =
VM_TARGETS := system/vm/assembler.go system/vm/disassembler.go
$(VM_TARGETS): $(top_builddir)/libguile/vm-operations.h
ice-9/boot-9.go: ice-9/boot-9.scm ice-9/quasisyntax.scm ice-9/r6rs-libraries.scm ice-9/r7rs-libraries.scm
ice-9/match.go: ice-9/match.scm ice-9/match.upstream.scm
srfi/srfi-64.go: srfi/srfi-64.scm srfi/srfi-64/testing.scm
$(nobase_ccache_DATA): ../bootstrap/ice-9/eval.go
# Keep this rule in sync with that in `am/guilec'.
ice-9/psyntax-pp.go: ice-9/psyntax.scm ice-9/psyntax-pp.scm
$(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \
$(top_builddir)/meta/build-env \
guild compile --target="$(host)" $(GUILE_WARNINGS) $(GUILE_OPTIMIZATIONS) \
-L "$(abs_srcdir)" -L "$(abs_builddir)" \
-L "$(abs_top_srcdir)/guile-readline" \
-o "ice-9/psyntax-pp.go" "$(srcdir)/ice-9/psyntax.scm"
SOURCES = \
ice-9/eval.scm \
ice-9/psyntax-pp.scm \
\
language/cps.scm \
language/cps/closure-conversion.scm \
language/cps/compile-bytecode.scm \
language/cps/contification.scm \
language/cps/cse.scm \
language/cps/dce.scm \
language/cps/devirtualize-integers.scm \
language/cps/effects-analysis.scm \
language/cps/graphs.scm \
language/cps/intmap.scm \
language/cps/intset.scm \
language/cps/licm.scm \
language/cps/loop-instrumentation.scm \
language/cps/optimize.scm \
language/cps/peel-loops.scm \
language/cps/prune-top-level-scopes.scm \
language/cps/reify-primitives.scm \
language/cps/renumber.scm \
language/cps/rotate-loops.scm \
language/cps/self-references.scm \
language/cps/simplify.scm \
language/cps/slot-allocation.scm \
language/cps/spec.scm \
language/cps/specialize-primcalls.scm \
language/cps/specialize-numbers.scm \
language/cps/split-rec.scm \
language/cps/switch.scm \
language/cps/type-checks.scm \
language/cps/type-fold.scm \
language/cps/types.scm \
language/cps/utils.scm \
language/cps/verify.scm \
language/cps/with-cps.scm \
\
language/tree-il.scm \
language/tree-il/analyze.scm \
language/tree-il/compile-bytecode.scm \
language/tree-il/compile-cps.scm \
language/tree-il/cps-primitives.scm \
language/tree-il/debug.scm \
language/tree-il/effects.scm \
language/tree-il/eta-expand.scm \
language/tree-il/fix-letrec.scm \
language/tree-il/letrectify.scm \
language/tree-il/optimize.scm \
language/tree-il/peval.scm \
language/tree-il/primitives.scm \
language/tree-il/spec.scm \
\
ice-9/and-let-star.scm \
ice-9/arrays.scm \
ice-9/atomic.scm \
ice-9/binary-ports.scm \
ice-9/boot-9.scm \
ice-9/buffered-input.scm \
ice-9/calling.scm \
ice-9/command-line.scm \
ice-9/common-list.scm \
ice-9/control.scm \
ice-9/copy-tree.scm \
ice-9/curried-definitions.scm \
ice-9/deprecated.scm \
ice-9/documentation.scm \
ice-9/eval-string.scm \
ice-9/exceptions.scm \
ice-9/expect.scm \
ice-9/fdes-finalizers.scm \
ice-9/format.scm \
ice-9/ftw.scm \
ice-9/futures.scm \
ice-9/gap-buffer.scm \
ice-9/getopt-long.scm \
ice-9/hash-table.scm \
ice-9/hcons.scm \
ice-9/history.scm \
ice-9/i18n.scm \
ice-9/iconv.scm \
ice-9/lineio.scm \
ice-9/list.scm \
ice-9/local-eval.scm \
ice-9/ls.scm \
ice-9/match.scm \
ice-9/networking.scm \
ice-9/null.scm \
ice-9/occam-channel.scm \
ice-9/optargs.scm \
ice-9/peg.scm \
ice-9/peg/cache.scm \
ice-9/peg/codegen.scm \
ice-9/peg/simplify-tree.scm \
ice-9/peg/string-peg.scm \
ice-9/peg/using-parsers.scm \
ice-9/poe.scm \
ice-9/poll.scm \
ice-9/popen.scm \
ice-9/ports.scm \
ice-9/posix.scm \
ice-9/pretty-print.scm \
ice-9/q.scm \
ice-9/r5rs.scm \
ice-9/rdelim.scm \
ice-9/receive.scm \
ice-9/regex.scm \
ice-9/runq.scm \
ice-9/rw.scm \
ice-9/safe-r5rs.scm \
ice-9/safe.scm \
ice-9/sandbox.scm \
ice-9/save-stack.scm \
ice-9/scm-style-repl.scm \
ice-9/serialize.scm \
ice-9/session.scm \
ice-9/slib.scm \
ice-9/stack-catch.scm \
ice-9/streams.scm \
ice-9/string-fun.scm \
ice-9/suspendable-ports.scm \
ice-9/textual-ports.scm \
ice-9/threads.scm \
ice-9/time.scm \
ice-9/top-repl.scm \
ice-9/unicode.scm \
ice-9/vlist.scm \
ice-9/weak-vector.scm \
\
language/brainfuck/parse.scm \
language/brainfuck/compile-scheme.scm \
language/brainfuck/compile-tree-il.scm \
language/brainfuck/spec.scm \
\
language/bytecode.scm \
language/bytecode/spec.scm \
\
language/ecmascript/tokenize.scm \
language/ecmascript/parse.scm \
language/ecmascript/impl.scm \
language/ecmascript/base.scm \
language/ecmascript/function.scm \
language/ecmascript/array.scm \
language/ecmascript/compile-tree-il.scm \
language/ecmascript/spec.scm \
\
language/elisp/falias.scm \
language/elisp/lexer.scm \
language/elisp/parser.scm \
language/elisp/bindings.scm \
language/elisp/compile-tree-il.scm \
language/elisp/runtime.scm \
language/elisp/runtime/function-slot.scm \
language/elisp/runtime/value-slot.scm \
language/elisp/spec.scm \
\
language/scheme/compile-tree-il.scm \
language/scheme/decompile-tree-il.scm \
language/scheme/spec.scm \
\
language/value/spec.scm \
\
rnrs/base.scm \
rnrs/conditions.scm \
rnrs/control.scm \
rnrs/enums.scm \
rnrs/eval.scm \
rnrs/exceptions.scm \
rnrs/files.scm \
rnrs/hashtables.scm \
rnrs/lists.scm \
rnrs/mutable-pairs.scm \
rnrs/mutable-strings.scm \
rnrs/programs.scm \
rnrs/r5rs.scm \
rnrs/sorting.scm \
rnrs/syntax-case.scm \
rnrs/unicode.scm \
rnrs/arithmetic/bitwise.scm \
rnrs/arithmetic/fixnums.scm \
rnrs/arithmetic/flonums.scm \
rnrs/bytevectors.scm \
rnrs/io/simple.scm \
rnrs/io/ports.scm \
rnrs/records/inspection.scm \
rnrs/records/procedural.scm \
rnrs/records/syntactic.scm \
rnrs.scm \
\
oop/goops.scm \
oop/goops/active-slot.scm \
oop/goops/composite-slot.scm \
oop/goops/describe.scm \
oop/goops/internal.scm \
oop/goops/save.scm \
oop/goops/stklos.scm \
oop/goops/accessors.scm \
oop/goops/simple.scm \
\
scheme/base.scm \
scheme/case-lambda.scm \
scheme/char.scm \
scheme/complex.scm \
scheme/cxr.scm \
scheme/eval.scm \
scheme/file.scm \
scheme/inexact.scm \
scheme/lazy.scm \
scheme/load.scm \
scheme/process-context.scm \
scheme/r5rs.scm \
scheme/read.scm \
scheme/repl.scm \
scheme/time.scm \
scheme/write.scm \
\
scripts/compile.scm \
scripts/disassemble.scm \
scripts/display-commentary.scm \
scripts/doc-snarf.scm \
scripts/frisk.scm \
scripts/generate-autoload.scm \
scripts/help.scm \
scripts/lint.scm \
scripts/list.scm \
scripts/punify.scm \
scripts/read-scheme-source.scm \
scripts/read-text-outline.scm \
scripts/use2dot.scm \
scripts/snarf-check-and-output-texi.scm \
scripts/summarize-guile-TODO.scm \
scripts/api-diff.scm \
scripts/read-rfc822.scm \
scripts/snarf-guile-m4-docs.scm \
scripts/autofrisk.scm \
scripts/scan-api.scm \
\
srfi/srfi-1.scm \
srfi/srfi-2.scm \
srfi/srfi-4.scm \
srfi/srfi-4/gnu.scm \
srfi/srfi-6.scm \
srfi/srfi-8.scm \
srfi/srfi-9.scm \
srfi/srfi-9/gnu.scm \
srfi/srfi-10.scm \
srfi/srfi-11.scm \
srfi/srfi-13.scm \
srfi/srfi-14.scm \
srfi/srfi-16.scm \
srfi/srfi-17.scm \
srfi/srfi-18.scm \
srfi/srfi-19.scm \
srfi/srfi-26.scm \
srfi/srfi-27.scm \
srfi/srfi-28.scm \
srfi/srfi-31.scm \
srfi/srfi-34.scm \
srfi/srfi-35.scm \
srfi/srfi-37.scm \
srfi/srfi-38.scm \
srfi/srfi-41.scm \
srfi/srfi-42.scm \
srfi/srfi-43.scm \
srfi/srfi-39.scm \
srfi/srfi-45.scm \
srfi/srfi-60.scm \
srfi/srfi-64.scm \
srfi/srfi-67.scm \
srfi/srfi-69.scm \
srfi/srfi-71.scm \
srfi/srfi-88.scm \
srfi/srfi-98.scm \
srfi/srfi-111.scm \
srfi/srfi-171.scm \
srfi/srfi-171/gnu.scm \
srfi/srfi-171/meta.scm \
\
statprof.scm \
\
system/base/pmatch.scm \
system/base/syntax.scm \
system/base/compile.scm \
system/base/optimize.scm \
system/base/language.scm \
system/base/lalr.scm \
system/base/message.scm \
system/base/target.scm \
system/base/types.scm \
system/base/types/internal.scm \
system/base/ck.scm \
\
system/foreign.scm \
system/foreign-library.scm \
system/foreign-object.scm \
\
system/repl/debug.scm \
system/repl/error-handling.scm \
system/repl/common.scm \
system/repl/command.scm \
system/repl/repl.scm \
system/repl/server.scm \
system/repl/coop-server.scm \
\
system/vm/assembler.scm \
system/vm/coverage.scm \
system/vm/debug.scm \
system/vm/disassembler.scm \
system/vm/dwarf.scm \
system/vm/elf.scm \
system/vm/frame.scm \
system/vm/inspect.scm \
system/vm/linker.scm \
system/vm/loader.scm \
system/vm/program.scm \
system/vm/trace.scm \
system/vm/trap-state.scm \
system/vm/traps.scm \
system/vm/vm.scm \
\
system/syntax.scm \
\
system/xref.scm \
\
sxml/apply-templates.scm \
sxml/fold.scm \
sxml/match.scm \
sxml/simple.scm \
sxml/ssax/input-parse.scm \
sxml/ssax.scm \
sxml/transform.scm \
sxml/xpath.scm \
\
texinfo.scm \
texinfo/docbook.scm \
texinfo/html.scm \
texinfo/indexing.scm \
texinfo/string-utils.scm \
texinfo/plain-text.scm \
texinfo/reflection.scm \
texinfo/serialize.scm \
\
web/client.scm \
web/http.scm \
web/request.scm \
web/response.scm \
web/server.scm \
web/server/http.scm \
web/uri.scm
ELISP_SOURCES = \
language/elisp/boot.el
NOCOMP_SOURCES = \
ice-9/match.upstream.scm \
ice-9/psyntax.scm \
ice-9/r6rs-libraries.scm \
ice-9/r7rs-libraries.scm \
ice-9/quasisyntax.scm \
srfi/srfi-42/ec.scm \
srfi/srfi-64/testing.scm \
srfi/srfi-67/compare.scm \
system/base/lalr.upstream.scm \
system/repl/describe.scm \
sxml/sxml-match.ss \
sxml/upstream/SSAX.scm \
sxml/upstream/SXML-tree-trans.scm \
sxml/upstream/SXPath-old.scm \
sxml/upstream/assert.scm \
sxml/upstream/input-parse.scm
## ice-9/test.scm is not currently installed.
EXTRA_DIST += \
ice-9/test.scm \
ice-9/compile-psyntax.scm \
ice-9/ChangeLog-2008 \
scripts/ChangeLog-2008 \
scripts/README \
oop/ChangeLog-2008
ETAGS_ARGS += \
ice-9/test.scm \
ice-9/compile-psyntax.scm
ice-9/psyntax-pp.scm.gen:
$(top_builddir_absolute)/meta/guile --no-auto-compile -s $(srcdir)/ice-9/compile-psyntax.scm \
$(srcdir)/ice-9/psyntax.scm $(srcdir)/ice-9/psyntax-pp.scm
.PHONY: ice-9/psyntax-pp.scm.gen