branch: master commit f3e494dd8a72558341b2d23cd6eee85a527e02a6 Author: rocky <ro...@gnu.org> Commit: rocky <ro...@gnu.org>
Go over travis testing. --- INSTALL | 226 +++++++++++++++++++++++++++++++++++++++++------------ test/Makefile.am | 39 ++++++++- 2 files changed, 209 insertions(+), 56 deletions(-) diff --git a/INSTALL b/INSTALL index aaa3bf8..2099840 100644 --- a/INSTALL +++ b/INSTALL @@ -1,8 +1,8 @@ Installation Instructions ************************* -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006, 2007, 2008, 2009 Free Software Foundation, Inc. +Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, +Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -12,27 +12,29 @@ without warranty of any kind. Basic Installation ================== - Briefly, the shell commands `./configure && make' should configure, -and build this package. If that succeeds `make install' will install -the package. However on some systems you may need root privileges, you -may have use `sudo make install' or perhaps `su root' beforehand. - -Generic Information -=================== + Briefly, the shell command `./configure && make && make install' +should configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. -It also creates a shell script `config.status' that you can run in -the future to recreate the current configuration, and a file -`config.log' containing compiler output (useful mainly for debugging -`configure'). - - The configure script can also use an optional file (typically -called `config.cache' and enabled with `--cache-file=config.cache' or -simply `-C') that saves the results of its tests to speed up -reconfiguring. Caching is disabled by default to prevent problems -with accidental use of stale cache files. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail @@ -41,9 +43,10 @@ be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. - The file `configure.ac' is used to create `configure' by a program -called `autoconf'. You need `configure.ac' if you want to change it -or regenerate `configure' using a newer version of `autoconf'. + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. The simplest way to compile this package is: @@ -64,45 +67,99 @@ or regenerate `configure' using a newer version of `autoconf'. user, and only the `make install' phase executed with root privileges. - 5. You can remove the compiled Emacs Lisp files and other derived - files from the source code directory by typing `make clean'. To - also remove the files that `configure' created (so you can - compile the package for a different kind of computer), type `make - distclean'. There is also a `make maintainer-clean' target, but - that is intended mainly for the package's developers. If you use - it, you may have to get all sorts of other programs in order to - regenerate files that came with the distribution. - - 6. You can also type `make uninstall' to remove the installed files - again. - - 7. We don't provide `make distcheck' right now, but perhaps someday - we will. This is by used by developers to test that all other + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. -Options +Compilers and Options ===================== - Run `./configure --help' for details on the pertinent -environment variables. + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: - ./configure CC=c99 EMACS=/usr/bin/emacs23-x + ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + Installation Names ================== - By default, `make install' installs the package's emacs files under -`/usr/local/share/emacs/site-lisp', You can specify an installation -prefix other than `/usr/local/emacs/site-lisp' by giving `configure' -the option `--with-site-lisp=PREFIX', where PREFIX must be an absolute -file name. + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or @@ -158,6 +215,73 @@ overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `<wchar.h>' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. Sharing Defaults ================ @@ -179,15 +303,16 @@ configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: - ./configure EMACS=/usr/bin/emacs23-x + ./configure CC=/usr/local2/bin/gcc -causes the specified `/usr/bin/emacs23-x' to be used as the Emacs program -to use. +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf bug. Until the bug is fixed you can use this workaround: +an Autoconf limitation. Until the limitation is lifted, you can use +this workaround: - CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== @@ -243,4 +368,3 @@ operates. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. - diff --git a/test/Makefile.am b/test/Makefile.am index 8df6424..48f7f72 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,13 +1,41 @@ include $(top_srcdir)/common.mk -PHONY=check test all -EXTRA_DIST=sample.txt +PHONY=check test all check-elget test-elget help -all: +all: check #: same thing as "check" test: check +#: overall help on running the make targets +help: + @echo "The main function of this Makefile is to facilitate running tests." + @echo + @echo "To run all of the tests, use targets \"test\", \"check\" or \"check-short\"." + @echo "For example:" + @echo + @echo " make check" + @echo "or:" + @echo " make check-short" + @echo + @echo "The -short target uses a filter written in Ruby to remove extreanous output." + @echo + @echo "To run a specific test like test-srcbuf.el, change \".el\" to" + @echo "\".run\". For example:" + @echo + @echo " make test-srcbuf.run" + @echo + @echo "Tests can also be run via the Emacs el-get package and this loads dependent emacs " + @echo "package, like load-relative. To do this, use targets, \"check-elget\"," + @echo "\"test-elget\", or \"check-short-elget\"." + @echo + @echo "To run a specific test like test-srcbuf.el via el-get change \".el\"" + @echo "to \".elrun\" For example:" + @echo + @echo " make test-srcbuf.elrun" + +EXTRA_DIST=sample.txt + #: same thing as "check-elget" test-elget: check-elget @@ -20,7 +48,8 @@ EL_GET_CHECK_FILES = $(notdir $(test_files:.el=.elrun)) check: $(CHECK_FILES) #: Run all tests via el-get -check-elget: $(EL_GET_CHECK_FILES) +check-elget: + (cd $(top_srcdir)/test && $(EMACS) --batch --no-site-file --no-splash --load ./install-pkgs.el --load test-basic.el) #: Run all tests with minimum verbosity check-short: @@ -28,7 +57,7 @@ check-short: #: Run all tests with minimum verbosity via el-get check-short-elget: - $(MAKE) check-elget 2>&1 | ruby ../make-check-filter.rb + $(MAKE) check-elget 2>&1 | ruby ./make-check-filter.rb test-%.run: (cd $(top_srcdir)/test && $(EMACS) --batch --no-site-file --no-splash --load $(@:.run=.el))