[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:Mon Nov 4 00:59:10 2003 
Subject:Linking poplog, motif, sysfileok 
From:Aaron Sloman 
Volume-ID:1031104.02 


As part of the recent work on making it easy to allow poplog to be
installed anywhere, and without requiring superuser privileges, I had to
address the problem of linking with motif, discussed several months ago.

The problem is that motif installs itself in /usr/X11R6/lib in formats
like
    libXm.so.2
    libXm.so.3

either of which can be a symbolic link to a version with a more complex
number. However the automatically generated shell script for linking
poplog $popsys/poplink_cmnd requires libXm.so. Previously the
installation scripts had to be run as root, and they were therefore
able to insert a symbolic link in /usr/X11R6/lib,

Instead of this I've followed a suggestion someone made several months
ago and

    (a) made the installation script put a link to libXm.so.2 or
        libXm.so.3 in $usepop/pop/extern/lib/libXm.so

I also had to altered the code that generates the poplink_cmnd file
so that it moved -lXm to before
    -L/usr/X11R6/lib
but after the command
    -L$usepop/pop/extern/lib

Doing this required tracing through some of the system building code in
$popsrc/syscomp/

I ended up editing the files
    files.p
    os_comms.p
    poplink_main.p


One of the other changes I've made to the poplink_cmnd script is to
replace, if possible, parts of file path-names with an environment
variable. This makes the scripts more portable.

Doing this required changing the system procedure sysfileok, which
checks file names for validity and expands environment variables in the
process. This affects all of its derivatives, including sys_fname and
similar procedures.

I've now made it possible to suppress translation of environment
variables by sysfileok by assigning false to the new variable
    pop_translate_envvars

This is made false in several of the system building procedures.

I've also increased the default value of pomemlim from 300 Kb to
1.5 Mb.

These changes required alterations to files in $popsrc, namely
    declare.ph
    sysfileok.p
    initial.p
    getstore.p

Aaron
====
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs/ )
School of Computer Science, The University of Birmingham, B15 2TT, UK
EMAIL A.Sloman AT cs.bham.ac.uk   (ReadATas@please !)
PAPERS: http://www.cs.bham.ac.uk/research/cogaff/ (And free book on Philosophy of AI)
FREE TOOLS: http://www.cs.bham.ac.uk/research/poplog/freepoplog.html