diff options
Diffstat (limited to 'INSTALL')
-rw-r--r-- | INSTALL | 95 |
1 files changed, 58 insertions, 37 deletions
@@ -5,14 +5,15 @@ Requirements ------------ These instructions assume a Unix-like system with the GNAT tools and GNU Make. -The makefiles may not work with other Make clones than GNU Make. If you can't +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. The project files require GPRbuild. Gnatmake won't do because this is a mixed- -language project. +language library. Basic Installation @@ -25,14 +26,14 @@ The simplest way to build and install the Ada Milter API is: 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 ------- -"make test_milter" will build a test milter that can be used to check that the +"make test_milter" will build a test milter that can be used to check that the library works. The testing is not automated. A Mail Transfer Agent will need to -be configured to use the test milter, and some email messages will need to be +be configured to use the test milter, and some email messages will need to be sent through that MTA. @@ -45,54 +46,67 @@ the Gnatprep command line if you can't use Make. The following Make variables are relevant during the build: dirgpr - The filename of the directory project, if your system has one and you want - to install to the directories it specifies. A directory project is a GNAT - project file that defines directory variables for use by other project - files. Multilib support requires a directory project that can refer to - different directories depending on the target architecture. A directory + 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 architecture-specific files. - Default: <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 - bindir - The directory for programs that can be run from a command prompt. - Default: <exec_prefix>/bin - datarootdir The root of the directory tree for read-only architecture-independent data files. Default: <prefix>/share includedir - The directory for source files that are needed for compilation of code that - uses the library, used only if no directory project is provided. + 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 and other architecture-specific files, - used only if no directory project is provided. Default: <exec_prefix>/lib + 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. Default: <datarootdir>/gpr + 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 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 defined by the makefiles, and may be -defined manually if Make can't be used: +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. - Directory_GPR - The filename of the directory project, if any; corresponding to dirgpr. + Directories_GPR + The filename of the directories project, if any; corresponding to dirgpr. - Directory_Project - The name of the directory project, if any. This is supposed to be the + Directories_Project + The name of the directories project, if any. This is supposed to be the filename without a path or a suffix. Prefix @@ -100,20 +114,21 @@ defined manually if Make can't be used: Bindir Includedir Libdir - These correspond to the like-named Make variables. + These correspond to the like-named Make variables. The same defaults as + above will be used if the symbols are undefined. -Optional Thread Wrapper +Optional Thread Wrapper ----------------------- The Ada Milter API contains a thread wrapper. It wraps threads that Libmilter starts, and registers and unregisters them in the Ada run-time system. This may be necessary on some platforms and works around a memory leak in some versions -of Libgnat, but can also trigger bugs in some older versions of Libgnat. The -thread wrapper is disabled by default. To enable it, set the variable -wrap_threads to "true" on the Make or Gnatprep command line. - - +of Libgnat, but can also trigger bugs in some older versions of Libgnat. The +thread wrapper is disabled by default. To enable it, set the variable +wrap_threads to "true" on the Make or Gnatprep command line. + + Build Tools and Options ----------------------- @@ -144,15 +159,21 @@ options are passed to them: 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. + GNATBINDFLAGS + A space-separated list of options to be passed to Gnatbind, used only if + GNATFLAGS is undefined and only when binding the test milter. + 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.) + GNATFLAGS is undefined and only when linking the test milter. Copyright of This File |