Disable Common Lisp / UFFI target language
Clean up to disable target languages that have been neglected/not functional. Target language be fully deleted in SWIG 4.1 unless a new maintainer brings it up to an acceptable status (experimental or supported). Issue #1447
This commit is contained in:
parent
8aa4086136
commit
f63d0db21b
12 changed files with 12 additions and 119 deletions
2
ANNOUNCE
2
ANNOUNCE
|
|
@ -12,7 +12,7 @@ generates the wrapper code needed to make C and C++ code accessible
|
||||||
from other programming languages including Perl, Python, Tcl, Ruby,
|
from other programming languages including Perl, Python, Tcl, Ruby,
|
||||||
PHP, C#, Go, Java, Javascript, Lua, Scheme (Guile, MzScheme, CHICKEN),
|
PHP, C#, Go, Java, Javascript, Lua, Scheme (Guile, MzScheme, CHICKEN),
|
||||||
D, Ocaml, Octave, R, Scilab, Common Lisp (CLISP,
|
D, Ocaml, Octave, R, Scilab, Common Lisp (CLISP,
|
||||||
Allegro CL, CFFI, UFFI). SWIG can also export its parse tree in
|
Allegro CL, CFFI). SWIG can also export its parse tree in
|
||||||
the form of XML and Lisp s-expressions. Major applications of SWIG
|
the form of XML and Lisp s-expressions. Major applications of SWIG
|
||||||
include generation of scripting language extension modules, rapid
|
include generation of scripting language extension modules, rapid
|
||||||
prototyping, testing, and user interface development for large
|
prototyping, testing, and user interface development for large
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,10 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
|
||||||
Version 4.0.0 (in progress)
|
Version 4.0.0 (in progress)
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
2019-02-04: wsfulton
|
||||||
|
[UFFI] #1447 Common Lisp UFFI has been disabled as a target language in SWIG as part of a
|
||||||
|
clean up to remove target languages that have been neglected/not functional.
|
||||||
|
|
||||||
2019-02-04: wsfulton
|
2019-02-04: wsfulton
|
||||||
[Pike] #1447 Pike has been disabled as a target language in SWIG as part of a
|
[Pike] #1447 Pike has been disabled as a target language in SWIG as part of a
|
||||||
clean up to remove target languages that have been neglected/not functional.
|
clean up to remove target languages that have been neglected/not functional.
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ It is significant to note that, while this is a vendor-specific
|
||||||
module, we would like to acknowledge the current and ongoing
|
module, we would like to acknowledge the current and ongoing
|
||||||
work by developers in the open source lisp community that are
|
work by developers in the open source lisp community that are
|
||||||
working on similar interfaces to implementation-independent
|
working on similar interfaces to implementation-independent
|
||||||
foreign function interfaces (UFFI or CFFI, for example). Such
|
foreign function interfaces (CFFI, for example). Such
|
||||||
work can only benefit the lisp community, and we would not
|
work can only benefit the lisp community, and we would not
|
||||||
be unhappy to see some enterprising folk use this work to add
|
be unhappy to see some enterprising folk use this work to add
|
||||||
to it.
|
to it.
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@
|
||||||
<li><a href="#Lisp_nn9">Additional Commandline Options </a>
|
<li><a href="#Lisp_nn9">Additional Commandline Options </a>
|
||||||
<li><a href="#Lisp_nn10">Details on CLISP bindings</a>
|
<li><a href="#Lisp_nn10">Details on CLISP bindings</a>
|
||||||
</ul>
|
</ul>
|
||||||
<li><a href="#Lisp_nn11">UFFI </a>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<!-- INDEX -->
|
<!-- INDEX -->
|
||||||
|
|
@ -39,7 +38,7 @@
|
||||||
There are more than 9 different implementations of common lisp which
|
There are more than 9 different implementations of common lisp which
|
||||||
are available, all have different foreign function
|
are available, all have different foreign function
|
||||||
interfaces. SWIG currently supports only the Allegro Common
|
interfaces. SWIG currently supports only the Allegro Common
|
||||||
Lisp, Common Foreign Function Interface(CFFI), CLisp and UFFI
|
Lisp, Common Foreign Function Interface(CFFI), CLisp
|
||||||
foreign function interfaces.
|
foreign function interfaces.
|
||||||
</p>
|
</p>
|
||||||
<H2><a name="Lisp_nn2">29.1 Allegro Common Lisp</a></H2>
|
<H2><a name="Lisp_nn2">29.1 Allegro Common Lisp</a></H2>
|
||||||
|
|
@ -56,8 +55,8 @@
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
CFFI, the Common Foreign Function Interface, is a portable foreign
|
CFFI, the Common Foreign Function Interface, is a portable foreign
|
||||||
function interface for ANSI Common Lisp systems, similar in
|
function interface for ANSI Common Lisp systems.
|
||||||
spirit to UFFI. Unlike UFFI, CFFI requires only a small set of
|
CFFI requires only a small set of
|
||||||
low-level functionality from the Lisp implementation, such as
|
low-level functionality from the Lisp implementation, such as
|
||||||
calling a foreign function by name, allocating foreign memory,
|
calling a foreign function by name, allocating foreign memory,
|
||||||
and dereferencing pointers.
|
and dereferencing pointers.
|
||||||
|
|
@ -809,8 +808,5 @@ struct bar {
|
||||||
|
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
<H2><a name="Lisp_nn11">29.4 UFFI </a></H2>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -140,7 +140,6 @@ Supported Target Language Options
|
||||||
-scilab - Generate Scilab wrappers
|
-scilab - Generate Scilab wrappers
|
||||||
-sexp - Generate Lisp S-Expressions wrappers
|
-sexp - Generate Lisp S-Expressions wrappers
|
||||||
-tcl - Generate Tcl wrappers
|
-tcl - Generate Tcl wrappers
|
||||||
-uffi - Generate Common Lisp / UFFI wrappers
|
|
||||||
-xml - Generate XML wrappers
|
-xml - Generate XML wrappers
|
||||||
|
|
||||||
Experimental Target Language Options
|
Experimental Target Language Options
|
||||||
|
|
|
||||||
|
|
@ -1467,46 +1467,6 @@ cffi_clean:
|
||||||
rm -f core @EXTRA_CLEAN@
|
rm -f core @EXTRA_CLEAN@
|
||||||
rm -f *.@OBJEXT@ *@SO@
|
rm -f *.@OBJEXT@ *@SO@
|
||||||
|
|
||||||
##################################################################
|
|
||||||
##### UFFI ######
|
|
||||||
##################################################################
|
|
||||||
|
|
||||||
UFFI = @UFFIBIN@
|
|
||||||
UFFI_SCRIPT=$(RUNME).lisp
|
|
||||||
|
|
||||||
uffi: $(SRCDIR_SRCS)
|
|
||||||
$(SWIG) -uffi $(SWIGOPT) -o $(ISRCS) $(INTERFACEPATH)
|
|
||||||
# $(CC) -c $(CCSHARED) $(CPPFLAGS) $(CFLAGS) $(ISRCS) $(INCLUDES) $(SRCDIR_SRCS)
|
|
||||||
# $(LDSHARED) $(CFLAGS) $(LDFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
|
|
||||||
|
|
||||||
uffi_cpp: $(SRCDIR_SRCS)
|
|
||||||
$(SWIG) -c++ -uffi $(SWIGOPT) -o $(ICXXSRCS) $(INTERFACEPATH)
|
|
||||||
# $(CXX) -c $(CCSHARED) $(CPPFLAGS) $(CXXFLAGS) $(ICXXSRCS) $(SRCDIR_SRCS) $(SRCDIR_CXXSRCS) $(INCLUDES)
|
|
||||||
# $(CXXSHARED) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------
|
|
||||||
# Run UFFI example
|
|
||||||
# -----------------------------------------------------------------
|
|
||||||
|
|
||||||
uffi_run:
|
|
||||||
$(RUNTOOL) $(UFFI) -batch -s $(UFFI_SCRIPT) $(RUNPIPE)
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------
|
|
||||||
# Version display
|
|
||||||
# -----------------------------------------------------------------
|
|
||||||
|
|
||||||
uffi_version:
|
|
||||||
$(UFFI) --version
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------
|
|
||||||
# Cleaning the UFFI examples
|
|
||||||
# -----------------------------------------------------------------
|
|
||||||
|
|
||||||
uffi_clean:
|
|
||||||
rm -f *_wrap* *~ .~*
|
|
||||||
rm -f core @EXTRA_CLEAN@
|
|
||||||
rm -f *.@OBJEXT@ *@SO@
|
|
||||||
|
|
||||||
##################################################################
|
##################################################################
|
||||||
##### R ######
|
##### R ######
|
||||||
##################################################################
|
##################################################################
|
||||||
|
|
|
||||||
10
Makefile.in
10
Makefile.in
|
|
@ -75,7 +75,6 @@ skip-lua = test -n "@SKIP_LUA@"
|
||||||
skip-allegrocl = test -n "@SKIP_ALLEGROCL@"
|
skip-allegrocl = test -n "@SKIP_ALLEGROCL@"
|
||||||
skip-clisp = test -n "@SKIP_CLISP@"
|
skip-clisp = test -n "@SKIP_CLISP@"
|
||||||
skip-cffi = test -n "@SKIP_CFFI@"
|
skip-cffi = test -n "@SKIP_CFFI@"
|
||||||
skip-uffi = test -n "@SKIP_UFFI@"
|
|
||||||
skip-r = test -n "@SKIP_R@"
|
skip-r = test -n "@SKIP_R@"
|
||||||
skip-scilab = test -n "@SKIP_SCILAB@"
|
skip-scilab = test -n "@SKIP_SCILAB@"
|
||||||
skip-go = test -n "@SKIP_GO@"
|
skip-go = test -n "@SKIP_GO@"
|
||||||
|
|
@ -119,7 +118,6 @@ check-aliveness:
|
||||||
@$(skip-csharp) || ./$(TARGET) -csharp -help
|
@$(skip-csharp) || ./$(TARGET) -csharp -help
|
||||||
@$(skip-allegrocl)|| ./$(TARGET) -allegrocl -help
|
@$(skip-allegrocl)|| ./$(TARGET) -allegrocl -help
|
||||||
@$(skip-clisp) || ./$(TARGET) -clisp -help
|
@$(skip-clisp) || ./$(TARGET) -clisp -help
|
||||||
@$(skip-uffi) || ./$(TARGET) -uffi -help
|
|
||||||
@$(skip-cffi) || ./$(TARGET) -cffi -help
|
@$(skip-cffi) || ./$(TARGET) -cffi -help
|
||||||
@$(skip-lua) || ./$(TARGET) -lua -help
|
@$(skip-lua) || ./$(TARGET) -lua -help
|
||||||
@$(skip-r) || ./$(TARGET) -r -help
|
@$(skip-r) || ./$(TARGET) -r -help
|
||||||
|
|
@ -150,7 +148,6 @@ check-versions: \
|
||||||
check-lua-version \
|
check-lua-version \
|
||||||
check-allegrocl-version \
|
check-allegrocl-version \
|
||||||
check-clisp-version \
|
check-clisp-version \
|
||||||
check-uffi-version \
|
|
||||||
check-cffi-version \
|
check-cffi-version \
|
||||||
check-r-version \
|
check-r-version \
|
||||||
check-scilab-version \
|
check-scilab-version \
|
||||||
|
|
@ -188,7 +185,6 @@ check-examples: \
|
||||||
check-lua-examples \
|
check-lua-examples \
|
||||||
check-allegrocl-examples \
|
check-allegrocl-examples \
|
||||||
check-clisp-examples \
|
check-clisp-examples \
|
||||||
check-uffi-examples \
|
|
||||||
check-cffi-examples \
|
check-cffi-examples \
|
||||||
check-r-examples \
|
check-r-examples \
|
||||||
check-scilab-examples \
|
check-scilab-examples \
|
||||||
|
|
@ -212,7 +208,6 @@ csharp_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/csharp/check.list)
|
||||||
lua_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/lua/check.list)
|
lua_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/lua/check.list)
|
||||||
allegrocl_examples :=
|
allegrocl_examples :=
|
||||||
clisp_examples :=
|
clisp_examples :=
|
||||||
uffi_examples :=
|
|
||||||
cffi_examples :=
|
cffi_examples :=
|
||||||
r_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/r/check.list)
|
r_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/r/check.list)
|
||||||
scilab_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/scilab/check.list)
|
scilab_examples :=$(shell sed '/^\#/d' $(srcdir)/Examples/scilab/check.list)
|
||||||
|
|
@ -257,7 +252,6 @@ check-test-suite: \
|
||||||
check-lua-test-suite \
|
check-lua-test-suite \
|
||||||
check-allegrocl-test-suite \
|
check-allegrocl-test-suite \
|
||||||
check-clisp-test-suite \
|
check-clisp-test-suite \
|
||||||
check-uffi-test-suite \
|
|
||||||
check-cffi-test-suite \
|
check-cffi-test-suite \
|
||||||
check-chicken-test-suite \
|
check-chicken-test-suite \
|
||||||
check-r-test-suite \
|
check-r-test-suite \
|
||||||
|
|
@ -309,7 +303,6 @@ all-test-suite: \
|
||||||
all-lua-test-suite \
|
all-lua-test-suite \
|
||||||
all-allegrocl-test-suite \
|
all-allegrocl-test-suite \
|
||||||
all-clisp-test-suite \
|
all-clisp-test-suite \
|
||||||
all-uffi-test-suite \
|
|
||||||
all-cffi-test-suite \
|
all-cffi-test-suite \
|
||||||
all-chicken-test-suite \
|
all-chicken-test-suite \
|
||||||
all-r-test-suite \
|
all-r-test-suite \
|
||||||
|
|
@ -337,7 +330,6 @@ broken-test-suite: \
|
||||||
broken-lua-test-suite \
|
broken-lua-test-suite \
|
||||||
broken-allegrocl-test-suite \
|
broken-allegrocl-test-suite \
|
||||||
broken-clisp-test-suite \
|
broken-clisp-test-suite \
|
||||||
broken-uffi-test-suite \
|
|
||||||
broken-cffi-test-suite \
|
broken-cffi-test-suite \
|
||||||
broken-chicken-test-suite \
|
broken-chicken-test-suite \
|
||||||
broken-r-test-suite \
|
broken-r-test-suite \
|
||||||
|
|
@ -476,7 +468,7 @@ install-main:
|
||||||
@$(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(BIN_DIR)/`echo $(TARGET_NOEXE) | sed '$(transform)'`@EXEEXT@
|
@$(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(BIN_DIR)/`echo $(TARGET_NOEXE) | sed '$(transform)'`@EXEEXT@
|
||||||
|
|
||||||
lib-languages = typemaps tcl perl5 python guile java mzscheme ruby php ocaml octave \
|
lib-languages = typemaps tcl perl5 python guile java mzscheme ruby php ocaml octave \
|
||||||
chicken csharp allegrocl clisp lua cffi uffi r go d javascript javascript/jsc \
|
chicken csharp allegrocl clisp lua cffi r go d javascript javascript/jsc \
|
||||||
javascript/v8 scilab xml
|
javascript/v8 scilab xml
|
||||||
|
|
||||||
lib-modules = std
|
lib-modules = std
|
||||||
|
|
|
||||||
2
README
2
README
|
|
@ -5,7 +5,7 @@ Version: 4.0.0 (in progress)
|
||||||
Tagline: SWIG is a compiler that integrates C and C++ with languages
|
Tagline: SWIG is a compiler that integrates C and C++ with languages
|
||||||
including Perl, Python, Tcl, Ruby, PHP, Java, C#, D, Go, Lua,
|
including Perl, Python, Tcl, Ruby, PHP, Java, C#, D, Go, Lua,
|
||||||
Octave, R, Scheme (Guile, MzScheme/Racket, CHICKEN), Scilab,
|
Octave, R, Scheme (Guile, MzScheme/Racket, CHICKEN), Scilab,
|
||||||
Ocaml, Common Lisp (CLISP, Allegro CL, CFFI, UFFI).
|
Ocaml, Common Lisp (CLISP, Allegro CL, CFFI).
|
||||||
SWIG can also export its parse tree into XML and
|
SWIG can also export its parse tree into XML and
|
||||||
Lisp s-expressions.
|
Lisp s-expressions.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,6 @@ eswig_SOURCES = CParse/cscanner.c \
|
||||||
Modules/swigmain.cxx \
|
Modules/swigmain.cxx \
|
||||||
Modules/tcl8.cxx \
|
Modules/tcl8.cxx \
|
||||||
Modules/typepass.cxx \
|
Modules/typepass.cxx \
|
||||||
Modules/uffi.cxx \
|
|
||||||
Modules/utils.cxx \
|
Modules/utils.cxx \
|
||||||
Modules/xml.cxx \
|
Modules/xml.cxx \
|
||||||
Preprocessor/cpp.c \
|
Preprocessor/cpp.c \
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,6 @@ extern "C" {
|
||||||
Language *swig_scilab(void);
|
Language *swig_scilab(void);
|
||||||
Language *swig_sexp(void);
|
Language *swig_sexp(void);
|
||||||
Language *swig_tcl(void);
|
Language *swig_tcl(void);
|
||||||
Language *swig_uffi(void);
|
|
||||||
Language *swig_xml(void);
|
Language *swig_xml(void);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -88,7 +87,7 @@ static TargetLanguageModule modules[] = {
|
||||||
{"-sexp", swig_sexp, "Lisp S-Expressions", Supported},
|
{"-sexp", swig_sexp, "Lisp S-Expressions", Supported},
|
||||||
{"-tcl", swig_tcl, "Tcl", Supported},
|
{"-tcl", swig_tcl, "Tcl", Supported},
|
||||||
{"-tcl8", swig_tcl, NULL, Supported},
|
{"-tcl8", swig_tcl, NULL, Supported},
|
||||||
{"-uffi", swig_uffi, "Common Lisp / UFFI", Supported},
|
{"-uffi", NULL, "Common Lisp / UFFI", Disabled},
|
||||||
{"-xml", swig_xml, "XML", Supported},
|
{"-xml", swig_xml, "XML", Supported},
|
||||||
{NULL, NULL, NULL, Disabled}
|
{NULL, NULL, NULL, Disabled}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
48
TODO
48
TODO
|
|
@ -275,54 +275,6 @@ Mzscheme
|
||||||
|
|
||||||
** Add shadow class support for the Swindle system.
|
** Add shadow class support for the Swindle system.
|
||||||
|
|
||||||
Common Lisp
|
|
||||||
-----------
|
|
||||||
|
|
||||||
* Random thoughts by mkoeppe on supporting Common Lisp implementations:
|
|
||||||
|
|
||||||
There are many different Foreign Function Interfaces (FFI) for
|
|
||||||
the various CL implementations. Probably SWIG should interface
|
|
||||||
to UFFI, a least-common-denominator FFI that supports many
|
|
||||||
implementations.
|
|
||||||
|
|
||||||
Via the s-expression SWIG module we can export SWIG's parse
|
|
||||||
tree and import it into CL. It remains to check if all
|
|
||||||
relevant information is dumped (for instance, the type
|
|
||||||
information). Experimental code is available to generate
|
|
||||||
low-level UFFI declarations from this parse tree.
|
|
||||||
|
|
||||||
However, for wrapping C++, we also need to create C wrappers
|
|
||||||
because most FFIs cannot directly import C++. A CL SWIG module
|
|
||||||
could be exporting both these wrappers and UFFI declarations.
|
|
||||||
I have experimental code (not checked in yet) that does this.
|
|
||||||
|
|
||||||
This is fine for generating low-level wrappers. But how do we
|
|
||||||
support user typemaps (like converting lists and vectors to C
|
|
||||||
arrays on input)? We have to generate Lisp code that does the
|
|
||||||
conversion and then calls the low-level wrapper. If we
|
|
||||||
generate Lisp code, it should be beautiful and readable.
|
|
||||||
Therefore, we need at least a Lisp pretty printer. A Lisp
|
|
||||||
pretty printer works best when the Lisp program is represented
|
|
||||||
not as text but as Lisp data. Moreover, typemap writers will
|
|
||||||
feel very much constrained by SWIG's capabilities for
|
|
||||||
generating wrapper code, when compared to writing Lisp macros.
|
|
||||||
Thus we would need half a re-implementation of Lisp in SWIG to
|
|
||||||
make users happy.
|
|
||||||
|
|
||||||
The solution could be the following:
|
|
||||||
|
|
||||||
** Build a SWIG library (again) and load it into a Common Lisp
|
|
||||||
implementation.
|
|
||||||
|
|
||||||
The FFI declarations could be written manually, or this could
|
|
||||||
be bootstrapped via the s-expression module or the primitive
|
|
||||||
UFFI wrappers. This should be easy because SWIG's API is quite
|
|
||||||
simple.
|
|
||||||
|
|
||||||
The embedded SWIG would be driven by a CL program. High-level
|
|
||||||
typemaps would be written as Lisp programs that generate Lisp
|
|
||||||
code.
|
|
||||||
|
|
||||||
ALLEGROCL
|
ALLEGROCL
|
||||||
-----
|
-----
|
||||||
These first three will remove most of the warnings from most of the
|
These first three will remove most of the warnings from most of the
|
||||||
|
|
|
||||||
|
|
@ -2846,12 +2846,6 @@ SKIP_CFFI=
|
||||||
#fi
|
#fi
|
||||||
AC_SUBST(SKIP_CFFI)
|
AC_SUBST(SKIP_CFFI)
|
||||||
|
|
||||||
SKIP_UFFI=
|
|
||||||
#if test -z "$UFFIBIN" ; then
|
|
||||||
SKIP_UFFI="1"
|
|
||||||
#fi
|
|
||||||
AC_SUBST(SKIP_UFFI)
|
|
||||||
|
|
||||||
SKIP_SCILAB=
|
SKIP_SCILAB=
|
||||||
if test -z "$SCILAB"; then
|
if test -z "$SCILAB"; then
|
||||||
SKIP_SCILAB="1"
|
SKIP_SCILAB="1"
|
||||||
|
|
@ -2978,7 +2972,6 @@ AC_CONFIG_FILES([
|
||||||
Examples/test-suite/allegrocl/Makefile
|
Examples/test-suite/allegrocl/Makefile
|
||||||
Examples/test-suite/clisp/Makefile
|
Examples/test-suite/clisp/Makefile
|
||||||
Examples/test-suite/cffi/Makefile
|
Examples/test-suite/cffi/Makefile
|
||||||
Examples/test-suite/uffi/Makefile
|
|
||||||
Examples/test-suite/r/Makefile
|
Examples/test-suite/r/Makefile
|
||||||
Examples/test-suite/go/Makefile
|
Examples/test-suite/go/Makefile
|
||||||
Source/Makefile
|
Source/Makefile
|
||||||
|
|
@ -3047,7 +3040,6 @@ test -n "$SKIP_R" || langs="${langs}r "
|
||||||
test -n "$SKIP_RUBY" || langs="${langs}ruby "
|
test -n "$SKIP_RUBY" || langs="${langs}ruby "
|
||||||
test -n "$SKIP_SCILAB" || langs="${langs}scilab "
|
test -n "$SKIP_SCILAB" || langs="${langs}scilab "
|
||||||
test -n "$SKIP_TCL" || langs="${langs}tcl "
|
test -n "$SKIP_TCL" || langs="${langs}tcl "
|
||||||
test -n "$SKIP_UFFI" || langs="${langs}uffi "
|
|
||||||
|
|
||||||
echo "
|
echo "
|
||||||
The SWIG test-suite and examples are configured for the following languages:
|
The SWIG test-suite and examples are configured for the following languages:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue