Home | History | Annotate | Line # | Download | only in dist
      1 #/* Copyright 1988,1990,1993,1994 by Paul Vixie
      2 # * All rights reserved
      3 # */
      4 
      5 ##
      6 ## Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
      7 ## Copyright (c) 1997,2000 by Internet Software Consortium, Inc.
      8 ##
      9 ## Permission to use, copy, modify, and distribute this software for any
     10 ## purpose with or without fee is hereby granted, provided that the above
     11 ## copyright notice and this permission notice appear in all copies.
     12 ##
     13 ## THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
     14 ## WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     15 ## MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
     16 ## ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     17 ## WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
     18 ## ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
     19 ## OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     20 ##
     21 
     22 # Makefile for ISC cron
     23 #
     24 # Id: Makefile,v 1.9 2004/01/23 18:56:42 vixie Exp
     25 #
     26 # vix 03mar88 [moved to RCS, rest of log is in there]
     27 # vix 30mar87 [goodbye, time.c; hello, getopt]
     28 # vix 12feb87 [cleanup for distribution]
     29 # vix 30dec86 [written]
     30 
     31 # NOTES:
     32 #	'make' can be done by anyone
     33 #	'make install' must be done by root
     34 #
     35 #	this package needs getopt(3), bitstring(3), and BSD install(8).
     36 #
     37 #	the configurable stuff in this makefile consists of compilation
     38 #	options (use -O, cron runs forever) and destination directories.
     39 #	SHELL is for the 'augumented make' systems where 'make' imports
     40 #	SHELL from the environment and then uses it to run its commands.
     41 #	if your environment SHELL variable is /bin/csh, make goes real
     42 #	slow and sometimes does the wrong thing.  
     43 #
     44 #	this package needs the 'bitstring macros' library, which is
     45 #	available from me or from the comp.sources.unix archive.  if you
     46 #	put 'bitstring.h' in a non-standard place (i.e., not intuited by
     47 #	cc(1)), you will have to define INCLUDE to set the include
     48 #	directory for cc.  INCLUDE should be `-Isomethingorother'.
     49 #
     50 #	there's more configuration info in config.h; edit that first!
     51 
     52 #################################### begin configurable stuff
     53 #<<DESTROOT is assumed to have ./etc, ./bin, and ./man subdirectories>>
     54 DESTROOT	=	$(DESTDIR)/usr
     55 DESTSBIN	=	$(DESTROOT)/sbin
     56 DESTBIN		=	$(DESTROOT)/bin
     57 DESTMAN		=	$(DESTROOT)/share/man
     58 #<<need bitstring.h>>
     59 INCLUDE		=	-I.
     60 #INCLUDE	=
     61 #<<need getopt()>>
     62 LIBS		= -lutil
     63 #<<optimize or debug?>>
     64 #CDEBUG		=	-O
     65 CDEBUG		=	-g
     66 #<<lint flags of choice?>>
     67 LINTFLAGS	=	-hbxa $(INCLUDE) $(DEBUGGING)
     68 #<<want to use a nonstandard CC?>>
     69 CC		=	gcc -Wall -Wno-unused -Wno-comment
     70 #<<manifest defines>>
     71 DEFS		=
     72 #(SGI IRIX systems need this)
     73 #DEFS		=	-D_BSD_SIGNALS -Dconst=
     74 #<<the name of the BSD-like install program>>
     75 #INSTALL = installbsd
     76 INSTALL = install
     77 #<<any special load flags>>
     78 LDFLAGS		=
     79 #################################### end configurable stuff
     80 
     81 SHELL		=	/bin/sh
     82 CFLAGS		=	$(CDEBUG) $(INCLUDE) $(DEFS)
     83 
     84 INFOS		=	README CHANGES FEATURES INSTALL CONVERSION THANKS MAIL
     85 MANPAGES	=	bitstring.3 crontab.5 crontab.1 cron.8 putman.sh
     86 HEADERS		=	bitstring.h cron.h config.h pathnames.h externs.h \
     87 			macros.h structs.h funcs.h globals.h
     88 SOURCES		=	cron.c crontab.c database.c do_command.c entry.c \
     89 			env.c job.c user.c popen.c misc.c pam_auth.c pw_dup.c
     90 SHAR_SOURCE	=	$(INFOS) $(MANPAGES) Makefile $(HEADERS) $(SOURCES)
     91 LINT_CRON	=	cron.c database.c user.c entry.c \
     92 			misc.c job.c do_command.c env.c popen.c pw_dup.c
     93 LINT_CRONTAB	=	crontab.c misc.c entry.c env.c
     94 CRON_OBJ	=	cron.o database.o user.o entry.o job.o do_command.o \
     95 			misc.o env.o popen.o pw_dup.o
     96 CRONTAB_OBJ	=	crontab.o misc.o entry.o env.o pw_dup.o closeall.o
     97 
     98 all		:	cron crontab
     99 
    100 lint		:
    101 			lint $(LINTFLAGS) $(LINT_CRON) $(LIBS) \
    102 			|grep -v "constant argument to NOT" 2>&1
    103 			lint $(LINTFLAGS) $(LINT_CRONTAB) $(LIBS) \
    104 			|grep -v "constant argument to NOT" 2>&1
    105 
    106 cron		:	$(CRON_OBJ)
    107 			$(CC) $(LDFLAGS) -o cron $(CRON_OBJ) $(LIBS)
    108 
    109 crontab		:	$(CRONTAB_OBJ)
    110 			$(CC) $(LDFLAGS) -o crontab $(CRONTAB_OBJ) $(LIBS)
    111 
    112 install		:	all
    113 			$(INSTALL) -c -m  111 -o root -s cron    $(DESTSBIN)/
    114 			$(INSTALL) -c -m 4111 -o root -s crontab $(DESTBIN)/
    115 #			$(INSTALL) -c -m  111 -o root -g crontab -s cron $(DESTSBIN)/
    116 #			$(INSTALL) -c -m 2111 -o root -g crontab -s crontab $(DESTBIN)/
    117 			sh putman.sh crontab.1 $(DESTMAN)
    118 			sh putman.sh cron.8    $(DESTMAN)
    119 			sh putman.sh crontab.5 $(DESTMAN)
    120 
    121 distclean	:	clean
    122 			rm -f *.orig *.rej *.BAK *.CKP *~ #*
    123 			rm -f a.out core tags
    124 
    125 clean		:
    126 			rm -f *.o
    127 			rm -f cron crontab
    128 
    129 tags		:;	ctags ${SOURCES}
    130 
    131 kit		:	$(SHAR_SOURCE)
    132 			shar $(SHAR_SOURCE) >kit
    133 
    134 $(CRON_OBJ)	:	cron.h config.h externs.h pathnames.h Makefile
    135 $(CRONTAB_OBJ)	:	cron.h config.h externs.h pathnames.h Makefile
    136