swig/Examples/perl5/import
Karl Wette f574a34155 Allow examples and test-suite to be built out of source tree
- Examples/Makefile.in rules use SRCDIR as the relative source directory

- ./config.status replicates Examples/ source directory tree in build
  directory, and copies each Makefile to build directory, prefixed with
  a header which sets SRCDIR to source directory

- Examples/test-suite/.../Makefile.in set SRCDIR from Autoconf-set srcdir

- Examples/test-suite/errors/Makefile.in needs to filter out source
  directory from SWIG error messages

- Lua: embedded interpreters are passed location of run-time test

- Python: copy run-time scripts to build directory because of 2to3
  conversion; import_packages example copies __init__.py from source
  directory; test-suite sets SCRIPTDIR to location of run-time tests

- Javascript: binding.gyp renamed to binding.gyp.in so that $srcdir
  can be substituted with SRCDIR; removed './' from require() statements
  so that NODE_PATH can be used to point Node.js to build directory
2014-05-11 23:21:10 +02:00
..
bar.dsp
bar.h
bar.i
base.dsp
base.h
base.i
example.dsw
foo.dsp
foo.h
foo.i
Makefile Allow examples and test-suite to be built out of source tree 2014-05-11 23:21:10 +02:00
README
runme.pl
spam.dsp
spam.h
spam.i

This example tests the %import directive and working with multiple modules.

Use 'perl runme.pl' to run a test.

Overview:
---------

The example defines 4 different extension modules--each wrapping
a separate C++ class.

     base.i     -  Base class
     foo.i      -  Foo class derived from Base
     bar.i      -  Bar class derived from Base
     spam.i     -  Spam class derived from Bar

Each module uses %import to refer to another module.  For
example, the 'foo.i' module uses '%import base.i' to get
definitions for its base class.

If everything is okay, all of the modules will load properly and
type checking will work correctly. Caveat: Some compilers, for example
gcc-3.2.x, generate broken vtables with the inline methods in this test.
This is not a SWIG problem and can usually be solved with non-inlined
destructors compiled into separate shared objects/DLLs.

Unix:
-----
- Run make
- Run the test as described above

Windows:
--------
- Use the Visual C++ 6 workspace file (example.dsw). Build the runtime
  project DLL first followed by the other 4 DLLs as they all have a
  dependency on the runtime DLL. The Batch build option in the Build menu
  is usually the easiest way to do this. Only use the Release builds not
  the Debug builds.
- Run the test as described above