Purpose: to contain discussion relating to an installation directory structure that is recommended for people writing tcl extensions or applications. [LV] Jump right in and add info as you see needed: ---- By default, extensions should use two main groups of locations for installing things, one for architecture-independent files, and one for architecture-dependent files. '''--prefix''' specifies the location of the architecture-independent files (e.g. Tcl scripts, header files, documentation) and is conventionally ''/usr/local'' by default. Beneath this location, the following places are usually defined: '''include''': Place to put header file(s) needed when writing code against a library. '''lib''': Location where Tcl-only extensions are installed. '''lib'''/''extension.version.level'': Location for ''pkgIndex.tcl'' files, tcl files, etc. '''bin''': Place to install Tcl-only applications. '''man''': Place to install nroff manual pages. '''share''': Place to install miscellaneous other files, such as HTML pages. '''--exec-prefix''' specifies the location of architecture-dependent files (binary extensions, etc.) '''lib''': Location where binary extensions and their ''pkgIndex.tcl'' are installed. '''lib'''/''extension.version.level'': Location for ''pkgIndex.tcl'' files, .so/.dll files, static archives (.a, .lib), etc. '''bin''': Location where binary applications are installed. ---- [jenglish] I find it works better to put the entire package runtime in a sibling directory of '''info library'''. This is ''usually'' the same as ''${libdir}'', but not always. Splitting up architecture-dependant (e.g. shared libraries) and architecture-independant (e.g., scripts) parts makes it more difficult for the former to locate the latter. ---- It is the eternal difficulty of keeping parallel versions in sync versus keeping a single copy of sharable code and a binary for each platform. ---- What about demos? I would prefer to see demo executables be installed in $prefix/bin, instead of the current practice of some extensions of putting them into $prefix/lib/extension$version.$level/demos or whatever .