-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
144 lines (119 loc) · 4.51 KB
/
Makefile
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
#$Id$
# BASENAME should point to where the whole lot will be installed
# change BASENAME to your home directory if need be
BASENAME = /usr
# For display in the man pages
VISIBLE_BASENAME= $(BASENAME)
# You can predefine ARCHITECTURE to a bin directory suffix
ARCHITECTURE =
#ARCHITECTURE =.sun4
BINDIR_TAIL = bin$(ARCHITECTURE)
MANDIR = $(BASENAME)/man
BINDIR = $(BASENAME)/$(BINDIR_TAIL)
VISIBLE_BINDIR = $(VISIBLE_BASENAME)/$(BINDIR_TAIL)
# MAN1SUFFIX for regular utility manuals
MAN1SUFFIX =1
# MAN5SUFFIX for file-format descriptions
MAN5SUFFIX =5
MAN1DIR = $(MANDIR)/man$(MAN1SUFFIX)
MAN5DIR = $(MANDIR)/man$(MAN5SUFFIX)
# Uncomment to install compressed man pages (possibly add extra suffix
# to the definitions of MAN?DIR and/or MAN?SUFFIX by hand)
#MANCOMPRESS = compress
############################*#
# Things that can be made are:
#
# help (or targets) Displays this list you are looking at
# init (or makefiles) Performs some preliminary sanity checks on your system
# and generates Makefiles accordingly
# bins Preinstalls only the binaries to ./new
# mans Preinstalls only the man pages to ./new
# all Does both
# install.bin Installs the binaries from ./new to $(BINDIR)
# install.man Installs the man pages from ./new to $(MAN[15]DIR)
# install Does both
# recommend Show some recommended suid/sgid modes
# install-suid Impose the modes shown by 'make recommend'
# clean Attempts to restore the package to pre-make state
# realclean Attempts to restore the package to pre-make-init state
# deinstall Removes any previously installed binaries and man
# pages from your system by careful surgery
# autoconf.h Will list your system's anomalies
# procmail Preinstalls just all procmail related stuff to ./new
# formail Preinstalls just all formail related stuff to ./new
# lockfile Preinstalls just all lockfile related stuff to ./new
# setid Creates the setid binary needed by the SmartList
# installation
######################*#
# Makefile.0 - mark, don't (re)move this, a sed script needs it
LOCKINGTEST=__defaults__
#LOCKINGTEST=/tmp . # Uncomment and add any directories you see fit.
# If LOCKINGTEST is defined, autoconf will NOT
# prompt you to enter additional directories.
# See INSTALL for more information about the
# significance of the locking tests.
########################################################################
# Only edit below this line if you *think* you know what you are doing #
########################################################################
#LOCKINGTEST=100 # Uncomment (and change) if you think you know
# it better than the autoconf lockingtests.
# This will cause the lockingtests to be hotwired.
# 100 to enable fcntl()
# 010 to enable lockf()
# 001 to enable flock()
# Or them together to get the desired combination.
# Optional system libraries we search for
SEARCHLIBS = -lm -ldir -lx -lsocket -lnet -linet -lnsl_s -lnsl_i -lnsl -lsun \
-lgen -lsockdns -ldl
# -lresolv # not really needed, is it?
# Informal list of directories where we look for the libraries in SEARCHLIBS
LIBPATHS=/lib /usr/lib /usr/local/lib
GCC_WARNINGS = -O2 -pedantic -Wreturn-type -Wunused -Wformat -Wtraditional \
-Wpointer-arith -Wconversion -Waggregate-return \
#-Wimplicit -Wshadow -Wid-clash-6 #-Wuninitialized
# The place to put your favourite extra cc flag
CFLAGS0 = -O #$(GCC_WARNINGS)
LDFLAGS0= -s
# Read my libs :-)
LIBS=
CFLAGS1 = $(CFLAGS0) #-posix -Xp
LDFLAGS1= $(LDFLAGS0) $(LIBS) #-lcposix
####CC = cc # gcc
# object file extension
O = o
RM = /bin/rm -f
MV = mv -f
LN = ln
BSHELL = /bin/sh
INSTALL = cp
DEVNULL = /dev/null
STRIP = strip
MKDIRS = new/mkinstalldirs
SUBDIRS = src man
BINSS = procmail lockfile formail mailstat
MANS1S = procmail formail lockfile
MANS5S = procmailrc procmailsc procmailex
# Possible locations for the sendmail.cf file
SENDMAILCFS = /etc/mail/sendmail.cf /etc/sendmail.cf /usr/lib/sendmail.cf
# Makefile - mark, don't (re)move this, a sed script needs it
all: init
$(MAKE) make $@
make:
@$(BSHELL) -c "exit 0"
.PRECIOUS: Makefile
init:
$(BSHELL) ./initmake $(BSHELL) "$(SHELL)" "$(RM)" "$(MV)" "$(LN)" \
"$(SEARCHLIBS)" \
"$(LIBPATHS)" \
$(DEVNULL) "$(MAKE)" $(O) \
"$(CC)" "$(CFLAGS1)" "$(LDFLAGS1)" "$(BINSS)" \
"$(MANS1S)" \
"$(MANS5S)" "$(SUBDIRS)" \
"$(VISIBLE_BINDIR)" \
"$(STRIP)"
makefiles makefile Makefiles Makefile: init
@$(BSHELL) -c "exit 0"
help target targets \
bins mans install.bin install.man install recommend install-suid clean setid \
realclean veryclean clobber deinstall autoconf.h $(BINSS) multigram: init
$(MAKE) make $@