Reduce size by removing unnecessary dependencies
[platform/upstream/ecryptfs-utils.git] / INSTALL
1 Basic Installation
2 ==================
3
4     For more information specific to this package, please read the README
5 file. This source code distribution  is autoconfiguring and you should be 
6 able to compile it and install it without manual interventions such as 
7 editing Makefiles, configuration files, and so on. These are generic 
8 instructions for people who are not familiar with installing autoconfiguring
9 software.
10
11 The simplest way to compile this package is to enter the source code
12 main directory and do the following:
13    
14   1. Configure the source code by typing:
15         % sh ./configure
16
17      If you are planning to install the package into your home
18      directory or to a location other than `/usr/local' then add the
19      flag `--prefix=PATH' to `configure'. For example, if your home
20      directory is `/home/luser' you can configure the package to
21      install itself there by invoking:
22         % sh ./configure --prefix=/home/luser
23
24      If you are running a version of eCryptfs that ships as part of
25      kernel version 2.6.18-rc6-mm2 or earlier, you need to pass the
26      --enable-old-auth-tok option to the ./configure script:
27         % sh ./configure --prefix=/home/luser \
28                          --enable-old-auth-tok
29      
30      While running, `configure' prints some messages telling which
31      features is it checking for. 
32
33   2. Compile the package by typing:
34         % make
35      Running `make' takes a while. If this is a very large package, now
36      is the time to go make some coffee.
37      
38   3. Type `make install' to install the programs and any data files and
39      documentation. Type `make uninstall' to undo the installation.
40      During installation, the following files go to the following directories:
41         Executables          -> /prefix/bin
42         Libraries            -> /prefix/lib
43         Public header files  -> /prefix/include
44         Man pages            -> /prefix/man/man?
45         Info files           -> /prefix/info
46      where `prefix' is either `/usr/local' or the PATH that you specified
47      in the `--prefix' flag.
48
49      If any of these directories do not presently exist, they will be
50      created on demand.
51
52      This step will attempt to install the ecryptfs.ko kernel module:
53         /lib/modules/`uname -r`/kernel/fs/ecryptfs/ecryptfs.ko
54
55      If you are installing in your home directory make sure that 
56      `/home/luser/bin' is in your path. If you're using the bash shell
57      add this line at the end of your .cshrc file:
58         PATH="/home/luser/bin:${PATH}"
59         export PATH
60      If you are using csh or tcsh, then use this line instead:
61         setenv PATH /home/luser/bin:${PATH}
62      By prepending your home directory to the rest of the PATH you can
63      override systemwide installed software with your own custom installation.
64
65   4. You can remove the program binaries and object files from the
66      source code directory by typing `make clean'.  To also remove the
67      files that `configure' created (so you can compile the package for
68      a different kind of computer), type `make distclean'.
69
70 Compiler configuration
71 ======================
72
73    The `configure' shell script is responsible for choosing and configuring
74 the compiler(s). 
75
76 The following options allow you to specify whether you
77 want to enable or disable various debugging mechanisms:
78
79 `--with-warnings'
80       Make the compilers very picky about warnings. Try this whenever you
81       write new code since it may catch a few bugs. This is not active by
82       default because all too often warnings can be too picky and scare
83       the end-user.
84
85 `--disable-assert'
86       Compile without using assertions. This results in faster code,
87       but should not be used during developerment, or to run `make check'
88       which depends on assertions. It should only be used for production
89       runs on code that you believe is bug free.
90
91 All programs are compiled with optimization level 2 by default (-O2).
92 Occasionally that confuses the debugger when code is inlined. To disable
93 optimization and enable debugging, set the shell environment variables
94 CFLAGS, CXXFLAGS, FFLAGS to `-g'. On the bash shell, you can do this
95 like this:
96   $ export CFLAGS="-g"
97   $ export CXXFLAGS="-g"
98   $ export FFLAGS="-g"
99 On the tcsh shell, use the `setenv' command instead:
100   % setenv CFLAGS "-g"
101   ...etc...
102 For other shell, please consult your shell's documentation.
103
104 Similarly, you can increase the optimization level by assigning these
105 variables to "-g -O3". 
106
107 The following options allow you to reconsider the `configure' shell script's
108 choice of Fortran compilers.
109
110 `--with-f2c'
111       Compile the Fortran code by translating it to C, even if a native
112       Fortran compiler is available. A copy of the f2c translator should be
113       bundled in the distribution. It will be compiled and then used to 
114       compile your Fortran code.
115 `--with-g77'
116       Compile the Fortran code with g77 even if a proprietary Fortran  
117       compiler is available
118 `--with-f77=F77'
119       Compile the Fortran code with the specified Fortran compiler.
120
121 Depending on what languages the package uses, some of these options may
122 or may not be available. To see what is available, type:
123     % sh ./configure --help
124
125 About the configure script
126 ==========================
127  
128    The `configure' shell script attempts to guess correct values for
129 various system-dependent variables used during compilation.  It uses
130 those values to create a `Makefile' in each directory of the package.
131 It may also create one or more `.h' files containing system-dependent
132 definitions.  Finally, it creates a shell script `config.status' that
133 you can run in the future to recreate the current configuration, a file
134 `config.cache' that saves the results of its tests to speed up
135 reconfiguring, and a file `config.log' containing compiler output
136 (useful mainly for debugging `configure').
137
138    If you need to do unusual things to compile the package, please try
139 to figure out how `configure' could check whether to do them, and mail
140 diffs or instructions to the address given in the `README' so they can
141 be considered for the next release.  If at some point `config.cache'
142 contains results you don't want to keep, you may remove or edit it.
143
144    The file `configure.in' is used to create `configure' by a program
145 called `autoconf'.  You only need `configure.in' if you want to change
146 it or regenerate `configure' using a newer version of `autoconf'.
147
148 Advanced installation options.
149 ==============================
150
151    The `configure' script also understands the following more advanced
152 options, to handle situations for which `--prefix' alone is not sufficient.
153
154    You can specify separate installation prefixes for
155 architecture-specific files and architecture-independent files.  If you
156 give `configure' the option `--exec-prefix=PATH', the package will use
157 PATH as the prefix for installing programs and libraries.
158 Documentation and other data files will still use the regular prefix.
159
160    In addition, if you use an unusual directory layout you can give
161 options like `--bindir=PATH' to specify different values for particular
162 kinds of files.  Run `configure --help' for a list of the directories
163 you can set and what kinds of files go in them.
164
165    If the package supports it, you can cause programs to be installed
166 with an extra prefix or suffix on their names by giving `configure' the
167 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
168
169 Optional Features
170 =================
171
172    Some packages pay attention to `--enable-FEATURE' options to
173 `configure', where FEATURE indicates an optional part of the package.
174 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
175 is something like `gnu-as' or `x' (for the X Window System).  The
176 `README' should mention any `--enable-' and `--with-' options that the
177 package recognizes.
178
179    For packages that use the X Window System, `configure' can usually
180 find the X include and library files automatically, but if it doesn't,
181 you can use the `configure' options `--x-includes=DIR' and
182 `--x-libraries=DIR' to specify their locations.
183