Updated procedures for building with Python's distutils. Also reduced
authorIan Abbott <abbotti@mev.co.uk>
Mon, 20 Dec 2010 15:49:59 +0000 (15:49 +0000)
committerIan Abbott <abbotti@mev.co.uk>
Mon, 20 Dec 2010 15:49:59 +0000 (15:49 +0000)
line-lengths for 80-character wide terminals.  Most of the updated text
supplied by W. Trevor King.  Ian Abbott added a note that it only applies
when building the wrappers separately from Comedilib without 'make'.

swig/python/README.txt

index 72896c7dab7ac77e851fa8d4e4d889b34b352f14..84654a4d3b9fc0ced45e97b3a18798e100769f7d 100644 (file)
@@ -1,40 +1,48 @@
 ** General info on the swig-generated wrappers for Comedilib **
 
-1) Regenerating the wrappers
-       The wrapper were made using swig-1.3.19. Any of the swig-1.3.x seris should work
-       N.B. the default swig on redhat systems is version 1.1. Upgrade to v-1.3.19. It's better!
-       
-       run $> swig -python comedi.i
-       
-2) Building the module (section obsolete -Frank Hess)
-       i) edit the setup.py file so that the include and lib paths are correct for your system
-       ii) run $>      python setup.py build
-       
-3) Installing the module (section obsolete -Frank Hess)
-       i) Manual installation I'm afraid. Copy comedi.py and _comedi.pyd files to somewhere in your PYTHONPATH
-       
-4) Using the module
-       All the comedilib functions are translated directly to python function. The various comedi structs
-       are now available as python classes (e.g. comedi_cmd_struct). The members of each struct are now
-       attributes of the class and can be set and retrieved in the usual way. Comedilib Functions which 
-       take a pointer to a comedilib struct as an argument (in C) now, in python, accept the appropriate 
-       struct python object.
-       
-       For a multichannel acquisition, a C-array containing the channel list, gains and referencing is
-       required. This can be created using a swig-generated helper class: chanlist(n). This creates a C-array
-       of length n and type Unsigned Int. Individual members of the array can be accessed/set using 
-       pythons indexing syntax:
-               mylist = chanlist(3)   #creates a chanlist array of length 3
-               mylist[0] = 100 #set some values
-               mylist[1] = 200
-               mylist[2] = 300
-               
-       The chanlist object can then be passed to a comedi_cmd_struct object, for example. N.B. The
-       chanlist object contains *no* length-checking or other error protection so use with care! Don't
-       try to get/set indexes outside the array bounds.
-       
-       All the comedilib macros (e.g. CR_PACK) are now available as python functions.
-       
-       check out the example test_comedi.py to clarify the above.
-       
-       
+0) Installing required tools
+  The wrapper are made with SWIG. Any of the swig-1.3.x series should
+  work.  Run
+    $ swig -version
+  to check the version you have installed, and upgrade if necessary.
+
+1) Building the wrappers
+  Note: the following applies when building wrappers separately from
+  the comedilib library, using Python's distutils procedures instead
+  of Comedilib's `make`.  In this case, Comedilib should be configured
+  with the `--disable-python-binding` option to prevent it building
+  and installing its own copy of the wrappers.
+
+  After building the main comedilib library (running `make` in the
+  base directory), just follow standard distutils procedures
+    $ python setup.py build
+    $ python setup.py install
+
+2) Using the module
+  All the comedilib functions are translated directly to python
+  function. The various comedi structs are now available as python
+  classes (e.g. comedi_cmd_struct). The members of each struct are now
+  attributes of the class and can be set and retrieved in the usual
+  way. Comedilib functions which take a pointer to a comedilib struct
+  as an argument (in C) now, in python, accept the appropriate struct
+  python object.
+
+  For a multichannel acquisition, a C-array containing the channel
+  list, gains and referencing is required. This can be created using a
+  swig-generated helper class: chanlist(n). This creates a C-array of
+  length n and type Unsigned Int. Individual members of the array can
+  be accessed/set using pythons indexing syntax:
+    mylist = chanlist(3)   #creates a chanlist array of length 3
+    mylist[0] = 100 #set some values
+    mylist[1] = 200
+    mylist[2] = 300
+
+  The chanlist object can then be passed to a comedi_cmd_struct
+  object, for example. N.B. The chanlist object contains *no*
+  length-checking or other error protection so use with care! Don't
+  try to get/set indexes outside the array bounds.
+
+  All the comedilib macros (e.g. CR_PACK) are now available as python
+  functions (e.g. `comedi.cr_pack`).
+
+  Look at the examples in demo/python to clarify the above.