APACHE TRAFFIC SERVER UNIX QUICKSTART
-------------------------------------

For complete installation documentation, see the on-line documentation at

    https://docs.trafficserver.apache.org/en/latest/


Various popular platforms have up-to-date build instructions available
online, at

    https://cwiki.apache.org/confluence/display/TS/Building


BUILD AND INSTALLATION
----------------------

Configure & Build from Git source tree:
    $ autoreconf -if  # generate the configure script and Makefile.in files

On Linux and macOS:
    $ ./configure [--prefix=PREFIX]
    $ make

On OpenSolaris and FreeBSD:
    $ ./configure [--prefix=PREFIX]
    $ gmake

To install:
    $ sudo make install

* Building on FreeBSD requires GNU make. This is the preferred make
  on all platforms.

* Replace PREFIX with the filesystem path under which Traffic Server
  should be installed.  Default PREFIX is "/usr/local" (without the
  quotes).

* If you want to build using different layout see the config.layout
  file for possible alternatives. You can create your own layout
  and enable it with ./configure --enable-layout=ID, where ID is
  the layout name you have created.

* The easiest way to find all of the configuration flags
  for Traffic Server is to run ./configure --help.


By default the build will use the highest level of compiler
optimization. To alter this, specify your own optimizer flags at
configuration time:

    $ ./configure CXXFLAGS=-Os CFLAGS=-Os

To compile with an alternate set of compilers, e.g. LLVM/Clang

    $ ./configure CC=clang CXX=clang++


To start the Traffic Server process stack (TC, TM, TS):
    $ sudo PREFIX/bin/trafficserver start


INSTALLATION HELP
-----------------

The Apache Traffic Server group cannot field user's installation
questions.  There are many valuable forums to help you get started.
Please refer your questions to the appropriate forum, such as the
Users Mailing List at

    http://cwiki.apache.org/confluence/display/TS/Traffic+Server

Thanks for using the Apache Traffic Server, version 5.

             The Apache Software Foundation
             http://www.apache.org/
