| $Id: INSTALL,v 1.25 2009/08/28 05:33:40 subrata_modak Exp $ |
| |
| About configuration |
| ------------------- |
| If you want to use auto configuration, be sure autoconf-2.61 & automake-1.10 are installed. |
| |
| (Latest automake sources can be downloaded from: |
| ftp://ftp.gnu.org/gnu/automake/automake-1.10.2.tar.gz, |
| |
| Latest autoconf sources can be downloaded from: |
| ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.gz, |
| ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.bz2, |
| |
| Autoconf also requires certain higher version(s) of m4, which can be found from: |
| http://ftp.gnu.org/gnu/m4/, |
| http://ftp.gnu.org/gnu/m4/m4-1.4.12.tar.bz2). |
| |
| Then run: |
| $ make autotools |
| $ ./configure |
| $ make all |
| $ make install |
| |
| If you get a build error, please report it to ltp-list@lists.sf.net with |
| following information, |
| |
| 1. the error output of build tools(make, gcc, etc...) |
| 2. the output of ./configure |
| 3. include/config.h |
| 4. config.mk |
| 5. config.log |
| |
| |
| If you want to use default configuration, autoconf is not needed. Just run: |
| $ touch include/config.h.default |
| $ make config.h |
| $ make all |
| |
| If make all is failed even if you use the auto configuration, please, report it to |
| ltp developers with config.log, generated by running the configure script. |
| |
| Quick Start |
| ----------- |
| |
| 1> tar xzf ltp-XXXXXXXX.tar.gz |
| 2> cd ltp |
| 3> make |
| 4> make install |
| 5> ./runalltests.sh |
| |
| *NOTE: The LTP assumes the existence of the nobody, bin, and daemon users and |
| their groups. If these IDs do not exist, certain tests will fail. The users |
| and groups IDs should be the same, i.e. if user "nobody" is 99, then it's |
| group should also be "99". The names of the groups are irrelevant. |
| |
| |
| Detailed Installation |
| --------------------- |
| |
| Beyond the "Quick Start" instructions, there are only a few other things |
| that should be done. The Linux Test Project build process uses a |
| minimalist approach. There is a lot of room for improvement and |
| contributions are welcome. |
| |
| 1. Log in as root. |
| |
| 2. Untar the ltp tarball into a spare directory. There is not a |
| standard location for it yet. We put it in our home directory |
| while we're working on it. |
| Note that the full path to this location must be accessible for |
| unprivileged users, as some tests are run as a different user than root. |
| Hence /root is not a good choice on several distributions. |
| |
| 3. Run "make" to build everything. |
| *NOTE: Some of the Makefiles (example: pan/Makefile) require the lex (or |
| flex) package to be installed. |
| |
| 4. You can run all of the tests sequentially by using the example test |
| script runalltests.sh. The script is there just to get you started. |
| See ltp-pan(1) for more information on the test driver we have provided. |
| It is simple, but it can do a lot of stuff. |
| |
| NOTE: The diskio and network tests will NOT be run by the runalltests.sh |
| script. We chose to separate these tests because of their required setup |
| overhead. |
| |
| 5. The disk i/o tests can be run by executing the diskio.sh script. In order |
| for these tests to successfully operate a writable high-density 3.5" floppy |
| must be in the disk drive and a CD-ROM with more than 100Mb of data must be |
| in the CD-ROM drive. The corresponding tests will fail if either disk is |
| missing. |
| |
| 6. The network tests are executed by running the networktests.sh script. The |
| network tests require some configuration for them to work correctly: |
| |
| i) First, there MUST be another test machine setup to act as the server |
| to these client side tests. This machine MUST have the LTP installed |
| in the same exact location, i.e. if the client has /root/ltp, then the |
| server must have /root/ltp. This is required because certain tests |
| expect to find server files in certain locations. Make sure to compile |
| the LTP on this server machine also. |
| |
| ii) Second, the server must be setup to allow the client to connect using |
| the "r" commands, such as rsh. This is done by simply creating/editing |
| the ".rhosts" file under /root. Place the hostname of the client |
| machine in this file to allow root to remotely connect without the use |
| of a password. If server has the PAM system security tool, you need |
| to add the following lines to /etc/securetty: |
| rlogin |
| rsh |
| rexec |
| pts/0 |
| pts/1 |
| : |
| pts/9 |
| |
| iii) Next, certain services must be activated in order for certain tests to |
| execute. The following services are activated via inetd/xinetd: |
| rlogind |
| ftpd |
| telnetd |
| echo (stream) |
| fingerd |
| rshd |
| Also, because certain RPC programs are tested, the "portmapper" daemon |
| MUST be started, as well as NFS server AND lock services. |
| |
| iv) Finally, before running the networktests.sh script, two variables must |
| be set within the script file. The "RHOST" variable should be set to |
| the hostname of the server. The "PASSWD" variable should be set to |
| root's password on the server machine. This is necessary for tests |
| such as telnet01 and ftp01. |
| |
| You can now successfully execute the networktests.sh script. |
| When you would like to run the whole network tests, specify -w option: |
| # ./networktests.sh -w |
| |
| When you would like to run the same tests which networktests.sh ran till |
| 2008, specify no option or -d option: |
| # ./networktests.sh |
| |
| You can run the test category which you are interested in, -h option shows |
| the list of the test category: |
| # ./netwoktests.sh -h |
| |
| |
| Cross compiling |
| --------------- |
| |
| To cross compile, override one or more of CC, AR, CROSS_CFLAGS, |
| LOADLIBES, LDFLAGS, & LIB_DIR and be sure to always build from the top level. |
| |
| To override them from the make commandline, do something like this: |
| $ CROSS_COMPILER=/opt/cegl-1.4/hardhat/devkit/ppc/405/bin/powerpc-linux- |
| $ make \ |
| CROSS_CFLAGS="-mcpu=403 -D__PPC405__" \ |
| LDFLAGS=-static \ |
| LOADLIBES="-lpthread -lc -lresolv -lnss_dns -lnss_files -lm -lc" |
| |
| Alternately, to override them by editing this file, uncomment the |
| following lines: |
| CROSS_COMPILER=/opt/ppc64/powerpc64-linux/bin/powerpc64-linux- |
| CROSS_CFLAGS= -mpowerpc64 |
| LDFLAGS=-static |
| LOADLIBES=-lpthread -lc -lresolv -lnss_dns -lnss_files -lm -lc |
| LIB_DIR=/lib64 |
| export LOADLIBES LIB_DIR |
| |
| Or, you can save all your settings into the local 'config.mk' file. |
| The defaults will not be usable in that case; you will need to |
| override things explicitly. |
| |
| uClinux Users: make sure you add -DUCLINUX to your CFLAGS |
| |
| Note: If you override a variable from the commandline all |
| assignments to it in the Makefiles will be ignored. To set it both |
| in the commandline and in the Makefiles use a dummy variable like in |
| CFLAGS. |
| |
| Variables in Makefile |
| ---------------------- |
| |
| The conventions enforced are the standard ones. LTP isnt redefining any |
| of the flags from their normal meaning. here's a quick summary: |
| |
| CFLAGS - used when compiling/linking C code (no CPPFLAGS!) |
| |
| CXXFLAGS - used when compiling/linking C++ code (no CPPFLAGS!) |
| |
| CPPFLAGS - used when preprocessor is run (so C/C++ compiling an $(CPP) |
| checks) |
| |
| LDFLAGS - linker flags (no libraries) used when linking |
| |
| LDLIBS - libraries listed after objects during link |
| |
| Above list is ideal: Many codes in LTP violates above list especially |
| about CPPFLAGS. e.g. -I and -D are passed to CFLAGS. |
| |
| Currently the violation isn't critical. However, it should be fixed. |
| Patches are welcome. |