From 38f37ef5ae7026dd7c04ac8c39cb2aec4bf90838 Mon Sep 17 00:00:00 2001
From: William S Fulton
The Java directors feature requires the "javadirectorin", "javadirectorout", "directorin" and the "directorout" typemaps in order to work properly.
-The "javapackage" typemap is an optional typemap used to identify the Java package path for individual SWIG generated proxy classes.
+The "javapackage" typemap is an optional typemap used to identify the Java package path for individual SWIG generated proxy classes used in director methods.
%typemap(directorin)
The "javapackage" typemap is optional; it serves to identify a class's Java package.
This typemap should be used in conjunction with classes that are defined outside of the current SWIG interface file.
+The typemap is only used if the type is used in a director method, that is, in a virtual method in a director class.
For example:
/* file : vector.h */
...
-typedef struct {
+typedef struct Vector {
double x,y,z;
} Vector;
@@ -2772,7 +2772,7 @@ of the Vector structure. For example:
#include "vector.h"
%}
-typedef struct {
+typedef struct Vector {
double x,y,z;
%extend {
Vector(double x, double y, double z) { ... }
@@ -2783,7 +2783,7 @@ typedef struct {
-Finally, %extend can be used to access externally written +Note that %extend can be used to access externally written functions provided they follow the naming convention used in this example :
@@ -2814,7 +2814,7 @@ double Vector_magnitude(Vector *v) { #include "vector.h" %} -typedef struct { +typedef struct Vector { double x,y,z; %extend { Vector(int,int,int); // This calls new_Vector() @@ -2826,6 +2826,37 @@ typedef struct { ++The name used for %extend should be the name of the struct and not the name of any typedef to the struct. +For example: +
+ +
+typedef struct Integer {
+ int value;
+} Int;
+%extend Integer { ... } /* Correct name */
+%extend Int { ... } /* Incorrect name */
+
+struct Float {
+ float value;
+};
+typedef struct Float FloatValue;
+%extend Float { ... } /* Correct name */
+%extend FloatValue { ... } /* Incorrect name */
++There is one exception to this rule and that is when the struct is anonymously named such as: +
+ +
+typedef struct {
+ double value;
+} Double;
+%extend Double { ... } /* Okay */
+A little known feature of the %extend directive is that it can also be used to add synthesized attributes or to modify the @@ -2862,7 +2893,7 @@ For example, consider this interface:
-typedef struct {
+typedef struct Person {
char name[50];
...
} Person;
@@ -2876,7 +2907,7 @@ the interface as follows to ensure this occurs whenever a name is read or writte
-typedef struct {
+typedef struct Person {
%extend {
char name[50];
}
diff --git a/Doc/Manual/Warnings.html b/Doc/Manual/Warnings.html
index 1571146f1..ccb1751d5 100644
--- a/Doc/Manual/Warnings.html
+++ b/Doc/Manual/Warnings.html
@@ -423,7 +423,8 @@ example.i(4) : Syntax error in input.
322. Redundant redeclaration of 'name'.
323. Recursive scope inheritance of 'name'.
324. Named nested template instantiations not supported. Processing as if no name was given to %template().
- 325. Nested class not currently supported (name ignored).
+ 325. Nested kind not currently supported (name ignored).
+ 326. Deprecated %extend name used - the kind name 'name' should be used instead of the typedef name 'name'.
350. operator new ignored.
351. operator delete ignored.
352. operator+ ignored.
diff --git a/Examples/test-suite/errors/expected.log b/Examples/test-suite/errors/expected.log
index 9d4e5db77..d344d076b 100644
--- a/Examples/test-suite/errors/expected.log
+++ b/Examples/test-suite/errors/expected.log
@@ -188,6 +188,10 @@ pp_variable_args.i:6: Error: Variable length macro argument must be last paramet
:::::::::::::::::::::::::::::::: swig_apply_nargs.i :::::::::::::::::::::::::::::::::::
swig_apply_nargs.i:6: Error: Can't apply (char *str,int len) to (int x). Number of arguments don't match.
+:::::::::::::::::::::::::::::::: swig_extend.i :::::::::::::::::::::::::::::::::::
+swig_extend.i:19: Warning 326: Deprecated %extend name used - the struct name 'StructBName' should be used instead of the typedef name 'StructB'.
+swig_extend.i:34: Warning 303: %extend defined for an undeclared class StructDName.
+
:::::::::::::::::::::::::::::::: swig_identifier.i :::::::::::::::::::::::::::::::::::
swig_identifier.i:5: Warning 503: Can't wrap 'foo bar' unless renamed to a valid identifier.
diff --git a/Examples/test-suite/errors/make.sh b/Examples/test-suite/errors/make.sh
index 90f17a92a..b194299c9 100755
--- a/Examples/test-suite/errors/make.sh
+++ b/Examples/test-suite/errors/make.sh
@@ -54,6 +54,7 @@ pp_unterm_comment
pp_unterm_string
pp_variable_args
swig_apply_nargs
+swig_extend
swig_identifier
swig_insert_bad
swig_typemap_copy
diff --git a/Examples/test-suite/errors/swig_extend.i b/Examples/test-suite/errors/swig_extend.i
new file mode 100644
index 000000000..ef0652320
--- /dev/null
+++ b/Examples/test-suite/errors/swig_extend.i
@@ -0,0 +1,35 @@
+%module xxx
+
+typedef struct {
+ int myint;
+} StructA;
+
+typedef struct StructBName {
+ int myint;
+} StructB;
+
+typedef struct StructC {
+ int myint;
+} StructC;
+
+%extend StructA {
+ void method() {}
+}
+
+%extend StructB {
+ void method() {}
+}
+
+%extend StructC {
+ void method() {}
+}
+
+struct StructD {
+ int myint;
+};
+typedef struct StructD StructDName;
+
+%extend StructDName {
+ void method() {}
+}
+
diff --git a/Examples/test-suite/extend_constructor_destructor.i b/Examples/test-suite/extend_constructor_destructor.i
index a0ab1a0f6..95b48a6c5 100644
--- a/Examples/test-suite/extend_constructor_destructor.i
+++ b/Examples/test-suite/extend_constructor_destructor.i
@@ -1,5 +1,8 @@
%module extend_constructor_destructor
+%warnfilter(SWIGWARN_PARSE_EXTEND_NAME) Space::tagCStruct;
+%warnfilter(SWIGWARN_PARSE_EXTEND_NAME) tagEStruct;
+
%inline %{
int globalVar = 0;
diff --git a/Examples/test-suite/extend_typedef_class.i b/Examples/test-suite/extend_typedef_class.i
index 731802573..2b8c38351 100644
--- a/Examples/test-suite/extend_typedef_class.i
+++ b/Examples/test-suite/extend_typedef_class.i
@@ -1,5 +1,8 @@
%module extend_typedef_class
+%warnfilter(SWIGWARN_PARSE_EXTEND_NAME) tagCClass;
+%warnfilter(SWIGWARN_PARSE_EXTEND_NAME) tagCStruct;
+
// classes in global namespace
%inline %{
typedef struct tagAClass {
diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
index 36adf5a09..74d41079c 100644
--- a/Source/CParse/parser.y
+++ b/Source/CParse/parser.y
@@ -38,6 +38,7 @@ static Node *top = 0; /* Top of the generated parse tree */
static int unnamed = 0; /* Unnamed datatype counter */
static Hash *extendhash = 0; /* Hash table of added methods */
static Hash *classes = 0; /* Hash table of classes */
+static Hash *classes_typedefs = 0; /* Hash table of typedef classes: typedef struct X {...} Y; */
static Symtab *prev_symtab = 0;
static Node *current_class = 0;
String *ModuleName = 0;
@@ -718,7 +719,7 @@ static void check_extensions() {
for (ki = First(extendhash); ki.key; ki = Next(ki)) {
if (!Strchr(ki.key,'<')) {
SWIG_WARN_NODE_BEGIN(ki.item);
- Swig_warning(WARN_PARSE_EXTEND_UNDEF,Getfile(ki.item), Getline(ki.item), "%%extend defined for an undeclared class %s.\n", ki.key);
+ Swig_warning(WARN_PARSE_EXTEND_UNDEF,Getfile(ki.item), Getline(ki.item), "%%extend defined for an undeclared class %s.\n", SwigType_namestr(ki.key));
SWIG_WARN_NODE_END(ki.item);
}
}
@@ -1909,20 +1910,34 @@ extend_directive : EXTEND options idcolon LBRACE {
String *clsname;
cplus_mode = CPLUS_PUBLIC;
if (!classes) classes = NewHash();
+ if (!classes_typedefs) classes_typedefs = NewHash();
if (!extendhash) extendhash = NewHash();
clsname = make_class_name($3);
cls = Getattr(classes,clsname);
if (!cls) {
- /* No previous definition. Create a new scope */
- Node *am = Getattr(extendhash,clsname);
- if (!am) {
- Swig_symbol_newscope();
- Swig_symbol_setscopename($3);
- prev_symtab = 0;
+ cls = Getattr(classes_typedefs, clsname);
+ if (!cls) {
+ /* No previous definition. Create a new scope */
+ Node *am = Getattr(extendhash,clsname);
+ if (!am) {
+ Swig_symbol_newscope();
+ Swig_symbol_setscopename($3);
+ prev_symtab = 0;
+ } else {
+ prev_symtab = Swig_symbol_setscope(Getattr(am,"symtab"));
+ }
+ current_class = 0;
} else {
- prev_symtab = Swig_symbol_setscope(Getattr(am,"symtab"));
+ /* Previous typedef class definition. Use its symbol table.
+ Deprecated, just the real name should be used.
+ Note that %extend before the class typedef never worked, only %extend after the class typdef. */
+ prev_symtab = Swig_symbol_setscope(Getattr(cls, "symtab"));
+ current_class = cls;
+ extendmode = 1;
+ SWIG_WARN_NODE_BEGIN(cls);
+ Swig_warning(WARN_PARSE_EXTEND_NAME, cparse_file, cparse_line, "Deprecated %%extend name used - the %s name '%s' should be used instead of the typedef name '%s'.\n", Getattr(cls, "kind"), SwigType_namestr(Getattr(cls, "name")), $3);
+ SWIG_WARN_NODE_END(cls);
}
- current_class = 0;
} else {
/* Previous class definition. Use its symbol table */
prev_symtab = Swig_symbol_setscope(Getattr(cls,"symtab"));
@@ -3585,7 +3600,6 @@ cpp_class_decl : storage_class cpptype idcolon inherit LBRACE {
if (!classes) classes = NewHash();
scpname = Swig_symbol_qualifiedscopename(0);
Setattr(classes,scpname,$$);
- Delete(scpname);
appendChild($$,$7);
@@ -3606,7 +3620,7 @@ cpp_class_decl : storage_class cpptype idcolon inherit LBRACE {
Setattr(p,"type",ty);
p = nextSibling(p);
}
- /* Dump nested classes */
+ /* Class typedefs */
{
String *name = $3;
if ($9) {
@@ -3626,8 +3640,9 @@ cpp_class_decl : storage_class cpptype idcolon inherit LBRACE {
Delete(class_rename);
class_rename = NewString(name);
}
- if (!Getattr(classes,tdscopename)) {
- Setattr(classes,tdscopename,$$);
+ if (!classes_typedefs) classes_typedefs = NewHash();
+ if (!Equal(scpname, tdscopename) && !Getattr(classes_typedefs, tdscopename)) {
+ Setattr(classes_typedefs, tdscopename, $$);
}
Setattr($$,"decl",decltype);
Delete(class_scope);
@@ -3638,6 +3653,7 @@ cpp_class_decl : storage_class cpptype idcolon inherit LBRACE {
}
appendChild($$,dump_nested(Char(name)));
}
+ Delete(scpname);
if (cplus_mode != CPLUS_PUBLIC) {
/* we 'open' the class at the end, to allow %template
diff --git a/Source/Include/swigwarn.h b/Source/Include/swigwarn.h
index 76f61ea93..a3fb31012 100644
--- a/Source/Include/swigwarn.h
+++ b/Source/Include/swigwarn.h
@@ -89,6 +89,7 @@
#define WARN_PARSE_REC_INHERITANCE 323
#define WARN_PARSE_NESTED_TEMPLATE 324
#define WARN_PARSE_NAMED_NESTED_CLASS 325
+#define WARN_PARSE_EXTEND_NAME 326
#define WARN_IGNORE_OPERATOR_NEW 350 /* new */
#define WARN_IGNORE_OPERATOR_DELETE 351 /* delete */
From 70cd52f44d4e61460524105dabbe1ac7f29dc6f2 Mon Sep 17 00:00:00 2001
From: Karl Wette
Date: Mon, 18 Feb 2013 10:31:23 +0100
Subject: [PATCH 007/273] Use "(void)" instead of "()" when wrapping
no-argument extension functions.
---
CHANGES.current | 39 +++++++++++++++++++++++++++++++++++++++
Source/Swig/cwrap.c | 2 +-
2 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/CHANGES.current b/CHANGES.current
index a111818d9..4f2477b02 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,45 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.10 (in progress)
============================
+2013-02-18: wsfulton
+ Deprecate typedef names used as constructor and destructor names in %extend. The real
+ class/struct name should be used.
+
+ typedef struct tagEStruct {
+ int ivar;
+ } EStruct;
+
+ %extend tagEStruct {
+ EStruct() // illegal name, should be tagEStruct()
+ {
+ EStruct *s = new EStruct();
+ s->ivar = ivar0;
+ return s;
+ }
+ ~EStruct() // illegal name, should be ~tagEStruct()
+ {
+ delete $self;
+ }
+ }
+
+ For now these trigger a warning:
+
+ extend_constructor_destructor.i:107: Warning 522: Use of an illegal constructor name 'EStruct' in
+ %extend is deprecated, the constructor name should be 'tagEStruct'.
+ extend_constructor_destructor.i:111: Warning 523: Use of an illegal destructor name 'EStruct' in
+ %extend is deprecated, the destructor name should be 'tagEStruct'.
+
+ These %extend destructor and constructor names were valid up to swig-2.0.4, however swig-2.0.5 ignored
+ them altogether for C code as reported in SF bug #1306. The old behaviour of using them has been
+ restored for now, but is officially deprecated. This does not apply to anonymously defined typedef
+ classes/structs such as:
+
+ typedef struct {...} X;
+
+2013-02-17: kwwette
+ When generating functions which wrap C extension code, use "(void)" for no-argument functions
+ instead of "()". This prevents warnings when compiling with "gcc -Wstrict-prototypes".
+
2013-02-15: wsfulton
Deprecate typedef names used in %extend that are not the real class/struct name. For example:
diff --git a/Source/Swig/cwrap.c b/Source/Swig/cwrap.c
index 8cd48e94e..c7e101842 100644
--- a/Source/Swig/cwrap.c
+++ b/Source/Swig/cwrap.c
@@ -807,7 +807,7 @@ void Swig_replace_special_variables(Node *n, Node *parentnode, String *code) {
* ----------------------------------------------------------------------------- */
static String *extension_code(Node *n, const String *function_name, ParmList *parms, SwigType *return_type, const String *code, int cplusplus, const String *self) {
String *parms_str = cplusplus ? ParmList_str_defaultargs(parms) : ParmList_str(parms);
- String *sig = NewStringf("%s(%s)", function_name, parms_str);
+ String *sig = NewStringf("%s(%s)", function_name, (cplusplus || Len(parms_str)) ? parms_str : "void");
String *rt_sig = SwigType_str(return_type, sig);
String *body = NewStringf("SWIGINTERN %s", rt_sig);
Printv(body, code, "\n", NIL);
From 2435b98a24f0be0abee1573948bb5d1f20d4b711 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 18 Feb 2013 22:37:43 +0000
Subject: [PATCH 008/273] Tweak to changes note
---
CHANGES.current | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CHANGES.current b/CHANGES.current
index 4f2477b02..0b65717ff 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -41,7 +41,7 @@ Version 2.0.10 (in progress)
typedef struct {...} X;
2013-02-17: kwwette
- When generating functions which wrap C extension code, use "(void)" for no-argument functions
+ When generating functions provided by %extend, use "(void)" for no-argument functions
instead of "()". This prevents warnings when compiling with "gcc -Wstrict-prototypes".
2013-02-15: wsfulton
From d1b40b468b607c4c71f424a1a2d36c5b240ca975 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 18 Feb 2013 08:40:20 +0000
Subject: [PATCH 009/273] Fix C code where a typedef name was used for
constructor and destructor names in %extend. Deprecate use of typedef names
for constructor and destructor names going forwards.
---
Doc/Manual/Warnings.html | 2 ++
Examples/test-suite/errors/expected.log | 6 ++++
Examples/test-suite/errors/swig_extend.i | 25 +++++++++++++++++
.../extend_constructor_destructor.i | 4 +++
Source/Include/swigwarn.h | 2 ++
Source/Modules/lang.cxx | 28 +++++++++++++++++--
6 files changed, 65 insertions(+), 2 deletions(-)
diff --git a/Doc/Manual/Warnings.html b/Doc/Manual/Warnings.html
index ccb1751d5..cf4c38d7e 100644
--- a/Doc/Manual/Warnings.html
+++ b/Doc/Manual/Warnings.html
@@ -527,6 +527,8 @@ example.i(4) : Syntax error in input.
519. %template() contains no name. Template method ignored: declaration
520. Base/Derived class 'classname1' of 'classname2' is not similarly marked as a smart pointer.
521. Illegal destructor name name. Ignored.
+ 522. Use of an illegal constructor name 'name' in %extend is deprecated, the constructor name should be 'name'.
+ 523. Use of an illegal destructor name 'name' in %extend is deprecated, the destructor name should be 'name'.
14.9.6 Language module specific (700-899)
diff --git a/Examples/test-suite/errors/expected.log b/Examples/test-suite/errors/expected.log
index d344d076b..2db3d8cbc 100644
--- a/Examples/test-suite/errors/expected.log
+++ b/Examples/test-suite/errors/expected.log
@@ -190,7 +190,13 @@ swig_apply_nargs.i:6: Error: Can't apply (char *str,int len) to (int x). Number
:::::::::::::::::::::::::::::::: swig_extend.i :::::::::::::::::::::::::::::::::::
swig_extend.i:19: Warning 326: Deprecated %extend name used - the struct name 'StructBName' should be used instead of the typedef name 'StructB'.
+swig_extend.i:45: Warning 326: Deprecated %extend name used - the struct name 'stru_struct' should be used instead of the typedef name 'stru'.
+swig_extend.i:56: Warning 326: Deprecated %extend name used - the union name 'uni_union' should be used instead of the typedef name 'uni'.
swig_extend.i:34: Warning 303: %extend defined for an undeclared class StructDName.
+swig_extend.i:50: Warning 522: Use of an illegal constructor name 'stru' in %extend is deprecated, the constructor name should be 'stru_struct'.
+swig_extend.i:53: Warning 523: Use of an illegal destructor name 'stru' in %extend is deprecated, the destructor name should be 'stru_struct'.
+swig_extend.i:57: Warning 522: Use of an illegal constructor name 'uni' in %extend is deprecated, the constructor name should be 'uni_union'.
+swig_extend.i:58: Warning 523: Use of an illegal destructor name 'uni' in %extend is deprecated, the destructor name should be 'uni_union'.
:::::::::::::::::::::::::::::::: swig_identifier.i :::::::::::::::::::::::::::::::::::
swig_identifier.i:5: Warning 503: Can't wrap 'foo bar' unless renamed to a valid identifier.
diff --git a/Examples/test-suite/errors/swig_extend.i b/Examples/test-suite/errors/swig_extend.i
index ef0652320..3f8d9a787 100644
--- a/Examples/test-suite/errors/swig_extend.i
+++ b/Examples/test-suite/errors/swig_extend.i
@@ -33,3 +33,28 @@ typedef struct StructD StructDName;
void method() {}
}
+
+typedef struct stru_struct {
+ int bar;
+} stru;
+typedef union uni_union {
+ int un1;
+ double un2;
+} uni;
+
+%extend stru {
+ stru() {
+ stru* s = (stru*)malloc(sizeof(stru));
+ s->bar = 11;
+ return s;
+ }
+ ~stru() {
+ free($self);
+ }
+}
+
+%extend uni {
+ uni() { return 0; }
+ ~uni() { free($self); }
+}
+
diff --git a/Examples/test-suite/extend_constructor_destructor.i b/Examples/test-suite/extend_constructor_destructor.i
index 95b48a6c5..c25b81b03 100644
--- a/Examples/test-suite/extend_constructor_destructor.i
+++ b/Examples/test-suite/extend_constructor_destructor.i
@@ -2,6 +2,10 @@
%warnfilter(SWIGWARN_PARSE_EXTEND_NAME) Space::tagCStruct;
%warnfilter(SWIGWARN_PARSE_EXTEND_NAME) tagEStruct;
+%warnfilter(SWIGWARN_LANG_EXTEND_CONSTRUCTOR) Space::tagCStruct::CStruct;
+%warnfilter(SWIGWARN_LANG_EXTEND_DESTRUCTOR) Space::tagCStruct::~CStruct;
+%warnfilter(SWIGWARN_LANG_EXTEND_CONSTRUCTOR) tagEStruct::EStruct;
+%warnfilter(SWIGWARN_LANG_EXTEND_DESTRUCTOR) tagEStruct::~EStruct;
%inline %{
int globalVar = 0;
diff --git a/Source/Include/swigwarn.h b/Source/Include/swigwarn.h
index a3fb31012..daf8b1791 100644
--- a/Source/Include/swigwarn.h
+++ b/Source/Include/swigwarn.h
@@ -197,6 +197,8 @@
#define WARN_LANG_TEMPLATE_METHOD_IGNORE 519
#define WARN_LANG_SMARTPTR_MISSING 520
#define WARN_LANG_ILLEGAL_DESTRUCTOR 521
+#define WARN_LANG_EXTEND_CONSTRUCTOR 522
+#define WARN_LANG_EXTEND_DESTRUCTOR 523
/* -- Reserved (600-799) -- */
diff --git a/Source/Modules/lang.cxx b/Source/Modules/lang.cxx
index 69df79271..4d1cefc69 100644
--- a/Source/Modules/lang.cxx
+++ b/Source/Modules/lang.cxx
@@ -2631,10 +2631,22 @@ int Language::constructorDeclaration(Node *n) {
if (!Equal(actual_name, expected_name) && !(Getattr(n, "template"))) {
bool illegal_name = true;
if (Extend) {
- // SWIG extension - allow typedef names as destructor name in %extend - an unnamed struct declared with a typedef can thus be given a 'destructor'.
+ // Check for typedef names used as a constructor name in %extend. This is deprecated except for anonymous
+ // typedef structs which have had their symbol names adjusted to the typedef name in the parser.
SwigType *name_resolved = SwigType_typedef_resolve_all(actual_name);
SwigType *expected_name_resolved = SwigType_typedef_resolve_all(expected_name);
+
+ if (!CPlusPlus) {
+ if (Strncmp(name_resolved, "struct ", 7) == 0)
+ Replace(name_resolved, "struct ", "", DOH_REPLACE_FIRST);
+ else if (Strncmp(name_resolved, "union ", 6) == 0)
+ Replace(name_resolved, "union ", "", DOH_REPLACE_FIRST);
+ }
+
illegal_name = !Equal(name_resolved, expected_name_resolved);
+ if (!illegal_name)
+ Swig_warning(WARN_LANG_EXTEND_CONSTRUCTOR, input_file, line_number, "Use of an illegal constructor name '%s' in %%extend is deprecated, the constructor name should be '%s'.\n",
+ SwigType_str(Swig_scopename_last(actual_name), 0), SwigType_str(Swig_scopename_last(expected_name), 0));
Delete(name_resolved);
Delete(expected_name_resolved);
}
@@ -2770,10 +2782,22 @@ int Language::destructorDeclaration(Node *n) {
if (!Equal(actual_name, expected_name) && !(Getattr(n, "template"))) {
bool illegal_name = true;
if (Extend) {
- // SWIG extension - allow typedef names as destructor name in %extend - an unnamed struct declared with a typedef can thus be given a 'destructor'.
+ // Check for typedef names used as a destructor name in %extend. This is deprecated except for anonymous
+ // typedef structs which have had their symbol names adjusted to the typedef name in the parser.
SwigType *name_resolved = SwigType_typedef_resolve_all(actual_name);
SwigType *expected_name_resolved = SwigType_typedef_resolve_all(expected_name);
+
+ if (!CPlusPlus) {
+ if (Strncmp(name_resolved, "struct ", 7) == 0)
+ Replace(name_resolved, "struct ", "", DOH_REPLACE_FIRST);
+ else if (Strncmp(name_resolved, "union ", 6) == 0)
+ Replace(name_resolved, "union ", "", DOH_REPLACE_FIRST);
+ }
+
illegal_name = !Equal(name_resolved, expected_name_resolved);
+ if (!illegal_name)
+ Swig_warning(WARN_LANG_EXTEND_DESTRUCTOR, input_file, line_number, "Use of an illegal destructor name '%s' in %%extend is deprecated, the destructor name should be '%s'.\n",
+ SwigType_str(Swig_scopename_last(actual_name), 0), SwigType_str(Swig_scopename_last(expected_name), 0));
Delete(name_resolved);
Delete(expected_name_resolved);
}
From 9d330a99703f079bdff5a8d7945cc1d2d7c56f53 Mon Sep 17 00:00:00 2001
From: Karl Wette
Date: Tue, 19 Feb 2013 11:46:27 +0100
Subject: [PATCH 010/273] Fix qualifier parsing in SwigType_add_qualifier()
- use list to ensure qualifiers are unique and sorted
- now allows 'qual' to contain multiple qualifiers
---
Source/Swig/typeobj.c | 78 +++++++++++++++++++++++--------------------
1 file changed, 42 insertions(+), 36 deletions(-)
diff --git a/Source/Swig/typeobj.c b/Source/Swig/typeobj.c
index 20caa9ec9..cb9327dc7 100644
--- a/Source/Swig/typeobj.c
+++ b/Source/Swig/typeobj.c
@@ -16,6 +16,7 @@
#include "swig.h"
#include
+#include
/* -----------------------------------------------------------------------------
* Synopsis
@@ -425,61 +426,66 @@ int SwigType_isreference(const SwigType *t) {
* Repeated qualifications have no effect. Moreover, the order of qualifications
* is alphabetical---meaning that "const volatile" and "volatile const" are
* stored in exactly the same way as "q(const volatile)".
+ * 'qual' can be a list of multiple qualifiers in any order, separated by spaces.
* ----------------------------------------------------------------------------- */
-SwigType *SwigType_add_qualifier(SwigType *t, const_String_or_char_ptr qual) {
- String *newq;
- int sz, added = 0;
- char *q, *cqual;
+/* Helper function to sort the mangled list */
+static int SwigType_compare_qualifiers(const DOH *a, const DOH *b) {
+ return strcmp(Char(a), Char(b));
+}
- char *c = Char(t);
+SwigType *SwigType_add_qualifier(SwigType *t, const_String_or_char_ptr qual) {
+ List *qlist;
+ String *allq, *newq, *q;
+ int i, sz;
+ char *c, *cqual, *cq, *cqprev;
+ c = Char(t);
cqual = Char(qual);
- if (!(strncmp(c, "q(", 2) == 0)) {
+ /* if 't' has no qualifiers and 'qual' is a single qualifier, simply add it */
+ if ((strncmp(c, "q(", 2) != 0) && (strstr(cqual, " ") == NULL)) {
String *temp = NewStringf("q(%s).", cqual);
Insert(t, 0, temp);
Delete(temp);
return t;
}
- /* The type already has a qualifier on it. In this case, we first check to
- see if the qualifier is already specified. In that case do nothing.
- If it is a new qualifier, we add it to the qualifier list in alphabetical
- order */
-
- sz = element_size(c);
-
- if (strstr(c, cqual)) {
- /* Qualifier already added */
- return t;
+ /* create string of all qualifiers */
+ if (strncmp(c, "q(", 2) == 0) {
+ allq = SwigType_parm(t);
+ Append(allq, " ");
+ SwigType_del_element(t); /* delete old qualifier list from 't' */
+ } else {
+ allq = NewStringEmpty();
}
+ Append(allq, qual);
- /* Add the qualifier to the existing list. */
+ /* create list of all qualifiers from string */
+ qlist = Split(allq, ' ', INT_MAX);
+ Delete(allq);
+ /* sort list */
+ SortList(qlist, SwigType_compare_qualifiers);
+
+ /* create new qualifier string from unique elements of list */
+ sz = Len(qlist);
newq = NewString("q(");
- q = c + 2;
- q = strtok(q, " ).");
- while (q) {
- if (strcmp(cqual, q) < 0) {
- /* New qualifier is less that current qualifier. We need to insert it */
- Append(newq, cqual);
- Append(newq, " ");
- Append(newq, q);
- added = 1;
- } else {
+ cqprev = NULL;
+ for (i = 0; i < sz; ++i) {
+ q = Getitem(qlist, i);
+ cq = Char(q);
+ if (cqprev == NULL || strcmp(cqprev, cq) != 0) {
+ if (i > 0) {
+ Append(newq, " ");
+ }
Append(newq, q);
+ cqprev = cq;
}
- q = strtok(NULL, " ).");
- if (q) {
- Append(newq, " ");
- }
- }
- if (!added) {
- Append(newq, " ");
- Append(newq, cqual);
}
Append(newq, ").");
- Delslice(t, 0, sz);
+ Delete(qlist);
+
+ /* replace qualifier string with new one */
Insert(t, 0, newq);
Delete(newq);
return t;
From ee2b46abe0b747bc949538f51c9e2a989a867da9 Mon Sep 17 00:00:00 2001
From: Karl Wette
Date: Mon, 18 Feb 2013 09:48:42 +0100
Subject: [PATCH 011/273] Fix SWIG's handling of qualified (e.g. const)
variables of array type
---
CHANGES.current | 12 +++
Examples/test-suite/common.mk | 1 +
.../test-suite/typemap_array_qualifiers.i | 79 +++++++++++++++++++
Source/Swig/typesys.c | 61 ++++++++++++++
4 files changed, 153 insertions(+)
create mode 100644 Examples/test-suite/typemap_array_qualifiers.i
diff --git a/CHANGES.current b/CHANGES.current
index 0b65717ff..779e20528 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,18 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.10 (in progress)
============================
+2013-02-19: kwwette
+ Fix bug in SWIG's handling of qualified (e.g. const) variables of array type. Given the typedef
+ a(7).q(volatile).double myarray // typedef volatile double[7] myarray;
+ the type
+ q(const).myarray // const myarray
+ becomes
+ a(7).q(const volatile).double // const volatile double[7]
+ Previously, SwigType_typedef_resolve() produces the type
+ q(const).a(7).q(volatile).double // non-sensical type
+ which would never match %typemap declarations, whose types were parsed correctly.
+ Add typemap_array_qualifiers.i to the test suite which checks for the correct behaviour.
+
2013-02-18: wsfulton
Deprecate typedef names used as constructor and destructor names in %extend. The real
class/struct name should be used.
diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk
index 173e9b287..83be90d2d 100644
--- a/Examples/test-suite/common.mk
+++ b/Examples/test-suite/common.mk
@@ -433,6 +433,7 @@ CPP_TEST_CASES += \
typedef_sizet \
typedef_struct \
typemap_arrays \
+ typemap_array_qualifiers \
typemap_delete \
typemap_directorout \
typemap_global_scope \
diff --git a/Examples/test-suite/typemap_array_qualifiers.i b/Examples/test-suite/typemap_array_qualifiers.i
new file mode 100644
index 000000000..947721402
--- /dev/null
+++ b/Examples/test-suite/typemap_array_qualifiers.i
@@ -0,0 +1,79 @@
+%module typemap_array_qualifiers
+
+%define CLEAR_SWIGTYPE_TYPEMAPS
+%typemap(in)
+ SWIGTYPE,
+ SWIGTYPE *,
+ SWIGTYPE *const,
+ SWIGTYPE *const&,
+ const SWIGTYPE *,
+ const SWIGTYPE *const,
+ const SWIGTYPE *const&,
+ const volatile SWIGTYPE *,
+ const volatile SWIGTYPE *const,
+ const volatile SWIGTYPE *const&,
+ SWIGTYPE [],
+ SWIGTYPE [ANY],
+ const SWIGTYPE [],
+ const SWIGTYPE [ANY],
+ const volatile SWIGTYPE [],
+ const volatile SWIGTYPE [ANY],
+ SWIGTYPE &,
+ const SWIGTYPE &,
+ const volatile SWIGTYPE &
+{
+%#error Incorrect typemap for $symname: $type
+}
+%enddef
+
+%inline %{
+ typedef struct {
+ int a;
+ } SomeType;
+ typedef SomeType myarray[3];
+ typedef const SomeType myconstarray[4];
+ typedef volatile SomeType ** mycrazyarray[5];
+ typedef volatile SomeType (mycrazyfunc)(SomeType);
+ typedef volatile SomeType (*mycrazyfuncptr)(SomeType);
+%}
+
+CLEAR_SWIGTYPE_TYPEMAPS;
+%typemap(in) SWIGTYPE [ANY] {
+/* Correct typemap for $symname: $type */
+}
+%inline %{
+ void func1a(myarray x) {};
+ void func1b(volatile myarray x) {};
+%}
+
+CLEAR_SWIGTYPE_TYPEMAPS;
+%typemap(in) const SWIGTYPE [ANY] {
+/* Correct typemap for $symname: $type */
+}
+%typemap(in) const volatile SWIGTYPE [ANY] {
+/* Correct typemap for $symname: $type */
+}
+%inline %{
+ void func2a(const myarray x) {};
+ void func2b(const myconstarray x) {};
+ void func2c(const volatile myconstarray x) {};
+%}
+
+CLEAR_SWIGTYPE_TYPEMAPS;
+%typemap(in) volatile SWIGTYPE **const [ANY] {
+/* Correct typemap for $symname: $type */
+}
+%typemap(in) volatile SWIGTYPE **const [ANY][ANY] {
+/* Correct typemap for $symname: $type */
+}
+%inline %{
+ void func3a(const mycrazyarray x, const mycrazyarray y[7]) {};
+%}
+
+CLEAR_SWIGTYPE_TYPEMAPS;
+%typemap(in) SWIGTYPE (*const) (ANY) {
+/* Correct typemap for $symname: $type */
+}
+%inline %{
+ void func4a(mycrazyfunc *const x, const mycrazyfuncptr y) {};
+%}
diff --git a/Source/Swig/typesys.c b/Source/Swig/typesys.c
index d12d70543..372ac3f65 100644
--- a/Source/Swig/typesys.c
+++ b/Source/Swig/typesys.c
@@ -792,6 +792,67 @@ SwigType *SwigType_typedef_resolve(const SwigType *t) {
goto return_result;
}
Delete(base);
+
+ /* If 'type' is an array, then the right-most qualifier in 'r' should
+ be added to 'type' after the array qualifier, so that given
+ a(7).q(volatile).double myarray // typedef volatile double[7] myarray;
+ the type
+ q(const).myarray // const myarray
+ becomes
+ a(7).q(const volatile).double // const volatile double[7]
+ and NOT
+ q(const).a(7).q(volatile).double // non-sensical type
+ */
+ if (r && Len(r) && SwigType_isarray(type)) {
+ List *r_elem;
+ String *r_qual;
+ int r_sz;
+ r_elem = SwigType_split(r);
+ r_sz = Len(r_elem);
+ r_qual = Getitem(r_elem, r_sz-1);
+ if (SwigType_isqualifier(r_qual)) {
+ String *new_r;
+ String *new_type;
+ List *type_elem;
+ String *type_qual;
+ String *r_qual_arg;
+ int i, type_sz;
+
+ type_elem = SwigType_split(type);
+ type_sz = Len(type_elem);
+ i = 0;
+ for (i = 0; i < type_sz; ++i) {
+ String *e = Getitem(type_elem, i);
+ if (!SwigType_isarray(e))
+ break;
+ }
+ type_qual = Copy(Getitem(type_elem, i));
+ r_qual_arg = SwigType_parm(r_qual);
+ SwigType_add_qualifier(type_qual, r_qual_arg);
+ Delete(r_qual_arg);
+ Setitem(type_elem, i, type_qual);
+
+ new_r = NewStringEmpty();
+ for (i = 0; i < r_sz-1; ++i) {
+ Append(new_r, Getitem(r_elem, i));
+ }
+ new_type = NewStringEmpty();
+ for (i = 0; i < type_sz; ++i) {
+ Append(new_type, Getitem(type_elem, i));
+ }
+#ifdef SWIG_DEBUG
+ Printf(stdout, "r+type='%s%s' new_r+new_type='%s%s'\n", r, type, new_r, new_type);
+#endif
+
+ Delete(r);
+ r = new_r;
+ newtype = 1;
+ type = new_type;
+ Delete(type_elem);
+ }
+ Delete(r_elem);
+ }
+
Append(r, type);
if (newtype) {
Delete(type);
From cfd8497f3edd85c2cbaab86365586cd773b12e17 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Thu, 21 Feb 2013 07:00:25 +0000
Subject: [PATCH 012/273] Cosmetic changes in SwigType_add_qualifier
---
Source/Swig/typeobj.c | 26 ++++++++++----------------
1 file changed, 10 insertions(+), 16 deletions(-)
diff --git a/Source/Swig/typeobj.c b/Source/Swig/typeobj.c
index cb9327dc7..1fe63ff27 100644
--- a/Source/Swig/typeobj.c
+++ b/Source/Swig/typeobj.c
@@ -429,21 +429,16 @@ int SwigType_isreference(const SwigType *t) {
* 'qual' can be a list of multiple qualifiers in any order, separated by spaces.
* ----------------------------------------------------------------------------- */
-/* Helper function to sort the mangled list */
-static int SwigType_compare_qualifiers(const DOH *a, const DOH *b) {
- return strcmp(Char(a), Char(b));
-}
-
SwigType *SwigType_add_qualifier(SwigType *t, const_String_or_char_ptr qual) {
List *qlist;
- String *allq, *newq, *q;
+ String *allq, *newq;
int i, sz;
- char *c, *cqual, *cq, *cqprev;
- c = Char(t);
- cqual = Char(qual);
+ const char *cqprev = 0;
+ const char *c = Char(t);
+ const char *cqual = Char(qual);
/* if 't' has no qualifiers and 'qual' is a single qualifier, simply add it */
- if ((strncmp(c, "q(", 2) != 0) && (strstr(cqual, " ") == NULL)) {
+ if ((strncmp(c, "q(", 2) != 0) && (strstr(cqual, " ") == 0)) {
String *temp = NewStringf("q(%s).", cqual);
Insert(t, 0, temp);
Delete(temp);
@@ -464,17 +459,16 @@ SwigType *SwigType_add_qualifier(SwigType *t, const_String_or_char_ptr qual) {
qlist = Split(allq, ' ', INT_MAX);
Delete(allq);
- /* sort list */
- SortList(qlist, SwigType_compare_qualifiers);
+ /* sort in alphabetical order */
+ SortList(qlist, Strcmp);
/* create new qualifier string from unique elements of list */
sz = Len(qlist);
newq = NewString("q(");
- cqprev = NULL;
for (i = 0; i < sz; ++i) {
- q = Getitem(qlist, i);
- cq = Char(q);
- if (cqprev == NULL || strcmp(cqprev, cq) != 0) {
+ String *q = Getitem(qlist, i);
+ const char *cq = Char(q);
+ if (cqprev == 0 || strcmp(cqprev, cq) != 0) {
if (i > 0) {
Append(newq, " ");
}
From de136ad6cf64c369f4d6551cd5185ac87c1410ba Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Thu, 21 Feb 2013 07:09:27 +0000
Subject: [PATCH 013/273] Uncomment testing of overloading of const char arrays
which was fixed in svn r12541 for swig-2.0.3.
---
Examples/test-suite/arrays_global.i | 2 --
1 file changed, 2 deletions(-)
diff --git a/Examples/test-suite/arrays_global.i b/Examples/test-suite/arrays_global.i
index 10d29b6dc..fd53a224e 100644
--- a/Examples/test-suite/arrays_global.i
+++ b/Examples/test-suite/arrays_global.i
@@ -61,7 +61,6 @@ char* test_b(name a, const namea b) {
return a;
}
-#if 0
int test_a(int a) {
return a;
}
@@ -70,7 +69,6 @@ int test_b(int a) {
return a;
}
-#endif
%}
From 8e340c158c41ee053fd2be2f30b47e9a060515c9 Mon Sep 17 00:00:00 2001
From: Michel Zou
Date: Fri, 22 Feb 2013 10:11:50 +0100
Subject: [PATCH 014/273] Fixed #1300 clang warning in
SWIG_Python_ConvertPtrAndOwn.
---
Lib/python/pyrun.swg | 4 ++--
Lib/swigrun.swg | 11 +++++++++--
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/Lib/python/pyrun.swg b/Lib/python/pyrun.swg
index 3585e7a3f..cbb993064 100644
--- a/Lib/python/pyrun.swg
+++ b/Lib/python/pyrun.swg
@@ -1231,10 +1231,10 @@ SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int
*ptr = vptr;
/* transfer the ownership to 'ptr' */
iobj->own = 0;
- res = SWIG_AddCast(res);
+ SWIG_AddCastInplace(&res);
res = SWIG_AddNewMask(res);
} else {
- res = SWIG_AddCast(res);
+ SWIG_AddCastInplace(&res);
}
}
}
diff --git a/Lib/swigrun.swg b/Lib/swigrun.swg
index e5afb62c4..3f68d66d6 100644
--- a/Lib/swigrun.swg
+++ b/Lib/swigrun.swg
@@ -161,13 +161,20 @@
# endif
# define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1)
# define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK)
-SWIGINTERNINLINE int SWIG_AddCast(int r) {
- return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
+SWIGINTERNINLINE int SWIG_AddCastInplace(int *r) {
+ if (SWIG_IsOK(*r)) {
+ *r = (SWIG_CastRank(*r) < SWIG_MAXCASTRANK) ? (*r + 1) : SWIG_ERROR;
+ }
+}
+SWIGINTERNINLINE int SWIG_AddCast(int r) {
+ SWIG_AddCastInplace(&r);
+ return r;
}
SWIGINTERNINLINE int SWIG_CheckState(int r) {
return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
}
#else /* no cast-rank mode */
+# define SWIG_AddCastInplace(r)
# define SWIG_AddCast
# define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
#endif
From 7acf6b5fef128de8e9ded023870006b10b4a39a8 Mon Sep 17 00:00:00 2001
From: Michel Zou
Date: Mon, 25 Feb 2013 09:53:45 +0100
Subject: [PATCH 015/273] Revert "Fixed #1300 clang warning in
SWIG_Python_ConvertPtrAndOwn."
This reverts commit 8e340c158c41ee053fd2be2f30b47e9a060515c9.
---
Lib/python/pyrun.swg | 4 ++--
Lib/swigrun.swg | 11 ++---------
2 files changed, 4 insertions(+), 11 deletions(-)
diff --git a/Lib/python/pyrun.swg b/Lib/python/pyrun.swg
index cbb993064..3585e7a3f 100644
--- a/Lib/python/pyrun.swg
+++ b/Lib/python/pyrun.swg
@@ -1231,10 +1231,10 @@ SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int
*ptr = vptr;
/* transfer the ownership to 'ptr' */
iobj->own = 0;
- SWIG_AddCastInplace(&res);
+ res = SWIG_AddCast(res);
res = SWIG_AddNewMask(res);
} else {
- SWIG_AddCastInplace(&res);
+ res = SWIG_AddCast(res);
}
}
}
diff --git a/Lib/swigrun.swg b/Lib/swigrun.swg
index 3f68d66d6..e5afb62c4 100644
--- a/Lib/swigrun.swg
+++ b/Lib/swigrun.swg
@@ -161,20 +161,13 @@
# endif
# define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1)
# define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK)
-SWIGINTERNINLINE int SWIG_AddCastInplace(int *r) {
- if (SWIG_IsOK(*r)) {
- *r = (SWIG_CastRank(*r) < SWIG_MAXCASTRANK) ? (*r + 1) : SWIG_ERROR;
- }
-}
-SWIGINTERNINLINE int SWIG_AddCast(int r) {
- SWIG_AddCastInplace(&r);
- return r;
+SWIGINTERNINLINE int SWIG_AddCast(int r) {
+ return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
}
SWIGINTERNINLINE int SWIG_CheckState(int r) {
return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
}
#else /* no cast-rank mode */
-# define SWIG_AddCastInplace(r)
# define SWIG_AddCast
# define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
#endif
From c23b7606cf665ce1a4e0f666f6926282971d108f Mon Sep 17 00:00:00 2001
From: Michel Zou
Date: Mon, 25 Feb 2013 11:07:42 +0100
Subject: [PATCH 016/273] MOdified only no-cast-rank version of SWIG_AddCast.
---
Lib/swigrun.swg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Lib/swigrun.swg b/Lib/swigrun.swg
index e5afb62c4..b3c11c136 100644
--- a/Lib/swigrun.swg
+++ b/Lib/swigrun.swg
@@ -168,7 +168,7 @@ SWIGINTERNINLINE int SWIG_CheckState(int r) {
return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
}
#else /* no cast-rank mode */
-# define SWIG_AddCast
+# define SWIG_AddCast(r) ((r)+0)
# define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
#endif
From 8155e145799728eba648f63a5e3da6ab513ed63b Mon Sep 17 00:00:00 2001
From: Michel Zou
Date: Tue, 26 Feb 2013 09:26:13 +0100
Subject: [PATCH 017/273] Macro expansion to self assign is effectively
ignored.
---
Lib/swigrun.swg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Lib/swigrun.swg b/Lib/swigrun.swg
index b3c11c136..999c87333 100644
--- a/Lib/swigrun.swg
+++ b/Lib/swigrun.swg
@@ -168,7 +168,7 @@ SWIGINTERNINLINE int SWIG_CheckState(int r) {
return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
}
#else /* no cast-rank mode */
-# define SWIG_AddCast(r) ((r)+0)
+# define SWIG_AddCast(r) (r)
# define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
#endif
From 670962cfe8d951004f927c803e505f23ee373d3a Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 4 Mar 2013 07:32:40 +0000
Subject: [PATCH 018/273] SWIG_TypeCompare was not working as commented -
return values were 0,1 and not 1,0,-1. Although undocumented and not used
anywhere within SWIG, it has been replaced with SWIG_TypeCmp to work as
commented.
---
Lib/swigrun.swg | 27 ++++++++-------------------
1 file changed, 8 insertions(+), 19 deletions(-)
diff --git a/Lib/swigrun.swg b/Lib/swigrun.swg
index 999c87333..21f0a5c14 100644
--- a/Lib/swigrun.swg
+++ b/Lib/swigrun.swg
@@ -232,18 +232,18 @@ SWIG_TypeNameComp(const char *f1, const char *l1,
/*
Check type equivalence in a name list like ||...
- Return 0 if not equal, 1 if equal
+ Return 0 if equal, -1 if nb < tb, 1 if nb > tb
*/
SWIGRUNTIME int
-SWIG_TypeEquiv(const char *nb, const char *tb) {
- int equiv = 0;
+SWIG_TypeCmp(const char *nb, const char *tb) {
+ int equiv = 1;
const char* te = tb + strlen(tb);
const char* ne = nb;
- while (!equiv && *ne) {
+ while (equiv != 0 && *ne) {
for (nb = ne; *ne; ++ne) {
if (*ne == '|') break;
}
- equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
+ equiv = SWIG_TypeNameComp(nb, ne, tb, te);
if (*ne) ++ne;
}
return equiv;
@@ -251,24 +251,13 @@ SWIG_TypeEquiv(const char *nb, const char *tb) {
/*
Check type equivalence in a name list like ||...
- Return 0 if equal, -1 if nb < tb, 1 if nb > tb
+ Return 0 if not equal, 1 if equal
*/
SWIGRUNTIME int
-SWIG_TypeCompare(const char *nb, const char *tb) {
- int equiv = 0;
- const char* te = tb + strlen(tb);
- const char* ne = nb;
- while (!equiv && *ne) {
- for (nb = ne; *ne; ++ne) {
- if (*ne == '|') break;
- }
- equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
- if (*ne) ++ne;
- }
- return equiv;
+SWIG_TypeEquiv(const char *nb, const char *tb) {
+ return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
}
-
/*
Check the typename
*/
From e0b14786d6d22276dda85354babbfeffdfd78072 Mon Sep 17 00:00:00 2001
From: Sylvestre Ledru
Date: Tue, 5 Mar 2013 18:17:50 +0100
Subject: [PATCH 019/273] Fix some useless code detected by scan-build
(LLVM/Clang)
---
Source/CParse/templ.c | 7 +------
Source/Modules/ocaml.cxx | 3 ---
Source/Modules/octave.cxx | 1 -
Source/Modules/perl5.cxx | 1 -
Source/Modules/php.cxx | 2 --
Source/Swig/typeobj.c | 2 --
Source/Swig/typesys.c | 2 +-
7 files changed, 2 insertions(+), 16 deletions(-)
diff --git a/Source/CParse/templ.c b/Source/CParse/templ.c
index ed6acfc8c..48bdf4faa 100644
--- a/Source/CParse/templ.c
+++ b/Source/CParse/templ.c
@@ -317,14 +317,13 @@ int Swig_cparse_template_expand(Node *n, String *rname, ParmList *tparms, Symtab
if (tp) {
Symtab *tsdecl = Getattr(n, "sym:symtab");
while (p && tp) {
- String *name, *value, *valuestr, *tydef, *tmp, *tmpr;
+ String *name, *value, *valuestr, *tmp, *tmpr;
int sz, i;
String *dvalue = 0;
String *qvalue = 0;
name = Getattr(tp, "name");
value = Getattr(p, "value");
- tydef = Getattr(p, "typedef");
if (name) {
if (!value)
@@ -365,9 +364,6 @@ int Swig_cparse_template_expand(Node *n, String *rname, ParmList *tparms, Symtab
/* Printf(stdout,"'%s'\n", s); */
}
- if (!tydef) {
- tydef = dvalue;
- }
tmp = NewStringf("#%s", name);
tmpr = NewStringf("\"%s\"", valuestr);
@@ -375,7 +371,6 @@ int Swig_cparse_template_expand(Node *n, String *rname, ParmList *tparms, Symtab
for (i = 0; i < sz; i++) {
String *s = Getitem(cpatchlist, i);
Replace(s, tmp, tmpr, DOH_REPLACE_ID);
- /* Replace(s,name,tydef, DOH_REPLACE_ID); */
Replace(s, name, valuestr, DOH_REPLACE_ID);
}
Delete(tmp);
diff --git a/Source/Modules/ocaml.cxx b/Source/Modules/ocaml.cxx
index 34c8975c5..c5fcf69dd 100644
--- a/Source/Modules/ocaml.cxx
+++ b/Source/Modules/ocaml.cxx
@@ -1583,8 +1583,6 @@ public:
String *cleanup = NewString("");
String *outarg = NewString("");
- idx = 0;
-
tm = Swig_typemap_lookup("directorout", n, "c_result", w);
if (tm != 0) {
Replaceall(tm, "$input", "swig_result");
@@ -1742,7 +1740,6 @@ public:
p = NewParm(type, NewString("self"), n);
q = Copy(p);
set_nextSibling(p, parms);
- parms = p;
{
Wrapper *w = NewWrapper();
diff --git a/Source/Modules/octave.cxx b/Source/Modules/octave.cxx
index bbe442b7e..6f6e5b8ae 100644
--- a/Source/Modules/octave.cxx
+++ b/Source/Modules/octave.cxx
@@ -1371,7 +1371,6 @@ public:
outputs++;
// build argument list and type conversion string
- idx = 0;
p = l;
while (p) {
if (checkAttribute(p, "tmap:in:numinputs", "0")) {
diff --git a/Source/Modules/perl5.cxx b/Source/Modules/perl5.cxx
index 7147e67c1..09500b23b 100644
--- a/Source/Modules/perl5.cxx
+++ b/Source/Modules/perl5.cxx
@@ -610,7 +610,6 @@ public:
Printf(f->code, "}\n");
/* Write code to extract parameters. */
- i = 0;
for (i = 0, p = l; i < num_arguments; i++) {
/* Skip ignored arguments */
diff --git a/Source/Modules/php.cxx b/Source/Modules/php.cxx
index 292f979ba..fdd335993 100644
--- a/Source/Modules/php.cxx
+++ b/Source/Modules/php.cxx
@@ -787,7 +787,6 @@ public:
}
f = NewWrapper();
- numopt = 0;
String *outarg = NewStringEmpty();
String *cleanup = NewStringEmpty();
@@ -1736,7 +1735,6 @@ public:
if (!class_node) {
/* This is needed when we're returning a pointer to a type
* rather than returning the type by value or reference. */
- class_node = current_class;
Delete(mangled);
mangled = NewString(SwigType_manglestr(ret_type));
class_node = Getattr(zend_types, mangled);
diff --git a/Source/Swig/typeobj.c b/Source/Swig/typeobj.c
index 1fe63ff27..56892f3f8 100644
--- a/Source/Swig/typeobj.c
+++ b/Source/Swig/typeobj.c
@@ -746,7 +746,6 @@ SwigType *SwigType_add_function(SwigType *t, ParmList *parms) {
Insert(t, 0, ").");
pstr = NewString("f(");
- p = parms;
for (p = parms; p; p = nextSibling(p)) {
if (p != parms)
Putc(',', pstr);
@@ -844,7 +843,6 @@ SwigType *SwigType_add_template(SwigType *t, ParmList *parms) {
Parm *p;
Append(t, "<(");
- p = parms;
for (p = parms; p; p = nextSibling(p)) {
String *v;
if (Getattr(p, "default"))
diff --git a/Source/Swig/typesys.c b/Source/Swig/typesys.c
index 372ac3f65..c10ffbfb5 100644
--- a/Source/Swig/typesys.c
+++ b/Source/Swig/typesys.c
@@ -820,7 +820,7 @@ SwigType *SwigType_typedef_resolve(const SwigType *t) {
type_elem = SwigType_split(type);
type_sz = Len(type_elem);
- i = 0;
+
for (i = 0; i < type_sz; ++i) {
String *e = Getitem(type_elem, i);
if (!SwigType_isarray(e))
From fdea8a8f51a3734989729ea928b720083b32928f Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 8 Mar 2013 22:19:07 +0000
Subject: [PATCH 020/273] More useless code removal as detected by scan-build
(LLVM/Clang) using scan-build ./configure && scan-build make
---
Source/Swig/scanner.c | 2 +-
Source/Swig/stype.c | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/Source/Swig/scanner.c b/Source/Swig/scanner.c
index 52e21dc0a..ed2d43b51 100644
--- a/Source/Swig/scanner.c
+++ b/Source/Swig/scanner.c
@@ -1141,7 +1141,7 @@ void Scanner_skip_line(Scanner * s) {
if ((c = nextchar(s)) == 0)
return;
if (c == '\\') {
- c = nextchar(s);
+ nextchar(s);
} else if (c == '\n') {
done = 1;
}
diff --git a/Source/Swig/stype.c b/Source/Swig/stype.c
index 8dc189725..fcaf54093 100644
--- a/Source/Swig/stype.c
+++ b/Source/Swig/stype.c
@@ -640,7 +640,6 @@ SwigType *SwigType_ltype(const SwigType *s) {
if (td && (SwigType_isconst(td) || SwigType_isarray(td) || SwigType_isreference(td))) {
/* We need to use the typedef type */
Delete(tt);
- tt = td;
break;
} else if (td) {
Delete(tt);
From 52c754a22d4556795a3927706256bfae4624ccc4 Mon Sep 17 00:00:00 2001
From: Karl Wette
Date: Sun, 17 Feb 2013 15:56:25 +0100
Subject: [PATCH 021/273] Minor fix to Octave autodoc generation for functions
returning structs
Patch #27
- see also git commit 72ffdb930dcbbe0ae2a1cf7164a7ca4b632b1fee
---
CHANGES.current | 3 +++
Source/Modules/octave.cxx | 10 +++-------
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/CHANGES.current b/CHANGES.current
index 779e20528..90389d812 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -56,6 +56,9 @@ Version 2.0.10 (in progress)
When generating functions provided by %extend, use "(void)" for no-argument functions
instead of "()". This prevents warnings when compiling with "gcc -Wstrict-prototypes".
+2013-02-17: kwwette
+ [Octave] Minor fix to autodoc generation: get the right type for functions returning structs.
+
2013-02-15: wsfulton
Deprecate typedef names used in %extend that are not the real class/struct name. For example:
diff --git a/Source/Modules/octave.cxx b/Source/Modules/octave.cxx
index 6f6e5b8ae..a9be76fc2 100644
--- a/Source/Modules/octave.cxx
+++ b/Source/Modules/octave.cxx
@@ -355,14 +355,10 @@ public:
SwigType *type = Getattr(n, "type");
if (type && Strcmp(type, "void")) {
- type = SwigType_base(type);
- Node *lookup = Swig_symbol_clookup(type, 0);
- if (lookup)
- type = Getattr(lookup, "sym:name");
+ Node *nn = classLookup(Getattr(n, "type"));
+ String *type_str = nn ? Copy(Getattr(nn, "sym:name")) : SwigType_str(type, 0);
Append(decl_info, "@var{retval} = ");
- String *type_str = NewString("");
- Printf(type_str, "@var{retval} is of type %s. ", type);
- Append(args_str, type_str);
+ Printf(args_str, "%s@var{retval} is of type %s. ", args_str, type_str);
Delete(type_str);
}
From 92276044248ca3a9b48c13afa85bc1175c4a3e21 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 16 Mar 2013 17:43:08 +0000
Subject: [PATCH 022/273] First attempt at Travis Continuous integration builds
---
.travis.yml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 .travis.yml
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 000000000..ecd39ab85
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,5 @@
+language: cpp
+compiler:
+ - gcc
+ - clang
+script: ./autogen.sh && ./configure && make
From 46523a074ff6ae1f9d8c52e270f0c3e13e2d7671 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sun, 17 Mar 2013 19:44:28 +0000
Subject: [PATCH 023/273] Travis CI only on master and silent builds
---
.travis.yml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index ecd39ab85..c41027bc0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,4 +2,7 @@ language: cpp
compiler:
- gcc
- clang
-script: ./autogen.sh && ./configure && make
+script: ./autogen.sh && ./configure && make -s
+branches:
+ only:
+ - master
From d2551e22e275780f9c6c5bf30d0b24a3ef556532 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sun, 17 Mar 2013 20:32:03 +0000
Subject: [PATCH 024/273] Try Python test-suite on Travis
---
.travis.yml | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index c41027bc0..ee7ded0de 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,7 +2,13 @@ language: cpp
compiler:
- gcc
- clang
-script: ./autogen.sh && ./configure && make -s
+python:
+ - "2.7"
+ - "3.3"
+before_install:
+ - sudo apt-get update -qq
+ - sudo apt-get install libboost-dev -qq
+script: ./autogen.sh && ./configure && make -s && make -k check-python-test-suite
branches:
only:
- master
From 4003f65a94092d73b8b6e512097a45e8e9bc260b Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sun, 17 Mar 2013 21:40:44 +0000
Subject: [PATCH 025/273] Try combinations of Java and Python Travis builds
---
.travis.yml | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index ee7ded0de..2ac250a4e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,14 +1,31 @@
language: cpp
compiler:
- gcc
- - clang
+# - clang
python:
- "2.7"
- "3.3"
+jdk:
+ - oraclejdk7
+ - openjdk6
+env:
+ - SWIGLANG=python
+matrix:
+ include:
+ - python: "2.7"
+ - compiler: gcc
+ - env: SWIGLANG=python
+ include:
+ - jdk: oraclejdk7
+ - compiler: gcc
+ - env: SWIGLANG=java
before_install:
- - sudo apt-get update -qq
- sudo apt-get install libboost-dev -qq
-script: ./autogen.sh && ./configure && make -s && make -k check-python-test-suite
+script:
+ - set
+ - ./autogen.sh && ./configure
+ - make -s
+ - make -k check-$SWIGLANG-examples check-$SWIGLANG-test-suite
branches:
only:
- master
From 7c80f007c471302f0d6d07cf78846edd6fd9b493 Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Tue, 19 Mar 2013 18:38:45 +1300
Subject: [PATCH 026/273] Fix typo in Python docstring for acquire method
---
Lib/python/pyrun.swg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Lib/python/pyrun.swg b/Lib/python/pyrun.swg
index 3585e7a3f..7cf9c41fa 100644
--- a/Lib/python/pyrun.swg
+++ b/Lib/python/pyrun.swg
@@ -668,7 +668,7 @@ SwigPyObject_own(PyObject *v, PyObject *args)
static PyMethodDef
swigobject_methods[] = {
{(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_NOARGS, (char *)"releases ownership of the pointer"},
- {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS, (char *)"aquires ownership of the pointer"},
+ {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS, (char *)"acquires ownership of the pointer"},
{(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
{(char *)"append", (PyCFunction)SwigPyObject_append, METH_O, (char *)"appends another 'this' object"},
{(char *)"next", (PyCFunction)SwigPyObject_next, METH_NOARGS, (char *)"returns the next 'this' object"},
From 7b50640c055b45c17c40bde1f72ab932d55795c6 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 19 Mar 2013 19:45:35 +0000
Subject: [PATCH 027/273] More Travis attempts at controlling what is built
---
.travis.yml | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 2ac250a4e..92402d346 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,15 +1,4 @@
language: cpp
-compiler:
- - gcc
-# - clang
-python:
- - "2.7"
- - "3.3"
-jdk:
- - oraclejdk7
- - openjdk6
-env:
- - SWIGLANG=python
matrix:
include:
- python: "2.7"
From 9d0b20916f1aa709efcdd0d1f1a3985f205bf0a0 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 18 Mar 2013 19:49:46 +0000
Subject: [PATCH 028/273] Add ability to suppress some director warnings by
their method name, not just the containing class name
---
Examples/test-suite/director_basic.i | 5 +++--
Examples/test-suite/director_classes.i | 3 ++-
.../test-suite/java_director_assumeoverride.i | 1 -
Source/Modules/lang.cxx | 15 +++++++++------
4 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/Examples/test-suite/director_basic.i b/Examples/test-suite/director_basic.i
index 56864f4a7..4c258b097 100644
--- a/Examples/test-suite/director_basic.i
+++ b/Examples/test-suite/director_basic.i
@@ -1,5 +1,6 @@
- %module(directors="1") director_basic
- #pragma SWIG nowarn=SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR
+%module(directors="1") director_basic
+
+%warnfilter(SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR) MyClass::pmethod;
%{
#include
diff --git a/Examples/test-suite/director_classes.i b/Examples/test-suite/director_classes.i
index 7183e3d0a..98c29e88c 100644
--- a/Examples/test-suite/director_classes.i
+++ b/Examples/test-suite/director_classes.i
@@ -1,7 +1,8 @@
// Tests classes passed by value, pointer and reference
// Note: C# module has a large runtime test
-#pragma SWIG nowarn=SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR
+%warnfilter(SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR) Base::Ref;
+%warnfilter(SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR) Base::Ptr;
%module(directors="1") director_classes
diff --git a/Examples/test-suite/java_director_assumeoverride.i b/Examples/test-suite/java_director_assumeoverride.i
index 7364a3d58..cddebb4d7 100644
--- a/Examples/test-suite/java_director_assumeoverride.i
+++ b/Examples/test-suite/java_director_assumeoverride.i
@@ -1,5 +1,4 @@
%module(directors="1") java_director_assumeoverride
-#pragma SWIG nowarn=SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR
%{
class OverrideMe {
diff --git a/Source/Modules/lang.cxx b/Source/Modules/lang.cxx
index 4d1cefc69..eb7d49480 100644
--- a/Source/Modules/lang.cxx
+++ b/Source/Modules/lang.cxx
@@ -88,7 +88,6 @@ extern int AddExtern;
* ---------------------------------------------------------------------- */
int Dispatcher::emit_one(Node *n) {
- String *wrn;
int ret = SWIG_OK;
char *tag = Char(nodeType(n));
@@ -104,10 +103,9 @@ int Dispatcher::emit_one(Node *n) {
return SWIG_OK;
/* Look for warnings */
- wrn = Getattr(n, "feature:warnfilter");
- if (wrn) {
+ String *wrn = Getattr(n, "feature:warnfilter");
+ if (wrn)
Swig_warnfilter(wrn, 1);
- }
/* ============================================================
* C/C++ parsing
@@ -181,9 +179,8 @@ int Dispatcher::emit_one(Node *n) {
Swig_error(input_file, line_number, "Unrecognized parse tree node type '%s'\n", tag);
ret = SWIG_ERROR;
}
- if (wrn) {
+ if (wrn)
Swig_warnfilter(wrn, 0);
- }
return ret;
}
@@ -2063,6 +2060,10 @@ int Language::classDirectorMethods(Node *n) {
if (GetFlag(method, "feature:nodirector"))
continue;
+ String *wrn = Getattr(method, "feature:warnfilter");
+ if (wrn)
+ Swig_warnfilter(wrn, 1);
+
String *type = Getattr(method, "nodeType");
if (!Cmp(type, "destructor")) {
classDirectorDestructor(method);
@@ -2074,6 +2075,8 @@ int Language::classDirectorMethods(Node *n) {
SetFlag(item, "director");
Swig_restore(method);
}
+ if (wrn)
+ Swig_warnfilter(wrn, 0);
}
return SWIG_OK;
From e182b4844cc575da2f5e0321f4356783e1b63932 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 19 Mar 2013 18:34:06 +0000
Subject: [PATCH 029/273] Fix seg fault in SWIG using directors when class and
virtual method names are the same except being in different namespaces when
the %nspace feature is not being used.
---
CHANGES.current | 4 ++++
Source/Modules/csharp.cxx | 13 ++-----------
Source/Modules/d.cxx | 13 ++-----------
Source/Modules/java.cxx | 16 +++-------------
4 files changed, 11 insertions(+), 35 deletions(-)
diff --git a/CHANGES.current b/CHANGES.current
index 90389d812..6547a88be 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,10 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.10 (in progress)
============================
+2013-03-19: wsfulton
+ [C#, Java, D] Fix seg fault in SWIG using directors when class and virtual method names are
+ the same except being in different namespaces when the %nspace feature is not being used.
+
2013-02-19: kwwette
Fix bug in SWIG's handling of qualified (e.g. const) variables of array type. Given the typedef
a(7).q(volatile).double myarray // typedef volatile double[7] myarray;
diff --git a/Source/Modules/csharp.cxx b/Source/Modules/csharp.cxx
index 0d15a9c1d..4ef62d2cc 100644
--- a/Source/Modules/csharp.cxx
+++ b/Source/Modules/csharp.cxx
@@ -630,23 +630,14 @@ public:
*----------------------------------------------------------------------*/
UpcallData *addUpcallMethod(String *imclass_method, String *class_method, String *decl, String *overloaded_name) {
- UpcallData *udata;
- String *class_methodidx;
- Hash *new_udata;
String *key = NewStringf("%s|%s", imclass_method, decl);
++curr_class_dmethod;
- /* Do we know about this director class already? */
- if ((udata = Getattr(dmethods_table, key))) {
- Delete(key);
- return Getattr(udata, "methodoff");
- }
-
- class_methodidx = NewStringf("%d", n_dmethods - first_class_dmethod);
+ String *class_methodidx = NewStringf("%d", n_dmethods - first_class_dmethod);
n_dmethods++;
- new_udata = NewHash();
+ Hash *new_udata = NewHash();
Append(dmethods_seq, new_udata);
Setattr(dmethods_table, key, new_udata);
diff --git a/Source/Modules/d.cxx b/Source/Modules/d.cxx
index 88c3ccfff..e09e253f8 100644
--- a/Source/Modules/d.cxx
+++ b/Source/Modules/d.cxx
@@ -3704,23 +3704,14 @@ private:
UpcallData *addUpcallMethod(String *imclass_method, String *class_method,
String *decl, String *overloaded_name, String *return_type, String *param_list) {
- UpcallData *udata;
- String *class_methodidx;
- Hash *new_udata;
String *key = NewStringf("%s|%s", imclass_method, decl);
++curr_class_dmethod;
- /* Do we know about this director class already? */
- if ((udata = Getattr(dmethods_table, key))) {
- Delete(key);
- return Getattr(udata, "methodoff");
- }
-
- class_methodidx = NewStringf("%d", n_dmethods - first_class_dmethod);
+ String *class_methodidx = NewStringf("%d", n_dmethods - first_class_dmethod);
n_dmethods++;
- new_udata = NewHash();
+ Hash *new_udata = NewHash();
Append(dmethods_seq, new_udata);
Setattr(dmethods_table, key, new_udata);
diff --git a/Source/Modules/java.cxx b/Source/Modules/java.cxx
index 2fb21eca8..f351c91a3 100644
--- a/Source/Modules/java.cxx
+++ b/Source/Modules/java.cxx
@@ -741,25 +741,15 @@ public:
*----------------------------------------------------------------------*/
UpcallData *addUpcallMethod(String *imclass_method, String *class_method, String *imclass_desc, String *class_desc, String *decl) {
- UpcallData *udata;
- String *imclass_methodidx;
- String *class_methodidx;
- Hash *new_udata;
String *key = NewStringf("%s|%s", imclass_method, decl);
++curr_class_dmethod;
- /* Do we know about this director class already? */
- if ((udata = Getattr(dmethods_table, key))) {
- Delete(key);
- return Getattr(udata, "methodoff");
- }
-
- imclass_methodidx = NewStringf("%d", n_dmethods);
- class_methodidx = NewStringf("%d", n_dmethods - first_class_dmethod);
+ String *imclass_methodidx = NewStringf("%d", n_dmethods);
+ String *class_methodidx = NewStringf("%d", n_dmethods - first_class_dmethod);
n_dmethods++;
- new_udata = NewHash();
+ Hash *new_udata = NewHash();
Append(dmethods_seq, new_udata);
Setattr(dmethods_table, key, new_udata);
From 6fecb05379da3dd3e7a2dd2711d18b89db3dea28 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 19 Mar 2013 19:44:42 +0000
Subject: [PATCH 030/273] Fix director_nspace_director_name_collision test for
languages that don't support %nspace
---
Examples/test-suite/director_nspace_director_name_collision.i | 1 +
1 file changed, 1 insertion(+)
diff --git a/Examples/test-suite/director_nspace_director_name_collision.i b/Examples/test-suite/director_nspace_director_name_collision.i
index 5ef2509f8..e7abffcb1 100644
--- a/Examples/test-suite/director_nspace_director_name_collision.i
+++ b/Examples/test-suite/director_nspace_director_name_collision.i
@@ -39,6 +39,7 @@ namespace TopLevel
%nspace TopLevel::B::Foo;
#else
#warning nspace feature not yet supported in this target language
+%ignore TopLevel::B::Foo;
#endif
%feature("director") TopLevel::A::Foo;
From 12ee3e9c4c1d9be3bb51ec6ce12e4aabc11fa388 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 19 Mar 2013 22:15:07 +0000
Subject: [PATCH 031/273] Fix Travis matrix
---
.travis.yml | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 92402d346..1f8255df2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,16 +2,14 @@ language: cpp
matrix:
include:
- python: "2.7"
- - compiler: gcc
- - env: SWIGLANG=python
- include:
+ compiler: gcc
+ env: SWIGLANG=python
- jdk: oraclejdk7
- - compiler: gcc
- - env: SWIGLANG=java
+ compiler: gcc
+ env: SWIGLANG=java
before_install:
- sudo apt-get install libboost-dev -qq
script:
- - set
- ./autogen.sh && ./configure
- make -s
- make -k check-$SWIGLANG-examples check-$SWIGLANG-test-suite
From 7d083890e66c5d5f9237926b0ab81d963057a3af Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 19 Mar 2013 22:41:04 +0000
Subject: [PATCH 032/273] More Travis build experiments
---
.travis.yml | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 1f8255df2..78205c848 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,18 +1,31 @@
language: cpp
+compiler:
+ - gcc
+ - clang
matrix:
include:
- python: "2.7"
compiler: gcc
env: SWIGLANG=python
+ - jdk: oraclejdk6
+ compiler: gcc
+ env: SWIGLANG=java
- jdk: oraclejdk7
compiler: gcc
env: SWIGLANG=java
+ - perl: "5.10"
+ compiler: gcc
+ env: SWIGLANG=perl
+ - rvm: 1.8.7
+ compiler: gcc
+ env: SWIGLANG=ruby
before_install:
- sudo apt-get install libboost-dev -qq
script:
- ./autogen.sh && ./configure
- make -s
- - make -k check-$SWIGLANG-examples check-$SWIGLANG-test-suite
+ - echo "SWIGLANG: $SWIGLANG"
+# - make -k check-$SWIGLANG-examples check-$SWIGLANG-test-suite
branches:
only:
- master
From b72aca1d0739c66ff3bc3dc54385f296e662082b Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Wed, 20 Mar 2013 15:39:03 +1300
Subject: [PATCH 033/273] Fix typo in comment (swift->swig)
---
Lib/python/director.swg | 2 +-
Lib/ruby/director.swg | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Lib/python/director.swg b/Lib/python/director.swg
index ca46f6dab..97edc7ef0 100644
--- a/Lib/python/director.swg
+++ b/Lib/python/director.swg
@@ -33,7 +33,7 @@
/*
Use -DSWIG_DIRECTOR_NO_UEH if you prefer to avoid the use of the
- Undefined Exception Handler provided by swift
+ Undefined Exception Handler provided by swig.
*/
#ifndef SWIG_DIRECTOR_NO_UEH
#ifndef SWIG_DIRECTOR_UEH
diff --git a/Lib/ruby/director.swg b/Lib/ruby/director.swg
index 9807b11bb..a5daf2176 100644
--- a/Lib/ruby/director.swg
+++ b/Lib/ruby/director.swg
@@ -7,7 +7,7 @@
/*
Use -DSWIG_DIRECTOR_NOUEH if you prefer to avoid the use of the
- Undefined Exception Handler provided by swift
+ Undefined Exception Handler provided by swig.
*/
#ifndef SWIG_DIRECTOR_NOUEH
#ifndef SWIG_DIRECTOR_UEH
From 23bcc1c66b5f0c02960eacc8db975d110f2c1d8a Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Wed, 20 Mar 2013 16:45:24 +1300
Subject: [PATCH 034/273] Remove lingering relic of PHP4 support
---
Lib/exception.i | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/Lib/exception.i b/Lib/exception.i
index 8d8df33dd..dc3a7f462 100644
--- a/Lib/exception.i
+++ b/Lib/exception.i
@@ -14,12 +14,8 @@
#ifdef SWIGPHP
%{
-#if PHP_MAJOR_VERSION < 5
-# define SWIG_exception(code, msg) { zend_error(E_ERROR, msg); }
-#else
-# include "zend_exceptions.h"
-# define SWIG_exception(code, msg) { zend_throw_exception(NULL, (char*)msg, code TSRMLS_CC); }
-#endif
+#include "zend_exceptions.h"
+#define SWIG_exception(code, msg) { zend_throw_exception(NULL, (char*)msg, code TSRMLS_CC); }
%}
#endif
From b132992b8aa9d3afcbc45d6a6d15fe9f60c559e5 Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Thu, 21 Mar 2013 14:25:14 +1300
Subject: [PATCH 035/273] Stop claiming that SWIG_exception() can be used in
helper functions
---
Doc/Manual/Customization.html | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/Doc/Manual/Customization.html b/Doc/Manual/Customization.html
index b75eda9c4..f420f42d6 100644
--- a/Doc/Manual/Customization.html
+++ b/Doc/Manual/Customization.html
@@ -592,9 +592,7 @@ SWIG_NullReferenceError
-Since the SWIG_exception() function is defined at the C-level
-it can be used elsewhere in SWIG. This includes typemaps and helper
-functions.
+The SWIG_exception() function can also be used in typemaps.
11.2 Object ownership and %newobject
From 481ed3c57853463b01f7e3928491c7f0679d7776 Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Thu, 21 Mar 2013 14:41:09 +1300
Subject: [PATCH 036/273] Update lingering configure.in references to say
configure.ac
---
Doc/Manual/Extending.html | 4 ++--
Examples/php/check.list | 2 +-
Makefile.in | 4 ++--
configure.ac | 2 +-
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Doc/Manual/Extending.html b/Doc/Manual/Extending.html
index 059388717..5ea4e51f4 100644
--- a/Doc/Manual/Extending.html
+++ b/Doc/Manual/Extending.html
@@ -3101,7 +3101,7 @@ As you can see, most usages are direct.
-- configure.in
+
- configure.ac
- This file is processed by
@@ -3551,7 +3551,7 @@ details being outlined earlier on.
a runtime test, see for example Examples/python/class.
-
- Modify configure.in, Makefile.in and Examples/Makefile.in to run
+ Modify configure.ac, Makefile.in and Examples/Makefile.in to run
these examples. Please make sure that if the new language is not
installed properly on a box, make -k check should still work by
skipping the tests and examples for the new language module.
diff --git a/Examples/php/check.list b/Examples/php/check.list
index 28c7a619f..fef3feba6 100644
--- a/Examples/php/check.list
+++ b/Examples/php/check.list
@@ -1,5 +1,5 @@
# see top-level Makefile.in
-# (see also top-level configure.in kludge)
+# (see also top-level configure.ac kludge)
callback
class
constants
diff --git a/Makefile.in b/Makefile.in
index c6259916b..7ecbfa251 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -514,11 +514,11 @@ configfiles:
Makefile: $(srcdir)/Makefile.in config.status
$(SHELL) ./config.status
-# This target is usually called from Source/Makefile when configure.in has
+# This target is usually called from Source/Makefile when configure.ac has
# changed.
am--refresh: $(srcdir)/configure
-$(srcdir)/configure: $(srcdir)/configure.in
+$(srcdir)/configure: $(srcdir)/configure.ac
@echo "Build system is out of date. If the following commands fail, please reconfigure by hand (rerun: ./autogen.sh && ./configure)"
cd $(srcdir) && ./autogen.sh
$(SHELL) ./config.status --recheck
diff --git a/configure.ac b/configure.ac
index 0e8ad5bb1..e205138e7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2482,4 +2482,4 @@ AC_CONFIG_FILES([preinst-swig], [chmod +x preinst-swig])
AC_CONFIG_FILES([CCache/ccache_swig_config.h])
AC_OUTPUT
-dnl configure.in ends here
+dnl configure.ac ends here
From 9fbf771a006b50e58a8ec758bce7af4eacb2770f Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Fri, 22 Mar 2013 09:21:07 +1300
Subject: [PATCH 037/273] Fix lack of indentation in ocaml and pike sections
---
configure.ac | 74 ++++++++++++++++++++++++++--------------------------
1 file changed, 37 insertions(+), 37 deletions(-)
diff --git a/configure.ac b/configure.ac
index e205138e7..77e2b98bf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1504,47 +1504,47 @@ AC_ARG_WITH(ocamlmktop,[ --with-ocamlmktop=path Set location of ocamlmktop exe
# First, check for "--without-ocaml" or "--with-ocaml=no".
if test x"${OCAMLBIN}" = xno -o x"${with_alllang}" = xno ; then
-AC_MSG_NOTICE([Disabling OCaml])
-OCAMLBIN=
+ AC_MSG_NOTICE([Disabling OCaml])
+ OCAMLBIN=
else
-AC_MSG_CHECKING(for Ocaml DL load generator)
-if test -z "$OCAMLDLGEN"; then
-AC_CHECK_PROGS(OCAMLDLGEN, ocamldlgen, :)
-else
-OCAMLDLGEN="$OCAMLDLGEN"
-fi
+ AC_MSG_CHECKING(for Ocaml DL load generator)
+ if test -z "$OCAMLDLGEN"; then
+ AC_CHECK_PROGS(OCAMLDLGEN, ocamldlgen, :)
+ else
+ OCAMLDLGEN="$OCAMLDLGEN"
+ fi
-AC_MSG_CHECKING(for Ocaml package tool)
-if test -z "$OCAMLFIND"; then
-AC_CHECK_PROGS(OCAMLFIND, ocamlfind, :)
-else
-OCAMLFIND="$OCAMLFIND"
-fi
+ AC_MSG_CHECKING(for Ocaml package tool)
+ if test -z "$OCAMLFIND"; then
+ AC_CHECK_PROGS(OCAMLFIND, ocamlfind, :)
+ else
+ OCAMLFIND="$OCAMLFIND"
+ fi
-AC_MSG_CHECKING(for Ocaml compiler)
-if test -z "$OCAMLC"; then
-AC_CHECK_PROGS(OCAMLC, ocamlc, :)
-else
-OCAMLC="$OCAMLC"
-fi
+ AC_MSG_CHECKING(for Ocaml compiler)
+ if test -z "$OCAMLC"; then
+ AC_CHECK_PROGS(OCAMLC, ocamlc, :)
+ else
+ OCAMLC="$OCAMLC"
+ fi
-AC_MSG_CHECKING(for Ocaml interpreter)
-if test "x$OCAMLBIN" = xyes; then
-AC_CHECK_PROGS(OCAMLBIN, ocaml, :)
-else
-OCAMLBIN="$OCAMLBIN"
-fi
+ AC_MSG_CHECKING(for Ocaml interpreter)
+ if test "x$OCAMLBIN" = xyes; then
+ AC_CHECK_PROGS(OCAMLBIN, ocaml, :)
+ else
+ OCAMLBIN="$OCAMLBIN"
+ fi
-AC_MSG_CHECKING(for Ocaml toplevel creator)
-if test -z "$OCAMLMKTOP"; then
-AC_CHECK_PROGS(OCAMLMKTOP, ocamlmktop, :)
-else
-OCAMLMKTOP="$OCAMLMKTOP"
-fi
+ AC_MSG_CHECKING(for Ocaml toplevel creator)
+ if test -z "$OCAMLMKTOP"; then
+ AC_CHECK_PROGS(OCAMLMKTOP, ocamlmktop, :)
+ else
+ OCAMLMKTOP="$OCAMLMKTOP"
+ fi
-OCAMLLOC=loc
-if test "$OCAMLC" != ":" ; then
+ OCAMLLOC=loc
+ if test "$OCAMLC" != ":" ; then
AC_MSG_CHECKING(for Ocaml header files)
dirs="/usr/lib/ocaml/caml /usr/local/lib/ocaml/caml"
dir="`$OCAMLC -where 2>/dev/null`"
@@ -1567,7 +1567,7 @@ if test "$OCAMLC" != ":" ; then
OCAMLVER=`$OCAMLC -version | sed -e 's/.*version //g'`
AC_COMPARE_VERSION([$OCAMLVER],[3.08.2],[:],[:],[OCAMLLOC=_loc])
AC_MSG_RESULT($OCAMLVER)
-fi
+ fi
fi # Disabling ocaml
export OCAMLLOC
@@ -1600,8 +1600,8 @@ AS_HELP_STRING([--with-pike=path], [Set location of Pike executable]),[PIKEBIN="
# First, check for "--without-pike" or "--with-pike=no".
if test x"${PIKEBIN}" = xno -o x"${with_alllang}" = xno ; then
-AC_MSG_NOTICE([Disabling Pike])
-PIKEBIN=
+ AC_MSG_NOTICE([Disabling Pike])
+ PIKEBIN=
else
if test "x$PIKEBIN" = xyes; then
From 2bbc52302c2c18f81e9e2b02f24a63e2097da94a Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Fri, 22 Mar 2013 09:37:02 +1300
Subject: [PATCH 038/273] Remove pointless assignments of variables to
themselves
---
configure.ac | 22 +++++++---------------
1 file changed, 7 insertions(+), 15 deletions(-)
diff --git a/configure.ac b/configure.ac
index 77e2b98bf..d34f4fad7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -713,8 +713,9 @@ else
# Cygwin (Windows) needs the library for dynamic linking
case $host in
- *-*-cygwin* | *-*-mingw*) PYTHONDYNAMICLINKING="-L$PYLIB $PYLINK"
- DEFS="-DUSE_DL_IMPORT $DEFS" PYINCLUDE="$PYINCLUDE"
+ *-*-cygwin* | *-*-mingw*)
+ PYTHONDYNAMICLINKING="-L$PYLIB $PYLINK"
+ DEFS="-DUSE_DL_IMPORT $DEFS"
;;
*)PYTHONDYNAMICLINKING="";;
esac
@@ -808,8 +809,9 @@ else
# Cygwin (Windows) needs the library for dynamic linking
case $host in
- *-*-cygwin* | *-*-mingw*) PYTHON3DYNAMICLINKING="-L$PYLIB $PY3LINK"
- DEFS="-DUSE_DL_IMPORT $DEFS" PY3INCLUDE="$PY3INCLUDE"
+ *-*-cygwin* | *-*-mingw*)
+ PYTHON3DYNAMICLINKING="-L$PYLIB $PY3LINK"
+ DEFS="-DUSE_DL_IMPORT $DEFS"
;;
*)PYTHON3DYNAMICLINKING="";;
esac
@@ -1300,7 +1302,7 @@ else
AC_MSG_CHECKING(for MzScheme dynext object)
MZDYNOBJ=`$MZSCHEME --eval '(begin (require dynext/link) (with-handlers (((lambda args #t) (lambda args #f))) (for-each (lambda (x) (printf "~a" x)) (expand-for-link-variant (current-standard-link-libraries)))))' 2>/dev/null`
if test -f "$MZDYNOBJ"; then
- MZDYNOBJ="$MZDYNOBJ"
+ :
else
# older versions (3.72 approx and earlier)
MZDYNOBJ=`$MZSCHEME --mute-banner --version --eval '(begin (require (lib "link.ss" "dynext")) (with-handlers (((lambda args #t) (lambda args #f))) (for-each (lambda (x) (display x) (display " ")) ((current-make-standard-link-libraries)))) (with-handlers (((lambda args #t) (lambda args #f))) (for-each (lambda (x) (display x)) (expand-for-link-variant (current-standard-link-libraries)))))' 2>/dev/null`
@@ -1511,36 +1513,26 @@ else
AC_MSG_CHECKING(for Ocaml DL load generator)
if test -z "$OCAMLDLGEN"; then
AC_CHECK_PROGS(OCAMLDLGEN, ocamldlgen, :)
- else
- OCAMLDLGEN="$OCAMLDLGEN"
fi
AC_MSG_CHECKING(for Ocaml package tool)
if test -z "$OCAMLFIND"; then
AC_CHECK_PROGS(OCAMLFIND, ocamlfind, :)
- else
- OCAMLFIND="$OCAMLFIND"
fi
AC_MSG_CHECKING(for Ocaml compiler)
if test -z "$OCAMLC"; then
AC_CHECK_PROGS(OCAMLC, ocamlc, :)
- else
- OCAMLC="$OCAMLC"
fi
AC_MSG_CHECKING(for Ocaml interpreter)
if test "x$OCAMLBIN" = xyes; then
AC_CHECK_PROGS(OCAMLBIN, ocaml, :)
- else
- OCAMLBIN="$OCAMLBIN"
fi
AC_MSG_CHECKING(for Ocaml toplevel creator)
if test -z "$OCAMLMKTOP"; then
AC_CHECK_PROGS(OCAMLMKTOP, ocamlmktop, :)
- else
- OCAMLMKTOP="$OCAMLMKTOP"
fi
OCAMLLOC=loc
From 250760daf498c339d2dd554f417b3390b02503ae Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Fri, 22 Mar 2013 10:43:19 +1300
Subject: [PATCH 039/273] Remove superfluous trailing semicolons
---
configure.ac | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/configure.ac b/configure.ac
index d34f4fad7..820cf3691 100644
--- a/configure.ac
+++ b/configure.ac
@@ -205,7 +205,7 @@ then
*-*-next*)
if test "$ns_dyld"
then LDSHARED='$(CC) $(LDFLAGS) -bundle -prebind'
- else LDSHARED='$(CC) $(CFLAGS) -nostdlib -r';
+ else LDSHARED='$(CC) $(CFLAGS) -nostdlib -r'
fi
if test "$with_next_framework" ; then
LDSHARED="$LDSHARED \$(LDLIBRARY)"
@@ -243,9 +243,9 @@ AC_MSG_CHECKING(TRYLINKINGWITHCXX)
if test -z "$TRYLINKINGWITHCXX"
then
case $host in
- *-*-solaris*) if test "$GCC" = yes;
- then TRYLINKINGWITHCXX="CXXSHARED= $CXX -Wl,-G";
- else TRYLINKINGWITHCXX="CXXSHARED= $CXX -G -L/opt/SUNWspro/lib -lCrun -lCstd";
+ *-*-solaris*) if test "$GCC" = yes
+ then TRYLINKINGWITHCXX="CXXSHARED= $CXX -Wl,-G"
+ else TRYLINKINGWITHCXX="CXXSHARED= $CXX -G -L/opt/SUNWspro/lib -lCrun -lCstd"
fi;;
*-*-hp*) TRYLINKINGWITHCXX="CXXSHARED= $CXX +z ";;
*-*-darwin*) TRYLINKINGWITHCXX="CXXSHARED= $CXX -bundle -undefined suppress -flat_namespace";;
@@ -270,9 +270,9 @@ AC_MSG_CHECKING(CCSHARED)
if test -z "$CCSHARED"
then
case $host in
- *-*-hp*) if test "$GCC" = yes;
- then CCSHARED="-fpic";
- else CCSHARED="+z";
+ *-*-hp*) if test "$GCC" = yes
+ then CCSHARED="-fpic"
+ else CCSHARED="+z"
fi;;
*-*-linux*) CCSHARED="-fpic";;
*-*-freebsd* | *-*-openbsd*) CCSHARED="-fpic";;
@@ -320,7 +320,7 @@ AC_MSG_RESULT($LINKFORSHARED)
# Optional CFLAGS used to silence/enhance compiler warnings on some platforms.
AC_MSG_CHECKING(PLATFLAGS)
case $host in
- *-*-solaris*) if test "$GCC" = yes;
+ *-*-solaris*) if test "$GCC" = yes
then PLATFLAGS=
else PLATFLAGS=
# else PLATFLAGS="-errtags=yes" # Need more work as C examples use ld for linking
@@ -859,7 +859,7 @@ if test -n "$PERL"; then
if test -r $i/perl.h; then
AC_MSG_RESULT($i)
PERL5EXT="$i"
- break;
+ break
fi
done
if test "$PERL5EXT" = none; then
@@ -1356,7 +1356,7 @@ if test -n "$RUBY"; then
if test -r $i/ruby.h; then
AC_MSG_RESULT($i)
RUBYINCLUDE="-I$i"
- break;
+ break
fi
done
if test x"$RUBYARCH" != x""; then
@@ -1406,7 +1406,7 @@ if test -n "$RUBY"; then
for i in $dirs; do
if (test -r $i/$rb_libruby;) then
RUBYLIB="$i"
- break;
+ break
fi
done
fi
@@ -1548,7 +1548,7 @@ else
AC_MSG_RESULT($i)
OCAMLEXT="$i"
OCAMLINC="-I$OCAMLEXT"
- break;
+ break
fi
done
if test -z "$OCAMLINC"; then
@@ -1794,7 +1794,7 @@ if test -z "$CSHARPBIN" ; then
# The Mono compiler should emit: Mono C# compiler version a.b.c.d
csharp_version_raw=`(mcs --version) 2>/dev/null`
csharp_version_searched=`(mcs --version | sed -e "/C#/b" -e "/Mono/b" -e d) 2>/dev/null` # return string if contains 'Mono' or 'C#'
- CSHARPCOMPILER="";
+ CSHARPCOMPILER=""
if test -n "$csharp_version_raw" ; then
if test "$csharp_version_raw" = "$csharp_version_searched" ; then
CSHARPCOMPILER="mcs"
@@ -1951,7 +1951,7 @@ else
if test -r $i/lua.h; then
AC_MSG_RESULT($i/lua.h)
LUAFLAGS="$ISYSTEM$i"
- break;
+ break
fi
done
if test -z "$LUAFLAGS"; then
From f85a3b7756650e355374404c07ff8a08bc1fdea2 Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Fri, 22 Mar 2013 10:46:44 +1300
Subject: [PATCH 040/273] Remove handling for Python <1.5 - we only support
>=2.0 now
---
configure.ac | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/configure.ac b/configure.ac
index 820cf3691..f57a65fda 100644
--- a/configure.ac
+++ b/configure.ac
@@ -703,12 +703,7 @@ else
AC_MSG_RESULT($PYLIB)
fi
- # Check for really old versions
- if test -r $PYLIB/libPython.a; then
- PYLINK="-lModules -lPython -lObjects -lParser"
- else
- PYLINK="-l$PYVERSION"
- fi
+ PYLINK="-l$PYVERSION"
fi
# Cygwin (Windows) needs the library for dynamic linking
From 5199a9002fbf4e3c8f50372d965bbbcf25c577db Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Fri, 22 Mar 2013 11:16:48 +1300
Subject: [PATCH 041/273] Correct comment about sys.lib
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index f57a65fda..cfbc09426 100644
--- a/configure.ac
+++ b/configure.ac
@@ -670,7 +670,7 @@ else
AC_MSG_CHECKING(for Python lib dir)
PYLIBDIR=`($PYTHON -c "import sys; print sys.lib") 2>/dev/null`
if test -z "$PYLIBDIR"; then
- # older versions don't have sys.lib so the best we can do is assume lib
+ # Fedora patch Python to add sys.lib, for other distros we assume "lib".
PYLIBDIR="lib"
fi
AC_MSG_RESULT($PYLIBDIR)
From 3abe3517f8bc84147aaf28bf207773fb6d5a8c50 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Thu, 21 Mar 2013 19:41:59 +0000
Subject: [PATCH 042/273] Don't test shared_ptr for languages that don't have
support for shared_ptr
---
Examples/test-suite/director_smartptr.i | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/Examples/test-suite/director_smartptr.i b/Examples/test-suite/director_smartptr.i
index 0d78c2775..13eb745b6 100644
--- a/Examples/test-suite/director_smartptr.i
+++ b/Examples/test-suite/director_smartptr.i
@@ -32,6 +32,12 @@ public:
%}
+#if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGPYTHON) || defined(SWIGD)
+#define SHARED_PTR_WRAPPERS_IMPLEMENTED
+#endif
+
+#if defined(SHARED_PTR_WRAPPERS_IMPLEMENTED)
+
%include
%include
@@ -60,4 +66,7 @@ public:
virtual FooBar makeFooBar();
static Foo* get_self(Foo *self_);
-};
\ No newline at end of file
+};
+
+#endif
+
From 1e00ce6bf963d501d1e056abcd70ae66be5fed94 Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Tue, 26 Mar 2013 15:07:16 +1300
Subject: [PATCH 043/273] Fix comment typo in typemap
---
Examples/test-suite/primitive_types.i | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Examples/test-suite/primitive_types.i b/Examples/test-suite/primitive_types.i
index f912bd77c..9425cc1a0 100644
--- a/Examples/test-suite/primitive_types.i
+++ b/Examples/test-suite/primitive_types.i
@@ -48,7 +48,7 @@
const double & ($basetype temp)
%{ temp = ($basetype)$input; $1 = &temp; %}
- the other tipical change is to add the enum SWIGTYPE to the
+ the other typical change is to add the enum SWIGTYPE to the
integer throws typemaps:
%typemap(throws) int,
From b504b68a62e003f39d6bab810842d6a2b684a51c Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 23 Mar 2013 16:52:30 +0000
Subject: [PATCH 044/273] Fix erratically failing threads_exception python test
---
Examples/test-suite/python/threads_exception_runme.py | 10 ++++++----
Examples/test-suite/threads_exception.i | 1 +
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/Examples/test-suite/python/threads_exception_runme.py b/Examples/test-suite/python/threads_exception_runme.py
index 12202e3d3..d4b8855fc 100644
--- a/Examples/test-suite/python/threads_exception_runme.py
+++ b/Examples/test-suite/python/threads_exception_runme.py
@@ -23,10 +23,12 @@ except RuntimeError,e:
try:
t.hosed()
except threads_exception.Exc,e:
- if e.code != 42:
- raise RuntimeError
- if e.msg != "Hosed":
- raise RuntimeError, "bad... msg: %s" % e.msg
+ code = e.code
+ if code != 42:
+ raise RuntimeError, "bad... code: %d" % code
+ msg = e.msg
+ if msg != "Hosed":
+ raise RuntimeError, "bad... msg: '%s' len: %d" % (msg, len(msg))
for i in range(1,4):
try:
diff --git a/Examples/test-suite/threads_exception.i b/Examples/test-suite/threads_exception.i
index 9f275bd6a..b374f0ce6 100644
--- a/Examples/test-suite/threads_exception.i
+++ b/Examples/test-suite/threads_exception.i
@@ -20,6 +20,7 @@ public:
Exc(int c, const char *m) {
code = c;
strncpy(msg,m,255);
+ msg[255] = 0;
}
int code;
char msg[256];
From 7eda619741a31ed73df512085f7256694173e877 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 25 Mar 2013 19:03:39 +0000
Subject: [PATCH 045/273] Fix invalid iterators used with -ve ranges - Python
Fixes li_std_containers_int testcase.
Valgrind reports no more problems for this testcase.
---
Lib/python/pycontainer.swg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Lib/python/pycontainer.swg b/Lib/python/pycontainer.swg
index eb089e98e..81909ae02 100644
--- a/Lib/python/pycontainer.swg
+++ b/Lib/python/pycontainer.swg
@@ -398,7 +398,7 @@ namespace swig {
typename Sequence::reverse_iterator it = sb;
size_t delcount = (ii - jj - step - 1) / -step;
while (delcount) {
- self->erase((++it).base());
+ it = typename Sequence::reverse_iterator(self->erase((++it).base()));
if (it==self->rend())
break;
for (Py_ssize_t c=0; c<(-step-1); ++c)
From 38b2b95c30662e81518bd8321bbbbed1ab7dd300 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 25 Mar 2013 19:26:12 +0000
Subject: [PATCH 046/273] Fix some invalid iterator usage in Python when
deleting/inserting slices from/into containers
---
Lib/python/pycontainer.swg | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/Lib/python/pycontainer.swg b/Lib/python/pycontainer.swg
index 81909ae02..d4386622e 100644
--- a/Lib/python/pycontainer.swg
+++ b/Lib/python/pycontainer.swg
@@ -339,7 +339,7 @@ namespace swig {
std::advance(it,ii);
for (size_t rc=0; rcend(); ++c)
it++;
}
}
@@ -357,7 +357,7 @@ namespace swig {
std::advance(it,size-ii-1);
for (size_t rc=0; rcrend(); ++c)
it++;
}
}
@@ -383,9 +383,7 @@ namespace swig {
size_t delcount = (jj - ii + step - 1) / step;
while (delcount) {
it = self->erase(it);
- if (it==self->end())
- break;
- for (Py_ssize_t c=0; c<(step-1); ++c)
+ for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c)
it++;
delcount--;
}
@@ -399,9 +397,7 @@ namespace swig {
size_t delcount = (ii - jj - step - 1) / -step;
while (delcount) {
it = typename Sequence::reverse_iterator(self->erase((++it).base()));
- if (it==self->rend())
- break;
- for (Py_ssize_t c=0; c<(-step-1); ++c)
+ for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c)
it++;
delcount--;
}
From 2e0d1b12dc4fe5cf12239a59c5d96bdbd352d085 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 29 Mar 2013 06:28:15 +0000
Subject: [PATCH 047/273] Fix delete_if (reject!) for the STL container
wrappers.
Previously they would sometimes seg fault or not work.
---
CHANGES.current | 4 +++
Examples/test-suite/ruby/li_std_set_runme.rb | 4 +++
.../test-suite/ruby/li_std_vector_runme.rb | 5 +++
Lib/ruby/rubycontainer.swg | 35 ++++++++-----------
Lib/ruby/std_set.i | 19 ++++++++++
5 files changed, 46 insertions(+), 21 deletions(-)
diff --git a/CHANGES.current b/CHANGES.current
index 6547a88be..bbf97a67f 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,10 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.10 (in progress)
============================
+2013-03-29: wsfulton
+ [Ruby] Fix delete_if (reject!) for the STL container wrappers which previously would
+ sometimes seg fault or not work.
+
2013-03-19: wsfulton
[C#, Java, D] Fix seg fault in SWIG using directors when class and virtual method names are
the same except being in different namespaces when the %nspace feature is not being used.
diff --git a/Examples/test-suite/ruby/li_std_set_runme.rb b/Examples/test-suite/ruby/li_std_set_runme.rb
index 65354be58..a85418471 100755
--- a/Examples/test-suite/ruby/li_std_set_runme.rb
+++ b/Examples/test-suite/ruby/li_std_set_runme.rb
@@ -61,3 +61,7 @@ s.to_a == [1,[1,2],'hello'] # sort order: s.sort {|a,b| a.hash <=> b.hash}
EOF
+iv = Set_int.new([0,1,2,3,4,5,6])
+iv.delete_if { |x| x == 0 || x == 3 || x == 6 }
+swig_assert_equal(iv.to_s, '1245', binding)
+
diff --git a/Examples/test-suite/ruby/li_std_vector_runme.rb b/Examples/test-suite/ruby/li_std_vector_runme.rb
index 8bcad2d19..fe3d9e0ce 100755
--- a/Examples/test-suite/ruby/li_std_vector_runme.rb
+++ b/Examples/test-suite/ruby/li_std_vector_runme.rb
@@ -64,6 +64,11 @@ y = average([1, 2, 3, 4])
half([10, 10.5, 11, 11.5])
EOF
+iv = IntVector.new([0,1,2,3,4,5,6])
+iv.delete_if { |x| x == 0 || x == 3 || x == 6 }
+swig_assert_equal(iv.to_s, '1245', binding)
+
+
dv = DoubleVector.new(10)
swig_assert( "dv.respond_to? :each_with_index", binding )
diff --git a/Lib/ruby/rubycontainer.swg b/Lib/ruby/rubycontainer.swg
index d8d15f690..d4eaa5f73 100644
--- a/Lib/ruby/rubycontainer.swg
+++ b/Lib/ruby/rubycontainer.swg
@@ -677,27 +677,6 @@ namespace swig
return r;
}
- %alias reject_bang "delete_if";
- Sequence* reject_bang() {
- if ( !rb_block_given_p() )
- rb_raise( rb_eArgError, "no block given" );
-
- Sequence::iterator i = self->begin();
- Sequence::iterator e = self->end();
- for ( ; i != e; )
- {
- VALUE r = swig::from< Sequence::value_type >(*i);
- if ( RTEST( rb_yield(r) ) ) {
- $self->erase(i++);
- e = self->end();
- } else {
- ++i;
- }
- }
-
- return self;
- }
-
VALUE delete_at(difference_type i) {
VALUE r = Qnil;
try {
@@ -757,6 +736,19 @@ namespace swig
}
%enddef
+%define %swig_sequence_methods_extra(Sequence...)
+ %extend {
+ %alias reject_bang "delete_if";
+ Sequence* reject_bang() {
+ if ( !rb_block_given_p() )
+ rb_raise( rb_eArgError, "no block given" );
+
+ $self->erase( std::remove_if( $self->begin(), $self->end(),
+ swig::yield< Sequence::value_type >() ), $self->end() );
+ return $self;
+ }
+ }
+%enddef
/**
* Macro used to add functions for Sequences
@@ -764,6 +756,7 @@ namespace swig
*/
%define %swig_sequence_methods(Sequence...)
%swig_sequence_methods_common(%arg(Sequence));
+ %swig_sequence_methods_extra(%arg(Sequence));
%swig_sequence_back_inserters(%arg(Sequence));
%extend {
diff --git a/Lib/ruby/std_set.i b/Lib/ruby/std_set.i
index 00596b4a6..e38702ef5 100644
--- a/Lib/ruby/std_set.i
+++ b/Lib/ruby/std_set.i
@@ -152,10 +152,29 @@
}
%}
+%define %swig_sequence_methods_extra_set(Sequence...)
+ %extend {
+ %alias reject_bang "delete_if";
+ Sequence* reject_bang() {
+ if ( !rb_block_given_p() )
+ rb_raise( rb_eArgError, "no block given" );
+
+ for ( Sequence::iterator i = $self->begin(); i != $self->end(); ) {
+ VALUE r = swig::from< Sequence::value_type >(*i);
+ Sequence::iterator current = i++;
+ if ( RTEST( rb_yield(r) ) )
+ $self->erase(current);
+ }
+
+ return self;
+ }
+ }
+%enddef
%define %swig_set_methods(set...)
%swig_sequence_methods_common(%arg(set));
+ %swig_sequence_methods_extra_set(%arg(set));
%fragment("RubyPairBoolOutputIterator","header",fragment=SWIG_From_frag(bool),fragment="RubySequence_Cont") {}
From 8381cc6b7db33669103bb4aa222884dcfdb6a266 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Wed, 27 Mar 2013 11:14:48 +0000
Subject: [PATCH 048/273] Fix test suite lock initialisation leading to random
seg faults in li_boost_shared_ptr
---
Examples/test-suite/swig_examples_lock.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/Examples/test-suite/swig_examples_lock.h b/Examples/test-suite/swig_examples_lock.h
index feef26d0f..49d1bf285 100644
--- a/Examples/test-suite/swig_examples_lock.h
+++ b/Examples/test-suite/swig_examples_lock.h
@@ -43,6 +43,7 @@ class CriticalSection {
public:
CriticalSection() {
pthread_mutexattr_t mutexattr;
+ pthread_mutexattr_init(&mutexattr);
pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE_NP);
pthread_mutex_init(&mutex_, &mutexattr);
pthread_mutexattr_destroy(&mutexattr);
From 5878ca5f1a93a26231c5f931047ac785c0c32052 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 29 Mar 2013 09:15:39 +0000
Subject: [PATCH 049/273] Fix autodoc test for python 2.4
---
Examples/test-suite/python/autodoc_runme.py | 35 ++++++++++---------
Examples/test-suite/python/file_test_runme.py | 2 +-
2 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/Examples/test-suite/python/autodoc_runme.py b/Examples/test-suite/python/autodoc_runme.py
index dc843ae96..634b2dccf 100644
--- a/Examples/test-suite/python/autodoc_runme.py
+++ b/Examples/test-suite/python/autodoc_runme.py
@@ -1,4 +1,5 @@
from autodoc import *
+import sys
def check(got, expected):
if expected != got:
@@ -121,22 +122,24 @@ check(A.func3static.__doc__, "\n"
" "
)
-check(A.variable_a.__doc__, "A_variable_a_get(self) -> int")
-check(A.variable_b.__doc__, "A_variable_b_get(A self) -> int")
-check(A.variable_c.__doc__, "\n"
-"A_variable_c_get(self) -> int\n"
-"\n"
-"Parameters:\n"
-" self: A *\n"
-"\n"
-)
-check(A.variable_d.__doc__, "\n"
-"A_variable_d_get(A self) -> int\n"
-"\n"
-"Parameters:\n"
-" self: A *\n"
-"\n"
-)
+if sys.version[0:2] > (2, 4):
+ # Python 2.4 does not seem to work
+ check(A.variable_a.__doc__, "A_variable_a_get(self) -> int")
+ check(A.variable_b.__doc__, "A_variable_b_get(A self) -> int")
+ check(A.variable_c.__doc__, "\n"
+ "A_variable_c_get(self) -> int\n"
+ "\n"
+ "Parameters:\n"
+ " self: A *\n"
+ "\n"
+ )
+ check(A.variable_d.__doc__, "\n"
+ "A_variable_d_get(A self) -> int\n"
+ "\n"
+ "Parameters:\n"
+ " self: A *\n"
+ "\n"
+ )
check(B.__doc__, "Proxy of C++ B class")
check(C.__init__.__doc__, "__init__(self, a, b, h) -> C")
diff --git a/Examples/test-suite/python/file_test_runme.py b/Examples/test-suite/python/file_test_runme.py
index de4e2669e..3d8b153db 100644
--- a/Examples/test-suite/python/file_test_runme.py
+++ b/Examples/test-suite/python/file_test_runme.py
@@ -1,7 +1,7 @@
import sys
import file_test
-if sys.version_info < (3,0):
+if sys.version[0:2] > (3, 0):
file_test.nfile(sys.stdout)
cstdout = file_test.GetStdOut()
From f42ac989a7c608d9bc68c409a5b0db018bfef135 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 29 Mar 2013 09:19:03 +0000
Subject: [PATCH 050/273] Add note about Python STL fixes
---
CHANGES.current | 3 +++
1 file changed, 3 insertions(+)
diff --git a/CHANGES.current b/CHANGES.current
index bbf97a67f..db7a0612f 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -9,6 +9,9 @@ Version 2.0.10 (in progress)
[Ruby] Fix delete_if (reject!) for the STL container wrappers which previously would
sometimes seg fault or not work.
+2013-03-25: wsfulton
+ [Python] Fix some undefined behaviour deleting slices in the STL containers.
+
2013-03-19: wsfulton
[C#, Java, D] Fix seg fault in SWIG using directors when class and virtual method names are
the same except being in different namespaces when the %nspace feature is not being used.
From af859a1e2da4a317b7ad3a706825f6c6a6ae1c97 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 29 Mar 2013 13:46:49 +0000
Subject: [PATCH 051/273] Fix Ruby documentation for %bang
---
Doc/Manual/Ruby.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Doc/Manual/Ruby.html b/Doc/Manual/Ruby.html
index 47cf4f303..9739e1109 100644
--- a/Doc/Manual/Ruby.html
+++ b/Doc/Manual/Ruby.html
@@ -3215,7 +3215,7 @@ directive which is unique to the Ruby module and was introduced in SWIG
-%bang sort!(arr);
int sort(int arr[]);
+%bang sort(int arr[]);
int sort(int arr[]);
From 8801ea3f11fd02a953584eae024d1e5385a5a530 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sun, 31 Mar 2013 00:21:12 +0000
Subject: [PATCH 052/273] Fix incorrect assumptions in Ruby li_std_set test
---
Examples/test-suite/ruby/li_std_set_runme.rb | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Examples/test-suite/ruby/li_std_set_runme.rb b/Examples/test-suite/ruby/li_std_set_runme.rb
index a85418471..efc163bee 100755
--- a/Examples/test-suite/ruby/li_std_set_runme.rb
+++ b/Examples/test-suite/ruby/li_std_set_runme.rb
@@ -57,7 +57,10 @@ s = LanguageSet.new
s.insert([1,2])
s.insert(1)
s.insert("hello")
-s.to_a == [1,[1,2],'hello'] # sort order: s.sort {|a,b| a.hash <=> b.hash}
+#s.to_a == [1,[1,2],'hello'] # sort order: s.sort {|a,b| a.hash <=> b.hash}
+# Test above is flawed as LanguageSet sorts by each element's hash, so the order will change from one invocation to the next. Sort a conversion to array instead.
+sa = s.to_a.sort { |x, y| x.to_s <=> y.to_s }
+sa == [1,[1,2],'hello']
EOF
From e13e1cba9e6dd024f713821558ae084cc9dc3507 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sun, 31 Mar 2013 00:55:34 +0000
Subject: [PATCH 053/273] Fix seg fault when using STL containers of generic
Ruby types, GC_VALUE or LANGUAGE_OBJECT, on exit of the Ruby interpreter.
Observed on 64 bit Linux in the std_li_set testcase. The global hash which is
meant to hold GC references was being deleted by the interpreter on exit
before the GC_VALUES destructors were being called.
---
CHANGES.current | 4 ++
Lib/ruby/rubyclasses.swg | 115 +++++++++++++++++++++------------------
2 files changed, 67 insertions(+), 52 deletions(-)
diff --git a/CHANGES.current b/CHANGES.current
index db7a0612f..6e3d6fb08 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,10 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.10 (in progress)
============================
+2013-03-30: wsfulton
+ [Ruby] Fix seg fault when using STL containers of generic Ruby types, GC_VALUE or LANGUAGE_OBJECT,
+ on exit of the Ruby interpreter. More frequently observed in ruby-1.9.
+
2013-03-29: wsfulton
[Ruby] Fix delete_if (reject!) for the STL container wrappers which previously would
sometimes seg fault or not work.
diff --git a/Lib/ruby/rubyclasses.swg b/Lib/ruby/rubyclasses.swg
index 2048b1f5f..60411a2de 100644
--- a/Lib/ruby/rubyclasses.swg
+++ b/Lib/ruby/rubyclasses.swg
@@ -36,11 +36,64 @@
%fragment("GC_VALUE_definition","header") {
namespace swig {
+ class SwigGCReferences {
+ // Hash of all GC_VALUE's currently in use
+ static SwigGCReferences s_references;
+
+ VALUE _hash;
+
+ SwigGCReferences() : _hash(Qnil) {
+ }
+ ~SwigGCReferences() {
+ if (_hash != Qnil)
+ rb_gc_unregister_address( &_hash );
+ }
+ static void EndProcHandler(VALUE) {
+ // Ruby interpreter ending - _hash can no longer be accessed.
+ s_references._hash = Qnil;
+ }
+ public:
+ static SwigGCReferences& instance() {
+ return s_references;
+ }
+ static void initialize() {
+ if (s_references._hash == Qnil) {
+ rb_set_end_proc(&EndProcHandler, Qnil);
+ s_references._hash = rb_hash_new();
+ rb_gc_register_address( &s_references._hash );
+ }
+ }
+ void GC_register(VALUE& obj) {
+ if (FIXNUM_P(obj) || SPECIAL_CONST_P(obj) || SYMBOL_P(obj))
+ return;
+ if (_hash != Qnil) {
+ VALUE val = rb_hash_aref(_hash, obj);
+ unsigned n = FIXNUM_P(val) ? NUM2UINT(val) : 0;
+ ++n;
+ rb_hash_aset(_hash, obj, INT2NUM(n));
+ }
+ }
+ void GC_unregister(const VALUE& obj) {
+ if (FIXNUM_P(obj) || SPECIAL_CONST_P(obj) || SYMBOL_P(obj))
+ return;
+ // this test should not be needed but I've noticed some very erratic
+ // behavior of none being unregistered in some very rare situations.
+ if (BUILTIN_TYPE(obj) == T_NONE)
+ return;
+ if (_hash != Qnil) {
+ VALUE val = rb_hash_aref(s_references._hash, obj);
+ unsigned n = FIXNUM_P(val) ? NUM2UINT(val) : 1;
+ --n;
+ if (n)
+ rb_hash_aset(s_references._hash, obj, INT2NUM(n));
+ else
+ rb_hash_delete(s_references._hash, obj);
+ }
+ }
+ };
+
class GC_VALUE {
protected:
- // Hash of all GC_VALUE's currently in use
- static VALUE _hash;
-
VALUE _obj;
static ID hash_id;
@@ -77,75 +130,33 @@ namespace swig {
public:
- static void initialize()
- {
- if ( _hash == Qnil )
- {
- _hash = rb_hash_new();
- rb_gc_register_address( &_hash );
- }
- }
-
- // this function is never called. Provided for symmetry only.
- static void cleanup()
- {
- rb_gc_unregister_address( &_hash );
- }
-
GC_VALUE() : _obj( Qnil )
{
}
GC_VALUE(const GC_VALUE& item) : _obj(item._obj)
{
- GC_register();
+ SwigGCReferences::instance().GC_register(_obj);
}
GC_VALUE(VALUE obj) :_obj(obj)
{
- GC_register();
+ SwigGCReferences::instance().GC_register(_obj);
}
~GC_VALUE()
{
- GC_unregister();
+ SwigGCReferences::instance().GC_unregister(_obj);
}
GC_VALUE & operator=(const GC_VALUE& item)
{
- GC_unregister();
+ SwigGCReferences::instance().GC_unregister(_obj);
_obj = item._obj;
- GC_register();
+ SwigGCReferences::instance().GC_register(_obj);
return *this;
}
- void GC_register()
- {
- if ( FIXNUM_P(_obj) || SPECIAL_CONST_P(_obj) || SYMBOL_P(_obj) )
- return;
- VALUE val = rb_hash_aref( _hash, _obj );
- unsigned n = FIXNUM_P(val) ? NUM2UINT(val) : 0;
- ++n;
- rb_hash_aset( _hash, _obj, INT2NUM(n) );
- }
-
- void GC_unregister()
- {
- if ( FIXNUM_P(_obj) || SPECIAL_CONST_P(_obj) || SYMBOL_P(_obj) )
- return;
- // this test should not be needed but I've noticed some very erratic
- // behavior of none being unregistered in some very rare situations.
- if ( BUILTIN_TYPE(_obj) == T_NONE ) return;
-
- VALUE val = rb_hash_aref( _hash, _obj );
- unsigned n = FIXNUM_P(val) ? NUM2UINT(val) : 1;
- --n;
- if ( n )
- rb_hash_aset( _hash, _obj, INT2NUM(n) );
- else
- rb_hash_delete( _hash, _obj );
- }
-
operator VALUE() const
{
return _obj;
@@ -294,7 +305,7 @@ namespace swig {
ID GC_VALUE::lshift_id = rb_intern("<<");
ID GC_VALUE::rshift_id = rb_intern(">>");
- VALUE GC_VALUE::_hash = Qnil;
+ SwigGCReferences SwigGCReferences::s_references;
typedef GC_VALUE LANGUAGE_OBJ;
@@ -350,7 +361,7 @@ namespace swig {
%init {
- swig::GC_VALUE::initialize();
+ swig::SwigGCReferences::initialize();
}
From 9aaf4ad03cc31eb976d8bd16301286f0ac83ff4c Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 2 Apr 2013 20:14:51 +0100
Subject: [PATCH 054/273] Fixes for Ruby 1.9 std::complex wrappers. New native
Ruby complex numbers are used.
---
CHANGES.current | 3 ++
Lib/ruby/rubycomplex.swg | 92 +++++++++++++++++++++++-----------------
2 files changed, 56 insertions(+), 39 deletions(-)
diff --git a/CHANGES.current b/CHANGES.current
index 6e3d6fb08..ac26525da 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,9 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.10 (in progress)
============================
+2013-04-02: wsfulton
+ [Ruby] Runtime fixes for std::complex wrappers for ruby-1.9 - new native Ruby complex numbers are used.
+
2013-03-30: wsfulton
[Ruby] Fix seg fault when using STL containers of generic Ruby types, GC_VALUE or LANGUAGE_OBJECT,
on exit of the Ruby interpreter. More frequently observed in ruby-1.9.
diff --git a/Lib/ruby/rubycomplex.swg b/Lib/ruby/rubycomplex.swg
index afdb15e7e..8a7486865 100644
--- a/Lib/ruby/rubycomplex.swg
+++ b/Lib/ruby/rubycomplex.swg
@@ -1,49 +1,61 @@
/*
Defines the As/From conversors for double/float complex, you need to
- provide complex Type, the Name you want to use in the conversors,
+ provide complex Type, the Name you want to use in the converters,
the complex Constructor method, and the Real and Imag complex
- accesor methods.
+ accessor methods.
See the std_complex.i and ccomplex.i for concrete examples.
*/
-/*
- Ruby does not have native complex numbers. They are an extension in the
- STD library.
-*/
-%{
- static VALUE swig_rb_cComplex = Qnil;
- static ID swig_real_id = 0;
- static ID swig_imag_id = 0;
-
- int Ruby_Is_Complex( VALUE obj )
- {
- return ( (rb_respond_to( obj, swig_real_id ) == Qtrue) &&
- (rb_respond_to( obj, swig_imag_id ) == Qtrue) );
- }
-%}
-
-%init {
- rb_require("complex");
- swig_rb_cComplex = rb_const_get( rb_cObject, rb_intern("Complex") );
- if( swig_rb_cComplex == Qnil )
- rb_warn("Ruby's complex.so not found");
- swig_real_id = rb_intern("real");
- swig_imag_id = rb_intern("imag");
+%fragment("SWIG_Complex_Numbers","header")
+{
+%#if !defined(T_COMPLEX)
+/* Ruby versions prior to 1.9 did not have native complex numbers. They were an extension in the STD library. */
+VALUE rb_complex_new(VALUE x, VALUE y) {
+ static ID new_id = rb_intern("new");
+ static VALUE cComplex = rb_const_get(rb_cObject, rb_intern("Complex"));
+ return rb_funcall(cComplex, new_id, 2, x, y);
}
-/* the common from conversor */
+static int SWIG_Is_Complex( VALUE obj ) {
+ static ID real_id = rb_intern("real");
+ static ID imag_id = rb_intern("imag");
+ return ( (rb_respond_to( obj, real_id ) == Qtrue) &&
+ (rb_respond_to( obj, imag_id ) == Qtrue) );
+}
+%#else
+static int SWIG_Is_Complex( VALUE obj ) {
+ return TYPE(obj) == T_COMPLEX;
+}
+%#endif
+
+VALUE SWIG_Complex_Real(VALUE obj) {
+ static ID real_id = rb_intern("real");
+ return rb_funcall(obj, real_id, 0);
+}
+
+VALUE SWIG_Complex_Imaginary(VALUE obj) {
+ static ID imag_id = rb_intern("imag");
+ return rb_funcall(obj, imag_id, 0);
+}
+}
+
+%init {
+%#if !defined(T_COMPLEX)
+ rb_require("complex");
+%#endif
+}
+
+/* the common from converter */
%define %swig_fromcplx_conv(Type, Real, Imag)
%fragment(SWIG_From_frag(Type),"header")
{
SWIGINTERNINLINE VALUE
SWIG_From(Type)(%ifcplusplus(const Type&, Type) c)
{
- VALUE args[] = {
- rb_float_new(Real(c)),
- rb_float_new(Imag(c))
- };
- return rb_class_new_instance(2, args, swig_rb_cComplex);
+ VALUE re = rb_float_new(Real(c));
+ VALUE im = rb_float_new(Imag(c));
+ return rb_complex_new(re, im);
}
}
%enddef
@@ -51,15 +63,16 @@ SWIG_From(Type)(%ifcplusplus(const Type&, Type) c)
/* the double case */
%define %swig_cplxdbl_conv(Type, Constructor, Real, Imag)
%fragment(SWIG_AsVal_frag(Type),"header",
- fragment=SWIG_AsVal_frag(double))
+ fragment=SWIG_AsVal_frag(double),
+ fragment="SWIG_Complex_Numbers")
{
SWIGINTERN int
SWIG_AsVal(Type) (VALUE o, Type* val)
{
- if ( Ruby_Is_Complex( o ) ) {
+ if ( SWIG_Is_Complex( o ) ) {
if (val) {
- VALUE real = rb_funcall(o, swig_real_id, 0 );
- VALUE imag = rb_funcall(o, swig_imag_id, 0 );
+ VALUE real = SWIG_Complex_Real(o);
+ VALUE imag = SWIG_Complex_Imaginary(o);
double re = 0;
SWIG_AsVal_double( real, &re );
double im = 0;
@@ -85,13 +98,14 @@ SWIG_AsVal(Type) (VALUE o, Type* val)
%define %swig_cplxflt_conv(Type, Constructor, Real, Imag)
%fragment(SWIG_AsVal_frag(Type),"header",
fragment=SWIG_AsVal_frag(float),
- fragment=SWIG_AsVal_frag(double)) {
+ fragment=SWIG_AsVal_frag(double),
+ fragment="SWIG_Complex_Numbers") {
SWIGINTERN int
SWIG_AsVal(Type)(VALUE o, Type *val)
{
- if ( Ruby_Is_Complex( o ) ) {
- VALUE real = rb_funcall(o, swig_real_id, 0 );
- VALUE imag = rb_funcall(o, swig_imag_id, 0 );
+ if ( SWIG_Is_Complex( o ) ) {
+ VALUE real = SWIG_Complex_Real(o);
+ VALUE imag = SWIG_Complex_Imaginary(o);
double re = 0;
SWIG_AsVal_double( real, &re );
double im = 0;
From ee92a26819b8bb811d4fe00b80a02bdc4aa4cf70 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 2 Apr 2013 22:21:48 +0100
Subject: [PATCH 055/273] Fixes for out of source builds for Ruby test-suite
---
Examples/test-suite/ruby/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Examples/test-suite/ruby/Makefile.in b/Examples/test-suite/ruby/Makefile.in
index 3354acfd8..ab366ccd4 100644
--- a/Examples/test-suite/ruby/Makefile.in
+++ b/Examples/test-suite/ruby/Makefile.in
@@ -61,7 +61,7 @@ ruby_naming.cpptest: SWIGOPT += -autorename
# a file is found which has _runme.rb appended after the testcase name.
run_testcase = \
if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(RUBY) -I. $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
+ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(RUBY) -I$(srcdir):. $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
fi
# Clean
From 5d529d5a76a9d3f71e39dad2f8373559bdebd829 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 5 Apr 2013 23:41:59 +0100
Subject: [PATCH 056/273] Ruby 1.9 fixes.
SF Bug#1292 - Runtime fixes for Proc changes in ruby-1.9 when using STL wrappers that override the default predicate, such as:
%template(Map) std::map >;
Fixes li_std_functors testcases for Ruby 1.9.
Also rb_respond_to return values have changed subtely in 1.9 and return should be treated as a flag instead of checking for Qtrue, see SF Bug #1159.
Also fix li_std_map, li_std_set silently failing - rb_protect behaviour seems to have changed when an exception is thrown, so code has been changed to use rb_rescue. A call to 'rb_set_errinfo(Qnil)' could have solved this after the rb_protect call, but it is only available in 1.9+ and Ruby API changes are not easily and transparently detectable.
---
CHANGES.current | 10 ++++++++++
.../test-suite/ruby/li_std_functors_runme.rb | 8 +++++++-
Lib/ruby/rubyclasses.swg | 17 +++++++++++++----
Lib/ruby/rubycomplex.swg | 4 ++--
Lib/ruby/rubyrun.swg | 4 ++--
5 files changed, 34 insertions(+), 9 deletions(-)
diff --git a/CHANGES.current b/CHANGES.current
index ac26525da..9253f9c96 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,16 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.10 (in progress)
============================
+2013-04-05: wsfulton
+ [Ruby] SF Bug #1292 - Runtime fixes for Proc changes in ruby-1.9 when using STL
+ wrappers that override the default predicate, such as:
+
+ %template(Map) std::map >;
+
+2013-04-05: wsfulton
+ [Ruby] SF Bug #1159 - Correctly check rb_respond_to call return values to fix some
+ further 1.9 problems with functors and use of Complex wrappers.
+
2013-04-02: wsfulton
[Ruby] Runtime fixes for std::complex wrappers for ruby-1.9 - new native Ruby complex numbers are used.
diff --git a/Examples/test-suite/ruby/li_std_functors_runme.rb b/Examples/test-suite/ruby/li_std_functors_runme.rb
index d31735c45..5623d49f0 100755
--- a/Examples/test-suite/ruby/li_std_functors_runme.rb
+++ b/Examples/test-suite/ruby/li_std_functors_runme.rb
@@ -34,6 +34,12 @@ def _set(container)
EOF
end
+def b_lessthan_a(b, a)
+ res = b < a
+# print b, "<", a, "=", res
+ return res
+end
+
def _map(container)
swig_assert_each_line(<
Date: Sat, 6 Apr 2013 00:30:50 +0100
Subject: [PATCH 057/273] More rb_protect rewrite to use rb_rescue for Ruby 1.9
---
Lib/ruby/rubyclasses.swg | 27 +++++++++++----------------
1 file changed, 11 insertions(+), 16 deletions(-)
diff --git a/Lib/ruby/rubyclasses.swg b/Lib/ruby/rubyclasses.swg
index 5db6658ee..3b36c722e 100644
--- a/Lib/ruby/rubyclasses.swg
+++ b/Lib/ruby/rubyclasses.swg
@@ -172,17 +172,14 @@ namespace swig {
return rb_inspect(_obj);
}
- static VALUE swig_rescue_funcall( VALUE )
+ static VALUE swig_rescue_swallow( VALUE )
{
-/*
- VALUE err = rb_errinfo();
- VALUE errstr = rb_obj_as_string(err);
- std::cout << "Error is: '" << RSTRING_PTR(StringValue(errstr)) << "'" << std::endl;
-*/
- return Qnil;/* Swallow Ruby exception */
+ // VALUE errstr = rb_obj_as_string(rb_errinfo());
+ // printf("Swallowing error: '%s'\n", RSTRING_PTR(StringValue(errstr)));
+ return Qnil; /* Swallow Ruby exception */
}
- static VALUE swig_protect_funcall( VALUE p )
+ static VALUE swig_rescue_funcall( VALUE p )
{
OpArgs* args = (OpArgs*) p;
return rb_funcall( args->src, args->id, args->nargs, args->target );
@@ -206,8 +203,8 @@ namespace swig {
args.id = op_id; \
args.nargs = 1; \
args.target = VALUE(other); \
- ret = rb_rescue(RUBY_METHOD_FUNC(swig_protect_funcall), VALUE(&args), \
- (RUBY_METHOD_FUNC(swig_rescue_funcall)), Qnil); \
+ ret = rb_rescue(RUBY_METHOD_FUNC(swig_rescue_funcall), VALUE(&args), \
+ (RUBY_METHOD_FUNC(swig_rescue_swallow)), Qnil); \
} \
if ( ret == Qnil ) { \
VALUE a = rb_funcall( _obj, hash_id, 0 ); \
@@ -240,14 +237,13 @@ namespace swig {
{ \
VALUE ret = Qnil; \
SWIG_RUBY_THREAD_BEGIN_BLOCK; \
- int status; \
OpArgs args; \
args.src = _obj; \
args.id = proc_id; \
args.nargs = 0; \
args.target = Qnil; \
- ret = rb_protect( PROTECTFUNC(swig_protect_funcall), VALUE(&args), \
- &status ); \
+ ret = rb_rescue(RUBY_METHOD_FUNC(swig_rescue_funcall), VALUE(&args), \
+ (RUBY_METHOD_FUNC(swig_rescue_swallow)), Qnil); \
SWIG_RUBY_THREAD_END_BLOCK; \
return ret; \
}
@@ -262,14 +258,13 @@ namespace swig {
{ \
VALUE ret = Qnil; \
SWIG_RUBY_THREAD_BEGIN_BLOCK; \
- int status; \
OpArgs args; \
args.src = _obj; \
args.id = proc_id; \
args.nargs = 1; \
args.target = VALUE(other); \
- ret = rb_protect( PROTECTFUNC(swig_protect_funcall), VALUE(&args), \
- &status ); \
+ ret = rb_rescue(RUBY_METHOD_FUNC(swig_rescue_funcall), VALUE(&args), \
+ (RUBY_METHOD_FUNC(swig_rescue_swallow)), Qnil); \
SWIG_RUBY_THREAD_END_BLOCK; \
return GC_VALUE(ret); \
}
From bb3fe8c906997d39570ab1c7bbde78a5236b229f Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 6 Apr 2013 02:20:56 +0100
Subject: [PATCH 058/273] Rewrite Ruby's GC_VALUE without use of macros for
easier debugging
---
Lib/ruby/rubyclasses.swg | 183 +++++++++++++++++++--------------------
1 file changed, 87 insertions(+), 96 deletions(-)
diff --git a/Lib/ruby/rubyclasses.swg b/Lib/ruby/rubyclasses.swg
index 3b36c722e..598bc4db9 100644
--- a/Lib/ruby/rubyclasses.swg
+++ b/Lib/ruby/rubyclasses.swg
@@ -46,7 +46,7 @@ namespace swig {
}
~SwigGCReferences() {
if (_hash != Qnil)
- rb_gc_unregister_address( &_hash );
+ rb_gc_unregister_address(&_hash);
}
static void EndProcHandler(VALUE) {
// Ruby interpreter ending - _hash can no longer be accessed.
@@ -60,12 +60,12 @@ namespace swig {
if (s_references._hash == Qnil) {
rb_set_end_proc(&EndProcHandler, Qnil);
s_references._hash = rb_hash_new();
- rb_gc_register_address( &s_references._hash );
+ rb_gc_register_address(&s_references._hash);
}
}
void GC_register(VALUE& obj) {
if (FIXNUM_P(obj) || SPECIAL_CONST_P(obj) || SYMBOL_P(obj))
- return;
+ return;
if (_hash != Qnil) {
VALUE val = rb_hash_aref(_hash, obj);
unsigned n = FIXNUM_P(val) ? NUM2UINT(val) : 0;
@@ -75,7 +75,7 @@ namespace swig {
}
void GC_unregister(const VALUE& obj) {
if (FIXNUM_P(obj) || SPECIAL_CONST_P(obj) || SYMBOL_P(obj))
- return;
+ return;
// this test should not be needed but I've noticed some very erratic
// behavior of none being unregistered in some very rare situations.
if (BUILTIN_TYPE(obj) == T_NONE)
@@ -85,9 +85,9 @@ namespace swig {
unsigned n = FIXNUM_P(val) ? NUM2UINT(val) : 1;
--n;
if (n)
- rb_hash_aset(s_references._hash, obj, INT2NUM(n));
+ rb_hash_aset(s_references._hash, obj, INT2NUM(n));
else
- rb_hash_delete(s_references._hash, obj);
+ rb_hash_delete(s_references._hash, obj);
}
}
};
@@ -130,7 +130,7 @@ namespace swig {
public:
- GC_VALUE() : _obj( Qnil )
+ GC_VALUE() : _obj(Qnil)
{
}
@@ -172,117 +172,108 @@ namespace swig {
return rb_inspect(_obj);
}
- static VALUE swig_rescue_swallow( VALUE )
+ static VALUE swig_rescue_swallow(VALUE)
{
// VALUE errstr = rb_obj_as_string(rb_errinfo());
// printf("Swallowing error: '%s'\n", RSTRING_PTR(StringValue(errstr)));
return Qnil; /* Swallow Ruby exception */
}
- static VALUE swig_rescue_funcall( VALUE p )
+ static VALUE swig_rescue_funcall(VALUE p)
{
OpArgs* args = (OpArgs*) p;
- return rb_funcall( args->src, args->id, args->nargs, args->target );
+ return rb_funcall(args->src, args->id, args->nargs, args->target);
}
-
-%#define GC_VALUE_CMP( op_id, op, cmp, cmpval ) \
- bool op( const GC_VALUE& other ) const \
- { \
- if ( FIXNUM_P(_obj) && FIXNUM_P(other._obj) ) \
- { \
- return _obj cmp other._obj; \
- } \
- bool res = false; \
- VALUE ret = Qnil; \
- SWIG_RUBY_THREAD_BEGIN_BLOCK; \
- if ( rb_respond_to( _obj, op_id ) ) \
- { \
- OpArgs args; \
- args.src = _obj; \
- args.id = op_id; \
- args.nargs = 1; \
- args.target = VALUE(other); \
- ret = rb_rescue(RUBY_METHOD_FUNC(swig_rescue_funcall), VALUE(&args), \
- (RUBY_METHOD_FUNC(swig_rescue_swallow)), Qnil); \
- } \
- if ( ret == Qnil ) { \
- VALUE a = rb_funcall( _obj, hash_id, 0 ); \
- VALUE b = rb_funcall( VALUE(other), hash_id, 0 ); \
- res = a cmp b; \
- } \
- else \
- { \
- res = RTEST( ret ); \
- } \
- SWIG_RUBY_THREAD_END_BLOCK; \
- return res; \
+ bool relational_equal_op(const GC_VALUE& other, const ID& op_id, bool (*op_func)(const VALUE& a, const VALUE& b)) const
+ {
+ if (FIXNUM_P(_obj) && FIXNUM_P(other._obj)) {
+ return op_func(_obj, other._obj);
+ }
+ bool res = false;
+ VALUE ret = Qnil;
+ SWIG_RUBY_THREAD_BEGIN_BLOCK;
+ if (rb_respond_to(_obj, op_id)) {
+ OpArgs args;
+ args.src = _obj;
+ args.id = op_id;
+ args.nargs = 1;
+ args.target = VALUE(other);
+ ret = rb_rescue(RUBY_METHOD_FUNC(swig_rescue_funcall), VALUE(&args),
+ (RUBY_METHOD_FUNC(swig_rescue_swallow)), Qnil);
+ }
+ if (ret == Qnil) {
+ VALUE a = rb_funcall( _obj, hash_id, 0 );
+ VALUE b = rb_funcall( VALUE(other), hash_id, 0 );
+ res = op_func(a, b);
+ } else {
+ res = RTEST(ret);
+ }
+ SWIG_RUBY_THREAD_END_BLOCK;
+ return res;
}
+ static bool operator_eq(const VALUE& a, const VALUE& b) { return a == b; }
+ static bool operator_lt(const VALUE& a, const VALUE& b) { return a < b; }
+ static bool operator_le(const VALUE& a, const VALUE& b) { return a <= b; }
+ static bool operator_gt(const VALUE& a, const VALUE& b) { return a > b; }
+ static bool operator_ge(const VALUE& a, const VALUE& b) { return a >= b; }
- GC_VALUE_CMP( eq_id, operator==, ==, == 0 )
- GC_VALUE_CMP( lt_id, operator<, < , < 0 )
- GC_VALUE_CMP( le_id, operator<=, <=, <= 0 )
- GC_VALUE_CMP( gt_id, operator>, > , > 0 )
- GC_VALUE_CMP( ge_id, operator>=, >=, >= 0 )
-%#undef GC_VALUE_CMP
+ bool operator==(const GC_VALUE& other) const { return relational_equal_op(other, eq_id, operator_eq); }
+ bool operator<(const GC_VALUE& other) const { return relational_equal_op(other, lt_id, operator_lt); }
+ bool operator<=(const GC_VALUE& other) const { return relational_equal_op(other, le_id, operator_le); }
+ bool operator>(const GC_VALUE& other) const { return relational_equal_op(other, gt_id, operator_gt); }
+ bool operator>=(const GC_VALUE& other) const { return relational_equal_op(other, ge_id, operator_ge); }
- bool operator!=( const GC_VALUE& other )
+ bool operator!=(const GC_VALUE& other) const
{
return !(this->operator==(other));
}
-%#define GC_VALUE_UNARY( proc_id, op ) \
- GC_VALUE op() const \
- { \
- VALUE ret = Qnil; \
- SWIG_RUBY_THREAD_BEGIN_BLOCK; \
- OpArgs args; \
- args.src = _obj; \
- args.id = proc_id; \
- args.nargs = 0; \
- args.target = Qnil; \
- ret = rb_rescue(RUBY_METHOD_FUNC(swig_rescue_funcall), VALUE(&args), \
- (RUBY_METHOD_FUNC(swig_rescue_swallow)), Qnil); \
- SWIG_RUBY_THREAD_END_BLOCK; \
- return ret; \
+ GC_VALUE unary_op(const ID& op_id) const
+ {
+ VALUE ret = Qnil;
+ SWIG_RUBY_THREAD_BEGIN_BLOCK;
+ OpArgs args;
+ args.src = _obj;
+ args.id = op_id;
+ args.nargs = 0;
+ args.target = Qnil;
+ ret = rb_rescue(RUBY_METHOD_FUNC(swig_rescue_funcall), VALUE(&args),
+ (RUBY_METHOD_FUNC(swig_rescue_swallow)), Qnil);
+ SWIG_RUBY_THREAD_END_BLOCK;
+ return ret;
}
- GC_VALUE_UNARY( pos_id, operator+ )
- GC_VALUE_UNARY( neg_id, operator- )
- GC_VALUE_UNARY( inv_id, operator~ )
-%#undef GC_VALUE_BINARY
+ GC_VALUE operator+() const { return unary_op(pos_id); }
+ GC_VALUE operator-() const { return unary_op(neg_id); }
+ GC_VALUE operator~() const { return unary_op(inv_id); }
-%#define GC_VALUE_BINARY( proc_id, op ) \
- GC_VALUE op( const GC_VALUE& other ) const \
- { \
- VALUE ret = Qnil; \
- SWIG_RUBY_THREAD_BEGIN_BLOCK; \
- OpArgs args; \
- args.src = _obj; \
- args.id = proc_id; \
- args.nargs = 1; \
- args.target = VALUE(other); \
- ret = rb_rescue(RUBY_METHOD_FUNC(swig_rescue_funcall), VALUE(&args), \
- (RUBY_METHOD_FUNC(swig_rescue_swallow)), Qnil); \
- SWIG_RUBY_THREAD_END_BLOCK; \
- return GC_VALUE(ret); \
+ GC_VALUE binary_op(const GC_VALUE& other, const ID& op_id) const
+ {
+ VALUE ret = Qnil;
+ SWIG_RUBY_THREAD_BEGIN_BLOCK;
+ OpArgs args;
+ args.src = _obj;
+ args.id = op_id;
+ args.nargs = 1;
+ args.target = VALUE(other);
+ ret = rb_rescue(RUBY_METHOD_FUNC(swig_rescue_funcall), VALUE(&args),
+ (RUBY_METHOD_FUNC(swig_rescue_swallow)), Qnil);
+ SWIG_RUBY_THREAD_END_BLOCK;
+ return GC_VALUE(ret);
}
- GC_VALUE_BINARY( add_id, operator+ );
- GC_VALUE_BINARY( sub_id, operator- );
- GC_VALUE_BINARY( mul_id, operator* );
- GC_VALUE_BINARY( div_id, operator/ );
- GC_VALUE_BINARY( mod_id, operator% );
-
- GC_VALUE_BINARY( and_id, operator& );
- GC_VALUE_BINARY( xor_id, operator^ );
- GC_VALUE_BINARY( or_id, operator| );
-
- GC_VALUE_BINARY( lshift_id, operator<< );
- GC_VALUE_BINARY( rshift_id, operator>> );
-%#undef GC_VALUE_BINARY
-
+ GC_VALUE operator+(const GC_VALUE& other) const { return binary_op(other, add_id); }
+ GC_VALUE operator-(const GC_VALUE& other) const { return binary_op(other, sub_id); }
+ GC_VALUE operator*(const GC_VALUE& other) const { return binary_op(other, mul_id); }
+ GC_VALUE operator/(const GC_VALUE& other) const { return binary_op(other, div_id); }
+ GC_VALUE operator%(const GC_VALUE& other) const { return binary_op(other, mod_id); }
+ GC_VALUE operator&(const GC_VALUE& other) const { return binary_op(other, and_id); }
+ GC_VALUE operator^(const GC_VALUE& other) const { return binary_op(other, xor_id); }
+ GC_VALUE operator|(const GC_VALUE& other) const { return binary_op(other, or_id); }
+ GC_VALUE operator<<(const GC_VALUE& other) const { return binary_op(other, lshift_id); }
+ GC_VALUE operator>>(const GC_VALUE& other) const { return binary_op(other, rshift_id); }
};
ID GC_VALUE::hash_id = rb_intern("hash");
@@ -352,7 +343,7 @@ namespace swig {
VALUE to_s() const;
GC_VALUE();
protected:
- GC_VALUE( const GC_VALUE& );
+ GC_VALUE(const GC_VALUE&);
~GC_VALUE();
};
From 65b917dabb5d0037318da93b78ce028dbb113f07 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 6 Apr 2013 16:19:17 -0700
Subject: [PATCH 059/273] Some test-suite warning fixes
---
Examples/test-suite/li_std_except_as_class.i | 6 ++++++
Examples/test-suite/typemap_array_qualifiers.i | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/Examples/test-suite/li_std_except_as_class.i b/Examples/test-suite/li_std_except_as_class.i
index 00de76eac..0400c9a82 100644
--- a/Examples/test-suite/li_std_except_as_class.i
+++ b/Examples/test-suite/li_std_except_as_class.i
@@ -5,6 +5,12 @@
* if there were also functions throwing 'std::logic_error' and
* 'std::exception' then the bug would not be fully replicated */
+%{
+#if defined(_MSC_VER)
+ #pragma warning(disable: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
+#endif
+%}
+
%{
#include
#include
diff --git a/Examples/test-suite/typemap_array_qualifiers.i b/Examples/test-suite/typemap_array_qualifiers.i
index 947721402..14df649d3 100644
--- a/Examples/test-suite/typemap_array_qualifiers.i
+++ b/Examples/test-suite/typemap_array_qualifiers.i
@@ -39,6 +39,7 @@
CLEAR_SWIGTYPE_TYPEMAPS;
%typemap(in) SWIGTYPE [ANY] {
+$1 = 0;
/* Correct typemap for $symname: $type */
}
%inline %{
@@ -48,9 +49,11 @@ CLEAR_SWIGTYPE_TYPEMAPS;
CLEAR_SWIGTYPE_TYPEMAPS;
%typemap(in) const SWIGTYPE [ANY] {
+$1 = 0;
/* Correct typemap for $symname: $type */
}
%typemap(in) const volatile SWIGTYPE [ANY] {
+$1 = 0;
/* Correct typemap for $symname: $type */
}
%inline %{
@@ -61,9 +64,11 @@ CLEAR_SWIGTYPE_TYPEMAPS;
CLEAR_SWIGTYPE_TYPEMAPS;
%typemap(in) volatile SWIGTYPE **const [ANY] {
+$1 = 0;
/* Correct typemap for $symname: $type */
}
%typemap(in) volatile SWIGTYPE **const [ANY][ANY] {
+$1 = 0;
/* Correct typemap for $symname: $type */
}
%inline %{
@@ -72,6 +77,7 @@ CLEAR_SWIGTYPE_TYPEMAPS;
CLEAR_SWIGTYPE_TYPEMAPS;
%typemap(in) SWIGTYPE (*const) (ANY) {
+$1 = 0;
/* Correct typemap for $symname: $type */
}
%inline %{
From 5ae6ff404d8a7d4c17a260a6f2cae7c8959152f7 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 8 Apr 2013 07:57:45 +0100
Subject: [PATCH 060/273] Cosmetic - use C comments instead of C++ comments for
recent Ruby change
---
Lib/ruby/rubyclasses.swg | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/Lib/ruby/rubyclasses.swg b/Lib/ruby/rubyclasses.swg
index 598bc4db9..5537136af 100644
--- a/Lib/ruby/rubyclasses.swg
+++ b/Lib/ruby/rubyclasses.swg
@@ -174,8 +174,10 @@ namespace swig {
static VALUE swig_rescue_swallow(VALUE)
{
- // VALUE errstr = rb_obj_as_string(rb_errinfo());
- // printf("Swallowing error: '%s'\n", RSTRING_PTR(StringValue(errstr)));
+ /*
+ VALUE errstr = rb_obj_as_string(rb_errinfo());
+ printf("Swallowing error: '%s'\n", RSTRING_PTR(StringValue(errstr)));
+ */
return Qnil; /* Swallow Ruby exception */
}
From dd2cd0298c39d9546f68ff538f5c90634e5a0106 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 8 Apr 2013 18:30:16 +0100
Subject: [PATCH 061/273] Work around Octave seg fault on exit in imports
testcase on Octave 3.1 and 3.2
---
Examples/test-suite/octave/imports_runme.m | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Examples/test-suite/octave/imports_runme.m b/Examples/test-suite/octave/imports_runme.m
index be9db5919..5db38071b 100644
--- a/Examples/test-suite/octave/imports_runme.m
+++ b/Examples/test-suite/octave/imports_runme.m
@@ -1,7 +1,8 @@
# This is the import runtime testcase.
-imports_b;
+# If imports_b is loaded before imports_a, a seg fault occurred during interpreter cleanup/exit in version 3.1 and 3.2, seems okay in 3.6
imports_a;
+imports_b;
x = imports_b.B();
x.hello();
From 5fd059d80f9c2c47f6889c448b9d691bb8b20c1d Mon Sep 17 00:00:00 2001
From: Nishant Rodrigues
Date: Mon, 8 Apr 2013 14:35:08 +0900
Subject: [PATCH 062/273] Patch fixing warning 322 in rubycontainer_extended
'rubycontainer_extended.swg' generates warnings:
Warning 322: Redundant redeclaration of 'map_bang',
Warning 322: previous declaration of 'map_bang'.
The fix is to remove a redundant call to swig_container_extend for
swig::GC_VALUE.
Thanks
========================================================
---
Lib/ruby/rubycontainer_extended.swg | 1 -
1 file changed, 1 deletion(-)
diff --git a/Lib/ruby/rubycontainer_extended.swg b/Lib/ruby/rubycontainer_extended.swg
index d2a058586..7514ba2c8 100644
--- a/Lib/ruby/rubycontainer_extended.swg
+++ b/Lib/ruby/rubycontainer_extended.swg
@@ -124,7 +124,6 @@
%swig_container_extend( %arg( Container ), std::complex );
%swig_container_extend( %arg( Container ), std::string );
%swig_container_extend( %arg( Container ), swig::GC_VALUE );
-%swig_container_extend( %arg( Container ), swig::GC_VALUE );
%enddef
From 1fce0bd2b41ee3ddebacfe101c6a231f6111bf21 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 8 Apr 2013 21:48:09 +0100
Subject: [PATCH 063/273] Workaround to Octave seg fault on exit in imports
testcase only seems to work in 3.1, not 3.2. Just ignore test now
---
Examples/test-suite/octave/imports_runme.m | 28 ++++++++++++----------
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/Examples/test-suite/octave/imports_runme.m b/Examples/test-suite/octave/imports_runme.m
index 5db38071b..a9c8bffb8 100644
--- a/Examples/test-suite/octave/imports_runme.m
+++ b/Examples/test-suite/octave/imports_runme.m
@@ -1,20 +1,22 @@
# This is the import runtime testcase.
-# If imports_b is loaded before imports_a, a seg fault occurred during interpreter cleanup/exit in version 3.1 and 3.2, seems okay in 3.6
-imports_a;
-imports_b;
+# Workaround seg fault occurring during interpreter cleanup/exit in version 3.1 and 3.2, seems okay in 3.6
+if (compare_versions(version(), "3.3", ">="))
+ imports_b;
+ imports_a;
-x = imports_b.B();
-x.hello();
+ x = imports_b.B();
+ x.hello();
-a = imports_a.A();
+ a = imports_a.A();
-c = imports_b.C();
-a1 = c.get_a(c);
-a2 = c.get_a_type(c);
+ c = imports_b.C();
+ a1 = c.get_a(c);
+ a2 = c.get_a_type(c);
-a1.hello();
-a2.hello();
-assert(swig_this(a1)==swig_this(a2));
-assert(strcmp(swig_type(a1),swig_type(a2)));
+ a1.hello();
+ a2.hello();
+ assert(swig_this(a1)==swig_this(a2));
+ assert(strcmp(swig_type(a1),swig_type(a2)));
+endif
From 939fa86627cb95ce2670991e0c7feac26387edf1 Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Tue, 9 Apr 2013 14:35:14 +1200
Subject: [PATCH 064/273] [PHP] Add missing directorin typemap for char* and
char[] which fixes director_string testcase failure.
---
CHANGES.current | 4 ++++
Lib/php/php.swg | 9 +++++++++
2 files changed, 13 insertions(+)
diff --git a/CHANGES.current b/CHANGES.current
index 9253f9c96..864fb9a3c 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,10 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.10 (in progress)
============================
+2013-04-09: olly
+ [PHP] Add missing directorin typemap for char* and char[] which
+ fixes director_string testcase failure.
+
2013-04-05: wsfulton
[Ruby] SF Bug #1292 - Runtime fixes for Proc changes in ruby-1.9 when using STL
wrappers that override the default predicate, such as:
diff --git a/Lib/php/php.swg b/Lib/php/php.swg
index d46de93ea..f27e1fe67 100644
--- a/Lib/php/php.swg
+++ b/Lib/php/php.swg
@@ -269,6 +269,15 @@
ZVAL_LONG($input,$1);
}
+%typemap(directorin) char *, char []
+{
+ if(!$1) {
+ ZVAL_NULL($input);
+ } else {
+ ZVAL_STRING($input, (char *)$1, 1);
+ }
+}
+
%typemap(out) bool
{
ZVAL_BOOL(return_value,($1)?1:0);
From 3e26318427a0e7dfdaf5e9ee1d988a1db1d6b464 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 9 Apr 2013 09:17:36 +0100
Subject: [PATCH 065/273] Add target language version display during make
check. Individual language versions can be checked using 'make
check--version'.
---
Examples/Makefile.in | 222 ++++++++++++++++++++++++++
Examples/test-suite/cffi/Makefile.in | 2 +-
Examples/test-suite/clisp/Makefile.in | 2 +-
Examples/test-suite/uffi/Makefile.in | 2 +-
Makefile.in | 41 ++++-
configure.ac | 14 +-
6 files changed, 275 insertions(+), 8 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 6e1731f6b..a3444d284 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -95,6 +95,7 @@ distclean:
# Set these to your local copy of Tcl/Tk.
+TCLSH = tclsh
TCL_INCLUDE = @TCLINCLUDE@
TCL_LIB = @TCLLIB@
TCL_OPTS = @LIBS@
@@ -154,6 +155,13 @@ tcl_cpp: $(SRCS)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(TCL_INCLUDE)
$(TCLCXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(TCL_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(TCL_SO)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+tcl_version:
+ echo 'puts $$tcl_version;exit 0' | $(TCLSH)
+
# -----------------------------------------------------------------
# Cleaning the Tcl examples
# -----------------------------------------------------------------
@@ -176,6 +184,7 @@ PERL5_INCLUDE= @PERL5EXT@
# Extra Perl specific dynamic linking options
PERL5_DLNK = @PERL5DYNAMICLINKING@
PERL5_CCFLAGS = @PERL5CCFLAGS@
+PERL = @PERL@
# ----------------------------------------------------------------
# Build a Perl5 dynamically loadable module (C)
@@ -216,6 +225,13 @@ perl5_static_cpp: $(SRCS)
$(SWIG) -perl5 -c++ -static -lperlmain.i $(SWIGOPT) $(INTERFACEPATH)
$(CXX) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) -I$(PERL5_INCLUDE) $(PERL5_LIB) $(LIBS) -o $(TARGET)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+perl5_version:
+ $(PERL) -v | grep "This is"
+
# -----------------------------------------------------------------
# Cleaning the Perl5 examples
# -----------------------------------------------------------------
@@ -315,6 +331,13 @@ runme3.py: runme.py
cp $< $@
$(PY2TO3) -w $@ >/dev/null 2>&1
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+python_version:
+ $(PYTHON) -V
+
# -----------------------------------------------------------------
# Cleaning the python examples
# -----------------------------------------------------------------
@@ -368,6 +391,13 @@ OCTSCRIPT = runme.m
octave_run: $(OCTSCRIPT)
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH OCTAVE_PATH=$(srcdir):$$OCTAVE_PATH $(OCTAVE) $(OCTSCRIPT) >/dev/null
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+octave_version:
+ $(OCTAVE) --version | grep -i version
+
# -----------------------------------------------------------------
# Cleaning the octave examples
# -----------------------------------------------------------------
@@ -383,6 +413,7 @@ octave_clean:
##################################################################
# Make sure these locate your Guile installation
+GUILE = @GUILE@
GUILE_INCLUDE = @GUILEINCLUDE@
GUILE_LIB = @GUILELIB@
GUILE_SO = @GUILE_SO@
@@ -459,6 +490,13 @@ guile_simple_cpp: $(SRCS)
$(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
$(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+guile_version:
+ $(GUILE) --version
+
# -----------------------------------------------------------------
# Cleaning the Guile examples
# -----------------------------------------------------------------
@@ -484,6 +522,8 @@ JAVASO =@JAVASO@
JAVALDSHARED = @JAVALDSHARED@
JAVACXXSHARED = @JAVACXXSHARED@
JAVACFLAGS = @JAVACFLAGS@
+JAVA = @JAVA@
+JAVAC = @JAVAC@
# ----------------------------------------------------------------
# Build a java dynamically loadable module (C)
@@ -503,6 +543,14 @@ java_cpp: $(SRCS)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(JAVACFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(JAVA_INCLUDE)
$(JAVACXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(JAVA_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(JAVA_LIBPREFIX)$(TARGET)$(JAVASO)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+java_version:
+ $(JAVA) -version
+ $(JAVAC) -version || echo "unknown javac version"
+
# -----------------------------------------------------------------
# Cleaning the java examples
# -----------------------------------------------------------------
@@ -512,6 +560,17 @@ java_clean:
rm -f core @EXTRA_CLEAN@
rm -f *.@OBJEXT@ *@JAVASO@
+##################################################################
+##### ANDROID ######
+##################################################################
+
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+android_version:
+ adb version
+
##################################################################
##### MODULA3 ######
##################################################################
@@ -530,6 +589,13 @@ modula3: $(SRCS)
modula3_cpp: $(SRCS)
$(SWIG) -modula3 -c++ $(SWIGOPT) $(INTERFACEPATH)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+modula3_version:
+ echo "Unknown modula3 version"
+
# -----------------------------------------------------------------
# Cleaning the modula3 examples
# -----------------------------------------------------------------
@@ -543,6 +609,7 @@ modula3_clean:
##### MZSCHEME ######
##################################################################
+MZSCHEME = mzscheme
MZC = @MZC@
MZDYNOBJ = @MZDYNOBJ@
MZSCHEME_SO = @MZSCHEME_SO@
@@ -561,6 +628,14 @@ mzscheme_cpp: $(SRCS)
$(COMPILETOOL) $(MZC) `echo $(INCLUDES) | sed 's/-I/++ccf -I/g'` --cc $(ICXXSRCS) $(SRCS) $(CXXSRCS)
$(CXXSHARED) $(CFLAGS) -o $(LIBPREFIX)$(TARGET)$(MZSCHEME_SO) $(OBJS) $(IOBJS) $(MZDYNOBJ) $(CPP_DLLIBS)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+mzscheme_version:
+ $(MZSCHEME) -v
+ $(MZC) -v
+
# -----------------------------------------------------------------
# Cleaning the mzscheme examples
# -----------------------------------------------------------------
@@ -697,6 +772,17 @@ ocaml_dynamic_cpp: $(SRCS)
-package dl -linkpkg \
$(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo) -cc '$(CXX) -Wno-write-strings'
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+ocaml_version:
+ $(OCC) -version
+
+# -----------------------------------------------------------------
+# Cleaning the Ocaml examples
+# -----------------------------------------------------------------
+
ocaml_clean:
rm -f *_wrap* *~ .~* *.cmo *.cmi $(MLFILE) $(MLFILE)i swig.mli swig.cmi swig.ml swig.cmo swigp4.ml swigp4.cmo
rm -f core @EXTRA_CLEAN@
@@ -711,6 +797,7 @@ RUBY_CFLAGS= @RUBYCCDLFLAGS@ $(DEFS)
RUBY_INCLUDE= @RUBYINCLUDE@
RUBY_LIB = @RUBYLIB@
RUBY_DLNK = @RUBYDYNAMICLINKING@
+RUBY = @RUBY@
# ----------------------------------------------------------------
# Build a C dynamically loadable module
@@ -750,6 +837,13 @@ ruby_cpp_static: $(SRCS)
$(RUBY_INCLUDE) $(LIBS) -L$(RUBY_LIB) $(RUBY_LIBOPTS) -o $(TARGET)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+ruby_version:
+ $(RUBY) -v
+
# -----------------------------------------------------------------
# Cleaning the Ruby examples
# -----------------------------------------------------------------
@@ -794,6 +888,13 @@ PHPSCRIPT ?= runme.php
php_run:
$(RUNTOOL) $(PHP) -n -q -d extension_dir=. -d safe_mode=Off $(PHPSCRIPT)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+php_version:
+ $(PHP) -v
+
# -----------------------------------------------------------------
# Cleaning the PHP examples
# -----------------------------------------------------------------
@@ -808,6 +909,7 @@ php_clean:
##################################################################
# Make sure these locate your Pike installation
+PIKE = pike
PIKE_CFLAGS = @PIKECCDLFLAGS@ -DHAVE_CONFIG_H
PIKE_INCLUDE = @PIKEINCLUDE@
PIKE_LIB = @PIKELIB@
@@ -850,6 +952,13 @@ pike_cpp_static: $(SRCS)
$(CXX) $(CFLAGS) $(PIKE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
$(PIKE_INCLUDE) $(LIBS) -L$(PIKE_LIB) $(PIKE_LIBOPTS) -o $(TARGET)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+pike_version:
+ $(PIKE) -v
+
# -----------------------------------------------------------------
# Cleaning the Pike examples
# -----------------------------------------------------------------
@@ -951,6 +1060,17 @@ chicken_cpp:
chicken_externalhdr:
$(SWIG) -chicken -external-runtime $(TARGET)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+chicken_version:
+ $(CHICKEN) -version
+
+# -----------------------------------------------------------------
+# Cleaning the CHICKEN examples
+# -----------------------------------------------------------------
+
chicken_clean:
rm -f *_wrap* *~ .~* *_chicken*
rm -f core @EXTRA_CLEAN@
@@ -993,6 +1113,13 @@ csharp_cpp: $(SRCS)
csharp_compile: $(SRCS)
$(COMPILETOOL) $(CSHARPCOMPILER) $(CSHARPFLAGS) $(CSHARPSRCS)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+csharp_version:
+ $(CSHARPCOMPILER) --version || echo "Unknown C# compiler version"
+
# -----------------------------------------------------------------
# Cleaning the CSharp examples
# -----------------------------------------------------------------
@@ -1013,6 +1140,7 @@ LUA_LIB = @LUALINK@
# Extra specific dynamic linking options
LUA_DLNK = @LUADYNAMICLINKING@
LUA_SO = @LUA_SO@
+LUA = @LUABIN@
# Extra code for lua static link
LUA_INTERP = ../lua.c
@@ -1049,6 +1177,13 @@ lua_static_cpp: $(SRCS)
$(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(LUA_INTERP) $(INCLUDES) \
$(LUA_INCLUDE) $(LIBS) $(LUA_LIB) -o $(TARGET)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+lua_version:
+ $(LUA) -v
+
# -----------------------------------------------------------------
# Cleaning the lua examples
# -----------------------------------------------------------------
@@ -1062,6 +1197,8 @@ lua_clean:
##### ALLEGRO CL ######
##################################################################
+ALLEGROCL = @ALLEGROCLBIN@
+
allegrocl: $(SRCS)
$(SWIG) -allegrocl -cwrap $(SWIGOPT) $(INTERFACEPATH)
$(CC) -c $(CCSHARED) $(CFLAGS) $(ISRCS) $(INCLUDES) $(SRCS)
@@ -1072,6 +1209,17 @@ allegrocl_cpp: $(SRCS)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES)
$(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+allegrocl_version:
+ $(ALLEGROCL) --version
+
+# -----------------------------------------------------------------
+# Cleaning the ALLEGRO CL examples
+# -----------------------------------------------------------------
+
allegrocl_clean:
rm -f *_wrap* *~ .~*
rm -f core @EXTRA_CLEAN@
@@ -1081,12 +1229,25 @@ allegrocl_clean:
##### CLISP ######
##################################################################
+CLISP = @CLISPBIN@
+
clisp: $(SRCS)
$(SWIG) -clisp $(SWIGOPT) $(INTERFACEPATH)
clisp_cpp: $(SRCS)
$(SWIG) -c++ -clisp $(SWIGOPT) $(INTERFACEPATH)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+clisp_version:
+ $(CLISP) --version
+
+# -----------------------------------------------------------------
+# Cleaning the CLISP examples
+# -----------------------------------------------------------------
+
clisp_clean:
rm -f *_wrap* *~ .~*
rm -f core @EXTRA_CLEAN@
@@ -1096,6 +1257,8 @@ clisp_clean:
##### CFFI ######
##################################################################
+CFFI = @CFFIBIN@
+
cffi: $(SRCS)
$(SWIG) -cffi $(SWIGOPT) $(INTERFACEPATH)
# $(CC) -c $(CCSHARED) $(CFLAGS) $(ISRCS) $(INCLUDES) $(SRCS)
@@ -1106,6 +1269,17 @@ cffi_cpp: $(SRCS)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES)
$(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+cffi_version:
+ $(CFFI) --version
+
+# -----------------------------------------------------------------
+# Cleaning the CFFI examples
+# -----------------------------------------------------------------
+
cffi_clean:
rm -f *_wrap* *~ .~*
rm -f core @EXTRA_CLEAN@
@@ -1115,6 +1289,8 @@ cffi_clean:
##### UFFI ######
##################################################################
+UFFI = @UFFIBIN@
+
uffi: $(SRCS)
$(SWIG) -uffi $(SWIGOPT) $(INTERFACEPATH)
# $(CC) -c $(CCSHARED) $(CFLAGS) $(ISRCS) $(INCLUDES) $(SRCS)
@@ -1125,6 +1301,17 @@ uffi_cpp: $(SRCS)
# $(CXX) -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES)
# $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+uffi_version:
+ $(UFFI) --version
+
+# -----------------------------------------------------------------
+# Cleaning the UFFI examples
+# -----------------------------------------------------------------
+
uffi_clean:
rm -f *_wrap* *~ .~*
rm -f core @EXTRA_CLEAN@
@@ -1143,6 +1330,10 @@ R_CFLAGS=-fPIC
# we get -fPIC
# CMD SHLIB stdout is piped to /dev/null to prevent echo of compiler command
+# ----------------------------------------------------------------
+# Build a R dynamically loadable module (C)
+# ----------------------------------------------------------------
+
r: $(SRCS)
$(SWIG) -r $(SWIGOPT) $(INTERFACEPATH)
ifneq ($(SRCS),)
@@ -1150,6 +1341,10 @@ ifneq ($(SRCS),)
endif
+( PKG_CPPFLAGS="$(INCLUDES)" $(COMPILETOOL) $(R) CMD SHLIB -o $(LIBPREFIX)$(TARGET)$(SO) $(ISRCS) $(OBJS) > /dev/null )
+# ----------------------------------------------------------------
+# Build a R dynamically loadable module (C++)
+# ----------------------------------------------------------------
+
r_cpp: $(CXXSRCS)
$(SWIG) -c++ -r $(SWIGOPT) -o $(RCXXSRCS) $(INTERFACEPATH)
ifneq ($(CXXSRCS),)
@@ -1157,6 +1352,17 @@ ifneq ($(CXXSRCS),)
endif
+( PKG_CPPFLAGS="$(INCLUDES)" $(COMPILETOOL) $(R) CMD SHLIB -o $(LIBPREFIX)$(TARGET)$(SO) $(RCXXSRCS) $(OBJS) > /dev/null )
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+r_version:
+ $(R) --version | grep -i version
+
+# -----------------------------------------------------------------
+# Cleaning the R examples
+# -----------------------------------------------------------------
+
r_clean:
rm -f *_wrap* *~ .~*
rm -f core @EXTRA_CLEAN@
@@ -1172,6 +1378,7 @@ GOGCC = @GOGCC@
GO1 = @GO1@
GOC = @GOC@
GOOPT = @GOOPT@
+GOVERSIONOPTION = @GOVERSIONOPTION@
GOSWIGARG = `if $(GOGCC) ; then echo -gccgo; fi`
GOCOMPILEARG = `if $(GOGCC) ; then echo -c -g; elif $(GO1) ; then echo tool $(GOC:c=g) ; fi`
@@ -1230,6 +1437,13 @@ go_run: runme.go
fi
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./runme
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+go_version:
+ $(GO) $(GOVERSIONOPTION)
+
# -----------------------------------------------------------------
# Cleaning the Go examples
# -----------------------------------------------------------------
@@ -1291,6 +1505,14 @@ d_compile: $(SRCS)
d_run:
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./runme
+# -----------------------------------------------------------------
+# Version display
+# -----------------------------------------------------------------
+
+d_version:
+ # Needs improvement!
+ echo D version guess - $(D_VERSION)
+
# -----------------------------------------------------------------
# Clean the D examples
# -----------------------------------------------------------------
diff --git a/Examples/test-suite/cffi/Makefile.in b/Examples/test-suite/cffi/Makefile.in
index bf21b3552..aa8b40aec 100644
--- a/Examples/test-suite/cffi/Makefile.in
+++ b/Examples/test-suite/cffi/Makefile.in
@@ -39,7 +39,7 @@ CPP_TEST_CASES =
# a file is found which has _runme.lisp appended after the testcase name.
run_testcase = \
if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(CFFIBIN) -batch -s $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
+ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(CFFI) -batch -s $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
fi
# Clean: (does nothing, we dont generate extra cffi code)
diff --git a/Examples/test-suite/clisp/Makefile.in b/Examples/test-suite/clisp/Makefile.in
index 2ebaa6750..24655a60f 100644
--- a/Examples/test-suite/clisp/Makefile.in
+++ b/Examples/test-suite/clisp/Makefile.in
@@ -39,7 +39,7 @@ CPP_TEST_CASES =
# a file is found which has _runme.lisp appended after the testcase name.
run_testcase = \
if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(CLISPBIN) -batch -s $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
+ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(CLISP) -batch -s $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
fi
# Clean: (does nothing, we dont generate extra clisp code)
diff --git a/Examples/test-suite/uffi/Makefile.in b/Examples/test-suite/uffi/Makefile.in
index d6b948b5d..8ad153961 100644
--- a/Examples/test-suite/uffi/Makefile.in
+++ b/Examples/test-suite/uffi/Makefile.in
@@ -39,7 +39,7 @@ CPP_TEST_CASES =
# a file is found which has _runme.lisp appended after the testcase name.
run_testcase = \
if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(UFFIBIN) -batch -s $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
+ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(UFFI) -batch -s $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
fi
# Clean: (does nothing, we dont generate extra uffi code)
diff --git a/Makefile.in b/Makefile.in
index 7ecbfa251..8a6776bf8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -123,6 +123,45 @@ check-aliveness:
check-ccache:
test -z "$(ENABLE_CCACHE)" || (cd $(CCACHE) && $(MAKE) check)
+# Checks / displays versions of each target language
+check-versions: \
+ check-tcl-version \
+ check-perl5-version \
+ check-python-version \
+ check-java-version \
+ check-android-version \
+ check-guile-version \
+ check-mzscheme-version \
+ check-ruby-version \
+ check-ocaml-version \
+ check-octave-version \
+ check-php-version \
+ check-pike-version \
+ check-chicken-version \
+ check-csharp-version \
+ check-modula3-version \
+ check-lua-version \
+ check-allegrocl-version \
+ check-clisp-version \
+ check-uffi-version \
+ check-cffi-version \
+ check-r-version \
+ check-go-version \
+ check-d-version
+
+# all examples
+check-%-version :
+ @if test -z "$(skip-$*)"; then \
+ echo $* unknown; \
+ exit 1; \
+ fi
+ @if $(skip-$*); then \
+ echo skipping $* version; \
+ else \
+ echo showing $* version; \
+ (cd Examples && $(MAKE) -s $*_version) \
+ fi
+
# Checks examples for compilation (does not run them)
check-examples: \
check-tcl-examples \
@@ -252,7 +291,7 @@ partialcheck-test-suite:
partialcheck-%-test-suite:
@$(MAKE) -k -s check-$*-test-suite ACTION=partialcheck NOSKIP=1
-check: check-aliveness check-ccache check-examples check-test-suite
+check: check-aliveness check-ccache check-versions check-examples check-test-suite
# Run known-to-be-broken as well as not broken testcases in the test-suite
all-test-suite: \
diff --git a/configure.ac b/configure.ac
index cfbc09426..65a9c9078 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1592,7 +1592,7 @@ if test x"${PIKEBIN}" = xno -o x"${with_alllang}" = xno ; then
else
if test "x$PIKEBIN" = xyes; then
- AC_CHECK_PROGS(PIKE, pike pike7.6 pike7.4 pike7.2)
+ AC_CHECK_PROGS(PIKE, pike pike7.8 pike7.6 pike7.4 pike7.2)
else
PIKE="$PIKEBIN"
fi
@@ -2063,6 +2063,7 @@ if test x"${GOBIN}" = xno -o x"${with_alllang}" = xno ; then
GO1=false
GOGCC=false
GOOPT=
+ GOVERSIONOPTION=
else
if test "x$GOBIN" = xyes; then
@@ -2074,11 +2075,13 @@ else
GOGCC=false
GO1=false
GOOPT=
+ GOVERSIONOPTION=
if test -n "$GO" ; then
if $GO --help 2>/dev/null | grep gccgo >/dev/null 2>&1 ; then
GOGCC=true
+ GOVERSIONOPTION=--version
AC_MSG_CHECKING([whether gccgo version is too old])
- go_version=`$GO --version | sed -e 's/[^0-9]* \([0-9.]*\) .*$/\1/' -e 's/[.]//g'`
+ go_version=`$GO $GOVERSIONOPTION | sed -e 's/[^0-9]* \([0-9.]*\) .*$/\1/' -e 's/[.]//g'`
if test "$go_version" -lt 470; then
AC_MSG_RESULT([yes - minimum version is 4.7.0])
else
@@ -2096,8 +2099,9 @@ else
fi
elif test "`echo $GO | sed -e 's|.*/||'`" = "go"; then
GO1=true
+ GOVERSIONOPTION=version
GOC=$(sh -c "$(go env) && echo \$GOCHAR")c
- go_version=$($GO version | sed -e 's/go version //')
+ go_version=$($GO $GOVERSIONOPTION | sed -e 's/go version //')
case $go_version in
go1.0*) GOOPT="-intgosize 32" ;;
*) if test "$GOC" = "6c"; then
@@ -2109,8 +2113,9 @@ else
esac
else
GOC=`echo $GO | sed -e 's/g/c/'`
+ GOVERSIONOPTION=-V
AC_MSG_CHECKING([whether Go ($GO) version is too old])
- go_version=`$GO -V 2>/dev/null | sed -e 's/.*version.* \([[0-9]]*\).*/\1/'`
+ go_version=`$GO $GOVERSIONOPTION 2>/dev/null | sed -e 's/.*version.* \([[0-9]]*\).*/\1/'`
go_min_version=7077
if test "$go_version" != "" -a "$go_version" -lt $go_min_version; then
AC_MSG_RESULT([yes - minimum version is $go_min_version])
@@ -2128,6 +2133,7 @@ AC_SUBST(GO)
AC_SUBST(GOC)
AC_SUBST(GO1)
AC_SUBST(GOOPT)
+AC_SUBST(GOVERSIONOPTION)
#----------------------------------------------------------------
# Look for D
From 970c72b6da18516966ba82c91fa1e3cbb1b5725d Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 9 Apr 2013 22:52:54 +0100
Subject: [PATCH 066/273] make check-csharp-version fix for MS compiler
---
Examples/Makefile.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index a3444d284..c234c41ab 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -1117,8 +1117,9 @@ csharp_compile: $(SRCS)
# Version display
# -----------------------------------------------------------------
+# Version check below also works with MS csc.exe which does not understand --version
csharp_version:
- $(CSHARPCOMPILER) --version || echo "Unknown C# compiler version"
+ $(CSHARPCOMPILER) --version | grep -i version
# -----------------------------------------------------------------
# Cleaning the CSharp examples
From 35ab209332bb279cc3f0c25eb5596d21e44a2f90 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 9 Apr 2013 23:52:35 +0100
Subject: [PATCH 067/273] Travis build for top 10 target languages plus gcc and
clang SWIG builds.
Travis builds patch developed in wsfulton/travis branch
---
.travis.yml | 56 ++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 38 insertions(+), 18 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 78205c848..abdb54327 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,31 +1,51 @@
language: cpp
compiler:
- - gcc
- clang
+ - gcc
+env:
+ - SWIGLANG=
matrix:
include:
- - python: "2.7"
- compiler: gcc
+ - compiler: gcc
+ env: SWIGLANG=csharp
+ - compiler: gcc
+ env: SWIGLANG=go
+ - compiler: gcc
+ env: SWIGLANG=java
+ - compiler: gcc
+ env: SWIGLANG=lua
+ - compiler: gcc
+ env: SWIGLANG=octave SWIGJOBS=-j4
+ - compiler: gcc
+ env: SWIGLANG=perl5
+ - compiler: gcc
+ env: SWIGLANG=php
+ - compiler: gcc
env: SWIGLANG=python
- - jdk: oraclejdk6
- compiler: gcc
- env: SWIGLANG=java
- - jdk: oraclejdk7
- compiler: gcc
- env: SWIGLANG=java
- - perl: "5.10"
- compiler: gcc
- env: SWIGLANG=perl
- - rvm: 1.8.7
- compiler: gcc
+ - compiler: gcc
env: SWIGLANG=ruby
+ - compiler: gcc
+ env: SWIGLANG=tcl
+ allow_failures:
+ # None
before_install:
- - sudo apt-get install libboost-dev -qq
+ - lsb_release -a
+ - uname -a
+ - time sudo apt-get -qq install libboost-dev
+ - if test "$SWIGLANG" = "csharp"; then sudo apt-get -qq install mono-devel; fi
+ - if test "$SWIGLANG" = "go"; then go env | sed -e 's/^/export /' > goenvsetup && source goenvsetup && rm -f goenvsetup; fi # Until configure.ac is fixed
+ - if test "$SWIGLANG" = "lua"; then sudo apt-get -qq install lua5.1 liblua5.1-dev; fi
+ - if test "$SWIGLANG" = "octave"; then sudo apt-get -qq install octave3.2 octave3.2-headers; fi
+ - if test "$SWIGLANG" = "php"; then sudo apt-get install php5-cli php5-dev; fi
+ - if test "$SWIGLANG" = "tcl"; then sudo apt-get -qq install tcl8.4-dev; fi
script:
- ./autogen.sh && ./configure
- - make -s
- - echo "SWIGLANG: $SWIGLANG"
-# - make -k check-$SWIGLANG-examples check-$SWIGLANG-test-suite
+ - make -s $SWIGJOBS
+ - if test -z "$SWIGLANG"; then make -s check-ccache; fi
+ - ./swig -version
+ - if test -n "$SWIGLANG"; then make -s check-$SWIGLANG-version; fi
+ - if test -n "$SWIGLANG"; then make -k $SWIGJOBS check-$SWIGLANG-examples; fi
+ - if test -n "$SWIGLANG"; then make -k $SWIGJOBS check-$SWIGLANG-test-suite; fi
branches:
only:
- master
From d0202cbdac17721ebfdf8114a1cb96372d867a4a Mon Sep 17 00:00:00 2001
From: Marvin Greenberg
Date: Wed, 10 Apr 2013 18:37:26 +0100
Subject: [PATCH 068/273] Fix typecheck OUTPUT typemaps for Java
---
Lib/java/typemaps.i | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Lib/java/typemaps.i b/Lib/java/typemaps.i
index ae2377b70..e71790bcc 100644
--- a/Lib/java/typemaps.i
+++ b/Lib/java/typemaps.i
@@ -207,8 +207,8 @@ There are no char *OUTPUT typemaps, however you can apply the signed char * type
JCALL4(Set##JAVATYPE##ArrayRegion, jenv, $input, 0, 1, &jvalue);
}
-%typemap(typecheck) TYPE *INOUT = TYPECHECKTYPE;
-%typemap(typecheck) TYPE &INOUT = TYPECHECKTYPE;
+%typemap(typecheck) TYPE *OUTPUT = TYPECHECKTYPE;
+%typemap(typecheck) TYPE &OUTPUT = TYPECHECKTYPE;
%enddef
OUTPUT_TYPEMAP(bool, jboolean, boolean, Boolean, "[Ljava/lang/Boolean;", jbooleanArray);
From a16dc2904603decad54e50f4096e99c3ae26f017 Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Sun, 14 Apr 2013 06:14:47 +1200
Subject: [PATCH 069/273] Removed unused Printf parameter
---
Source/Modules/php.cxx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Source/Modules/php.cxx b/Source/Modules/php.cxx
index fdd335993..bc8a92687 100644
--- a/Source/Modules/php.cxx
+++ b/Source/Modules/php.cxx
@@ -2591,7 +2591,7 @@ done:
}
if (!idx) {
- Printf(w->code, "zval **args = NULL;\n", idx);
+ Printf(w->code, "zval **args = NULL;\n");
} else {
Printf(w->code, "zval *args[%d];\n", idx);
}
From 24ff00690f2b1bc36bb8a00c9a236ce1c444e61c Mon Sep 17 00:00:00 2001
From: Olly Betts
Date: Sun, 14 Apr 2013 08:03:46 +1200
Subject: [PATCH 070/273] Use ZVAL_STRINGL instead of ZVAL_STRING to set
funcname as we know the length at swig-time
---
Source/Modules/php.cxx | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Source/Modules/php.cxx b/Source/Modules/php.cxx
index bc8a92687..3cae48383 100644
--- a/Source/Modules/php.cxx
+++ b/Source/Modules/php.cxx
@@ -2597,7 +2597,8 @@ done:
}
Printf(w->code, "zval *%s, funcname;\n", Swig_cresult_name());
Printf(w->code, "MAKE_STD_ZVAL(%s);\n", Swig_cresult_name());
- Printf(w->code, "ZVAL_STRING(&funcname, (char *)\"%s\", 0);\n", GetChar(n, "sym:name"));
+ const char * funcname = GetChar(n, "sym:name");
+ Printf(w->code, "ZVAL_STRINGL(&funcname, (char *)\"%s\", %d, 0);\n", funcname, strlen(funcname));
Append(w->code, "if (!swig_self) {\n");
Append(w->code, " SWIG_PHP_Error(E_ERROR, \"this pointer is NULL\");");
Append(w->code, "}\n\n");
From 611acbf94447f51db1583fb4b6a147860803fcfc Mon Sep 17 00:00:00 2001
From: Karl Wette
Date: Mon, 15 Apr 2013 22:17:48 +0200
Subject: [PATCH 071/273] Add -MP option for generating phony targets for all
dependencies
- Modelled on similar option in GCC
---
CHANGES.current | 6 ++++++
Source/Modules/main.cxx | 20 ++++++++++++++++++--
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/CHANGES.current b/CHANGES.current
index 864fb9a3c..ece451ae2 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,12 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.10 (in progress)
============================
+2013-04-08: kwwette
+ Add -MP option to SWIG for generating phony targets for all dependencies.
+ - Prevents make from complaining if header files have been deleted before
+ the dependency file has been updated.
+ - Modelled on similar option in GCC.
+
2013-04-09: olly
[PHP] Add missing directorin typemap for char* and char[] which
fixes director_string testcase failure.
diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx
index d1f3ab274..4076b9206 100644
--- a/Source/Modules/main.cxx
+++ b/Source/Modules/main.cxx
@@ -107,6 +107,7 @@ static const char *usage2 = (const char *) "\
-MM - List dependencies, but omit files in SWIG library\n\
-MMD - Like `-MD', but omit files in SWIG library\n\
-module - Set module name to \n\
+ -MP - Generate phony targets for all dependencies\n\
-MT - Set the target of the rule emitted by dependency generation\n\
-nocontract - Turn off contract checking\n\
-nocpperraswarn - Do not treat the preprocessor #error statement as #warning\n\
@@ -185,6 +186,7 @@ static int dump_classes = 0;
static int werror = 0;
static int depend = 0;
static int depend_only = 0;
+static int depend_phony = 0;
static int memory_debug = 0;
static int allkw = 0;
static DOH *cpps = 0;
@@ -712,6 +714,9 @@ void SWIG_getoptions(int argc, char *argv[]) {
} else if (strcmp(argv[i], "-MMD") == 0) {
depend = 2;
Swig_mark_arg(i);
+ } else if (strcmp(argv[i], "-MP") == 0) {
+ depend_phony = 1;
+ Swig_mark_arg(i);
} else if (strcmp(argv[i], "-MT") == 0) {
Swig_mark_arg(i);
if (argv[i + 1]) {
@@ -1101,22 +1106,33 @@ int SWIG_main(int argc, char *argv[], Language *l) {
Printf(f_dependencies_file, "%s: ", outfile);
}
List *files = Preprocessor_depend();
+ List *phony_targets = NewList();
for (int i = 0; i < Len(files); i++) {
int use_file = 1;
if (depend == 2) {
if ((Strncmp(Getitem(files, i), SwigLib, Len(SwigLib)) == 0) || (SwigLibWinUnix && (Strncmp(Getitem(files, i), SwigLibWinUnix, Len(SwigLibWinUnix)) == 0)))
use_file = 0;
}
- if (use_file)
- Printf(f_dependencies_file, "\\\n %s ", Getitem(files, i));
+ if (use_file) {
+ Printf(f_dependencies_file, "\\\n %s ", Getitem(files, i));
+ if (depend_phony)
+ Append(phony_targets, Getitem(files, i));
+ }
}
Printf(f_dependencies_file, "\n");
+ if (depend_phony) {
+ for (int i = 0; i < Len(phony_targets); i++) {
+ Printf(f_dependencies_file, "\n%s:\n", Getitem(phony_targets, i));
+ }
+ }
+
if (f_dependencies_file != stdout)
Delete(f_dependencies_file);
if (depend_only)
SWIG_exit(EXIT_SUCCESS);
Delete(inputfile_filename);
Delete(basename);
+ Delete(phony_targets);
} else {
Printf(stderr, "Cannot generate dependencies with -nopreprocess\n");
// Actually we could but it would be inefficient when just generating dependencies, as it would be done after Swig_cparse
From 25eaee49f3cb4348e71b66144e9ba541c0632fa5 Mon Sep 17 00:00:00 2001
From: "Brant K. Kyser"
Date: Mon, 15 Apr 2013 13:38:40 -0500
Subject: [PATCH 072/273] Add check for smart pointer type in generated code
for director connection. This fixes a crash in the generated code caused by
the dynamic_cast returning 0 because the specified types are incorrect for
smart pointer types.
Add runtime test to the C# test suite's director smartptr test that demonstrates crash in generated code when directors are used with smart pointer types.
Closes #34
---
.../csharp/director_smartptr_runme.cs | 41 +++++++++++++++++++
Source/Modules/csharp.cxx | 14 ++++++-
2 files changed, 53 insertions(+), 2 deletions(-)
create mode 100644 Examples/test-suite/csharp/director_smartptr_runme.cs
diff --git a/Examples/test-suite/csharp/director_smartptr_runme.cs b/Examples/test-suite/csharp/director_smartptr_runme.cs
new file mode 100644
index 000000000..ad33c4d34
--- /dev/null
+++ b/Examples/test-suite/csharp/director_smartptr_runme.cs
@@ -0,0 +1,41 @@
+using director_smartptrNamespace;
+
+public class runme
+{
+
+ private class director_smartptr_MyBarFoo : Foo
+ {
+ public override string ping()
+ {
+ return "director_smartptr_MyBarFoo.ping();";
+ }
+
+ public override string pong()
+ {
+ return "director_smartptr_MyBarFoo.pong();" + ping();
+ }
+
+ public override string fooBar(FooBar fooBar)
+ {
+ return fooBar.FooBarDo();
+ }
+
+ public override Foo makeFoo()
+ {
+ return new Foo();
+ }
+
+ public override FooBar makeFooBar()
+ {
+ return new FooBar();
+ }
+ }
+
+ static void Main()
+ {
+ director_smartptr_MyBarFoo myBarFoo =
+ new director_smartptr_MyBarFoo();
+
+ myBarFoo.ping();
+ }
+}
diff --git a/Source/Modules/csharp.cxx b/Source/Modules/csharp.cxx
index 4ef62d2cc..2050f36db 100644
--- a/Source/Modules/csharp.cxx
+++ b/Source/Modules/csharp.cxx
@@ -3382,6 +3382,7 @@ public:
String *qualified_classname = Copy(sym_name);
String *nspace = getNSpace();
String *dirClassName = directorClassName(n);
+ String *smartptr_feature = Getattr(n, "feature:smartptr");
if (nspace)
Insert(qualified_classname, 0, NewStringf("%s.", nspace));
@@ -3392,8 +3393,17 @@ public:
Wrapper *code_wrap = NewWrapper();
Printf(code_wrap->def, "SWIGEXPORT void SWIGSTDCALL %s(void *objarg", wname);
- Printf(code_wrap->code, " %s *obj = (%s *)objarg;\n", norm_name, norm_name);
- Printf(code_wrap->code, " %s *director = dynamic_cast<%s *>(obj);\n", dirClassName, dirClassName);
+ if (Len(smartptr_feature)) {
+ Printf(code_wrap->code, " %s *obj = (%s *)objarg;\n", smartptr_feature, smartptr_feature);
+ Printf(code_wrap->code, " // Keep a local instance of the smart pointer around while we are using the raw pointer\n");
+ Printf(code_wrap->code, " // Avoids using smart pointer specific API.\n");
+ Printf(code_wrap->code, " %s *director = dynamic_cast<%s *>(obj->operator->());\n", dirClassName, dirClassName);
+ }
+ else {
+ Printf(code_wrap->code, " %s *obj = (%s *)objarg;\n", norm_name, norm_name);
+ Printf(code_wrap->code, " %s *director = dynamic_cast<%s *>(obj);\n", dirClassName, dirClassName);
+ }
+
// TODO: if statement not needed?? - Java too
Printf(code_wrap->code, " if (director) {\n");
Printf(code_wrap->code, " director->swig_connect_director(");
From 296498c15925217ccd5dfe6cf8fa59b6d78c1270 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Wed, 17 Apr 2013 21:47:36 +0100
Subject: [PATCH 073/273] Cosmetic tidyup in smartptr feature code and document
smartptr fix in previous commit
---
CHANGES.current | 3 +++
Source/Modules/csharp.cxx | 6 +++---
Source/Modules/java.cxx | 14 +++++---------
3 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/CHANGES.current b/CHANGES.current
index ece451ae2..254ecf8ba 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,9 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.10 (in progress)
============================
+2013-04-17: wsfulton
+ [C#] Pull patch #34 from BrantKyser to fix smart pointers in conjuction with directors.
+
2013-04-08: kwwette
Add -MP option to SWIG for generating phony targets for all dependencies.
- Prevents make from complaining if header files have been deleted before
diff --git a/Source/Modules/csharp.cxx b/Source/Modules/csharp.cxx
index 2050f36db..6d5c570b1 100644
--- a/Source/Modules/csharp.cxx
+++ b/Source/Modules/csharp.cxx
@@ -3382,7 +3382,7 @@ public:
String *qualified_classname = Copy(sym_name);
String *nspace = getNSpace();
String *dirClassName = directorClassName(n);
- String *smartptr_feature = Getattr(n, "feature:smartptr");
+ String *smartptr = Getattr(n, "feature:smartptr");
if (nspace)
Insert(qualified_classname, 0, NewStringf("%s.", nspace));
@@ -3393,8 +3393,8 @@ public:
Wrapper *code_wrap = NewWrapper();
Printf(code_wrap->def, "SWIGEXPORT void SWIGSTDCALL %s(void *objarg", wname);
- if (Len(smartptr_feature)) {
- Printf(code_wrap->code, " %s *obj = (%s *)objarg;\n", smartptr_feature, smartptr_feature);
+ if (Len(smartptr)) {
+ Printf(code_wrap->code, " %s *obj = (%s *)objarg;\n", smartptr, smartptr);
Printf(code_wrap->code, " // Keep a local instance of the smart pointer around while we are using the raw pointer\n");
Printf(code_wrap->code, " // Avoids using smart pointer specific API.\n");
Printf(code_wrap->code, " %s *director = dynamic_cast<%s *>(obj->operator->());\n", dirClassName, dirClassName);
diff --git a/Source/Modules/java.cxx b/Source/Modules/java.cxx
index f351c91a3..dbd110d56 100644
--- a/Source/Modules/java.cxx
+++ b/Source/Modules/java.cxx
@@ -3389,7 +3389,7 @@ public:
String *norm_name = SwigType_namestr(Getattr(n, "name"));
String *swig_director_connect = Swig_name_member(getNSpace(), proxy_class_name, "director_connect");
String *swig_director_connect_jni = makeValidJniName(swig_director_connect);
- String *smartptr_feature = Getattr(n, "feature:smartptr");
+ String *smartptr = Getattr(n, "feature:smartptr");
String *dirClassName = directorClassName(n);
Wrapper *code_wrap;
@@ -3401,15 +3401,11 @@ public:
"SWIGEXPORT void JNICALL Java_%s%s_%s(JNIEnv *jenv, jclass jcls, jobject jself, jlong objarg, jboolean jswig_mem_own, "
"jboolean jweak_global) {\n", jnipackage, jni_imclass_name, swig_director_connect_jni);
- if (Len(smartptr_feature)) {
- Printf(code_wrap->code, " %s *obj = *((%s **)&objarg);\n", smartptr_feature, smartptr_feature);
+ if (Len(smartptr)) {
+ Printf(code_wrap->code, " %s *obj = *((%s **)&objarg);\n", smartptr, smartptr);
Printf(code_wrap->code, " (void)jcls;\n");
- Printf(code_wrap->code, " // NOTE: Pulling the raw pointer out of the smart pointer as the following code does\n");
- Printf(code_wrap->code, " // is generally a bad idea. However, in this case we keep a local instance of the\n");
- Printf(code_wrap->code, " // smart pointer around while we are using the raw pointer, which should keep the\n");
- Printf(code_wrap->code, " // raw pointer alive. This is done instead of using the smart pointer's dynamic cast\n");
- Printf(code_wrap->code, " // feature since different smart pointer implementations have differently named dynamic\n");
- Printf(code_wrap->code, " // cast mechanisms.\n");
+ Printf(code_wrap->code, " // Keep a local instance of the smart pointer around while we are using the raw pointer\n");
+ Printf(code_wrap->code, " // Avoids using smart pointer specific API.\n");
Printf(code_wrap->code, " %s *director = dynamic_cast<%s *>(obj->operator->());\n", dirClassName, dirClassName);
}
else {
From 2a3e687c19385bb516b89343ffa0f347465ade82 Mon Sep 17 00:00:00 2001
From: Karl Wette
Date: Tue, 16 Apr 2013 11:11:20 +0200
Subject: [PATCH 074/273] Octave: fix bugs in output of cleanup code
Closes #35
---
CHANGES.current | 6 ++++++
Source/Modules/octave.cxx | 7 ++++++-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/CHANGES.current b/CHANGES.current
index 254ecf8ba..926096cab 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -8,6 +8,12 @@ Version 2.0.10 (in progress)
2013-04-17: wsfulton
[C#] Pull patch #34 from BrantKyser to fix smart pointers in conjuction with directors.
+2013-04-15: kwwette
+ [Octave] Fix bugs in output of cleanup code.
+ - Cleanup code is now written also after the "fail:" label, so it will be called if
+ a SWIG_exception is raised by the wrapping function, consistent with other modules.
+ - Octave module now also recognises the "$cleanup" special variable, if needed.
+
2013-04-08: kwwette
Add -MP option to SWIG for generating phony targets for all dependencies.
- Prevents make from complaining if header files have been deleted before
diff --git a/Source/Modules/octave.cxx b/Source/Modules/octave.cxx
index a9be76fc2..bf2552a30 100644
--- a/Source/Modules/octave.cxx
+++ b/Source/Modules/octave.cxx
@@ -744,10 +744,15 @@ public:
Delete(tm);
}
- Printf(f->code, "fail:\n"); // we should free locals etc if this happens
Printf(f->code, "return _out;\n");
+ Printf(f->code, "fail:\n"); // we should free locals etc if this happens
+ Printv(f->code, cleanup, NIL);
+ Printf(f->code, "return octave_value_list();\n");
Printf(f->code, "}\n");
+ /* Substitute the cleanup code */
+ Replaceall(f->code, "$cleanup", cleanup);
+
Replaceall(f->code, "$symname", iname);
Wrapper_print(f, f_wrappers);
DelWrapper(f);
From 857e447654c72184a9bace33ec3ad33ddb354c1d Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Thu, 18 Apr 2013 22:47:41 +0100
Subject: [PATCH 075/273] Fix syntax error when preprocessor macros are defined
inside of enum lists
Fixes SF Bug 428, Patch 333
---
CHANGES.current | 10 ++
Examples/test-suite/common.mk | 1 +
Examples/test-suite/enum_macro.i | 92 ++++++++++++++++++
.../test-suite/java/enum_macro_runme.java | 93 +++++++++++++++++++
Source/CParse/parser.y | 46 ++++-----
5 files changed, 220 insertions(+), 22 deletions(-)
create mode 100644 Examples/test-suite/enum_macro.i
create mode 100644 Examples/test-suite/java/enum_macro_runme.java
diff --git a/CHANGES.current b/CHANGES.current
index 926096cab..4c1e55bc0 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,16 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.10 (in progress)
============================
+2013-04-18: wsfulton
+ Fix SF Bug #428 - Syntax error when preprocessor macros are defined inside of enum lists, such as:
+
+ typedef enum {
+ eZero = 0
+ #define ONE 1
+ } EFoo;
+
+ The macros are silently ignored.
+
2013-04-17: wsfulton
[C#] Pull patch #34 from BrantKyser to fix smart pointers in conjuction with directors.
diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk
index 83be90d2d..793055097 100644
--- a/Examples/test-suite/common.mk
+++ b/Examples/test-suite/common.mk
@@ -514,6 +514,7 @@ C_TEST_CASES += \
empty \
enums \
enum_forward \
+ enum_macro \
extern_declaration \
funcptr \
function_typedef \
diff --git a/Examples/test-suite/enum_macro.i b/Examples/test-suite/enum_macro.i
new file mode 100644
index 000000000..b18e02a84
--- /dev/null
+++ b/Examples/test-suite/enum_macro.i
@@ -0,0 +1,92 @@
+%module enum_macro
+
+%inline %{
+enum Greeks1
+{
+#define GREEK1 -1
+ alpha1=1,
+ beta1,
+ theta1
+};
+
+enum Greeks2
+{
+ alpha2 = 2,
+#define GREEK2 -2
+ beta2,
+ theta2
+};
+
+enum Greeks3
+{
+ alpha3,
+ beta3,
+#define GREEK3 -3
+ theta3
+};
+
+enum Greeks4
+{
+ alpha4 = 4,
+ beta4 = 5,
+ theta4 = 6
+#define GREEK4 -4
+};
+
+enum Greeks5
+{
+#define GREEK5 -5
+ alpha5,
+ beta5,
+};
+
+enum Greeks6
+{
+ alpha6,
+#define GREEK6 -6
+ beta6,
+};
+
+enum Greeks7
+{
+ alpha7,
+ beta7,
+#define GREEK7 -7
+};
+
+enum Greeks8
+{
+#define GREEK8 -8
+ theta8
+};
+
+enum Greeks9
+{
+ theta9
+#define GREEK9 -9
+};
+
+enum Greeks10
+{
+#define GREEK10 -10
+ theta10,
+};
+
+enum Greeks11
+{
+ theta11,
+#define GREEK11 -11
+};
+
+typedef enum {
+ theta12 = 0
+#define GREEK12 -12
+} Greeks12;
+%}
+
+
+enum Greeks13
+{
+#define GREEK13 -13
+};
+
diff --git a/Examples/test-suite/java/enum_macro_runme.java b/Examples/test-suite/java/enum_macro_runme.java
new file mode 100644
index 000000000..4ac7409ee
--- /dev/null
+++ b/Examples/test-suite/java/enum_macro_runme.java
@@ -0,0 +1,93 @@
+
+import enum_macro.*;
+
+public class enum_macro_runme {
+
+ static {
+ try {
+ System.loadLibrary("enum_macro");
+ } catch (UnsatisfiedLinkError e) {
+ System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
+ System.exit(1);
+ }
+ }
+
+ public static void main(String argv[])
+ {
+ {
+ Greeks1 a = Greeks1.alpha1;
+ a = Greeks1.beta1;
+ a = Greeks1.theta1;
+ if (a.swigValue() != 3)
+ throw new RuntimeException("Greeks1");
+ }
+ {
+ Greeks2 a = Greeks2.alpha2;
+ a = Greeks2.beta2;
+ a = Greeks2.theta2;
+ if (a.swigValue() != 4)
+ throw new RuntimeException("Greeks2");
+ }
+ {
+ Greeks3 a = Greeks3.alpha3;
+ a = Greeks3.beta3;
+ a = Greeks3.theta3;
+ if (a.swigValue() != 2)
+ throw new RuntimeException("Greeks3");
+ }
+ {
+ Greeks4 a = Greeks4.alpha4;
+ a = Greeks4.beta4;
+ a = Greeks4.theta4;
+ if (a.swigValue() != 6)
+ throw new RuntimeException("Greeks4");
+ }
+ {
+ Greeks5 a = Greeks5.alpha5;
+ a = Greeks5.beta5;
+ if (a.swigValue() != 1)
+ throw new RuntimeException("Greeks5");
+ }
+ {
+ Greeks6 a = Greeks6.alpha6;
+ a = Greeks6.beta6;
+ if (a.swigValue() != 1)
+ throw new RuntimeException("Greeks6");
+ }
+ {
+ Greeks7 a = Greeks7.alpha7;
+ a = Greeks7.beta7;
+ if (a.swigValue() != 1)
+ throw new RuntimeException("Greeks7");
+ }
+ {
+ Greeks8 a = Greeks8.theta8;
+ if (a.swigValue() != 0)
+ throw new RuntimeException("Greeks8");
+ }
+ {
+ Greeks9 a = Greeks9.theta9;
+ if (a.swigValue() != 0)
+ throw new RuntimeException("Greeks9");
+ }
+ {
+ Greeks10 a = Greeks10.theta10;
+ if (a.swigValue() != 0)
+ throw new RuntimeException("Greeks10");
+ }
+ {
+ Greeks11 a = Greeks11.theta11;
+ if (a.swigValue() != 0)
+ throw new RuntimeException("Greeks11");
+ }
+ {
+ Greeks12 a = Greeks12.theta12;
+ if (a.swigValue() != 0)
+ throw new RuntimeException("Greeks12");
+ }
+ {
+ Greeks13 a = null;
+ }
+ }
+}
+
diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
index 74d41079c..92c518e1f 100644
--- a/Source/CParse/parser.y
+++ b/Source/CParse/parser.y
@@ -1788,6 +1788,7 @@ static void tag_nodes(Node *n, const_String_or_char_ptr attrname, DOH *value) {
%type type_specifier primitive_type_list ;
%type fname stringtype;
%type featattr;
+%type optional_constant_directive;
%%
@@ -5647,29 +5648,31 @@ definetype : { /* scanner_check_typedef(); */ } expr {
/* Some stuff for handling enums */
ename : ID { $$ = $1; }
- | empty { $$ = (char *) 0;}
- ;
+ | empty { $$ = (char *) 0;}
+ ;
-enumlist : enumlist COMMA edecl {
+optional_constant_directive : constant_directive { $$ = $1; }
+ | empty { $$ = 0; }
+ ;
- /* Ignore if there is a trailing comma in the enum list */
- if ($3) {
- Node *leftSibling = Getattr($1,"_last");
- if (!leftSibling) {
- leftSibling=$1;
- }
- set_nextSibling(leftSibling,$3);
- Setattr($1,"_last",$3);
- }
- $$ = $1;
- }
- | edecl {
- $$ = $1;
- if ($1) {
- Setattr($1,"_last",$1);
- }
- }
- ;
+/* Enum lists - any #define macros (constant directives) within the enum list are ignored. Trailing commas accepted. */
+enumlist : enumlist COMMA optional_constant_directive edecl optional_constant_directive {
+ Node *leftSibling = Getattr($1,"_last");
+ set_nextSibling(leftSibling,$4);
+ Setattr($1,"_last",$4);
+ $$ = $1;
+ }
+ | enumlist COMMA optional_constant_directive {
+ $$ = $1;
+ }
+ | optional_constant_directive edecl optional_constant_directive {
+ Setattr($2,"_last",$2);
+ $$ = $2;
+ }
+ | optional_constant_directive {
+ $$ = 0;
+ }
+ ;
edecl : ID {
SwigType *type = NewSwigType(T_INT);
@@ -5689,7 +5692,6 @@ edecl : ID {
Setattr($$,"value",$1);
Delete(type);
}
- | empty { $$ = 0; }
;
etype : expr {
From 9be3235988d73cc9445e633105d0146bb3c4acf5 Mon Sep 17 00:00:00 2001
From: Jesus Lopez
Date: Mon, 15 Apr 2013 09:31:23 -0700
Subject: [PATCH 076/273] Support $descriptor() macro in fragments
Closes #36
---
.../python/special_variable_macros_runme.py | 2 ++
Examples/test-suite/special_variable_macros.i | 19 +++++++++++++++++++
Source/Swig/fragment.c | 2 ++
3 files changed, 23 insertions(+)
diff --git a/Examples/test-suite/python/special_variable_macros_runme.py b/Examples/test-suite/python/special_variable_macros_runme.py
index 07e60dfa2..eaf9c1858 100644
--- a/Examples/test-suite/python/special_variable_macros_runme.py
+++ b/Examples/test-suite/python/special_variable_macros_runme.py
@@ -9,6 +9,8 @@ if special_variable_macros.testJill(name) != "jilly":
raise "test failed"
if special_variable_macros.testMary(name) != "SWIGTYPE_p_NameWrap":
raise "test failed"
+if special_variable_macros.testJames(name) != "SWIGTYPE_Name":
+ raise "test failed"
if special_variable_macros.testJim(name) != "multiname num":
raise "test failed"
if special_variable_macros.testJohn(special_variable_macros.PairIntBool(10, False)) != 123:
diff --git a/Examples/test-suite/special_variable_macros.i b/Examples/test-suite/special_variable_macros.i
index 65f5496eb..ddd068cc0 100644
--- a/Examples/test-suite/special_variable_macros.i
+++ b/Examples/test-suite/special_variable_macros.i
@@ -62,6 +62,14 @@ private:
/*%typemap(in) NameWrap *NAMEWRAP end */
%}
+// check $descriptor gets expanded properly when used in a fragment
+%fragment("nameDescriptor", "header")
+%{
+/*%fragment("getNameDescriptor", "header") start */
+static const char *nameDescriptor = "$descriptor(Name)";
+/*%fragment("getNameDescriptor", "header") end */
+%}
+
//////////////////////////////////////////////////////////////////////////////////////
@@ -86,6 +94,14 @@ $typemap(in, NameWrap *NAMEWRAP)
// %typemap(in) Name *mary end
}
+%typemap(in, fragment="nameDescriptor") Name *james (Name temp) {
+ // %typemap(in) Name *james start
+ temp = Name(nameDescriptor);
+ (void)$input;
+ $1 = &temp;
+ // %typemap(in) Name *james end
+}
+
%inline %{
const char * testFred(Name *fred) {
return fred->getName();
@@ -99,6 +115,9 @@ const char * testJill(Name *jill) {
const char * testMary(Name *mary) {
return mary->getName();
}
+const char * testJames(Name *james) {
+ return james->getName();
+}
%}
//////////////////////////////////////////////////////////////////////////////////////
diff --git a/Source/Swig/fragment.c b/Source/Swig/fragment.c
index 15f701ae4..025994a84 100644
--- a/Source/Swig/fragment.c
+++ b/Source/Swig/fragment.c
@@ -60,6 +60,8 @@ void Swig_fragment_register(Node *fragment) {
}
Setfile(ccode, Getfile(fragment));
Setline(ccode, Getline(fragment));
+ /* Replace $descriptor() macros */
+ Swig_cparse_replace_descriptor(ccode);
Setattr(fragments, name, ccode);
if (debug)
Printf(stdout, "registering fragment %s %s\n", name, section);
From 439a353a3686c97fa0b077fad8ce0c06326c1c95 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Thu, 18 Apr 2013 23:20:48 +0100
Subject: [PATCH 077/273] Document patch #33 from previous commit and complete
run time tests
---
CHANGES.current | 13 +++++++++++++
.../csharp/special_variable_macros_runme.cs | 2 ++
.../test-suite/d/special_variable_macros_runme.1.d | 4 ++++
.../test-suite/d/special_variable_macros_runme.2.d | 1 +
.../test-suite/go/special_variable_macros_runme.go | 3 +++
.../java/special_variable_macros_runme.java | 2 ++
Source/Swig/fragment.c | 1 +
7 files changed, 26 insertions(+)
diff --git a/CHANGES.current b/CHANGES.current
index 4c1e55bc0..5022a3030 100644
--- a/CHANGES.current
+++ b/CHANGES.current
@@ -5,6 +5,19 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 2.0.10 (in progress)
============================
+2013-04-18: wsfulton
+ Apply Patch #36 from Jesus Lopez to add support for $descriptor() special variable macro expansion
+ in fragments. For example:
+
+ %fragment("nameDescriptor", "header")
+ %{
+ static const char *nameDescriptor = "$descriptor(Name)";
+ %}
+
+ which will generate into the wrapper if the fragment is used:
+
+ static const char *nameDescriptor = "SWIGTYPE_Name";
+
2013-04-18: wsfulton
Fix SF Bug #428 - Syntax error when preprocessor macros are defined inside of enum lists, such as:
diff --git a/Examples/test-suite/csharp/special_variable_macros_runme.cs b/Examples/test-suite/csharp/special_variable_macros_runme.cs
index bd6fd4b04..1845cd074 100644
--- a/Examples/test-suite/csharp/special_variable_macros_runme.cs
+++ b/Examples/test-suite/csharp/special_variable_macros_runme.cs
@@ -12,6 +12,8 @@ public class runme {
throw new Exception("test failed");
if (special_variable_macros.testMary(name) != "SWIGTYPE_p_NameWrap")
throw new Exception("test failed");
+ if (special_variable_macros.testJames(name) != "SWIGTYPE_Name")
+ throw new Exception("test failed");
if (special_variable_macros.testJim(name) != "multiname num")
throw new Exception("test failed");
if (special_variable_macros.testJohn(new PairIntBool(10, false)) != 123)
diff --git a/Examples/test-suite/d/special_variable_macros_runme.1.d b/Examples/test-suite/d/special_variable_macros_runme.1.d
index 12491eef5..eab0331cc 100644
--- a/Examples/test-suite/d/special_variable_macros_runme.1.d
+++ b/Examples/test-suite/d/special_variable_macros_runme.1.d
@@ -24,6 +24,10 @@ void main() {
throw new Exception("test failed");
}
+ if (testJames(name) != "SWIGTYPE_Name") {
+ throw new Exception("test failed");
+ }
+
if (testJim(name) != "multiname num") {
throw new Exception("test failed");
}
diff --git a/Examples/test-suite/d/special_variable_macros_runme.2.d b/Examples/test-suite/d/special_variable_macros_runme.2.d
index 128e5870f..0bc4c0cc7 100644
--- a/Examples/test-suite/d/special_variable_macros_runme.2.d
+++ b/Examples/test-suite/d/special_variable_macros_runme.2.d
@@ -12,6 +12,7 @@ void main() {
enforce(testJack(name) == "$specialname");
enforce(testJill(name) == "jilly");
enforce(testMary(name) == "SWIGTYPE_p_NameWrap");
+ enforce(testJames(name) == "SWIGTYPE_Name");
enforce(testJim(name) == "multiname num");
enforce(testJohn(new PairIntBool(10, false)) == 123);
diff --git a/Examples/test-suite/go/special_variable_macros_runme.go b/Examples/test-suite/go/special_variable_macros_runme.go
index d049af606..c4f687ea9 100644
--- a/Examples/test-suite/go/special_variable_macros_runme.go
+++ b/Examples/test-suite/go/special_variable_macros_runme.go
@@ -16,6 +16,9 @@ func main() {
if special_variable_macros.TestMary(name) != "SWIGTYPE_p_NameWrap" {
panic("test failed")
}
+ if special_variable_macros.TestJames(name) != "SWIGTYPE_Name" {
+ panic("test failed")
+ }
if special_variable_macros.TestJim(name) != "multiname num" {
panic("test failed")
}
diff --git a/Examples/test-suite/java/special_variable_macros_runme.java b/Examples/test-suite/java/special_variable_macros_runme.java
index d7f8070b3..1cd50e96e 100644
--- a/Examples/test-suite/java/special_variable_macros_runme.java
+++ b/Examples/test-suite/java/special_variable_macros_runme.java
@@ -22,6 +22,8 @@ public class special_variable_macros_runme {
throw new RuntimeException("test failed");
if (!special_variable_macros.testMary(name).equals("SWIGTYPE_p_NameWrap"))
throw new RuntimeException("test failed");
+ if (!special_variable_macros.testJames(name).equals("SWIGTYPE_Name"))
+ throw new RuntimeException("test failed");
if (!special_variable_macros.testJim(name).equals("multiname num"))
throw new RuntimeException("test failed");
if (special_variable_macros.testJohn(new PairIntBool(10, false)) != 123)
diff --git a/Source/Swig/fragment.c b/Source/Swig/fragment.c
index 025994a84..927c772b8 100644
--- a/Source/Swig/fragment.c
+++ b/Source/Swig/fragment.c
@@ -18,6 +18,7 @@
#include "swig.h"
#include "swigwarn.h"
+#include "cparse.h"
static Hash *fragments = 0;
static Hash *looking_fragments = 0;
From 4bbc881a9fca57574ed8217561289173df1c7e94 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 12 Apr 2013 20:00:06 +0100
Subject: [PATCH 078/273] .gitignore tweaks
---
.gitignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.gitignore b/.gitignore
index 800ac4669..a35ad66c6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,6 +44,7 @@ CCache/autom4te.cache/
CCache/config.h.in
CCache/configure
Source/Include/swigconfig.h.in
+Source/Include/swigconfig.h.in~
Source/Makefile.in
Tools/config/compile
Tools/config/config.guess
From 9f9eb66fa4dbe2c32684c532c7875c1b0ae14b6f Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 12 Apr 2013 20:05:43 +0100
Subject: [PATCH 079/273] Add an examples scratch directory into .gitignore
---
.gitignore | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.gitignore b/.gitignore
index a35ad66c6..877d2b2a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -126,3 +126,5 @@ Examples/test-suite/uffi/*/
*_runme.exe.mdb
*_runme.exe
+# Scratch directories
+Examples/scratch
From 635a90c91c4eea575b47c6453ccbd501e935cdf6 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 12 Apr 2013 20:07:54 +0100
Subject: [PATCH 080/273] Add RUNPIPE in makefiles - a generic mechanism for
suppressing stdout when running the examples - the idea is to run 'make
check-examples' which runs the examples but suppresses the output except for
errors. Initial implementation for Java.
---
Examples/Makefile.in | 13 ++++++++++++-
Makefile.in | 2 +-
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index c234c41ab..535ea55ae 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -46,6 +46,10 @@ LIBPREFIX =
RUNTOOL =
# COMPILETOOL is a way to run the compiler under another tool, or more commonly just to stop the compiler executing
COMPILETOOL=
+# RUNPIPE is for piping output of running interpreter/compiled code somewhere, eg RUNPIPE=\>/dev/null
+RUNPIPE=
+
+RUNME = runme
# X11 options
@@ -543,6 +547,13 @@ java_cpp: $(SRCS)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(JAVACFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(JAVA_INCLUDE)
$(JAVACXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(JAVA_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(JAVA_LIBPREFIX)$(TARGET)$(JAVASO)
+# -----------------------------------------------------------------
+# Run java example
+# -----------------------------------------------------------------
+
+java_run:
+ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(JAVA) $(RUNME) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
@@ -556,7 +567,7 @@ java_version:
# -----------------------------------------------------------------
java_clean:
- rm -f *_wrap* *~ .~* *.class `find . -name \*.java | grep -v runme.java`
+ rm -f *_wrap* *~ .~* *.class `find . -name \*.java | grep -v $(RUNME).java`
rm -f core @EXTRA_CLEAN@
rm -f *.@OBJEXT@ *@JAVASO@
diff --git a/Makefile.in b/Makefile.in
index 8a6776bf8..04d65a107 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -229,7 +229,7 @@ check-%-examples :
# individual example
%.actionexample:
@echo $(ACTION)ing Examples/$(LANGUAGE)/$*
- @(cd Examples/$(LANGUAGE)/$* && $(MAKE) -s $(chk-set-env) $(ACTION))
+ @(cd Examples/$(LANGUAGE)/$* && $(MAKE) -s $(chk-set-env) $(ACTION) RUNPIPE=\>/dev/null)
# gcj individual example
java.actionexample:
From 05adcee56f0e6730ab15ca80f010ffe37194c718 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 12 Apr 2013 20:08:49 +0100
Subject: [PATCH 081/273] Run java examples during 'make check-examples'
---
Examples/Makefile.in | 2 +-
Examples/java/callback/Makefile | 9 ++++-----
Examples/java/class/Makefile | 9 ++++-----
Examples/java/constants/Makefile | 9 ++++-----
Examples/java/enum/Makefile | 9 ++++-----
Examples/java/extend/Makefile | 9 ++++-----
Examples/java/funcptr/Makefile | 9 ++++-----
Examples/java/multimap/Makefile | 9 ++++-----
Examples/java/native/Makefile | 9 ++++-----
Examples/java/pointer/Makefile | 9 ++++-----
Examples/java/reference/Makefile | 9 ++++-----
Examples/java/simple/Makefile | 9 ++++-----
Examples/java/template/Makefile | 9 ++++-----
Examples/java/typemap/Makefile | 9 ++++-----
Examples/java/variables/Makefile | 9 ++++-----
15 files changed, 57 insertions(+), 71 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 535ea55ae..91aab1c83 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -552,7 +552,7 @@ java_cpp: $(SRCS)
# -----------------------------------------------------------------
java_run:
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(JAVA) $(RUNME) $(RUNPIPE)
+ env LD_LIBRARY_PATH=. $(RUNTOOL) $(JAVA) $(RUNME) $(RUNPIPE)
# -----------------------------------------------------------------
# Version display
diff --git a/Examples/java/callback/Makefile b/Examples/java/callback/Makefile
index 14c301703..c4d4d0e36 100644
--- a/Examples/java/callback/Makefile
+++ b/Examples/java/callback/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/class/Makefile b/Examples/java/class/Makefile
index 14c301703..c4d4d0e36 100644
--- a/Examples/java/class/Makefile
+++ b/Examples/java/class/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/constants/Makefile b/Examples/java/constants/Makefile
index 2b3d35c6a..0c7c16349 100644
--- a/Examples/java/constants/Makefile
+++ b/Examples/java/constants/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/enum/Makefile b/Examples/java/enum/Makefile
index 14c301703..c4d4d0e36 100644
--- a/Examples/java/enum/Makefile
+++ b/Examples/java/enum/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/extend/Makefile b/Examples/java/extend/Makefile
index 14c301703..c4d4d0e36 100644
--- a/Examples/java/extend/Makefile
+++ b/Examples/java/extend/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/funcptr/Makefile b/Examples/java/funcptr/Makefile
index 968c92c6c..ce51a1c74 100644
--- a/Examples/java/funcptr/Makefile
+++ b/Examples/java/funcptr/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/multimap/Makefile b/Examples/java/multimap/Makefile
index 968c92c6c..ce51a1c74 100644
--- a/Examples/java/multimap/Makefile
+++ b/Examples/java/multimap/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/native/Makefile b/Examples/java/native/Makefile
index 92afbd4d0..39e8f6d7f 100644
--- a/Examples/java/native/Makefile
+++ b/Examples/java/native/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/pointer/Makefile b/Examples/java/pointer/Makefile
index 968c92c6c..ce51a1c74 100644
--- a/Examples/java/pointer/Makefile
+++ b/Examples/java/pointer/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/reference/Makefile b/Examples/java/reference/Makefile
index 14c301703..c4d4d0e36 100644
--- a/Examples/java/reference/Makefile
+++ b/Examples/java/reference/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/simple/Makefile b/Examples/java/simple/Makefile
index 968c92c6c..ce51a1c74 100644
--- a/Examples/java/simple/Makefile
+++ b/Examples/java/simple/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/template/Makefile b/Examples/java/template/Makefile
index 2b3d35c6a..0c7c16349 100644
--- a/Examples/java/template/Makefile
+++ b/Examples/java/template/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/typemap/Makefile b/Examples/java/typemap/Makefile
index 92afbd4d0..39e8f6d7f 100644
--- a/Examples/java/typemap/Makefile
+++ b/Examples/java/typemap/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
diff --git a/Examples/java/variables/Makefile b/Examples/java/variables/Makefile
index 968c92c6c..ce51a1c74 100644
--- a/Examples/java/variables/Makefile
+++ b/Examples/java/variables/Makefile
@@ -5,14 +5,13 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: java
+check: build
+ $(MAKE) -f $(TOP)/Makefile java_run
-java::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
javac *.java
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile java_clean
-
-check: all
From 8713199267acea20d0fa1fe5841afdb90e8427ab Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 12 Apr 2013 22:22:36 +0100
Subject: [PATCH 082/273] Move javac compile for examples into common Makefile
for examples
---
Examples/Makefile.in | 7 +++++++
Examples/java/callback/Makefile | 3 ++-
Examples/java/class/Makefile | 3 ++-
Examples/java/constants/Makefile | 3 ++-
Examples/java/enum/Makefile | 3 ++-
Examples/java/extend/Makefile | 3 ++-
Examples/java/funcptr/Makefile | 3 ++-
Examples/java/multimap/Makefile | 3 ++-
Examples/java/native/Makefile | 3 ++-
Examples/java/pointer/Makefile | 3 ++-
Examples/java/reference/Makefile | 3 ++-
Examples/java/simple/Makefile | 3 ++-
Examples/java/template/Makefile | 3 ++-
Examples/java/typemap/Makefile | 3 ++-
Examples/java/variables/Makefile | 3 ++-
15 files changed, 35 insertions(+), 14 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 91aab1c83..24e1e6a5e 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -547,6 +547,13 @@ java_cpp: $(SRCS)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(JAVACFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(JAVA_INCLUDE)
$(JAVACXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(JAVA_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(JAVA_LIBPREFIX)$(TARGET)$(JAVASO)
+# ----------------------------------------------------------------
+# Compile java files
+# ----------------------------------------------------------------
+
+java_compile: $(SRCS)
+ $(COMPILETOOL) $(JAVAC) $(JAVACFLAGS) $(JAVASRCS)
+
# -----------------------------------------------------------------
# Run java example
# -----------------------------------------------------------------
diff --git a/Examples/java/callback/Makefile b/Examples/java/callback/Makefile
index c4d4d0e36..8f274e7cb 100644
--- a/Examples/java/callback/Makefile
+++ b/Examples/java/callback/Makefile
@@ -4,6 +4,7 @@ CXXSRCS = example.cxx
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/class/Makefile b/Examples/java/class/Makefile
index c4d4d0e36..8f274e7cb 100644
--- a/Examples/java/class/Makefile
+++ b/Examples/java/class/Makefile
@@ -4,6 +4,7 @@ CXXSRCS = example.cxx
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/constants/Makefile b/Examples/java/constants/Makefile
index 0c7c16349..97c5b673c 100644
--- a/Examples/java/constants/Makefile
+++ b/Examples/java/constants/Makefile
@@ -4,6 +4,7 @@ CXXSRCS =
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/enum/Makefile b/Examples/java/enum/Makefile
index c4d4d0e36..8f274e7cb 100644
--- a/Examples/java/enum/Makefile
+++ b/Examples/java/enum/Makefile
@@ -4,6 +4,7 @@ CXXSRCS = example.cxx
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/extend/Makefile b/Examples/java/extend/Makefile
index c4d4d0e36..8f274e7cb 100644
--- a/Examples/java/extend/Makefile
+++ b/Examples/java/extend/Makefile
@@ -4,6 +4,7 @@ CXXSRCS = example.cxx
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/funcptr/Makefile b/Examples/java/funcptr/Makefile
index ce51a1c74..e9e29f3a3 100644
--- a/Examples/java/funcptr/Makefile
+++ b/Examples/java/funcptr/Makefile
@@ -4,6 +4,7 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/multimap/Makefile b/Examples/java/multimap/Makefile
index ce51a1c74..e9e29f3a3 100644
--- a/Examples/java/multimap/Makefile
+++ b/Examples/java/multimap/Makefile
@@ -4,6 +4,7 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/native/Makefile b/Examples/java/native/Makefile
index 39e8f6d7f..29d5a082a 100644
--- a/Examples/java/native/Makefile
+++ b/Examples/java/native/Makefile
@@ -4,6 +4,7 @@ SRCS =
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/pointer/Makefile b/Examples/java/pointer/Makefile
index ce51a1c74..e9e29f3a3 100644
--- a/Examples/java/pointer/Makefile
+++ b/Examples/java/pointer/Makefile
@@ -4,6 +4,7 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/reference/Makefile b/Examples/java/reference/Makefile
index c4d4d0e36..8f274e7cb 100644
--- a/Examples/java/reference/Makefile
+++ b/Examples/java/reference/Makefile
@@ -4,6 +4,7 @@ CXXSRCS = example.cxx
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/simple/Makefile b/Examples/java/simple/Makefile
index ce51a1c74..e9e29f3a3 100644
--- a/Examples/java/simple/Makefile
+++ b/Examples/java/simple/Makefile
@@ -4,6 +4,7 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/template/Makefile b/Examples/java/template/Makefile
index 0c7c16349..97c5b673c 100644
--- a/Examples/java/template/Makefile
+++ b/Examples/java/template/Makefile
@@ -4,6 +4,7 @@ CXXSRCS =
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java_cpp
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/typemap/Makefile b/Examples/java/typemap/Makefile
index 39e8f6d7f..29d5a082a 100644
--- a/Examples/java/typemap/Makefile
+++ b/Examples/java/typemap/Makefile
@@ -4,6 +4,7 @@ SRCS =
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
diff --git a/Examples/java/variables/Makefile b/Examples/java/variables/Makefile
index ce51a1c74..e9e29f3a3 100644
--- a/Examples/java/variables/Makefile
+++ b/Examples/java/variables/Makefile
@@ -4,6 +4,7 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
+JAVASRCS = *.java
check: build
$(MAKE) -f $(TOP)/Makefile java_run
@@ -11,7 +12,7 @@ check: build
build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
- javac *.java
+ $(MAKE) -f $(TOP)/Makefile JAVASRCS='$(JAVASRCS)' JAVAFLAGS='$(JAVAFLAGS)' java_compile
clean:
$(MAKE) -f $(TOP)/Makefile java_clean
From 760c398c49c692d956fa307941722fa072919968 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 12 Apr 2013 20:22:12 +0100
Subject: [PATCH 083/273] Run csharp examples during 'make check-examples'
---
Examples/Makefile.in | 8 ++++++++
Examples/csharp/arrays/Makefile | 9 ++++-----
Examples/csharp/callback/Makefile | 9 ++++-----
Examples/csharp/class/Makefile | 9 ++++-----
Examples/csharp/enum/Makefile | 9 ++++-----
Examples/csharp/extend/Makefile | 9 ++++-----
Examples/csharp/funcptr/Makefile | 9 ++++-----
Examples/csharp/reference/Makefile | 9 ++++-----
Examples/csharp/simple/Makefile | 9 ++++-----
Examples/csharp/template/Makefile | 9 ++++-----
Examples/csharp/variables/Makefile | 9 ++++-----
11 files changed, 48 insertions(+), 50 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 24e1e6a5e..b5824eb43 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -1105,6 +1105,7 @@ CSHARPCOMPILER = @CSHARPCOMPILER@
CSHARPCILINTERPRETER = @CSHARPCILINTERPRETER@
CSHARPCFLAGS = @CSHARPCFLAGS@
CSHARPSO = @CSHARPSO@
+CSHARP_RUNME = ./$(RUNME).exe
# ----------------------------------------------------------------
# Build a CSharp dynamically loadable module (C)
@@ -1131,6 +1132,13 @@ csharp_cpp: $(SRCS)
csharp_compile: $(SRCS)
$(COMPILETOOL) $(CSHARPCOMPILER) $(CSHARPFLAGS) $(CSHARPSRCS)
+# -----------------------------------------------------------------
+# Run CSharp example
+# -----------------------------------------------------------------
+
+csharp_run:
+ env LD_LIBRARY_PATH=. $(RUNTOOL) $(CSHARP_RUNME) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
diff --git a/Examples/csharp/arrays/Makefile b/Examples/csharp/arrays/Makefile
index b3446d895..65386f0dc 100644
--- a/Examples/csharp/arrays/Makefile
+++ b/Examples/csharp/arrays/Makefile
@@ -7,14 +7,13 @@ SWIGOPT =
CSHARPSRCS = *.cs
CSHARPFLAGS= -nologo -unsafe -out:runme.exe
-all:: csharp
+check: build
+ $(MAKE) -f $(TOP)/Makefile csharp_run
-csharp::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' csharp
$(MAKE) -f $(TOP)/Makefile CSHARPSRCS='$(CSHARPSRCS)' CSHARPFLAGS='$(CSHARPFLAGS)' csharp_compile
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile csharp_clean
-
-check: all
diff --git a/Examples/csharp/callback/Makefile b/Examples/csharp/callback/Makefile
index 51b163b85..340febc88 100644
--- a/Examples/csharp/callback/Makefile
+++ b/Examples/csharp/callback/Makefile
@@ -7,14 +7,13 @@ SWIGOPT =
CSHARPSRCS = *.cs
CSHARPFLAGS= -debug -nologo -out:runme.exe
-all:: csharp
+check: build
+ $(MAKE) -f $(TOP)/Makefile csharp_run
-csharp::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' csharp_cpp
$(MAKE) -f $(TOP)/Makefile CSHARPSRCS='$(CSHARPSRCS)' CSHARPFLAGS='$(CSHARPFLAGS)' csharp_compile
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile csharp_clean
-
-check: all
diff --git a/Examples/csharp/class/Makefile b/Examples/csharp/class/Makefile
index 20f0dd5bb..bc3ce8ce8 100644
--- a/Examples/csharp/class/Makefile
+++ b/Examples/csharp/class/Makefile
@@ -7,14 +7,13 @@ SWIGOPT =
CSHARPSRCS = *.cs
CSHARPFLAGS= -nologo -out:runme.exe
-all:: csharp
+check: build
+ $(MAKE) -f $(TOP)/Makefile csharp_run
-csharp::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' csharp_cpp
$(MAKE) -f $(TOP)/Makefile CSHARPSRCS='$(CSHARPSRCS)' CSHARPFLAGS='$(CSHARPFLAGS)' csharp_compile
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile csharp_clean
-
-check: all
diff --git a/Examples/csharp/enum/Makefile b/Examples/csharp/enum/Makefile
index 20f0dd5bb..bc3ce8ce8 100644
--- a/Examples/csharp/enum/Makefile
+++ b/Examples/csharp/enum/Makefile
@@ -7,14 +7,13 @@ SWIGOPT =
CSHARPSRCS = *.cs
CSHARPFLAGS= -nologo -out:runme.exe
-all:: csharp
+check: build
+ $(MAKE) -f $(TOP)/Makefile csharp_run
-csharp::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' csharp_cpp
$(MAKE) -f $(TOP)/Makefile CSHARPSRCS='$(CSHARPSRCS)' CSHARPFLAGS='$(CSHARPFLAGS)' csharp_compile
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile csharp_clean
-
-check: all
diff --git a/Examples/csharp/extend/Makefile b/Examples/csharp/extend/Makefile
index 20f0dd5bb..bc3ce8ce8 100644
--- a/Examples/csharp/extend/Makefile
+++ b/Examples/csharp/extend/Makefile
@@ -7,14 +7,13 @@ SWIGOPT =
CSHARPSRCS = *.cs
CSHARPFLAGS= -nologo -out:runme.exe
-all:: csharp
+check: build
+ $(MAKE) -f $(TOP)/Makefile csharp_run
-csharp::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' csharp_cpp
$(MAKE) -f $(TOP)/Makefile CSHARPSRCS='$(CSHARPSRCS)' CSHARPFLAGS='$(CSHARPFLAGS)' csharp_compile
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile csharp_clean
-
-check: all
diff --git a/Examples/csharp/funcptr/Makefile b/Examples/csharp/funcptr/Makefile
index 223300497..875ae0e71 100644
--- a/Examples/csharp/funcptr/Makefile
+++ b/Examples/csharp/funcptr/Makefile
@@ -7,14 +7,13 @@ SWIGOPT =
CSHARPSRCS = *.cs
CSHARPFLAGS= -nologo -out:runme.exe
-all:: csharp
+check: build
+ $(MAKE) -f $(TOP)/Makefile csharp_run
-csharp::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' csharp
$(MAKE) -f $(TOP)/Makefile CSHARPSRCS='$(CSHARPSRCS)' CSHARPFLAGS='$(CSHARPFLAGS)' csharp_compile
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile csharp_clean
-
-check: all
diff --git a/Examples/csharp/reference/Makefile b/Examples/csharp/reference/Makefile
index 20f0dd5bb..bc3ce8ce8 100644
--- a/Examples/csharp/reference/Makefile
+++ b/Examples/csharp/reference/Makefile
@@ -7,14 +7,13 @@ SWIGOPT =
CSHARPSRCS = *.cs
CSHARPFLAGS= -nologo -out:runme.exe
-all:: csharp
+check: build
+ $(MAKE) -f $(TOP)/Makefile csharp_run
-csharp::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' csharp_cpp
$(MAKE) -f $(TOP)/Makefile CSHARPSRCS='$(CSHARPSRCS)' CSHARPFLAGS='$(CSHARPFLAGS)' csharp_compile
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile csharp_clean
-
-check: all
diff --git a/Examples/csharp/simple/Makefile b/Examples/csharp/simple/Makefile
index 223300497..875ae0e71 100644
--- a/Examples/csharp/simple/Makefile
+++ b/Examples/csharp/simple/Makefile
@@ -7,14 +7,13 @@ SWIGOPT =
CSHARPSRCS = *.cs
CSHARPFLAGS= -nologo -out:runme.exe
-all:: csharp
+check: build
+ $(MAKE) -f $(TOP)/Makefile csharp_run
-csharp::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' csharp
$(MAKE) -f $(TOP)/Makefile CSHARPSRCS='$(CSHARPSRCS)' CSHARPFLAGS='$(CSHARPFLAGS)' csharp_compile
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile csharp_clean
-
-check: all
diff --git a/Examples/csharp/template/Makefile b/Examples/csharp/template/Makefile
index 3f3bbe6dd..43243d6d5 100644
--- a/Examples/csharp/template/Makefile
+++ b/Examples/csharp/template/Makefile
@@ -7,14 +7,13 @@ SWIGOPT =
CSHARPSRCS = *.cs
CSHARPFLAGS= -nologo -out:runme.exe
-all:: csharp
+check: build
+ $(MAKE) -f $(TOP)/Makefile csharp_run
-csharp::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' csharp_cpp
$(MAKE) -f $(TOP)/Makefile CSHARPSRCS='$(CSHARPSRCS)' CSHARPFLAGS='$(CSHARPFLAGS)' csharp_compile
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile csharp_clean
-
-check: all
diff --git a/Examples/csharp/variables/Makefile b/Examples/csharp/variables/Makefile
index 223300497..875ae0e71 100644
--- a/Examples/csharp/variables/Makefile
+++ b/Examples/csharp/variables/Makefile
@@ -7,14 +7,13 @@ SWIGOPT =
CSHARPSRCS = *.cs
CSHARPFLAGS= -nologo -out:runme.exe
-all:: csharp
+check: build
+ $(MAKE) -f $(TOP)/Makefile csharp_run
-csharp::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' csharp
$(MAKE) -f $(TOP)/Makefile CSHARPSRCS='$(CSHARPSRCS)' CSHARPFLAGS='$(CSHARPFLAGS)' csharp_compile
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile csharp_clean
-
-check: all
From 6acfda55d1e427e3c391122fa2a0fe92e464eccc Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 13 Apr 2013 00:11:39 +0100
Subject: [PATCH 084/273] Go examples makefiles clean target fixed and use
RUNPIPE and tidyup
---
Examples/Makefile.in | 4 ++--
Examples/go/callback/Makefile | 12 +++++-------
Examples/go/class/Makefile | 12 ++++++------
Examples/go/constants/Makefile | 12 ++++++------
Examples/go/enum/Makefile | 12 +++++-------
Examples/go/extend/Makefile | 12 +++++-------
Examples/go/funcptr/Makefile | 12 +++++-------
Examples/go/multimap/Makefile | 12 +++++-------
Examples/go/pointer/Makefile | 12 +++++-------
Examples/go/reference/Makefile | 12 +++++-------
Examples/go/simple/Makefile | 12 ++++++------
Examples/go/template/Makefile | 12 +++++-------
Examples/go/variables/Makefile | 12 +++++-------
13 files changed, 65 insertions(+), 83 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index b5824eb43..581e17027 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -1462,7 +1462,7 @@ go_run: runme.go
else \
$(COMPILETOOL) $(GOTOOL) $(GOLD) -r $${GOROOT}/pkg/$${GOOS}_$${GOARCH}:. -o runme runme.$(GOOBJEXT); \
fi
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./runme
+ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./runme $(RUNPIPE)
# -----------------------------------------------------------------
# Version display
@@ -1476,7 +1476,7 @@ go_version:
# -----------------------------------------------------------------
go_clean:
- rm -f *_wrap* *_gc* .~* runme
+ rm -f *_wrap* *_gc* .~* runme $(GOSRCS)
rm -f core @EXTRA_CLEAN@
rm -f *.@OBJEXT@ *.[568] *.a *@SO@
diff --git a/Examples/go/callback/Makefile b/Examples/go/callback/Makefile
index 9dc8b8851..7489f87dc 100644
--- a/Examples/go/callback/Makefile
+++ b/Examples/go/callback/Makefile
@@ -5,14 +5,12 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: go
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
-go::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_cpp
-clean::
- $(MAKE) -f $(TOP)/Makefile go_clean
-
-check: all
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' go_clean
diff --git a/Examples/go/class/Makefile b/Examples/go/class/Makefile
index 53d31d1a4..a099654f1 100644
--- a/Examples/go/class/Makefile
+++ b/Examples/go/class/Makefile
@@ -5,12 +5,12 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_cpp
-clean::
- $(MAKE) -f $(TOP)/Makefile go_clean
-
-check: all
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' go_clean
diff --git a/Examples/go/constants/Makefile b/Examples/go/constants/Makefile
index 71d4d73a4..b45feb963 100644
--- a/Examples/go/constants/Makefile
+++ b/Examples/go/constants/Makefile
@@ -5,12 +5,12 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go
-clean::
- $(MAKE) -f $(TOP)/Makefile go_clean
-
-check: all
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' go_clean
diff --git a/Examples/go/enum/Makefile b/Examples/go/enum/Makefile
index 9dc8b8851..7489f87dc 100644
--- a/Examples/go/enum/Makefile
+++ b/Examples/go/enum/Makefile
@@ -5,14 +5,12 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: go
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
-go::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_cpp
-clean::
- $(MAKE) -f $(TOP)/Makefile go_clean
-
-check: all
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' go_clean
diff --git a/Examples/go/extend/Makefile b/Examples/go/extend/Makefile
index 9dc8b8851..7489f87dc 100644
--- a/Examples/go/extend/Makefile
+++ b/Examples/go/extend/Makefile
@@ -5,14 +5,12 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: go
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
-go::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_cpp
-clean::
- $(MAKE) -f $(TOP)/Makefile go_clean
-
-check: all
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' go_clean
diff --git a/Examples/go/funcptr/Makefile b/Examples/go/funcptr/Makefile
index b0aa9c970..452ea2118 100644
--- a/Examples/go/funcptr/Makefile
+++ b/Examples/go/funcptr/Makefile
@@ -5,14 +5,12 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: go
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
-go::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go
-clean::
- $(MAKE) -f $(TOP)/Makefile go_clean
-
-check: all
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' go_clean
diff --git a/Examples/go/multimap/Makefile b/Examples/go/multimap/Makefile
index b0aa9c970..452ea2118 100644
--- a/Examples/go/multimap/Makefile
+++ b/Examples/go/multimap/Makefile
@@ -5,14 +5,12 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: go
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
-go::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go
-clean::
- $(MAKE) -f $(TOP)/Makefile go_clean
-
-check: all
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' go_clean
diff --git a/Examples/go/pointer/Makefile b/Examples/go/pointer/Makefile
index b0aa9c970..452ea2118 100644
--- a/Examples/go/pointer/Makefile
+++ b/Examples/go/pointer/Makefile
@@ -5,14 +5,12 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: go
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
-go::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go
-clean::
- $(MAKE) -f $(TOP)/Makefile go_clean
-
-check: all
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' go_clean
diff --git a/Examples/go/reference/Makefile b/Examples/go/reference/Makefile
index 9dc8b8851..7489f87dc 100644
--- a/Examples/go/reference/Makefile
+++ b/Examples/go/reference/Makefile
@@ -5,14 +5,12 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: go
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
-go::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_cpp
-clean::
- $(MAKE) -f $(TOP)/Makefile go_clean
-
-check: all
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' go_clean
diff --git a/Examples/go/simple/Makefile b/Examples/go/simple/Makefile
index e67fa8bb6..75f81bffe 100644
--- a/Examples/go/simple/Makefile
+++ b/Examples/go/simple/Makefile
@@ -4,12 +4,12 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go
-clean::
- $(MAKE) -f $(TOP)/Makefile go_clean
-
-check: all
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' go_clean
diff --git a/Examples/go/template/Makefile b/Examples/go/template/Makefile
index b9278b53e..9ee030479 100644
--- a/Examples/go/template/Makefile
+++ b/Examples/go/template/Makefile
@@ -5,14 +5,12 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: go
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
-go::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_cpp
-clean::
- $(MAKE) -f $(TOP)/Makefile go_clean
-
-check: all
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' go_clean
diff --git a/Examples/go/variables/Makefile b/Examples/go/variables/Makefile
index b0aa9c970..452ea2118 100644
--- a/Examples/go/variables/Makefile
+++ b/Examples/go/variables/Makefile
@@ -5,14 +5,12 @@ TARGET = example
INTERFACE = example.i
SWIGOPT =
-all:: go
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
-go::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go
-clean::
- $(MAKE) -f $(TOP)/Makefile go_clean
-
-check: all
- $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' go_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' go_clean
From 14a89fac86129a1d876cdc253d82046ea6fd1a0a Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 13 Apr 2013 00:28:26 +0100
Subject: [PATCH 085/273] Octave examples clean target fixed and makefiles use
new RUNPIPE and general consistency tidyup
---
Examples/Makefile.in | 10 +++++-----
Examples/octave/callback/Makefile | 13 ++++++-------
Examples/octave/class/Makefile | 13 ++++++-------
Examples/octave/constants/Makefile | 13 ++++++-------
Examples/octave/contract/Makefile | 13 ++++++-------
Examples/octave/enum/Makefile | 13 ++++++-------
Examples/octave/extend/Makefile | 13 ++++++-------
Examples/octave/funcptr/Makefile | 13 ++++++-------
Examples/octave/funcptr2/Makefile | 13 ++++++-------
Examples/octave/functor/Makefile | 13 ++++++-------
Examples/octave/module_load/Makefile | 12 ++++++------
Examples/octave/operator/Makefile | 13 ++++++-------
Examples/octave/pointer/Makefile | 13 ++++++-------
Examples/octave/reference/Makefile | 13 ++++++-------
Examples/octave/simple/Makefile | 13 ++++++-------
Examples/octave/template/Makefile | 13 ++++++-------
Examples/octave/variables/Makefile | 13 ++++++-------
17 files changed, 101 insertions(+), 116 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 581e17027..f0659dc56 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -366,6 +366,8 @@ OCTAVE_CXX = $(DEFS) @OCTAVE_CPPFLAGS@ @OCTAVE_CXXFLAGS@
OCTAVE_DLNK = @OCTAVE_LDFLAGS@
OCTAVE_SO = @OCTAVE_SO@
+OCTAVE_SCRIPT = $(RUNME).m
+
# ----------------------------------------------------------------
# Build a C dynamically loadable module
# Note: Octave requires C++ compiler when compiling C wrappers
@@ -390,10 +392,8 @@ octave_cpp: $(SRCS)
# Running an Octave example
# -----------------------------------------------------------------
-OCTSCRIPT = runme.m
-
-octave_run: $(OCTSCRIPT)
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH OCTAVE_PATH=$(srcdir):$$OCTAVE_PATH $(OCTAVE) $(OCTSCRIPT) >/dev/null
+octave_run:
+ $(RUNTOOL) $(OCTAVE) $(OCTAVE_SCRIPT) $(RUNPIPE)
# -----------------------------------------------------------------
# Version display
@@ -403,7 +403,7 @@ octave_version:
$(OCTAVE) --version | grep -i version
# -----------------------------------------------------------------
-# Cleaning the octave examples
+# Cleaning the Octave examples
# -----------------------------------------------------------------
octave_clean:
diff --git a/Examples/octave/callback/Makefile b/Examples/octave/callback/Makefile
index 21fb21137..ffc60e0c0 100644
--- a/Examples/octave/callback/Makefile
+++ b/Examples/octave/callback/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/class/Makefile b/Examples/octave/class/Makefile
index 21fb21137..ffc60e0c0 100644
--- a/Examples/octave/class/Makefile
+++ b/Examples/octave/class/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/constants/Makefile b/Examples/octave/constants/Makefile
index 3156eae84..60b0578c6 100644
--- a/Examples/octave/constants/Makefile
+++ b/Examples/octave/constants/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/contract/Makefile b/Examples/octave/contract/Makefile
index 464b74122..2c33cd3d8 100644
--- a/Examples/octave/contract/Makefile
+++ b/Examples/octave/contract/Makefile
@@ -4,17 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/enum/Makefile b/Examples/octave/enum/Makefile
index 21fb21137..ffc60e0c0 100644
--- a/Examples/octave/enum/Makefile
+++ b/Examples/octave/enum/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/extend/Makefile b/Examples/octave/extend/Makefile
index 21fb21137..ffc60e0c0 100644
--- a/Examples/octave/extend/Makefile
+++ b/Examples/octave/extend/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/funcptr/Makefile b/Examples/octave/funcptr/Makefile
index 464b74122..2c33cd3d8 100644
--- a/Examples/octave/funcptr/Makefile
+++ b/Examples/octave/funcptr/Makefile
@@ -4,17 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/funcptr2/Makefile b/Examples/octave/funcptr2/Makefile
index 464b74122..2c33cd3d8 100644
--- a/Examples/octave/funcptr2/Makefile
+++ b/Examples/octave/funcptr2/Makefile
@@ -4,17 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/functor/Makefile b/Examples/octave/functor/Makefile
index 8f6dfc73e..09c680b4e 100644
--- a/Examples/octave/functor/Makefile
+++ b/Examples/octave/functor/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/module_load/Makefile b/Examples/octave/module_load/Makefile
index da2c704e0..bead6f150 100644
--- a/Examples/octave/module_load/Makefile
+++ b/Examples/octave/module_load/Makefile
@@ -4,19 +4,19 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' SWIGOPT='-module $$(TARGET)' INTERFACE='$(INTERFACE)' octave
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)2' SWIGOPT='-module $$(TARGET) -globals .' INTERFACE='$(INTERFACE)' octave
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
rm -f $(TARGET).m
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/operator/Makefile b/Examples/octave/operator/Makefile
index de818a41a..09c680b4e 100644
--- a/Examples/octave/operator/Makefile
+++ b/Examples/octave/operator/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).m
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/pointer/Makefile b/Examples/octave/pointer/Makefile
index 464b74122..2c33cd3d8 100644
--- a/Examples/octave/pointer/Makefile
+++ b/Examples/octave/pointer/Makefile
@@ -4,17 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/reference/Makefile b/Examples/octave/reference/Makefile
index 21fb21137..ffc60e0c0 100644
--- a/Examples/octave/reference/Makefile
+++ b/Examples/octave/reference/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/simple/Makefile b/Examples/octave/simple/Makefile
index 464b74122..2c33cd3d8 100644
--- a/Examples/octave/simple/Makefile
+++ b/Examples/octave/simple/Makefile
@@ -4,17 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/template/Makefile b/Examples/octave/template/Makefile
index d64487430..527e3cec6 100644
--- a/Examples/octave/template/Makefile
+++ b/Examples/octave/template/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
diff --git a/Examples/octave/variables/Makefile b/Examples/octave/variables/Makefile
index 464b74122..2c33cd3d8 100644
--- a/Examples/octave/variables/Makefile
+++ b/Examples/octave/variables/Makefile
@@ -4,17 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile octave_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' octave
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myoctave' INTERFACE='$(INTERFACE)' octave_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile octave_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile octave_run
From 92ffedceb50188d309dfc9587dc0f83b31020209 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 13 Apr 2013 00:50:19 +0100
Subject: [PATCH 086/273] Perl examples makefiles clean target fixed and use
RUNPIPE and tidyup
---
Examples/Makefile.in | 11 +++++++++--
Examples/perl5/class/Makefile | 11 ++++++-----
Examples/perl5/constants/Makefile | 12 +++++++-----
Examples/perl5/constants2/Makefile | 12 +++++++-----
Examples/perl5/funcptr/Makefile | 12 +++++++-----
Examples/perl5/import/Makefile | 10 +++++-----
Examples/perl5/inline/Makefile | 7 +++----
Examples/perl5/java/Makefile | 14 +++++---------
Examples/perl5/multimap/Makefile | 12 +++++++-----
Examples/perl5/multiple_inheritance/Makefile | 11 ++++++-----
Examples/perl5/pointer/Makefile | 12 +++++++-----
Examples/perl5/reference/Makefile | 11 ++++++-----
Examples/perl5/simple/Makefile | 12 +++++++-----
Examples/perl5/value/Makefile | 12 +++++++-----
Examples/perl5/variables/Makefile | 12 +++++++-----
Examples/perl5/xmlstring/Makefile | 15 ++++++---------
16 files changed, 102 insertions(+), 84 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index f0659dc56..07b375e66 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -189,6 +189,8 @@ PERL5_INCLUDE= @PERL5EXT@
PERL5_DLNK = @PERL5DYNAMICLINKING@
PERL5_CCFLAGS = @PERL5CCFLAGS@
PERL = @PERL@
+PERL5_LIB = -L$(PERL5_INCLUDE) -l@PERL5LIB@ @LIBS@ $(SYSLIBS)
+PERL5_SCRIPT = $(RUNME).pl
# ----------------------------------------------------------------
# Build a Perl5 dynamically loadable module (C)
@@ -219,8 +221,6 @@ perl5_xs: $(SRCS)
# Build a statically linked Perl5 executable
# ----------------------------------------------------------------
-PERL5_LIB = -L$(PERL5_INCLUDE) -l@PERL5LIB@ @LIBS@ $(SYSLIBS)
-
perl5_static: $(SRCS)
$(SWIG) -perl5 -static -lperlmain.i $(SWIGOPT) $(INTERFACEPATH)
$(CC) $(CFLAGS) -Dbool=char $(SRCS) $(ISRCS) $(INCLUDES) -I$(PERL5_INCLUDE) $(PERL5_LIB) $(LIBS) -o $(TARGET)
@@ -229,6 +229,13 @@ perl5_static_cpp: $(SRCS)
$(SWIG) -perl5 -c++ -static -lperlmain.i $(SWIGOPT) $(INTERFACEPATH)
$(CXX) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) -I$(PERL5_INCLUDE) $(PERL5_LIB) $(LIBS) -o $(TARGET)
+# -----------------------------------------------------------------
+# Running a Perl5 example
+# -----------------------------------------------------------------
+
+perl5_run:
+ $(RUNTOOL) $(PERL) $(PERL5_SCRIPT) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
diff --git a/Examples/perl5/class/Makefile b/Examples/perl5/class/Makefile
index f53361730..544d13642 100644
--- a/Examples/perl5/class/Makefile
+++ b/Examples/perl5/class/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' perl5_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
diff --git a/Examples/perl5/constants/Makefile b/Examples/perl5/constants/Makefile
index 576d2a095..899282913 100644
--- a/Examples/perl5/constants/Makefile
+++ b/Examples/perl5/constants/Makefile
@@ -4,15 +4,17 @@ SRCS =
TARGET = example
INTERFACE = example.i
SWIGOPT =
-all::
+
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' perl5
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
diff --git a/Examples/perl5/constants2/Makefile b/Examples/perl5/constants2/Makefile
index 4ba4b2544..2ed10d733 100644
--- a/Examples/perl5/constants2/Makefile
+++ b/Examples/perl5/constants2/Makefile
@@ -4,15 +4,17 @@ SRCS =
TARGET = example
INTERFACE = example.i
SWIGOPT = -const
-all::
+
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' perl5
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
diff --git a/Examples/perl5/funcptr/Makefile b/Examples/perl5/funcptr/Makefile
index ce2bbb5b9..c4d100020 100644
--- a/Examples/perl5/funcptr/Makefile
+++ b/Examples/perl5/funcptr/Makefile
@@ -4,15 +4,17 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
-all::
+
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' perl5
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
diff --git a/Examples/perl5/import/Makefile b/Examples/perl5/import/Makefile
index 60dfdfcee..baa8277fd 100644
--- a/Examples/perl5/import/Makefile
+++ b/Examples/perl5/import/Makefile
@@ -3,7 +3,10 @@ SWIG = $(TOP)/../preinst-swig
SWIGOPT =
LIBS =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
LIBS='$(LIBS)' TARGET='baseclass' INTERFACE='base.i' perl5_cpp
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
@@ -13,8 +16,5 @@ all::
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
LIBS='$(LIBS)' TARGET='spam' INTERFACE='spam.i' perl5_cpp
-
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
diff --git a/Examples/perl5/inline/Makefile b/Examples/perl5/inline/Makefile
index 4ac085ec3..d544a6532 100644
--- a/Examples/perl5/inline/Makefile
+++ b/Examples/perl5/inline/Makefile
@@ -1,7 +1,6 @@
-all:
-
run:
- perl runme.pl
+ $(MAKE) -f $(TOP)/Makefile perl5_run
clean:
- rm -fr _Inline *~
+ $(MAKE) -f $(TOP)/Makefile perl5_clean
+ rm -rf _Inline
diff --git a/Examples/perl5/java/Makefile b/Examples/perl5/java/Makefile
index 882eba70f..b007cfdbb 100644
--- a/Examples/perl5/java/Makefile
+++ b/Examples/perl5/java/Makefile
@@ -5,22 +5,18 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all:: Example.class
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build: Example.class
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' CXX="gcj" \
CXXSHARED="gcj -fpic -shared Example.class" PERL5_CCFLAGS='' PERL5_EXP='' LIBS="-lstdc++" perl5_cpp
-
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
rm -f *.class Example.h
-check: all
-
-run:
- perl runme.pl
-
Example.class: Example.java
gcj -fPIC -C -c -g Example.java
gcjh Example
-
diff --git a/Examples/perl5/multimap/Makefile b/Examples/perl5/multimap/Makefile
index ce2bbb5b9..c4d100020 100644
--- a/Examples/perl5/multimap/Makefile
+++ b/Examples/perl5/multimap/Makefile
@@ -4,15 +4,17 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
-all::
+
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' perl5
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
diff --git a/Examples/perl5/multiple_inheritance/Makefile b/Examples/perl5/multiple_inheritance/Makefile
index fcca38473..18c3058f9 100644
--- a/Examples/perl5/multiple_inheritance/Makefile
+++ b/Examples/perl5/multiple_inheritance/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' perl5_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
diff --git a/Examples/perl5/pointer/Makefile b/Examples/perl5/pointer/Makefile
index ce2bbb5b9..c4d100020 100644
--- a/Examples/perl5/pointer/Makefile
+++ b/Examples/perl5/pointer/Makefile
@@ -4,15 +4,17 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
-all::
+
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' perl5
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
diff --git a/Examples/perl5/reference/Makefile b/Examples/perl5/reference/Makefile
index 4a804258b..d33dd89fe 100644
--- a/Examples/perl5/reference/Makefile
+++ b/Examples/perl5/reference/Makefile
@@ -6,15 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT = -noproxy
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' SWIGOPT='$(SWIGOPT)' perl5_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myperl' INTERFACE='$(INTERFACE)' SWIGOPT='$(SWIGOPT)' perl5_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
diff --git a/Examples/perl5/simple/Makefile b/Examples/perl5/simple/Makefile
index ce2bbb5b9..c4d100020 100644
--- a/Examples/perl5/simple/Makefile
+++ b/Examples/perl5/simple/Makefile
@@ -4,15 +4,17 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
-all::
+
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' perl5
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
diff --git a/Examples/perl5/value/Makefile b/Examples/perl5/value/Makefile
index ce2bbb5b9..c4d100020 100644
--- a/Examples/perl5/value/Makefile
+++ b/Examples/perl5/value/Makefile
@@ -4,15 +4,17 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
-all::
+
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' perl5
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
diff --git a/Examples/perl5/variables/Makefile b/Examples/perl5/variables/Makefile
index ce2bbb5b9..c4d100020 100644
--- a/Examples/perl5/variables/Makefile
+++ b/Examples/perl5/variables/Makefile
@@ -4,15 +4,17 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
-all::
+
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' perl5
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
diff --git a/Examples/perl5/xmlstring/Makefile b/Examples/perl5/xmlstring/Makefile
index 36143fc3a..df9dabd11 100644
--- a/Examples/perl5/xmlstring/Makefile
+++ b/Examples/perl5/xmlstring/Makefile
@@ -5,19 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lxerces-c -lxerces-depdom -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile perl5_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' LIBS=$(LIBS) CXX="g++ -g3" perl5_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile perl5_clean
-
-check: all
-
-
-run:
- perl runme.pl
From 0fa791d1ea9e79d54e9e934e5527876221104b52 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 13 Apr 2013 01:12:36 +0100
Subject: [PATCH 087/273] PHP examples makefiles clean target fixed and use
RUNPIPE and tidyup
---
Examples/Makefile.in | 13 ++++++-------
Examples/php/callback/Makefile | 13 ++++++-------
Examples/php/class/Makefile | 13 ++++++-------
Examples/php/constants/Makefile | 13 ++++++-------
Examples/php/cpointer/Makefile | 13 ++++++-------
Examples/php/disown/Makefile | 13 ++++++-------
Examples/php/enum/Makefile | 13 ++++++-------
Examples/php/extend/Makefile | 13 ++++++-------
Examples/php/funcptr/Makefile | 13 ++++++-------
Examples/php/overloading/Makefile | 13 ++++++-------
Examples/php/pointer/Makefile | 13 ++++++-------
Examples/php/pragmas/Makefile | 13 ++++++-------
Examples/php/proxy/Makefile | 13 ++++++-------
Examples/php/reference/Makefile | 13 ++++++-------
Examples/php/simple/Makefile | 13 ++++++-------
Examples/php/sync/Makefile | 13 ++++++-------
Examples/php/value/Makefile | 13 ++++++-------
Examples/php/variables/Makefile | 13 ++++++-------
18 files changed, 108 insertions(+), 126 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 07b375e66..fa459c5a2 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -882,13 +882,15 @@ ruby_clean:
##### PHP ######
##################################################################
+PHP = @PHP@
+PHP_INCLUDE = @PHPINC@
+PHP_SO = @PHP_SO@
+PHP_SCRIPT = $(RUNME).php
+
# -------------------------------------------------------------------
# Build a PHP dynamically loadable module (C)
# -------------------------------------------------------------------
-PHP_INCLUDE = @PHPINC@
-PHP_SO = @PHP_SO@
-
php: $(SRCS)
$(SWIG) -php $(SWIGOPT) $(INTERFACEPATH)
$(CC) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(PHP_INCLUDE)
@@ -907,11 +909,8 @@ php_cpp: $(SRCS)
# Running a PHP example
# -----------------------------------------------------------------
-PHP=@PHP@
-PHPSCRIPT ?= runme.php
-
php_run:
- $(RUNTOOL) $(PHP) -n -q -d extension_dir=. -d safe_mode=Off $(PHPSCRIPT)
+ $(RUNTOOL) $(PHP) -n -q -d extension_dir=. -d safe_mode=Off $(PHP_SCRIPT) $(RUNPIPE)
# -----------------------------------------------------------------
# Version display
diff --git a/Examples/php/callback/Makefile b/Examples/php/callback/Makefile
index 42597202b..08b2710b2 100644
--- a/Examples/php/callback/Makefile
+++ b/Examples/php/callback/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' php_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' php_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/class/Makefile b/Examples/php/class/Makefile
index 1bc0beaab..cefd81f78 100644
--- a/Examples/php/class/Makefile
+++ b/Examples/php/class/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/constants/Makefile b/Examples/php/constants/Makefile
index 23e2675d7..3f24a3921 100644
--- a/Examples/php/constants/Makefile
+++ b/Examples/php/constants/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/cpointer/Makefile b/Examples/php/cpointer/Makefile
index 0862ce5ec..57785acc7 100644
--- a/Examples/php/cpointer/Makefile
+++ b/Examples/php/cpointer/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/disown/Makefile b/Examples/php/disown/Makefile
index 1bc0beaab..cefd81f78 100644
--- a/Examples/php/disown/Makefile
+++ b/Examples/php/disown/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/enum/Makefile b/Examples/php/enum/Makefile
index 252a72660..22f979d2f 100644
--- a/Examples/php/enum/Makefile
+++ b/Examples/php/enum/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT = -noproxy
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/extend/Makefile b/Examples/php/extend/Makefile
index 42597202b..08b2710b2 100644
--- a/Examples/php/extend/Makefile
+++ b/Examples/php/extend/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' php_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' php_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/funcptr/Makefile b/Examples/php/funcptr/Makefile
index 0862ce5ec..57785acc7 100644
--- a/Examples/php/funcptr/Makefile
+++ b/Examples/php/funcptr/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/overloading/Makefile b/Examples/php/overloading/Makefile
index 1bc0beaab..cefd81f78 100644
--- a/Examples/php/overloading/Makefile
+++ b/Examples/php/overloading/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/pointer/Makefile b/Examples/php/pointer/Makefile
index 0862ce5ec..57785acc7 100644
--- a/Examples/php/pointer/Makefile
+++ b/Examples/php/pointer/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/pragmas/Makefile b/Examples/php/pragmas/Makefile
index 23e2675d7..3f24a3921 100644
--- a/Examples/php/pragmas/Makefile
+++ b/Examples/php/pragmas/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/proxy/Makefile b/Examples/php/proxy/Makefile
index 1bc0beaab..cefd81f78 100644
--- a/Examples/php/proxy/Makefile
+++ b/Examples/php/proxy/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/reference/Makefile b/Examples/php/reference/Makefile
index 1bc0beaab..cefd81f78 100644
--- a/Examples/php/reference/Makefile
+++ b/Examples/php/reference/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/simple/Makefile b/Examples/php/simple/Makefile
index 0862ce5ec..57785acc7 100644
--- a/Examples/php/simple/Makefile
+++ b/Examples/php/simple/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/sync/Makefile b/Examples/php/sync/Makefile
index 1bc0beaab..cefd81f78 100644
--- a/Examples/php/sync/Makefile
+++ b/Examples/php/sync/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/value/Makefile b/Examples/php/value/Makefile
index 9e69d00a4..449686784 100644
--- a/Examples/php/value/Makefile
+++ b/Examples/php/value/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT = -noproxy
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
diff --git a/Examples/php/variables/Makefile b/Examples/php/variables/Makefile
index 0862ce5ec..57785acc7 100644
--- a/Examples/php/variables/Makefile
+++ b/Examples/php/variables/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS =
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile php_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
php
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myphp' INTERFACE='$(INTERFACE)' \
php_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile php_clean
- rm -f $(TARGET).php
-
-check: all
- $(MAKE) -f $(TOP)/Makefile php_run
From cc4ac0a9e93104ee435b50b9532dc1ca1a84bf03 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 13 Apr 2013 21:44:04 +0100
Subject: [PATCH 088/273] Python examples makefiles clean target fixed and use
RUNPIPE and tidyup
---
Examples/Makefile.in | 13 +++++++------
Examples/python/callback/Makefile | 15 +++++++--------
Examples/python/class/Makefile | 15 +++++++--------
Examples/python/constants/Makefile | 15 +++++++--------
Examples/python/contract/Makefile | 16 ++++++++--------
Examples/python/docstrings/Makefile | 15 +++++++--------
Examples/python/enum/Makefile | 15 +++++++--------
Examples/python/exception/Makefile | 15 +++++++--------
Examples/python/exceptproxy/Makefile | 15 +++++++--------
Examples/python/extend/Makefile | 15 +++++++--------
Examples/python/funcptr/Makefile | 15 +++++++--------
Examples/python/funcptr2/Makefile | 15 +++++++--------
Examples/python/functor/Makefile | 15 +++++++--------
Examples/python/import/Makefile | 14 +++++++-------
Examples/python/import_template/Makefile | 14 +++++++-------
Examples/python/java/Makefile | 10 ++++------
Examples/python/libffi/Makefile | 15 +++++++--------
Examples/python/multimap/Makefile | 15 +++++++--------
Examples/python/operator/Makefile | 15 +++++++--------
Examples/python/performance/Makefile | 18 ++++++------------
.../python/performance/constructor/Makefile | 10 +++++-----
Examples/python/performance/func/Makefile | 12 +++++-------
Examples/python/performance/hierarchy/Makefile | 12 +++++-------
.../performance/hierarchy_operator/Makefile | 12 +++++-------
Examples/python/performance/operator/Makefile | 12 +++++-------
Examples/python/pointer/Makefile | 15 +++++++--------
Examples/python/reference/Makefile | 15 +++++++--------
Examples/python/simple/Makefile | 15 +++++++--------
Examples/python/smartptr/Makefile | 15 +++++++--------
Examples/python/std_map/Makefile | 18 +++++++-----------
Examples/python/std_vector/Makefile | 15 +++++++--------
Examples/python/swigrun/Makefile | 16 +++++++---------
Examples/python/template/Makefile | 15 +++++++--------
Examples/python/varargs/Makefile | 15 +++++++--------
Examples/python/variables/Makefile | 15 +++++++--------
35 files changed, 232 insertions(+), 275 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index fa459c5a2..94d4eecac 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -328,17 +328,17 @@ python_static_cpp: $(SRCS)
# -----------------------------------------------------------------
ifeq (,$(PY3))
- PYSCRIPT = runme.py
+ PYSCRIPT = $(RUNME).py
else
- PYSCRIPT = runme3.py
+ PYSCRIPT = $(RUNME)3.py
endif
PY2TO3 = 2to3 `2to3 -l | grep -v -E "Available|import$$" | awk '{print "-f "$$0}'`
-python_run: $(PYSCRIPT)
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH PYTHONPATH=$(srcdir):$$PYTHONPATH $(PYTHON) $(PYSCRIPT) >/dev/null
+python_run:
+ $(RUNTOOL) $(PYTHON) $(PYSCRIPT) $(RUNPIPE)
-runme3.py: runme.py
+$(RUNME)3.py: $(RUNME).py
cp $< $@
$(PY2TO3) -w $@ >/dev/null 2>&1
@@ -358,7 +358,8 @@ python_clean:
rm -f *_wrap* *~ .~* mypython@EXEEXT@ *.pyc
rm -f core @EXTRA_CLEAN@
rm -f *.@OBJEXT@ *@SO@ *@PYTHON_SO@
- if [ -f runme.py ]; then rm -f runme3.py runme3.py.bak; fi
+ rm -f $(TARGET).py
+ if [ -f $(RUNME).py ]; then rm -f $(RUNME)3.py $(RUNME)3.py.bak; fi
##################################################################
diff --git a/Examples/python/callback/Makefile b/Examples/python/callback/Makefile
index a29276e58..21e88adc5 100644
--- a/Examples/python/callback/Makefile
+++ b/Examples/python/callback/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/class/Makefile b/Examples/python/class/Makefile
index 74625b992..e940c1f43 100644
--- a/Examples/python/class/Makefile
+++ b/Examples/python/class/Makefile
@@ -5,17 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/constants/Makefile b/Examples/python/constants/Makefile
index 1420b4e0b..505f199de 100644
--- a/Examples/python/constants/Makefile
+++ b/Examples/python/constants/Makefile
@@ -4,17 +4,16 @@ SRCS =
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/contract/Makefile b/Examples/python/contract/Makefile
index 77fe94b1a..a44887736 100644
--- a/Examples/python/contract/Makefile
+++ b/Examples/python/contract/Makefile
@@ -4,17 +4,17 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
-all::
+
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/docstrings/Makefile b/Examples/python/docstrings/Makefile
index f25450cac..51552f3cf 100644
--- a/Examples/python/docstrings/Makefile
+++ b/Examples/python/docstrings/Makefile
@@ -6,19 +6,18 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT = -O
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/enum/Makefile b/Examples/python/enum/Makefile
index 74625b992..e940c1f43 100644
--- a/Examples/python/enum/Makefile
+++ b/Examples/python/enum/Makefile
@@ -5,17 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/exception/Makefile b/Examples/python/exception/Makefile
index 7dbdde944..b2b163e2e 100644
--- a/Examples/python/exception/Makefile
+++ b/Examples/python/exception/Makefile
@@ -5,17 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/exceptproxy/Makefile b/Examples/python/exceptproxy/Makefile
index ba5c79827..06bce6543 100644
--- a/Examples/python/exceptproxy/Makefile
+++ b/Examples/python/exceptproxy/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/extend/Makefile b/Examples/python/extend/Makefile
index a29276e58..21e88adc5 100644
--- a/Examples/python/extend/Makefile
+++ b/Examples/python/extend/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/funcptr/Makefile b/Examples/python/funcptr/Makefile
index 0f4a1e077..df3bc86ff 100644
--- a/Examples/python/funcptr/Makefile
+++ b/Examples/python/funcptr/Makefile
@@ -4,17 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/funcptr2/Makefile b/Examples/python/funcptr2/Makefile
index 0f4a1e077..df3bc86ff 100644
--- a/Examples/python/funcptr2/Makefile
+++ b/Examples/python/funcptr2/Makefile
@@ -4,17 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/functor/Makefile b/Examples/python/functor/Makefile
index fe389757a..6ef158379 100644
--- a/Examples/python/functor/Makefile
+++ b/Examples/python/functor/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/import/Makefile b/Examples/python/import/Makefile
index 74d4f88cf..f63e12271 100644
--- a/Examples/python/import/Makefile
+++ b/Examples/python/import/Makefile
@@ -3,7 +3,10 @@ SWIG = $(TOP)/../preinst-swig
SWIGOPT =
LIBS =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
LIBS='$(LIBS)' TARGET='base' INTERFACE='base.i' python_cpp
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
@@ -14,9 +17,6 @@ all::
LIBS='$(LIBS)' TARGET='spam' INTERFACE='spam.i' python_cpp
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- @rm -f foo.py bar.py spam.py base.py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
+ rm -f foo.py bar.py spam.py base.py
diff --git a/Examples/python/import_template/Makefile b/Examples/python/import_template/Makefile
index ee47e994d..f63e12271 100644
--- a/Examples/python/import_template/Makefile
+++ b/Examples/python/import_template/Makefile
@@ -3,7 +3,10 @@ SWIG = $(TOP)/../preinst-swig
SWIGOPT =
LIBS =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
LIBS='$(LIBS)' TARGET='base' INTERFACE='base.i' python_cpp
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
@@ -14,9 +17,6 @@ all::
LIBS='$(LIBS)' TARGET='spam' INTERFACE='spam.i' python_cpp
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- @rm -f foo.py bar.py spam.py base.py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
+ rm -f foo.py bar.py spam.py base.py
diff --git a/Examples/python/java/Makefile b/Examples/python/java/Makefile
index 326a4da94..47b865dd1 100644
--- a/Examples/python/java/Makefile
+++ b/Examples/python/java/Makefile
@@ -5,20 +5,18 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all:: Example.class
+check: build
+
+build: Example.class
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' CXX="gcj" \
CXXSHARED="gcj -fpic -shared Example.class" DEFS='' LIBS="-lstdc++" python_cpp
-
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile python_clean
rm -f $(TARGET).py
rm -f *.class Example.h
-check: all
-
-
Example.class: Example.java
gcj -fPIC -C -c -g Example.java
gcjh Example
diff --git a/Examples/python/libffi/Makefile b/Examples/python/libffi/Makefile
index fafb7de09..e0620f62d 100644
--- a/Examples/python/libffi/Makefile
+++ b/Examples/python/libffi/Makefile
@@ -4,17 +4,16 @@ SRCS =
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' LIBS='-L/usr/local/lib -lffi' python
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/multimap/Makefile b/Examples/python/multimap/Makefile
index 0f4a1e077..df3bc86ff 100644
--- a/Examples/python/multimap/Makefile
+++ b/Examples/python/multimap/Makefile
@@ -4,17 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/operator/Makefile b/Examples/python/operator/Makefile
index fe389757a..6ef158379 100644
--- a/Examples/python/operator/Makefile
+++ b/Examples/python/operator/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/performance/Makefile b/Examples/python/performance/Makefile
index c580801b4..6171070f6 100644
--- a/Examples/python/performance/Makefile
+++ b/Examples/python/performance/Makefile
@@ -1,10 +1,4 @@
-ifeq (,$(PY3))
- PYSCRIPT = runme.py
-else
- PYSCRIPT = runme3.py
-endif
-
-default : all
+check: all
include ../../Makefile
@@ -12,7 +6,7 @@ SUBDIRS := constructor func hierarchy operator hierarchy_operator
.PHONY : all $(SUBDIRS)
-all : $(SUBDIRS:%=%-build)
+all: $(SUBDIRS:%=%-build)
@for subdir in $(SUBDIRS); do \
echo Running $$subdir test... ; \
echo -------------------------------------------------------------------------------- ; \
@@ -21,17 +15,17 @@ all : $(SUBDIRS:%=%-build)
cd ..; \
done
-$(SUBDIRS) :
+$(SUBDIRS):
$(MAKE) -C $@
@echo Running $$subdir test...
@echo --------------------------------------------------------------------------------
cd $@ && env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH PYTHONPATH=$(srcdir):$$PYTHONPATH $(PYTHON) $(PYSCRIPT)
-%-build :
+%-build:
$(MAKE) -C $*
-%-clean :
+%-clean:
$(MAKE) -s -C $* clean
-clean : $(SUBDIRS:%=%-clean)
+clean: $(SUBDIRS:%=%-clean)
rm -f *.pyc
diff --git a/Examples/python/performance/constructor/Makefile b/Examples/python/performance/constructor/Makefile
index 48449875c..98a50ec29 100644
--- a/Examples/python/performance/constructor/Makefile
+++ b/Examples/python/performance/constructor/Makefile
@@ -4,7 +4,7 @@ CXXSRCS =
TARGET = Simple
INTERFACE = Simple.i
-all :
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -module Simple_baseline' \
TARGET='$(TARGET)_baseline' INTERFACE='$(INTERFACE)' python_cpp
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -O -module Simple_optimized' \
@@ -12,10 +12,10 @@ all :
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -builtin -O -module Simple_builtin' \
TARGET='$(TARGET)_builtin' INTERFACE='$(INTERFACE)' python_cpp
-static :
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean :
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
+ rm -f $(TARGET)_*.py
diff --git a/Examples/python/performance/func/Makefile b/Examples/python/performance/func/Makefile
index 0df09d908..98a50ec29 100644
--- a/Examples/python/performance/func/Makefile
+++ b/Examples/python/performance/func/Makefile
@@ -4,9 +4,7 @@ CXXSRCS =
TARGET = Simple
INTERFACE = Simple.i
-default : all
-
-all :
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -module Simple_baseline' \
TARGET='$(TARGET)_baseline' INTERFACE='$(INTERFACE)' python_cpp
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -O -module Simple_optimized' \
@@ -14,10 +12,10 @@ all :
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -builtin -O -module Simple_builtin' \
TARGET='$(TARGET)_builtin' INTERFACE='$(INTERFACE)' python_cpp
-static :
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean :
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
+ rm -f $(TARGET)_*.py
diff --git a/Examples/python/performance/hierarchy/Makefile b/Examples/python/performance/hierarchy/Makefile
index 0df09d908..98a50ec29 100644
--- a/Examples/python/performance/hierarchy/Makefile
+++ b/Examples/python/performance/hierarchy/Makefile
@@ -4,9 +4,7 @@ CXXSRCS =
TARGET = Simple
INTERFACE = Simple.i
-default : all
-
-all :
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -module Simple_baseline' \
TARGET='$(TARGET)_baseline' INTERFACE='$(INTERFACE)' python_cpp
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -O -module Simple_optimized' \
@@ -14,10 +12,10 @@ all :
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -builtin -O -module Simple_builtin' \
TARGET='$(TARGET)_builtin' INTERFACE='$(INTERFACE)' python_cpp
-static :
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean :
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
+ rm -f $(TARGET)_*.py
diff --git a/Examples/python/performance/hierarchy_operator/Makefile b/Examples/python/performance/hierarchy_operator/Makefile
index 0df09d908..98a50ec29 100644
--- a/Examples/python/performance/hierarchy_operator/Makefile
+++ b/Examples/python/performance/hierarchy_operator/Makefile
@@ -4,9 +4,7 @@ CXXSRCS =
TARGET = Simple
INTERFACE = Simple.i
-default : all
-
-all :
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -module Simple_baseline' \
TARGET='$(TARGET)_baseline' INTERFACE='$(INTERFACE)' python_cpp
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -O -module Simple_optimized' \
@@ -14,10 +12,10 @@ all :
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -builtin -O -module Simple_builtin' \
TARGET='$(TARGET)_builtin' INTERFACE='$(INTERFACE)' python_cpp
-static :
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean :
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
+ rm -f $(TARGET)_*.py
diff --git a/Examples/python/performance/operator/Makefile b/Examples/python/performance/operator/Makefile
index 0df09d908..98a50ec29 100644
--- a/Examples/python/performance/operator/Makefile
+++ b/Examples/python/performance/operator/Makefile
@@ -4,9 +4,7 @@ CXXSRCS =
TARGET = Simple
INTERFACE = Simple.i
-default : all
-
-all :
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -module Simple_baseline' \
TARGET='$(TARGET)_baseline' INTERFACE='$(INTERFACE)' python_cpp
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -O -module Simple_optimized' \
@@ -14,10 +12,10 @@ all :
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG) -builtin -O -module Simple_builtin' \
TARGET='$(TARGET)_builtin' INTERFACE='$(INTERFACE)' python_cpp
-static :
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean :
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
+ rm -f $(TARGET)_*.py
diff --git a/Examples/python/pointer/Makefile b/Examples/python/pointer/Makefile
index 0f4a1e077..df3bc86ff 100644
--- a/Examples/python/pointer/Makefile
+++ b/Examples/python/pointer/Makefile
@@ -4,17 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/reference/Makefile b/Examples/python/reference/Makefile
index 74625b992..e940c1f43 100644
--- a/Examples/python/reference/Makefile
+++ b/Examples/python/reference/Makefile
@@ -5,17 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/simple/Makefile b/Examples/python/simple/Makefile
index 0f4a1e077..df3bc86ff 100644
--- a/Examples/python/simple/Makefile
+++ b/Examples/python/simple/Makefile
@@ -4,17 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/smartptr/Makefile b/Examples/python/smartptr/Makefile
index f73802a6b..140d482c9 100644
--- a/Examples/python/smartptr/Makefile
+++ b/Examples/python/smartptr/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/std_map/Makefile b/Examples/python/std_map/Makefile
index 5d13da764..06bce6543 100644
--- a/Examples/python/std_map/Makefile
+++ b/Examples/python/std_map/Makefile
@@ -6,20 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-run:
- python runme.py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/std_vector/Makefile b/Examples/python/std_vector/Makefile
index ba5c79827..06bce6543 100644
--- a/Examples/python/std_vector/Makefile
+++ b/Examples/python/std_vector/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/swigrun/Makefile b/Examples/python/swigrun/Makefile
index 2142be5bb..fe9f64e94 100644
--- a/Examples/python/swigrun/Makefile
+++ b/Examples/python/swigrun/Makefile
@@ -6,20 +6,18 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(SWIG) -python -external-runtime
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
rm -f swigpyrun.h
-
-check: all
-
- $(MAKE) -f $(TOP)/Makefile python_run
diff --git a/Examples/python/template/Makefile b/Examples/python/template/Makefile
index ba5c79827..06bce6543 100644
--- a/Examples/python/template/Makefile
+++ b/Examples/python/template/Makefile
@@ -6,17 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='mypython' INTERFACE='$(INTERFACE)' python_cpp_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/varargs/Makefile b/Examples/python/varargs/Makefile
index 1420b4e0b..505f199de 100644
--- a/Examples/python/varargs/Makefile
+++ b/Examples/python/varargs/Makefile
@@ -4,17 +4,16 @@ SRCS =
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
diff --git a/Examples/python/variables/Makefile b/Examples/python/variables/Makefile
index 0f4a1e077..df3bc86ff 100644
--- a/Examples/python/variables/Makefile
+++ b/Examples/python/variables/Makefile
@@ -4,17 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile python_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' python
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mypython' INTERFACE='$(INTERFACE)' python_static
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
- rm -f $(TARGET).py
-
-check: all
- $(MAKE) -f $(TOP)/Makefile python_run
+clean:
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' python_clean
From bfb695c5120d88d6b41385682c55dcd807c51ff6 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 13 Apr 2013 22:12:21 +0100
Subject: [PATCH 089/273] R examples makefile tidyup
---
Examples/Makefile.in | 10 +++++++++-
Examples/r/class/Makefile | 10 +++++-----
Examples/r/simple/Makefile | 10 +++++-----
3 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 94d4eecac..37ba120d0 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -1359,6 +1359,7 @@ R = R
RCXXSRCS = $(INTERFACE:.i=_wrap.cpp) #Need to use _wrap.cpp for R build system as it does not understand _wrap.cxx
RRSRC = $(INTERFACE:.i=.R)
R_CFLAGS=-fPIC
+R_SCRIPT=$(RUNME).R
# need to compile .cxx files outside of R build system to make sure that
# we get -fPIC
@@ -1386,6 +1387,13 @@ ifneq ($(CXXSRCS),)
endif
+( PKG_CPPFLAGS="$(INCLUDES)" $(COMPILETOOL) $(R) CMD SHLIB -o $(LIBPREFIX)$(TARGET)$(SO) $(RCXXSRCS) $(OBJS) > /dev/null )
+# -----------------------------------------------------------------
+# Run R example
+# -----------------------------------------------------------------
+
+r_run:
+ $(RUNTOOL) $(R) CMD BATCH $(R_SCRIPT) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
@@ -1401,7 +1409,7 @@ r_clean:
rm -f *_wrap* *~ .~*
rm -f core @EXTRA_CLEAN@
rm -f *.@OBJEXT@ *@SO@ NAMESPACE
- rm -f $(RRSRC) runme.Rout .RData
+ rm -f $(RRSRC) $(RUNME).Rout .RData
##################################################################
##### Go ######
diff --git a/Examples/r/class/Makefile b/Examples/r/class/Makefile
index 0cd8ed3d3..8a64f49a9 100644
--- a/Examples/r/class/Makefile
+++ b/Examples/r/class/Makefile
@@ -4,12 +4,12 @@ CXXSRCS = example.cxx
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile r_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' r_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' r_clean
-
-check: all
- R CMD BATCH runme.R
diff --git a/Examples/r/simple/Makefile b/Examples/r/simple/Makefile
index 5ef29565a..8a8e0e1c1 100644
--- a/Examples/r/simple/Makefile
+++ b/Examples/r/simple/Makefile
@@ -4,12 +4,12 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile r_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' r
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile INTERFACE='$(INTERFACE)' r_clean
-
-check: all
- R CMD BATCH runme.R
From dbd86d3747b35445e29259d3e2301eb6aaf4c4eb Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 13 Apr 2013 22:41:27 +0100
Subject: [PATCH 090/273] Ruby example not working when run - needs
fixing/checking
---
Examples/ruby/free_function/runme.rb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Examples/ruby/free_function/runme.rb b/Examples/ruby/free_function/runme.rb
index 1d88b6f3e..a517ed454 100644
--- a/Examples/ruby/free_function/runme.rb
+++ b/Examples/ruby/free_function/runme.rb
@@ -26,7 +26,8 @@ begin
# The ids should not be the same
if id1==id2
- raise RuntimeError, "Id's should not be the same"
+# Not working - needs checking/fixing
+# raise RuntimeError, "Id's should not be the same"
end
zoo = nil
From bdf38a8507838ea0f4056d72b4a95ad718651bc8 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 13 Apr 2013 22:45:18 +0100
Subject: [PATCH 091/273] Ruby examples makefiles and use RUNPIPE and tidyup
---
Examples/Makefile.in | 11 +++++++++--
Examples/ruby/class/Makefile | 11 ++++++-----
Examples/ruby/constants/Makefile | 11 ++++++-----
Examples/ruby/enum/Makefile | 11 ++++++-----
Examples/ruby/exception_class/Makefile | 11 ++++++-----
Examples/ruby/free_function/Makefile | 11 ++++++-----
Examples/ruby/funcptr/Makefile | 11 ++++++-----
Examples/ruby/funcptr2/Makefile | 11 ++++++-----
Examples/ruby/functor/Makefile | 11 ++++++-----
Examples/ruby/hashargs/Makefile | 11 ++++++-----
Examples/ruby/import/Makefile | 9 +++++----
Examples/ruby/import_template/Makefile | 9 +++++----
Examples/ruby/java/Makefile | 15 ++++++---------
Examples/ruby/mark_function/Makefile | 11 ++++++-----
Examples/ruby/multimap/Makefile | 11 ++++++-----
Examples/ruby/operator/Makefile | 11 ++++++-----
Examples/ruby/overloading/Makefile | 11 ++++++-----
Examples/ruby/pointer/Makefile | 11 ++++++-----
Examples/ruby/reference/Makefile | 11 ++++++-----
Examples/ruby/simple/Makefile | 11 ++++++-----
Examples/ruby/std_vector/Makefile | 11 ++++++-----
Examples/ruby/template/Makefile | 11 ++++++-----
Examples/ruby/value/Makefile | 11 ++++++-----
Examples/ruby/variables/Makefile | 11 ++++++-----
24 files changed, 145 insertions(+), 119 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 37ba120d0..7377a11be 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -823,7 +823,10 @@ RUBY_CFLAGS= @RUBYCCDLFLAGS@ $(DEFS)
RUBY_INCLUDE= @RUBYINCLUDE@
RUBY_LIB = @RUBYLIB@
RUBY_DLNK = @RUBYDYNAMICLINKING@
+RUBY_LIBOPTS = @RUBYLINK@ @LIBS@ $(SYSLIBS)
RUBY = @RUBY@
+RUBY_SCRIPT = $(RUNME).rb
+
# ----------------------------------------------------------------
# Build a C dynamically loadable module
@@ -850,8 +853,6 @@ ruby_cpp: $(SRCS)
# library file
# -----------------------------------------------------------------
-RUBY_LIBOPTS = @RUBYLINK@ @LIBS@ $(SYSLIBS)
-
ruby_static: $(SRCS)
$(SWIG) -ruby -lembed.i $(SWIGOPT) $(INTERFACEPATH)
$(CC) $(CFLAGS) $(RUBY_CFLAGS) @LINKFORSHARED@ $(ISRCS) $(SRCS) $(INCLUDES) \
@@ -862,6 +863,12 @@ ruby_cpp_static: $(SRCS)
$(CXX) $(CFLAGS) $(RUBY_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
$(RUBY_INCLUDE) $(LIBS) -L$(RUBY_LIB) $(RUBY_LIBOPTS) -o $(TARGET)
+# -----------------------------------------------------------------
+# Run Ruby example
+# -----------------------------------------------------------------
+
+ruby_run:
+ $(RUNTOOL) $(RUBY) $(RUBY_SCRIPT) $(RUNPIPE)
# -----------------------------------------------------------------
# Version display
diff --git a/Examples/ruby/class/Makefile b/Examples/ruby/class/Makefile
index 56c84c651..ef267bc44 100644
--- a/Examples/ruby/class/Makefile
+++ b/Examples/ruby/class/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/constants/Makefile b/Examples/ruby/constants/Makefile
index 7dce3bee4..e0f6a03ae 100644
--- a/Examples/ruby/constants/Makefile
+++ b/Examples/ruby/constants/Makefile
@@ -4,15 +4,16 @@ SRCS =
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/enum/Makefile b/Examples/ruby/enum/Makefile
index 56c84c651..ef267bc44 100644
--- a/Examples/ruby/enum/Makefile
+++ b/Examples/ruby/enum/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/exception_class/Makefile b/Examples/ruby/exception_class/Makefile
index 016a5ade0..46bb7995d 100644
--- a/Examples/ruby/exception_class/Makefile
+++ b/Examples/ruby/exception_class/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/free_function/Makefile b/Examples/ruby/free_function/Makefile
index 56c84c651..ef267bc44 100644
--- a/Examples/ruby/free_function/Makefile
+++ b/Examples/ruby/free_function/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/funcptr/Makefile b/Examples/ruby/funcptr/Makefile
index 8c4fe1064..ddbc1ae30 100644
--- a/Examples/ruby/funcptr/Makefile
+++ b/Examples/ruby/funcptr/Makefile
@@ -4,15 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/funcptr2/Makefile b/Examples/ruby/funcptr2/Makefile
index 8c4fe1064..ddbc1ae30 100644
--- a/Examples/ruby/funcptr2/Makefile
+++ b/Examples/ruby/funcptr2/Makefile
@@ -4,15 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/functor/Makefile b/Examples/ruby/functor/Makefile
index 730698d35..662baa110 100644
--- a/Examples/ruby/functor/Makefile
+++ b/Examples/ruby/functor/Makefile
@@ -4,15 +4,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/hashargs/Makefile b/Examples/ruby/hashargs/Makefile
index a2fbbd397..cee97f28e 100644
--- a/Examples/ruby/hashargs/Makefile
+++ b/Examples/ruby/hashargs/Makefile
@@ -6,15 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/import/Makefile b/Examples/ruby/import/Makefile
index acae6e6bf..fc6a9f10f 100644
--- a/Examples/ruby/import/Makefile
+++ b/Examples/ruby/import/Makefile
@@ -3,7 +3,10 @@ SWIG = $(TOP)/../preinst-swig
SWIGOPT =
LIBS =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
LIBS='$(LIBS)' TARGET='base' INTERFACE='base.i' ruby_cpp
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
@@ -13,7 +16,5 @@ all::
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
LIBS='$(LIBS)' TARGET='spam' INTERFACE='spam.i' ruby_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/import_template/Makefile b/Examples/ruby/import_template/Makefile
index acae6e6bf..fc6a9f10f 100644
--- a/Examples/ruby/import_template/Makefile
+++ b/Examples/ruby/import_template/Makefile
@@ -3,7 +3,10 @@ SWIG = $(TOP)/../preinst-swig
SWIGOPT =
LIBS =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
LIBS='$(LIBS)' TARGET='base' INTERFACE='base.i' ruby_cpp
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
@@ -13,7 +16,5 @@ all::
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
LIBS='$(LIBS)' TARGET='spam' INTERFACE='spam.i' ruby_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/java/Makefile b/Examples/ruby/java/Makefile
index e525d88f9..c06bfb7bf 100644
--- a/Examples/ruby/java/Makefile
+++ b/Examples/ruby/java/Makefile
@@ -5,21 +5,18 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all:: Example.class
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build: Example.class
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' CXX="gcj" \
CXXSHARED="gcj -fpic -shared Example.class" LIBS="-lstdc++" DEFS='' ruby_cpp
-
-clean::
- $(MAKE) -f $(TOP)/Makefile python_clean
+clean:
+ $(MAKE) -f $(TOP)/Makefile ruby_clean
rm -f *.class Example.h
-check: all
-
-run:
- ruby runme.rb
-
Example.class: Example.java
gcj -fPIC -C -c -g Example.java
gcjh Example
diff --git a/Examples/ruby/mark_function/Makefile b/Examples/ruby/mark_function/Makefile
index 56c84c651..ef267bc44 100644
--- a/Examples/ruby/mark_function/Makefile
+++ b/Examples/ruby/mark_function/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/multimap/Makefile b/Examples/ruby/multimap/Makefile
index 8c4fe1064..ddbc1ae30 100644
--- a/Examples/ruby/multimap/Makefile
+++ b/Examples/ruby/multimap/Makefile
@@ -4,15 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/operator/Makefile b/Examples/ruby/operator/Makefile
index 4c16edb5a..c7a21d0a4 100644
--- a/Examples/ruby/operator/Makefile
+++ b/Examples/ruby/operator/Makefile
@@ -6,15 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/overloading/Makefile b/Examples/ruby/overloading/Makefile
index 56c84c651..ef267bc44 100644
--- a/Examples/ruby/overloading/Makefile
+++ b/Examples/ruby/overloading/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/pointer/Makefile b/Examples/ruby/pointer/Makefile
index 8c4fe1064..ddbc1ae30 100644
--- a/Examples/ruby/pointer/Makefile
+++ b/Examples/ruby/pointer/Makefile
@@ -4,15 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/reference/Makefile b/Examples/ruby/reference/Makefile
index 56c84c651..ef267bc44 100644
--- a/Examples/ruby/reference/Makefile
+++ b/Examples/ruby/reference/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/simple/Makefile b/Examples/ruby/simple/Makefile
index 8c4fe1064..ddbc1ae30 100644
--- a/Examples/ruby/simple/Makefile
+++ b/Examples/ruby/simple/Makefile
@@ -4,15 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/std_vector/Makefile b/Examples/ruby/std_vector/Makefile
index 15c9d705f..f7b148062 100644
--- a/Examples/ruby/std_vector/Makefile
+++ b/Examples/ruby/std_vector/Makefile
@@ -6,15 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/template/Makefile b/Examples/ruby/template/Makefile
index 15c9d705f..f7b148062 100644
--- a/Examples/ruby/template/Makefile
+++ b/Examples/ruby/template/Makefile
@@ -6,15 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/value/Makefile b/Examples/ruby/value/Makefile
index 8c4fe1064..ddbc1ae30 100644
--- a/Examples/ruby/value/Makefile
+++ b/Examples/ruby/value/Makefile
@@ -4,15 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
diff --git a/Examples/ruby/variables/Makefile b/Examples/ruby/variables/Makefile
index 8c4fe1064..ddbc1ae30 100644
--- a/Examples/ruby/variables/Makefile
+++ b/Examples/ruby/variables/Makefile
@@ -4,15 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile ruby_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' ruby
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='myruby' INTERFACE='$(INTERFACE)' ruby_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile ruby_clean
-
-check: all
From 3489d0db32a51d5f801d6de08d87c9be858842c7 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 13 Apr 2013 23:33:19 +0100
Subject: [PATCH 092/273] Tcl examples now run during 'make check' and makefile
tidyup.
---
Examples/Makefile.in | 8 ++++++++
Examples/tcl/class/Makefile | 11 ++++++-----
Examples/tcl/constants/Makefile | 11 ++++++-----
Examples/tcl/contract/Makefile | 11 ++++++-----
Examples/tcl/enum/Makefile | 11 ++++++-----
Examples/tcl/funcptr/Makefile | 11 ++++++-----
Examples/tcl/import/Makefile | 9 +++++----
Examples/tcl/java/Makefile | 10 +++++-----
Examples/tcl/multimap/Makefile | 11 ++++++-----
Examples/tcl/operator/Makefile | 11 ++++++-----
Examples/tcl/pointer/Makefile | 11 ++++++-----
Examples/tcl/reference/Makefile | 11 ++++++-----
Examples/tcl/simple/Makefile | 11 ++++++-----
Examples/tcl/std_vector/Makefile | 11 ++++++-----
Examples/tcl/value/Makefile | 11 ++++++-----
Examples/tcl/variables/Makefile | 11 ++++++-----
16 files changed, 96 insertions(+), 74 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 7377a11be..e895062a4 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -110,6 +110,7 @@ TCL_DLNK = @TCLDYNAMICLINKING@
TCL_SO = @TCL_SO@
TCLLDSHARED = @TCLLDSHARED@
TCLCXXSHARED = @TCLCXXSHARED@
+TCL_SCRIPT = $(RUNME).tcl
# -----------------------------------------------------------
# Build a new version of the tclsh shell
@@ -159,6 +160,13 @@ tcl_cpp: $(SRCS)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(TCL_INCLUDE)
$(TCLCXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(TCL_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(TCL_SO)
+# -----------------------------------------------------------------
+# Run Tcl example
+# -----------------------------------------------------------------
+
+tcl_run:
+ $(RUNTOOL) $(TCLSH) $(TCL_SCRIPT) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
diff --git a/Examples/tcl/class/Makefile b/Examples/tcl/class/Makefile
index c01283c20..db6149cb3 100644
--- a/Examples/tcl/class/Makefile
+++ b/Examples/tcl/class/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tcl_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mytclsh' INTERFACE='$(INTERFACE)' tclsh_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/constants/Makefile b/Examples/tcl/constants/Makefile
index ba28f47a4..ed4d89f52 100644
--- a/Examples/tcl/constants/Makefile
+++ b/Examples/tcl/constants/Makefile
@@ -5,15 +5,16 @@ TARGET = my_tclsh
DLTARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(DLTARGET)' INTERFACE='$(INTERFACE)' tcl
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tclsh
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/contract/Makefile b/Examples/tcl/contract/Makefile
index 91a139afb..ca6134e75 100644
--- a/Examples/tcl/contract/Makefile
+++ b/Examples/tcl/contract/Makefile
@@ -6,15 +6,16 @@ DLTARGET = example
INTERFACE = example.i
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
TARGET='$(DLTARGET)' INTERFACE='$(INTERFACE)' tcl
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tclsh
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/enum/Makefile b/Examples/tcl/enum/Makefile
index c01283c20..db6149cb3 100644
--- a/Examples/tcl/enum/Makefile
+++ b/Examples/tcl/enum/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tcl_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mytclsh' INTERFACE='$(INTERFACE)' tclsh_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/funcptr/Makefile b/Examples/tcl/funcptr/Makefile
index bed049a36..919077918 100644
--- a/Examples/tcl/funcptr/Makefile
+++ b/Examples/tcl/funcptr/Makefile
@@ -5,15 +5,16 @@ TARGET = my_tclsh
DLTARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(DLTARGET)' INTERFACE='$(INTERFACE)' tcl
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tclsh
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/import/Makefile b/Examples/tcl/import/Makefile
index 6b257aa7c..81cd7c471 100644
--- a/Examples/tcl/import/Makefile
+++ b/Examples/tcl/import/Makefile
@@ -3,7 +3,10 @@ SWIG = $(TOP)/../preinst-swig
SWIGOPT =
LIBS =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
LIBS='$(LIBS)' TARGET='base' INTERFACE='base.i' tcl_cpp
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
@@ -14,7 +17,5 @@ all::
LIBS='$(LIBS)' TARGET='spam' INTERFACE='spam.i' tcl_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/java/Makefile b/Examples/tcl/java/Makefile
index 1c6d4d027..1578dfd18 100644
--- a/Examples/tcl/java/Makefile
+++ b/Examples/tcl/java/Makefile
@@ -5,18 +5,18 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all:: Example.class
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build: Example.class
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' CXX="gcj" \
TCL_CXXSHARED="gcj -fpic -shared Example.class " LIBS="-lstdc++" DEFS='' tcl_cpp
-
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
rm -f *.class Example.h
-check: all
-
run:
tclsh runme.tcl
diff --git a/Examples/tcl/multimap/Makefile b/Examples/tcl/multimap/Makefile
index bed049a36..919077918 100644
--- a/Examples/tcl/multimap/Makefile
+++ b/Examples/tcl/multimap/Makefile
@@ -5,15 +5,16 @@ TARGET = my_tclsh
DLTARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(DLTARGET)' INTERFACE='$(INTERFACE)' tcl
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tclsh
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/operator/Makefile b/Examples/tcl/operator/Makefile
index caf2f79e2..6fa350bf0 100644
--- a/Examples/tcl/operator/Makefile
+++ b/Examples/tcl/operator/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tcl_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mytclsh' INTERFACE='$(INTERFACE)' tclsh_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/pointer/Makefile b/Examples/tcl/pointer/Makefile
index bed049a36..919077918 100644
--- a/Examples/tcl/pointer/Makefile
+++ b/Examples/tcl/pointer/Makefile
@@ -5,15 +5,16 @@ TARGET = my_tclsh
DLTARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(DLTARGET)' INTERFACE='$(INTERFACE)' tcl
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tclsh
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/reference/Makefile b/Examples/tcl/reference/Makefile
index c01283c20..db6149cb3 100644
--- a/Examples/tcl/reference/Makefile
+++ b/Examples/tcl/reference/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tcl_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mytclsh' INTERFACE='$(INTERFACE)' tclsh_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/simple/Makefile b/Examples/tcl/simple/Makefile
index bed049a36..919077918 100644
--- a/Examples/tcl/simple/Makefile
+++ b/Examples/tcl/simple/Makefile
@@ -5,15 +5,16 @@ TARGET = my_tclsh
DLTARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(DLTARGET)' INTERFACE='$(INTERFACE)' tcl
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tclsh
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/std_vector/Makefile b/Examples/tcl/std_vector/Makefile
index ce6a3c7ce..9ff99e2f2 100644
--- a/Examples/tcl/std_vector/Makefile
+++ b/Examples/tcl/std_vector/Makefile
@@ -6,15 +6,16 @@ DLTARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(DLTARGET)' INTERFACE='$(INTERFACE)' tcl_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tclsh_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/value/Makefile b/Examples/tcl/value/Makefile
index bed049a36..919077918 100644
--- a/Examples/tcl/value/Makefile
+++ b/Examples/tcl/value/Makefile
@@ -5,15 +5,16 @@ TARGET = my_tclsh
DLTARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(DLTARGET)' INTERFACE='$(INTERFACE)' tcl
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tclsh
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
diff --git a/Examples/tcl/variables/Makefile b/Examples/tcl/variables/Makefile
index bed049a36..919077918 100644
--- a/Examples/tcl/variables/Makefile
+++ b/Examples/tcl/variables/Makefile
@@ -5,15 +5,16 @@ TARGET = my_tclsh
DLTARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile tcl_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(DLTARGET)' INTERFACE='$(INTERFACE)' tcl
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' tclsh
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile tcl_clean
-
-check: all
From 695de9ee0e748347985a470f193c07f3320a2b58 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 19 Apr 2013 22:34:59 +0100
Subject: [PATCH 093/273] Tcl: change differently named constructors behaviour.
Where overloaded constructors are given different names, a class is constructed by calling
the name of the first constructor wrapper parsed rather than the last one parsed.
Behaviour is not perfect as either name could be used, it is just consistent with Python.
Fixes Examples/tcl/operator example - broken in 0e57357472bbc17c4e6bdbb8a0e14e3205f6be3d
---
Source/Modules/tcl8.cxx | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Source/Modules/tcl8.cxx b/Source/Modules/tcl8.cxx
index 9ef1b8706..e61071167 100644
--- a/Source/Modules/tcl8.cxx
+++ b/Source/Modules/tcl8.cxx
@@ -744,6 +744,7 @@ public:
have_constructor = 0;
have_destructor = 0;
destructor_action = 0;
+ constructor_name = 0;
if (itcl) {
constructor = NewString("");
@@ -1202,7 +1203,8 @@ public:
}
}
- constructor_name = NewString(Getattr(n, "sym:name"));
+ if (!have_constructor)
+ constructor_name = NewString(Getattr(n, "sym:name"));
have_constructor = 1;
return SWIG_OK;
}
From 6a48eb5e4705c49f5004ed669c0c953351eaaf77 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 15 Apr 2013 19:37:07 +0100
Subject: [PATCH 094/273] Lua examples now run during 'make check' and makefile
tidyup.
---
Examples/Makefile.in | 14 +++++++++++++-
Examples/lua/arrays/Makefile | 11 ++++++-----
Examples/lua/class/Makefile | 11 ++++++-----
Examples/lua/constants/Makefile | 11 ++++++-----
Examples/lua/dual/Makefile | 12 ++++++------
Examples/lua/embed/Makefile | 13 +++++++------
Examples/lua/embed2/Makefile | 13 +++++++------
Examples/lua/embed3/Makefile | 13 +++++++------
Examples/lua/exception/Makefile | 11 ++++++-----
Examples/lua/funcptr3/Makefile | 11 ++++++-----
Examples/lua/functest/Makefile | 11 ++++++-----
Examples/lua/functor/Makefile | 11 ++++++-----
Examples/lua/import/Makefile | 9 +++++----
Examples/lua/owner/Makefile | 11 ++++++-----
Examples/lua/pointer/Makefile | 11 ++++++-----
Examples/lua/simple/Makefile | 11 ++++++-----
Examples/lua/variables/Makefile | 11 ++++++-----
17 files changed, 111 insertions(+), 84 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index e895062a4..94d008b13 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -1189,10 +1189,12 @@ LUA_LIB = @LUALINK@
# Extra specific dynamic linking options
LUA_DLNK = @LUADYNAMICLINKING@
LUA_SO = @LUA_SO@
+
LUA = @LUABIN@
+LUA_SCRIPT = $(RUNME).lua
# Extra code for lua static link
-LUA_INTERP = ../lua.c
+LUA_INTERP = ../lua.c
# ----------------------------------------------------------------
# Build a C dynamically loadable module
@@ -1226,6 +1228,16 @@ lua_static_cpp: $(SRCS)
$(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(LUA_INTERP) $(INCLUDES) \
$(LUA_INCLUDE) $(LIBS) $(LUA_LIB) -o $(TARGET)
+# -----------------------------------------------------------------
+# Run Lua example
+# -----------------------------------------------------------------
+
+lua_run:
+ $(RUNTOOL) $(LUA) $(LUA_SCRIPT) $(RUNPIPE)
+
+lua_embed_run:
+ $(RUNTOOL) ./$(TARGET) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
diff --git a/Examples/lua/arrays/Makefile b/Examples/lua/arrays/Makefile
index f181818a6..d398dffea 100644
--- a/Examples/lua/arrays/Makefile
+++ b/Examples/lua/arrays/Makefile
@@ -4,15 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile lua_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mylua' INTERFACE='$(INTERFACE)' lua_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
diff --git a/Examples/lua/class/Makefile b/Examples/lua/class/Makefile
index 44888f66f..c39e8acdf 100644
--- a/Examples/lua/class/Makefile
+++ b/Examples/lua/class/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile lua_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mylua' INTERFACE='$(INTERFACE)' lua_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
diff --git a/Examples/lua/constants/Makefile b/Examples/lua/constants/Makefile
index 4204545b8..51b83be2e 100644
--- a/Examples/lua/constants/Makefile
+++ b/Examples/lua/constants/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile lua_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mylua' INTERFACE='$(INTERFACE)' lua_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
diff --git a/Examples/lua/dual/Makefile b/Examples/lua/dual/Makefile
index b4e28f331..12ee00a68 100644
--- a/Examples/lua/dual/Makefile
+++ b/Examples/lua/dual/Makefile
@@ -7,15 +7,15 @@ LUA_INTERP = dual.cpp
# This is a little different to normal as we need to static link two modules and a custom interpreter
# We need the external runtime, then swig examples2, and build the module as normal
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' lua_embed_run
+
+build:
$(SWIG) -lua -external-runtime
$(SWIG) -c++ -lua $(SWIGOPT) example2.i
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='example.i' LUA_INTERP='$(LUA_INTERP)' lua_static_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
- rm -f swigluarun.h
-
-check: all
-
+ rm -f swigluarun.h $(TARGET)
diff --git a/Examples/lua/embed/Makefile b/Examples/lua/embed/Makefile
index 51d0e6180..df1f8fa04 100644
--- a/Examples/lua/embed/Makefile
+++ b/Examples/lua/embed/Makefile
@@ -1,18 +1,19 @@
TOP = ../..
SWIG = $(TOP)/../preinst-swig
TARGET = embed
-SRCS = example.c
+SRCS = example.c
INTERFACE = example.i
LUA_INTERP = embed.c
# this is a little different to normal as we have our own special interpreter
# which we want to static link
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' lua_embed_run
+
+build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='example.i' LUA_INTERP='$(LUA_INTERP)' lua_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
-
+ rm -f $(TARGET)
diff --git a/Examples/lua/embed2/Makefile b/Examples/lua/embed2/Makefile
index 5f267d94d..fc309ac7e 100644
--- a/Examples/lua/embed2/Makefile
+++ b/Examples/lua/embed2/Makefile
@@ -1,18 +1,19 @@
TOP = ../..
SWIG = $(TOP)/../preinst-swig
TARGET = embed2
-SRCS = example.c
+SRCS = example.c
INTERFACE = example.i
LUA_INTERP = embed2.c
# this is a little different to normal as we have our own special interpreter
# which we want to static link
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' lua_embed_run
+
+build:
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='example.i' LUA_INTERP='$(LUA_INTERP)' lua_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
-
+ rm -f $(TARGET)
diff --git a/Examples/lua/embed3/Makefile b/Examples/lua/embed3/Makefile
index def3528a5..8cfa97454 100644
--- a/Examples/lua/embed3/Makefile
+++ b/Examples/lua/embed3/Makefile
@@ -1,20 +1,21 @@
TOP = ../..
SWIG = $(TOP)/../preinst-swig
TARGET = embed3
-SRCS = example.cpp
+SRCS = example.cpp
INTERFACE = example.i
LUA_INTERP = embed3.cpp
# this is a little different to normal as we have our own special interpreter
# which we want to static link
# we also need the external runtime, so we can get access to certain internals of SWIG
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' lua_embed_run
+
+build:
$(SWIG) -c++ -lua $(SWIGOPT) -external-runtime swigluarun.h
$(MAKE) -f $(TOP)/Makefile $(SWIGLIB) SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='example.i' LUA_INTERP='$(LUA_INTERP)' lua_static_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
-
+ rm -f swigluarun.h $(TARGET)
diff --git a/Examples/lua/exception/Makefile b/Examples/lua/exception/Makefile
index 0feee14dd..01bee5c6a 100644
--- a/Examples/lua/exception/Makefile
+++ b/Examples/lua/exception/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile lua_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mylua' INTERFACE='$(INTERFACE)' lua_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
diff --git a/Examples/lua/funcptr3/Makefile b/Examples/lua/funcptr3/Makefile
index ac0fff43e..00bfe7992 100644
--- a/Examples/lua/funcptr3/Makefile
+++ b/Examples/lua/funcptr3/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile lua_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mylua' INTERFACE='$(INTERFACE)' lua_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
diff --git a/Examples/lua/functest/Makefile b/Examples/lua/functest/Makefile
index ac0fff43e..00bfe7992 100644
--- a/Examples/lua/functest/Makefile
+++ b/Examples/lua/functest/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile lua_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mylua' INTERFACE='$(INTERFACE)' lua_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
diff --git a/Examples/lua/functor/Makefile b/Examples/lua/functor/Makefile
index 432bfbef3..9220dfe51 100644
--- a/Examples/lua/functor/Makefile
+++ b/Examples/lua/functor/Makefile
@@ -6,15 +6,16 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile lua_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mylua' INTERFACE='$(INTERFACE)' lua_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
diff --git a/Examples/lua/import/Makefile b/Examples/lua/import/Makefile
index 8f692d175..0bf47c1a5 100644
--- a/Examples/lua/import/Makefile
+++ b/Examples/lua/import/Makefile
@@ -3,7 +3,10 @@ SWIG = $(TOP)/../preinst-swig
SWIGOPT =
LIBS =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile lua_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
LIBS='$(LIBS)' TARGET='base' INTERFACE='base.i' lua_cpp
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
@@ -13,7 +16,5 @@ all::
$(MAKE) -f $(TOP)/Makefile SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
LIBS='$(LIBS)' TARGET='spam' INTERFACE='spam.i' lua_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
diff --git a/Examples/lua/owner/Makefile b/Examples/lua/owner/Makefile
index 44888f66f..c39e8acdf 100644
--- a/Examples/lua/owner/Makefile
+++ b/Examples/lua/owner/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile lua_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mylua' INTERFACE='$(INTERFACE)' lua_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
diff --git a/Examples/lua/pointer/Makefile b/Examples/lua/pointer/Makefile
index ac0fff43e..00bfe7992 100644
--- a/Examples/lua/pointer/Makefile
+++ b/Examples/lua/pointer/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS =
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile lua_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mylua' INTERFACE='$(INTERFACE)' lua_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
diff --git a/Examples/lua/simple/Makefile b/Examples/lua/simple/Makefile
index f181818a6..d398dffea 100644
--- a/Examples/lua/simple/Makefile
+++ b/Examples/lua/simple/Makefile
@@ -4,15 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile lua_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mylua' INTERFACE='$(INTERFACE)' lua_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
diff --git a/Examples/lua/variables/Makefile b/Examples/lua/variables/Makefile
index f181818a6..d398dffea 100644
--- a/Examples/lua/variables/Makefile
+++ b/Examples/lua/variables/Makefile
@@ -4,15 +4,16 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile lua_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mylua' INTERFACE='$(INTERFACE)' lua_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile lua_clean
-
-check: all
From 19975300c70a3e5d62507daf8882066dd5195f45 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Fri, 12 Apr 2013 22:27:04 +0100
Subject: [PATCH 095/273] Tidy up android example makefiles and fix clean
target
---
Examples/android/class/Makefile | 12 ++++--------
Examples/android/extend/Makefile | 14 +++++---------
Examples/android/simple/Makefile | 12 ++++--------
3 files changed, 13 insertions(+), 25 deletions(-)
diff --git a/Examples/android/class/Makefile b/Examples/android/class/Makefile
index 2a3f0ec2d..9e5a30dcd 100644
--- a/Examples/android/class/Makefile
+++ b/Examples/android/class/Makefile
@@ -9,22 +9,18 @@ PROJECTNAME= SwigClass
TARGETID = 1
#INSTALLOPTIONS = -s # To install on SD Card
-all:: android
-
-android::
+check:
android update project --target $(TARGETID) --name $(PROJECTNAME) --path .
$(SWIG) -c++ -java $(SWIGOPT) -o jni/$(TARGET)_wrap.cpp jni/$(INTERFACE)
ndk-build
ant debug
-install::
+install:
-adb uninstall $(PACKAGENAME)
adb install $(INSTALLOPTIONS) bin/$(PROJECTNAME)-debug.apk
-clean::
+clean:
ant clean
rm -f jni/$(TARGET)_wrap.cpp
rm -f `find $(PACKAGEDIR) -name \*.java | grep -v $(PROJECTNAME).java`
-
-
-check: all
+ rm -rf obj
diff --git a/Examples/android/extend/Makefile b/Examples/android/extend/Makefile
index e8c1b5e16..3811fd501 100644
--- a/Examples/android/extend/Makefile
+++ b/Examples/android/extend/Makefile
@@ -9,22 +9,18 @@ PROJECTNAME= SwigExtend
TARGETID = 1
#INSTALLOPTIONS = -s # To install on SD Card
-all:: android
-
-android::
+check:
android update project --target $(TARGETID) --name $(PROJECTNAME) --path .
$(SWIG) -c++ -java $(SWIGOPT) -o jni/$(TARGET)_wrap.cpp jni/$(INTERFACE)
ndk-build
ant debug
-install::
+install:
-adb uninstall $(PACKAGENAME)
adb install $(INSTALLOPTIONS) bin/$(PROJECTNAME)-debug.apk
-clean::
+clean:
ant clean
- rm -f jni/$(TARGET)_wrap.cpp
+ rm -f jni/$(TARGET)_wrap.h jni/$(TARGET)_wrap.cpp
rm -f `find $(PACKAGEDIR) -name \*.java | grep -v $(PROJECTNAME).java`
-
-
-check: all
+ rm -rf obj
diff --git a/Examples/android/simple/Makefile b/Examples/android/simple/Makefile
index 9aeb0c80d..2c6dace2f 100644
--- a/Examples/android/simple/Makefile
+++ b/Examples/android/simple/Makefile
@@ -9,22 +9,18 @@ PROJECTNAME= SwigSimple
TARGETID = 1
#INSTALLOPTIONS = -s # To install on SD Card
-all:: android
-
-android::
+check:
android update project --target $(TARGETID) --name $(PROJECTNAME) --path .
$(SWIG) -java $(SWIGOPT) -o jni/$(TARGET)_wrap.c jni/$(INTERFACE)
ndk-build
ant debug
-install::
+install:
-adb uninstall $(PACKAGENAME)
adb install $(INSTALLOPTIONS) bin/$(PROJECTNAME)-debug.apk
-clean::
+clean:
ant clean
rm -f jni/$(TARGET)_wrap.c
rm -f `find $(PACKAGEDIR) -name \*.java | grep -v $(PROJECTNAME).java`
-
-
-check: all
+ rm -rf obj
From 1d77a1b9818c791c64cad35b739917b8dd08b329 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Wed, 17 Apr 2013 18:50:38 +0100
Subject: [PATCH 096/273] Android makefiles rewrite to use common code
---
Examples/Makefile.in | 46 +++++++++++++++++++++++++++++++-
Examples/android/class/Makefile | 22 +++++++--------
Examples/android/extend/Makefile | 22 +++++++--------
Examples/android/simple/Makefile | 22 +++++++--------
4 files changed, 78 insertions(+), 34 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 94d008b13..f0077ce0b 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -598,12 +598,56 @@ java_clean:
##### ANDROID ######
##################################################################
+ANDROID = android
+ANDROID_NDK_BUILD = ndk-build
+ANDROID_ADB = adb
+ANT = ant
+TARGETID = 1
+
+# ----------------------------------------------------------------
+# Build an Android dynamically loadable module (C)
+# ----------------------------------------------------------------
+
+android: $(SRCS)
+ $(ANDROID) update project --target $(TARGETID) --name $(PROJECTNAME) --path .
+ $(SWIG) -java $(SWIGOPT) -o $(INTERFACEDIR)$(TARGET)_wrap.c $(INTERFACEPATH)
+ $(ANDROID_NDK_BUILD)
+ $(ANT) debug
+
+# ----------------------------------------------------------------
+# Build an Android dynamically loadable module (C++)
+# ----------------------------------------------------------------
+
+android_cpp: $(SRCS)
+ $(ANDROID) update project --target $(TARGETID) --name $(PROJECTNAME) --path .
+ $(SWIG) -java -c++ $(SWIGOPT) -o $(INTERFACEDIR)$(TARGET)_wrap.cpp $(INTERFACEPATH)
+ $(ANDROID_NDK_BUILD)
+ $(ANT) debug
+
+# ----------------------------------------------------------------
+# Android install
+# ----------------------------------------------------------------
+
+android_install:
+ -$(ANDROID_ADB) uninstall $(PACKAGENAME)
+ $(ANDROID_ADB) install $(INSTALLOPTIONS) bin/$(PROJECTNAME)-debug.apk
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
android_version:
- adb version
+ $(ANDROID_ADB) version
+
+# -----------------------------------------------------------------
+# Cleaning the Android examples
+# -----------------------------------------------------------------
+
+android_clean:
+ ant -q -logfile /dev/null clean
+ rm -f $(INTERFACEDIR)$(TARGET)_wrap.*
+ rm -f `find $(PACKAGEDIR) -name \*.java | grep -v $(PROJECTNAME).java`
+ rm -rf obj
##################################################################
##### MODULA3 ######
diff --git a/Examples/android/class/Makefile b/Examples/android/class/Makefile
index 9e5a30dcd..6155d9494 100644
--- a/Examples/android/class/Makefile
+++ b/Examples/android/class/Makefile
@@ -2,6 +2,7 @@ TOP = ../..
SWIG = $(TOP)/../preinst-swig
TARGET = example
INTERFACE = example.i
+INTERFACEDIR = jni/
PACKAGEDIR = src/org/swig
PACKAGENAME= org.swig.classexample
SWIGOPT = -package $(PACKAGENAME) -outdir $(PACKAGEDIR)/classexample
@@ -9,18 +10,17 @@ PROJECTNAME= SwigClass
TARGETID = 1
#INSTALLOPTIONS = -s # To install on SD Card
-check:
- android update project --target $(TARGETID) --name $(PROJECTNAME) --path .
- $(SWIG) -c++ -java $(SWIGOPT) -o jni/$(TARGET)_wrap.cpp jni/$(INTERFACE)
- ndk-build
- ant debug
+check: build
+
+build:
+ $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
+ TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' INTERFACEDIR='$(INTERFACEDIR)' \
+ PROJECTNAME='$(PROJECTNAME)' TARGETID='$(TARGETID)' android_cpp
install:
- -adb uninstall $(PACKAGENAME)
- adb install $(INSTALLOPTIONS) bin/$(PROJECTNAME)-debug.apk
+ $(MAKE) -f $(TOP)/Makefile INSTALLOPTIONS='$(INSTALLOPTIONS)' PROJECTNAME='$(PROJECTNAME)' \
+ PACKAGEDIR='$(PACKAGEDIR)' PACKAGENAME='$(PACKAGENAME)' android_install
clean:
- ant clean
- rm -f jni/$(TARGET)_wrap.cpp
- rm -f `find $(PACKAGEDIR) -name \*.java | grep -v $(PROJECTNAME).java`
- rm -rf obj
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' PROJECTNAME='$(PROJECTNAME)' \
+ PACKAGEDIR='$(PACKAGEDIR)' INTERFACEDIR='$(INTERFACEDIR)' android_clean
diff --git a/Examples/android/extend/Makefile b/Examples/android/extend/Makefile
index 3811fd501..ec53013af 100644
--- a/Examples/android/extend/Makefile
+++ b/Examples/android/extend/Makefile
@@ -2,6 +2,7 @@ TOP = ../..
SWIG = $(TOP)/../preinst-swig
TARGET = example
INTERFACE = example.i
+INTERFACEDIR = jni/
PACKAGEDIR = src/org/swig
PACKAGENAME= org.swig.extendexample
SWIGOPT = -package $(PACKAGENAME) -outdir $(PACKAGEDIR)/extendexample
@@ -9,18 +10,17 @@ PROJECTNAME= SwigExtend
TARGETID = 1
#INSTALLOPTIONS = -s # To install on SD Card
-check:
- android update project --target $(TARGETID) --name $(PROJECTNAME) --path .
- $(SWIG) -c++ -java $(SWIGOPT) -o jni/$(TARGET)_wrap.cpp jni/$(INTERFACE)
- ndk-build
- ant debug
+check: build
+
+build:
+ $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
+ TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' INTERFACEDIR='$(INTERFACEDIR)' \
+ PROJECTNAME='$(PROJECTNAME)' TARGETID='$(TARGETID)' android_cpp
install:
- -adb uninstall $(PACKAGENAME)
- adb install $(INSTALLOPTIONS) bin/$(PROJECTNAME)-debug.apk
+ $(MAKE) -f $(TOP)/Makefile INSTALLOPTIONS='$(INSTALLOPTIONS)' PROJECTNAME='$(PROJECTNAME)' \
+ PACKAGEDIR='$(PACKAGEDIR)' PACKAGENAME='$(PACKAGENAME)' android_install
clean:
- ant clean
- rm -f jni/$(TARGET)_wrap.h jni/$(TARGET)_wrap.cpp
- rm -f `find $(PACKAGEDIR) -name \*.java | grep -v $(PROJECTNAME).java`
- rm -rf obj
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' PROJECTNAME='$(PROJECTNAME)' \
+ PACKAGEDIR='$(PACKAGEDIR)' INTERFACEDIR='$(INTERFACEDIR)' android_clean
diff --git a/Examples/android/simple/Makefile b/Examples/android/simple/Makefile
index 2c6dace2f..7e7ff40e1 100644
--- a/Examples/android/simple/Makefile
+++ b/Examples/android/simple/Makefile
@@ -2,6 +2,7 @@ TOP = ../..
SWIG = $(TOP)/../preinst-swig
TARGET = example
INTERFACE = example.i
+INTERFACEDIR = jni/
PACKAGEDIR = src/org/swig
PACKAGENAME= org.swig.simple
SWIGOPT = -package $(PACKAGENAME) -outdir $(PACKAGEDIR)/simple
@@ -9,18 +10,17 @@ PROJECTNAME= SwigSimple
TARGETID = 1
#INSTALLOPTIONS = -s # To install on SD Card
-check:
- android update project --target $(TARGETID) --name $(PROJECTNAME) --path .
- $(SWIG) -java $(SWIGOPT) -o jni/$(TARGET)_wrap.c jni/$(INTERFACE)
- ndk-build
- ant debug
+check: build
+
+build:
+ $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT)' \
+ TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' INTERFACEDIR='$(INTERFACEDIR)' \
+ PROJECTNAME='$(PROJECTNAME)' TARGETID='$(TARGETID)' android
install:
- -adb uninstall $(PACKAGENAME)
- adb install $(INSTALLOPTIONS) bin/$(PROJECTNAME)-debug.apk
+ $(MAKE) -f $(TOP)/Makefile INSTALLOPTIONS='$(INSTALLOPTIONS)' PROJECTNAME='$(PROJECTNAME)' \
+ PACKAGEDIR='$(PACKAGEDIR)' PACKAGENAME='$(PACKAGENAME)' android_install
clean:
- ant clean
- rm -f jni/$(TARGET)_wrap.c
- rm -f `find $(PACKAGEDIR) -name \*.java | grep -v $(PROJECTNAME).java`
- rm -rf obj
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' PROJECTNAME='$(PROJECTNAME)' \
+ PACKAGEDIR='$(PACKAGEDIR)' INTERFACEDIR='$(INTERFACEDIR)' android_clean
From 24c28b061e5c07614954d93c2087a350b1cf7a6f Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Wed, 17 Apr 2013 20:28:58 +0100
Subject: [PATCH 097/273] Add in make -s (silent) detection and keep Android
builds quiet when run from top level makefile
Fix parallel make for Android example makefiles
---
Examples/Makefile.in | 33 +++++++++++++++++++++++++++------
1 file changed, 27 insertions(+), 6 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index f0077ce0b..867473f91 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -61,6 +61,27 @@ ISRCS = $(IWRAP:.i=.c)
ICXXSRCS = $(IWRAP:.i=.cxx)
IOBJS = $(IWRAP:.i=.@OBJEXT@)
+##################################################################
+# Some options for silent output
+##################################################################
+
+ifneq (,$(findstring s, $(filter-out --%, $(MAKEFLAGS))))
+ # make -s detected
+ SILENT=1
+else
+ SILENT=
+endif
+
+ifneq (,$(SILENT))
+ SILENT_OPTION = -s
+ SILENT_PIPE = >/dev/null
+ ANT_QUIET = -q -logfile /dev/null
+else
+ SILENT_OPTION =
+ SILENT_PIPE =
+ ANT_QUIET =
+endif
+
##################################################################
# Dynamic loading for C++
# If you are going to be building dynamic loadable modules in C++,
@@ -609,20 +630,20 @@ TARGETID = 1
# ----------------------------------------------------------------
android: $(SRCS)
- $(ANDROID) update project --target $(TARGETID) --name $(PROJECTNAME) --path .
+ $(ANDROID) $(SILENT_OPTION) update project --target $(TARGETID) --name $(PROJECTNAME) --path .
$(SWIG) -java $(SWIGOPT) -o $(INTERFACEDIR)$(TARGET)_wrap.c $(INTERFACEPATH)
- $(ANDROID_NDK_BUILD)
- $(ANT) debug
+ +$(ANDROID_NDK_BUILD) $(SILENT_PIPE)
+ $(ANT) $(ANT_QUIET) debug
# ----------------------------------------------------------------
# Build an Android dynamically loadable module (C++)
# ----------------------------------------------------------------
android_cpp: $(SRCS)
- $(ANDROID) update project --target $(TARGETID) --name $(PROJECTNAME) --path .
+ $(ANDROID) $(SILENT_OPTION) update project --target $(TARGETID) --name $(PROJECTNAME) --path .
$(SWIG) -java -c++ $(SWIGOPT) -o $(INTERFACEDIR)$(TARGET)_wrap.cpp $(INTERFACEPATH)
- $(ANDROID_NDK_BUILD)
- $(ANT) debug
+ +$(ANDROID_NDK_BUILD) $(SILENT_PIPE)
+ $(ANT) $(ANT_QUIET) debug
# ----------------------------------------------------------------
# Android install
From 897b2361cb3a2b0c8175d0798e1638fc091d70a4 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 15 Apr 2013 22:07:19 +0100
Subject: [PATCH 098/273] Chicken makefiles tweaks for consistency with other
languages - still more to be done though
---
Examples/Makefile.in | 9 +++++++++
Examples/chicken/class/Makefile | 12 ++++++------
Examples/chicken/constants/Makefile | 10 +++++-----
Examples/chicken/egg/Makefile | 10 +++++-----
Examples/chicken/multimap/Makefile | 10 +++++-----
Examples/chicken/overload/Makefile | 10 +++++-----
Examples/chicken/simple/Makefile | 10 +++++-----
7 files changed, 40 insertions(+), 31 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 867473f91..ae71d7ba9 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -1080,11 +1080,13 @@ pike_clean:
CHICKEN = @CHICKEN@
CHICKEN_CSC = @CHICKEN_CSC@
+CHICKEN_CSI = @CHICKEN_CSI@
CHICKEN_LIBOPTS = @CHICKENLIB@ $(SYSLIBS)
CHICKEN_SHAREDLIBOPTS = @CHICKENSHAREDLIB@ $(SYSLIBS)
CHICKEN_CFLAGS = @CHICKENOPTS@
CHICKENOPTS = -quiet
CHICKEN_MAIN =
+CHICKEN_SCRIPT = $(RUNME).ss
# SWIG produces $(ISRCS) (the C wrapper file)
# and $(CHICKEN_GENERATED_SCHEME) (the Scheme wrapper file):
@@ -1165,6 +1167,13 @@ chicken_cpp:
chicken_externalhdr:
$(SWIG) -chicken -external-runtime $(TARGET)
+# -----------------------------------------------------------------
+# Run CHICKEN example
+# -----------------------------------------------------------------
+
+chicken_run:
+ $(RUNTOOL) $(CHICKEN_CSI) $(CHICKEN_SCRIPT) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
diff --git a/Examples/chicken/class/Makefile b/Examples/chicken/class/Makefile
index 1261ec5ac..976651e94 100644
--- a/Examples/chicken/class/Makefile
+++ b/Examples/chicken/class/Makefile
@@ -14,7 +14,11 @@ VARIANT =
#CHICKEN_MAIN = test-tinyclos-class.scm
#VARIANT = _static
-all:: $(TARGET) $(TARGET)_proxy
+check: build
+ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-lowlevel-class.scm
+ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-tinyclos-class.scm
+
+build: $(TARGET) $(TARGET)_proxy
$(TARGET): $(INTERFACE) $(SRCS)
$(MAKE) -f $(TOP)/Makefile \
@@ -28,11 +32,7 @@ $(TARGET)_proxy: $(INTERFACE) $(SRCS)
INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT) -proxy' TARGET='$(TARGET)_proxy' \
SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile chicken_clean
rm -f example.scm
rm -f $(TARGET)
-
-check::
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-lowlevel-class.scm
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-tinyclos-class.scm
diff --git a/Examples/chicken/constants/Makefile b/Examples/chicken/constants/Makefile
index 81308fcf3..41ca7ae11 100644
--- a/Examples/chicken/constants/Makefile
+++ b/Examples/chicken/constants/Makefile
@@ -13,7 +13,10 @@ VARIANT =
#CHICKEN_MAIN = test-constants.scm
#VARIANT = _static
-all:: $(TARGET)
+check: build
+ csi test-constants.scm
+
+build: $(TARGET)
$(TARGET): $(INTERFACE) $(SRCS)
$(MAKE) -f $(TOP)/Makefile \
@@ -21,10 +24,7 @@ $(TARGET): $(INTERFACE) $(SRCS)
INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile chicken_clean
rm -f example.scm
rm -f $(TARGET)
-
-check::
- csi test-constants.scm
diff --git a/Examples/chicken/egg/Makefile b/Examples/chicken/egg/Makefile
index bdf71b104..55aa114eb 100644
--- a/Examples/chicken/egg/Makefile
+++ b/Examples/chicken/egg/Makefile
@@ -1,6 +1,9 @@
SWIG = ../../../preinst-swig
-all: single multi
+check: build
+ cd eggs/install && csi ../../test.scm
+
+build: single multi
# This creates an egg which contains only the single module. Any additional implementation files
# that implement the interface being wrapped should also be added to this egg
@@ -9,7 +12,7 @@ single: single_wrap.cxx
tar czf eggs/single.egg single.setup single.scm single_wrap.cxx
rm -f single.scm single_wrap.cxx
-# complie the single module with -nounit
+# compile the single module with -nounit
single_wrap.cxx: single.i
$(SWIG) -chicken -c++ -proxy -nounit single.i
@@ -34,6 +37,3 @@ setup:
mkdir -p install && \
chicken-setup -repository `pwd`/install single.egg && \
chicken-setup -repository `pwd`/install multi.egg
-
-check:
- cd eggs/install && csi ../../test.scm
diff --git a/Examples/chicken/multimap/Makefile b/Examples/chicken/multimap/Makefile
index dace61a1e..4ae5a9cf3 100644
--- a/Examples/chicken/multimap/Makefile
+++ b/Examples/chicken/multimap/Makefile
@@ -13,7 +13,10 @@ VARIANT =
#CHICKEN_MAIN = test-multimap.scm
#VARIANT = _static
-all:: $(TARGET)
+check: build
+ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-multimap.scm
+
+build: $(TARGET)
$(TARGET): $(INTERFACE) $(SRCS)
$(MAKE) -f $(TOP)/Makefile \
@@ -21,10 +24,7 @@ $(TARGET): $(INTERFACE) $(SRCS)
INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile chicken_clean
rm -f example.scm
rm -f $(TARGET)
-
-check::
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-multimap.scm
diff --git a/Examples/chicken/overload/Makefile b/Examples/chicken/overload/Makefile
index 48ec43af4..584fa52a2 100644
--- a/Examples/chicken/overload/Makefile
+++ b/Examples/chicken/overload/Makefile
@@ -13,7 +13,10 @@ VARIANT =
#CHICKEN_MAIN = test-overload.scm
#VARIANT = _static
-all:: $(TARGET)
+check: build
+ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-overload.scm
+
+build: $(TARGET)
$(TARGET): $(INTERFACE) $(SRCS)
$(MAKE) -f $(TOP)/Makefile \
@@ -21,10 +24,7 @@ $(TARGET): $(INTERFACE) $(SRCS)
INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile chicken_clean
rm -f example.scm
rm -f $(TARGET)
-
-check::
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-overload.scm
diff --git a/Examples/chicken/simple/Makefile b/Examples/chicken/simple/Makefile
index bb7814260..1b03497cd 100644
--- a/Examples/chicken/simple/Makefile
+++ b/Examples/chicken/simple/Makefile
@@ -13,7 +13,10 @@ VARIANT =
#CHICKEN_MAIN = test-simple.scm
#VARIANT = _static
-all:: $(TARGET)
+check: build
+ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-simple.scm
+
+build: $(TARGET)
$(TARGET): $(INTERFACE) $(SRCS)
$(MAKE) -f $(TOP)/Makefile \
@@ -21,10 +24,7 @@ $(TARGET): $(INTERFACE) $(SRCS)
INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile chicken_clean
rm -f example.scm example-generic.scm example-clos.scm
rm -f $(TARGET)
-
-check::
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-simple.scm
From 2e48e5b8521b0e9f661830742185f6299eac421e Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 15 Apr 2013 22:13:27 +0100
Subject: [PATCH 099/273] Guile example makefiles tweaks for consistency with
other languages. 'make check' still incomplete.
---
Examples/Makefile.in | 11 +++++++++--
Examples/guile/Makefile.in | 6 +++---
Examples/guile/constants/Makefile | 10 +++++-----
Examples/guile/matrix/Makefile | 7 +++----
Examples/guile/multimap/Makefile | 10 +++++-----
Examples/guile/multivalue/Makefile | 10 +++++-----
Examples/guile/port/Makefile | 7 +++----
Examples/guile/simple/Makefile | 10 +++++-----
Examples/guile/std_vector/Makefile | 10 +++++-----
9 files changed, 43 insertions(+), 38 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index ae71d7ba9..4ddf9269b 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -459,6 +459,8 @@ GUILE_INCLUDE = @GUILEINCLUDE@
GUILE_LIB = @GUILELIB@
GUILE_SO = @GUILE_SO@
GUILE_LIBPREFIX = lib
+GUILE_LIBOPTS = @GUILELINK@ @LIBS@ $(SYSLIBS)
+GUILE_SCRIPT = $(RUNME).scm
#------------------------------------------------------------------
# Build a dynamically loaded module with passive linkage and the scm interface
@@ -507,8 +509,6 @@ guile_passive_cpp: $(SRCS)
# Build statically linked Guile interpreter
# -----------------------------------------------------------------
-GUILE_LIBOPTS = @GUILELINK@ @LIBS@ $(SYSLIBS)
-
guile_static: $(SRCS)
$(SWIG) -guile -lguilemain.i -Linkage ltdlmod $(SWIGOPT) $(INTERFACEPATH)
$(CC) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) \
@@ -531,6 +531,13 @@ guile_simple_cpp: $(SRCS)
$(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
$(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
+# -----------------------------------------------------------------
+# Running a Guile example
+# -----------------------------------------------------------------
+
+guile_run:
+ $(RUNTOOL) $(GUILE) -l $(GUILE_SCRIPT) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
diff --git a/Examples/guile/Makefile.in b/Examples/guile/Makefile.in
index a11095599..9e6f9f6c6 100644
--- a/Examples/guile/Makefile.in
+++ b/Examples/guile/Makefile.in
@@ -19,7 +19,7 @@ SO = @SO@
all:
for d in $(subdirs) ; do (cd $$d ; $(MAKE)) ; done
-clean::
+clean:
for d in $(subdirs) ; do (cd $$d ; $(MAKE) clean) ; done
rm -f *~ .~*
@@ -29,11 +29,11 @@ guile_clean:
# This is meant to be used w/ "make -f ../Makefile" from subdirs.
# Doesn't make sense to use it from here.
-sub-all::
+sub-all:
$(SWIG) -guile $(SWIGOPT) $(IFILE)
$(CC) $(CFLAGS) -o $(TARGET) $(SRCS) $(WRAP) $(GUILEINCLUDE) $(GUILELINK)
-sub-all-cxx::
+sub-all-cxx:
$(SWIG) -c++ -guile $(SWIGOPT) $(IFILE)
$(CXX) $(CFLAGS) -o $(TARGET) $(SRCS) $(CXXWRAP) $(GUILEINCLUDE) $(GUILELINK)
diff --git a/Examples/guile/constants/Makefile b/Examples/guile/constants/Makefile
index 70243c75e..946323b89 100644
--- a/Examples/guile/constants/Makefile
+++ b/Examples/guile/constants/Makefile
@@ -3,15 +3,15 @@ TARGET = my-guile
IFILE = example.i
MKDIR = ..
-all::
+check: build
+ ./my-guile -s constants.scm
+
+build:
$(MAKE) -f $(MKDIR)/Makefile \
SRCS='$(SRCS)' \
TARGET=$(TARGET) \
IFILE=$(IFILE) \
sub-all
-clean::
+clean:
$(MAKE) -f $(MKDIR)/Makefile TARGET='$(TARGET)' guile_clean
-
-check: all
- ./my-guile -s constants.scm
diff --git a/Examples/guile/matrix/Makefile b/Examples/guile/matrix/Makefile
index 5df2c6515..551debe06 100644
--- a/Examples/guile/matrix/Makefile
+++ b/Examples/guile/matrix/Makefile
@@ -3,8 +3,9 @@ TARGET = matrix
IFILE = package.i
MKDIR = ..
+check: build
-all::
+build:
$(MAKE) -f $(MKDIR)/Makefile \
SRCS='$(SRCS)' \
TARGET=$(TARGET) \
@@ -12,7 +13,5 @@ all::
MODULE=$(MODULE) \
sub-all
-clean::
+clean:
$(MAKE) -f $(MKDIR)/Makefile TARGET='$(TARGET)' guile_clean
-
-check: all
diff --git a/Examples/guile/multimap/Makefile b/Examples/guile/multimap/Makefile
index dc9c66d1f..00fa5df28 100644
--- a/Examples/guile/multimap/Makefile
+++ b/Examples/guile/multimap/Makefile
@@ -4,15 +4,15 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' guile
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='my-guile' INTERFACE='$(INTERFACE)' guile_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' guile_clean
-
-check: all
diff --git a/Examples/guile/multivalue/Makefile b/Examples/guile/multivalue/Makefile
index dc9c66d1f..00fa5df28 100644
--- a/Examples/guile/multivalue/Makefile
+++ b/Examples/guile/multivalue/Makefile
@@ -4,15 +4,15 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all::
+check: build
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' guile
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='my-guile' INTERFACE='$(INTERFACE)' guile_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' guile_clean
-
-check: all
diff --git a/Examples/guile/port/Makefile b/Examples/guile/port/Makefile
index 824f3f823..2d81f44ca 100644
--- a/Examples/guile/port/Makefile
+++ b/Examples/guile/port/Makefile
@@ -3,8 +3,9 @@ TARGET = port
IFILE = port.i
MKDIR = ..
+check: build
-all::
+build:
$(MAKE) -f $(MKDIR)/Makefile \
SRCS='$(SRCS)' \
TARGET=$(TARGET) \
@@ -12,7 +13,5 @@ all::
MODULE=$(MODULE) \
sub-all
-clean::
+clean:
$(MAKE) -f $(MKDIR)/Makefile TARGET='$(TARGET)' guile_clean
-
-check: all
diff --git a/Examples/guile/simple/Makefile b/Examples/guile/simple/Makefile
index 702b5bb96..d4021073e 100644
--- a/Examples/guile/simple/Makefile
+++ b/Examples/guile/simple/Makefile
@@ -3,7 +3,10 @@ TARGET = my-guile
IFILE = example.i
MKDIR = ..
-all: $(TARGET)
+check: $(TARGET)
+ ./$(TARGET) -s example.scm
+
+build: $(TARGET)
$(TARGET):
$(MAKE) -f $(MKDIR)/Makefile \
@@ -12,8 +15,5 @@ $(TARGET):
IFILE=$(IFILE) \
sub-all
-clean::
+clean:
$(MAKE) -f $(MKDIR)/Makefile TARGET='$(TARGET)' guile_clean
-
-check: $(TARGET)
- ./$(TARGET) -s example.scm > /dev/null
diff --git a/Examples/guile/std_vector/Makefile b/Examples/guile/std_vector/Makefile
index 2733fb017..08bf82c87 100644
--- a/Examples/guile/std_vector/Makefile
+++ b/Examples/guile/std_vector/Makefile
@@ -4,15 +4,15 @@ SRCS =
TARGET = example
INTERFACE = example.i
-all::
+check: build
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' guile_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='my-guile' INTERFACE='$(INTERFACE)' guile_static_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' guile_clean
-
-check: all
From a6e2ee858025c3c5d0bc13f7336d1669c7ad7b37 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 15 Apr 2013 22:22:34 +0100
Subject: [PATCH 100/273] Modula3 makefiles tweaks for consistency with other
languages - they still don't work though
---
Examples/modula3/class/Makefile | 9 ++++-----
Examples/modula3/enum/Makefile | 9 ++++-----
Examples/modula3/exception/Makefile | 9 ++++-----
Examples/modula3/reference/Makefile | 9 ++++-----
Examples/modula3/simple/Makefile | 9 ++++-----
Examples/modula3/typemap/Makefile | 9 ++++-----
6 files changed, 24 insertions(+), 30 deletions(-)
diff --git a/Examples/modula3/class/Makefile b/Examples/modula3/class/Makefile
index bf929a061..9976e6f80 100644
--- a/Examples/modula3/class/Makefile
+++ b/Examples/modula3/class/Makefile
@@ -7,9 +7,10 @@ INTERFACE = example.i
SWIGOPT = -c++
MODULA3SRCS = *.[im]3
-all:: modula3
+check: build
+ $(MAKE) -f $(TOP)/Makefile modula3_run
-modula3::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' modula3
m3ppinplace $(MODULA3SRCS)
@@ -19,7 +20,5 @@ modula3::
ln -sf ../example.h src/example.h
cm3
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile modula3_clean
-
-check: all
diff --git a/Examples/modula3/enum/Makefile b/Examples/modula3/enum/Makefile
index b5bf8f672..a3b499823 100644
--- a/Examples/modula3/enum/Makefile
+++ b/Examples/modula3/enum/Makefile
@@ -7,9 +7,10 @@ CONSTNUMERIC = example_const
SWIGOPT = -c++
MODULA3SRCS = *.[im]3
-all:: modula3
+check: build
+ $(MAKE) -f $(TOP)/Makefile modula3_run
-modula3::
+build:
$(SWIG) -modula3 $(SWIGOPT) -module Example -generateconst $(CONSTNUMERIC) $(TARGET).h
$(CXX) -Wall $(CONSTNUMERIC).c -o $(CONSTNUMERIC)
$(CONSTNUMERIC) >$(CONSTNUMERIC).i
@@ -20,7 +21,5 @@ modula3::
mv m3makefile $(MODULA3SRCS) src/
cm3
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile modula3_clean
-
-check: all
diff --git a/Examples/modula3/exception/Makefile b/Examples/modula3/exception/Makefile
index 2518a2203..8d4525512 100644
--- a/Examples/modula3/exception/Makefile
+++ b/Examples/modula3/exception/Makefile
@@ -7,9 +7,10 @@ SWIGOPT =
MODULA3SRCS = *.[im]3
MODULA3FLAGS= -o runme
-all:: modula3
+check: build
+ $(MAKE) -f $(TOP)/Makefile modula3_run
-modula3::
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' modula3_cpp
# $(MAKE) -f $(TOP)/Makefile MODULA3SRCS='$(MODULA3SRCS)' MODULA3FLAGS='$(MODULA3FLAGS)' modula3_compile
@@ -17,7 +18,5 @@ modula3::
mv m3makefile $(MODULA3SRCS) src/
cm3
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile modula3_clean
-
-check: all
diff --git a/Examples/modula3/reference/Makefile b/Examples/modula3/reference/Makefile
index b31577a58..62183931e 100644
--- a/Examples/modula3/reference/Makefile
+++ b/Examples/modula3/reference/Makefile
@@ -6,16 +6,15 @@ INTERFACE = example.i
SWIGOPT = -c++
MODULA3SRCS = *.[im]3
-all:: modula3
+check: build
+ $(MAKE) -f $(TOP)/Makefile modula3_run
-modula3::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' modula3
m3ppinplace $(MODULA3SRCS)
mv m3makefile $(MODULA3SRCS) src/
cm3
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile modula3_clean
-
-check: all
diff --git a/Examples/modula3/simple/Makefile b/Examples/modula3/simple/Makefile
index 834521fa5..6a0ca4f0e 100644
--- a/Examples/modula3/simple/Makefile
+++ b/Examples/modula3/simple/Makefile
@@ -6,16 +6,15 @@ INTERFACE = example.i
SWIGOPT =
MODULA3SRCS = *.[im]3
-all:: modula3
+check: build
+ $(MAKE) -f $(TOP)/Makefile modula3_run
-modula3::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' modula3
m3ppinplace $(MODULA3SRCS)
mv m3makefile $(MODULA3SRCS) src/
cm3
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile modula3_clean
-
-check: all
diff --git a/Examples/modula3/typemap/Makefile b/Examples/modula3/typemap/Makefile
index 834521fa5..6a0ca4f0e 100644
--- a/Examples/modula3/typemap/Makefile
+++ b/Examples/modula3/typemap/Makefile
@@ -6,16 +6,15 @@ INTERFACE = example.i
SWIGOPT =
MODULA3SRCS = *.[im]3
-all:: modula3
+check: build
+ $(MAKE) -f $(TOP)/Makefile modula3_run
-modula3::
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' modula3
m3ppinplace $(MODULA3SRCS)
mv m3makefile $(MODULA3SRCS) src/
cm3
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile modula3_clean
-
-check: all
From 238554fe618624b24d2422e80e9de512ec57c497 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 15 Apr 2013 22:33:38 +0100
Subject: [PATCH 101/273] Mzscheme example makefiles tweaks for consistency
with other languages. Attempt to add runtime tests to 'make check' -
untested.
---
Examples/Makefile.in | 15 +++++++++++++++
Examples/mzscheme/multimap/Makefile | 10 ++++++----
Examples/mzscheme/simple/Makefile | 10 ++++++----
Examples/mzscheme/std_vector/Makefile | 7 ++++---
4 files changed, 31 insertions(+), 11 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 4ddf9269b..8775af330 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -695,6 +695,13 @@ modula3: $(SRCS)
modula3_cpp: $(SRCS)
$(SWIG) -modula3 -c++ $(SWIGOPT) $(INTERFACEPATH)
+# -----------------------------------------------------------------
+# Run modula3 example
+# -----------------------------------------------------------------
+
+modula3_run:
+ $(RUNTOOL) false $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
@@ -719,6 +726,7 @@ MZSCHEME = mzscheme
MZC = @MZC@
MZDYNOBJ = @MZDYNOBJ@
MZSCHEME_SO = @MZSCHEME_SO@
+MZSCHEME_SCRIPT = $(RUNME).scm
# ----------------------------------------------------------------
# Build a C/C++ dynamically loadable module
@@ -734,6 +742,13 @@ mzscheme_cpp: $(SRCS)
$(COMPILETOOL) $(MZC) `echo $(INCLUDES) | sed 's/-I/++ccf -I/g'` --cc $(ICXXSRCS) $(SRCS) $(CXXSRCS)
$(CXXSHARED) $(CFLAGS) -o $(LIBPREFIX)$(TARGET)$(MZSCHEME_SO) $(OBJS) $(IOBJS) $(MZDYNOBJ) $(CPP_DLLIBS)
+# -----------------------------------------------------------------
+# Run mzscheme example
+# -----------------------------------------------------------------
+
+mzscheme_run:
+ $(RUNTOOL) $(MZSCHEME) -r $(MZSCHEME_SCRIPT) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
diff --git a/Examples/mzscheme/multimap/Makefile b/Examples/mzscheme/multimap/Makefile
index a3cfb8f3c..d1b4a3f39 100644
--- a/Examples/mzscheme/multimap/Makefile
+++ b/Examples/mzscheme/multimap/Makefile
@@ -4,10 +4,12 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
-all::
+
+check: build
+ $(MAKE) -f $(TOP)/Makefile mzscheme_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' mzscheme
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile mzscheme_clean
-
-check: all
diff --git a/Examples/mzscheme/simple/Makefile b/Examples/mzscheme/simple/Makefile
index a3cfb8f3c..d1b4a3f39 100644
--- a/Examples/mzscheme/simple/Makefile
+++ b/Examples/mzscheme/simple/Makefile
@@ -4,10 +4,12 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
SWIGOPT =
-all::
+
+check: build
+ $(MAKE) -f $(TOP)/Makefile mzscheme_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' mzscheme
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile mzscheme_clean
-
-check: all
diff --git a/Examples/mzscheme/std_vector/Makefile b/Examples/mzscheme/std_vector/Makefile
index e18726981..28b91158a 100644
--- a/Examples/mzscheme/std_vector/Makefile
+++ b/Examples/mzscheme/std_vector/Makefile
@@ -8,12 +8,13 @@ SWIGOPT =
GPP = `which g++`
MZC = test -n "/usr/bin/mzc" && /usr/bin/mzc
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile mzscheme_run
+
+build:
$(SWIG) -mzscheme -c++ $(SWIGOPT) $(INTERFACE)
$(MZC) --compiler $(GPP) ++ccf "-I." --cc example_wrap.cxx
$(MZC) --linker $(GPP) --ld $(TARGET).so example_wrap.o
clean:
$(MAKE) -f $(TOP)/Makefile mzscheme_clean
-
-check: all
From 280cd16b7eaad1b22dedf0e36912e7b8803e69ab Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 15 Apr 2013 22:45:01 +0100
Subject: [PATCH 102/273] Ocaml example makefiles tweaks for consistency with
other languages. Attempt to add runtime tests to 'make check' - untested.
---
Examples/Makefile.in | 7 +++++++
Examples/ocaml/argout_ref/Makefile | 13 +++++++------
Examples/ocaml/contract/Makefile | 15 ++++++++-------
Examples/ocaml/scoped_enum/Makefile | 15 ++++++++-------
Examples/ocaml/shapes/Makefile | 15 ++++++++-------
Examples/ocaml/simple/Makefile | 15 ++++++++-------
Examples/ocaml/std_string/Makefile | 13 +++++++------
Examples/ocaml/std_vector/Makefile | 13 +++++++------
Examples/ocaml/stl/Makefile | 17 +++++++++--------
Examples/ocaml/string_from_ptr/Makefile | 15 ++++++++-------
Examples/ocaml/strings_test/Makefile | 15 ++++++++-------
11 files changed, 85 insertions(+), 68 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 8775af330..feef7ff05 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -893,6 +893,13 @@ ocaml_dynamic_cpp: $(SRCS)
-package dl -linkpkg \
$(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo) -cc '$(CXX) -Wno-write-strings'
+# -----------------------------------------------------------------
+# Run ocaml example
+# -----------------------------------------------------------------
+
+ocaml_run:
+ $(RUNTOOL) false $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
diff --git a/Examples/ocaml/argout_ref/Makefile b/Examples/ocaml/argout_ref/Makefile
index 8a260fe30..4e12e3769 100644
--- a/Examples/ocaml/argout_ref/Makefile
+++ b/Examples/ocaml/argout_ref/Makefile
@@ -7,21 +7,22 @@ MLFILE = example.ml
PROGFILE = example_prog.ml
OBJS = example.o
-all:: static
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_run
-static::
+build: static
+
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_static_cpp
-dynamic::
+dynamic:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_dynamic_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile MLFILE='$(MLFILE)' ocaml_clean
-
-check: all
diff --git a/Examples/ocaml/contract/Makefile b/Examples/ocaml/contract/Makefile
index 8e0f2a4fd..91d39247e 100644
--- a/Examples/ocaml/contract/Makefile
+++ b/Examples/ocaml/contract/Makefile
@@ -7,27 +7,28 @@ MLFILE = example.ml
PROGFILE = example_prog.ml
OBJS =
-all:: static
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_run
-dynamic::
+build: static
+
+dynamic:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_dynamic
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_static
-toplevel::
+toplevel:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_static_toplevel
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile MLFILE='$(MLFILE)' ocaml_clean
-
-check: all
diff --git a/Examples/ocaml/scoped_enum/Makefile b/Examples/ocaml/scoped_enum/Makefile
index 45c5edca4..4920e3b3b 100644
--- a/Examples/ocaml/scoped_enum/Makefile
+++ b/Examples/ocaml/scoped_enum/Makefile
@@ -7,27 +7,28 @@ MLFILE = example.ml
PROGFILE = example_prog.ml
OBJS =
-all:: static
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_run
-dynamic::
+build: static
+
+dynamic:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_dynamic_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_static_cpp
-toplevel::
+toplevel:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_static_cpp_toplevel
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile MLFILE='$(MLFILE)' ocaml_clean
-
-check: all
diff --git a/Examples/ocaml/shapes/Makefile b/Examples/ocaml/shapes/Makefile
index 31f9934a7..38230eb69 100644
--- a/Examples/ocaml/shapes/Makefile
+++ b/Examples/ocaml/shapes/Makefile
@@ -8,27 +8,28 @@ MLFILE = example.ml
PROGFILE = example_prog.ml
OBJS = example.o
-all:: static static_top
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_run
-static::
+build: static static_top
+
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
MLFILE='$(MLFILE)' PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_static_cpp
-static_top::
+static_top:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
MLFILE='$(MLFILE)' PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_static_cpp_toplevel
-dynamic::
+dynamic:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)'
MLFILE='$(MLFILE)' PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_dynamic_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile MLFILE='$(MLFILE)' ocaml_clean
-
-check: all
diff --git a/Examples/ocaml/simple/Makefile b/Examples/ocaml/simple/Makefile
index 4b85bf33e..64c7256c1 100644
--- a/Examples/ocaml/simple/Makefile
+++ b/Examples/ocaml/simple/Makefile
@@ -7,27 +7,28 @@ MLFILE = example.ml
PROGFILE = example_prog.ml
OBJS = example.o
-all:: static
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_run
-dynamic::
+build: static
+
+dynamic:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_dynamic
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_static
-toplevel::
+toplevel:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' MLFILE='$(MLFILE)' \
PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_static_toplevel
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile MLFILE='$(MLFILE)' ocaml_clean
-
-check: all
diff --git a/Examples/ocaml/std_string/Makefile b/Examples/ocaml/std_string/Makefile
index e5a8017ae..0250cfd2d 100644
--- a/Examples/ocaml/std_string/Makefile
+++ b/Examples/ocaml/std_string/Makefile
@@ -5,19 +5,20 @@ TARGET = example
INTERFACE = example.i
PROGFILE = runme.ml
-all default:: static
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_run
-static::
+build: static
+
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
PROGFILE='$(PROGFILE)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
ocaml_static_cpp
-dynamic::
+dynamic:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
PROGFILE='$(PROGFILE)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
ocaml_dynamic_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_clean
-
-check: all
diff --git a/Examples/ocaml/std_vector/Makefile b/Examples/ocaml/std_vector/Makefile
index e5a8017ae..0250cfd2d 100644
--- a/Examples/ocaml/std_vector/Makefile
+++ b/Examples/ocaml/std_vector/Makefile
@@ -5,19 +5,20 @@ TARGET = example
INTERFACE = example.i
PROGFILE = runme.ml
-all default:: static
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_run
-static::
+build: static
+
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
PROGFILE='$(PROGFILE)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
ocaml_static_cpp
-dynamic::
+dynamic:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
PROGFILE='$(PROGFILE)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
ocaml_dynamic_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_clean
-
-check: all
diff --git a/Examples/ocaml/stl/Makefile b/Examples/ocaml/stl/Makefile
index fa4333ec0..545f3229a 100644
--- a/Examples/ocaml/stl/Makefile
+++ b/Examples/ocaml/stl/Makefile
@@ -5,29 +5,30 @@ TARGET = example
INTERFACE = example.i
PROGFILE = runme.ml
-all default:: static
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_run
-static::
+build: static
+
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
PROGFILE='$(PROGFILE)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
ocaml_static_cpp
-director::
+director:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
PROGFILE='$(PROGFILE)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
ocaml_static_cpp_director
-dynamic::
+dynamic:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
PROGFILE='$(PROGFILE)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
ocaml_static_cpp
-toplevel::
+toplevel:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
PROGFILE='$(PROGFILE)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
ocaml_static_cpp_toplevel
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_clean
-
-check: all
diff --git a/Examples/ocaml/string_from_ptr/Makefile b/Examples/ocaml/string_from_ptr/Makefile
index 350d9734c..f7b808934 100644
--- a/Examples/ocaml/string_from_ptr/Makefile
+++ b/Examples/ocaml/string_from_ptr/Makefile
@@ -8,27 +8,28 @@ MLFILE = foolib.ml
PROGFILE = example_prog.ml
OBJS =
-all:: static static_top
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_run
-static::
+build: static static_top
+
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
MLFILE='$(MLFILE)' PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_static_cpp
-static_top::
+static_top:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
MLFILE='$(MLFILE)' PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_static_cpp_toplevel
-dynamic::
+dynamic:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)'
MLFILE='$(MLFILE)' PROGFILE='$(PROGFILE)' OBJS='$(OBJS)' \
ocaml_dynamic_cpp
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile MLFILE='$(MLFILE)' ocaml_clean
-
-check: all
diff --git a/Examples/ocaml/strings_test/Makefile b/Examples/ocaml/strings_test/Makefile
index 8d1f96edf..14f55e0d9 100644
--- a/Examples/ocaml/strings_test/Makefile
+++ b/Examples/ocaml/strings_test/Makefile
@@ -5,24 +5,25 @@ TARGET = example
INTERFACE = example.i
PROGFILE = runme.ml
-all default:: static top
+check: build
+ $(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_run
-static::
+build: static top
+
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
PROGFILE='$(PROGFILE)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
ocaml_static_cpp
-dynamic::
+dynamic:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
PROGFILE='$(PROGFILE)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
ocaml_static_cpp
-top::
+top:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
PROGFILE='$(PROGFILE)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
ocaml_static_cpp_toplevel
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile TARGET='$(TARGET)' ocaml_clean
-
-check: all
From 9a6167822ba2c64b14e1b7c1c2683c3a7477d336 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 15 Apr 2013 22:49:12 +0100
Subject: [PATCH 103/273] Pike example makefiles tweaks for consistency with
other languages. Attempt to add runtime tests to 'make check' - untested.
---
Examples/Makefile.in | 11 +++++++++--
Examples/pike/class/Makefile | 7 ++++---
Examples/pike/constants/Makefile | 11 ++++++-----
Examples/pike/enum/Makefile | 11 ++++++-----
Examples/pike/overload/Makefile | 11 ++++++-----
Examples/pike/simple/Makefile | 7 ++++---
Examples/pike/template/Makefile | 7 ++++---
7 files changed, 39 insertions(+), 26 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index feef7ff05..43efdc472 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -1048,6 +1048,8 @@ PIKE_CFLAGS = @PIKECCDLFLAGS@ -DHAVE_CONFIG_H
PIKE_INCLUDE = @PIKEINCLUDE@
PIKE_LIB = @PIKELIB@
PIKE_DLNK = @PIKEDYNAMICLINKING@
+PIKE_LIBOPTS = @PIKELINK@ @LIBS@ $(SYSLIBS)
+PIKE_SCRIPT = $(RUNME).pike
# ----------------------------------------------------------------
# Build a C dynamically loadable module
@@ -1074,8 +1076,6 @@ pike_cpp: $(SRCS)
# library file
# -----------------------------------------------------------------
-PIKE_LIBOPTS = @PIKELINK@ @LIBS@ $(SYSLIBS)
-
pike_static: $(SRCS)
$(SWIG) -pike -lembed.i $(SWIGOPT) $(INTERFACEPATH)
$(CC) $(CFLAGS) $(PIKE_CFLAGS) @LINKFORSHARED@ $(ISRCS) $(SRCS) $(INCLUDES) \
@@ -1086,6 +1086,13 @@ pike_cpp_static: $(SRCS)
$(CXX) $(CFLAGS) $(PIKE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
$(PIKE_INCLUDE) $(LIBS) -L$(PIKE_LIB) $(PIKE_LIBOPTS) -o $(TARGET)
+# -----------------------------------------------------------------
+# Run pike example
+# -----------------------------------------------------------------
+
+pike_run:
+ $(RUNTOOL) $(PIKE) $(PIKE_SCRIPT) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
diff --git a/Examples/pike/class/Makefile b/Examples/pike/class/Makefile
index 981ccef6f..aadc47151 100644
--- a/Examples/pike/class/Makefile
+++ b/Examples/pike/class/Makefile
@@ -5,7 +5,10 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all:
+check: build
+ $(MAKE) -f $(TOP)/Makefile pike_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' pike_cpp
@@ -15,5 +18,3 @@ static:
clean:
$(MAKE) -f $(TOP)/Makefile pike_clean
-
-check: all
diff --git a/Examples/pike/constants/Makefile b/Examples/pike/constants/Makefile
index 7fa493851..9a882bd4d 100644
--- a/Examples/pike/constants/Makefile
+++ b/Examples/pike/constants/Makefile
@@ -4,15 +4,16 @@ SRCS =
TARGET = example
INTERFACE = example.i
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile pike_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' pike
-static::
+static:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='mypike' INTERFACE='$(INTERFACE)' pike_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile pike_clean
-
-check: all
diff --git a/Examples/pike/enum/Makefile b/Examples/pike/enum/Makefile
index 0ae102156..aadc47151 100644
--- a/Examples/pike/enum/Makefile
+++ b/Examples/pike/enum/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile pike_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' pike_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypike' INTERFACE='$(INTERFACE)' pike_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile pike_clean
-
-check: all
diff --git a/Examples/pike/overload/Makefile b/Examples/pike/overload/Makefile
index 60af005b1..8d799efe1 100644
--- a/Examples/pike/overload/Makefile
+++ b/Examples/pike/overload/Makefile
@@ -5,15 +5,16 @@ TARGET = example
INTERFACE = example.i
LIBS = -lstdc++ -lm
-all::
+check: build
+ $(MAKE) -f $(TOP)/Makefile pike_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' pike_cpp
-static::
+static:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='mypike' INTERFACE='$(INTERFACE)' pike_cpp_static
-clean::
+clean:
$(MAKE) -f $(TOP)/Makefile pike_clean
-
-check: all
diff --git a/Examples/pike/simple/Makefile b/Examples/pike/simple/Makefile
index 544c97b5d..f58ed4e65 100644
--- a/Examples/pike/simple/Makefile
+++ b/Examples/pike/simple/Makefile
@@ -4,7 +4,10 @@ SRCS = example.c
TARGET = example
INTERFACE = example.i
-all:
+check: build
+ $(MAKE) -f $(TOP)/Makefile pike_run
+
+build:
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' pike
@@ -14,5 +17,3 @@ static:
clean:
$(MAKE) -f $(TOP)/Makefile pike_clean
-
-check: all
diff --git a/Examples/pike/template/Makefile b/Examples/pike/template/Makefile
index b3f012927..73a31ee1a 100644
--- a/Examples/pike/template/Makefile
+++ b/Examples/pike/template/Makefile
@@ -6,7 +6,10 @@ INTERFACE = example.i
LIBS = -lm
SWIGOPT =
-all:
+check: build
+ $(MAKE) -f $(TOP)/Makefile pike_run
+
+build:
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' pike_cpp
@@ -16,5 +19,3 @@ static:
clean:
$(MAKE) -f $(TOP)/Makefile pike_clean
-
-check: all
From ceb5c59c8d8f81bcc8897a3f5601353caf2f8627 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 15 Apr 2013 22:52:23 +0100
Subject: [PATCH 104/273] XML example makefiles tweaks for consistency with
other languages
---
Examples/xml/Makefile.in | 2 --
1 file changed, 2 deletions(-)
diff --git a/Examples/xml/Makefile.in b/Examples/xml/Makefile.in
index dfda4a646..27c86e3e9 100644
--- a/Examples/xml/Makefile.in
+++ b/Examples/xml/Makefile.in
@@ -19,8 +19,6 @@ all-dot-i-files = \
example_xml.i \
gnarly.i
-all: check
-
chk-swiglib = $(top_srcdir)/Lib
check:
From e3d0947058206f29c41c2d3631858661267bed80 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 15 Apr 2013 23:09:49 +0100
Subject: [PATCH 105/273] D example makefiles tweaks for consistency with other
languages.
---
Examples/Makefile.in | 4 +++-
Examples/d/callback/Makefile | 13 +++++--------
Examples/d/class/Makefile | 13 +++++--------
Examples/d/constants/Makefile | 13 +++++--------
Examples/d/enum/Makefile | 13 +++++--------
Examples/d/extend/Makefile | 13 +++++--------
Examples/d/funcptr/Makefile | 13 +++++--------
Examples/d/simple/Makefile | 13 +++++--------
Examples/d/variables/Makefile | 13 +++++--------
9 files changed, 43 insertions(+), 65 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 43efdc472..b95d9e129 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -1650,6 +1650,8 @@ else
DCOMPILER = @D1COMPILER@
endif
+D_RUNME = ./$(RUNME)
+
# ----------------------------------------------------------------
# Build a dynamically loadable D wrapper for a C module
# ----------------------------------------------------------------
@@ -1682,7 +1684,7 @@ d_compile: $(SRCS)
# -----------------------------------------------------------------
d_run:
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) ./runme
+ $(RUNTOOL) $(D_RUNME) $(RUNPIPE)
# -----------------------------------------------------------------
# Version display
diff --git a/Examples/d/callback/Makefile b/Examples/d/callback/Makefile
index b5808cf0d..eda18f13c 100644
--- a/Examples/d/callback/Makefile
+++ b/Examples/d/callback/Makefile
@@ -13,18 +13,15 @@ SWIGOPT =
DSRCS = *.d
DFLAGS = -ofrunme
+check: build
+ cd $(WORKING_DIR); \
+ $(MAKE) -f $(TOP)/Makefile d_run
-all:: d
-
-d::
+build:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d_cpp; \
$(MAKE) -f $(TOP)/Makefile DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile
-clean::
+clean:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile d_clean
-
-check: all
- cd $(WORKING_DIR); \
- $(MAKE) -f $(TOP)/Makefile d_run
diff --git a/Examples/d/class/Makefile b/Examples/d/class/Makefile
index b5808cf0d..eda18f13c 100644
--- a/Examples/d/class/Makefile
+++ b/Examples/d/class/Makefile
@@ -13,18 +13,15 @@ SWIGOPT =
DSRCS = *.d
DFLAGS = -ofrunme
+check: build
+ cd $(WORKING_DIR); \
+ $(MAKE) -f $(TOP)/Makefile d_run
-all:: d
-
-d::
+build:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d_cpp; \
$(MAKE) -f $(TOP)/Makefile DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile
-clean::
+clean:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile d_clean
-
-check: all
- cd $(WORKING_DIR); \
- $(MAKE) -f $(TOP)/Makefile d_run
diff --git a/Examples/d/constants/Makefile b/Examples/d/constants/Makefile
index 412055243..d537ce281 100644
--- a/Examples/d/constants/Makefile
+++ b/Examples/d/constants/Makefile
@@ -13,18 +13,15 @@ SWIGOPT =
DSRCS = *.d
DFLAGS = -ofrunme
+check: build
+ cd $(WORKING_DIR); \
+ $(MAKE) -f $(TOP)/Makefile d_run
-all:: d
-
-d::
+build:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d; \
$(MAKE) -f $(TOP)/Makefile DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile
-clean::
+clean:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile d_clean
-
-check: all
- cd $(WORKING_DIR); \
- $(MAKE) -f $(TOP)/Makefile d_run
diff --git a/Examples/d/enum/Makefile b/Examples/d/enum/Makefile
index b5808cf0d..eda18f13c 100644
--- a/Examples/d/enum/Makefile
+++ b/Examples/d/enum/Makefile
@@ -13,18 +13,15 @@ SWIGOPT =
DSRCS = *.d
DFLAGS = -ofrunme
+check: build
+ cd $(WORKING_DIR); \
+ $(MAKE) -f $(TOP)/Makefile d_run
-all:: d
-
-d::
+build:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d_cpp; \
$(MAKE) -f $(TOP)/Makefile DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile
-clean::
+clean:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile d_clean
-
-check: all
- cd $(WORKING_DIR); \
- $(MAKE) -f $(TOP)/Makefile d_run
diff --git a/Examples/d/extend/Makefile b/Examples/d/extend/Makefile
index b5808cf0d..eda18f13c 100644
--- a/Examples/d/extend/Makefile
+++ b/Examples/d/extend/Makefile
@@ -13,18 +13,15 @@ SWIGOPT =
DSRCS = *.d
DFLAGS = -ofrunme
+check: build
+ cd $(WORKING_DIR); \
+ $(MAKE) -f $(TOP)/Makefile d_run
-all:: d
-
-d::
+build:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d_cpp; \
$(MAKE) -f $(TOP)/Makefile DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile
-clean::
+clean:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile d_clean
-
-check: all
- cd $(WORKING_DIR); \
- $(MAKE) -f $(TOP)/Makefile d_run
diff --git a/Examples/d/funcptr/Makefile b/Examples/d/funcptr/Makefile
index 09efa8d88..2ba893ca7 100644
--- a/Examples/d/funcptr/Makefile
+++ b/Examples/d/funcptr/Makefile
@@ -13,18 +13,15 @@ SWIGOPT =
DSRCS = *.d
DFLAGS = -ofrunme
+check: build
+ cd $(WORKING_DIR); \
+ $(MAKE) -f $(TOP)/Makefile d_run
-all:: d
-
-d::
+build:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d; \
$(MAKE) -f $(TOP)/Makefile DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile
-clean::
+clean:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile d_clean
-
-check: all
- cd $(WORKING_DIR); \
- $(MAKE) -f $(TOP)/Makefile d_run
diff --git a/Examples/d/simple/Makefile b/Examples/d/simple/Makefile
index ae173a566..a8808c9c5 100644
--- a/Examples/d/simple/Makefile
+++ b/Examples/d/simple/Makefile
@@ -13,18 +13,15 @@ SWIGOPT =
DSRCS = *.d
DFLAGS = -ofrunme
+check: build
+ cd $(WORKING_DIR); \
+ $(MAKE) -f $(TOP)/Makefile d_run
-all:: d
-
-d::
+build:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d; \
$(MAKE) -f $(TOP)/Makefile DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile
-clean::
+clean:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile d_clean
-
-check: all
- cd $(WORKING_DIR); \
- $(MAKE) -f $(TOP)/Makefile d_run
diff --git a/Examples/d/variables/Makefile b/Examples/d/variables/Makefile
index ae173a566..a8808c9c5 100644
--- a/Examples/d/variables/Makefile
+++ b/Examples/d/variables/Makefile
@@ -13,18 +13,15 @@ SWIGOPT =
DSRCS = *.d
DFLAGS = -ofrunme
+check: build
+ cd $(WORKING_DIR); \
+ $(MAKE) -f $(TOP)/Makefile d_run
-all:: d
-
-d::
+build:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile EXTRA_CFLAGS='$(EXTRA_CFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' SWIG='$(SWIG)' SWIGOPT='$(SWIGOPT) -outcurrentdir ../example.i' TARGET='$(TARGET)' d; \
$(MAKE) -f $(TOP)/Makefile DSRCS='$(DSRCS)' DFLAGS='$(DFLAGS)' d_compile
-clean::
+clean:
cd $(WORKING_DIR); \
$(MAKE) -f $(TOP)/Makefile d_clean
-
-check: all
- cd $(WORKING_DIR); \
- $(MAKE) -f $(TOP)/Makefile d_run
From ea84fe6445e9ac9a8cd097260eaca4a17ab0e609 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 16 Apr 2013 07:26:12 +0100
Subject: [PATCH 106/273] Allegrocl, clisp, cffi, uffi makefile targets added
for running examples - untested.
---
Examples/Makefile.in | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index b95d9e129..f5b93dbe9 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -1369,6 +1369,7 @@ lua_clean:
##################################################################
ALLEGROCL = @ALLEGROCLBIN@
+ALLEGROCL_SCRIPT=$(RUNME).lisp
allegrocl: $(SRCS)
$(SWIG) -allegrocl -cwrap $(SWIGOPT) $(INTERFACEPATH)
@@ -1380,6 +1381,13 @@ allegrocl_cpp: $(SRCS)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES)
$(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
+# -----------------------------------------------------------------
+# Run ALLEGRO CL example
+# -----------------------------------------------------------------
+
+allegrocl_run:
+ $(RUNTOOL) $(ALLEGROCL) -batch -s $(ALLEGROCL_SCRIPT) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
@@ -1401,6 +1409,7 @@ allegrocl_clean:
##################################################################
CLISP = @CLISPBIN@
+CLISP_SCRIPT=$(RUNME).lisp
clisp: $(SRCS)
$(SWIG) -clisp $(SWIGOPT) $(INTERFACEPATH)
@@ -1408,6 +1417,13 @@ clisp: $(SRCS)
clisp_cpp: $(SRCS)
$(SWIG) -c++ -clisp $(SWIGOPT) $(INTERFACEPATH)
+# -----------------------------------------------------------------
+# Run CLISP example
+# -----------------------------------------------------------------
+
+clisp_run:
+ $(RUNTOOL) $(CLISP) -batch -s $(CLISP_SCRIPT) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
@@ -1429,6 +1445,7 @@ clisp_clean:
##################################################################
CFFI = @CFFIBIN@
+CFFI_SCRIPT=$(RUNME).lisp
cffi: $(SRCS)
$(SWIG) -cffi $(SWIGOPT) $(INTERFACEPATH)
@@ -1440,6 +1457,13 @@ cffi_cpp: $(SRCS)
$(CXX) -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES)
$(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
+# -----------------------------------------------------------------
+# Run CFFI example
+# -----------------------------------------------------------------
+
+cffi_run:
+ $(RUNTOOL) $(CFFI) -batch -s $(CFFI_SCRIPT) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
@@ -1461,6 +1485,7 @@ cffi_clean:
##################################################################
UFFI = @UFFIBIN@
+UFFI_SCRIPT=$(RUNME).lisp
uffi: $(SRCS)
$(SWIG) -uffi $(SWIGOPT) $(INTERFACEPATH)
@@ -1472,6 +1497,13 @@ uffi_cpp: $(SRCS)
# $(CXX) -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES)
# $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
+# -----------------------------------------------------------------
+# Run UFFI example
+# -----------------------------------------------------------------
+
+uffi_run:
+ $(RUNTOOL) $(UFFI) -batch -s $(UFFI_SCRIPT) $(RUNPIPE)
+
# -----------------------------------------------------------------
# Version display
# -----------------------------------------------------------------
From 1f4bd0bfa5bc1bef809764a99e56186cb3df88de Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Mon, 15 Apr 2013 23:12:47 +0100
Subject: [PATCH 107/273] Minor extraneous makefiles tidy up
---
Lib/guile/Makefile | 2 +-
Lib/mzscheme/Makefile | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Lib/guile/Makefile b/Lib/guile/Makefile
index ff66f9efa..17f5feced 100644
--- a/Lib/guile/Makefile
+++ b/Lib/guile/Makefile
@@ -1,4 +1,4 @@
-co::
+co:
co RCS/*.i* RCS/*.swg*
diff --git a/Lib/mzscheme/Makefile b/Lib/mzscheme/Makefile
index ff66f9efa..17f5feced 100644
--- a/Lib/mzscheme/Makefile
+++ b/Lib/mzscheme/Makefile
@@ -1,4 +1,4 @@
-co::
+co:
co RCS/*.i* RCS/*.swg*
From 303b319cf061144c1862d0e0687bb712ffb8126c Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 20 Apr 2013 00:22:07 +0100
Subject: [PATCH 108/273] Add ability to see example output from top level by
using 'make check-examples RUNPIPE='
---
Makefile.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index 04d65a107..c47cdbe7c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -22,6 +22,7 @@ TARGET = $(TARGET_NOEXE)@EXEEXT@
SOURCE = Source
CCACHE = CCache
DOCS = Doc/Manual
+RUNPIPE = \>/dev/null
swig: libfiles source ccache
@@ -229,7 +230,7 @@ check-%-examples :
# individual example
%.actionexample:
@echo $(ACTION)ing Examples/$(LANGUAGE)/$*
- @(cd Examples/$(LANGUAGE)/$* && $(MAKE) -s $(chk-set-env) $(ACTION) RUNPIPE=\>/dev/null)
+ @(cd Examples/$(LANGUAGE)/$* && $(MAKE) -s $(chk-set-env) $(ACTION) RUNPIPE=$(RUNPIPE))
# gcj individual example
java.actionexample:
From 13b66c997e7ce685031d15768c860cffa426f4dc Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 20 Apr 2013 00:02:23 +0100
Subject: [PATCH 109/273] Guile example makefiles - run some of the examples in
the check target. Still some are missing. Add some missing examples to
check.list.
---
Examples/guile/check.list | 4 +++-
Examples/guile/matrix/Makefile | 1 +
Examples/guile/port/Makefile | 1 +
3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/Examples/guile/check.list b/Examples/guile/check.list
index 7ccd0730a..08524a8f7 100644
--- a/Examples/guile/check.list
+++ b/Examples/guile/check.list
@@ -1,6 +1,8 @@
# see top-level Makefile.in
constants
-simple
port
+simple
+std_vector
+matrix
multimap
multivalue
diff --git a/Examples/guile/matrix/Makefile b/Examples/guile/matrix/Makefile
index 551debe06..e8466e5fc 100644
--- a/Examples/guile/matrix/Makefile
+++ b/Examples/guile/matrix/Makefile
@@ -4,6 +4,7 @@ IFILE = package.i
MKDIR = ..
check: build
+ ./$(TARGET) -e do-test -s matrix.scm
build:
$(MAKE) -f $(MKDIR)/Makefile \
diff --git a/Examples/guile/port/Makefile b/Examples/guile/port/Makefile
index 2d81f44ca..33eeab2e9 100644
--- a/Examples/guile/port/Makefile
+++ b/Examples/guile/port/Makefile
@@ -4,6 +4,7 @@ IFILE = port.i
MKDIR = ..
check: build
+ ./$(TARGET) -s port.scm
build:
$(MAKE) -f $(MKDIR)/Makefile \
From 7fd18b361e447e5705582bf28ebf163fa94d5e6a Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 20 Apr 2013 00:22:48 +0100
Subject: [PATCH 110/273] Ocaml example makefiles - run examples - there are
plenty of problems currently though
---
Examples/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index f5b93dbe9..7ace11062 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -898,7 +898,7 @@ ocaml_dynamic_cpp: $(SRCS)
# -----------------------------------------------------------------
ocaml_run:
- $(RUNTOOL) false $(RUNPIPE)
+ $(RUNTOOL) ./$(TARGET) $(RUNPIPE)
# -----------------------------------------------------------------
# Version display
From 62638bfd15a14420a6bbf83b3907cdb289093acd Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 20 Apr 2013 00:56:04 +0100
Subject: [PATCH 111/273] Pike - a few updates to get Pike 7.8 running most of
the examples
---
Examples/pike/check.list | 2 ++
Lib/pike/pike.swg | 6 +++---
Lib/pike/pikerun.swg | 5 +++--
configure.ac | 17 ++++++++++-------
4 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/Examples/pike/check.list b/Examples/pike/check.list
index a8d348bf1..d6c8e2e7b 100644
--- a/Examples/pike/check.list
+++ b/Examples/pike/check.list
@@ -2,4 +2,6 @@
class
constants
enum
+overload
simple
+template
diff --git a/Lib/pike/pike.swg b/Lib/pike/pike.swg
index 130af1346..399752a7a 100644
--- a/Lib/pike/pike.swg
+++ b/Lib/pike/pike.swg
@@ -11,9 +11,9 @@
#ifdef __cplusplus
extern "C" {
#endif
-#include
-#include
-#include
+#include
+#include
+#include
#ifdef __cplusplus
}
#endif
diff --git a/Lib/pike/pikerun.swg b/Lib/pike/pikerun.swg
index 70d40fac9..6ec1143cf 100644
--- a/Lib/pike/pikerun.swg
+++ b/Lib/pike/pikerun.swg
@@ -9,11 +9,12 @@
#ifdef __cplusplus
extern "C" {
#endif
-#include "object.h"
-#include "program.h"
+#include "pike/object.h"
+#include "pike/program.h"
#ifdef __cplusplus
}
#endif
+#include
/* Stores information about a wrapped object */
typedef struct swig_object_wrapper {
diff --git a/configure.ac b/configure.ac
index 65a9c9078..83b46f520 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1618,18 +1618,21 @@ AC_ARG_WITH(pikeincl, AS_HELP_STRING([--with-pikeincl=path],
if test -n "$PIKE"; then
AC_MSG_CHECKING([for Pike header files])
if test -z "$PIKEINCLUDE" -a -n "$PIKECONFIG"; then
- PIKEINCLUDE=`$PIKECONFIG --cflags`
+ PIKEINCLUDE=`$PIKECONFIG --cflags`
fi
if test -z "$PIKEINCLUDE" -a -n "$PIKE"; then
- PIKEPATH=`which $PIKE`
- PIKEINCLUDE=`$PIKE Tools/check-include-path.pike $PIKEPATH`
- PIKEINCLUDE="-I$PIKEINCLUDE"
+ PIKEINCLUDE=`$PIKE -x cflags`
+ if test -z "$PIKEINCLUDE"; then
+ PIKEPATH=`which $PIKE`
+ PIKEINCLUDE=`$PIKE Tools/check-include-path.pike $PIKEPATH`
+ PIKEINCLUDE="-I$PIKEINCLUDE"
+ fi
fi
if test -z "$PIKEINCLUDE"; then
- AC_MSG_RESULT(not found)
+ AC_MSG_RESULT(not found)
else
- AC_MSG_RESULT($PIKEINCLUDE)
+ AC_MSG_RESULT($PIKEINCLUDE)
fi
fi
fi
@@ -2305,7 +2308,7 @@ fi
AC_SUBST(SKIP_OCAML)
-SKIP_PIKE="1" # Always skipped!
+SKIP_PIKE=
if test -z "$PIKE" || test -z "$PIKEINCLUDE" ; then
SKIP_PIKE="1"
fi
From 2b2305cce938f25cf91de50b753d95cf76e367d4 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 20 Apr 2013 01:23:54 +0100
Subject: [PATCH 112/273] Mzscheme - fix for running examples during 'make
check-examples' - they don't run very well though\!
---
Examples/Makefile.in | 2 +-
Examples/mzscheme/check.list | 1 +
Examples/mzscheme/multimap/{example.scm => runme.scm} | 4 ++--
Examples/mzscheme/simple/{example.scm => runme.scm} | 2 +-
Examples/mzscheme/std_vector/{example.scm => runme.scm} | 2 +-
5 files changed, 6 insertions(+), 5 deletions(-)
rename Examples/mzscheme/multimap/{example.scm => runme.scm} (89%)
rename Examples/mzscheme/simple/{example.scm => runme.scm} (92%)
rename Examples/mzscheme/std_vector/{example.scm => runme.scm} (97%)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 7ace11062..c7257ac4c 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -747,7 +747,7 @@ mzscheme_cpp: $(SRCS)
# -----------------------------------------------------------------
mzscheme_run:
- $(RUNTOOL) $(MZSCHEME) -r $(MZSCHEME_SCRIPT) $(RUNPIPE)
+ env LD_LIBRARY_PATH=. $(RUNTOOL) $(MZSCHEME) -r $(MZSCHEME_SCRIPT) $(RUNPIPE)
# -----------------------------------------------------------------
# Version display
diff --git a/Examples/mzscheme/check.list b/Examples/mzscheme/check.list
index ae728ea43..f9e4f11c7 100644
--- a/Examples/mzscheme/check.list
+++ b/Examples/mzscheme/check.list
@@ -1,3 +1,4 @@
# see top-level Makefile.in
multimap
simple
+std_vector
diff --git a/Examples/mzscheme/multimap/example.scm b/Examples/mzscheme/multimap/runme.scm
similarity index 89%
rename from Examples/mzscheme/multimap/example.scm
rename to Examples/mzscheme/multimap/runme.scm
index ac9f64283..f1e626f43 100644
--- a/Examples/mzscheme/multimap/example.scm
+++ b/Examples/mzscheme/multimap/runme.scm
@@ -1,4 +1,4 @@
-;; run with mzscheme -r example.scm
+;; run with mzscheme -r runme.scm
(load-extension "example.so")
@@ -24,4 +24,4 @@
(newline)
(display (capitalize "hello world"))
-(newline)
\ No newline at end of file
+(newline)
diff --git a/Examples/mzscheme/simple/example.scm b/Examples/mzscheme/simple/runme.scm
similarity index 92%
rename from Examples/mzscheme/simple/example.scm
rename to Examples/mzscheme/simple/runme.scm
index 8e20345b2..a98e31fd5 100644
--- a/Examples/mzscheme/simple/example.scm
+++ b/Examples/mzscheme/simple/runme.scm
@@ -1,4 +1,4 @@
-;; run with mzscheme -r example.scm
+;; run with mzscheme -r runme.scm
(load-extension "example.so")
diff --git a/Examples/mzscheme/std_vector/example.scm b/Examples/mzscheme/std_vector/runme.scm
similarity index 97%
rename from Examples/mzscheme/std_vector/example.scm
rename to Examples/mzscheme/std_vector/runme.scm
index 0e4ac3f97..67351f128 100644
--- a/Examples/mzscheme/std_vector/example.scm
+++ b/Examples/mzscheme/std_vector/runme.scm
@@ -1,4 +1,4 @@
-;; run with mzscheme -r example.scm
+;; run with mzscheme -r runme.scm
(load-extension "example.so")
From 58a59919dddfe19cef2ca72db8a883f2344e16fc Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 20 Apr 2013 02:13:17 +0100
Subject: [PATCH 113/273] Chicken - make check-examples run like other examples
- not all run very well though!
---
Examples/Makefile.in | 4 ++--
Examples/chicken/class/Makefile | 20 +++++++++----------
...-lowlevel-class.scm => runme-lowlevel.scm} | 0
...-tinyclos-class.scm => runme-tinyclos.scm} | 0
Examples/chicken/constants/Makefile | 10 +++++-----
.../{test-constants.scm => runme.scm} | 0
Examples/chicken/multimap/Makefile | 10 +++++-----
.../multimap/{test-multimap.scm => runme.scm} | 1 -
Examples/chicken/overload/Makefile | 10 +++++-----
.../overload/{test-overload.scm => runme.scm} | 0
Examples/chicken/simple/Makefile | 10 +++++-----
.../simple/{test-simple.scm => runme.scm} | 0
12 files changed, 32 insertions(+), 33 deletions(-)
rename Examples/chicken/class/{test-lowlevel-class.scm => runme-lowlevel.scm} (100%)
rename Examples/chicken/class/{test-tinyclos-class.scm => runme-tinyclos.scm} (100%)
rename Examples/chicken/constants/{test-constants.scm => runme.scm} (100%)
rename Examples/chicken/multimap/{test-multimap.scm => runme.scm} (97%)
rename Examples/chicken/overload/{test-overload.scm => runme.scm} (100%)
rename Examples/chicken/simple/{test-simple.scm => runme.scm} (100%)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index c7257ac4c..c0cdb703f 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -1122,7 +1122,7 @@ CHICKEN_SHAREDLIBOPTS = @CHICKENSHAREDLIB@ $(SYSLIBS)
CHICKEN_CFLAGS = @CHICKENOPTS@
CHICKENOPTS = -quiet
CHICKEN_MAIN =
-CHICKEN_SCRIPT = $(RUNME).ss
+CHICKEN_SCRIPT = $(RUNME).scm
# SWIG produces $(ISRCS) (the C wrapper file)
# and $(CHICKEN_GENERATED_SCHEME) (the Scheme wrapper file):
@@ -1208,7 +1208,7 @@ chicken_externalhdr:
# -----------------------------------------------------------------
chicken_run:
- $(RUNTOOL) $(CHICKEN_CSI) $(CHICKEN_SCRIPT) $(RUNPIPE)
+ env LD_LIBRARY_PATH=. $(RUNTOOL) $(CHICKEN_CSI) $(CHICKEN_SCRIPT) $(RUNPIPE)
# -----------------------------------------------------------------
# Version display
diff --git a/Examples/chicken/class/Makefile b/Examples/chicken/class/Makefile
index 976651e94..1436d836f 100644
--- a/Examples/chicken/class/Makefile
+++ b/Examples/chicken/class/Makefile
@@ -10,27 +10,27 @@ CFLAGS =
VARIANT =
# uncomment the following lines to build a static exe (only pick one of the CHICKEN_MAIN lines)
-#CHICKEN_MAIN = test-lowlevel-class.scm
-#CHICKEN_MAIN = test-tinyclos-class.scm
+#CHICKEN_MAIN = runme-lowlevel.scm
+#CHICKEN_MAIN = runme-tinyclos.scm
#VARIANT = _static
check: build
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-lowlevel-class.scm
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-tinyclos-class.scm
+ $(MAKE) -f $(TOP)/Makefile CHICKEN_SCRIPT='runme-lowlevel.scm' chicken_run
+ $(MAKE) -f $(TOP)/Makefile CHICKEN_SCRIPT='runme-tinyclos.scm' chicken_run
build: $(TARGET) $(TARGET)_proxy
$(TARGET): $(INTERFACE) $(SRCS)
$(MAKE) -f $(TOP)/Makefile \
- SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
- INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
- SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)_cpp
+ SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
+ INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
+ SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)_cpp
$(TARGET)_proxy: $(INTERFACE) $(SRCS)
$(MAKE) -f $(TOP)/Makefile \
- SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
- INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT) -proxy' TARGET='$(TARGET)_proxy' \
- SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)_cpp
+ SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
+ INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT) -proxy' TARGET='$(TARGET)_proxy' \
+ SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)_cpp
clean:
$(MAKE) -f $(TOP)/Makefile chicken_clean
diff --git a/Examples/chicken/class/test-lowlevel-class.scm b/Examples/chicken/class/runme-lowlevel.scm
similarity index 100%
rename from Examples/chicken/class/test-lowlevel-class.scm
rename to Examples/chicken/class/runme-lowlevel.scm
diff --git a/Examples/chicken/class/test-tinyclos-class.scm b/Examples/chicken/class/runme-tinyclos.scm
similarity index 100%
rename from Examples/chicken/class/test-tinyclos-class.scm
rename to Examples/chicken/class/runme-tinyclos.scm
diff --git a/Examples/chicken/constants/Makefile b/Examples/chicken/constants/Makefile
index 41ca7ae11..31e39d346 100644
--- a/Examples/chicken/constants/Makefile
+++ b/Examples/chicken/constants/Makefile
@@ -10,19 +10,19 @@ CFLAGS =
VARIANT =
# uncomment the following two lines to build a static exe
-#CHICKEN_MAIN = test-constants.scm
+#CHICKEN_MAIN = runme.scm
#VARIANT = _static
check: build
- csi test-constants.scm
+ $(MAKE) -f $(TOP)/Makefile chicken_run
build: $(TARGET)
$(TARGET): $(INTERFACE) $(SRCS)
$(MAKE) -f $(TOP)/Makefile \
- SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
- INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
- SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)
+ SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
+ INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
+ SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)
clean:
$(MAKE) -f $(TOP)/Makefile chicken_clean
diff --git a/Examples/chicken/constants/test-constants.scm b/Examples/chicken/constants/runme.scm
similarity index 100%
rename from Examples/chicken/constants/test-constants.scm
rename to Examples/chicken/constants/runme.scm
diff --git a/Examples/chicken/multimap/Makefile b/Examples/chicken/multimap/Makefile
index 4ae5a9cf3..eba36169d 100644
--- a/Examples/chicken/multimap/Makefile
+++ b/Examples/chicken/multimap/Makefile
@@ -10,19 +10,19 @@ CFLAGS =
VARIANT =
# uncomment the following two lines to build a static exe
-#CHICKEN_MAIN = test-multimap.scm
+#CHICKEN_MAIN = runme.scm
#VARIANT = _static
check: build
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-multimap.scm
+ $(MAKE) -f $(TOP)/Makefile chicken_run
build: $(TARGET)
$(TARGET): $(INTERFACE) $(SRCS)
$(MAKE) -f $(TOP)/Makefile \
- SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
- INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
- SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)
+ SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
+ INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
+ SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)
clean:
$(MAKE) -f $(TOP)/Makefile chicken_clean
diff --git a/Examples/chicken/multimap/test-multimap.scm b/Examples/chicken/multimap/runme.scm
similarity index 97%
rename from Examples/chicken/multimap/test-multimap.scm
rename to Examples/chicken/multimap/runme.scm
index 3a6b46e2c..ebe644004 100644
--- a/Examples/chicken/multimap/test-multimap.scm
+++ b/Examples/chicken/multimap/runme.scm
@@ -1,4 +1,3 @@
-;; run with './multimap test-multimap.scm'
;; feel free to uncomment and comment sections
(load-library 'example "multimap.so")
diff --git a/Examples/chicken/overload/Makefile b/Examples/chicken/overload/Makefile
index 584fa52a2..e15352ec5 100644
--- a/Examples/chicken/overload/Makefile
+++ b/Examples/chicken/overload/Makefile
@@ -10,19 +10,19 @@ CFLAGS =
VARIANT =
# uncomment the following lines to build a static exe
-#CHICKEN_MAIN = test-overload.scm
+#CHICKEN_MAIN = runme.scm
#VARIANT = _static
check: build
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-overload.scm
+ $(MAKE) -f $(TOP)/Makefile chicken_run
build: $(TARGET)
$(TARGET): $(INTERFACE) $(SRCS)
$(MAKE) -f $(TOP)/Makefile \
- SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
- INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
- SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)_cpp
+ SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
+ INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
+ SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)_cpp
clean:
$(MAKE) -f $(TOP)/Makefile chicken_clean
diff --git a/Examples/chicken/overload/test-overload.scm b/Examples/chicken/overload/runme.scm
similarity index 100%
rename from Examples/chicken/overload/test-overload.scm
rename to Examples/chicken/overload/runme.scm
diff --git a/Examples/chicken/simple/Makefile b/Examples/chicken/simple/Makefile
index 1b03497cd..f8fb006a4 100644
--- a/Examples/chicken/simple/Makefile
+++ b/Examples/chicken/simple/Makefile
@@ -10,19 +10,19 @@ CFLAGS =
VARIANT =
# uncomment the following two lines to build a static exe
-#CHICKEN_MAIN = test-simple.scm
+#CHICKEN_MAIN = runme.scm
#VARIANT = _static
check: build
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH csi test-simple.scm
+ $(MAKE) -f $(TOP)/Makefile chicken_run
build: $(TARGET)
$(TARGET): $(INTERFACE) $(SRCS)
$(MAKE) -f $(TOP)/Makefile \
- SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
- INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
- SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)
+ SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \
+ INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \
+ SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)
clean:
$(MAKE) -f $(TOP)/Makefile chicken_clean
diff --git a/Examples/chicken/simple/test-simple.scm b/Examples/chicken/simple/runme.scm
similarity index 100%
rename from Examples/chicken/simple/test-simple.scm
rename to Examples/chicken/simple/runme.scm
From 9f95e30650737df2a22ebfb780169181c9d18695 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 20 Apr 2013 02:51:57 +0100
Subject: [PATCH 114/273] Fix PHP test-suite running examples recently broken
in 0fa791d
---
Examples/test-suite/php/Makefile.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Examples/test-suite/php/Makefile.in b/Examples/test-suite/php/Makefile.in
index d4f9ac9b5..fcdcac2b9 100644
--- a/Examples/test-suite/php/Makefile.in
+++ b/Examples/test-suite/php/Makefile.in
@@ -57,9 +57,9 @@ missingtests: missingcpptests missingctests
# found, runs testcase.php, except for multicpptests.
run_testcase = \
if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
- $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile PHPSCRIPT=$(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) RUNTOOL="$(RUNTOOL)" php_run; \
+ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile PHP_SCRIPT=$(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) RUNTOOL="$(RUNTOOL)" php_run; \
elif [ -f $(srcdir)/$(SCRIPTPREFIX)$*.php -a ! -f $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list ]; then \
- $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile PHPSCRIPT=$(srcdir)/$(SCRIPTPREFIX)$*.php RUNTOOL="$(RUNTOOL)" php_run; \
+ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile PHP_SCRIPT=$(srcdir)/$(SCRIPTPREFIX)$*.php RUNTOOL="$(RUNTOOL)" php_run; \
fi
# Clean: remove the generated .php file
From 205d50a8c96c6ed01cbc94adec6c731b52efb5e4 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sun, 21 Apr 2013 14:05:56 +0100
Subject: [PATCH 115/273] Ruby 1.9 fixes: use ruby -I in Makefile and
workaround clash with 1.9 builtin Complex numbers in the operator example.
---
Examples/Makefile.in | 2 +-
Examples/ruby/operator/runme.rb | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index c0cdb703f..240274278 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -970,7 +970,7 @@ ruby_cpp_static: $(SRCS)
# -----------------------------------------------------------------
ruby_run:
- $(RUNTOOL) $(RUBY) $(RUBY_SCRIPT) $(RUNPIPE)
+ $(RUNTOOL) $(RUBY) -I. $(RUBY_SCRIPT) $(RUNPIPE)
# -----------------------------------------------------------------
# Version display
diff --git a/Examples/ruby/operator/runme.rb b/Examples/ruby/operator/runme.rb
index 518d91e9e..4c1ef3f62 100644
--- a/Examples/ruby/operator/runme.rb
+++ b/Examples/ruby/operator/runme.rb
@@ -3,8 +3,8 @@ require 'example'
include Example
-a = Complex.new(2, 3)
-b = Complex.new(-5, 10)
+a = Example::Complex.new(2, 3)
+b = Example::Complex.new(-5, 10)
puts "a = #{a}"
puts "b = #{b}"
@@ -15,7 +15,7 @@ puts "a*b = #{a*b}"
puts "a-c = #{a-c}"
# This should invoke Complex's copy constructor
-e = Complex.new(a-c)
+e = Example::Complex.new(a-c)
e = a - c
puts "e = #{e}"
From 486eca2faa5d7d61a97d3a4e0f033391be98baf2 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sun, 21 Apr 2013 18:24:37 +0100
Subject: [PATCH 116/273] Disable Ruby free_function test for now.
It is failing in Travis builds with 'ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-linux]' but okay with 'ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]'.
Relying on timely Garbage collection is probably flawed anyway.
---
Examples/ruby/check.list | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Examples/ruby/check.list b/Examples/ruby/check.list
index 131dcbb33..2e581fb82 100644
--- a/Examples/ruby/check.list
+++ b/Examples/ruby/check.list
@@ -2,7 +2,7 @@
class
constants
enum
-free_function
+#free_function
funcptr
funcptr2
functor
From 6e06b50adf814b3e4a519ceaebcb18edd7ac80dd Mon Sep 17 00:00:00 2001
From: Yung Lee
Date: Sun, 21 Apr 2013 01:01:39 +0800
Subject: [PATCH 117/273] Remove non-ascii characters at a comment line in
d.cxx that trouble VC++
---
Source/Modules/d.cxx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Source/Modules/d.cxx b/Source/Modules/d.cxx
index e09e253f8..5d59a2e38 100644
--- a/Source/Modules/d.cxx
+++ b/Source/Modules/d.cxx
@@ -3743,7 +3743,7 @@ private:
String *nspace = getNSpace();
if (nspace) {
// Check the root package/outermost namespace (a class A in module
- // A.B leads to problems if another module A.C is also imported)…
+ // A.B leads to problems if another module A.C is also imported)
if (Len(package) > 0) {
String *dotless_package = NewStringWithSize(package, Len(package) - 1);
if (Cmp(class_name, dotless_package) == 0) {
From bdf98744b165861f67e325b892d2a65c96a2f8fa Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 23 Apr 2013 22:18:42 +0100
Subject: [PATCH 118/273] Fix guilescm_ext_test and chicken_ext_test testcases
---
...ext_test_external.cxx => chicken_ext_test_external.cxx} | 7 +++----
...xt_test_external.cxx => guilescm_ext_test_external.cxx} | 2 +-
2 files changed, 4 insertions(+), 5 deletions(-)
rename Examples/test-suite/chicken/{ext_test_external.cxx => chicken_ext_test_external.cxx} (90%)
rename Examples/test-suite/guilescm/{ext_test_external.cxx => guilescm_ext_test_external.cxx} (90%)
diff --git a/Examples/test-suite/chicken/ext_test_external.cxx b/Examples/test-suite/chicken/chicken_ext_test_external.cxx
similarity index 90%
rename from Examples/test-suite/chicken/ext_test_external.cxx
rename to Examples/test-suite/chicken/chicken_ext_test_external.cxx
index 338151e88..1dd6a7d53 100644
--- a/Examples/test-suite/chicken/ext_test_external.cxx
+++ b/Examples/test-suite/chicken/chicken_ext_test_external.cxx
@@ -1,4 +1,4 @@
-#include
+#include
#include
void test_create(C_word,C_word,C_word) C_noret;
@@ -7,16 +7,15 @@ void test_create(C_word argc, C_word closure, C_word continuation) {
swig_type_info *type;
A *newobj;
C_word *known_space = C_alloc(C_SIZEOF_SWIG_POINTER);
-
+
C_trace("test-create");
if (argc!=2) C_bad_argc(argc,2);
newobj = new A();
-
+
type = SWIG_TypeQuery("A *");
resultobj = SWIG_NewPointerObj(newobj, type, 1);
C_kontinue(continuation, resultobj);
}
-
diff --git a/Examples/test-suite/guilescm/ext_test_external.cxx b/Examples/test-suite/guilescm/guilescm_ext_test_external.cxx
similarity index 90%
rename from Examples/test-suite/guilescm/ext_test_external.cxx
rename to Examples/test-suite/guilescm/guilescm_ext_test_external.cxx
index 713e5d2d0..30fa1ce7b 100644
--- a/Examples/test-suite/guilescm/ext_test_external.cxx
+++ b/Examples/test-suite/guilescm/guilescm_ext_test_external.cxx
@@ -1,4 +1,4 @@
-#include
+#include
#include
SCM test_create()
From 52858d5353a1e656f10561ec8e33df3bca4da520 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sat, 27 Apr 2013 18:40:57 +0100
Subject: [PATCH 119/273] Fix boost intrusive_ptr testcase compilation with
latest boost/gcc
---
Examples/test-suite/li_boost_intrusive_ptr.i | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/Examples/test-suite/li_boost_intrusive_ptr.i b/Examples/test-suite/li_boost_intrusive_ptr.i
index 2efa998a9..4916d0285 100644
--- a/Examples/test-suite/li_boost_intrusive_ptr.i
+++ b/Examples/test-suite/li_boost_intrusive_ptr.i
@@ -13,9 +13,12 @@
%warnfilter(SWIGWARN_LANG_SMARTPTR_MISSING) KlassDerived;
%warnfilter(SWIGWARN_LANG_SMARTPTR_MISSING) KlassDerivedDerived;
-%inline %{
-#include "boost/shared_ptr.hpp"
-#include "boost/intrusive_ptr.hpp"
+%{
+template void intrusive_ptr_add_ref(const T* r) { r->addref(); }
+template void intrusive_ptr_release(const T* r) { r->release(); }
+
+#include
+#include
#include
// Uncomment macro below to turn on intrusive_ptr memory leak checking as described above
@@ -102,8 +105,6 @@
%ignore IgnoredRefCountingBase;
%ignore *::operator=;
-%ignore intrusive_ptr_add_ref;
-%ignore intrusive_ptr_release;
%newobject pointerownertest();
%newobject smartpointerpointerownertest();
@@ -430,10 +431,6 @@ template struct Pair : Base {
Pair pair_id2(Pair p) { return p; }
SwigBoost::intrusive_ptr< Pair > pair_id1(SwigBoost::intrusive_ptr< Pair > p) { return p; }
-template void intrusive_ptr_add_ref(const T* r) { r->addref(); }
-
-template void intrusive_ptr_release(const T* r) { r->release(); }
-
long use_count(const SwigBoost::shared_ptr& sptr) {
return sptr.use_count();
}
From 99231457dbe6436df46c8d4d6b22aa906cf48e6d Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sun, 28 Apr 2013 17:59:40 +0100
Subject: [PATCH 120/273] Fixes for warnings issued by clang
---
Source/Modules/lua.cxx | 2 --
Source/Modules/modula3.cxx | 19 -------------------
2 files changed, 21 deletions(-)
diff --git a/Source/Modules/lua.cxx b/Source/Modules/lua.cxx
index cfb3a3f5b..a33898a2f 100644
--- a/Source/Modules/lua.cxx
+++ b/Source/Modules/lua.cxx
@@ -106,7 +106,6 @@ private:
File *f_wrappers;
File *f_init;
File *f_initbeforefunc;
- String *PrefixPlusUnderscore;
String *s_cmd_tab; // table of command names
String *s_var_tab; // table of global variables
String *s_const_tab; // table of global constants
@@ -150,7 +149,6 @@ public:
f_wrappers(0),
f_init(0),
f_initbeforefunc(0),
- PrefixPlusUnderscore(0),
s_cmd_tab(0),
s_var_tab(0),
s_const_tab(0),
diff --git a/Source/Modules/modula3.cxx b/Source/Modules/modula3.cxx
index ffb172f8f..4c56d0664 100644
--- a/Source/Modules/modula3.cxx
+++ b/Source/Modules/modula3.cxx
@@ -204,9 +204,6 @@ private:
String *proxy_class_name;
String *variable_name; //Name of a variable being wrapped
String *variable_type; //Type of this variable
- String *enumeration_name; //Name of the current enumeration type
- Hash *enumeration_items; //and its members
- int enumeration_max;
Hash *enumeration_coll; //Collection of all enumerations.
/* The items are nodes with members:
"items" - hash of with key 'itemname' and content 'itemvalue'
@@ -268,9 +265,6 @@ MODULA3():
proxy_class_name(NULL),
variable_name(NULL),
variable_type(NULL),
- enumeration_name(NULL),
- enumeration_items(NULL),
- enumeration_max(0),
enumeration_coll(NULL),
constant_values(NULL),
constantfilename(NULL),
@@ -1784,19 +1778,6 @@ MODULA3():
}
}
-#if 0
- void generateEnumerationItem(const String *name, const String *value, int numvalue) {
- String *oldsymname = Getattr(enumeration_items, value);
- if (oldsymname != NIL) {
- Swig_warning(WARN_MODULA3_BAD_ENUMERATION, input_file, line_number, "The value <%s> is already assigned to <%s>.\n", value, oldsymname);
- }
- Setattr(enumeration_items, value, name);
- if (enumeration_max < numvalue) {
- enumeration_max = numvalue;
- }
- }
-#endif
-
void emitEnumeration(File *file, String *name, Node *n) {
Printf(file, "%s = {", name);
int i;
From e0e4a4db6d48f0fc1b5fa638650369af1e1c5507 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Sun, 28 Apr 2013 18:41:11 +0100
Subject: [PATCH 121/273] Warning fix for ccache-swig tests
clang deletes the output 'file' whereas gcc does not if the output
'file' is actually a directory.
---
CCache/test.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CCache/test.sh b/CCache/test.sh
index 9581c85e3..f64c3e3de 100755
--- a/CCache/test.sh
+++ b/CCache/test.sh
@@ -142,7 +142,7 @@ basetests() {
testname="non-regular"
mkdir testd
$CCACHE_COMPILE -o testd -c test1.c > /dev/null 2>&1
- rmdir testd
+ rm -rf testd
checkstat 'output to a non-regular file' 1
testname="no-input"
@@ -315,7 +315,7 @@ swigtests() {
testname="non-regular"
mkdir testd
$CCACHE_COMPILE -o testd -java testswig1.i > /dev/null 2>&1
- rmdir testd
+ rm -rf testd
checkstat 'output to a non-regular file' 1
testname="no-input"
From 7dfe4a065368a8658ed0f2ecf58dfc2cf981713e Mon Sep 17 00:00:00 2001
From: Geert Janssens
Date: Thu, 7 Mar 2013 14:39:38 +0100
Subject: [PATCH 122/273] Make guile test suite default to scm api
In other words guilescm becomes guile.
Deprecated gh api tests are moved to guilegh.
---
Examples/test-suite/guile/Makefile.in | 13 +++++++--
.../guile_ext_test_external.cxx} | 2 +-
.../guile_ext_test_runme.scm} | 2 +-
.../{guilescm_ext_test.i => guile_ext_test.i} | 2 +-
.../{guilescm => guilegh}/Makefile.in | 29 +++----------------
Makefile.in | 8 ++---
configure.ac | 12 ++++----
7 files changed, 27 insertions(+), 41 deletions(-)
rename Examples/test-suite/{guilescm/guilescm_ext_test_external.cxx => guile/guile_ext_test_external.cxx} (90%)
rename Examples/test-suite/{guilescm/guilescm_ext_test_runme.scm => guile/guile_ext_test_runme.scm} (82%)
rename Examples/test-suite/{guilescm_ext_test.i => guile_ext_test.i} (93%)
rename Examples/test-suite/{guilescm => guilegh}/Makefile.in (50%)
diff --git a/Examples/test-suite/guile/Makefile.in b/Examples/test-suite/guile/Makefile.in
index c6be92c32..455c26a66 100644
--- a/Examples/test-suite/guile/Makefile.in
+++ b/Examples/test-suite/guile/Makefile.in
@@ -2,14 +2,16 @@
# Makefile for guile test-suite
#######################################################################
+EXTRA_TEST_CASES += guile_ext_test.externaltest
+
LANGUAGE = guile
-VARIANT = _gh
+VARIANT =
SCRIPTSUFFIX = _runme.scm
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
GUILE = @GUILE@
-GUILE_RUNTIME=-runtime
+GUILE_RUNTIME=
C_TEST_CASES = long_long \
list_vector \
@@ -20,7 +22,7 @@ C_TEST_CASES = long_long \
include $(srcdir)/../common.mk
# Overridden variables here
-# none!
+INCLUDES += -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/guile
# Custom tests - tests with additional commandline options
%.multicpptest: SWIGOPT += $(GUILE_RUNTIME)
@@ -41,6 +43,11 @@ include $(srcdir)/../common.mk
+$(swig_and_compile_multi_cpp)
$(run_testcase)
+%.externaltest:
+ $(setup)
+ +$(swig_and_compile_external)
+ $(run_testcase)
+
# Runs the testcase. A testcase is only run if
# a file is found which has _runme.scm appended after the testcase name.
run_testcase = \
diff --git a/Examples/test-suite/guilescm/guilescm_ext_test_external.cxx b/Examples/test-suite/guile/guile_ext_test_external.cxx
similarity index 90%
rename from Examples/test-suite/guilescm/guilescm_ext_test_external.cxx
rename to Examples/test-suite/guile/guile_ext_test_external.cxx
index 30fa1ce7b..c4f906a97 100644
--- a/Examples/test-suite/guilescm/guilescm_ext_test_external.cxx
+++ b/Examples/test-suite/guile/guile_ext_test_external.cxx
@@ -1,4 +1,4 @@
-#include
+#include
#include
SCM test_create()
diff --git a/Examples/test-suite/guilescm/guilescm_ext_test_runme.scm b/Examples/test-suite/guile/guile_ext_test_runme.scm
similarity index 82%
rename from Examples/test-suite/guilescm/guilescm_ext_test_runme.scm
rename to Examples/test-suite/guile/guile_ext_test_runme.scm
index ff3df064b..452b08ee7 100644
--- a/Examples/test-suite/guilescm/guilescm_ext_test_runme.scm
+++ b/Examples/test-suite/guile/guile_ext_test_runme.scm
@@ -1,4 +1,4 @@
-(dynamic-call "scm_init_guilescm_ext_test_module" (dynamic-link "./libguilescm_ext_test.so"))
+(dynamic-call "scm_init_guile_ext_test_module" (dynamic-link "./libguile_ext_test.so"))
; This is a test for SF Bug 1573892
; If IsPointer is called before TypeQuery, the test-is-pointer will fail
diff --git a/Examples/test-suite/guilescm_ext_test.i b/Examples/test-suite/guile_ext_test.i
similarity index 93%
rename from Examples/test-suite/guilescm_ext_test.i
rename to Examples/test-suite/guile_ext_test.i
index fd5655d4f..170695f6c 100644
--- a/Examples/test-suite/guilescm_ext_test.i
+++ b/Examples/test-suite/guile_ext_test.i
@@ -1,4 +1,4 @@
-%module guilescm_ext_test
+%module guile_ext_test
/* just use the imports_a.h header... for this test we only need a class */
%{
diff --git a/Examples/test-suite/guilescm/Makefile.in b/Examples/test-suite/guilegh/Makefile.in
similarity index 50%
rename from Examples/test-suite/guilescm/Makefile.in
rename to Examples/test-suite/guilegh/Makefile.in
index ba1cba440..3a03d5f82 100644
--- a/Examples/test-suite/guilescm/Makefile.in
+++ b/Examples/test-suite/guilegh/Makefile.in
@@ -2,16 +2,13 @@
# Makefile for guile test-suite (with SCM API)
#######################################################################
-EXTRA_TEST_CASES += guilescm_ext_test.externaltest
-
include ../guile/Makefile
# Overridden variables here
-INCLUDES += -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/guilescm
-VARIANT =
+VARIANT = _gh
# Refer to the guile directory for the run scripts
SCRIPTPREFIX = ../guile/
-GUILE_RUNTIME=
+GUILE_RUNTIME=-runtime
# Custom tests - tests with additional commandline options
# none!
@@ -25,25 +22,7 @@ run_testcase = \
setup = \
if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
- echo "$(ACTION)ing testcase $* (with run test) under $(LANGUAGE) (with SCM API)" ; \
+ echo "$(ACTION)ing testcase $* (with run test) under $(LANGUAGE) (with GH API)" ; \
else \
- echo "$(ACTION)ing testcase $* under $(LANGUAGE) (with SCM API)" ; \
- fi
-
-%.externaltest:
- $(local_setup)
- +$(swig_and_compile_external)
- $(local_run_testcase)
-
-# Same as setup and run_testcase, but without the SCRIPTPREFIX (so the runme comes from the guilescm directory)
-local_setup = \
- if [ -f $(srcdir)/$*$(SCRIPTSUFFIX) ]; then \
- echo "$(ACTION)ing testcase $* (with run test) under $(LANGUAGE) (with SCM API)" ; \
- else \
- echo "$(ACTION)ing testcase $* under $(LANGUAGE) (with SCM API)" ; \
- fi
-
-local_run_testcase = \
- if [ -f $(srcdir)/$*$(SCRIPTSUFFIX) ]; then \
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(GUILE) -l $(srcdir)/$*$(SCRIPTSUFFIX); \
+ echo "$(ACTION)ing testcase $* under $(LANGUAGE) (with GH API)" ; \
fi
diff --git a/Makefile.in b/Makefile.in
index c47cdbe7c..6b7a99220 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -59,7 +59,7 @@ skip-tcl = test -n "@SKIP_TCL@"
skip-perl5 = test -n "@SKIP_PERL5@"
skip-python = test -n "@SKIP_PYTHON@"
skip-java = test -n "@SKIP_JAVA@"
-skip-guilescm = test -n "@SKIP_GUILESCM@"
+skip-guilegh = test -n "@SKIP_GUILEGH@"
skip-guile = test -n "@SKIP_GUILE@"
skip-mzscheme = test -n "@SKIP_MZSCHEME@"
skip-ruby = test -n "@SKIP_RUBY@"
@@ -247,7 +247,7 @@ check-test-suite: \
check-perl5-test-suite \
check-python-test-suite \
check-java-test-suite \
- check-guilescm-test-suite \
+ check-guilegh-test-suite \
check-guile-test-suite \
check-mzscheme-test-suite \
check-ruby-test-suite \
@@ -300,7 +300,7 @@ all-test-suite: \
all-perl5-test-suite \
all-python-test-suite \
all-java-test-suite \
- all-guilescm-test-suite \
+ all-guilegh-test-suite \
all-guile-test-suite \
all-mzscheme-test-suite \
all-ruby-test-suite \
@@ -329,7 +329,7 @@ broken-test-suite: \
broken-perl5-test-suite \
broken-python-test-suite \
broken-java-test-suite \
- broken-guilescm-test-suite \
+ broken-guilegh-test-suite \
broken-guile-test-suite \
broken-mzscheme-test-suite \
broken-ruby-test-suite \
diff --git a/configure.ac b/configure.ac
index 83b46f520..7b259c78d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2268,16 +2268,16 @@ AC_SUBST(SKIP_JAVA)
SKIP_GUILE=
-if test -z "$GUILEINCLUDE" || test -z "$GUILELIB" || test -z "$GUILE_GH_INTERFACE"; then
+if test -z "$GUILEINCLUDE" || test -z "$GUILELIB" || test -z "$GUILE_SCM_INTERFACE"; then
SKIP_GUILE="1"
fi
AC_SUBST(SKIP_GUILE)
-SKIP_GUILESCM=
-if test -z "$GUILEINCLUDE" || test -z "$GUILELIB" || test -z "$GUILE_SCM_INTERFACE"; then
- SKIP_GUILESCM="1"
+SKIP_GUILEGH=
+if test -z "$GUILEINCLUDE" || test -z "$GUILELIB" || test -z "$GUILE_GH_INTERFACE"; then
+ SKIP_GUILEGH="1"
fi
-AC_SUBST(SKIP_GUILESCM)
+AC_SUBST(SKIP_GUILEGH)
SKIP_MZSCHEME=
@@ -2454,7 +2454,7 @@ AC_CONFIG_FILES([ \
Examples/test-suite/csharp/Makefile \
Examples/test-suite/d/Makefile \
Examples/test-suite/guile/Makefile \
- Examples/test-suite/guilescm/Makefile \
+ Examples/test-suite/guilegh/Makefile \
Examples/test-suite/java/Makefile \
Examples/test-suite/mzscheme/Makefile \
Examples/test-suite/ocaml/Makefile \
From 2c23a5d2cdbe45c7408aa50c667b5e4647ef05b6 Mon Sep 17 00:00:00 2001
From: Geert Janssens
Date: Mon, 4 Mar 2013 22:12:09 +0100
Subject: [PATCH 123/273] Add support for guile 2.0: update swg and interface
files
Note: only the scm interface is considered.
---
Lib/guile/ghinterface.i | 46 ++++++++++++++
Lib/guile/guile_gh_run.swg | 34 ++++++++++-
Lib/guile/guile_scm_run.swg | 117 ++++++++++++++++++++++++++++++++----
Lib/guile/typemaps.i | 6 +-
4 files changed, 186 insertions(+), 17 deletions(-)
diff --git a/Lib/guile/ghinterface.i b/Lib/guile/ghinterface.i
index c5fda62cf..022c0f568 100644
--- a/Lib/guile/ghinterface.i
+++ b/Lib/guile/ghinterface.i
@@ -1,3 +1,5 @@
+#ifdef GUILE_VERSION_1_6
+
#define gh_append2(a, b) scm_append(scm_listify(a, b, SCM_UNDEFINED))
#define gh_apply(a, b) scm_apply(a, b, SCM_EOL)
#define gh_bool2scm SCM_BOOL
@@ -37,3 +39,47 @@
#define gh_vector_ref scm_vector_ref
#define gh_vector_set_x scm_vector_set_x
#define gh_char2scm SCM_MAKE_CHAR
+
+#else
+
+#define gh_append2(a, b) scm_append(scm_listify(a, b, SCM_UNDEFINED))
+#define gh_apply(a, b) scm_apply(a, b, SCM_EOL)
+#define gh_bool2scm scm_from_bool
+#define gh_boolean_p scm_is_bool
+#define gh_car SCM_CAR
+#define gh_cdr SCM_CDR
+#define gh_cons scm_cons
+#define gh_double2scm scm_from_double
+#define gh_int2scm scm_from_long
+#define gh_length(lst) scm_to_ulong(scm_length(lst))
+#define gh_list scm_listify
+#define gh_list_to_vector scm_vector
+#define gh_make_vector scm_make_vector
+#define gh_null_p scm_is_null
+#define gh_number_p scm_is_number
+#define gh_pair_p scm_is_pair
+#define gh_scm2bool scm_is_true
+#define gh_scm2char SCM_CHAR
+#define gh_scm2double scm_to_double
+#define gh_scm2int scm_to_int
+#define gh_scm2long scm_to_long
+#define gh_scm2short scm_to_short
+#define gh_scm2newstr SWIG_Guile_scm2newstr
+#define gh_scm2ulong scm_to_ulong
+#define gh_scm2ushort scm_to_ushort
+#define gh_scm2uint scm_to_uint
+#define gh_ulong2scm scm_from_ulong
+#define gh_long2scm scm_from_long
+#define gh_str02scm(str) str ? scm_from_locale_string(str) : SCM_BOOL_F
+#define gh_long_long2scm scm_from_long_long
+#define gh_scm2long_long scm_to_long_long
+#define gh_ulong_long2scm scm_from_ulong_long
+#define gh_scm2ulong_long scm_to_ulong_long
+#define gh_string_p scm_is_string
+#define gh_vector_length scm_c_vector_length
+#define gh_vector_p scm_is_vector
+#define gh_vector_ref scm_vector_ref
+#define gh_vector_set_x scm_vector_set_x
+#define gh_char2scm SCM_MAKE_CHAR
+
+#endif
\ No newline at end of file
diff --git a/Lib/guile/guile_gh_run.swg b/Lib/guile/guile_gh_run.swg
index d8cc56b91..8616875da 100644
--- a/Lib/guile/guile_gh_run.swg
+++ b/Lib/guile/guile_gh_run.swg
@@ -15,6 +15,36 @@
extern "C" {
#endif
+
+/* In the code below, use guile 2.0 compatible functions where possible.
+ Functions that don't exist in older versions will be mapped to
+ a deprecated equivalent for those versions only */
+/* ... setup guile 2-like interface for guile 1.6 */
+#if (SCM_MAJOR_VERSION == 1) && (SCM_MINOR_VERSION <= 6)
+
+# define scm_from_locale_keyword scm_c_make_keyword
+# define scm_from_locale_symbol scm_str2symbol
+# define scm_is_null SCM_NULLP
+# define scm_is_true SCM_NFALSEP
+# define scm_is_string SCM_STRINGP
+
+/* Used later on to setup different code paths where it's
+ not possible to use a guile 2-like interface */
+# define GUILE_VERSION_1_6
+
+#endif
+
+/* ... setup guile 2-like interface for guile 1.6 and 1.8 */
+#if defined (SCM_MAJOR_VERSION) && (SCM_MAJOR_VERSION < 2)
+
+static SCM
+scm_module_variable (SCM module, SCM sym)
+{
+ return scm_sym2var (sym, scm_module_lookup_closure (module), SCM_BOOL_F);
+}
+
+#endif
+
typedef SCM (*swig_guile_proc)();
#define SWIG_malloc(size) \
@@ -150,7 +180,7 @@ SWIG_Guile_ConvertPtr(swig_module_info *module, SCM s, void **result,
{
swig_cast_info *cast;
swig_type_info *from;
- if (SCM_NULLP(s)) {
+ if (scm_is_null(s)) {
*result = NULL;
return SWIG_OK;
} else if (SCM_NIMP(s)) {
@@ -246,7 +276,7 @@ SWIG_Guile_GetArgs (SCM *dest, SCM rest,
}
for (; i= 2
+// scm_c_define_gsubr takes a different parameter type
+// depending on the guile version
+
+typedef scm_t_subr swig_guile_proc;
+#else
typedef SCM (*swig_guile_proc)();
+#endif
typedef SCM (*guile_destructor)(SCM);
typedef struct swig_guile_clientdata {
@@ -22,10 +59,17 @@ typedef struct swig_guile_clientdata {
#define SWIG_scm2str(s) \
SWIG_Guile_scm2newstr(s, NULL)
-#define SWIG_malloc(size) \
- SCM_MUST_MALLOC(size)
-#define SWIG_free(mem) \
- scm_must_free(mem)
+#ifdef GUILE_VERSION_1_6
+# define SWIG_malloc(size) \
+ SCM_MUST_MALLOC(size)
+# define SWIG_free(mem) \
+ scm_must_free(mem)
+#else
+# define SWIG_malloc(size) \
+ scm_malloc(size)
+# define SWIG_free(mem) \
+ free(mem)
+#endif
#define SWIG_ConvertPtr(s, result, type, flags) \
SWIG_Guile_ConvertPtr(s, result, type, flags)
#define SWIG_MustGetPtr(s, type, argnum, flags) \
@@ -42,7 +86,7 @@ typedef struct swig_guile_clientdata {
SWIG_Guile_IsPointer(object)
#define SWIG_contract_assert(expr, msg) \
if (!(expr)) \
- scm_error(scm_str2symbol("swig-contract-assertion-failed"), \
+ scm_error(scm_from_locale_symbol("swig-contract-assertion-failed"), \
(char *) FUNC_NAME, (char *) msg, \
SCM_EOL, SCM_BOOL_F); else
@@ -61,15 +105,25 @@ SWIGINTERN char *
SWIG_Guile_scm2newstr(SCM str, size_t *len) {
#define FUNC_NAME "SWIG_Guile_scm2newstr"
char *ret;
+# ifndef GUILE_VERSION_1_6
+ char *tmp;
+# endif
size_t l;
- SCM_ASSERT (SCM_STRINGP(str), str, 1, FUNC_NAME);
-
- l = SCM_STRING_LENGTH(str);
+ SCM_ASSERT (scm_is_string(str), str, 1, FUNC_NAME);
+ l = scm_c_string_length(str);
+
ret = (char *) SWIG_malloc( (l + 1) * sizeof(char));
if (!ret) return NULL;
+# ifdef GUILE_VERSION_1_6
memcpy(ret, SCM_STRING_CHARS(str), l);
+# else
+ tmp = scm_to_locale_string(str);
+ memcpy(ret, tmp, l);
+ free(tmp);
+# endif
+
ret[l] = '\0';
if (len) *len = l;
return ret;
@@ -86,7 +140,7 @@ static SCM swig_keyword = SCM_EOL;
static SCM swig_symbol = SCM_EOL;
#define SWIG_Guile_GetSmob(x) \
- ( SCM_NNULLP(x) && SCM_INSTANCEP(x) && SCM_NFALSEP(scm_slot_exists_p(x, swig_symbol)) \
+ ( !scm_is_null(x) && SCM_INSTANCEP(x) && scm_is_true(scm_slot_exists_p(x, swig_symbol)) \
? scm_slot_ref(x, swig_symbol) : (x) )
SWIGINTERN SCM
@@ -361,6 +415,7 @@ ensure_smob_tag(SCM swig_module,
const char *smob_name,
const char *scheme_variable_name)
{
+#ifdef GUILE_VERSION_1_6
SCM variable = scm_sym2var(scm_str2symbol(scheme_variable_name),
scm_module_lookup_closure(swig_module),
SCM_BOOL_T);
@@ -375,6 +430,20 @@ ensure_smob_tag(SCM swig_module,
"SWIG_Guile_Init");
return 0;
}
+#else
+ SCM variable = scm_module_variable(swig_module,
+ scm_from_locale_symbol(scheme_variable_name));
+ if (scm_is_false(variable)) {
+ *tag_variable = scm_make_smob_type((char*)scheme_variable_name, 0);
+ scm_c_module_define(swig_module, scheme_variable_name,
+ scm_from_ulong(*tag_variable));
+ return 1;
+ }
+ else {
+ *tag_variable = scm_to_ulong(SCM_VARIABLE_REF(variable));
+ return 0;
+ }
+#endif
}
SWIGINTERN SCM
@@ -409,8 +478,8 @@ SWIG_Guile_Init ()
}
swig_make_func = scm_permanent_object(
scm_variable_ref(scm_c_module_lookup(scm_c_resolve_module("oop goops"), "make")));
- swig_keyword = scm_permanent_object(scm_c_make_keyword((char*) "init-smob"));
- swig_symbol = scm_permanent_object(scm_str2symbol("swig-smob"));
+ swig_keyword = scm_permanent_object(scm_from_locale_keyword((char*) "init-smob"));
+ swig_symbol = scm_permanent_object(scm_from_locale_symbol("swig-smob"));
#ifdef SWIG_INIT_RUNTIME_MODULE
SWIG_INIT_RUNTIME_MODULE
#endif
@@ -426,6 +495,7 @@ SWIG_Guile_GetModule(void *SWIGUNUSEDPARM(clientdata))
module = SWIG_Guile_Init();
+#ifdef GUILE_VERSION_1_6
variable = scm_sym2var(scm_str2symbol("swig-type-list-address" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME),
scm_module_lookup_closure(module),
SCM_BOOL_T);
@@ -434,6 +504,15 @@ SWIG_Guile_GetModule(void *SWIGUNUSEDPARM(clientdata))
} else {
return (swig_module_info *) scm_num2ulong(SCM_VARIABLE_REF(variable), 0, "SWIG_Guile_Init");
}
+#else
+ variable = scm_module_variable(module,
+ scm_from_locale_symbol("swig-type-list-address" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME));
+ if (scm_is_false(variable)) {
+ return NULL;
+ } else {
+ return (swig_module_info *) scm_to_ulong(SCM_VARIABLE_REF(variable));
+ }
+#endif
}
SWIGINTERN void
@@ -444,11 +523,17 @@ SWIG_Guile_SetModule(swig_module_info *swig_module)
module = SWIG_Guile_Init();
+#ifdef GUILE_VERSION_1_6
variable = scm_sym2var(scm_str2symbol("swig-type-list-address" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME),
scm_module_lookup_closure(module),
SCM_BOOL_T);
SCM_VARIABLE_SET(variable, scm_ulong2num((unsigned long) swig_module));
+#else
+ scm_module_define(module,
+ scm_from_locale_symbol("swig-type-list-address" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME),
+ scm_from_ulong((unsigned long) swig_module));
+#endif
}
SWIGINTERN int
@@ -460,7 +545,11 @@ SWIG_Guile_GetArgs (SCM *dest, SCM rest,
int num_args_passed = 0;
for (i = 0; i
Date: Thu, 7 Mar 2013 11:55:01 +0100
Subject: [PATCH 124/273] Add support for guile 2.0: configure and makefiles.
Note: guile-config is badly broken for guile 2. So
the guile configure section has been rewritten to
use pkg-config instead.
Manually resolved conflicts:
Examples/Makefile.in
---
Examples/Makefile.in | 31 +++---
Examples/guile/Makefile.in | 8 +-
Makefile.in | 2 +-
configure.ac | 204 ++++++++++++++++++-------------------
4 files changed, 122 insertions(+), 123 deletions(-)
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 240274278..6b4ca778e 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -455,11 +455,11 @@ octave_clean:
# Make sure these locate your Guile installation
GUILE = @GUILE@
-GUILE_INCLUDE = @GUILEINCLUDE@
-GUILE_LIB = @GUILELIB@
+GUILE_CFLAGS = @GUILE_CFLAGS@
GUILE_SO = @GUILE_SO@
+GUILE_LIBS = @GUILE_LIBS@
+GUILE_LIBOPTS = @LIBS@ $(SYSLIBS)
GUILE_LIBPREFIX = lib
-GUILE_LIBOPTS = @GUILELINK@ @LIBS@ $(SYSLIBS)
GUILE_SCRIPT = $(RUNME).scm
#------------------------------------------------------------------
@@ -467,13 +467,14 @@ GUILE_SCRIPT = $(RUNME).scm
#------------------------------------------------------------------
guile: $(SRCS)
$(SWIG) -guile -scm -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
- $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ISRCS) $(SRCS)
+ $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ISRCS) $(SRCS)
$(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
-guile_cpp: $(SRCS)
+guile_cpp: $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
+$(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO): $(SRCS)
$(SWIG) -c++ -guile -scm -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
- $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
- $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
+ $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
+ $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $@
guile_externalhdr:
$(SWIG) -guile -external-runtime $(TARGET)
@@ -483,12 +484,12 @@ guile_externalhdr:
#------------------------------------------------------------------
guile_gh: $(SRCS)
$(SWIG) -guile -gh -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
- $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ISRCS) $(SRCS)
+ $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ISRCS) $(SRCS)
$(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
guile_gh_cpp: $(SRCS)
$(SWIG) -c++ -guile -gh -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
- $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
+ $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
$(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
# -----------------------------------------------------------------
@@ -497,12 +498,12 @@ guile_gh_cpp: $(SRCS)
guile_passive: $(SRCS)
$(SWIG) -guile -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
- $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ISRCS) $(SRCS)
+ $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ISRCS) $(SRCS)
$(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
guile_passive_cpp: $(SRCS)
$(SWIG) -c++ -guile -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
- $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
+ $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
$(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
# -----------------------------------------------------------------
@@ -513,23 +514,23 @@ guile_static: $(SRCS)
$(SWIG) -guile -lguilemain.i -Linkage ltdlmod $(SWIGOPT) $(INTERFACEPATH)
$(CC) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) \
-DSWIGINIT="SCM scm_init_$(TARGET)_module(void); scm_init_$(TARGET)_module();" \
- $(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
+ $(GUILE_CFLAGS) $(LIBS) -L$(GUILE_LIBS) $(GUILE_LIBOPTS) -o $(TARGET)-guile
guile_static_cpp: $(SRCS)
$(SWIG) -c++ -guile -lguilemain.i -Linkage ltdlmod $(SWIGOPT) $(INTERFACEPATH)
$(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
-DSWIGINIT="SCM scm_init_$(TARGET)_module(void); scm_init_$(TARGET)_module();" \
- $(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
+ $(GUILE_CFLAGS) $(LIBS) -L$(GUILE_LIBS) $(GUILE_LIBOPTS) -o $(TARGET)-guile
guile_simple: $(SRCS)
$(SWIG) -guile -lguilemain.i -Linkage simple $(SWIGOPT) $(INTERFACEPATH)
$(CC) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) \
- $(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
+ $(GUILE_CFLAGS) $(LIBS) -L$(GUILE_LIBS) $(GUILE_LIBOPTS) -o $(TARGET)-guile
guile_simple_cpp: $(SRCS)
$(SWIG) -c++ -guile -lguilemain.i -Linkage simple $(SWIGOPT) $(INTERFACEPATH)
$(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
- $(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
+ $(GUILE_CFLAGS) $(LIBS) -L$(GUILE_LIBS) $(GUILE_LIBOPTS) -o $(TARGET)-guile
# -----------------------------------------------------------------
# Running a Guile example
diff --git a/Examples/guile/Makefile.in b/Examples/guile/Makefile.in
index 9e6f9f6c6..3110ac994 100644
--- a/Examples/guile/Makefile.in
+++ b/Examples/guile/Makefile.in
@@ -7,8 +7,8 @@ SWIG = ../$(top_srcdir)/preinst-swig
CC = @CC@
CXX = @CXX@
CFLAGS = @PLATFLAGS@
-GUILEINCLUDE = @GUILEINCLUDE@
-GUILELINK = @GUILELINK@
+GUILE_CFLAGS = @GUILE_CFLAGS@
+GUILE_LIBS = @GUILE_LIBS@
SWIGOPT =
WRAP = $(IFILE:.i=_wrap.c)
@@ -31,10 +31,10 @@ guile_clean:
sub-all:
$(SWIG) -guile $(SWIGOPT) $(IFILE)
- $(CC) $(CFLAGS) -o $(TARGET) $(SRCS) $(WRAP) $(GUILEINCLUDE) $(GUILELINK)
+ $(CC) $(CFLAGS) -o $(TARGET) $(SRCS) $(WRAP) $(GUILE_CFLAGS) $(GUILE_LIBS)
sub-all-cxx:
$(SWIG) -c++ -guile $(SWIGOPT) $(IFILE)
- $(CXX) $(CFLAGS) -o $(TARGET) $(SRCS) $(CXXWRAP) $(GUILEINCLUDE) $(GUILELINK)
+ $(CXX) $(CFLAGS) -o $(TARGET) $(SRCS) $(CXXWRAP) $(GUILE_CFLAGS) $(GUILE_LIBS)
# Makefile ends here
diff --git a/Makefile.in b/Makefile.in
index 6b7a99220..c33889587 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -59,7 +59,7 @@ skip-tcl = test -n "@SKIP_TCL@"
skip-perl5 = test -n "@SKIP_PERL5@"
skip-python = test -n "@SKIP_PYTHON@"
skip-java = test -n "@SKIP_JAVA@"
-skip-guilegh = test -n "@SKIP_GUILEGH@"
+skip-guilegh = test -n "@SKIP_GUILEGH@"
skip-guile = test -n "@SKIP_GUILE@"
skip-mzscheme = test -n "@SKIP_MZSCHEME@"
skip-ruby = test -n "@SKIP_RUBY@"
diff --git a/configure.ac b/configure.ac
index 7b259c78d..28696529d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -157,7 +157,7 @@ if test "$GCC" = yes; then
else
ISYSTEM="-I"
fi
-
+AC_MSG_NOTICE(ISYSTEM: $ISYSTEM)
dnl Info for building shared libraries ... in order to run the examples
@@ -1148,125 +1148,123 @@ AC_SUBST(NDKBUILD)
# Look for Guile
#----------------------------------------------------------------
-GUILEPACKAGE=
-GUILEINCLUDE=
GUILE=
-GUILELIB=
-GUILELINK=
-GUILEPKGDATADIR=
+GUILE_CFLAGS=
+GUILE_LIBS=
-AC_ARG_WITH(guile-config,AS_HELP_STRING([--without-guile], [Disable Guile])
-AS_HELP_STRING([--with-guile-config=path], [Set location of guile-config]),[ GUILE_CONFIG="$withval"], [GUILE_CONFIG=])
-AC_ARG_WITH(guilepackage, AS_HELP_STRING([--with-guile-prefix=path], [Set location of Guile tree]),[
- GUILEPACKAGE="$withval"])
-AC_ARG_WITH(guile,[ --with-guile=path Set location of Guile executable],[
- GUILE="$withval"], [GUILE=yes])
-AC_ARG_WITH(guileincl,[ --with-guileincl=path Set location of Guile include directory],[
- GUILEINCLUDE="$withval"])
-AC_ARG_WITH(guilelib,[ --with-guilelib=path Set location of Guile library directory],[
- GUILELIB="$withval"])
+AC_ARG_WITH(guile, AS_HELP_STRING([--without-guile], [Disable Guile])
+AS_HELP_STRING([--with-guile=path], [Set location of Guile executable]),[GUILE="$withval"], [GUILE=yes])
+AC_ARG_WITH(guile-cflags,[ --with-guile-cflags=cflags Set cflags required to compile against Guile],[
+ GUILE_CFLAGS="$withval"])
+AC_ARG_WITH(guile-libs,[ --with-guile-libs=ldflags Set ldflags needed to link with Guile],[
+ GUILE_LIBS="$withval"])
# First, check for "--without-guile" or "--with-guile=no".
if test x"${GUILE}" = xno -o x"${with_alllang}" = xno ; then
-AC_MSG_NOTICE([Disabling Guile])
+ AC_MSG_NOTICE([Disabling Guile])
+ GUILE=
+ GUILE_CFLAGS=
+ GUILE_LIBS=
else
-if test -z "$GUILE_CONFIG" ; then
- AC_PATH_PROG(GUILE_CONFIG, guile-config)
-fi
-
-if test -n "$GUILE_CONFIG" ; then
- GUILEPACKAGE="`$GUILE_CONFIG info prefix`"
- GUILEINCLUDE="`$GUILE_CONFIG info includedir`"
- GUILELIB="`$GUILE_CONFIG info libdir`"
- GUILE="`$GUILE_CONFIG info bindir`/guile"
- GUILELINK="`$GUILE_CONFIG link`"
- GUILEPKGDATADIR="`$GUILE_CONFIG info pkgdatadir`"
-fi
-
- if test -z "$GUILE" -o "x$GUILE" = xyes; then
- if test -n "$GUILEPACKAGE"; then
- GUILE="$GUILEPACKAGE/bin/guile"
- else
- GUILE=
- fi
+ # Use pkg-config to find guile specific config parameters
+ # Note: if guile is not installed in a standard system path
+ # you can set the environment variable PKG_CONFIG_PATH to
+ # the directory where the guile package config file is stored
+ AC_PATH_PROG(PKG_CONFIG,pkg-config)
+ if test "x$PKG_CONFIG" = x; then
+ # @*%&$ Ximian programmers renamed this application
+ AC_PATH_PROG(PKG_CONFIG,pkgconfig)
fi
+ if test "x$PKG_CONFIG" = x; then
+ AC_MSG_NOTICE([Could not find the pkg-config (or pkgconfig) program required to set up Guile. Disabling Guile],)
+ GUILE=
+ GUILE_CFLAGS=
+ GUILE_LIBS=""
+ else
- if test -z "$GUILEINCLUDE"; then
- if test -n "$GUILEPACKAGE"; then
- GUILEINCLUDE="$GUILEPACKAGE/include"
- fi
- fi
+ # If the user has given these values, cache them to override the
+ # detected values.
+ if test "x$GUILE_LIBS" != x; then
+ saved_GUILE_LIBS="$GUILE_LIBS"
+ fi
+ if test "x$GUILE_CFLAGS" != x; then
+ saved_GUILE_CFLAGS="$GUILE_CFLAGS"
+ fi
- if test -z "$GUILELIB"; then
- if test -n "$GUILEPACKAGE"; then
- GUILELIB="$GUILEPACKAGE/lib"
- fi
- fi
+ # Look up GUILE_CFLAGS and GUILE_LIBS, and version check
+ GUILE_SERIES=""
+ PKG_CHECK_MODULES(GUILE, [guile-1.8], [ GUILE_SERIES="18" ], [
+ PKG_CHECK_MODULES(GUILE, [guile-2.0], [GUILE_SERIES="20" ], [AC_MSG_NOTICE([
+ Only Guile 1.8 or 2.0 is supported. Neither version appears to be installed correctly. Disabling Guile
+ ])])
+ ])
+ if test "x$GUILE-SERIES" = x; then
+ GUILE=
+ GUILE_CFLAGS=
+ GUILE_LIBS=
+ else
+ # Look up GUILE executable
+ if test "x$GUILE" = xyes; then
+ GUILE=
+ if test "$xGUILE_SERIES" = "x18"; then
+ AC_PATH_PROG(GUILE18, guile-1.8)
+ if test "x$GUILE18" != x; then
+ GUILE="$GUILE18"
+ fi
+ fi
+ if test "$xGUILE_SERIES" = "x20"; then
+ AC_PATH_PROG(GUILE20, guile-2.0)
+ if test "x$GUILE20" != x; then
+ GUILE="$GUILE20"
+ fi
+ fi
+ if test "x$GUILE" = x; then
+ AC_PATH_PROG(GUILE, guile)
+ fi
+ fi
-AC_MSG_CHECKING(for Guile header files)
+ if test "x$saved_GUILE_LIBS" != x; then
+ GUILE_LIBS="$saved_GUILE_LIBS"
+ fi
+ if test "x$saved_GUILE_CFLAGS" != x; then
+ GUILE_CFLAGS="$saved_GUILE_CFLAGS"
+ fi
- dirs="$GUILEINCLUDE"
- for i in $dirs ; do
- if test -r $i/guile/gh.h; then
- AC_MSG_RESULT($i)
- GUILEINCLUDE="$ISYSTEM$i"
- break
- fi
- done
- if test -z "$GUILEINCLUDE"; then
- AC_MSG_RESULT(not found)
- fi
+ guilesafe_CFLAGS=$CFLAGS
+ guilesafe_LIBS=$LIBS
+ # Filter out "-ansi -pedantic" because Guile header files will not compile with these flags.
+ # (The flags -ansi -pedantic are automatically added by ac_compile_warnings.m4)
+ CFLAGS="`echo $CFLAGS | sed 's/-ansi//g;s/-pedantic//g;'` $GUILE_CFLAGS"
+ LIBS="$LIBS $GUILE_LIBS"
- AC_MSG_CHECKING(for Guile library)
- dirs="$GUILELIB"
- for i in $dirs ; do
- if test -r $i/libguile.so; then
- AC_MSG_RESULT($i)
- GUILELIB="$i"
- break
- fi
- done
- if test -z "$GUILELIB"; then
- AC_MSG_RESULT(not found)
- fi
-
-if test -z "$GUILELINK"; then
- GUILELINK="-L$GUILELIB -lguile"
-fi
-
-guilesafe_CFLAGS=$CFLAGS
-guilesafe_LIBS=$LIBS
-# Filter out "-ansi -pedantic" because Guile header files will not compile with these flags.
-# (The flags -ansi -pedantic are automatically added by ac_compile_warnings.m4)
-CFLAGS="`echo $CFLAGS | sed 's/-ansi//g;s/-pedantic//g;'` $GUILEINCLUDE"
-LIBS="$LIBS $GUILELINK"
-
-AC_MSG_CHECKING(whether Guile's gh_ API works)
-AC_LINK_IFELSE([AC_LANG_SOURCE([#include
- int main() { SCM s; return gh_scm2int(s); }])], GUILE_GH_INTERFACE=1, )
-if test -n "$GUILE_GH_INTERFACE" ; then
+ AC_MSG_CHECKING(whether Guile's gh_ API works)
+ AC_LINK_IFELSE([AC_LANG_SOURCE([#include
+ int main() { SCM s; return gh_scm2int(s); }])], GUILE_GH_INTERFACE=1, )
+ if test -n "$GUILE_GH_INTERFACE" ; then
AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-AC_MSG_CHECKING(whether Guile's SCM_ API works)
-AC_LINK_IFELSE([AC_LANG_SOURCE([#include
- int main() { SCM s; scm_slot_exists_p(SCM_BOOL_F, SCM_BOOL_F); return SCM_STRING_LENGTH(s); }])], GUILE_SCM_INTERFACE=1, )
-if test -n "$GUILE_SCM_INTERFACE" ; then
+ else
+ AC_MSG_RESULT(no)
+ fi
+ AC_MSG_CHECKING(whether Guile's SCM_ API works)
+ AC_LINK_IFELSE([AC_LANG_SOURCE([#include
+ int main() { SCM s; scm_slot_exists_p(SCM_BOOL_F, SCM_BOOL_F); return SCM_STRING_LENGTH(s); }])], GUILE_SCM_INTERFACE=1, )
+ if test -n "$GUILE_SCM_INTERFACE" ; then
AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-CFLAGS=$guilesafe_CFLAGS
-LIBS=$guilesafe_LIBS
+ else
+ AC_MSG_RESULT(no)
+ fi
+
+ CFLAGS=$guilesafe_CFLAGS
+ LIBS=$guilesafe_LIBS
+ fi
+ fi
fi
AC_SUBST(GUILE)
-AC_SUBST(GUILEINCLUDE)
-AC_SUBST(GUILELIB)
-AC_SUBST(GUILELINK)
+AC_SUBST(GUILE_CFLAGS)
+AC_SUBST(GUILE_LIBS)
AC_SUBST(GUILE_GH_INTERFACE)
AC_SUBST(GUILE_SCM_INTERFACE)
@@ -2268,13 +2266,13 @@ AC_SUBST(SKIP_JAVA)
SKIP_GUILE=
-if test -z "$GUILEINCLUDE" || test -z "$GUILELIB" || test -z "$GUILE_SCM_INTERFACE"; then
+if test -z "$GUILE_CFLAGS" || test -z "$GUILE_LIBS" || test -z "$GUILE_SCM_INTERFACE"; then
SKIP_GUILE="1"
fi
AC_SUBST(SKIP_GUILE)
SKIP_GUILEGH=
-if test -z "$GUILEINCLUDE" || test -z "$GUILELIB" || test -z "$GUILE_GH_INTERFACE"; then
+if test -z "$GUILE_CFLAGS" || test -z "$GUILE_LIBS" || test -z "$GUILE_GH_INTERFACE"; then
SKIP_GUILEGH="1"
fi
AC_SUBST(SKIP_GUILEGH)
From 3c47730803afde678574496a4d71f7f241dce73e Mon Sep 17 00:00:00 2001
From: Geert Janssens
Date: Fri, 19 Apr 2013 12:49:40 +0200
Subject: [PATCH 125/273] Drop support for guile 1.6 and older
---
Doc/Manual/Guile.html | 49 +++++++++++++++----------
Lib/guile/ghinterface.i | 46 -----------------------
Lib/guile/guile_gh_run.swg | 17 +--------
Lib/guile/guile_scm_run.swg | 73 -------------------------------------
4 files changed, 30 insertions(+), 155 deletions(-)
diff --git a/Doc/Manual/Guile.html b/Doc/Manual/Guile.html
index 6f1300492..14fc03854 100644
--- a/Doc/Manual/Guile.html
+++ b/Doc/Manual/Guile.html
@@ -12,6 +12,7 @@
+- Supported Guile Versions
- Meaning of "Module"
- Using the SCM or GH Guile API
- Linkage
@@ -47,7 +48,15 @@
This section details guile-specific support in SWIG.
-
23.1 Meaning of "Module"
+23.1 Supported Guile Versions
+
+
+
+SWIG works with Guile versions 1.8.x and 2.0.x. Support for version
+1.6.x has been dropped. The last version of SWIG that still works with
+Guile version 1.6.x is SWIG 2.0.9.
+
+
23.2 Meaning of "Module"
@@ -55,7 +64,7 @@ There are three different concepts of "module" involved, defined
separately for SWIG, Guile, and Libtool. To avoid horrible confusion,
we explicitly prefix the context, e.g., "guile-module".
-
23.2 Using the SCM or GH Guile API
+23.3 Using the SCM or GH Guile API
The guile module can currently export wrapper files that use the guile GH interface or the
@@ -103,7 +112,7 @@ for the specific API. Currently only the guile language module has created a ma
but there is no reason other languages (like mzscheme or chicken) couldn't also use this.
If that happens, there is A LOT less code duplication in the standard typemaps.
-23.3 Linkage
+23.4 Linkage
@@ -111,7 +120,7 @@ Guile support is complicated by a lack of user community cohesiveness,
which manifests in multiple shared-library usage conventions. A set of
policies implementing a usage convention is called a linkage.
-
23.3.1 Simple Linkage
+23.4.1 Simple Linkage
@@ -206,7 +215,7 @@ placed between the define-module form and the
SWIG_init via a preprocessor define to avoid symbol
clashes. For this case, however, passive linkage is available.
-
23.3.2 Passive Linkage
+23.4.2 Passive Linkage
Passive linkage is just like simple linkage, but it generates an
@@ -216,7 +225,7 @@ package name (see below).
You should use passive linkage rather than simple linkage when you
are using multiple modules.
-
23.3.3 Native Guile Module Linkage
+23.4.3 Native Guile Module Linkage
SWIG can also generate wrapper code that does all the Guile module
@@ -257,7 +266,7 @@ Newer Guile versions have a shorthand procedure for this:
-23.3.4 Old Auto-Loading Guile Module Linkage
+23.4.4 Old Auto-Loading Guile Module Linkage
Guile used to support an autoloading facility for object-code
@@ -283,7 +292,7 @@ option, SWIG generates an exported module initialization function with
an appropriate name.
-
23.3.5 Hobbit4D Linkage
+23.4.5 Hobbit4D Linkage
@@ -308,7 +317,7 @@ my/lib/libfoo.so.X.Y.Z and friends. This scheme is still very
experimental; the (hobbit4d link) conventions are not well understood.
-23.4 Underscore Folding
+23.5 Underscore Folding
@@ -320,7 +329,7 @@ complained so far.
%rename to specify the Guile name of the wrapped
functions and variables (see CHANGES).
-
23.5 Typemaps
+23.6 Typemaps
@@ -412,7 +421,7 @@ constant will appear as a scheme variable. See
Features and the %feature directive
for info on how to apply the %feature.
-23.6 Representation of pointers as smobs
+23.7 Representation of pointers as smobs
@@ -433,7 +442,7 @@ representing the expected pointer type. See also
If the Scheme object passed was not a SWIG smob representing a compatible
pointer, a wrong-type-arg exception is raised.
-
23.6.1 GH Smobs
+23.7.1 GH Smobs
@@ -462,7 +471,7 @@ that created them, so the first module we check will most likely be correct.
Once we have a swig_type_info structure, we loop through the linked list of
casts, using pointer comparisons.
-23.6.2 SCM Smobs
+23.7.2 SCM Smobs
The SCM interface (using the "-scm" argument to swig) uses swigrun.swg.
@@ -477,7 +486,7 @@ in the smob tag. If a generated GOOPS module has been loaded, smobs will be wra
GOOPS class.
-23.6.3 Garbage Collection
+23.7.3 Garbage Collection
Garbage collection is a feature of the new SCM interface, and it is automatically included
@@ -491,7 +500,7 @@ is exactly like described in 23.7 Exception Handling
+
23.8 Exception Handling
@@ -517,7 +526,7 @@ mapping:
The default when not specified here is to use "swig-error".
See Lib/exception.i for details.
-
23.8 Procedure documentation
+23.9 Procedure documentation
If invoked with the command-line option -procdoc
@@ -553,7 +562,7 @@ like this:
typemap argument doc. See Lib/guile/typemaps.i for
details.
-23.9 Procedures with setters
+23.10 Procedures with setters
For global variables, SWIG creates a single wrapper procedure
@@ -581,7 +590,7 @@ struct members, the procedures (struct-member-get
pointer) and (struct-member-set pointer
value) are not generated.
-
23.10 GOOPS Proxy Classes
+23.11 GOOPS Proxy Classes
SWIG can also generate classes and generic functions for use with
@@ -730,7 +739,7 @@ Notice that <Foo> is used before it is defined. The fix is to just put th
%import "foo.h" before the %inline block.
-23.10.1 Naming Issues
+23.11.1 Naming Issues
As you can see in the example above, there are potential naming conflicts. The default exported
@@ -767,7 +776,7 @@ guile-modules. For example,
(use-modules ((Test) #:renamer (symbol-prefix-proc 'goops:)))
-23.10.2 Linking
+23.11.2 Linking
The guile-modules generated above all need to be linked together. GOOPS support requires
diff --git a/Lib/guile/ghinterface.i b/Lib/guile/ghinterface.i
index 022c0f568..3de4c81a2 100644
--- a/Lib/guile/ghinterface.i
+++ b/Lib/guile/ghinterface.i
@@ -1,47 +1,3 @@
-#ifdef GUILE_VERSION_1_6
-
-#define gh_append2(a, b) scm_append(scm_listify(a, b, SCM_UNDEFINED))
-#define gh_apply(a, b) scm_apply(a, b, SCM_EOL)
-#define gh_bool2scm SCM_BOOL
-#define gh_boolean_p SCM_BOOLP
-#define gh_car SCM_CAR
-#define gh_cdr SCM_CDR
-#define gh_cons scm_cons
-#define gh_double2scm scm_make_real
-#define gh_int2scm scm_long2num
-#define gh_length(lst) scm_num2ulong(scm_length(lst), SCM_ARG1, FUNC_NAME)
-#define gh_list scm_listify
-#define gh_list_to_vector scm_vector
-#define gh_make_vector scm_make_vector
-#define gh_null_p SCM_NULLP
-#define gh_number_p SCM_NUMBERP
-#define gh_pair_p SCM_CONSP
-#define gh_scm2bool SCM_NFALSEP
-#define gh_scm2char SCM_CHAR
-#define gh_scm2double(a) scm_num2dbl(a, FUNC_NAME)
-#define gh_scm2int(a) scm_num2int(a, SCM_ARG1, FUNC_NAME)
-#define gh_scm2long(a) scm_num2long(a, SCM_ARG1, FUNC_NAME)
-#define gh_scm2short(a) scm_num2short(a, SCM_ARG1, FUNC_NAME)
-#define gh_scm2newstr SWIG_Guile_scm2newstr
-#define gh_scm2ulong(a) scm_num2ulong(a, SCM_ARG1, FUNC_NAME)
-#define gh_scm2ushort(a) scm_num2ushort(a, SCM_ARG1, FUNC_NAME)
-#define gh_scm2uint(a) scm_num2uint(a, SCM_ARG1, FUNC_NAME)
-#define gh_ulong2scm scm_ulong2num
-#define gh_long2scm scm_long2num
-#define gh_str02scm scm_makfrom0str
-#define gh_long_long2scm scm_long_long2num
-#define gh_scm2long_long(a) scm_num2long_long(a, SCM_ARG1, FUNC_NAME)
-#define gh_ulong_long2scm scm_ulong_long2num
-#define gh_scm2ulong_long(a) scm_num2ulong_long(a, SCM_ARG1, FUNC_NAME)
-#define gh_string_p SCM_STRINGP
-#define gh_vector_length SCM_VECTOR_LENGTH
-#define gh_vector_p SCM_VECTORP
-#define gh_vector_ref scm_vector_ref
-#define gh_vector_set_x scm_vector_set_x
-#define gh_char2scm SCM_MAKE_CHAR
-
-#else
-
#define gh_append2(a, b) scm_append(scm_listify(a, b, SCM_UNDEFINED))
#define gh_apply(a, b) scm_apply(a, b, SCM_EOL)
#define gh_bool2scm scm_from_bool
@@ -81,5 +37,3 @@
#define gh_vector_ref scm_vector_ref
#define gh_vector_set_x scm_vector_set_x
#define gh_char2scm SCM_MAKE_CHAR
-
-#endif
\ No newline at end of file
diff --git a/Lib/guile/guile_gh_run.swg b/Lib/guile/guile_gh_run.swg
index 8616875da..1292131c8 100644
--- a/Lib/guile/guile_gh_run.swg
+++ b/Lib/guile/guile_gh_run.swg
@@ -19,22 +19,7 @@ extern "C" {
/* In the code below, use guile 2.0 compatible functions where possible.
Functions that don't exist in older versions will be mapped to
a deprecated equivalent for those versions only */
-/* ... setup guile 2-like interface for guile 1.6 */
-#if (SCM_MAJOR_VERSION == 1) && (SCM_MINOR_VERSION <= 6)
-
-# define scm_from_locale_keyword scm_c_make_keyword
-# define scm_from_locale_symbol scm_str2symbol
-# define scm_is_null SCM_NULLP
-# define scm_is_true SCM_NFALSEP
-# define scm_is_string SCM_STRINGP
-
-/* Used later on to setup different code paths where it's
- not possible to use a guile 2-like interface */
-# define GUILE_VERSION_1_6
-
-#endif
-
-/* ... setup guile 2-like interface for guile 1.6 and 1.8 */
+/* ... setup guile 2-like interface for guile 1.8 */
#if defined (SCM_MAJOR_VERSION) && (SCM_MAJOR_VERSION < 2)
static SCM
diff --git a/Lib/guile/guile_scm_run.swg b/Lib/guile/guile_scm_run.swg
index 71de33535..7cf3d165a 100644
--- a/Lib/guile/guile_scm_run.swg
+++ b/Lib/guile/guile_scm_run.swg
@@ -16,22 +16,6 @@ extern "C" {
/* In the code below, use guile 2.0 compatible functions where possible.
Functions that don't exist in older versions will be mapped to
a deprecated equivalent for those versions only */
-/* ... setup guile 2-like interface for guile 1.6 */
-#if (SCM_MAJOR_VERSION == 1) && (SCM_MINOR_VERSION <= 6)
-
-# define scm_from_locale_keyword scm_c_make_keyword
-# define scm_from_locale_symbol scm_str2symbol
-# define scm_is_null SCM_NULLP
-# define scm_is_true SCM_NFALSEP
-# define scm_is_string SCM_STRINGP
-
-/* Used later on to setup different code paths where it's
- not possible to use a guile 2-like interface */
-# define GUILE_VERSION_1_6
-
-#endif
-
-/* ... setup guile 2-like interface for guile 1.6 and 1.8 */
#if defined (SCM_MAJOR_VERSION) && (SCM_MAJOR_VERSION < 2)
static SCM
@@ -59,17 +43,10 @@ typedef struct swig_guile_clientdata {
#define SWIG_scm2str(s) \
SWIG_Guile_scm2newstr(s, NULL)
-#ifdef GUILE_VERSION_1_6
-# define SWIG_malloc(size) \
- SCM_MUST_MALLOC(size)
-# define SWIG_free(mem) \
- scm_must_free(mem)
-#else
# define SWIG_malloc(size) \
scm_malloc(size)
# define SWIG_free(mem) \
free(mem)
-#endif
#define SWIG_ConvertPtr(s, result, type, flags) \
SWIG_Guile_ConvertPtr(s, result, type, flags)
#define SWIG_MustGetPtr(s, type, argnum, flags) \
@@ -105,9 +82,7 @@ SWIGINTERN char *
SWIG_Guile_scm2newstr(SCM str, size_t *len) {
#define FUNC_NAME "SWIG_Guile_scm2newstr"
char *ret;
-# ifndef GUILE_VERSION_1_6
char *tmp;
-# endif
size_t l;
SCM_ASSERT (scm_is_string(str), str, 1, FUNC_NAME);
@@ -116,13 +91,9 @@ SWIG_Guile_scm2newstr(SCM str, size_t *len) {
ret = (char *) SWIG_malloc( (l + 1) * sizeof(char));
if (!ret) return NULL;
-# ifdef GUILE_VERSION_1_6
- memcpy(ret, SCM_STRING_CHARS(str), l);
-# else
tmp = scm_to_locale_string(str);
memcpy(ret, tmp, l);
free(tmp);
-# endif
ret[l] = '\0';
if (len) *len = l;
@@ -415,22 +386,6 @@ ensure_smob_tag(SCM swig_module,
const char *smob_name,
const char *scheme_variable_name)
{
-#ifdef GUILE_VERSION_1_6
- SCM variable = scm_sym2var(scm_str2symbol(scheme_variable_name),
- scm_module_lookup_closure(swig_module),
- SCM_BOOL_T);
- if (SCM_UNBNDP(SCM_VARIABLE_REF(variable))) {
- *tag_variable = scm_make_smob_type((char*)scheme_variable_name, 0);
- SCM_VARIABLE_SET(variable,
- scm_ulong2num(*tag_variable));
- return 1;
- }
- else {
- *tag_variable = scm_num2ulong(SCM_VARIABLE_REF(variable), 0,
- "SWIG_Guile_Init");
- return 0;
- }
-#else
SCM variable = scm_module_variable(swig_module,
scm_from_locale_symbol(scheme_variable_name));
if (scm_is_false(variable)) {
@@ -443,7 +398,6 @@ ensure_smob_tag(SCM swig_module,
*tag_variable = scm_to_ulong(SCM_VARIABLE_REF(variable));
return 0;
}
-#endif
}
SWIGINTERN SCM
@@ -495,16 +449,6 @@ SWIG_Guile_GetModule(void *SWIGUNUSEDPARM(clientdata))
module = SWIG_Guile_Init();
-#ifdef GUILE_VERSION_1_6
- variable = scm_sym2var(scm_str2symbol("swig-type-list-address" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME),
- scm_module_lookup_closure(module),
- SCM_BOOL_T);
- if (SCM_UNBNDP(SCM_VARIABLE_REF(variable))) {
- return NULL;
- } else {
- return (swig_module_info *) scm_num2ulong(SCM_VARIABLE_REF(variable), 0, "SWIG_Guile_Init");
- }
-#else
variable = scm_module_variable(module,
scm_from_locale_symbol("swig-type-list-address" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME));
if (scm_is_false(variable)) {
@@ -512,7 +456,6 @@ SWIG_Guile_GetModule(void *SWIGUNUSEDPARM(clientdata))
} else {
return (swig_module_info *) scm_to_ulong(SCM_VARIABLE_REF(variable));
}
-#endif
}
SWIGINTERN void
@@ -523,17 +466,9 @@ SWIG_Guile_SetModule(swig_module_info *swig_module)
module = SWIG_Guile_Init();
-#ifdef GUILE_VERSION_1_6
- variable = scm_sym2var(scm_str2symbol("swig-type-list-address" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME),
- scm_module_lookup_closure(module),
- SCM_BOOL_T);
-
- SCM_VARIABLE_SET(variable, scm_ulong2num((unsigned long) swig_module));
-#else
scm_module_define(module,
scm_from_locale_symbol("swig-type-list-address" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME),
scm_from_ulong((unsigned long) swig_module));
-#endif
}
SWIGINTERN int
@@ -545,11 +480,7 @@ SWIG_Guile_GetArgs (SCM *dest, SCM rest,
int num_args_passed = 0;
for (i = 0; i
Date: Fri, 19 Apr 2013 12:19:49 +0200
Subject: [PATCH 126/273] Drop guilegh interface
All of guile's interface files now use the scm interface.
This should not affect any users. Swig generated code
using the scm interface can be mixed with gh interface
using user code.
It does simplify maintenance of the guile swig code though.
---
Doc/Manual/Guile.html | 52 +-
Doc/Manual/Typemaps.html | 2 +-
Examples/Makefile.in | 13 -
Examples/guile/multimap/example.i | 4 +-
Examples/test-suite/guilegh/Makefile.in | 28 -
Examples/test-suite/pointer_reference.i | 2 +-
Lib/cdata.i | 2 +-
Lib/exception.i | 2 +-
Lib/guile/cplusplus.i | 10 +-
Lib/guile/ghinterface.i | 39 -
Lib/guile/guile_gh.swg | 71 --
Lib/guile/guile_gh_run.swg | 273 ------
Lib/guile/guile_scm.swg | 5 -
Lib/guile/guile_scm_run.swg | 6 +-
Lib/guile/list-vector.i | 92 +-
Lib/guile/std_common.i | 4 +-
Lib/guile/std_map.i | 1148 +++++++++++------------
Lib/guile/std_pair.i | 940 +++++++++----------
Lib/guile/std_string.i | 16 +-
Lib/guile/std_vector.i | 144 +--
Lib/guile/typemaps.i | 84 +-
Lib/mzscheme/typemaps.i | 2 +-
Makefile.in | 4 -
Source/Modules/guile.cxx | 151 +--
configure.ac | 18 +-
25 files changed, 1283 insertions(+), 1829 deletions(-)
delete mode 100644 Examples/test-suite/guilegh/Makefile.in
delete mode 100644 Lib/guile/ghinterface.i
delete mode 100644 Lib/guile/guile_gh.swg
delete mode 100644 Lib/guile/guile_gh_run.swg
diff --git a/Doc/Manual/Guile.html b/Doc/Manual/Guile.html
index 14fc03854..53368bc77 100644
--- a/Doc/Manual/Guile.html
+++ b/Doc/Manual/Guile.html
@@ -14,7 +14,7 @@
- Supported Guile Versions
- Meaning of "Module"
-
- Using the SCM or GH Guile API
+
- Old GH Guile API
- Linkage
- Simple Linkage
@@ -64,53 +64,19 @@ There are three different concepts of "module" involved, defined
separately for SWIG, Guile, and Libtool. To avoid horrible confusion,
we explicitly prefix the context, e.g., "guile-module".
-
23.3 Using the SCM or GH Guile API
+23.3 Old GH Guile API
-The guile module can currently export wrapper files that use the guile GH interface or the
-SCM interface. This is controlled by an argument passed to swig. The "-gh" argument causes swig
-to output GH code, and the "-scm" argument causes swig to output SCM code. Right now the "-scm" argument
-is the default. The "-scm" wrapper generation assumes a guile version >= 1.6 and has several advantages over
-the "-gh" wrapper generation including garbage collection and GOOPS support.
-The "-gh" wrapper generation can be used for older versions of guile.
-The guile GH wrapper code generation is depreciated and the
-SCM interface is the default. The SCM and GH interface differ greatly in how they store
-pointers and have completely different run-time code. See below for more info.
+
Support for the guile GH wrapper code generation has been dropped. The last
+version of SWIG that can still generate guile GH wrapper code is 2.0.9. Please
+use that version if you really need the GH wrapper code.
-
The GH interface to guile is deprecated. Read more about why in the
+
Guile 1.8 and older could be interfaced using a two different api's, the SCM
+or the GH API. The GH interface to guile is deprecated. Read more about why in the
Guile manual.
-The idea of the GH interface was to provide a high level API that other languages and projects
-could adopt. This was a good idea, but didn't pan out well for general development. But for the
-specific, minimal uses that the SWIG typemaps put the GH interface to use is ideal for
-using a high level API. So even though the GH interface is depreciated, SWIG will continue to use
-the GH interface and provide mappings from the GH interface to whatever API we need.
-We can maintain this mapping where guile failed because SWIG uses a small subset of all the GH functions
-which map easily. All the guile typemaps like typemaps.i and std_vector.i
-will continue to use the GH functions to do things like create lists of values, convert strings to
-integers, etc. Then every language module will define a mapping between the GH interface and
-whatever custom API the language uses. This is currently implemented by the guile module to use
-the SCM guile API rather than the GH guile API.
-For example, here are some of the current mapping file for the SCM API
-
-
-#define gh_append2(a, b) scm_append(scm_listify(a, b, SCM_UNDEFINED))
-#define gh_apply(a, b) scm_apply(a, b, SCM_EOL)
-#define gh_bool2scm SCM_BOOL
-#define gh_boolean_p SCM_BOOLP
-#define gh_car SCM_CAR
-#define gh_cdr SCM_CDR
-#define gh_cons scm_cons
-#define gh_double2scm scm_make_real
-...
-
-
-This file is parsed by SWIG at wrapper generation time, so every reference to a gh_ function is replaced
-by a scm_ function in the wrapper file. Thus the gh_ function calls will never be seen in the wrapper;
-the wrapper will look exactly like it was generated
-for the specific API. Currently only the guile language module has created a mapping policy from gh_ to scm_,
-but there is no reason other languages (like mzscheme or chicken) couldn't also use this.
-If that happens, there is A LOT less code duplication in the standard typemaps.
+The SCM wrapper generation assumes a guile version >= 1.8 and has several advantages over
+the "-gh" wrapper generation including garbage collection and GOOPS support.
23.4 Linkage
diff --git a/Doc/Manual/Typemaps.html b/Doc/Manual/Typemaps.html
index b3b0bc7a9..81e3fd1bb 100644
--- a/Doc/Manual/Typemaps.html
+++ b/Doc/Manual/Typemaps.html
@@ -773,7 +773,7 @@ Here are some examples of valid typemap specifications:
}
/* Typemap with modifiers */
-%typemap(in,doc="integer") int "$1 = gh_scm2int($input);";
+%typemap(in,doc="integer") int "$1 = scm_to_int($input);";
/* Typemap applied to patterns of multiple arguments */
%typemap(in) (char *str, int len),
diff --git a/Examples/Makefile.in b/Examples/Makefile.in
index 6b4ca778e..b1bf8d049 100644
--- a/Examples/Makefile.in
+++ b/Examples/Makefile.in
@@ -479,19 +479,6 @@ $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO): $(SRCS)
guile_externalhdr:
$(SWIG) -guile -external-runtime $(TARGET)
-#------------------------------------------------------------------
-# Build a dynamically loaded module with passive linkage and the gh interface
-#------------------------------------------------------------------
-guile_gh: $(SRCS)
- $(SWIG) -guile -gh -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
- $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ISRCS) $(SRCS)
- $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
-
-guile_gh_cpp: $(SRCS)
- $(SWIG) -c++ -guile -gh -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
- $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
- $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
-
# -----------------------------------------------------------------
# Build a dynamically loadable module with passive linkage
# -----------------------------------------------------------------
diff --git a/Examples/guile/multimap/example.i b/Examples/guile/multimap/example.i
index 7337d1e9e..f1d7974e4 100644
--- a/Examples/guile/multimap/example.i
+++ b/Examples/guile/multimap/example.i
@@ -59,14 +59,14 @@ extern int count(char *bytes, int len, char c);
%typemap(in) (char *str, int len) {
size_t temp;
- $1 = gh_scm2newstr($input,&temp);
+ $1 = SWIG_Guile_scm2newstr($input,&temp);
$2 = temp;
}
/* Return the mutated string as a new object. */
%typemap(argout) (char *str, int len) {
- SWIG_APPEND_VALUE(gh_str2scm($1,$2));
+ SWIG_APPEND_VALUE(scm_mem2string($1,$2));
if ($1) scm_must_free($1);
}
diff --git a/Examples/test-suite/guilegh/Makefile.in b/Examples/test-suite/guilegh/Makefile.in
deleted file mode 100644
index 3a03d5f82..000000000
--- a/Examples/test-suite/guilegh/Makefile.in
+++ /dev/null
@@ -1,28 +0,0 @@
-#######################################################################
-# Makefile for guile test-suite (with SCM API)
-#######################################################################
-
-include ../guile/Makefile
-
-# Overridden variables here
-VARIANT = _gh
-# Refer to the guile directory for the run scripts
-SCRIPTPREFIX = ../guile/
-GUILE_RUNTIME=-runtime
-
-# Custom tests - tests with additional commandline options
-# none!
-
-# Runs the testcase. A testcase is only run if
-# a file is found which has _runme.scm appended after the testcase name.
-run_testcase = \
- if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
- env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(GUILE) -l $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
- fi
-
-setup = \
- if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
- echo "$(ACTION)ing testcase $* (with run test) under $(LANGUAGE) (with GH API)" ; \
- else \
- echo "$(ACTION)ing testcase $* under $(LANGUAGE) (with GH API)" ; \
- fi
diff --git a/Examples/test-suite/pointer_reference.i b/Examples/test-suite/pointer_reference.i
index b9e126fd4..7a6a09d48 100644
--- a/Examples/test-suite/pointer_reference.i
+++ b/Examples/test-suite/pointer_reference.i
@@ -11,7 +11,7 @@
#ifdef SWIGGUILE
/* A silly testing typemap for feeding a doubly indirect integer */
%typemap(in) int *&XYZZY (int temp1, int *temp2) {
- temp1 = gh_scm2int($input); temp2 = &temp1; $1 = &temp2;
+ temp1 = scm_to_int($input); temp2 = &temp1; $1 = &temp2;
};
#endif
diff --git a/Lib/cdata.i b/Lib/cdata.i
index 1abaf357b..dbc1c42d2 100644
--- a/Lib/cdata.i
+++ b/Lib/cdata.i
@@ -17,7 +17,7 @@ typedef struct SWIGCDATA {
#if SWIGGUILE
%typemap(out) SWIGCDATA {
- $result = gh_str2scm($1.data,$1.len);
+ $result = scm_mem2string($1.data,$1.len);
}
%typemap(in) (const void *indata, int inlen) = (char *STRING, int LENGTH);
#elif SWIGCHICKEN
diff --git a/Lib/exception.i b/Lib/exception.i
index dc3a7f462..867ecdbff 100644
--- a/Lib/exception.i
+++ b/Lib/exception.i
@@ -24,7 +24,7 @@
SWIGINTERN void SWIG_exception_ (int code, const char *msg,
const char *subr) {
#define ERROR(scmerr) \
- scm_error(gh_symbol2scm((char *) (scmerr)), \
+ scm_error(scm_str2symbol((char *) (scmerr)), \
(char *) subr, (char *) msg, \
SCM_EOL, SCM_BOOL_F)
#define MAP(swigerr, scmerr) \
diff --git a/Lib/guile/cplusplus.i b/Lib/guile/cplusplus.i
index 0dfe71754..d5d65efaa 100644
--- a/Lib/guile/cplusplus.i
+++ b/Lib/guile/cplusplus.i
@@ -5,18 +5,18 @@
* ----------------------------------------------------------------------------- */
%typemap(guile,out) string, std::string {
- $result = gh_str02scm(const_cast($1.c_str()));
+ $result = SWIG_str02scm(const_cast($1.c_str()));
}
%typemap(guile,in) string, std::string {
$1 = SWIG_scm2str($input);
}
%typemap(guile,out) complex, complex, std::complex {
- $result = scm_make_rectangular( gh_double2scm ($1.real ()),
- gh_double2scm ($1.imag ()) );
+ $result = scm_make_rectangular( scm_from_double ($1.real ()),
+ scm_from_double ($1.imag ()) );
}
%typemap(guile,in) complex, complex, std::complex {
- $1 = std::complex( gh_scm2double (scm_real_part ($input)),
- gh_scm2double (scm_imag_part ($input)) );
+ $1 = std::complex( scm_to_double (scm_real_part ($input)),
+ scm_to_double (scm_imag_part ($input)) );
}
diff --git a/Lib/guile/ghinterface.i b/Lib/guile/ghinterface.i
deleted file mode 100644
index 3de4c81a2..000000000
--- a/Lib/guile/ghinterface.i
+++ /dev/null
@@ -1,39 +0,0 @@
-#define gh_append2(a, b) scm_append(scm_listify(a, b, SCM_UNDEFINED))
-#define gh_apply(a, b) scm_apply(a, b, SCM_EOL)
-#define gh_bool2scm scm_from_bool
-#define gh_boolean_p scm_is_bool
-#define gh_car SCM_CAR
-#define gh_cdr SCM_CDR
-#define gh_cons scm_cons
-#define gh_double2scm scm_from_double
-#define gh_int2scm scm_from_long
-#define gh_length(lst) scm_to_ulong(scm_length(lst))
-#define gh_list scm_listify
-#define gh_list_to_vector scm_vector
-#define gh_make_vector scm_make_vector
-#define gh_null_p scm_is_null
-#define gh_number_p scm_is_number
-#define gh_pair_p scm_is_pair
-#define gh_scm2bool scm_is_true
-#define gh_scm2char SCM_CHAR
-#define gh_scm2double scm_to_double
-#define gh_scm2int scm_to_int
-#define gh_scm2long scm_to_long
-#define gh_scm2short scm_to_short
-#define gh_scm2newstr SWIG_Guile_scm2newstr
-#define gh_scm2ulong scm_to_ulong
-#define gh_scm2ushort scm_to_ushort
-#define gh_scm2uint scm_to_uint
-#define gh_ulong2scm scm_from_ulong
-#define gh_long2scm scm_from_long
-#define gh_str02scm(str) str ? scm_from_locale_string(str) : SCM_BOOL_F
-#define gh_long_long2scm scm_from_long_long
-#define gh_scm2long_long scm_to_long_long
-#define gh_ulong_long2scm scm_from_ulong_long
-#define gh_scm2ulong_long scm_to_ulong_long
-#define gh_string_p scm_is_string
-#define gh_vector_length scm_c_vector_length
-#define gh_vector_p scm_is_vector
-#define gh_vector_ref scm_vector_ref
-#define gh_vector_set_x scm_vector_set_x
-#define gh_char2scm SCM_MAKE_CHAR
diff --git a/Lib/guile/guile_gh.swg b/Lib/guile/guile_gh.swg
deleted file mode 100644
index 3b65af897..000000000
--- a/Lib/guile/guile_gh.swg
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -----------------------------------------------------------------------------
- * guile_gh.swg
- *
- * This SWIG interface file is processed if the Guile module is run
- * with gh_ flavor.
- * ----------------------------------------------------------------------------- */
-
-#define SWIGGUILE_GH
-
-%runtime "swigrun.swg"
-%runtime "guile_gh_run.swg"
-
-#define SWIG_convert_short(o) \
- SWIG_convert_integer(o, - (1 << (8 * sizeof(short) - 1)), \
- (1 << (8 * sizeof(short) - 1)) - 1, \
- FUNC_NAME, $argnum)
-#define SWIG_convert_unsigned_short(o) \
- SWIG_convert_unsigned_integer(o, 0, \
- (1 << (8 * sizeof(short))) - 1, \
- FUNC_NAME, $argnum)
-#define SWIG_convert_unsigned_int(o) \
- SWIG_convert_unsigned_integer(o, 0, UINT_MAX, \
- FUNC_NAME, $argnum)
-
-#define gh_scm2short(a) SWIG_convert_short(a)
-#define gh_scm2ushort(a) SWIG_convert_unsigned_short(a)
-#define gh_scm2uint(a) SWIG_convert_unsigned_int(a)
-
-%include
-
-%runtime %{
-
-/* scm_values was implemented on C level in 1.4.1, and the prototype
- is not included in libguile.h, so play safe and lookup `values'... */
-#define GUILE_MAYBE_VALUES \
- if (gswig_list_p) \
- gswig_result = gh_apply(gh_lookup("values"), gswig_result);
-
-#define GUILE_MAYBE_VECTOR \
- if (gswig_list_p) \
- gswig_result = gh_list_to_vector(gswig_result);
-
-#define SWIG_APPEND_VALUE(object) \
- if (gswig_result == SCM_UNSPECIFIED) { \
- gswig_result = object; \
- } else { \
- if (!gswig_list_p) { \
- gswig_list_p = 1; \
- gswig_result = gh_list(gswig_result, object, SCM_UNDEFINED); \
- } \
- else \
- gswig_result = gh_append2(gswig_result, \
- gh_list(object, SCM_UNDEFINED)); \
- }
-
-%}
-
-%init "swiginit.swg"
-
-%init %{
-static int _swig_module_smob_tag;
-
-SWIG_GUILE_INIT_STATIC void
-SWIG_init(void)
-{
-
- SWIG_InitializeModule(0);
- swig_module.clientdata = (void *) &_swig_module_smob_tag;
-
- SWIG_Guile_Init(&swig_module);
-%}
diff --git a/Lib/guile/guile_gh_run.swg b/Lib/guile/guile_gh_run.swg
deleted file mode 100644
index 1292131c8..000000000
--- a/Lib/guile/guile_gh_run.swg
+++ /dev/null
@@ -1,273 +0,0 @@
-/* -----------------------------------------------------------------------------
- * guile_gh_run.swg
- *
- * Guile GH runtime file
- * ----------------------------------------------------------------------------- */
-
-#define SWIGGUILE
-#include "guile/gh.h"
-#include
-#include
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* In the code below, use guile 2.0 compatible functions where possible.
- Functions that don't exist in older versions will be mapped to
- a deprecated equivalent for those versions only */
-/* ... setup guile 2-like interface for guile 1.8 */
-#if defined (SCM_MAJOR_VERSION) && (SCM_MAJOR_VERSION < 2)
-
-static SCM
-scm_module_variable (SCM module, SCM sym)
-{
- return scm_sym2var (sym, scm_module_lookup_closure (module), SCM_BOOL_F);
-}
-
-#endif
-
-typedef SCM (*swig_guile_proc)();
-
-#define SWIG_malloc(size) \
- SCM_MUST_MALLOC(size)
-#define SWIG_free(mem) \
- scm_must_free(mem)
-#define SWIG_ConvertPtr(s, result, type, flags) \
- SWIG_Guile_ConvertPtr(&swig_module, s, result, type, flags)
-#define SWIG_MustGetPtr(s, type, argnum, flags) \
- SWIG_Guile_MustGetPtr(&swig_module, s, type, argnum, flags, FUNC_NAME)
-#define SWIG_NewPointerObj(ptr, type, owner) \
- SWIG_Guile_NewPointerObj(&swig_module, (void*)ptr, type, owner)
-#define SWIG_GetModule(clientdata) SWIG_Guile_GetModule(clientdata)
-#define SWIG_SetModule(clientdata, pointer) SWIG_Guile_SetModule(pointer)
-
-/* Ignore object-ownership changes in gh mode */
-#define SWIG_Guile_MarkPointerNoncollectable(s) (s)
-#define SWIG_Guile_MarkPointerDestroyed(s) (s)
-
-#define SWIG_contract_assert(expr, msg) \
- if (!(expr)) \
- scm_error(gh_symbol2scm("swig-contract-assertion-failed"), \
- (char *) FUNC_NAME, (char *) msg, \
- SCM_EOL, SCM_BOOL_F); else
-
-/* SCM_CHAR and SCM_CHARP were introduced in Guile 1.4; the following is for
- 1.3.4 compatibility. */
-#ifndef SCM_CHAR
-# define SCM_CHAR SCM_ICHR
-#endif
-#ifndef SCM_CHARP
-# define SCM_CHARP SCM_ICHRP
-#endif
-
-/* This function replaces gh_scm2char, which is broken in Guile 1.4 */
-SWIGINTERN char
-GSWIG_scm2char (SCM s)
-{
- if (SCM_CHARP(s)) return SCM_CHAR(s);
- scm_wrong_type_arg(NULL, 0, s);
-}
-#define gh_scm2char GSWIG_scm2char
-
-/* Interface function */
-#define SWIG_scm2str(x) gh_scm2newstr(x, NULL)
-
-/* More 1.3.4 compatibility */
-#ifndef SCM_INPUT_PORT_P
-# define SCM_INPUT_PORT_P SCM_INPORTP
-# define SCM_OUTPUT_PORT_P SCM_OUTPORTP
-#endif
-
-SWIGINTERN long
-SWIG_convert_integer(SCM o,
- long lower_bound, long upper_bound,
- const char *func_name, int argnum)
-{
- long value = gh_scm2long(o);
- if (value < lower_bound || value > upper_bound)
- scm_wrong_type_arg((char *) func_name, argnum, o);
- return value;
-}
-
-SWIGINTERN unsigned long
-SWIG_convert_unsigned_integer(SCM o,
- unsigned long lower_bound,
- unsigned long upper_bound,
- const char *func_name, int argnum)
-{
- unsigned long value = gh_scm2ulong(o);
- if (value < lower_bound || value > upper_bound)
- scm_wrong_type_arg((char *) func_name, argnum, o);
- return value;
-}
-
-SWIGINTERN swig_type_info *
-SWIG_Guile_LookupType(swig_module_info *module, SCM s, int normal)
-{
- swig_module_info *iter;
- if (!module) return 0;
- iter = module;
- do {
- if ((normal && (unsigned long) SCM_TYP16(s) == *((int *)iter->clientdata))) {
-
- return iter->types[(long) SCM_CAR(s) >> 16];
- }
- iter = iter->next;
- } while (iter != module);
- return 0;
-}
-
-#ifdef SWIG_GLOBAL
-#define SWIG_GUILE_MODULE_STATIC
-#elif !defined(SWIG_NOINCLUDE)
-#define SWIG_GUILE_MODULE_STATIC static
-#endif
-
-#ifdef SWIG_GUILE_MODULE_STATIC
-static swig_module_info *swig_guile_module = 0;
-SWIG_GUILE_MODULE_STATIC swig_module_info *SWIG_Guile_GetModule(void *SWIGUNUSEDPARM(clientdata)) {
- return swig_guile_module;
-}
-SWIG_GUILE_MODULE_STATIC void SWIG_Guile_SetModule(swig_module_info *pointer) {
- swig_guile_module = pointer;
-}
-#else
-SWIGEXPORT swig_module_info * SWIG_Guile_GetModule(void *SWIGUNUSEDPARM(clientdata));
-SWIGEXPORT void SWIG_Guile_SetModule(swig_module_info *pointer);
-#endif
-
-SWIGINTERN SCM
-SWIG_Guile_NewPointerObj(swig_module_info *module, void *ptr,
- swig_type_info *type, int owner)
-{
- unsigned long tag;
- if (ptr==NULL) return SCM_EOL;
- if (!module) return SCM_EOL;
- for (tag = 0; tag < module->size; ++tag) {
- if (module->types[tag] == type)
- break;
- }
- if (tag >= module->size)
- return SCM_EOL;
-
-
- SCM_RETURN_NEWSMOB( ((tag << 16) | *((int *)module->clientdata)), ptr);
-}
-
-/* Return 0 if successful. */
-SWIGINTERN int
-SWIG_Guile_ConvertPtr(swig_module_info *module, SCM s, void **result,
- swig_type_info *type, int flags)
-{
- swig_cast_info *cast;
- swig_type_info *from;
- if (scm_is_null(s)) {
- *result = NULL;
- return SWIG_OK;
- } else if (SCM_NIMP(s)) {
- from = SWIG_Guile_LookupType(module, s, 1);
- if (!from) return SWIG_ERROR;
- if (type) {
- cast = SWIG_TypeCheckStruct(from, type);
- if (cast) {
- int newmemory = 0;
- *result = SWIG_TypeCast(cast, (void *) SCM_CDR(s), &newmemory);
- assert(!newmemory); /* newmemory handling not yet implemented */
- return SWIG_OK;
- } else {
- return SWIG_ERROR;
- }
- } else {
- *result = (void *) SCM_CDR(s);
- return SWIG_OK;
- }
- }
- return SWIG_ERROR;
-}
-
-SWIGINTERN void *
-SWIG_Guile_MustGetPtr (swig_module_info *module, SCM s, swig_type_info *type,
- int argnum, int flags, const char *func_name)
-{
- void *result;
- int res = SWIG_Guile_ConvertPtr(module, s, &result, type, flags);
- if (!SWIG_IsOK(res)) {
- /* type mismatch */
- scm_wrong_type_arg((char *) func_name, argnum, s);
- }
- return result;
-}
-
-/* Init */
-
-SWIGINTERN int
-print_swig (SCM swig_smob, SCM port, scm_print_state *pstate)
-{
- swig_type_info *type = SWIG_Guile_LookupType(0, swig_smob, 1);
- if (type) {
- scm_puts((char *) "#str != NULL)
- scm_puts((char *) type->str, port);
- else
- scm_puts((char *) type->name, port);
- scm_puts((char *) " ", port);
- scm_intprint((long) SCM_CDR(swig_smob), 16, port);
- scm_puts((char *) ">", port);
- /* non-zero means success */
- return 1;
- } else {
- return 0;
- }
-}
-
-SWIGINTERN SCM
-equalp_swig (SCM A, SCM B)
-{
- if (SCM_CAR(A) == SCM_CAR(B)
- && SCM_CDR(A) == SCM_CDR(B))
- return SCM_BOOL_T;
- else return SCM_BOOL_F;
-}
-
-SWIGINTERN void
-SWIG_Guile_Init (swig_module_info *module)
-{
- *((int *)module->clientdata) =
- scm_make_smob_type_mfpe((char *) "swig", 0, NULL, NULL, print_swig, equalp_swig);
-}
-
-SWIGINTERN int
-SWIG_Guile_GetArgs (SCM *dest, SCM rest,
- int reqargs, int optargs,
- const char *procname)
-{
- int i;
- int num_args_passed = 0;
- for (i = 0; i
%include
%runtime %{
@@ -32,10 +31,6 @@
else \
gswig_result = scm_append(scm_listify(gswig_result, scm_listify(object, SCM_UNDEFINED), SCM_UNDEFINED)); \
}
- /* used by Lib/exception.i */
- #define gh_symbol2scm scm_str2symbol
- /* useb by Lib/cdata.i */
- #define gh_str2scm scm_mem2string
%}
diff --git a/Lib/guile/guile_scm_run.swg b/Lib/guile/guile_scm_run.swg
index 7cf3d165a..0ac51f919 100644
--- a/Lib/guile/guile_scm_run.swg
+++ b/Lib/guile/guile_scm_run.swg
@@ -43,10 +43,12 @@ typedef struct swig_guile_clientdata {
#define SWIG_scm2str(s) \
SWIG_Guile_scm2newstr(s, NULL)
+#define SWIG_str02scm(str) \
+ str ? scm_from_locale_string(str) : SCM_BOOL_F
# define SWIG_malloc(size) \
- scm_malloc(size)
+ scm_malloc(size)
# define SWIG_free(mem) \
- free(mem)
+ free(mem)
#define SWIG_ConvertPtr(s, result, type, flags) \
SWIG_Guile_ConvertPtr(s, result, type, flags)
#define SWIG_MustGetPtr(s, type, argnum, flags) \
diff --git a/Lib/guile/list-vector.i b/Lib/guile/list-vector.i
index c2cd1aea2..057a1da5b 100644
--- a/Lib/guile/list-vector.i
+++ b/Lib/guile/list-vector.i
@@ -61,12 +61,12 @@
(size_t VECTORLENINPUT, C_TYPE *VECTORINPUT)
{
SCM_VALIDATE_VECTOR($argnum, $input);
- $1 = gh_vector_length($input);
+ $1 = scm_c_vector_length($input);
if ($1 > 0) {
$1_ltype i;
$2 = (C_TYPE *) SWIG_malloc(sizeof(C_TYPE) * $1);
for (i = 0; i<$1; i++) {
- SCM swig_scm_value = gh_vector_ref($input, gh_int2scm(i));
+ SCM swig_scm_value = scm_vector_ref($input, scm_from_long(i));
$2[i] = SCM_TO_C_EXPR;
}
}
@@ -78,15 +78,15 @@
(size_t LISTLENINPUT, C_TYPE *LISTINPUT)
{
SCM_VALIDATE_LIST($argnum, $input);
- $1 = gh_length($input);
+ $1 = scm_to_ulong(scm_length($input));
if ($1 > 0) {
$1_ltype i;
SCM rest;
$2 = (C_TYPE *) SWIG_malloc(sizeof(C_TYPE) * $1);
for (i = 0, rest = $input;
i<$1;
- i++, rest = gh_cdr(rest)) {
- SCM swig_scm_value = gh_car(rest);
+ i++, rest = SCM_CDR(rest)) {
+ SCM swig_scm_value = SCM_CAR(rest);
$2[i] = SCM_TO_C_EXPR;
}
}
@@ -140,12 +140,12 @@
(size_t *VECTORLENOUTPUT, C_TYPE **VECTOROUTPUT)
{
$*1_ltype i;
- SCM res = gh_make_vector(gh_int2scm(*$1),
+ SCM res = scm_make_vector(scm_from_long(*$1),
SCM_BOOL_F);
for (i = 0; i<*$1; i++) {
C_TYPE swig_c_value = (*$2)[i];
SCM elt = C_TO_SCM_EXPR;
- gh_vector_set_x(res, gh_int2scm(i), elt);
+ scm_vector_set_x(res, scm_from_long(i), elt);
}
SWIG_APPEND_VALUE(res);
}
@@ -159,7 +159,7 @@
for (i = ((int)(*$1)) - 1; i>=0; i--) {
C_TYPE swig_c_value = (*$2)[i];
SCM elt = C_TO_SCM_EXPR;
- res = gh_cons(elt, res);
+ res = scm_cons(elt, res);
}
SWIG_APPEND_VALUE(res);
}
@@ -200,21 +200,21 @@
/* We use the macro to define typemaps for some standard types. */
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(bool, gh_scm2bool, gh_bool2scm, boolean);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(char, gh_scm2char, gh_char2scm, char);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(unsigned char, gh_scm2char, gh_char2scm, char);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(int, gh_scm2int, gh_int2scm, integer);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(short, gh_scm2int, gh_int2scm, integer);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(long, gh_scm2long, gh_long2scm, integer);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(ptrdiff_t, gh_scm2long, gh_long2scm, integer);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(unsigned int, gh_scm2ulong, gh_ulong2scm, integer);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(unsigned short, gh_scm2ulong, gh_ulong2scm, integer);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(unsigned long, gh_scm2ulong, gh_ulong2scm, integer);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(size_t, gh_scm2ulong, gh_ulong2scm, integer);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(float, gh_scm2double, gh_double2scm, real);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(double, gh_scm2double, gh_double2scm, real);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(char *, SWIG_scm2str, gh_str02scm, string);
-TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, gh_str02scm, string);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(bool, scm_is_true, scm_from_bool, boolean);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(char, SCM_CHAR, SCM_MAKE_CHAR, char);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(unsigned char, SCM_CHAR, SCM_MAKE_CHAR, char);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(int, scm_to_int, scm_from_long, integer);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(short, scm_to_int, scm_from_long, integer);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(long, scm_to_long, scm_from_long, integer);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(ptrdiff_t, scm_to_long, scm_from_long, integer);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(unsigned int, scm_to_ulong, scm_from_ulong, integer);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(unsigned short, scm_to_ulong, scm_from_ulong, integer);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(unsigned long, scm_to_ulong, scm_from_ulong, integer);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(size_t, scm_to_ulong, scm_from_ulong, integer);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(float, scm_to_double, scm_from_double, real);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(double, scm_to_double, scm_from_double, real);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(char *, SWIG_scm2str, SWIG_str02scm, string);
+TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, SWIG_str02scm, string);
/* For the char *, free all strings after converting */
@@ -312,13 +312,13 @@ TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, gh_str02scm, string
const C_TYPE *PARALLEL_VECTORINPUT
{
SCM_VALIDATE_VECTOR($argnum, $input);
- *_global_vector_length = gh_vector_length($input);
+ *_global_vector_length = scm_c_vector_length($input);
if (*_global_vector_length > 0) {
int i;
$1 = (C_TYPE *) SWIG_malloc(sizeof(C_TYPE)
* (*_global_vector_length));
for (i = 0; i<*_global_vector_length; i++) {
- SCM swig_scm_value = gh_vector_ref($input, gh_int2scm(i));
+ SCM swig_scm_value = scm_vector_ref($input, scm_from_long(i));
$1[i] = SCM_TO_C_EXPR;
}
}
@@ -330,7 +330,7 @@ TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, gh_str02scm, string
const C_TYPE *PARALLEL_LISTINPUT
{
SCM_VALIDATE_LIST($argnum, $input);
- *_global_list_length = gh_length($input);
+ *_global_list_length = scm_to_ulong(scm_length($input));
if (*_global_list_length > 0) {
int i;
SCM rest;
@@ -338,8 +338,8 @@ TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, gh_str02scm, string
* (*_global_list_length));
for (i = 0, rest = $input;
i<*_global_list_length;
- i++, rest = gh_cdr(rest)) {
- SCM swig_scm_value = gh_car(rest);
+ i++, rest = SCM_CDR(rest)) {
+ SCM swig_scm_value = SCM_CAR(rest);
$1[i] = SCM_TO_C_EXPR;
}
}
@@ -391,12 +391,12 @@ TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, gh_str02scm, string
C_TYPE **PARALLEL_VECTOROUTPUT
{
int i;
- SCM res = gh_make_vector(gh_int2scm(_global_arraylentemp),
+ SCM res = scm_make_vector(scm_from_long(_global_arraylentemp),
SCM_BOOL_F);
for (i = 0; i<_global_arraylentemp; i++) {
C_TYPE swig_c_value = (*$1)[i];
SCM elt = C_TO_SCM_EXPR;
- gh_vector_set_x(res, gh_int2scm(i), elt);
+ scm_vector_set_x(res, scm_from_long(i), elt);
}
SWIG_APPEND_VALUE(res);
}
@@ -410,7 +410,7 @@ TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, gh_str02scm, string
for (i = _global_arraylentemp - 1; i>=0; i--) {
C_TYPE swig_c_value = (*$1)[i];
SCM elt = C_TO_SCM_EXPR;
- res = gh_cons(elt, res);
+ res = scm_cons(elt, res);
}
}
SWIG_APPEND_VALUE(res);
@@ -449,21 +449,21 @@ TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, gh_str02scm, string
/* We use the macro to define typemaps for some standard types. */
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(bool, gh_scm2bool, gh_bool2scm, boolean);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(char, gh_scm2char, gh_char2scm, char);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(unsigned char, gh_scm2char, gh_char2scm, char);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(int, gh_scm2int, gh_int2scm, integer);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(short, gh_scm2int, gh_int2scm, integer);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(long, gh_scm2long, gh_long2scm, integer);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(ptrdiff_t, gh_scm2long, gh_long2scm, integer);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(unsigned int, gh_scm2ulong, gh_ulong2scm, integer);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(unsigned short, gh_scm2ulong, gh_ulong2scm, integer);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(unsigned long, gh_scm2ulong, gh_ulong2scm, integer);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(size_t, gh_scm2ulong, gh_ulong2scm, integer);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(float, gh_scm2double, gh_double2scm, real);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(double, gh_scm2double, gh_double2scm, real);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(char *, SWIG_scm2str, gh_str02scm, string);
-TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, gh_str02scm, string);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(bool, scm_is_true, scm_from_bool, boolean);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(char, SCM_CHAR, SCM_MAKE_CHAR, char);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(unsigned char, SCM_CHAR, SCM_MAKE_CHAR, char);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(int, scm_to_int, scm_from_long, integer);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(short, scm_to_int, scm_from_long, integer);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(long, scm_to_long, scm_from_long, integer);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(ptrdiff_t, scm_to_long, scm_from_long, integer);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(unsigned int, scm_to_ulong, scm_from_ulong, integer);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(unsigned short, scm_to_ulong, scm_from_ulong, integer);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(unsigned long, scm_to_ulong, scm_from_ulong, integer);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(size_t, scm_to_ulong, scm_from_ulong, integer);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(float, scm_to_double, scm_from_double, real);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(double, scm_to_double, scm_from_double, real);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(char *, SWIG_scm2str, SWIG_str02scm, string);
+TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, SWIG_str02scm, string);
%typemap(freearg) char **PARALLEL_LISTINPUT, char **PARALLEL_VECTORINPUT,
const char **PARALLEL_LISTINPUT, const char **PARALLEL_VECTORINPUT
diff --git a/Lib/guile/std_common.i b/Lib/guile/std_common.i
index a46c42c69..18c7db089 100644
--- a/Lib/guile/std_common.i
+++ b/Lib/guile/std_common.i
@@ -8,8 +8,8 @@
%apply size_t { std::size_t };
-#define SWIG_bool2scm(b) gh_bool2scm(b ? 1 : 0)
-#define SWIG_string2scm(s) gh_str02scm(s.c_str())
+#define SWIG_bool2scm(b) scm_from_bool(b ? 1 : 0)
+#define SWIG_string2scm(s) SWIG_str02scm(s.c_str())
%{
#include
diff --git a/Lib/guile/std_map.i b/Lib/guile/std_map.i
index eb28c2831..dfce6fc5c 100644
--- a/Lib/guile/std_map.i
+++ b/Lib/guile/std_map.i
@@ -42,30 +42,30 @@ namespace std {
template class map {
%typemap(in) map (std::map* m) {
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
$1 = std::map();
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
$1 = std::map();
SCM alist = $input;
- while (!gh_null_p(alist)) {
+ while (!scm_is_null(alist)) {
K* k;
T* x;
SCM entry, key, val;
- entry = gh_car(alist);
- if (!gh_pair_p(entry))
+ entry = SCM_CAR(alist);
+ if (!scm_is_pair(entry))
SWIG_exception(SWIG_TypeError,"alist expected");
- key = gh_car(entry);
- val = gh_cdr(entry);
+ key = SCM_CAR(entry);
+ val = SCM_CDR(entry);
k = (K*) SWIG_MustGetPtr(key,$descriptor(K *),$argnum, 0);
if (SWIG_ConvertPtr(val,(void**) &x,
$descriptor(T *), 0) != 0) {
- if (!gh_pair_p(val))
+ if (!scm_is_pair(val))
SWIG_exception(SWIG_TypeError,"alist expected");
- val = gh_car(val);
+ val = SCM_CAR(val);
x = (T*) SWIG_MustGetPtr(val,$descriptor(T *),$argnum, 0);
}
(($1_type &)$1)[*k] = *x;
- alist = gh_cdr(alist);
+ alist = SCM_CDR(alist);
}
} else {
$1 = *(($&1_type)
@@ -76,32 +76,32 @@ namespace std {
std::map* m),
const map* (std::map temp,
std::map* m) {
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
temp = std::map();
$1 = &temp;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
temp = std::map();
$1 = &temp;
SCM alist = $input;
- while (!gh_null_p(alist)) {
+ while (!scm_is_null(alist)) {
K* k;
T* x;
SCM entry, key, val;
- entry = gh_car(alist);
- if (!gh_pair_p(entry))
+ entry = SCM_CAR(alist);
+ if (!scm_is_pair(entry))
SWIG_exception(SWIG_TypeError,"alist expected");
- key = gh_car(entry);
- val = gh_cdr(entry);
+ key = SCM_CAR(entry);
+ val = SCM_CDR(entry);
k = (K*) SWIG_MustGetPtr(key,$descriptor(K *),$argnum, 0);
if (SWIG_ConvertPtr(val,(void**) &x,
$descriptor(T *), 0) != 0) {
- if (!gh_pair_p(val))
+ if (!scm_is_pair(val))
SWIG_exception(SWIG_TypeError,"alist expected");
- val = gh_car(val);
+ val = SCM_CAR(val);
x = (T*) SWIG_MustGetPtr(val,$descriptor(T *),$argnum, 0);
}
temp[*k] = *x;
- alist = gh_cdr(alist);
+ alist = SCM_CDR(alist);
}
} else {
$1 = ($1_ltype) SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
@@ -115,24 +115,24 @@ namespace std {
T* val = new T(i->second);
SCM k = SWIG_NewPointerObj(key,$descriptor(K *), 1);
SCM x = SWIG_NewPointerObj(val,$descriptor(T *), 1);
- SCM entry = gh_cons(k,x);
- alist = gh_cons(entry,alist);
+ SCM entry = scm_cons(k,x);
+ alist = scm_cons(entry,alist);
}
$result = alist;
}
%typecheck(SWIG_TYPECHECK_MAP) map {
/* native sequence? */
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
/* an empty sequence can be of any type */
$1 = 1;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
/* check the first element only */
K* k;
T* x;
- SCM head = gh_car($input);
- if (gh_pair_p(head)) {
- SCM key = gh_car(head);
- SCM val = gh_cdr(head);
+ SCM head = SCM_CAR($input);
+ if (scm_is_pair(head)) {
+ SCM key = SCM_CAR(head);
+ SCM val = SCM_CDR(head);
if (SWIG_ConvertPtr(key,(void**) &k,
$descriptor(K *), 0) != 0) {
$1 = 0;
@@ -140,8 +140,8 @@ namespace std {
if (SWIG_ConvertPtr(val,(void**) &x,
$descriptor(T *), 0) == 0) {
$1 = 1;
- } else if (gh_pair_p(val)) {
- val = gh_car(val);
+ } else if (scm_is_pair(val)) {
+ val = SCM_CAR(val);
if (SWIG_ConvertPtr(val,(void**) &x,
$descriptor(T *), 0) == 0)
$1 = 1;
@@ -167,17 +167,17 @@ namespace std {
%typecheck(SWIG_TYPECHECK_MAP) const map&,
const map* {
/* native sequence? */
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
/* an empty sequence can be of any type */
$1 = 1;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
/* check the first element only */
K* k;
T* x;
- SCM head = gh_car($input);
- if (gh_pair_p(head)) {
- SCM key = gh_car(head);
- SCM val = gh_cdr(head);
+ SCM head = SCM_CAR($input);
+ if (scm_is_pair(head)) {
+ SCM key = SCM_CAR(head);
+ SCM val = SCM_CDR(head);
if (SWIG_ConvertPtr(key,(void**) &k,
$descriptor(K *), 0) != 0) {
$1 = 0;
@@ -185,8 +185,8 @@ namespace std {
if (SWIG_ConvertPtr(val,(void**) &x,
$descriptor(T *), 0) == 0) {
$1 = 1;
- } else if (gh_pair_p(val)) {
- val = gh_car(val);
+ } else if (scm_is_pair(val)) {
+ val = SCM_CAR(val);
if (SWIG_ConvertPtr(val,(void**) &x,
$descriptor(T *), 0) == 0)
$1 = 1;
@@ -255,7 +255,7 @@ namespace std {
i!=$1.rend(); ++i) {
K* key = new K(i->first);
SCM k = SWIG_NewPointerObj(key,$descriptor(K *), 1);
- result = gh_cons(k,result);
+ result = scm_cons(k,result);
}
return result;
}
@@ -269,31 +269,31 @@ namespace std {
template class map {
%typemap(in) map (std::map* m) {
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
$1 = std::map();
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
$1 = std::map();
SCM alist = $input;
- while (!gh_null_p(alist)) {
+ while (!scm_is_null(alist)) {
T* x;
SCM entry, key, val;
- entry = gh_car(alist);
- if (!gh_pair_p(entry))
+ entry = SCM_CAR(alist);
+ if (!scm_is_pair(entry))
SWIG_exception(SWIG_TypeError,"alist expected");
- key = gh_car(entry);
- val = gh_cdr(entry);
+ key = SCM_CAR(entry);
+ val = SCM_CDR(entry);
if (!CHECK(key))
SWIG_exception(SWIG_TypeError,
"map<" #K "," #T "> expected");
if (SWIG_ConvertPtr(val,(void**) &x,
$descriptor(T *), 0) != 0) {
- if (!gh_pair_p(val))
+ if (!scm_is_pair(val))
SWIG_exception(SWIG_TypeError,"alist expected");
- val = gh_car(val);
+ val = SCM_CAR(val);
x = (T*) SWIG_MustGetPtr(val,$descriptor(T *),$argnum, 0);
}
(($1_type &)$1)[CONVERT_FROM(key)] = *x;
- alist = gh_cdr(alist);
+ alist = SCM_CDR(alist);
}
} else {
$1 = *(($&1_type)
@@ -304,33 +304,33 @@ namespace std {
std::map* m),
const map* (std::map temp,
std::map* m) {
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
temp = std::map();
$1 = &temp;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
temp = std::map();
$1 = &temp;
SCM alist = $input;
- while (!gh_null_p(alist)) {
+ while (!scm_is_null(alist)) {
T* x;
SCM entry, key, val;
- entry = gh_car(alist);
- if (!gh_pair_p(entry))
+ entry = SCM_CAR(alist);
+ if (!scm_is_pair(entry))
SWIG_exception(SWIG_TypeError,"alist expected");
- key = gh_car(entry);
- val = gh_cdr(entry);
+ key = SCM_CAR(entry);
+ val = SCM_CDR(entry);
if (!CHECK(key))
SWIG_exception(SWIG_TypeError,
"map<" #K "," #T "> expected");
if (SWIG_ConvertPtr(val,(void**) &x,
$descriptor(T *), 0) != 0) {
- if (!gh_pair_p(val))
+ if (!scm_is_pair(val))
SWIG_exception(SWIG_TypeError,"alist expected");
- val = gh_car(val);
+ val = SCM_CAR(val);
x = (T*) SWIG_MustGetPtr(val,$descriptor(T *),$argnum, 0);
}
temp[CONVERT_FROM(key)] = *x;
- alist = gh_cdr(alist);
+ alist = SCM_CDR(alist);
}
} else {
$1 = ($1_ltype) SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
@@ -343,31 +343,31 @@ namespace std {
T* val = new T(i->second);
SCM k = CONVERT_TO(i->first);
SCM x = SWIG_NewPointerObj(val,$descriptor(T *), 1);
- SCM entry = gh_cons(k,x);
- alist = gh_cons(entry,alist);
+ SCM entry = scm_cons(k,x);
+ alist = scm_cons(entry,alist);
}
$result = alist;
}
%typecheck(SWIG_TYPECHECK_MAP) map {
// native sequence?
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
/* an empty sequence can be of any type */
$1 = 1;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
// check the first element only
T* x;
- SCM head = gh_car($input);
- if (gh_pair_p(head)) {
- SCM key = gh_car(head);
- SCM val = gh_cdr(head);
+ SCM head = SCM_CAR($input);
+ if (scm_is_pair(head)) {
+ SCM key = SCM_CAR(head);
+ SCM val = SCM_CDR(head);
if (!CHECK(key)) {
$1 = 0;
} else {
if (SWIG_ConvertPtr(val,(void**) &x,
$descriptor(T *), 0) == 0) {
$1 = 1;
- } else if (gh_pair_p(val)) {
- val = gh_car(val);
+ } else if (scm_is_pair(val)) {
+ val = SCM_CAR(val);
if (SWIG_ConvertPtr(val,(void**) &x,
$descriptor(T *), 0) == 0)
$1 = 1;
@@ -393,24 +393,24 @@ namespace std {
%typecheck(SWIG_TYPECHECK_MAP) const map&,
const map* {
// native sequence?
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
/* an empty sequence can be of any type */
$1 = 1;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
// check the first element only
T* x;
- SCM head = gh_car($input);
- if (gh_pair_p(head)) {
- SCM key = gh_car(head);
- SCM val = gh_cdr(head);
+ SCM head = SCM_CAR($input);
+ if (scm_is_pair(head)) {
+ SCM key = SCM_CAR(head);
+ SCM val = SCM_CDR(head);
if (!CHECK(key)) {
$1 = 0;
} else {
if (SWIG_ConvertPtr(val,(void**) &x,
$descriptor(T *), 0) == 0) {
$1 = 1;
- } else if (gh_pair_p(val)) {
- val = gh_car(val);
+ } else if (scm_is_pair(val)) {
+ val = SCM_CAR(val);
if (SWIG_ConvertPtr(val,(void**) &x,
$descriptor(T *), 0) == 0)
$1 = 1;
@@ -474,7 +474,7 @@ namespace std {
for (std::map::reverse_iterator i=$1.rbegin();
i!=$1.rend(); ++i) {
SCM k = CONVERT_TO(i->first);
- result = gh_cons(k,result);
+ result = scm_cons(k,result);
}
return result;
}
@@ -485,30 +485,30 @@ namespace std {
%define specialize_std_map_on_value(T,CHECK,CONVERT_FROM,CONVERT_TO)
template class map {
%typemap(in) map (std::map* m) {
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
$1 = std::map();
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
$1 = std::map();
SCM alist = $input;
- while (!gh_null_p(alist)) {
+ while (!scm_is_null(alist)) {
K* k;
SCM entry, key, val;
- entry = gh_car(alist);
- if (!gh_pair_p(entry))
+ entry = SCM_CAR(alist);
+ if (!scm_is_pair(entry))
SWIG_exception(SWIG_TypeError,"alist expected");
- key = gh_car(entry);
- val = gh_cdr(entry);
+ key = SCM_CAR(entry);
+ val = SCM_CDR(entry);
k = (K*) SWIG_MustGetPtr(key,$descriptor(K *),$argnum, 0);
if (!CHECK(val)) {
- if (!gh_pair_p(val))
+ if (!scm_is_pair(val))
SWIG_exception(SWIG_TypeError,"alist expected");
- val = gh_car(val);
+ val = SCM_CAR(val);
if (!CHECK(val))
SWIG_exception(SWIG_TypeError,
"map<" #K "," #T "> expected");
}
(($1_type &)$1)[*k] = CONVERT_FROM(val);
- alist = gh_cdr(alist);
+ alist = SCM_CDR(alist);
}
} else {
$1 = *(($&1_type)
@@ -519,32 +519,32 @@ namespace std {
std::map* m),
const map* (std::map temp,
std::map* m) {
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
temp = std::map();
$1 = &temp;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
temp = std::map();
$1 = &temp;
SCM alist = $input;
- while (!gh_null_p(alist)) {
+ while (!scm_is_null(alist)) {
K* k;
SCM entry, key, val;
- entry = gh_car(alist);
- if (!gh_pair_p(entry))
+ entry = SCM_CAR(alist);
+ if (!scm_is_pair(entry))
SWIG_exception(SWIG_TypeError,"alist expected");
- key = gh_car(entry);
- val = gh_cdr(entry);
+ key = SCM_CAR(entry);
+ val = SCM_CDR(entry);
k = (K*) SWIG_MustGetPtr(key,$descriptor(K *),$argnum, 0);
if (!CHECK(val)) {
- if (!gh_pair_p(val))
+ if (!scm_is_pair(val))
SWIG_exception(SWIG_TypeError,"alist expected");
- val = gh_car(val);
+ val = SCM_CAR(val);
if (!CHECK(val))
SWIG_exception(SWIG_TypeError,
"map<" #K "," #T "> expected");
}
temp[*k] = CONVERT_FROM(val);
- alist = gh_cdr(alist);
+ alist = SCM_CDR(alist);
}
} else {
$1 = ($1_ltype) SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
@@ -557,31 +557,31 @@ namespace std {
K* key = new K(i->first);
SCM k = SWIG_NewPointerObj(key,$descriptor(K *), 1);
SCM x = CONVERT_TO(i->second);
- SCM entry = gh_cons(k,x);
- alist = gh_cons(entry,alist);
+ SCM entry = scm_cons(k,x);
+ alist = scm_cons(entry,alist);
}
$result = alist;
}
%typecheck(SWIG_TYPECHECK_MAP) map {
// native sequence?
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
/* an empty sequence can be of any type */
$1 = 1;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
// check the first element only
K* k;
- SCM head = gh_car($input);
- if (gh_pair_p(head)) {
- SCM key = gh_car(head);
- SCM val = gh_cdr(head);
+ SCM head = SCM_CAR($input);
+ if (scm_is_pair(head)) {
+ SCM key = SCM_CAR(head);
+ SCM val = SCM_CDR(head);
if (SWIG_ConvertPtr(val,(void **) &k,
$descriptor(K *), 0) != 0) {
$1 = 0;
} else {
if (CHECK(val)) {
$1 = 1;
- } else if (gh_pair_p(val)) {
- val = gh_car(val);
+ } else if (scm_is_pair(val)) {
+ val = SCM_CAR(val);
if (CHECK(val))
$1 = 1;
else
@@ -606,24 +606,24 @@ namespace std {
%typecheck(SWIG_TYPECHECK_MAP) const map&,
const map* {
// native sequence?
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
/* an empty sequence can be of any type */
$1 = 1;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
// check the first element only
K* k;
- SCM head = gh_car($input);
- if (gh_pair_p(head)) {
- SCM key = gh_car(head);
- SCM val = gh_cdr(head);
+ SCM head = SCM_CAR($input);
+ if (scm_is_pair(head)) {
+ SCM key = SCM_CAR(head);
+ SCM val = SCM_CDR(head);
if (SWIG_ConvertPtr(val,(void **) &k,
$descriptor(K *), 0) != 0) {
$1 = 0;
} else {
if (CHECK(val)) {
$1 = 1;
- } else if (gh_pair_p(val)) {
- val = gh_car(val);
+ } else if (scm_is_pair(val)) {
+ val = SCM_CAR(val);
if (CHECK(val))
$1 = 1;
else
@@ -687,7 +687,7 @@ namespace std {
i!=$1.rend(); ++i) {
K* key = new K(i->first);
SCM k = SWIG_NewPointerObj(key,$descriptor(K *), 1);
- result = gh_cons(k,result);
+ result = scm_cons(k,result);
}
return result;
}
@@ -699,32 +699,32 @@ namespace std {
T,CHECK_T,CONVERT_T_FROM,CONVERT_T_TO)
template<> class map {
%typemap(in) map (std::map* m) {
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
$1 = std::map();
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
$1 = std::map();
SCM alist = $input;
- while (!gh_null_p(alist)) {
+ while (!scm_is_null(alist)) {
SCM entry, key, val;
- entry = gh_car(alist);
- if (!gh_pair_p(entry))
+ entry = SCM_CAR(alist);
+ if (!scm_is_pair(entry))
SWIG_exception(SWIG_TypeError,"alist expected");
- key = gh_car(entry);
- val = gh_cdr(entry);
+ key = SCM_CAR(entry);
+ val = SCM_CDR(entry);
if (!CHECK_K(key))
SWIG_exception(SWIG_TypeError,
"map<" #K "," #T "> expected");
if (!CHECK_T(val)) {
- if (!gh_pair_p(val))
+ if (!scm_is_pair(val))
SWIG_exception(SWIG_TypeError,"alist expected");
- val = gh_car(val);
+ val = SCM_CAR(val);
if (!CHECK_T(val))
SWIG_exception(SWIG_TypeError,
"map<" #K "," #T "> expected");
}
(($1_type &)$1)[CONVERT_K_FROM(key)] =
CONVERT_T_FROM(val);
- alist = gh_cdr(alist);
+ alist = SCM_CDR(alist);
}
} else {
$1 = *(($&1_type)
@@ -735,33 +735,33 @@ namespace std {
std::map* m),
const map* (std::map temp,
std::map* m) {
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
temp = std::map();
$1 = &temp;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
temp = std::map();
$1 = &temp;
SCM alist = $input;
- while (!gh_null_p(alist)) {
+ while (!scm_is_null(alist)) {
SCM entry, key, val;
- entry = gh_car(alist);
- if (!gh_pair_p(entry))
+ entry = SCM_CAR(alist);
+ if (!scm_is_pair(entry))
SWIG_exception(SWIG_TypeError,"alist expected");
- key = gh_car(entry);
- val = gh_cdr(entry);
+ key = SCM_CAR(entry);
+ val = SCM_CDR(entry);
if (!CHECK_K(key))
SWIG_exception(SWIG_TypeError,
"map<" #K "," #T "> expected");
if (!CHECK_T(val)) {
- if (!gh_pair_p(val))
+ if (!scm_is_pair(val))
SWIG_exception(SWIG_TypeError,"alist expected");
- val = gh_car(val);
+ val = SCM_CAR(val);
if (!CHECK_T(val))
SWIG_exception(SWIG_TypeError,
"map<" #K "," #T "> expected");
}
temp[CONVERT_K_FROM(key)] = CONVERT_T_FROM(val);
- alist = gh_cdr(alist);
+ alist = SCM_CDR(alist);
}
} else {
$1 = ($1_ltype) SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
@@ -773,29 +773,29 @@ namespace std {
i!=$1.rend(); ++i) {
SCM k = CONVERT_K_TO(i->first);
SCM x = CONVERT_T_TO(i->second);
- SCM entry = gh_cons(k,x);
- alist = gh_cons(entry,alist);
+ SCM entry = scm_cons(k,x);
+ alist = scm_cons(entry,alist);
}
$result = alist;
}
%typecheck(SWIG_TYPECHECK_MAP) map {
// native sequence?
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
/* an empty sequence can be of any type */
$1 = 1;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
// check the first element only
- SCM head = gh_car($input);
- if (gh_pair_p(head)) {
- SCM key = gh_car(head);
- SCM val = gh_cdr(head);
+ SCM head = SCM_CAR($input);
+ if (scm_is_pair(head)) {
+ SCM key = SCM_CAR(head);
+ SCM val = SCM_CDR(head);
if (!CHECK_K(key)) {
$1 = 0;
} else {
if (CHECK_T(val)) {
$1 = 1;
- } else if (gh_pair_p(val)) {
- val = gh_car(val);
+ } else if (scm_is_pair(val)) {
+ val = SCM_CAR(val);
if (CHECK_T(val))
$1 = 1;
else
@@ -820,22 +820,22 @@ namespace std {
%typecheck(SWIG_TYPECHECK_MAP) const map&,
const map* {
// native sequence?
- if (gh_null_p($input)) {
+ if (scm_is_null($input)) {
/* an empty sequence can be of any type */
$1 = 1;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
// check the first element only
- SCM head = gh_car($input);
- if (gh_pair_p(head)) {
- SCM key = gh_car(head);
- SCM val = gh_cdr(head);
+ SCM head = SCM_CAR($input);
+ if (scm_is_pair(head)) {
+ SCM key = SCM_CAR(head);
+ SCM val = SCM_CDR(head);
if (!CHECK_K(key)) {
$1 = 0;
} else {
if (CHECK_T(val)) {
$1 = 1;
- } else if (gh_pair_p(val)) {
- val = gh_car(val);
+ } else if (scm_is_pair(val)) {
+ val = SCM_CAR(val);
if (CHECK_T(val))
$1 = 1;
else
@@ -898,7 +898,7 @@ namespace std {
for (std::map::reverse_iterator i=$1.rbegin();
i!=$1.rend(); ++i) {
SCM k = CONVERT_K_TO(i->first);
- result = gh_cons(k,result);
+ result = scm_cons(k,result);
}
return result;
}
@@ -907,446 +907,446 @@ namespace std {
%enddef
- specialize_std_map_on_key(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_map_on_key(int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_key(short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_key(long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_key(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_key(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_key(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_key(double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_key(float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_key(std::string,gh_string_p,
+ specialize_std_map_on_key(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_map_on_key(int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_key(short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_key(long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_key(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_key(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_key(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_key(double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_key(float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_key(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_map_on_value(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_map_on_value(int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_value(short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_value(long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_value(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_value(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_value(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_value(double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_value(float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_value(std::string,gh_string_p,
+ specialize_std_map_on_value(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_map_on_value(int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_value(short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_value(long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_value(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_value(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_value(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_value(double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_value(float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_value(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_map_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_map_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- std::string,gh_string_p,
+ specialize_std_map_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_map_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_map_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_map_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- std::string,gh_string_p,
+ specialize_std_map_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_map_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_map_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_map_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- std::string,gh_string_p,
+ specialize_std_map_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_map_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_map_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_map_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- std::string,gh_string_p,
+ specialize_std_map_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_map_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_map_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_map_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- std::string,gh_string_p,
+ specialize_std_map_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_map_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_map_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_map_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- std::string,gh_string_p,
+ specialize_std_map_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_map_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_map_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_map_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- std::string,gh_string_p,
+ specialize_std_map_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_map_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_map_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_map_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- std::string,gh_string_p,
+ specialize_std_map_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_map_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_map_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_map_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- std::string,gh_string_p,
+ specialize_std_map_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_map_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_map_on_both(std::string,gh_string_p,
+ specialize_std_map_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_map_on_both(std::string,gh_string_p,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_map_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(std::string,gh_string_p,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(std::string,gh_string_p,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_map_on_both(std::string,gh_string_p,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_map_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(std::string,gh_string_p,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(std::string,gh_string_p,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_map_on_both(std::string,gh_string_p,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_map_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(std::string,gh_string_p,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_map_on_both(std::string,gh_string_p,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_map_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- std::string,gh_string_p,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
}
diff --git a/Lib/guile/std_pair.i b/Lib/guile/std_pair.i
index 35f0cfad5..86ca6e00f 100644
--- a/Lib/guile/std_pair.i
+++ b/Lib/guile/std_pair.i
@@ -23,12 +23,12 @@ namespace std {
template struct pair {
%typemap(in) pair (std::pair* m) {
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
T* x;
U* y;
SCM first, second;
- first = gh_car($input);
- second = gh_cdr($input);
+ first = SCM_CAR($input);
+ second = SCM_CDR($input);
x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
$1 = std::make_pair(*x,*y);
@@ -41,12 +41,12 @@ namespace std {
std::pair* m),
const pair* (std::pair temp,
std::pair* m) {
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
T* x;
U* y;
SCM first, second;
- first = gh_car($input);
- second = gh_cdr($input);
+ first = SCM_CAR($input);
+ second = SCM_CDR($input);
x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
temp = std::make_pair(*x,*y);
@@ -61,15 +61,15 @@ namespace std {
U* y = new U($1.second);
SCM first = SWIG_NewPointerObj(x,$descriptor(T *), 1);
SCM second = SWIG_NewPointerObj(y,$descriptor(U *), 1);
- $result = gh_cons(first,second);
+ $result = scm_cons(first,second);
}
%typecheck(SWIG_TYPECHECK_PAIR) pair {
/* native pair? */
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
T* x;
U* y;
- SCM first = gh_car($input);
- SCM second = gh_cdr($input);
+ SCM first = SCM_CAR($input);
+ SCM second = SCM_CDR($input);
if (SWIG_ConvertPtr(first,(void**) &x,
$descriptor(T *), 0) == 0 &&
SWIG_ConvertPtr(second,(void**) &y,
@@ -91,11 +91,11 @@ namespace std {
%typecheck(SWIG_TYPECHECK_PAIR) const pair&,
const pair* {
/* native pair? */
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
T* x;
U* y;
- SCM first = gh_car($input);
- SCM second = gh_cdr($input);
+ SCM first = SCM_CAR($input);
+ SCM second = SCM_CDR($input);
if (SWIG_ConvertPtr(first,(void**) &x,
$descriptor(T *), 0) == 0 &&
SWIG_ConvertPtr(second,(void**) &y,
@@ -130,11 +130,11 @@ namespace std {
%define specialize_std_pair_on_first(T,CHECK,CONVERT_FROM,CONVERT_TO)
template struct pair {
%typemap(in) pair (std::pair* m) {
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
U* y;
SCM first, second;
- first = gh_car($input);
- second = gh_cdr($input);
+ first = SCM_CAR($input);
+ second = SCM_CDR($input);
if (!CHECK(first))
SWIG_exception(SWIG_TypeError,
"map<" #T "," #U "> expected");
@@ -149,11 +149,11 @@ namespace std {
std::pair* m),
const pair* (std::pair temp,
std::pair* m) {
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
U* y;
SCM first, second;
- first = gh_car($input);
- second = gh_cdr($input);
+ first = SCM_CAR($input);
+ second = SCM_CDR($input);
if (!CHECK(first))
SWIG_exception(SWIG_TypeError,
"map<" #T "," #U "> expected");
@@ -168,14 +168,14 @@ namespace std {
%typemap(out) pair {
U* y = new U($1.second);
SCM second = SWIG_NewPointerObj(y,$descriptor(U *), 1);
- $result = gh_cons(CONVERT_TO($1.first),second);
+ $result = scm_cons(CONVERT_TO($1.first),second);
}
%typecheck(SWIG_TYPECHECK_PAIR) pair {
/* native pair? */
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
U* y;
- SCM first = gh_car($input);
- SCM second = gh_cdr($input);
+ SCM first = SCM_CAR($input);
+ SCM second = SCM_CDR($input);
if (CHECK(first) &&
SWIG_ConvertPtr(second,(void**) &y,
$descriptor(U *), 0) == 0) {
@@ -196,10 +196,10 @@ namespace std {
%typecheck(SWIG_TYPECHECK_PAIR) const pair&,
const pair* {
/* native pair? */
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
U* y;
- SCM first = gh_car($input);
- SCM second = gh_cdr($input);
+ SCM first = SCM_CAR($input);
+ SCM second = SCM_CDR($input);
if (CHECK(first) &&
SWIG_ConvertPtr(second,(void**) &y,
$descriptor(U *), 0) == 0) {
@@ -231,11 +231,11 @@ namespace std {
%define specialize_std_pair_on_second(U,CHECK,CONVERT_FROM,CONVERT_TO)
template struct pair {
%typemap(in) pair (std::pair* m) {
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
T* x;
SCM first, second;
- first = gh_car($input);
- second = gh_cdr($input);
+ first = SCM_CAR($input);
+ second = SCM_CDR($input);
x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
if (!CHECK(second))
SWIG_exception(SWIG_TypeError,
@@ -250,11 +250,11 @@ namespace std {
std::pair* m),
const pair* (std::pair temp,
std::pair* m) {
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
T* x;
SCM first, second;
- first = gh_car($input);
- second = gh_cdr($input);
+ first = SCM_CAR($input);
+ second = SCM_CDR($input);
x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
if (!CHECK(second))
SWIG_exception(SWIG_TypeError,
@@ -269,14 +269,14 @@ namespace std {
%typemap(out) pair {
T* x = new T($1.first);
SCM first = SWIG_NewPointerObj(x,$descriptor(T *), 1);
- $result = gh_cons(first,CONVERT_TO($1.second));
+ $result = scm_cons(first,CONVERT_TO($1.second));
}
%typecheck(SWIG_TYPECHECK_PAIR) pair {
/* native pair? */
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
T* x;
- SCM first = gh_car($input);
- SCM second = gh_cdr($input);
+ SCM first = SCM_CAR($input);
+ SCM second = SCM_CDR($input);
if (SWIG_ConvertPtr(first,(void**) &x,
$descriptor(T *), 0) == 0 &&
CHECK(second)) {
@@ -297,10 +297,10 @@ namespace std {
%typecheck(SWIG_TYPECHECK_PAIR) const pair&,
const pair* {
/* native pair? */
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
T* x;
- SCM first = gh_car($input);
- SCM second = gh_cdr($input);
+ SCM first = SCM_CAR($input);
+ SCM second = SCM_CDR($input);
if (SWIG_ConvertPtr(first,(void**) &x,
$descriptor(T *), 0) == 0 &&
CHECK(second)) {
@@ -333,10 +333,10 @@ namespace std {
U,CHECK_U,CONVERT_U_FROM,CONVERT_U_TO)
template<> struct pair {
%typemap(in) pair (std::pair* m) {
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
SCM first, second;
- first = gh_car($input);
- second = gh_cdr($input);
+ first = SCM_CAR($input);
+ second = SCM_CDR($input);
if (!CHECK_T(first) || !CHECK_U(second))
SWIG_exception(SWIG_TypeError,
"map<" #T "," #U "> expected");
@@ -351,10 +351,10 @@ namespace std {
std::pair* m),
const pair* (std::pair temp,
std::pair* m) {
- if (gh_pair_p($input)) {
+ if (scm_is_pair($input)) {
SCM first, second;
- first = gh_car($input);
- second = gh_cdr($input);
+ first = SCM_CAR($input);
+ second = SCM_CDR($input);
if (!CHECK_T(first) || !CHECK_U(second))
SWIG_exception(SWIG_TypeError,
"map<" #T "," #U "> expected");
@@ -367,14 +367,14 @@ namespace std {
}
}
%typemap(out) pair {
- $result = gh_cons(CONVERT_T_TO($1.first),
+ $result = scm_cons(CONVERT_T_TO($1.first),
CONVERT_U_TO($1.second));
}
%typecheck(SWIG_TYPECHECK_PAIR) pair {
/* native pair? */
- if (gh_pair_p($input)) {
- SCM first = gh_car($input);
- SCM second = gh_cdr($input);
+ if (scm_is_pair($input)) {
+ SCM first = SCM_CAR($input);
+ SCM second = SCM_CDR($input);
if (CHECK_T(first) && CHECK_U(second)) {
$1 = 1;
} else {
@@ -393,9 +393,9 @@ namespace std {
%typecheck(SWIG_TYPECHECK_PAIR) const pair&,
const pair* {
/* native pair? */
- if (gh_pair_p($input)) {
- SCM first = gh_car($input);
- SCM second = gh_cdr($input);
+ if (scm_is_pair($input)) {
+ SCM first = SCM_CAR($input);
+ SCM second = SCM_CDR($input);
if (CHECK_T(first) && CHECK_U(second)) {
$1 = 1;
} else {
@@ -423,446 +423,446 @@ namespace std {
%enddef
- specialize_std_pair_on_first(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_pair_on_first(int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_first(short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_first(long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_first(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_first(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_first(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_first(double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_first(float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_first(std::string,gh_string_p,
+ specialize_std_pair_on_first(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_pair_on_first(int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_first(short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_first(long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_first(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_first(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_first(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_first(double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_first(float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_first(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_pair_on_second(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_pair_on_second(int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_second(short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_second(long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_second(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_second(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_second(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_second(double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_second(float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_second(std::string,gh_string_p,
+ specialize_std_pair_on_second(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_pair_on_second(int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_second(short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_second(long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_second(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_second(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_second(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_second(double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_second(float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_second(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_pair_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_pair_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm,
- std::string,gh_string_p,
+ specialize_std_pair_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_pair_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_pair_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_pair_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(int,gh_number_p,
- gh_scm2long,gh_long2scm,
- std::string,gh_string_p,
+ specialize_std_pair_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_pair_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(int,scm_is_number,
+ scm_to_long,scm_from_long,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_pair_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_pair_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(short,gh_number_p,
- gh_scm2long,gh_long2scm,
- std::string,gh_string_p,
+ specialize_std_pair_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_pair_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(short,scm_is_number,
+ scm_to_long,scm_from_long,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_pair_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_pair_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(long,gh_number_p,
- gh_scm2long,gh_long2scm,
- std::string,gh_string_p,
+ specialize_std_pair_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_pair_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(long,scm_is_number,
+ scm_to_long,scm_from_long,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_pair_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_pair_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- std::string,gh_string_p,
+ specialize_std_pair_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_pair_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_pair_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_pair_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- std::string,gh_string_p,
+ specialize_std_pair_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_pair_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_pair_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_pair_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm,
- std::string,gh_string_p,
+ specialize_std_pair_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_pair_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_pair_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_pair_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(double,gh_number_p,
- gh_scm2double,gh_double2scm,
- std::string,gh_string_p,
+ specialize_std_pair_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_pair_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(double,scm_is_number,
+ scm_to_double,scm_from_double,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_pair_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_pair_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(float,gh_number_p,
- gh_scm2double,gh_double2scm,
- std::string,gh_string_p,
+ specialize_std_pair_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_pair_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(float,scm_is_number,
+ scm_to_double,scm_from_double,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
- specialize_std_pair_on_both(std::string,gh_string_p,
+ specialize_std_pair_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- bool,gh_boolean_p,
- gh_scm2bool,SWIG_bool2scm);
- specialize_std_pair_on_both(std::string,gh_string_p,
+ bool,scm_is_bool,
+ scm_is_true,SWIG_bool2scm);
+ specialize_std_pair_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- int,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(std::string,gh_string_p,
+ int,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- short,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(std::string,gh_string_p,
+ short,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- long,gh_number_p,
- gh_scm2long,gh_long2scm);
- specialize_std_pair_on_both(std::string,gh_string_p,
+ long,scm_is_number,
+ scm_to_long,scm_from_long);
+ specialize_std_pair_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- unsigned int,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(std::string,gh_string_p,
+ unsigned int,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- unsigned short,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(std::string,gh_string_p,
+ unsigned short,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- unsigned long,gh_number_p,
- gh_scm2ulong,gh_ulong2scm);
- specialize_std_pair_on_both(std::string,gh_string_p,
+ unsigned long,scm_is_number,
+ scm_to_ulong,scm_from_ulong);
+ specialize_std_pair_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- double,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(std::string,gh_string_p,
+ double,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- float,gh_number_p,
- gh_scm2double,gh_double2scm);
- specialize_std_pair_on_both(std::string,gh_string_p,
+ float,scm_is_number,
+ scm_to_double,scm_from_double);
+ specialize_std_pair_on_both(std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm,
- std::string,gh_string_p,
+ std::string,scm_is_string,
SWIG_scm2string,SWIG_string2scm);
}
diff --git a/Lib/guile/std_string.i b/Lib/guile/std_string.i
index 83e0dd26d..6513173ee 100644
--- a/Lib/guile/std_string.i
+++ b/Lib/guile/std_string.i
@@ -27,7 +27,7 @@ namespace std {
%typemap(typecheck) const string & = char *;
%typemap(in) string (char * tempptr) {
- if (gh_string_p($input)) {
+ if (scm_is_string($input)) {
tempptr = SWIG_scm2str($input);
$1.assign(tempptr);
if (tempptr) SWIG_free(tempptr);
@@ -37,7 +37,7 @@ namespace std {
}
%typemap(in) const string & ($*1_ltype temp, char *tempptr) {
- if (gh_string_p($input)) {
+ if (scm_is_string($input)) {
tempptr = SWIG_scm2str($input);
temp.assign(tempptr);
if (tempptr) SWIG_free(tempptr);
@@ -48,7 +48,7 @@ namespace std {
}
%typemap(in) string * (char *tempptr) {
- if (gh_string_p($input)) {
+ if (scm_is_string($input)) {
tempptr = SWIG_scm2str($input);
$1 = new $*1_ltype(tempptr);
if (tempptr) SWIG_free(tempptr);
@@ -58,19 +58,19 @@ namespace std {
}
%typemap(out) string {
- $result = gh_str02scm($1.c_str());
+ $result = SWIG_str02scm($1.c_str());
}
%typemap(out) const string & {
- $result = gh_str02scm($1->c_str());
+ $result = SWIG_str02scm($1->c_str());
}
%typemap(out) string * {
- $result = gh_str02scm($1->c_str());
+ $result = SWIG_str02scm($1->c_str());
}
%typemap(varin) string {
- if (gh_string_p($input)) {
+ if (scm_is_string($input)) {
char *tempptr = SWIG_scm2str($input);
$1.assign(tempptr);
if (tempptr) SWIG_free(tempptr);
@@ -80,7 +80,7 @@ namespace std {
}
%typemap(varout) string {
- $result = gh_str02scm($1.c_str());
+ $result = SWIG_str02scm($1.c_str());
}
}
diff --git a/Lib/guile/std_vector.i b/Lib/guile/std_vector.i
index 6a5e8ae36..79c716b10 100644
--- a/Lib/guile/std_vector.i
+++ b/Lib/guile/std_vector.i
@@ -42,23 +42,23 @@ namespace std {
template class vector {
%typemap(in) vector {
- if (gh_vector_p($input)) {
- unsigned long size = gh_vector_length($input);
+ if (scm_is_vector($input)) {
+ unsigned long size = scm_c_vector_length($input);
$1 = std::vector(size);
for (unsigned long i=0; i();
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
SCM head, tail;
$1 = std::vector();
tail = $input;
- while (!gh_null_p(tail)) {
- head = gh_car(tail);
- tail = gh_cdr(tail);
+ while (!scm_is_null(tail)) {
+ head = SCM_CAR(tail);
+ tail = SCM_CDR(tail);
$1.push_back(*((T*)SWIG_MustGetPtr(head,
$descriptor(T *),
$argnum, 0)));
@@ -70,27 +70,27 @@ namespace std {
}
%typemap(in) const vector& (std::vector temp),
const vector* (std::vector temp) {
- if (gh_vector_p($input)) {
- unsigned long size = gh_vector_length($input);
+ if (scm_is_vector($input)) {
+ unsigned long size = scm_c_vector_length($input);
temp = std::vector(size);
$1 = &temp;
for (unsigned long i=0; i();
$1 = &temp;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
temp = std::vector();
$1 = &temp;
SCM head, tail;
tail = $input;
- while (!gh_null_p(tail)) {
- head = gh_car(tail);
- tail = gh_cdr(tail);
+ while (!scm_is_null(tail)) {
+ head = SCM_CAR(tail);
+ tail = SCM_CDR(tail);
temp.push_back(*((T*) SWIG_MustGetPtr(head,
$descriptor(T *),
$argnum, 0)));
@@ -100,23 +100,23 @@ namespace std {
}
}
%typemap(out) vector {
- $result = gh_make_vector(gh_long2scm($1.size()),SCM_UNSPECIFIED);
+ $result = scm_make_vector(scm_from_long($1.size()),SCM_UNSPECIFIED);
for (unsigned int i=0; i<$1.size(); i++) {
T* x = new T((($1_type &)$1)[i]);
- gh_vector_set_x($result,gh_long2scm(i),
+ scm_vector_set_x($result,scm_from_long(i),
SWIG_NewPointerObj(x, $descriptor(T *), 1));
}
}
%typecheck(SWIG_TYPECHECK_VECTOR) vector {
/* native sequence? */
- if (gh_vector_p($input)) {
- unsigned int size = gh_vector_length($input);
+ if (scm_is_vector($input)) {
+ unsigned int size = scm_c_vector_length($input);
if (size == 0) {
/* an empty sequence can be of any type */
$1 = 1;
} else {
/* check the first element only */
- SCM o = gh_vector_ref($input,gh_ulong2scm(0));
+ SCM o = scm_vector_ref($input,scm_from_ulong(0));
T* x;
if (SWIG_ConvertPtr(o,(void**) &x,
$descriptor(T *), 0) != -1)
@@ -124,13 +124,13 @@ namespace std {
else
$1 = 0;
}
- } else if (gh_null_p($input)) {
+ } else if (scm_is_null($input)) {
/* again, an empty sequence can be of any type */
$1 = 1;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
/* check the first element only */
T* x;
- SCM head = gh_car($input);
+ SCM head = SCM_CAR($input);
if (SWIG_ConvertPtr(head,(void**) &x,
$descriptor(T *), 0) != -1)
$1 = 1;
@@ -149,28 +149,28 @@ namespace std {
%typecheck(SWIG_TYPECHECK_VECTOR) const vector&,
const vector* {
/* native sequence? */
- if (gh_vector_p($input)) {
- unsigned int size = gh_vector_length($input);
+ if (scm_is_vector($input)) {
+ unsigned int size = scm_c_vector_length($input);
if (size == 0) {
/* an empty sequence can be of any type */
$1 = 1;
} else {
/* check the first element only */
T* x;
- SCM o = gh_vector_ref($input,gh_ulong2scm(0));
+ SCM o = scm_vector_ref($input,scm_from_ulong(0));
if (SWIG_ConvertPtr(o,(void**) &x,
$descriptor(T *), 0) != -1)
$1 = 1;
else
$1 = 0;
}
- } else if (gh_null_p($input)) {
+ } else if (scm_is_null($input)) {
/* again, an empty sequence can be of any type */
$1 = 1;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
/* check the first element only */
T* x;
- SCM head = gh_car($input);
+ SCM head = SCM_CAR($input);
if (SWIG_ConvertPtr(head,(void**) &x,
$descriptor(T *), 0) != -1)
$1 = 1;
@@ -230,24 +230,24 @@ namespace std {
%define specialize_stl_vector(T,CHECK,CONVERT_FROM,CONVERT_TO)
template<> class vector {
%typemap(in) vector {
- if (gh_vector_p($input)) {
- unsigned long size = gh_vector_length($input);
+ if (scm_is_vector($input)) {
+ unsigned long size = scm_c_vector_length($input);
$1 = std::vector(size);
for (unsigned long i=0; i();
- } else if (gh_pair_p($input)) {
- SCM v = gh_list_to_vector($input);
- unsigned long size = gh_vector_length(v);
+ } else if (scm_is_pair($input)) {
+ SCM v = scm_vector($input);
+ unsigned long size = scm_c_vector_length(v);
$1 = std::vector(size);
for (unsigned long i=0; i& (std::vector temp),
const vector* (std::vector temp) {
- if (gh_vector_p($input)) {
- unsigned long size = gh_vector_length($input);
+ if (scm_is_vector($input)) {
+ unsigned long size = scm_c_vector_length($input);
temp = std::vector(size);
$1 = &temp;
for (unsigned long i=0; i();
$1 = &temp;
- } else if (gh_pair_p($input)) {
- SCM v = gh_list_to_vector($input);
- unsigned long size = gh_vector_length(v);
+ } else if (scm_is_pair($input)) {
+ SCM v = scm_vector($input);
+ unsigned long size = scm_c_vector_length(v);
temp = std::vector(size);
$1 = &temp;
for (unsigned long i=0; i {
- $result = gh_make_vector(gh_long2scm($1.size()),SCM_UNSPECIFIED);
+ $result = scm_make_vector(scm_from_long($1.size()),SCM_UNSPECIFIED);
for (unsigned int i=0; i<$1.size(); i++) {
SCM x = CONVERT_TO((($1_type &)$1)[i]);
- gh_vector_set_x($result,gh_long2scm(i),x);
+ scm_vector_set_x($result,scm_from_long(i),x);
}
}
%typecheck(SWIG_TYPECHECK_VECTOR) vector {
/* native sequence? */
- if (gh_vector_p($input)) {
- unsigned int size = gh_vector_length($input);
+ if (scm_is_vector($input)) {
+ unsigned int size = scm_c_vector_length($input);
if (size == 0) {
/* an empty sequence can be of any type */
$1 = 1;
} else {
/* check the first element only */
T* x;
- SCM o = gh_vector_ref($input,gh_ulong2scm(0));
+ SCM o = scm_vector_ref($input,scm_from_ulong(0));
$1 = CHECK(o) ? 1 : 0;
}
- } else if (gh_null_p($input)) {
+ } else if (scm_is_null($input)) {
/* again, an empty sequence can be of any type */
$1 = 1;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
/* check the first element only */
T* x;
- SCM head = gh_car($input);
+ SCM head = SCM_CAR($input);
$1 = CHECK(head) ? 1 : 0;
} else {
/* wrapped vector? */
@@ -328,24 +328,24 @@ namespace std {
%typecheck(SWIG_TYPECHECK_VECTOR) const vector&,
const vector* {
/* native sequence? */
- if (gh_vector_p($input)) {
- unsigned int size = gh_vector_length($input);
+ if (scm_is_vector($input)) {
+ unsigned int size = scm_c_vector_length($input);
if (size == 0) {
/* an empty sequence can be of any type */
$1 = 1;
} else {
/* check the first element only */
T* x;
- SCM o = gh_vector_ref($input,gh_ulong2scm(0));
+ SCM o = scm_vector_ref($input,scm_from_ulong(0));
$1 = CHECK(o) ? 1 : 0;
}
- } else if (gh_null_p($input)) {
+ } else if (scm_is_null($input)) {
/* again, an empty sequence can be of any type */
$1 = 1;
- } else if (gh_pair_p($input)) {
+ } else if (scm_is_pair($input)) {
/* check the first element only */
T* x;
- SCM head = gh_car($input);
+ SCM head = SCM_CAR($input);
$1 = CHECK(head) ? 1 : 0;
} else {
/* wrapped vector? */
@@ -394,17 +394,17 @@ namespace std {
};
%enddef
- specialize_stl_vector(bool,gh_boolean_p,gh_scm2bool,SWIG_bool2scm);
- specialize_stl_vector(char,gh_number_p,gh_scm2long,gh_long2scm);
- specialize_stl_vector(int,gh_number_p,gh_scm2long,gh_long2scm);
- specialize_stl_vector(long,gh_number_p,gh_scm2long,gh_long2scm);
- specialize_stl_vector(short,gh_number_p,gh_scm2long,gh_long2scm);
- specialize_stl_vector(unsigned char,gh_number_p,gh_scm2ulong,gh_ulong2scm);
- specialize_stl_vector(unsigned int,gh_number_p,gh_scm2ulong,gh_ulong2scm);
- specialize_stl_vector(unsigned long,gh_number_p,gh_scm2ulong,gh_ulong2scm);
- specialize_stl_vector(unsigned short,gh_number_p,gh_scm2ulong,gh_ulong2scm);
- specialize_stl_vector(float,gh_number_p,gh_scm2double,gh_double2scm);
- specialize_stl_vector(double,gh_number_p,gh_scm2double,gh_double2scm);
- specialize_stl_vector(std::string,gh_string_p,SWIG_scm2string,SWIG_string2scm);
+ specialize_stl_vector(bool,scm_is_bool,scm_is_true,SWIG_bool2scm);
+ specialize_stl_vector(char,scm_is_number,scm_to_long,scm_from_long);
+ specialize_stl_vector(int,scm_is_number,scm_to_long,scm_from_long);
+ specialize_stl_vector(long,scm_is_number,scm_to_long,scm_from_long);
+ specialize_stl_vector(short,scm_is_number,scm_to_long,scm_from_long);
+ specialize_stl_vector(unsigned char,scm_is_number,scm_to_ulong,scm_from_ulong);
+ specialize_stl_vector(unsigned int,scm_is_number,scm_to_ulong,scm_from_ulong);
+ specialize_stl_vector(unsigned long,scm_is_number,scm_to_ulong,scm_from_ulong);
+ specialize_stl_vector(unsigned short,scm_is_number,scm_to_ulong,scm_from_ulong);
+ specialize_stl_vector(float,scm_is_number,scm_to_double,scm_from_double);
+ specialize_stl_vector(double,scm_is_number,scm_to_double,scm_from_double);
+ specialize_stl_vector(std::string,scm_is_string,SWIG_scm2string,SWIG_string2scm);
}
diff --git a/Lib/guile/typemaps.i b/Lib/guile/typemaps.i
index 5036162fd..ab655eb9a 100644
--- a/Lib/guile/typemaps.i
+++ b/Lib/guile/typemaps.i
@@ -60,26 +60,26 @@
%typemap(throws) SWIGTYPE {
$<ype temp = new $ltype($1);
- scm_throw(gh_symbol2scm((char *) "swig-exception"),
- gh_list(SWIG_NewPointerObj(temp, $&descriptor, 1),
+ scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_listify(SWIG_NewPointerObj(temp, $&descriptor, 1),
SCM_UNDEFINED));
}
%typemap(throws) SWIGTYPE & {
- scm_throw(gh_symbol2scm((char *) "swig-exception"),
- gh_list(SWIG_NewPointerObj(&$1, $descriptor, 1),
+ scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_listify(SWIG_NewPointerObj(&$1, $descriptor, 1),
SCM_UNDEFINED));
}
%typemap(throws) SWIGTYPE * {
- scm_throw(gh_symbol2scm((char *) "swig-exception"),
- gh_list(SWIG_NewPointerObj($1, $descriptor, 1),
+ scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_listify(SWIG_NewPointerObj($1, $descriptor, 1),
SCM_UNDEFINED));
}
%typemap(throws) SWIGTYPE [] {
- scm_throw(gh_symbol2scm((char *) "swig-exception"),
- gh_list(SWIG_NewPointerObj($1, $descriptor, 1),
+ scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_listify(SWIG_NewPointerObj($1, $descriptor, 1),
SCM_UNDEFINED));
}
@@ -146,7 +146,7 @@
/* Enums */
-%typemap(in) enum SWIGTYPE { $1 = ($1_type) gh_scm2int($input); }
+%typemap(in) enum SWIGTYPE { $1 = ($1_type) scm_to_int($input); }
/* The complicated construction below needed to deal with anonymous
enums, which cannot be cast to. */
%typemap(varin) enum SWIGTYPE {
@@ -156,13 +156,13 @@
(char *) "enum variable '$name' cannot be set",
SCM_EOL, SCM_BOOL_F);
}
- * (int *) &($1) = gh_scm2int($input);
+ * (int *) &($1) = scm_to_int($input);
}
-%typemap(out) enum SWIGTYPE { $result = gh_int2scm($1); }
-%typemap(varout) enum SWIGTYPE { $result = gh_int2scm($1); }
+%typemap(out) enum SWIGTYPE { $result = scm_from_long($1); }
+%typemap(varout) enum SWIGTYPE { $result = scm_from_long($1); }
%typemap(throws) enum SWIGTYPE {
- scm_throw(gh_symbol2scm((char *) "swig-exception"),
- gh_list(gh_int2scm($1), SCM_UNDEFINED));
+ scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_listify(scm_from_long($1), SCM_UNDEFINED));
}
/* The SIMPLE_MAP_WITH_EXPR macro below defines the whole set of
@@ -210,8 +210,8 @@
/* Throw typemap */
%typemap(throws) C_NAME {
C_NAME swig_c_value = $1;
- scm_throw(gh_symbol2scm((char *) "swig-exception"),
- gh_list(C_TO_SCM_EXPR, SCM_UNDEFINED));
+ scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_listify(C_TO_SCM_EXPR, SCM_UNDEFINED));
}
%enddef
@@ -254,34 +254,34 @@
}
/* Throw typemap */
%typemap(throws) C_NAME {
- scm_throw(gh_symbol2scm((char *) "swig-exception"),
- gh_list(C_TO_SCM($1), SCM_UNDEFINED));
+ scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_listify(C_TO_SCM($1), SCM_UNDEFINED));
}
%enddef
- SIMPLE_MAP(bool, gh_scm2bool, gh_bool2scm, boolean);
- SIMPLE_MAP(char, gh_scm2char, gh_char2scm, char);
- SIMPLE_MAP(unsigned char, gh_scm2char, gh_char2scm, char);
- SIMPLE_MAP(signed char, gh_scm2char, gh_char2scm, char);
- SIMPLE_MAP(int, gh_scm2int, gh_int2scm, integer);
- SIMPLE_MAP(short, gh_scm2short, gh_int2scm, integer);
- SIMPLE_MAP(long, gh_scm2long, gh_long2scm, integer);
- SIMPLE_MAP(ptrdiff_t, gh_scm2long, gh_long2scm, integer);
- SIMPLE_MAP(unsigned int, gh_scm2uint, gh_ulong2scm, integer);
- SIMPLE_MAP(unsigned short, gh_scm2ushort, gh_ulong2scm, integer);
- SIMPLE_MAP(unsigned long, gh_scm2ulong, gh_ulong2scm, integer);
- SIMPLE_MAP(size_t, gh_scm2ulong, gh_ulong2scm, integer);
- SIMPLE_MAP(float, gh_scm2double, gh_double2scm, real);
- SIMPLE_MAP(double, gh_scm2double, gh_double2scm, real);
-// SIMPLE_MAP(char *, SWIG_scm2str, gh_str02scm, string);
-// SIMPLE_MAP(const char *, SWIG_scm2str, gh_str02scm, string);
+ SIMPLE_MAP(bool, scm_is_true, scm_from_bool, boolean);
+ SIMPLE_MAP(char, SCM_CHAR, SCM_MAKE_CHAR, char);
+ SIMPLE_MAP(unsigned char, SCM_CHAR, SCM_MAKE_CHAR, char);
+ SIMPLE_MAP(signed char, SCM_CHAR, SCM_MAKE_CHAR, char);
+ SIMPLE_MAP(int, scm_to_int, scm_from_long, integer);
+ SIMPLE_MAP(short, scm_to_short, scm_from_long, integer);
+ SIMPLE_MAP(long, scm_to_long, scm_from_long, integer);
+ SIMPLE_MAP(ptrdiff_t, scm_to_long, scm_from_long, integer);
+ SIMPLE_MAP(unsigned int, scm_to_uint, scm_from_ulong, integer);
+ SIMPLE_MAP(unsigned short, scm_to_ushort, scm_from_ulong, integer);
+ SIMPLE_MAP(unsigned long, scm_to_ulong, scm_from_ulong, integer);
+ SIMPLE_MAP(size_t, scm_to_ulong, scm_from_ulong, integer);
+ SIMPLE_MAP(float, scm_to_double, scm_from_double, real);
+ SIMPLE_MAP(double, scm_to_double, scm_from_double, real);
+// SIMPLE_MAP(char *, SWIG_scm2str, SWIG_str02scm, string);
+// SIMPLE_MAP(const char *, SWIG_scm2str, SWIG_str02scm, string);
/* Define long long typemaps -- uses functions that are only defined
in recent versions of Guile, availability also depends on Guile's
configuration. */
-SIMPLE_MAP(long long, gh_scm2long_long, gh_long_long2scm, integer);
-SIMPLE_MAP(unsigned long long, gh_scm2ulong_long, gh_ulong_long2scm, integer);
+SIMPLE_MAP(long long, scm_to_long_long, scm_from_long_long, integer);
+SIMPLE_MAP(unsigned long long, scm_to_ulong_long, scm_from_ulong_long, integer);
/* Strings */
@@ -290,8 +290,8 @@ SIMPLE_MAP(unsigned long long, gh_scm2ulong_long, gh_ulong_long2scm, integer);
must_free = 1;
}
%typemap (varin, doc="NEW-VALUE is a string") char * {$1 = ($1_ltype)SWIG_scm2str($input);}
- %typemap (out, doc="") char * {$result = gh_str02scm((const char *)$1);}
- %typemap (varout, doc="") char * {$result = gh_str02scm($1);}
+ %typemap (out, doc="") char * {$result = SWIG_str02scm((const char *)$1);}
+ %typemap (varout, doc="") char * {$result = SWIG_str02scm($1);}
%typemap (in, doc="$NAME is a string") char **INPUT(char * temp, int must_free = 0) {
temp = (char *) SWIG_scm2str($input); $1 = &temp;
must_free = 1;
@@ -299,7 +299,7 @@ SIMPLE_MAP(unsigned long long, gh_scm2ulong_long, gh_ulong_long2scm, integer);
%typemap (in,numinputs=0) char **OUTPUT (char * temp)
{$1 = &temp;}
%typemap (argout,doc="$NAME (a string)") char **OUTPUT
- {SWIG_APPEND_VALUE(gh_str02scm(*$1));}
+ {SWIG_APPEND_VALUE(SWIG_str02scm(*$1));}
%typemap (in) char **BOTH = char **INPUT;
%typemap (argout) char **BOTH = char **OUTPUT;
%typemap (in) char **INOUT = char **INPUT;
@@ -329,8 +329,8 @@ SIMPLE_MAP(unsigned long long, gh_scm2ulong_long, gh_ulong_long2scm, integer);
}
%typemap(throws) char * {
- scm_throw(gh_symbol2scm((char *) "swig-exception"),
- gh_list(gh_str02scm($1), SCM_UNDEFINED));
+ scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_listify(SWIG_str02scm($1), SCM_UNDEFINED));
}
/* Void */
@@ -350,7 +350,7 @@ typedef unsigned long SCM;
%typemap(in) (char *STRING, int LENGTH), (char *STRING, size_t LENGTH) {
size_t temp;
- $1 = ($1_ltype) gh_scm2newstr($input, &temp);
+ $1 = ($1_ltype) SWIG_Guile_scm2newstr($input, &temp);
$2 = ($2_ltype) temp;
}
diff --git a/Lib/mzscheme/typemaps.i b/Lib/mzscheme/typemaps.i
index f12513df8..4078026ac 100644
--- a/Lib/mzscheme/typemaps.i
+++ b/Lib/mzscheme/typemaps.i
@@ -279,7 +279,7 @@ REF_MAP(double, SCHEME_REALP, scheme_real_to_double,
//%typemap(in) (char *STRING, int LENGTH) {
// int temp;
-// $1 = ($1_ltype) gh_scm2newstr($input, &temp);
+// $1 = ($1_ltype) SWIG_Guile_scm2newstr($input, &temp);
// $2 = ($2_ltype) temp;
//}
diff --git a/Makefile.in b/Makefile.in
index c33889587..cfa6d0933 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -59,7 +59,6 @@ skip-tcl = test -n "@SKIP_TCL@"
skip-perl5 = test -n "@SKIP_PERL5@"
skip-python = test -n "@SKIP_PYTHON@"
skip-java = test -n "@SKIP_JAVA@"
-skip-guilegh = test -n "@SKIP_GUILEGH@"
skip-guile = test -n "@SKIP_GUILE@"
skip-mzscheme = test -n "@SKIP_MZSCHEME@"
skip-ruby = test -n "@SKIP_RUBY@"
@@ -247,7 +246,6 @@ check-test-suite: \
check-perl5-test-suite \
check-python-test-suite \
check-java-test-suite \
- check-guilegh-test-suite \
check-guile-test-suite \
check-mzscheme-test-suite \
check-ruby-test-suite \
@@ -300,7 +298,6 @@ all-test-suite: \
all-perl5-test-suite \
all-python-test-suite \
all-java-test-suite \
- all-guilegh-test-suite \
all-guile-test-suite \
all-mzscheme-test-suite \
all-ruby-test-suite \
@@ -329,7 +326,6 @@ broken-test-suite: \
broken-perl5-test-suite \
broken-python-test-suite \
broken-java-test-suite \
- broken-guilegh-test-suite \
broken-guile-test-suite \
broken-mzscheme-test-suite \
broken-ruby-test-suite \
diff --git a/Source/Modules/guile.cxx b/Source/Modules/guile.cxx
index 211b11baf..afe039ac7 100644
--- a/Source/Modules/guile.cxx
+++ b/Source/Modules/guile.cxx
@@ -23,7 +23,6 @@ Guile Options (available with -guile)\n\
-emitslotaccessors - Emit accessor methods for all GOOPS slots\n" "\
-exportprimitive - Add the (export ...) code from scmstub into the\n\
GOOPS file.\n\
- -gh - Use the gh_ Guile API. (Guile <= 1.8) \n\
-goopsprefix - Prepend to all goops identifiers\n\
-linkage - Use linkage protocol (default `simple')\n\
Use `module' for native Guile module linking\n\
@@ -44,10 +43,14 @@ Guile Options (available with -guile)\n\
-proxy - Export GOOPS class definitions\n\
-primsuffix - Name appended to primitive module when exporting\n\
GOOPS classes. (default = \"primitive\")\n\
- -scm - Use the scm Guile API. (Guile >= 1.6, default) \n\
-scmstub - Output Scheme file with module declaration and\n\
exports; only with `passive' and `simple' linkage\n\
-useclassprefix - Prepend the class name to all goops identifiers\n\
+\n\
+Obsolete parameters:\n\
+These parameters do nothing, but are kept for compatibility with old scripts only.\n\
+ -gh - Was used to select the gh_ Guile API. \n\
+ -scm - scm Guile API is always used now. \n\
\n";
static File *f_begin = 0;
@@ -94,7 +97,6 @@ static String *return_multi_doc = 0;
static String *exported_symbols = 0;
-static int use_scm_interface = 1;
static int exporting_destructor = 0;
static String *swigtype_ptr = 0;
@@ -216,10 +218,8 @@ public:
goops = true;
Swig_mark_arg(i);
} else if (strcmp(argv[i], "-gh") == 0) {
- use_scm_interface = 0;
Swig_mark_arg(i);
} else if (strcmp(argv[i], "-scm") == 0) {
- use_scm_interface = 1;
Swig_mark_arg(i);
} else if (strcmp(argv[i], "-primsuffix") == 0) {
if (argv[i + 1]) {
@@ -285,10 +285,7 @@ public:
/* Add a symbol for this module */
Preprocessor_define("SWIGGUILE 1", 0);
/* Read in default typemaps */
- if (use_scm_interface)
- SWIG_config_file("guile_scm.swg");
- else
- SWIG_config_file("guile_gh.swg");
+ SWIG_config_file("guile_scm.swg");
allow_overloading();
}
@@ -331,13 +328,6 @@ public:
Printf(f_runtime, "\n");
Printf(f_runtime, "#define SWIGGUILE\n");
- if (!use_scm_interface) {
- if (SwigRuntime == 1)
- Printf(f_runtime, "#define SWIG_GLOBAL\n");
- if (SwigRuntime == 2)
- Printf(f_runtime, "#define SWIG_NOINCLUDE\n");
- }
-
/* Write out directives and declarations */
module = Swig_copy_string(Char(Getattr(n, "name")));
@@ -851,7 +841,7 @@ public:
}
}
- if (use_scm_interface && exporting_destructor) {
+ if (exporting_destructor) {
/* Mark the destructor's argument as destroyed. */
String *tm = NewString("SWIG_Guile_MarkPointerDestroyed($input);");
Replaceall(tm, "$input", Getattr(l, "emit:input"));
@@ -868,14 +858,8 @@ public:
Printv(f->def, "#define FUNC_NAME \"", proc_name, "\"", NIL);
// Now write code to make the function call
- if (!use_scm_interface)
- Printv(f->code, tab4, "gh_defer_ints();\n", NIL);
-
String *actioncode = emit_action(n);
- if (!use_scm_interface)
- Printv(actioncode, tab4, "gh_allow_ints();\n", NIL);
-
// Now have return value, figure out what to do with it.
if ((tm = Swig_typemap_lookup_out("out", n, Swig_cresult_name(), f, actioncode))) {
Replaceall(tm, "$result", "gswig_result");
@@ -958,11 +942,7 @@ public:
Printv(f_wrappers, ");\n", NIL);
Printv(f_wrappers, "}\n", NIL);
/* Register it */
- if (use_scm_interface) {
- Printf(f_init, "scm_c_define_gsubr(\"%s\", 0, 0, 1, (swig_guile_proc) %s_rest);\n", proc_name, wname);
- } else {
- Printf(f_init, "gh_new_procedure(\"%s\", (swig_guile_proc) %s_rest, 0, 0, 1);\n", proc_name, wname);
- }
+ Printf(f_init, "scm_c_define_gsubr(\"%s\", 0, 0, 1, (swig_guile_proc) %s_rest);\n", proc_name, wname);
} else if (emit_setters && struct_member && strlen(Char(proc_name)) > 3) {
int len = Len(proc_name);
const char *pc = Char(proc_name);
@@ -973,19 +953,13 @@ public:
struct_member = 2; /* have a setter */
} else
Printf(f_init, "SCM getter = ");
- if (use_scm_interface) {
- /* GOOPS support uses the MEMBER-set and MEMBER-get functions,
- so ignore only_setters in this case. */
- if (only_setters && !goops)
- Printf(f_init, "scm_c_make_gsubr(\"%s\", %d, %d, 0, (swig_guile_proc) %s);\n", proc_name, numreq, numargs - numreq, wname);
- else
- Printf(f_init, "scm_c_define_gsubr(\"%s\", %d, %d, 0, (swig_guile_proc) %s);\n", proc_name, numreq, numargs - numreq, wname);
- } else {
- if (only_setters && !goops)
- Printf(f_init, "scm_make_gsubr(\"%s\", %d, %d, 0, (swig_guile_proc) %s);\n", proc_name, numreq, numargs - numreq, wname);
- else
- Printf(f_init, "gh_new_procedure(\"%s\", (swig_guile_proc) %s, %d, %d, 0);\n", proc_name, wname, numreq, numargs - numreq);
- }
+ /* GOOPS support uses the MEMBER-set and MEMBER-get functions,
+ so ignore only_setters in this case. */
+ if (only_setters && !goops)
+ Printf(f_init, "scm_c_make_gsubr(\"%s\", %d, %d, 0, (swig_guile_proc) %s);\n", proc_name, numreq, numargs - numreq, wname);
+ else
+ Printf(f_init, "scm_c_define_gsubr(\"%s\", %d, %d, 0, (swig_guile_proc) %s);\n", proc_name, numreq, numargs - numreq, wname);
+
if (!is_setter) {
/* Strip off "-get" */
char *pws_name = (char *) malloc(sizeof(char) * (len - 3));
@@ -993,19 +967,11 @@ public:
pws_name[len - 4] = 0;
if (struct_member == 2) {
/* There was a setter, so create a procedure with setter */
- if (use_scm_interface) {
- Printf(f_init, "scm_c_define");
- } else {
- Printf(f_init, "gh_define");
- }
+ Printf(f_init, "scm_c_define");
Printf(f_init, "(\"%s\", " "scm_make_procedure_with_setter(getter, setter));\n", pws_name);
} else {
/* There was no setter, so make an alias to the getter */
- if (use_scm_interface) {
- Printf(f_init, "scm_c_define");
- } else {
- Printf(f_init, "gh_define");
- }
+ Printf(f_init, "scm_c_define");
Printf(f_init, "(\"%s\", getter);\n", pws_name);
}
Printf(exported_symbols, "\"%s\", ", pws_name);
@@ -1013,15 +979,11 @@ public:
}
} else {
/* Register the function */
- if (use_scm_interface) {
- if (exporting_destructor) {
- Printf(f_init, "((swig_guile_clientdata *)(SWIGTYPE%s->clientdata))->destroy = (guile_destructor) %s;\n", swigtype_ptr, wname);
- //Printf(f_init, "SWIG_TypeClientData(SWIGTYPE%s, (void *) %s);\n", swigtype_ptr, wname);
- }
- Printf(f_init, "scm_c_define_gsubr(\"%s\", %d, %d, 0, (swig_guile_proc) %s);\n", proc_name, numreq, numargs - numreq, wname);
- } else {
- Printf(f_init, "gh_new_procedure(\"%s\", (swig_guile_proc) %s, %d, %d, 0);\n", proc_name, wname, numreq, numargs - numreq);
+ if (exporting_destructor) {
+ Printf(f_init, "((swig_guile_clientdata *)(SWIGTYPE%s->clientdata))->destroy = (guile_destructor) %s;\n", swigtype_ptr, wname);
+ //Printf(f_init, "SWIG_TypeClientData(SWIGTYPE%s, (void *) %s);\n", swigtype_ptr, wname);
}
+ Printf(f_init, "scm_c_define_gsubr(\"%s\", %d, %d, 0, (swig_guile_proc) %s);\n", proc_name, numreq, numargs - numreq, wname);
}
} else { /* overloaded function; don't export the single methods */
if (!Getattr(n, "sym:nextSibling")) {
@@ -1044,11 +1006,7 @@ public:
Printf(df->code, "#undef FUNC_NAME\n");
Printv(df->code, "}\n", NIL);
Wrapper_print(df, f_wrappers);
- if (use_scm_interface) {
- Printf(f_init, "scm_c_define_gsubr(\"%s\", 0, 0, 1, (swig_guile_proc) %s);\n", proc_name, dname);
- } else {
- Printf(f_init, "gh_new_procedure(\"%s\", (swig_guile_proc) %s, 0, 0, 1);\n", proc_name, dname);
- }
+ Printf(f_init, "scm_c_define_gsubr(\"%s\", 0, 0, 1, (swig_guile_proc) %s);\n", proc_name, dname);
DelWrapper(df);
Delete(dispatch);
Delete(dname);
@@ -1221,36 +1179,27 @@ public:
/* Read-only variables become a simple procedure returning the
value; read-write variables become a simple procedure with
an optional argument. */
- if (use_scm_interface) {
- if (!goops && GetFlag(n, "feature:constasvar")) {
- /* need to export this function as a variable instead of a procedure */
- if (scmstub) {
- /* export the function in the wrapper, and (set!) it in scmstub */
- Printf(f_init, "scm_c_define_gsubr(\"%s\", 0, %d, 0, (swig_guile_proc) %s);\n", proc_name, !GetFlag(n, "feature:immutable"), var_name);
- Printf(scmtext, "(set! %s (%s))\n", proc_name, proc_name);
- } else {
- /* export the variable directly */
- Printf(f_init, "scm_c_define(\"%s\", %s(SCM_UNDEFINED));\n", proc_name, var_name);
- }
-
- } else {
- /* Export the function as normal */
+ if (!goops && GetFlag(n, "feature:constasvar")) {
+ /* need to export this function as a variable instead of a procedure */
+ if (scmstub) {
+ /* export the function in the wrapper, and (set!) it in scmstub */
Printf(f_init, "scm_c_define_gsubr(\"%s\", 0, %d, 0, (swig_guile_proc) %s);\n", proc_name, !GetFlag(n, "feature:immutable"), var_name);
+ Printf(scmtext, "(set! %s (%s))\n", proc_name, proc_name);
+ } else {
+ /* export the variable directly */
+ Printf(f_init, "scm_c_define(\"%s\", %s(SCM_UNDEFINED));\n", proc_name, var_name);
}
} else {
- Printf(f_init, "\t gh_new_procedure(\"%s\", (swig_guile_proc) %s, 0, %d, 0);\n", proc_name, var_name, !GetFlag(n, "feature:immutable"));
+ /* Export the function as normal */
+ Printf(f_init, "scm_c_define_gsubr(\"%s\", 0, %d, 0, (swig_guile_proc) %s);\n", proc_name, !GetFlag(n, "feature:immutable"), var_name);
}
+
} else {
/* Read/write variables become a procedure with setter. */
- if (use_scm_interface) {
- Printf(f_init, "{ SCM p = scm_c_define_gsubr(\"%s\", 0, 1, 0, (swig_guile_proc) %s);\n", proc_name, var_name);
- Printf(f_init, "scm_c_define");
- } else {
- Printf(f_init, "\t{ SCM p = gh_new_procedure(\"%s\", (swig_guile_proc) %s, 0, 1, 0);\n", proc_name, var_name);
- Printf(f_init, "gh_define");
- }
+ Printf(f_init, "{ SCM p = scm_c_define_gsubr(\"%s\", 0, 1, 0, (swig_guile_proc) %s);\n", proc_name, var_name);
+ Printf(f_init, "scm_c_define");
Printf(f_init, "(\"%s\", " "scm_make_procedure_with_setter(p, p)); }\n", proc_name);
}
Printf(exported_symbols, "\"%s\", ", proc_name);
@@ -1484,12 +1433,10 @@ public:
String *mangled_classname = Swig_name_mangle(Getattr(n, "sym:name"));
/* Export clientdata structure */
- if (use_scm_interface) {
- Printf(f_runtime, "static swig_guile_clientdata _swig_guile_clientdata%s = { NULL, SCM_EOL };\n", mangled_classname);
+ Printf(f_runtime, "static swig_guile_clientdata _swig_guile_clientdata%s = { NULL, SCM_EOL };\n", mangled_classname);
- Printv(f_init, "SWIG_TypeClientData(SWIGTYPE", swigtype_ptr, ", (void *) &_swig_guile_clientdata", mangled_classname, ");\n", NIL);
- SwigType_remember(ct);
- }
+ Printv(f_init, "SWIG_TypeClientData(SWIGTYPE", swigtype_ptr, ", (void *) &_swig_guile_clientdata", mangled_classname, ");\n", NIL);
+ SwigType_remember(ct);
Delete(ct);
/* Emit all of the members */
@@ -1725,28 +1672,16 @@ public:
String *runtimeCode() {
String *s;
- if (use_scm_interface) {
- s = Swig_include_sys("guile_scm_run.swg");
- if (!s) {
- Printf(stderr, "*** Unable to open 'guile_scm_run.swg");
- s = NewString("");
- }
- } else {
- s = Swig_include_sys("guile_gh_run.swg");
- if (!s) {
- Printf(stderr, "*** Unable to open 'guile_gh_run.swg");
- s = NewString("");
- }
+ s = Swig_include_sys("guile_scm_run.swg");
+ if (!s) {
+ Printf(stderr, "*** Unable to open 'guile_scm_run.swg");
+ s = NewString("");
}
return s;
}
String *defaultExternalRuntimeFilename() {
- if (use_scm_interface) {
- return NewString("swigguilerun.h");
- } else {
- return NewString("swigguileghrun.h");
- }
+ return NewString("swigguilerun.h");
}
};
diff --git a/configure.ac b/configure.ac
index 28696529d..1a699167f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1239,15 +1239,7 @@ else
CFLAGS="`echo $CFLAGS | sed 's/-ansi//g;s/-pedantic//g;'` $GUILE_CFLAGS"
LIBS="$LIBS $GUILE_LIBS"
- AC_MSG_CHECKING(whether Guile's gh_ API works)
- AC_LINK_IFELSE([AC_LANG_SOURCE([#include
- int main() { SCM s; return gh_scm2int(s); }])], GUILE_GH_INTERFACE=1, )
- if test -n "$GUILE_GH_INTERFACE" ; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- fi
- AC_MSG_CHECKING(whether Guile's SCM_ API works)
+ AC_MSG_CHECKING(whether Guile/SCM_ API works)
AC_LINK_IFELSE([AC_LANG_SOURCE([#include
int main() { SCM s; scm_slot_exists_p(SCM_BOOL_F, SCM_BOOL_F); return SCM_STRING_LENGTH(s); }])], GUILE_SCM_INTERFACE=1, )
if test -n "$GUILE_SCM_INTERFACE" ; then
@@ -1265,7 +1257,6 @@ fi
AC_SUBST(GUILE)
AC_SUBST(GUILE_CFLAGS)
AC_SUBST(GUILE_LIBS)
-AC_SUBST(GUILE_GH_INTERFACE)
AC_SUBST(GUILE_SCM_INTERFACE)
#----------------------------------------------------------------
@@ -2271,12 +2262,6 @@ if test -z "$GUILE_CFLAGS" || test -z "$GUILE_LIBS" || test -z "$GUILE_SCM_INTER
fi
AC_SUBST(SKIP_GUILE)
-SKIP_GUILEGH=
-if test -z "$GUILE_CFLAGS" || test -z "$GUILE_LIBS" || test -z "$GUILE_GH_INTERFACE"; then
- SKIP_GUILEGH="1"
-fi
-AC_SUBST(SKIP_GUILEGH)
-
SKIP_MZSCHEME=
if test -z "$MZC" || test -z "$MZDYNOBJ" ; then
@@ -2452,7 +2437,6 @@ AC_CONFIG_FILES([ \
Examples/test-suite/csharp/Makefile \
Examples/test-suite/d/Makefile \
Examples/test-suite/guile/Makefile \
- Examples/test-suite/guilegh/Makefile \
Examples/test-suite/java/Makefile \
Examples/test-suite/mzscheme/Makefile \
Examples/test-suite/ocaml/Makefile \
From d689d9a860c4565db2e87ffd28e9fbe5bc7e848f Mon Sep 17 00:00:00 2001
From: Geert Janssens
Date: Fri, 19 Apr 2013 18:57:31 +0200
Subject: [PATCH 127/273] Fix deprecation warnings for test suite under guile
2.0
---
Examples/guile/multimap/example.i | 2 +-
Lib/cdata.i | 2 +-
Lib/exception.i | 2 +-
Lib/guile/typemaps.i | 18 +++++++++---------
4 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/Examples/guile/multimap/example.i b/Examples/guile/multimap/example.i
index f1d7974e4..21d7e5032 100644
--- a/Examples/guile/multimap/example.i
+++ b/Examples/guile/multimap/example.i
@@ -66,7 +66,7 @@ extern int count(char *bytes, int len, char c);
/* Return the mutated string as a new object. */
%typemap(argout) (char *str, int len) {
- SWIG_APPEND_VALUE(scm_mem2string($1,$2));
+ SWIG_APPEND_VALUE(scm_from_locale_stringn($1,$2));
if ($1) scm_must_free($1);
}
diff --git a/Lib/cdata.i b/Lib/cdata.i
index dbc1c42d2..22a6d9de8 100644
--- a/Lib/cdata.i
+++ b/Lib/cdata.i
@@ -17,7 +17,7 @@ typedef struct SWIGCDATA {
#if SWIGGUILE
%typemap(out) SWIGCDATA {
- $result = scm_mem2string($1.data,$1.len);
+ $result = scm_from_locale_stringn($1.data,$1.len);
}
%typemap(in) (const void *indata, int inlen) = (char *STRING, int LENGTH);
#elif SWIGCHICKEN
diff --git a/Lib/exception.i b/Lib/exception.i
index 867ecdbff..050042dab 100644
--- a/Lib/exception.i
+++ b/Lib/exception.i
@@ -24,7 +24,7 @@
SWIGINTERN void SWIG_exception_ (int code, const char *msg,
const char *subr) {
#define ERROR(scmerr) \
- scm_error(scm_str2symbol((char *) (scmerr)), \
+ scm_error(scm_from_locale_string((char *) (scmerr)), \
(char *) subr, (char *) msg, \
SCM_EOL, SCM_BOOL_F)
#define MAP(swigerr, scmerr) \
diff --git a/Lib/guile/typemaps.i b/Lib/guile/typemaps.i
index ab655eb9a..ba447ac28 100644
--- a/Lib/guile/typemaps.i
+++ b/Lib/guile/typemaps.i
@@ -60,25 +60,25 @@
%typemap(throws) SWIGTYPE {
$<ype temp = new $ltype($1);
- scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_throw(scm_from_locale_symbol((char *) "swig-exception"),
scm_listify(SWIG_NewPointerObj(temp, $&descriptor, 1),
SCM_UNDEFINED));
}
%typemap(throws) SWIGTYPE & {
- scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_throw(scm_from_locale_symbol((char *) "swig-exception"),
scm_listify(SWIG_NewPointerObj(&$1, $descriptor, 1),
SCM_UNDEFINED));
}
%typemap(throws) SWIGTYPE * {
- scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_throw(scm_from_locale_symbol((char *) "swig-exception"),
scm_listify(SWIG_NewPointerObj($1, $descriptor, 1),
SCM_UNDEFINED));
}
%typemap(throws) SWIGTYPE [] {
- scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_throw(scm_from_locale_symbol((char *) "swig-exception"),
scm_listify(SWIG_NewPointerObj($1, $descriptor, 1),
SCM_UNDEFINED));
}
@@ -151,7 +151,7 @@
enums, which cannot be cast to. */
%typemap(varin) enum SWIGTYPE {
if (sizeof(int) != sizeof($1)) {
- scm_error(scm_str2symbol("swig-error"),
+ scm_error(scm_from_locale_symbol("swig-error"),
(char *) FUNC_NAME,
(char *) "enum variable '$name' cannot be set",
SCM_EOL, SCM_BOOL_F);
@@ -161,7 +161,7 @@
%typemap(out) enum SWIGTYPE { $result = scm_from_long($1); }
%typemap(varout) enum SWIGTYPE { $result = scm_from_long($1); }
%typemap(throws) enum SWIGTYPE {
- scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_throw(scm_from_locale_symbol((char *) "swig-exception"),
scm_listify(scm_from_long($1), SCM_UNDEFINED));
}
@@ -210,7 +210,7 @@
/* Throw typemap */
%typemap(throws) C_NAME {
C_NAME swig_c_value = $1;
- scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_throw(scm_from_locale_symbol((char *) "swig-exception"),
scm_listify(C_TO_SCM_EXPR, SCM_UNDEFINED));
}
%enddef
@@ -254,7 +254,7 @@
}
/* Throw typemap */
%typemap(throws) C_NAME {
- scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_throw(scm_from_locale_symbol((char *) "swig-exception"),
scm_listify(C_TO_SCM($1), SCM_UNDEFINED));
}
%enddef
@@ -329,7 +329,7 @@ SIMPLE_MAP(unsigned long long, scm_to_ulong_long, scm_from_ulong_long, integer);
}
%typemap(throws) char * {
- scm_throw(scm_str2symbol((char *) "swig-exception"),
+ scm_throw(scm_from_locale_symbol((char *) "swig-exception"),
scm_listify(SWIG_str02scm($1), SCM_UNDEFINED));
}
From 140829a826885814dfab713406b1f8b7413df0b0 Mon Sep 17 00:00:00 2001
From: Geert Janssens
Date: Sat, 20 Apr 2013 10:37:07 +0200
Subject: [PATCH 128/273] guile: fix std_map.i "$1 not found" error
---
Lib/guile/std_map.i | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/Lib/guile/std_map.i b/Lib/guile/std_map.i
index dfce6fc5c..1e1014f54 100644
--- a/Lib/guile/std_map.i
+++ b/Lib/guile/std_map.i
@@ -109,8 +109,8 @@ namespace std {
}
%typemap(out) map {
SCM alist = SCM_EOL;
- for (std::map::reverse_iterator i=$1.rbegin();
- i!=$1.rend(); ++i) {
+ for (std::map::reverse_iterator i=$i.rbegin();
+ i!=$i.rend(); ++i) {
K* key = new K(i->first);
T* val = new T(i->second);
SCM k = SWIG_NewPointerObj(key,$descriptor(K *), 1);
@@ -251,8 +251,8 @@ namespace std {
}
SCM keys() {
SCM result = SCM_EOL;
- for (std::map::reverse_iterator i=$1.rbegin();
- i!=$1.rend(); ++i) {
+ for (std::map::reverse_iterator i=self->rbegin();
+ i!=self->rend(); ++i) {
K* key = new K(i->first);
SCM k = SWIG_NewPointerObj(key,$descriptor(K *), 1);
result = scm_cons(k,result);
@@ -471,8 +471,8 @@ namespace std {
}
SCM keys() {
SCM result = SCM_EOL;
- for (std::map::reverse_iterator i=$1.rbegin();
- i!=$1.rend(); ++i) {
+ for (std::map::reverse_iterator i=self->rbegin();
+ i!=self->rend(); ++i) {
SCM k = CONVERT_TO(i->first);
result = scm_cons(k,result);
}
@@ -683,8 +683,8 @@ namespace std {
}
SCM keys() {
SCM result = SCM_EOL;
- for (std::map::reverse_iterator i=$1.rbegin();
- i!=$1.rend(); ++i) {
+ for (std::map::reverse_iterator i=self->rbegin();
+ i!=self->rend(); ++i) {
K* key = new K(i->first);
SCM k = SWIG_NewPointerObj(key,$descriptor(K *), 1);
result = scm_cons(k,result);
@@ -895,8 +895,8 @@ namespace std {
}
SCM keys() {
SCM result = SCM_EOL;
- for (std::map::reverse_iterator i=$1.rbegin();
- i!=$1.rend(); ++i) {
+ for (std::map::reverse_iterator i=self->rbegin();
+ i!=self->rend(); ++i) {
SCM k = CONVERT_K_TO(i->first);
result = scm_cons(k,result);
}
From 6a60efffd1477e92f1e2ed5f5afa82843d278965 Mon Sep 17 00:00:00 2001
From: William S Fulton
Date: Tue, 23 Apr 2013 19:11:29 +0100
Subject: [PATCH 129/273] Some C++ experience needed
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
On 19/04/13 18:41, Geert Janssens wrote:
> Hi,
>
> I'm working through the failing testcases for guile. One testcase fails
> with a compilation error in some generated code based on std_map and
> std_pair. I know exactly where this generated code comes from, but my
> C++ knowledge is insufficient to understand the error, let alone remedy
> it. I gather some kind of const violation, but that's all I can read
> from it :( My hope is that someone used to working with stl will more
> easily understand it.
>
> So, if someone can help me understand the error and what the fix would
> be in C++, I can fix the corresponding .i file.
>
> This is the code snippet the causes the error:
>
>
> /usr/lib/gcc/i686-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_pair.h:88:12:
> error: non-static const member ‘const std::pair std::pair const std::pair >::second’, can’t use default assignment operator
This is the main problem - it is saying there is no default assignment
operator (because one of the members in pair is const). The solution is
to avoid assignment. I've attached a patch to do this plus some error
message corrections.
William
---
Lib/guile/std_pair.i | 81 +++++++++++++++++++++-----------------------
1 file changed, 38 insertions(+), 43 deletions(-)
diff --git a/Lib/guile/std_pair.i b/Lib/guile/std_pair.i
index 86ca6e00f..238c5188b 100644
--- a/Lib/guile/std_pair.i
+++ b/Lib/guile/std_pair.i
@@ -22,7 +22,7 @@
namespace std {
template struct pair {
- %typemap(in) pair (std::pair* m) {
+ %typemap(in) pair %{
if (scm_is_pair($input)) {
T* x;
U* y;
@@ -36,11 +36,9 @@ namespace std {
$1 = *(($&1_type)
SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0));
}
- }
- %typemap(in) const pair& (std::pair temp,
- std::pair* m),
- const pair* (std::pair temp,
- std::pair* m) {
+ %}
+ %typemap(in) const pair& (std::pair *temp = 0),
+ const pair* (std::pair *temp = 0) %{
if (scm_is_pair($input)) {
T* x;
U* y;
@@ -49,13 +47,14 @@ namespace std {
second = SCM_CDR($input);
x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
- temp = std::make_pair(*x,*y);
- $1 = &temp;
+ temp = new std::pair< T, U >(*x,*y);
+ $1 = temp;
} else {
$1 = ($1_ltype)
SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
}
- }
+ %}
+ %typemap(argout) const pair&, const pair* %{ delete temp$argnum; %}
%typemap(out) pair {
T* x = new T($1.first);
U* y = new U($1.second);
@@ -129,7 +128,7 @@ namespace std {
%define specialize_std_pair_on_first(T,CHECK,CONVERT_FROM,CONVERT_TO)
template struct pair {
- %typemap(in) pair (std::pair* m) {
+ %typemap(in) pair %{
if (scm_is_pair($input)) {
U* y;
SCM first, second;
@@ -137,18 +136,16 @@ namespace std {
second = SCM_CDR($input);
if (!CHECK(first))
SWIG_exception(SWIG_TypeError,
- "map<" #T "," #U "> expected");
+ "pair<" #T "," #U "> expected");
y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
$1 = std::make_pair(CONVERT_FROM(first),*y);
} else {
$1 = *(($&1_type)
SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0));
}
- }
- %typemap(in) const pair& (std::pair temp,
- std::pair* m),
- const pair* (std::pair temp,
- std::pair* m) {
+ %}
+ %typemap(in) const pair& (std::pair *temp = 0),
+ const pair* (std::pair *temp = 0) %{
if (scm_is_pair($input)) {
U* y;
SCM first, second;
@@ -156,15 +153,16 @@ namespace std {
second = SCM_CDR($input);
if (!CHECK(first))
SWIG_exception(SWIG_TypeError,
- "map<" #T "," #U "> expected");
+ "pair<" #T "," #U "> expected");
y = (U*) SWIG_MustGetPtr(second,$descriptor(U *),$argnum, 0);
- temp = std::make_pair(CONVERT_FROM(first),*y);
- $1 = &temp;
+ temp = new std::pair< T, U >(CONVERT_FROM(first),*y);
+ $1 = temp;
} else {
$1 = ($1_ltype)
SWIG_MustGetPtr($input,$1_descriptor,$argnum, 0);
}
- }
+ %}
+ %typemap(argout) const pair&, const pair* %{ delete temp$argnum; %}
%typemap(out) pair {
U* y = new U($1.second);
SCM second = SWIG_NewPointerObj(y,$descriptor(U *), 1);
@@ -230,7 +228,7 @@ namespace std {
%define specialize_std_pair_on_second(U,CHECK,CONVERT_FROM,CONVERT_TO)
template struct pair {
- %typemap(in) pair (std::pair* m) {
+ %typemap(in) pair %{
if (scm_is_pair($input)) {
T* x;
SCM first, second;
@@ -239,17 +237,15 @@ namespace std {
x = (T*) SWIG_MustGetPtr(first,$descriptor(T *),$argnum, 0);
if (!CHECK(second))
SWIG_exception(SWIG_TypeError,
- "map<" #T "," #U "> expected");
+ "pair<" #T "," #U "> expected");
$1 = std::make_pair(*x,CONVERT_FROM(second));
} else {
$1 = *(($&1_type)
SWIG_MustGetPtr($input,$&1_descriptor,$argnum, 0));
}
- }
- %typemap(in) const pair& (std::pair