The Android Open Source Project | 9364f22 | 2008-10-21 07:00:00 -0700 | [diff] [blame] | 1 | This is a generic INSTALL file for utilities distributions. |
| 2 | If this package does not come with, e.g., installable documentation or |
| 3 | data files, please ignore the references to them below. |
| 4 | |
| 5 | To compile this package: |
| 6 | |
| 7 | 1. Configure the package for your system. In the directory that this |
| 8 | file is in, type `./configure'. If you're using `csh' on an old |
| 9 | version of System V, you might need to type `sh configure' instead to |
| 10 | prevent `csh' from trying to execute `configure' itself. |
| 11 | |
| 12 | The `configure' shell script attempts to guess correct values for |
| 13 | various system-dependent variables used during compilation, and |
| 14 | creates the Makefile(s) (one in each subdirectory of the source |
| 15 | directory). In some packages it creates a C header file containing |
| 16 | system-dependent definitions. It also creates a file `config.status' |
| 17 | that you can run in the future to recreate the current configuration. |
| 18 | |
| 19 | Running `configure' takes a minute or two. While it is running, it |
| 20 | prints some messages that tell what it is doing. If you don't want to |
| 21 | see the messages, run `configure' with its standard output redirected |
| 22 | to `/dev/null'; for example, `./configure >/dev/null'. |
| 23 | |
| 24 | To compile the package in a different directory from the one |
| 25 | containing the source code, you must use a version of `make' that |
| 26 | supports the VPATH variable, such as GNU `make'. `cd' to the directory |
| 27 | where you want the object files and executables to go and run |
| 28 | `configure'. `configure' automatically checks for the source code in |
| 29 | the directory that `configure' is in and in `..'. If for some reason |
| 30 | `configure' is not in the source code directory that you are |
| 31 | configuring, then it will report that it can't find the source code. |
| 32 | In that case, run `configure' with the option `--srcdir=DIR', where |
| 33 | DIR is the directory that contains the source code. |
| 34 | |
| 35 | By default, `make install' will install the package's files in |
| 36 | /usr/local/bin, /usr/local/lib, /usr/local/man, etc. You can specify |
| 37 | an installation prefix other than /usr/local by giving `configure' the |
| 38 | option `--prefix=PATH'. Alternately, you can do so by giving a value |
| 39 | for the `prefix' variable when you run `make', e.g., |
| 40 | make prefix=/usr/gnu |
| 41 | |
| 42 | You can specify separate installation prefixes for |
| 43 | architecture-specific files and architecture-independent files. If |
| 44 | you give `configure' the option `--exec-prefix=PATH' or set the |
| 45 | `make' variable `exec_prefix' to PATH, the package will use PATH as |
| 46 | the prefix for installing programs and libraries. Data files and |
| 47 | documentation will still use the regular prefix. Normally, all files |
| 48 | are installed using the regular prefix. |
| 49 | |
| 50 | Another `configure' option is useful mainly in `Makefile' rules for |
| 51 | updating `config.status' and `Makefile'. The `--no-create' option |
| 52 | figures out the configuration for your system and records it in |
| 53 | `config.status', without actually configuring the package (creating |
| 54 | `Makefile's and perhaps a configuration header file). Later, you can |
| 55 | run `./config.status' to actually configure the package. You can also |
| 56 | give `config.status' the `--recheck' option, which makes it re-run |
| 57 | `configure' with the same arguments you used before. This option is |
| 58 | useful if you change `configure'. |
| 59 | |
| 60 | Some packages pay attention to `--with-PACKAGE' options to `configure', |
| 61 | where PACKAGE is something like `gnu-libc' or `x' (for X windows). |
| 62 | The README should mention any --with- options that the package recognizes. |
| 63 | |
| 64 | `configure' ignores any other arguments that you give it. |
| 65 | |
| 66 | If your system requires unusual options for compilation or linking |
| 67 | that `configure' doesn't know about, you can give `configure' initial |
| 68 | values for some variables by setting them in the environment. In |
| 69 | Bourne-compatible shells, you can do that on the command line like |
| 70 | this: |
| 71 | CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure |
| 72 | |
| 73 | The `make' variables that you might want to override with environment |
| 74 | variables when running `configure' are: |
| 75 | |
| 76 | (For these variables, any value given in the environment overrides the |
| 77 | value that `configure' would choose:) |
| 78 | CC C compiler program. |
| 79 | Default is `cc', or `gcc' if `gcc' is in your PATH. |
| 80 | INSTALL Program to use to install files. |
| 81 | Default is `install' if you have it, `cp' otherwise. |
| 82 | |
| 83 | (For these variables, any value given in the environment is added to |
| 84 | the value that `configure' chooses:) |
| 85 | DEFS Configuration options, in the form `-Dfoo -Dbar ...' |
| 86 | Do not use this variable in packages that create a |
| 87 | configuration header file. |
| 88 | LIBS Libraries to link with, in the form `-lfoo -lbar ...' |
| 89 | |
| 90 | If you need to do unusual things to compile the package, we encourage |
| 91 | you to figure out how `configure' could check whether to do them, and |
| 92 | mail diffs or instructions to the address given in the README so we |
| 93 | can include them in the next release. |
| 94 | |
| 95 | 2. Type `make' to compile the package. If you want, you can override |
| 96 | the `make' variables CFLAGS and LDFLAGS like this: |
| 97 | |
| 98 | make CFLAGS=-O2 LDFLAGS=-s |
| 99 | |
| 100 | 3. If the package comes with self-tests and you want to run them, |
| 101 | type `make check'. If you're not sure whether there are any, try it; |
| 102 | if `make' responds with something like |
| 103 | make: *** No way to make target `check'. Stop. |
| 104 | then the package does not come with self-tests. |
| 105 | |
| 106 | 4. Type `make install' to install programs, data files, and |
| 107 | documentation. |
| 108 | |
| 109 | 5. You can remove the program binaries and object files from the |
| 110 | source directory by typing `make clean'. To also remove the |
| 111 | Makefile(s), the header file containing system-dependent definitions |
| 112 | (if the package uses one), and `config.status' (all the files that |
| 113 | `configure' created), type `make distclean'. |
| 114 | |
| 115 | The file `configure.in' is used as a template to create `configure' by |
| 116 | a program called `autoconf'. You will only need it if you want to |
| 117 | regenerate `configure' using a newer version of `autoconf'. |