summaryrefslogblamecommitdiffstats
path: root/login-utils/Makefile
blob: d986501e13e8983705f90f2224bc91252574437c (plain) (tree)
1
2
3
4
5
6
7
8
9

                                                     
                                                       

                                                                      
                                                                      

                                                    
                       



                         
                                    
 

                                              
 
                        
 
                                                                               
                         
 
                             



                                           
                      
 
                                           
 
                     
 
                              
 

                                
 
                    
 
                             







                         
                          
                       


                                                                 
     



                                                  


                            

                                                

     



                                                
 










                                                            


                           










                                                                
                
                                              
                                                 
                                              
                                                 
            

                        

                                                 
    

                                                

     
                     
 
                 
                                                 
 
                                       
 
                                           

                                          
                  

                                 
            
 
                            

                                             
                                          
 
           
                             





                                     
                                                                               


                                                         
                            
                                               
 
                                                  
                                          









                                              
                                                        

              
                                                        
 

                               

                                                                
                                             

                                                     
                                            
                                           














                                                    



                                                     





                                                                
















                                                 


             


                                                                     
# 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 changes from Bauke Jan Douma <bjdouma@xs4all.nl> have been
# implemented to handle shadow and sysvinit systems 

include ../make_include
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 \
		initctl.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 initctl

BIN.PUTILS=	login

USRBIN.MISC=	last mesg wall

USRBIN.PUTILS=	chfn chsh newgrp
USRBIN.PASSWD=	passwd

USRSBIN.PUTILS=	vipw

ifeq "$(NEED_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

checktty.o login.o: login.h
cryptocard.o login.o: cryptocard.h
chfn.o chsh.o islocal.o passwd.o: islocal.h
chfn.o chsh.o passwd.o setpwnam.o vipw.o: setpwnam.h
chfn.o chsh.o login.o newgrp.o passwd.o simpleinit.o: my_crypt.h
initctl.o simpleinit.o: simpleinit.h
agetty.o islocal.o last.o setpwnam.o shutdown.o simpleinit.o \
	vipw.o: $(LIB)/pathnames.h
shutdown.o simpleinit.o: $(LIB)/linux_reboot.h
wall.o: ttymsg.h $(LIB)/carefulputc.h

agetty: agetty.o
chfn: chfn.o islocal.o setpwnam.o $(LIB)/env.o
	$(CC) $(LDFLAGS) -o $@ $^ $(CRYPT) $(PAM)
chsh: chsh.o islocal.o setpwnam.o $(LIB)/env.o
	$(CC) $(LDFLAGS) -o $@ $^ $(CRYPT) $(PAM)
last: last.o

ifeq "$(HAVE_PAM)" "yes"
login: login.o $(LIB)/setproctitle.o
	$(CC) $(LDFLAGS) -o $@ $^ $(CRYPT) $(PAM)
else
login: login.o $(LIB)/setproctitle.o checktty.o 
	$(CC) $(LDFLAGS) -o $@ $^ $(CRYPT) 
endif

mesg: mesg.o $(ERR_O)

newgrp: newgrp.o 
	$(CC) $(LDFLAGS) -o $@ $^ $(CRYPT) $(PAM)

shutdown: shutdown.o $(LIB)/my_reboot.o

simpleinit: simpleinit.o $(LIB)/my_reboot.o
	$(CC) $(LDFLAGS) -o $@ $^ $(CRYPT)

initctl: initctl.o
	$(CC) $(LDFLAGS) -o $@ $^

vipw: vipw.o

newgrp.o: $(LIB)/pathnames.h
	$(CC) -c $(CFLAGS) $(PAMFL) newgrp.c 

wall: wall.o ttymsg.o $(LIB)/carefulputc.o

LOGINFLAGS=
ifeq "$(USE_TTY_GROUP)" "yes"
	LOGINFLAGS += -DUSE_TTY_GROUP
endif
ifeq "$(ALLOW_VCS_USE)" "yes"
	LOGINFLAGS += -DCHOWNVCS
endif

login.o: login.c $(LIB)/pathnames.h $(LIB)/setproctitle.c $(LIB)/setproctitle.h
	$(CC) -c $(CFLAGS) $(PAMFL) $(LOGINFLAGS) login.c

# LOGINFLAGS here only for -DUSE_TTY_GROUP
mesg.o: mesg.c $(LIB)/errs.h
	$(CC) -c $(CFLAGS) $(LOGINFLAGS) mesg.c

passwd: passwd.o islocal.o setpwnam.o $(LIB)/env.o
	$(CC) $(LDFLAGS) -o $@ $^ $(CRYPT)

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)
	$(INSTALLBIN) $(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)
	(cd $(SHUTDOWNDIR); ln -sf initctl need)
	(cd $(SHUTDOWNDIR); ln -sf initctl display-services)
	(cd $(SHUTDOWNDIR); ln -sf initctl provide)
	(cd $(MAN8DIR);     ln -sf initctl.8 need.8)
	(cd $(MAN8DIR);     ln -sf initctl.8 display-services.8)
	(cd $(MAN8DIR);     ln -sf initctl.8 provide.8)


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)