2.2 Unpack, configure, build, and install

Warning: The documentation is for a future version of IVuPy which is only available from CVS.

  1. Unpack IVuPy-0.1.

  2. Configure:
    cd IVuPy-0.1
    cd configure
    python configure.py
    
    The purpose of the configure.py script is to generate the C++ code and the Makefiles needed to build the iv extension module. The C++ code and Makefiles have to be adapted to the environment (operating system, program and library versions, program and library locations).

    The configure.py script makes 2 assumptions on POSIX:

    Warning: Qt's default -rpath linker option may not play well with proprietary hardware drivers (most Linux distros disable the -rpath option). Expect subtle problems when python examples/Mentor/02_1_HelloCone.py on a local display results in:
    Coin info in glglue_allow_newer_opengl():
    
    Features of OpenGL version > 1.0 has been
    disabled, due to the use of a remote display.
    
    This is so because many common OpenGL drivers
    have problems in this regard.
    
    To force full OpenGL use, set the environment
    variable COIN_FULL_INDIRECT_RENDERING=1 and re-run the application.
    
    If you don't want this message displayed again,
    set the environment variable COIN_DONT_INFORM_INDIRECT_RENDERING=1.
    
    Work-arounds are (1) to specify the directory containing the proprietary hardware driver when running configure.py with the -L option or (2) rebuild Qt after editing the setting for QMAKE_RPATH in the qmake.conf file for your system. Everything is fine when ldd iv.so and ldd SoQt.so show that iv.so and SoQt.so use the same OpenGL library.

    The configure.py script makes 4 assumptions on Windows:

    Start by trying the default settings and if the following step does not work, try to add include paths, libraries, library paths, preprocessor options, compiler options, and linker options.

    Note: The configure.py script takes many options. The command
    python configure.py -h
    
    displays a full list of the available options:
    usage: python configure.py [options]
    
    Each option takes at most one argument, but some options
    accumulate arguments when repeated. For example, invoke:
    
    	python configure.py -I . -I ..
    
    to search the current *and* parent directories for headers.
    
    options:
      -h, --help            show this help message and exit
    
      Common options:
        -D HAS_EXTRA_SENSORY_PERCEPTION, --extra-defines=HAS_EXTRA_SENSORY_PERCEPTION
                            add an extra preprocessor definition
        -I /usr/include, --extra-include-dirs=/usr/include
                            add an extra directory to search for headers (the
                            compiler must be able to find the headers of Coin and
                            SoQt)
        -L /path/to/proprietary/driver, --extra-lib-dirs=/path/to/proprietary/driver
                            add an extra directory to search for libraries
        -j N, --jobs=N      concatenate the SIP generated code into N files
                            [default 1 per class] (to speed up make by running
                            simultaneous jobs on multiprocessor systems)
        -l EXTRA_SENSORY_PERCEPTION_LIB, --extra-libs=EXTRA_SENSORY_PERCEPTION_LIB
                            add an extra library
    
      Make options:
        --debug             enable debugging symbols [default disabled]
        --extra-cflags=EXTRA_CFLAG
                            add an extra C compiler flag
        --extra-cxxflags=EXTRA_CXXFLAG
                            add an extra C++ compiler flag
        --extra-lflags=EXTRA_LFLAG
                            add an extra linker flag
    
      SIP options:
        -x EXTRA_SENSORY_PERCEPTION, --excluded-features=EXTRA_SENSORY_PERCEPTION
                            add a feature for SIP to exclude (normally one of the
                            features in sip/features.sip)
        -t ESP_3_2_1, --timelines=ESP_3_2_1
                            add a timeline for SIP to adapt to a library version
                            (normally one of the timeline options in
                            sip/iv/timelines.sip)
        --sip-include-dirs=SIP_INCLUDE_DIR
                            add an extra directory for SIP to search
        --trace             enable trace of the execution of the bindings [default
                            disabled]
    
      Detection options:
        --disable-numarray  disable detection and use of numarray [default
                            enabled]
        --disable-numeric   disable detection and use of Numeric [default enabled]
        --disable-numpy     disable detection and use of NumPy [default enabled]
    

  3. Build:
    make
    
    or
    nmake
    
    In case of failure, you have to invoke the configure.py script again or - for experts - edit the generated iv/Makefile.

  4. Install:
    make install
    
    or
    nmake install