[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master f3e494d 3/5: Go over travis testing.
From: |
Rocky Bernstein |
Subject: |
[elpa] master f3e494d 3/5: Go over travis testing. |
Date: |
Fri, 27 Feb 2015 23:29:33 +0000 |
branch: master
commit f3e494dd8a72558341b2d23cd6eee85a527e02a6
Author: rocky <address@hidden>
Commit: rocky <address@hidden>
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))