blob: 9f41fcd19346dfa4666a8e0fce396d219aa44143 [file] [log] [blame]
# Makefile -- Makefile for util-linux Linux utilities
# Created: Sat Dec 26 20:09:40 1992
# Revised: Sun Nov 10 20:28:43 1996 by faith@cs.unc.edu
# Copyright 1992, 1993, 1994, 1995 Rickard E. Faith (faith@cs.unc.edu)
#
# Suggested changed from Bauke Jan Douma <bjdouma@xs4all.nl> have been
# implemented to handle shadow and sysvinit systems
include ../MCONFIG
# Where to put man pages?
MAN1.MISC= last.1 mesg.1 wall.1
MAN1.PUTILS= chfn.1 chsh.1 login.1 newgrp.1
MAN1.PASSWD= passwd.1
MAN8.GETTY= agetty.8
MAN8.INIT= fastboot.8 fasthalt.8 halt.8 reboot.8 simpleinit.8 shutdown.8
MAN8.PUTILS= vipw.8 vigr.8
# Where to put binaries?
# See the "install" rule for the links. . .
SBIN.GETTY= agetty
SBIN.INIT= simpleinit shutdown
BIN.PUTILS= login
USRBIN.MISC= last mesg wall
USRBIN.PUTILS= chfn chsh newgrp
USRBIN.PASSWD= passwd
USRSBIN.PUTILS= vipw
ifeq "$(HAVE_LIBCRYPT)" "yes"
CRYPT=-lcrypt
endif
ifeq "$(HAVE_PAM)" "yes"
PAM=-lpam -ldl -lpam_misc
PAMFL=-DUSE_PAM=1
endif
ifeq "$(HAVE_SHADOW)" "no"
ifeq "$(HAVE_PAM)" "no"
ifeq "$(HAVE_PASSWD)" "no"
WHAT_TO_BUILD:=$(WHAT_TO_BUILD) all-passwd all-putils
WHAT_TO_INSTALL:=$(WHAT_TO_INSTALL) install-passwd install-putils
endif
else
WHAT_TO_BUILD:=$(WHAT_TO_BUILD) all-putils
WHAT_TO_INSTALL:=$(WHAT_TO_INSTALL) install-putils
endif
endif
ifeq "$(HAVE_SYSVINIT)" "no"
WHAT_TO_BUILD:=$(WHAT_TO_BUILD) all-init
WHAT_TO_INSTALL:=$(WHAT_TO_INSTALL) install-init
endif
ifeq "$(HAVE_SYSVINIT_UTILS)" "no"
WHAT_TO_BUILD:=$(WHAT_TO_BUILD) all-misc
WHAT_TO_INSTALL:=$(WHAT_TO_INSTALL) install-misc
endif
ifeq "$(HAVE_GETTY)" "no"
WHAT_TO_BUILD:=$(WHAT_TO_BUILD) all-getty
WHAT_TO_INSTALL:=$(WHAT_TO_INSTALL) install-getty
endif
all: $(WHAT_TO_BUILD)
all-passwd: $(USRBIN.PASSWD)
all-putils: $(BIN.PUTILS) $(USRBIN.PUTILS) $(USRSBIN.PUTILS)
all-init: $(SBIN.INIT)
all-getty: $(SBIN.GETTY)
all-misc: $(USRBIN.MISC)
# Rules for everything else
agetty.o: $(BSD)/pathnames.h
agetty: agetty.o
chfn: chfn.o islocal.o setpwnam.o
$(CC) -o $@ $^ $(CRYPT) $(PAM)
chsh: chsh.o islocal.o setpwnam.o
$(CC) -o $@ $^ $(CRYPT) $(PAM)
islocal.o: $(BSD)/pathnames.h
last.o: $(BSD)/pathnames.h
last: last.o $(BSD)/getopt.o
ifeq "$(HAVE_PAM)" "yes"
login: login.o
$(CC) -o $@ $^ $(CRYPT) $(PAM)
else
login: login.o checktty.o
$(CC) -o $@ $^ $(CRYPT)
endif
mesg: mesg.o $(BSD)/getopt.o $(BSD)/err.o
newgrp: newgrp.o
$(CC) -o $@ $^ $(CRYPT) $(PAM)
setpwnam.o: $(BSD)/pathnames.h
shutdown.o: $(BSD)/pathnames.h
shutdown: shutdown.o
simpleinit.o: $(BSD)/pathnames.h
simpleinit: simpleinit.o $(CRYPT)
vipw.o: $(BSD)/pathnames.h
vipw: vipw.o
newgrp.o: $(BSD)/pathnames.h
$(CC) -c $(CFLAGS) $(PAMFL) newgrp.c
wall: wall.o ttymsg.o
ifeq "$(USE_TTY_GROUP)" "yes"
login.o: login.c $(BSD)/pathnames.h
$(CC) -c $(CFLAGS) $(PAMFL) -DUSE_TTY_GROUP login.c
mesg.o: mesg.c $(BSD)/err.h
$(CC) -c $(CFLAGS) -DUSE_TTY_GROUP mesg.c
else
login.o: $(BSD)/pathnames.h
$(CC) -c $(CFLAGS) $(PAMFL) login.c
mesg.o: $(BSD)/err.h
endif
passwd: passwd.o islocal.o setpwnam.o $(CRYPT)
passwd.o: passwd.c
$(CC) -c $(CFLAGS) passwd.c
ifeq "$(REQUIRE_PASSWORD)" "yes"
CHSH_FLAGS:=$(CHSH_FLAGS) -DREQUIRE_PASSWORD
endif
ifeq "$(ONLY_LISTED_SHELLS)" "yes"
CHSH_FLAGS:=$(CHSH_FLAGS) -DONLY_LISTED_SHELLS
endif
chsh.o: chsh.c
$(CC) -c $(CFLAGS) $(PAMFL) $(CHSH_FLAGS) chsh.c
chfn.o: chfn.c
$(CC) -c $(CFLAGS) $(PAMFL) $(CHSH_FLAGS) chfn.c
install: all $(WHAT_TO_INSTALL)
install-putils: $(BIN.PUTILS) $(USRBIN.PUTILS) $(USRSBIN.PUTILS)
$(INSTALLDIR) $(BINDIR) $(USRBINDIR) $(USRSBINDIR)
$(INSTALLSUID) $(BIN.PUTILS) $(BINDIR)
$(INSTALLSUID) $(USRBIN.PUTILS) $(USRBINDIR)
$(INSTALLBIN) $(USRSBIN.PUTILS) $(USRSBINDIR)
(cd $(USRSBINDIR); ln -sf vipw vigr)
$(INSTALLDIR) $(MAN1DIR) $(MAN8DIR)
$(INSTALLMAN) $(MAN1.PUTILS) $(MAN1DIR)
$(INSTALLMAN) $(MAN8.PUTILS) $(MAN8DIR)
install-passwd: $(USRBIN.PASSWD)
$(INSTALLDIR) $(USRBINDIR)
$(INSTALLSUID) $(USRBIN.PASSWD) $(USRBINDIR)
$(INSTALLDIR) $(MAN1DIR)
$(INSTALLMAN) $(MAN1.PASSWD) $(MAN1DIR)
install-init: $(SBIN.INIT)
$(INSTALLDIR) $(SBINDIR)
$(INSTALLBIN) $(SBIN.INIT) $(SBINDIR)
$(INSTALLDIR) $(MAN8DIR)
$(INSTALLMAN) $(MAN8.INIT) $(MAN8DIR)
# Make *relative* links for these
(cd $(SHUTDOWNDIR); ln -sf shutdown reboot)
(cd $(SHUTDOWNDIR); ln -sf shutdown fastboot)
(cd $(SHUTDOWNDIR); ln -sf shutdown halt)
(cd $(SHUTDOWNDIR); ln -sf shutdown fasthalt)
install-getty: $(SBIN.GETTY)
$(INSTALLDIR) $(SBINDIR)
$(INSTALLBIN) $(SBIN.GETTY) $(SBINDIR)
$(INSTALLDIR) $(MAN8DIR)
$(INSTALLMAN) $(MAN8.GETTY) $(MAN8DIR)
install-misc: $(USRBIN.MISC)
$(INSTALLDIR) $(USRBINDIR)
$(INSTALLBIN) $(USRBIN.MISC) $(USRBINDIR)
$(INSTALLDIR) $(MAN1DIR)
$(INSTALLMAN) $(MAN1.MISC) $(MAN1DIR)
ifeq "$(USE_TTY_GROUP)" "yes"
chgrp tty $(USRBINDIR)/wall
chmod g+s $(USRBINDIR)/wall
endif
.PHONY: clean
clean:
-rm -f *.o *~ core $(BIN.PASSWD) $(SBIN.GETTY) $(SBIN.INIT) \
$(USRBIN.MISC) $(USRBIN.PASSWD) $(USRBIN.PUTILS) \
$(USRSBIN.PUTILS) $(BIN.PUTILS)