##  $Id: Makefile.global.in 7345 2005-07-02 05:04:05Z eagle $
##
##  This file is meant to be the central Makefile that configure works with
##  and that all other Makefiles include.  No Makefile other than this one
##  should have to be a configure substitution target.
##
##  For installation paths, see the bottom of this file.

##  This version information is used to generate lib/version.c and is used
##  by INN for banner and local version identification.  The version
##  identification string will be "$VERSION ($VERSION_EXTRA)", with the
##  parentheses omitted if $VERSION_EXTRA is empty (as it is for major
##  releases).  If you make extensive local modifications to INN, you can
##  put your own version information in $VERSION_EXTRA.  If it's set to
##  "CVS prerelease", the build time will be automatically included.

VERSION         = 2.4.3
VERSION_EXTRA   =

##  If you want to install INN relative to a root directory other than /,
##  set DESTDIR to the path to the root directory of the file system.  This
##  won't affect any of the paths compiled into INN; it's used primarily
##  when building a software distribution, where software has to be
##  installed into some file system that will later be mounted as / on the
##  final system.  DESTDIR should have a trailing slash, as the trailing
##  slash is not added automatically (in case someone wants to add a prefix
##  that isn't just a parent directory).

DESTDIR         =
D               = $(DESTDIR)

##  The absolute path to the top of the build directory, used to find the
##  libraries built as part of INN.  Using relative paths confuses libtool
##  when linking the test suite.

builddir	= @builddir@

##  Basic compiler settings.  COPT is the variable to override on the make
##  command line to change the optimization or add warning flags (such as
##  -Wall).  LFS_* is for large file support.  All of INN is built with the
##  large file support flags if provided.

CC              = @CC@
COPT            = @CFLAGS@
GCFLAGS         = $(COPT) -I$(top)/include @CPPFLAGS@ $(LFS_CFLAGS)

BERKELEY_DB_CFLAGS = @BERKELEY_DB_CFLAGS@

LDFLAGS         = @LDFLAGS@ $(LFS_LDFLAGS) @BERKELEY_DB_LDFLAGS@
LIBS            = @LIBS@ $(LFS_LIBS)

LFS_CFLAGS      = @LFS_CFLAGS@
LFS_LDFLAGS     = @LFS_LDFLAGS@
LFS_LIBS        = @LFS_LIBS@

PROF            = -pg
PROFSUFFIX      = _p
MAKEPROFILING   = $(MAKE) COPT="$(COPT) $(PROF)" \
                          LDFLAGS="$(LDFLAGS) $(PROF)" \
			  LIBSUFFIX=$(PROFSUFFIX)

##  Used to support non-recursive make.  This variable is set to the necessary
##  options to the compiler to create an object file in a subdirectory.  It
##  should be used instead of -c -o $@ $< and may be replaced with code that
##  calls mv, if the compiler doesn't support -c with -o.

CCOUTPUT	= @CCOUTPUT@

##  Warnings to use with gcc.  Default to including all of the generally
##  useful warnings unless there's something that makes them unsuitable.  In
##  particular, the following warnings are *not* included:
##
##    -ansi             Requires messing with feature test macros.
##    -pedantic         Too much noise from embedded Perl.
##    -Wtraditional     We assume ANSI C, so these aren't interesting.
##    -Wshadow          Names like log or index are too convenient.
##    -Wcast-qual       Used for a while, but some casts are unavoidable.
##    -Wconversion      Too much unsigned to signed noise.
##    -Wredundant-decls Too much noise from system headers.
##
##  Some may be worth looking at again once a released version of gcc doesn't
##  warn on system headers.  The warnings below are in the same order as
##  they're listed in the gcc manual.
##
##  Add -g because when building with warnings one generally also wants the
##  debugging information, and add -O because gcc won't find some warnings
##  without optimization turned on.  Add -DDEBUG=1 so that we'll also
##  compile all debugging code and check it as well.
  
WARNINGS        = -g -O -DDEBUG=1 -Wall -W -Wendif-labels -Wpointer-arith \
                  -Wbad-function-cast -Wcast-align -Wwrite-strings \
                  -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs

##  libtool support.  Note that INN does not use Automake (and that
##  retrofitting Automake is likely more work than it's worth), so
##  libtool-aware rules have to be written by hand.

LIBTOOL         = @LIBTOOL@
LIBTOOLCC       = @LIBTOOLCC@
LIBTOOLLD       = @LIBTOOLLD@
EXTOBJ          = @EXTOBJ@
EXTLIB          = @EXTLIB@

LIBCC           = $(LIBTOOLCC) $(CC)
LIBLD           = $(LIBTOOLLD) $(CC)

##  INN libraries.  Nearly all INN programs are linked with libinn, and any
##  INN program that reads from or writes to article storage or overview is
##  linked against libstorage.  EXTSTORAGELIBS is for external libraries
##  needed by libstorage.

LIBINN          = $(builddir)/lib/libinn$(LIBSUFFIX).$(EXTLIB)
LIBHIST         = $(builddir)/history/libinnhist$(LIBSUFFIX).$(EXTLIB)
LIBSTORAGE      = $(builddir)/storage/libstorage$(LIBSUFFIX).$(EXTLIB)
EXTSTORAGELIBS  = @BERKELEY_DB_LIB@

CRYPTLIB        = @CRYPT_LIB@
DBMLIB          = @DBM_LIB@
PAMLIB          = @PAM_LIB@
REGEXLIB        = @REGEX_LIB@
SHADOWLIB       = @SHADOW_LIB@

##  Embedding support.  Additional flags and libraries used when compiling
##  or linking portions of INN that support embedded interpretors, set by
##  configure based on what interpretor embeddings are selected.

PERLLIB         = $(builddir)/lib/perl$(LIBSUFFIX).o @PERL_LIB@
PERLINC         = @PERL_INC@

PYTHONLIB       = @PYTHON_LIB@
PYTHONINC       = @PYTHON_INC@

##  OpenSSL support.  Additional flags and libraries used when compiling or
##  linking code that contains OpenSSL support, and the path to the OpenSSL
##  binaries.

SSLLIB          = @SSL_LIB@
SSLINC          = @SSL_INC@
SSLBIN          = @SSL_BIN@

##  SASL support.  Additional flags and libraries used when compiling or
##  linking code that contains SASL support.

SASLLIB         = @SASL_LIB@
SASLINC         = @SASL_INC@

##  Kerberos support.  Additional flags and libraries used when compiling or
##  linking code that contains Kerberos support.  If Kerberos libraries were
##  compiled, KRB5_AUTH is also set to the name of the Kerberos v5
##  authenticator that should be compiled and installed.
KRB5LIB		= @KRB5_LIB@
KRB5INC		= @KRB5_INC@
KRB5_AUTH	= @KRB5_AUTH@

##  Missing functions.  If non-empty, configure detected that your system
##  was missing some standard functions, and INN will be providing its own
##  replacements from the lib directory.

LIBOBJS         = @LIBOBJS@

##  Paths to various standard programs used during the build process.
##  Changes to this file will *not* be reflected in the paths compiled into
##  programs; these paths are only used during the build process and for
##  some autogenerated scripts.  To change the compiled paths, see
##  include/paths.h.  You may also need to modify scripts/innshellvars*.

AWK             = @_PATH_AWK@
COMPRESS        = @COMPRESS@
CTAGS           = @CTAGS@
GZIP            = @GZIP@
LEX             = @LEX@
PERL            = @_PATH_PERL@
RANLIB          = @RANLIB@
YACC            = @YACC@
UNCOMPRESS      = @UNCOMPRESS@

FIXSCRIPT       = $(top)/support/fixscript

PERLWHOAMI      = $(PERL) -e 'print scalar getpwuid($$>), "\n"'
WHOAMI          = (whoami || /usr/ucb/whoami || $(PERLWHOAMI)) 2> /dev/null

##  Paths and command lines for programs used only by the maintainers to
##  regenerate dependencies, documentation, and the like.

MAKEDEPEND      = $(top)/support/makedepend

POD2MAN         = pod2man -c 'InterNetNews Documentation' -r 'INN $(VERSION)'
POD2TEXT        = pod2text -s -l

##  Installation directories.  If any of the below are incorrect, don't just
##  edit this file; these directories are substituted in all over the source
##  tree by configure.  Instead, re-run configure with the correct
##  command-line flags to set the directories.  Run configure --help for a
##  list of supported flags.

prefix          = @prefix@

PATHNEWS        = $(prefix)
PATHBIN         = $(PATHNEWS)/bin
PATHDOC         = @DOCDIR@
PATHETC         = @ETCDIR@
PATHMAN         = @mandir@
PATHINCLUDE     = @includedir@
PATHLIB         = @LIBDIR@
PATHCONTROL     = @CONTROLDIR@
PATHFILTER      = @FILTERDIR@
PATHRUN         = @RUNDIR@
PATHLOG         = @LOGDIR@
PATHLOGOLD      = $(PATHLOG)/OLD
PATHDB          = @DBDIR@
PATHSPOOL       = @SPOOLDIR@
PATHTMP         = @tmpdir@
PATHAUTH        = $(PATHBIN)/auth
PATHAUTHRESOLV  = $(PATHAUTH)/resolv
PATHAUTHPASSWD  = $(PATHAUTH)/passwd
PATHRNEWS       = $(PATHBIN)/rnews.libexec
PATHARCHIVE     = $(PATHSPOOL)/archive
PATHARTICLES    = $(PATHSPOOL)/articles
PATHINCOMING    = $(PATHSPOOL)/incoming
PATHTAPE        = $(PATHSPOOL)/innfeed
PATHINBAD       = $(PATHINCOMING)/bad
PATHOVERVIEW    = $(PATHSPOOL)/overview
PATHOUTGOING    = $(PATHSPOOL)/outgoing

MAN1            = @mandir@/man1
MAN3            = @mandir@/man3
MAN5            = @mandir@/man5
MAN8            = @mandir@/man8

##  Installation settings.  The file installation modes are determined by
##  configure; inews and rnews are special and have configure flags to
##  control how they're installed.  See INSTALL for more information.

NEWSUSER        = @NEWSUSER@
NEWSGROUP       = @NEWSGRP@

INEWSMODE       = @INEWSMODE@
RNEWSMODE       = @RNEWSMODE@
FILEMODE        = @FILEMODE@

OWNER           = -o $(NEWSUSER) -g $(NEWSGROUP)
ROWNER          = -o $(NEWSUSER) -g @RNEWSGRP@

INSTALL         = $(top)/support/install-sh -c

##  Installation commands.  These commands are used by the installation rules
##  of each separate subdirectory.  The naming scheme is as follows: the first
##  two characters are CP (indicating a plain copy) or LI (indicating an
##  installation that goes through libtool).  After an underscore is a
##  one-character indicator of the file type (R for a regular file, X for an
##  executable, S for a setuid root executable) and then PUB for a
##  world-readable/world-executable file or PRI for a group-readable/
##  group-executable file (only the news group).
##
##  inews and rnews have their own special installation rules, as do database
##  files like active and newsgroups that should have the same permissions as
##  article files.

LI_SPRI         = $(LIBTOOL) $(INSTALL) -o root -g $(NEWSGROUP) -m 4550 -B .OLD
LI_XPRI         = $(LIBTOOL) $(INSTALL) $(OWNER) -m 0550 -B .OLD
LI_XPUB         = $(LIBTOOL) $(INSTALL) $(OWNER) -m 0555 -B .OLD

LI_INEWS        = $(LIBTOOL) $(INSTALL) $(OWNER) -m $(INEWSMODE) -B .OLD
LI_RNEWS        = $(LIBTOOL) $(INSTALL) $(ROWNER) -m $(RNEWSMODE) -B .OLD

CP_RPRI         = $(INSTALL) $(OWNER) -m 0640 -B .OLD
CP_RPUB         = $(INSTALL) $(OWNER) -m 0644 -B .OLD
CP_XPRI         = $(INSTALL) $(OWNER) -m 0550 -B .OLD
CP_XPUB         = $(INSTALL) $(OWNER) -m 0555 -B .OLD

CP_DATA	        = $(INSTALL) $(OWNER) -m $(FILEMODE) -B .OLD

##  How to install man pages.  Pick one of SOURCE, BSD4.4, NROFF-PACK, or
##  NROFF-PACK-SCO.  Used by doc/man/putman.sh; read that script for more
##  information on what it does.

MANPAGESTYLE    = SOURCE

##  Some additional definitions needed by some versions of make, to ensure a
##  consistant set of variables are available.

SHELL           = /bin/sh

@SET_MAKE@


syntax highlighted by Code2HTML, v. 0.9.1