diff options
| author | Björn Persson <bjorn@rombobjörn.se> | 2013-05-26 10:03:21 +0200 | 
|---|---|---|
| committer | Björn Persson <bjorn@rombobjörn.se> | 2013-05-26 10:03:21 +0200 | 
| commit | 3e0418ed7a2e6b838183ba6428f59a67ed3e565d (patch) | |
| tree | a57b33b9d3abcb4e6f22ef155e4580f4e5ffcd1b | |
| parent | 55d752be9e377f53a88fdd9410083ceb92777867 (diff) | |
Added generic installation instructions.
| -rw-r--r-- | INSTALL | 275 | 
1 files changed, 275 insertions, 0 deletions
| @@ -0,0 +1,275 @@ +Building and Installing Software Using Comfignat +================================================ + +These are generic installation instructions for programs and libraries whose +build systems are built around Comfignat. Developers are encouraged to edit +this file and adapt it to their project. + + +Requirements +------------ + +These instructions assume a Unix-like system with the GNAT tools and GNU Make. +The makefiles may not work with other clones and forks of Make. Use GNU Make if +possible; it is sometimes available as "gmake" on non-GNU systems. If you can't +use Make you will need to manually preprocess some GNAT project files with +Gnatprep. If you have another Ada compiler than GNAT, then the included build +system will probably not work and you should do whatever that compiler requires +you to do to compile the code. + +GPRbuild is used by default but Gnatmake can be used instead if the software is +written in pure Ada. GPRbuild is required for mixed-language software. + + +Basic Installation +------------------ + +The simplest way to build and install the software is: + + 1: Go to the directory that contains this file and the makefiles, and run +    "make" to build the library. + + 2: Run "make install" to copy the files to the default locations. You will +    probably need root privileges if you install to the default locations. + + +Testing +------- + +If there is an automated test suite, then the command to build and run it +should be "make check". Beyond that no generic instructions for testing can be +provided. + + +Installation Directories +------------------------ + +By default the files are installed in directories under /usr/local. You can +specify other locations by setting variables on the Make command line, or on +the Gnatprep command line if you can't use Make. The following Make variables +are relevant during the build: + + dirgpr +    The filename of the directories project, if your system has one and you +    want to install to the directories it specifies. A directories project is a +    GNAT project file that defines directory variables for use by other project +    files. Multiarch support requires a directories project that can refer to +    different directories depending on the target architecture. A directories +    project overrides some but not all of the directory variables listed below. + + relocatable_package +    If relocatable_package is true and no directories project is provided, then +    the project file that will be installed with the library will be configured +    with relative pathnames so that the installed directory tree as a whole can +    be moved to another location in the filesystem without breaking the project +    file. Default: false + + prefix +    A prefix used in the default values of the directory variables listed +    below. Default: /usr/local + + exec_prefix +    A prefix used in the default locations for programs, binary libraries and +    other architecture-specific files. Default: <prefix> + + bindir +    The directory for programs that can be run from a command prompt, used only +    if no directories project is provided. Default: <exec_prefix>/bin + + libexecdir +    The top-level directory for programs that are intended to be run by other +    programs rather than by users, used only if no directories project is +    provided. Default: <exec_prefix>/libexec + + datarootdir +    The root of the directory tree for read-only architecture-independent data +    files. Default: <prefix>/share + + datadir +    The parent of the application-specific directory for idiosyncratic read- +    only architecture-independent data files for this software. This is usually +    the same place as datarootdir, but this variable is provided so that you +    can move these application-specific files without altering the location for +    GNAT project files, documentation et cetera. Default: <datarootdir> + + sysconfdir +    The top-level directory for host-specific configuration files. +    Default: <prefix>/etc + + localstatedir +    The root of the directory tree for data files that programs modify while +    they run. Default: <prefix>/var + + statedir +    The parent of the application-specific directory for idiosyncratic variable +    data files for this program. Default: <localstatedir>/lib + + cachedir +    The parent of the application-specific directory for cached data files that +    the application can regenerate if they are deleted. +    Default: <localstatedir>/cache + + logdir +    The top-level directory for log files. Default: <localstatedir>/log + + runtimedir +    The top-level directory for files that describe the state of the system and +    that exist only while some subsystem is running, such as process identifier +    files and transient Unix-domain sockets. Default: /run + + lockdir +    The top-level directory for lock files that are used to prevent multiple +    programs from trying to access a device or other resource at the same time. +    Default: <runtimedir>/lock + + includedir +    The top-level directory for source files to be used in the compilation of +    software using libraries, used only if no directories project is provided. +    Default: <prefix>/include + + libdir +    The directory for binary libraries to be used by other software, and the +    top-level directory for other architecture-specific files, used only if no +    directories project is provided. Default: <exec_prefix>/lib + + gprdir +    The directory for GNAT project files to be used in the building of software +    using libraries. If you set this to a directory that GPRbuild and Gnatmake +    don't search by default, then you will need to add it to the project search +    path when using this library, for example through the environment variable +    GPR_PROJECT_PATH. Default: <datarootdir>/gpr + + localedir +    The root of the directory tree for locale-specific message catalogs. +    Default: <datarootdir>/locale + + mandir +    The root of the directory tree for documentation in the Man format. +    Default: <datarootdir>/man + + infodir +    The directory for documentation in the Info format. +    Default: <datarootdir>/info + + miscdocdir +    The parent of the application-specific directory for miscellaneous +    documentation files. Default: <datarootdir>/doc + +If you want to install to a staging directory from which the files will later +be copied to their final locations, then set DESTDIR to the staging directory. +All the other directory variables shall be the final locations. Unlike the +variables listed above, DESTDIR is effective in the installation step. + +The following preprocessor symbols are used when the project files are +preprocessed. They are derived from the Make variables above when the makefiles +invoke Gnatprep. You may need to define them if you run Gnatprep manually. +The same defaults as above will be used if the symbols are undefined. + + Directories_GPR +    The filename of the directories project, if any; corresponding to dirgpr. + + Directories_Project +    The name of the directories project, if any. This is supposed to be the +    filename without a path or a suffix. + + Prefix + Exec_Prefix + Bindir + Libexecdir + Includedir + Libdir +    These correspond to the like-named Make variables. + + Base +   If Prefix, Exec_Prefix, Bindir, Libexecdir, Includedir and Libdir are +   relative pathnames, then Base shall be the absolute pathname of the +   directory that they are relative to. If those variables are absolute +   pathnames, then Base shall be undefined. + + +Optional Features +----------------- + +There may be options that can be used to enable or disable certain parts of the +software. This is done by setting certain variables to "true" or "false" on the +Make or Gnatprep command line. + +The developers really should have listed those options here, or deleted this +section if there are none. + + +Build Tools and Options +----------------------- + +The following variables, which may be set in the environment or on the Make +command line, control which programs are invoked to do the build and which +options are passed to them: + + GNATPREP +    The command for invoking Gnatprep, in case you want to use a nondefault +    version of Gnatprep or a wrapper for example. Default: gnatprep + + GNAT_BUILDER +    The command for invoking the builder, that is GPRbuild. Default: gprbuild + + GNATFLAGS +    A space-separated list with all of the optional parameters to be passed to +    the builder, including any options to be forwarded to the compiler, binder +    and linker. If GNATFLAGS is defined it overrides the options variables +    listed below. + + GNAT_BUILDER_FLAGS +    A space-separated list of options for the builder, used only if GNATFLAGS +    is undefined. This may include not only options for the builder itself but +    also command line separators (also called mode switches) followed by +    options to be forwarded to the compiler, binder or linker. + + ADAFLAGS +    A space-separated list of options to be passed to the compiler when +    compiling Ada code, used only if GNATFLAGS is undefined. + + CPPFLAGS +    A space-separated list of options to be passed to the C preprocessor when +    compiling C or C++ code, used only if GNATFLAGS is undefined. + + CFLAGS +    A space-separated list of options to be passed to the compiler when +    compiling C code, used only if GNATFLAGS is undefined. + + CXXFLAGS +    A space-separated list of options to be passed to the compiler when +    compiling C++ code, used only if GNATFLAGS is undefined. + + FFLAGS +    A space-separated list of options to be passed to the compiler when +    compiling Fortran code, used only if GNATFLAGS is undefined. + + GNATBINDFLAGS +    A space-separated list of options to be passed to Gnatbind, used only if +    GNATFLAGS is undefined and only when binding a program. + + GNATLINKFLAGS +    A space-separated list of options to be passed to Gnatlink, used only if +    GNATFLAGS is undefined, only if the builder is Gnatmake, and only when +    linking a program. + + LDFLAGS +    A space-separated list of options to be passed to the linker, used only if +    GNATFLAGS is undefined. (Unfortunately GPRbuild can't forward command line +    options to the linker when linking a shared library, so LDFLAGS affects +    only the test milter.) + + +Copyright of This File +---------------------- + +Copyright 2013 B. Persson, Bjorn@Rombobeorn.se + +This material is provided as is, with absolutely no warranty expressed +or implied. Any use is at your own risk. + +Permission is hereby granted to use or copy this documentation file +for any purpose, provided the above notices are retained on all copies. +Permission to modify the text and to distribute modified text is granted, +provided the above notices are retained, and a notice that the text was +modified is included with the above copyright notice. |