6.19.2. Install Frame

The _install frame_ is used to control how generated files are installed.

An _installation point_ is a directory which will contain a certain class of files. An _installation mode_ is an indication of the permissions an installed file should have.

The install frame contains the default places where development occurs, and where code and documentation should be installed depending on the designation ascribed to the file in interscript sources.

Installation is controlled in several ways. The _kind_ of file is identified in the interscript source, this tells the language used for script, the kind of script, or whether the final target is an executable of dynamically loadable binary. (This information is generally gleaned from the tangler used, plus options if required).

The _stability_ of the version is also identifed as experimental, test, alpha, beta, or production in the interscript source. This information must be supplied by the vendor.

The _domain of applicability_ is identified in the interscript source, this tells if the code is univerally useful, platform specific, should be tailored per site, or tailored per user-group or user. This information must be supplied by the vendor.

Start python section to interscript/frames/install.py[1 /1 ]
     1: #line 62 "frames.ipk"
     2: class install_frame:
     3:   def __init__(self):
     4:     py = 'python'+self.python_version
     5:     self.platform_independent_install_point = sys.prefix
     6:     self.python_header_install_point = sys.prefix + '/include/'+py
     7:     self.python_module_install_point = sys.prefix + '/lib/'+py
     8:     self.python_platform_install_point = sys.prefix + '/lib/'+py+'/plat-'+platform.python_plat
     9: 
    10:     self.platform_dependent_install_point = sys.exec_prefix
    11:     self.python_config_install_point = sys.exec_prefix + '/lib/'+self.python_version+'/config'
    12:     self.python_dynload_install_point = sys.exec_prefix + '/lib/'+self.python_version+'/lib-dynload'
    13: 
    14:     # this is where stuff goes during development
    15:     d = self.development_point = {}
    16:     d['documentation']=self.platform.get_working_directory()
    17:     d['python module']=self.platform.get_working_directory()
    18:     d['python package']=self.platform.get_working_directory()
    19:     d['python cmodule']=self.platform.get_working_directory()
    20:     d['python script']=self.platform.get_working_directory()
    21:     d['executable']=self.platform.get_working_directory()
    22: 
    23:     # this is where standard stuff gets installed for general use
    24:     d = self.standard_install_point = {}
    25:     d['documentation']=sys.prefix+'/doc'
    26:     d['python module']=self.python_module_install_point
    27:     d['python package']=self.python_module_install_point
    28:     d['python cmodule']=self.python_dynload_install_point
    29:     d['python script']=sys.exec_prefix+'/bin'
    30:     d['executable']=sys.exec_prefix+'/bin'
    31: 
    32:     # this is where platform dependent stuff gets installed for general use
    33:     d = self.platform_install_point = {}
    34:     d['documentation']=sys.prefix+'/doc'
    35:     d['python module']=self.python_module_install_point
    36:     d['python package']=self.python_module_install_point
    37:     d['python cmodule']=self.python_dynload_install_point
    38:     d['python script']=sys.exec_prefix+'/bin'
    39:     d['executable']=sys.exec_prefix+'/bin'
    40: 
    41:     # this is where site dependent stuff gets installed for general use
    42:     d = self.site_install_point = {}
    43:     d['documentation']=sys.prefix+'/doc'
    44:     d['python module']=self.python_module_install_point+'/site-packages'
    45:     d['python package']=self.python_module_install_point+'/site-packages'
    46:     d['python cmodule']=self.python_dynload_install_point+'/site-packages'
    47:     d['python script']=sys.exec_prefix+'/bin'
    48:     d['executable']=sys.exec_prefix+'/bin'
    49: 
    50:     # this is where user-group dependent stuff gets installed for use
    51:     d = self.usergrp_install_point = {}
    52:     d['documentation']=sys.prefix+'/doc'
    53:     d['python module']=self.python_module_install_point+'/site-packages'
    54:     d['python package']=self.python_module_install_point+'/site-packages'
    55:     d['python cmodule']=self.python_dynload_install_point+'/site-packages'
    56:     d['python script']=sys.exec_prefix+'/bin'
    57:     d['executable']=sys.exec_prefix+'/bin'
    58: 
    59:     # this is where user dependent stuff gets installed for use
    60:     d = self.user_install_point = {}
    61:     d['documentation']=sys.prefix+'/doc'
    62:     d['python module']=self.python_module_install_point+'/site-packages'
    63:     d['python package']=self.python_module_install_point+'/site-packages'
    64:     d['python cmodule']=self.python_dynload_install_point+'/site-packages'
    65:     d['python script']=sys.exec_prefix+'/bin'
    66:     d['executable']=sys.exec_prefix+'/bin'
    67: 
    68:     self.install_point = {
    69:       'dev': self.development_point,
    70:       'std': self.standard_install_point,
    71:       'plat': self.platform_install_point,
    72:       'site': self.site_install_point,
    73:       'grp': self.usergrp_install_point,
    74:       'user': self.user_install_point
    75:       }
    76: 
    77:     self.trust_map = {
    78:       'experimental':'dev',
    79:       'test':'dev',
    80:       'alpha':'dev',
    81:       'beta':'user',
    82:       'production':'user'
    83:       }
    84: 
    85:   def print_install(self):
    86:     print 'INSTALL POINTS'
    87:     print '----------------------------'
    88:     for k in self.install_point.keys():
    89:       print 'Install Point',k
    90:       d = self.install_point[k]
    91:       for t in d.keys():
    92:         print ' ',t,'-->',d[t]
    93:       print '----------------------------'
    94:       print
    95:     print 'TRUST MAP'
    96:     print '----------------------------'
    97:     for k in self.trust_map.keys():
    98:       print ' ',k,'-->',self.trust_map[k]
    99:     print '----------------------------'
   100:     print
   101: 
   102: 
End python section to interscript/frames/install.py[1]