1 |
FreeMOL Design Document (DRAFT ideas subject to further refinement) |
2 |
|
3 |
Goal: |
4 |
|
5 |
Aggregate a small set open-source software projects together into a |
6 |
maintainable form which can support integration with PyMOL and other |
7 |
interactive applications via platform-specific binary distributions. |
8 |
|
9 |
Structure: |
10 |
|
11 |
"src" top-level directory with a set of subdirectories containing |
12 |
source code for the various FreeMOL packages |
13 |
|
14 |
"freemol" top-level directory is a prototype framework for holding |
15 |
executables and other required runtime files in typical "unix-like" |
16 |
subdirectories: (freemol/bin, freemol/lib, freemol/share, |
17 |
freemol/man, and so forth) The FREEMOL environment variable should |
18 |
point at this directory. |
19 |
|
20 |
Compilation: |
21 |
|
22 |
Assuming the the FREEMOL environment variable has been defined, |
23 |
each package can be compiled and installed into $FREEMOL by cd'ing |
24 |
to its souce directory and issuing the following sequence of commands: |
25 |
|
26 |
./configure |
27 |
make |
28 |
make install |
29 |
|
30 |
Followed by a |
31 |
|
32 |
make clean |
33 |
|
34 |
to get rid of object code, intermediate files, etc. |
35 |
|
36 |
Deployment: |
37 |
|
38 |
A FreeMOL binary distribution would be a tar or zipped archive of |
39 |
the $FREEMOL folder containing executables compiled for a specific |
40 |
architecture. |
41 |
|
42 |
Installation would amount to extraction of the archive and setting |
43 |
of the FREEMOL environment variable to that PyMOL and other packages |
44 |
can subquently locate and rely upon the freemol executables. |
45 |
|
46 |
Pragmatic decisions: |
47 |
|
48 |
Rely upon unix-like shell-based compilation (MinGW/Cygwin on Win32) |
49 |
|
50 |
Stick with standalone, command-line only packages which have few if |
51 |
any dependencies |
52 |
|
53 |
Confirmed FreeMOL Packages: |
54 |
|
55 |
mengine (TJ) |
56 |
mpeg_encode (Warren) |
57 |
|
58 |
Proposed FreeMOL Packages |
59 |
|
60 |
apbs |
61 |
python |
62 |
rdkit |
63 |
openbabel |