summaryrefslogtreecommitdiff
path: root/MCONFIG
blob: 7f7ad581b4a12012d4d62bdc1902099774f25dfd (plain)
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
# MCONFIG -- Configuration stuff for util-linux
# Created: Sat Feb  4 15:50:30 1995
# Copyright 1995 Rickard E. Faith (faith@cs.unc.edu)

# For a user-mode install, make (at least) three changes:
#  - remove the `-o root' part in INSTALLSUID
#  - set USE_TTY_GROUP=no
#  - define DESTDIR

# Select for ARCH one of intel, alpha, sparc, arm, m68k, mips
# Select for CPU i386 if the binaries must be able to run on an intel 386
# (by default i486 code is generated, see below)
CPU=$(shell uname -m)
ARCH=$(shell echo $(CPU) | sed 's/i.86/intel/;s/arm.*/arm/')

# If HAVE_PAM is set to "yes", then login, chfn, chsh, and newgrp
# will use PAM for authentication. Additionally, passwd will not be
# installed as it is not PAM aware.
HAVE_PAM=no

# If HAVE_SHADOW is set to "yes", then login, chfn, chsh, newgrp, passwd,
# and vipw will not be built or installed from the login-utils
# subdirectory.  
HAVE_SHADOW=yes

# If HAVE_PASSWD is set to "yes", then passwd will not be built or
# installed from the login-utils subdirectory (but login, chfn, chsh,
# newgrp, and vipw *will* be installed).
HAVE_PASSWD=no

# If you use chfn and chsh from this package, REQUIRE_PASSWORD will require
# non-root users to enter the account password before updating /etc/passwd.
REQUIRE_PASSWORD=yes
#REQUIRE_PASSWORD=no

# If you use chsh from this package, ONLY_LISTED_SHELLS will require that
# the selected shell be listed in /etc/shells -- otherwise only a warning is
# printed.  This prevents someone from setting their shell to /bin/false.
ONLY_LISTED_SHELLS=yes
#ONLY_LISTED_SHELLS=no


# If HAVE_SYSVINIT is set to "yes", then simpleinit and shutdown will not
# be built or installed from the login-utils subdirectory.  (The shutdown
# and halt that come with the SysVinit package should be used with the init
# found in that package.)
HAVE_SYSVINIT=yes

# If HAVE_SYSVINIT_UTILS is set to "yes", then last, mesg, and wall will
# not be built or installed from the login-utils subdirectory.  (The
# shutdown and init from the SysVinit package do not depend on the last,
# mesg, and wall from that package.)
HAVE_SYSVINIT_UTILS=yes

# If HAVE_WRITE is set to "yes", then write will not be built or
# installed from the misc-utils subdirectory.
# (There is a network aware write in netwrite from NetKit 0.16 or later.)
HAVE_WRITE=no

# If HAVE_GETTY is set to "yes", then agetty will not be built or
# installed from the login-utils subdirectory.  Note that agetty can
# co-exist with other gettys, so this option should never be used.
HAVE_GETTY=no

# If USE_TTY_GROUP is set to "yes", then wall and write will be installed
# setgid to the "tty" group, and mesg will only set the group write bit.
# Note that this is only useful if login/xterm/etc. change the group of the
# user's tty to "tty" [The login in util-linux does this correctly, and
# xterm will do it correctly if X is compiled with USE_TTY_GROUP set
# properly.]
USE_TTY_GROUP=yes

# If HAVE_KILL is set to "yes", then kill will not be built or
# installed from the misc-utils subdirectory.
# (There is also a kill in the procps package.)
HAVE_KILL=no

# If ALLOW_VCS_USE is set to "yes", then login will chown /dev/vcsN
# to the current user, allowing her to make a screendump and do other
# nifty things on the console, but also allowing him to keep an open
# file descriptor after logging out to trick the next user.
ALLOW_VCS_USE=yes

# If HAVE_RESET is set to "yes", then reset won't be installed.  The version
# of reset that comes with the ncurses package is less aggressive.
HAVE_RESET=yes

# If HAVE_SLN is set to "yes", then sln won't be installed
# (but the man page sln.8 will be installed anyway).
# sln also comes with libc and glibc.
HAVE_SLN=no

# If HAVE_FDUTILS is set to "yes", then setfdprm won't be installed.
HAVE_FDUTILS=no

# If SILENT_PG is set to "yes", then pg will not ring the bell
# when an invalid key is pressed
SILENT_PG=no

# If configure decides that Native Language Support (NLS) is available,
# it sets MAY_ENABLE_NLS in defines.h. If you don't want NLS, set
# DISABLE_NLS to "yes".
DISABLE_NLS=no

# Different optimizations for different cpus.
# gcc 3.0 likes options -mcpu=i486 instead of -m486
ifeq "$(ARCH)" "intel"
  ifeq "$(HAVE_OLD_GCC)" "yes"
    CPUHEAD=-m
  else
    CPUHEAD=-mcpu=i
  endif
  ifeq "$(CPU)" "i386"
    CPUTAIL=386
  else
    CPUTAIL=486
  endif
  CPUOPT= $(CPUHEAD)$(CPUTAIL)
  OPT=          -pipe -O2 $(CPUOPT) -fomit-frame-pointer
else 
  ifeq "$(ARCH)" "arm"
    OPT=	-pipe -O2 -fsigned-char -fomit-frame-pointer
  else
    OPT=	-O2 -fomit-frame-pointer
  endif
endif

WARNFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes

LIB=../lib

ERR_O=$(LIB)/err.o

# Set HAVE_SLANG to yes if you have slang (and prefer to use that for cfdisk)
# (If neither HAVE_NCURSES nor HAVE_SLANG is defined, cfdisk is not made.)
# HAVE_SLANG=yes

# There is a subdirectory /usr/include/slang containing slcurses.h
# SLANGFLAGS=-I/usr/include/slang
# No such subdirectory - slcurses.h lives in /usr/include
#   (no extra definition required).
LIBSLANG=-lslang

#
# Paths used for compilation (not all are actually used, see CFLAGS below)
#
DEV_DIR=	/dev
ETC_DIR=	/etc
SBIN_DIR=	/sbin
USRSBIN_DIR=	/usr/sbin
USRLIB_DIR=	/usr/lib
USRBIN_DIR=	/usr/bin
USRGAMES_DIR=	/usr/games
USRSHAREMISC_DIR=/usr/share/misc
LOCALE_DIR=	/usr/share/locale
BIN_DIR=        /bin
VAR_PATH=	/var
LOG_DIR=	/var/log
MAN_DIR=	/usr/share/man
INFO_DIR=	/usr/share/info

# Directory for help file for more.  Used to be /usr/lib.
MOREHELP_DIR=	$(USRSHAREMISC_DIR)

#
# Paths used for install
#
DEVDIR=		$(DESTDIR)$(DEV_DIR)
ETCDIR=		$(DESTDIR)$(ETC_DIR)
SBINDIR=	$(DESTDIR)$(SBIN_DIR)
USRSBINDIR=	$(DESTDIR)$(USRSBIN_DIR)
USRLIBDIR=      $(DESTDIR)$(USRLIB_DIR)
USRBINDIR=      $(DESTDIR)$(USRBIN_DIR)
USRGAMESDIR=    $(DESTDIR)$(USRGAMES_DIR)
USRSHAREMISCDIR=$(DESTDIR)$(USRSHAREMISC_DIR)
LOCALEDIR=      $(DESTDIR)$(LOCALE_DIR)
BINDIR=         $(DESTDIR)$(BIN_DIR)
VARPATH=	$(DESTDIR)$(VAR_PATH)
LOGDIR=		$(DESTDIR)$(LOG_DIR)
MANDIR=		$(DESTDIR)$(MAN_DIR)
MAN1DIR=	$(MANDIR)/man1
MAN3DIR=	$(MANDIR)/man3
MAN5DIR=	$(MANDIR)/man5
MAN6DIR=	$(MANDIR)/man6
MAN8DIR=	$(MANDIR)/man8
INFODIR=	$(DESTDIR)$(INFO_DIR)

# Directory for shutdown, halt, reboot, etc.
SHUTDOWNDIR=	$(SBINDIR)

# Directory for help file for more.  Used to be /usr/lib.
MOREHELPDIR=	$(DESTDIR)$(MOREHELP_DIR)

# Modes
DIRMODE=	755
BINMODE=	755
MANMODE=	644
DATMODE=	644
INFOMODE=	644
SUIDMODE=      4755

CHMOD=		chmod
INSTALL=	install
INSTALLDIR=	$(INSTALL) -d -m $(DIRMODE)
INSTALLBIN=	$(INSTALL) -m $(BINMODE)
INSTALLMAN=	$(INSTALL) -m $(MANMODE)
INSTALLDAT=	$(INSTALL) -m $(DATMODE)
INSTALLSUID=    $(INSTALL) -m $(SUIDMODE) -o root

ifeq "$(DISABLE_NLS)" "yes"
NLSFLAGS = -DDISABLE_NLS
endif

CFLAGS := $(OPT) -I$(LIB) $(WARNFLAGS) \
			$(CURSESFLAGS) $(SLANGFLAGS) $(NLSFLAGS) \
			-D_FILE_OFFSET_BITS=64 \
			-DSBINDIR=\"$(SBIN_DIR)\" \
			-DUSRSBINDIR=\"$(USRSBIN_DIR)\" \
			-DLOGDIR=\"$(LOG_DIR)\" \
			-DVARPATH=\"$(VAR_PATH)\" \
			-DLOCALEDIR=\"$(LOCALE_DIR)\" \
			$(CFLAGS)


%.o: %.c
	$(CC) -c $(CFLAGS) $< -o $@

%: %.cc
	$(CXX) $(CFLAGS) $< -o $@