File: Makefile.global.in

package info (click to toggle)
inn2 2.6.3-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 13,228 kB
  • sloc: ansic: 96,526; sh: 15,562; perl: 13,281; makefile: 3,700; yacc: 842; python: 309; lex: 262
file content (365 lines) | stat: -rw-r--r-- 13,752 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
##  $Id: Makefile.global.in 10274 2018-03-22 20:36:39Z iulius $
##
##  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 include/inn/version.h 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
##  "prerelease", the build time will be automatically included.
##      If you modify these two strings, you must encode them in UTF-8
##      (using only US-ASCII characters is consequently also fine) and
##      keep their length reasonable; otherwise, your news server will not
##      be complying with the NNTP protocol.

VERSION		= 2.6.3
VERSION_EXTRA	=

##  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.

abs_builddir	= @abs_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@

LDFLAGS		= @LDFLAGS@
LIBS		= @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.
##    -Wdouble-promotion    Too much noise from using printf with floats.
##    -Wswitch-default      Quite annoying to enforce it.
##    -Wstrict-overflow=2   Gives false positives.
##    -Wtraditional         We assume ANSI C, so these aren't interesting.
##    -Wtraditional-conversion
##                          Warns about problems when upgrading from K&R to
##                          ANSI C, so these aren't interesting.
##    -Wundef               We need portability code.
##    -Wshadow              Names like log or index are too convenient.
##    -Wunsafe-loop-optimizations
##                          Too much noise.
##    -Wcast-qual           Used for a while, but some casts are unavoidable.
##    -Wconversion          Too much unsigned to signed noise.
##    -Waggregate-return    Syntax allowed in C.
##    -Wmissing-noreturn    Not necessary (unless for optimization).
##    -Wpacked              Used by INN.
##    -Wpadded              Used by INN.
##    -Wredundant-decls     Too much noise from system headers.
##    -Wlong-long           Too much noise from system headers.
##    -Woverlength-strings  Useless noise.
##    -Wunused-function     Noise from embedded Perl (at least with Perl 5.20).
##
##  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.
##
##  Last checked against gcc 6.3.0 (2017-11-04).
##  Add -g because when building with warnings, one generally also wants the
##  debugging information, and add -O3 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.
##  It would be worthwhile trying to enforce the following checks:
##  -D_FORTIFY_SOURCE=2 enables warn_unused_result attribute markings
##  on glibc functions on Linux, as well as more object size checking,
##  which catches a few more issues.
##  -Wformat=2, -Wswitch-enum, -Wfloat-equal, -Wlogical-op,
##  "-Wconversion -Wno-sign-conversion",
##  -Wunreachable-code, -Wstack-protector, -Wdeclaration-after-statement

WARNINGS	= -g -O3 -DDEBUG=1 -Werror -Wall -Wextra \
		  -Wnull-dereference -Winit-self -Wmissing-include-dirs \
		  -Wshift-overflow=2 \
		  -Wsync-nand -Wmissing-format-attribute -Wduplicated-cond \
		  -Wtrampolines -Wpointer-arith \
		  -Wbad-function-cast -Wcast-align -Wwrite-strings \
		  -Wjump-misses-init -Wstrict-prototypes \
		  -Wold-style-definition \
		  -Wmissing-prototypes -Wmissing-declarations \
		  -Wmissing-format-attribute \
		  -Wnormalized=nfc -Wnested-externs -Winline \
		  -Winvalid-pch -Wvla -Wno-unused-function

##  Some warnings have to be suppressed for Perl, since there's no way to work
##  around the Perl header problems in INN code.

PERL_WARNINGS	= @PERL_WARNINGS@

##  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@
LIBTOOLINST	= @LIBTOOLINST@
LIBTOOLLD	= @LIBTOOLLD@
EXTOBJ		= @EXTOBJ@
EXTLIB		= @EXTLIB@

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

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

ZLIB_CPPFLAGS	= @ZLIB_CPPFLAGS@
ZLIB_LDFLAGS	= @ZLIB_LDFLAGS@
ZLIB_LIBS	= @ZLIB_LIBS@

##  Berkeley DB support.  If this support is configured, anything linking
##  against libstorage also needs to link against BDB_LDFLAGS and BDB_LIBS.
 
BDB_CPPFLAGS   = @BDB_CPPFLAGS@ $(ZLIB_CPPFLAGS)
BDB_LDFLAGS    = @BDB_LDFLAGS@ $(ZLIB_LDFLAGS)
BDB_LIBS       = @BDB_LIBS@ $(ZLIB_LIBS)

##  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.	STORAGE_LIBS is for external libraries
##  needed by libstorage.

LIBINN		= $(abs_builddir)/lib/libinn$(LIBSUFFIX).$(EXTLIB)
LIBHIST		= $(abs_builddir)/history/libinnhist$(LIBSUFFIX).$(EXTLIB)
LIBSTORAGE	= $(abs_builddir)/storage/libstorage$(LIBSUFFIX).$(EXTLIB)
STORAGE_LIBS	= $(BDB_LDFLAGS) $(BDB_LIBS)

DBM_CPPFLAGS	= @DBM_CPPFLAGS@
DBM_LIBS	= @DBM_LIBS@

CRYPT_LIBS	= @CRYPT_LIBS@
PAM_LIBS	= @PAM_LIBS@
REGEX_LIBS	= @REGEX_LIBS@
SHADOW_LIBS	= @SHADOW_LIBS@

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

PERL_CPPFLAGS	= @PERL_CPPFLAGS@ $(PERL_WARNINGS)
PERL_LIBS	= $(abs_builddir)/lib/perl$(LIBSUFFIX).o @PERL_LIBS@

PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
PYTHON_LIBS	= @PYTHON_LIBS@

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

SSL_CPPFLAGS	= @OPENSSL_CPPFLAGS@
SSL_LDFLAGS	= @OPENSSL_LDFLAGS@
SSL_LIBS	= @OPENSSL_LIBS@
CRYPTO_LIBS	= @CRYPTO_LIBS@

SSLBIN		= @SSLBIN@

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

SASL_CPPFLAGS	= @SASL_CPPFLAGS@
SASL_LDFLAGS	= @SASL_LDFLAGS@
SASL_LIBS	= @SASL_LIBS@

##  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.

KRB5_AUTH	= @KRB5_AUTH@
KRB5_CPPFLAGS	= @KRB5_CPPFLAGS@
KRB5_LDFLAGS	= @KRB5_LDFLAGS@
KRB5_LIBS	= @KRB5_LIBS@

##  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.

ALLOCA		= @ALLOCA@
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/inn/paths.h.  You may also need to modify scripts/innshellvars*.

AWK		= @AWK@
BZIP2		= @BZIP2@
COMPRESS	= @COMPRESS@
GZIP		= @GZIP@
LEX		= @LEX@
LN_S		= @LN_S@
MKDIR_P		= @MKDIR_P@
PERL		= @PERL@
RANLIB		= @RANLIB@
SED		= @SED@
UNCOMPRESS	= @UNCOMPRESS@
YACC		= @YACC@

FIXCONFIG	= $(top)/support/fixconfig
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@
exec_prefix	= @exec_prefix@
datarootdir	= @datarootdir@
bindir		= @bindir@
docdir		= @docdir@
includedir	= @includedir@
libdir		= @libdir@
mandir		= @mandir@
sysconfdir	= @sysconfdir@
tmpdir		= @tmpdir@

PATHNEWS	= $(prefix)
PATHBIN		= $(bindir)
PATHDATASHARE	= $(datarootdir)
PATHDOC		= $(docdir)
PATHETC		= $(sysconfdir)
PATHMAN		= $(mandir)
PATHINCLUDE	= $(includedir)
PATHLIB		= $(libdir)
PATHLIBPERL	= @LIBPERLDIR@
PATHCONTROL	= @CONTROLDIR@
PATHFILTER	= @FILTERDIR@
PATHRUN		= @RUNDIR@
PATHHTTP	= @HTTPDIR@
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
MAN3PM		= $(mandir)/man3
MAN5		= $(mandir)/man5
MAN8		= $(mandir)/man8

##  Extension used for Perl modules man pages (for instance "INN::Config.3pm"
##  if MAN3PM_EXT is set to "3pm").

MAN3PM_EXT	= 3pm

##  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.

RUNASUSER	= @RUNASUSER@
RUNASGROUP	= @RUNASGROUP@
RNEWSGROUP	= @RNEWSGRP@

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

OWNER		= -o $(RUNASUSER) -g $(RUNASGROUP)
ROWNER		= -o $(RUNASUSER) -g $(RNEWSGROUP)

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, L for
##  a shared library) and then PUB for a world-readable/world-executable
##  file or PRI for a group-readable/ group-executable file (only the news
##  group).
##
##  Man pages should not be backed up with an .OLD extension since it causes
##  man to complain about bogus filenames in MANPATH.  Shared libraries
##  should not be backed up with an .OLD extension since ldconfig will
##  select the .OLD version in preference to the regular version.  We use
##  shared library versioning to allow recovery from make update for shared
##  libraries.
##
##  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.

BACKUP_OPTION	= -B .OLD

LI_SPRI		= $(LIBTOOLINST) $(INSTALL) -o root -g $(RUNASGROUP) -m 4550 $(BACKUP_OPTION)
LI_XPRI		= $(LIBTOOLINST) $(INSTALL) $(OWNER) -m 0550 $(BACKUP_OPTION)
LI_XPUB		= $(LIBTOOLINST) $(INSTALL) $(OWNER) -m 0555 $(BACKUP_OPTION)
LI_LPUB		= $(LIBTOOLINST) $(INSTALL) $(OWNER) -m 0555

LI_INEWS	= $(LIBTOOLINST) $(INSTALL) $(OWNER) -m $(INEWSMODE) $(BACKUP_OPTION)
LI_RNEWS	= $(LIBTOOLINST) $(INSTALL) $(ROWNER) -m $(RNEWSMODE) $(BACKUP_OPTION)

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

CP_DATA		= $(INSTALL) $(OWNER) -m $(FILEMODE) $(BACKUP_OPTION)
CP_MAN		= $(INSTALL) $(OWNER) -m 0444

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

SHELL		= @SHELL@

@SET_MAKE@

##  Local variables:
##  mode: makefile
##  End: