############################
# fcron's Makefile ########
############################
# @configure_input@
# $Id: Makefile.in,v 1.107 2007/01/01 19:05:06 thib Exp thib $
# The following should not be edited manually (use configure options)
# If you must do it, BEWARE : some of the following is also defined
# in config.h, so you must modify config.h AND Makefile in order
# to set the same values in the two files.
FCRON_ALLOW = fcron.allow
FCRON_DENY = fcron.deny
FCRON_CONF = fcron.conf
SRCDIR := @srcdir@
# Useful to build packages
# you may want to use this var with a : 'make DESTDIR=dir install'
DESTDIR :=
# Where should we install it ?
prefix = @prefix@
exec_prefix = @exec_prefix@
DESTSBIN = @sbindir@
DESTBIN = @bindir@
ETC = @sysconfdir@
FCRONTABS = @FCRONTABS@
PIDDIR = @PIDDIR@
FIFODIR = @FIFODIR@
PIDFILE = @PIDFILE@
FIFOFILE = @FIFOFILE@
FCRON_SHELL = @FCRON_SHELL@
SENDMAIL = @SENDMAIL@
FCRON_EDITOR = @FCRON_EDITOR@
OPTIM := @CFLAGS@
LDFLAGS := @LDFLAGS@
CPPFLAGS := @CPPFLAGS@ -I. -I${SRCDIR}
LIBS := @LIBS@
LIBOBJS := @LIBOBJS@
DEFS := @DEFS@
CC := @CC@
INSTALL := @INSTALL@
ROOTNAME := @ROOTNAME@
ROOTGROUP := @ROOTGROUP@
USERNAME := @USERNAME@
GROUPNAME := @GROUPNAME@
SYSFCRONTAB := @SYSFCRONTAB@
DEBUG := @DEBUG@
BOOTINSTALL := @BOOTINSTALL@
ANSWERALL := @ANSWERALL@
USEPAM := @USEPAM@
FCRONDYN := @FCRONDYN@
# Options
# -DDEBUG even more verbose
# -DCHECKJOBS send a mail containing the exact shell command
# for each execution of each job.
# -DFOREGROUND=[0|1] default run in foreground ?
#OPTION= -DCHECKJOBS
#OPTION= -O3 -mcpu=i686
OPTION :=
####################################
# Should not be changed under this #
####################################
VERSION := @VERSION@
CFLAGS += $(OPTIM) $(OPTION) $(DEFS) $(CPPFLAGS)
ifeq ($(FCRONDYN), 1)
LIBOBJS := socket.o $(LIBOBJS)
endif
OBJSD := fcron.o subs.o save.o temp_file.o log.o database.o job.o conf.o $(LIBOBJS)
OBJSTAB := fcrontab.o subs.o save.o temp_file.o log.o fileconf.o allow.o read_string.o
OBJSDYN := fcrondyn.o subs.o log.o allow.o read_string.o
OBJCONV := convert-fcrontab.o subs.o save.o log.o
OBJSIG := fcronsighup.o subs.o log.o allow.o
HEADERSALL := config.h $(SRCDIR)/global.h $(SRCDIR)/log.h $(SRCDIR)/subs.h $(SRCDIR)/save.h $(SRCDIR)/option.h $(SRCDIR)/dyncom.h
# this is a regular expression :
# do not ci automaticaly generated files and doc (done by doc's Makefile)
RCSNOCI:=.*\(.html\|VERSION\|MANIFEST\|configure\|install.sh\|config.log\|config.status\|config.h\|config.cache\|Makefile\|doc.*\|CVS.*\)
RUN_NON_PRIVILEGED := @RUN_NON_PRIVILEGED@
ifeq ($(RUN_NON_PRIVILEGED), 1)
BINMODE:=111
BINMODESIGHUP:=111
else
BINMODE:=6111
BINMODESIGHUP:=4110
endif
ifeq ($(FCRONDYN), 1)
all: fcron fcrontab fcrondyn convert-fcrontab files/fcron.conf
else
all: fcron fcrontab convert-fcrontab files/fcron.conf
endif
fcron: $(OBJSD)
$(CC) $(CFLAGS) -o $@ $(OBJSD) $(LIBS)
fcrontab: fcronsighup $(OBJSTAB)
$(CC) $(CFLAGS) -o $@ $(OBJSTAB) $(LIBS)
fcrondyn: $(OBJSDYN)
$(CC) $(CFLAGS) -o $@ $(OBJSDYN) $(LIBS)
fcronsighup: $(OBJSIG)
$(CC) $(CFLAGS) -o $@ $(OBJSIG) $(LIBS)
convert-fcrontab: $(OBJCONV)
$(CC) $(CFLAGS) -o $@ $(OBJCONV) $(LIBS)
%.o: $(SRCDIR)/%.c $(HEADERSALL) $(SRCDIR)/%.h
$(CC) $(CFLAGS) -DPIDFILE="\"${PIDFILE}\"" \
-DFIFOFILE="\"${FIFOFILE}\"" -DETC="\"${ETC}\"" \
-DFCRON_SHELL="\"${FCRON_SHELL}\"" -DFCRON_CONF="\"${FCRON_CONF}\"" \
-DFCRONTABS="\"${FCRONTABS}\"" \
-DFCRON_ALLOW="\"${FCRON_ALLOW}\"" -DFCRON_DENY="\"${FCRON_DENY}\"" \
-DFCRON_SHELL="\"${FCRON_SHELL}\"" -DSENDMAIL="\"${SENDMAIL}\"" \
-DFCRON_EDITOR="\"${FCRON_EDITOR}\"" -DBINDIREX="\"${DESTBIN}\"" \
-c $<
install: install-staged strip perms
ifeq ($(BOOTINSTALL), 1)
$(SRCDIR)/script/boot-install "$(INSTALL) -o $(ROOTNAME)" $(DESTSBIN) $(DEBUG) $(FCRONTABS) $(ANSWERALL) $(SRCDIR)
endif
install-staged: all
# needed by boot-install script :
echo `fcron -V 2>&1 | grep "^fcron "` > PREVIOUS_VERSION && chmod a+rw PREVIOUS_VERSION
$(SRCDIR)/script/user-group $(USERNAME) $(GROUPNAME) $(ANSWERALL) $(SRCDIR)
# check if the directories we use exist, and if not, create them
if test ! -d $(DESTDIR)$(DESTSBIN); then $(INSTALL) -m 755 -d $(DESTDIR)$(DESTSBIN) ; fi
if test ! -d $(DESTDIR)$(DESTBIN); then $(INSTALL) -m 755 -d $(DESTDIR)$(DESTBIN) ; fi
if test ! -d $(DESTDIR)$(ETC); then $(INSTALL) -m 755 -d $(DESTDIR)$(ETC) ; fi
if test ! -d $(DESTDIR)$(PIDDIR); then $(INSTALL) -m 755 -d $(DESTDIR)$(PIDDIR) ; fi
if test ! -d $(DESTDIR)$(FIFODIR); then $(INSTALL) -m 755 -d $(DESTDIR)$(FIFODIR) ; fi
# create the spool dir
$(INSTALL) -m 755 -d $(DESTDIR)$(FCRONTABS)
$(INSTALL) -m 755 fcron $(DESTDIR)$(DESTSBIN)
$(INSTALL) -m 755 fcrontab $(DESTDIR)$(DESTBIN)
$(INSTALL) -m 755 fcronsighup $(DESTDIR)$(DESTBIN)
ifeq ($(FCRONDYN), 1)
$(INSTALL) -m 755 fcrondyn $(DESTDIR)$(DESTBIN)
endif
test -f $(DESTDIR)$(ETC)/fcron.allow || test -f $(DESTDIR)$(ETC)/fcron.deny || $(INSTALL) -m 644 $(SRCDIR)/files/fcron.allow $(SRCDIR)/files/fcron.deny $(DESTDIR)$(ETC)
test -f $(DESTDIR)$(ETC)/fcron.conf || $(INSTALL) -m 644 files/fcron.conf $(DESTDIR)$(ETC)
make -C doc install-staged
perms:
# Note : we don't use "chown user:group file" because some systems use ":"
# and others "." as separator.
chown $(ROOTNAME) $(DESTDIR)$(DESTSBIN)
chgrp $(ROOTGROUP) $(DESTDIR)$(DESTSBIN)
chown $(ROOTNAME) $(DESTDIR)$(DESTBIN)
chgrp $(ROOTGROUP) $(DESTDIR)$(DESTBIN)
chown $(ROOTNAME) $(DESTDIR)$(ETC)
chgrp $(ROOTGROUP) $(DESTDIR)$(ETC)
chown $(ROOTNAME) $(DESTDIR)$(FIFODIR)
chgrp $(ROOTGROUP) $(DESTDIR)$(FIFODIR)
chown $(ROOTNAME) $(DESTDIR)$(PIDDIR)
chgrp $(ROOTGROUP) $(DESTDIR)$(PIDDIR)
# change spool dir mode
chown $(USERNAME) $(DESTDIR)$(FCRONTABS)
chgrp $(GROUPNAME) $(DESTDIR)$(FCRONTABS)
chmod 770 $(DESTDIR)$(FCRONTABS)
chown $(ROOTNAME) $(DESTDIR)$(DESTSBIN)/fcron
chgrp $(ROOTGROUP) $(DESTDIR)$(DESTSBIN)/fcron
chmod 110 $(DESTDIR)$(DESTSBIN)/fcron
chown $(USERNAME) $(DESTDIR)$(DESTBIN)/fcrontab
chgrp $(GROUPNAME) $(DESTDIR)$(DESTBIN)/fcrontab
chmod $(BINMODE) $(DESTDIR)$(DESTBIN)/fcrontab
chown $(ROOTNAME) $(DESTDIR)$(DESTBIN)/fcronsighup
chgrp $(GROUPNAME) $(DESTDIR)$(DESTBIN)/fcronsighup
chmod $(BINMODESIGHUP) $(DESTDIR)$(DESTBIN)/fcronsighup
ifeq ($(FCRONDYN), 1)
chown $(USERNAME) $(DESTDIR)$(DESTBIN)/fcrondyn
chgrp $(GROUPNAME) $(DESTDIR)$(DESTBIN)/fcrondyn
chmod $(BINMODE) $(DESTDIR)$(DESTBIN)/fcrondyn
endif
chown $(ROOTNAME) $(DESTDIR)$(ETC)/fcron.allow $(DESTDIR)$(ETC)/fcron.deny
chgrp $(GROUPNAME) $(DESTDIR)$(ETC)/fcron.allow $(DESTDIR)$(ETC)/fcron.deny
chmod 640 $(DESTDIR)$(ETC)/fcron.allow $(DESTDIR)$(ETC)/fcron.deny
chown $(ROOTNAME) $(DESTDIR)$(ETC)/fcron.conf
chgrp $(GROUPNAME) $(DESTDIR)$(ETC)/fcron.conf
chmod 640 $(DESTDIR)$(ETC)/fcron.conf
ifeq ($(USEPAM), 1)
$(SRCDIR)/script/install-pam-conf $(SRCDIR) $(DESTDIR)$(ETC) $(ROOTNAME) $(ROOTGROUP) "$(INSTALL)"
endif
# in order to get correct rights when upgrading :
find $(DESTDIR)$(FCRONTABS) -type f \( -name "*.orig" -a ! -name "$(ROOTNAME).orig" -a ! -name "$(SYSFCRONTAB).orig" \) -exec chown $(USERNAME) {} \; -exec chgrp $(GROUPNAME) {} \; -exec chmod 640 {} \;
find $(DESTDIR)$(FCRONTABS) -type f \( -name "$(ROOTNAME).orig" -o -name "$(SYSFCRONTAB).orig" \) -exec chown $(ROOTNAME) {} \; -exec chgrp $(GROUPNAME) {} \; -exec chmod 600 {} \;
find $(DESTDIR)$(FCRONTABS) -type f ! -name "*.orig" -exec chown $(ROOTNAME) {} \; -exec chgrp $(ROOTGROUP) {} \; -exec chmod 600 {} \;
make -C doc perms
# strip executables
strip:
strip $(DESTDIR)$(DESTSBIN)/fcron
strip $(DESTDIR)$(DESTBIN)/fcrontab
strip $(DESTDIR)$(DESTBIN)/fcronsighup
ifeq ($(FCRONDYN), 1)
strip $(DESTDIR)$(DESTBIN)/fcrondyn
endif
install-boot: install
$(SRCDIR)/script/boot-install "$(INSTALL) -o $(ROOTNAME)" $(DESTSBIN) $(DEBUG) $(FCRONTABS) $(ANSWERALL) $(SRCDIR)
install-restart: install
ifeq ($(DEBUG), 1)
kill -TERM `pidof fcron` || exit 0
/etc/init.d/fcron restart
endif
uninstall:
rm -f $(DESTDIR)$(DESTSBIN)/fcron
rm -f $(DESTDIR)$(DESTBIN)/fcrontab
rm -f $(DESTDIR)$(DESTBIN)/fcronsighup
rm -f $(DESTDIR)$(DESTBIN)/fcrondyn
make -C doc uninstall
$(SRCDIR)/script/boot-uninstall
clean:
rm -f *.o core
rm -f fcron fcrontab fcrondyn fcronsighup convert-fcrontab files/fcron.conf
make -C doc clean
ciclean: clean
find ./ -name "*~" -exec rm -f {} \;
rm -fR autom4te*
vclean: ciclean
rm -f config.log config.status config.h config.cache Makefile PREVIOUS_VERSION
make -C doc clean
files/fcron.conf: $(SRCDIR)/files/fcron.conf.in config.h
if test ! -d files; then mkdir files ; fi
$(SRCDIR)/script/gen-in.pl $(SRCDIR)/files/fcron.conf.in files/fcron.conf ./
updatedoc:
make -C doc doc
configure: configure.in
# update configure script, then Makefile and config.h, and finally
# run make tar using the new Makefile (needed because the version
# is set in the configure.in file)
autoconf
./configure
@($(MAKE) tar && \
echo "---------------------------------------------" && \
echo "Success !" && \
echo "(Please ignore the following make error" && \
echo " and run your latest make command again)" && \
echo "---------------------------------------------" && \
exit 999)
ci: ciclean
# the symbolic links verX_X_X has been created since version 2.9.4
@(find ./ -type f ! -regex '.*RCS.*' ! -regex "$(RCSNOCI)" \
-exec ci -l -Nver`echo $(VERSION) | tr '.' '_'` {} \;)
# ci the doc files
make -C doc ci
tar: configure updatedoc vclean ci
echo $(VERSION) > ./VERSION
make -C doc tarclean
@(find ./ -type f ! -regex '.*RCS.*' ! -regex '.*CVS.*' | \
sed -e "s:^\./:fcron-$(VERSION)/:" > MANIFEST)
@(cd ..; ln -s fcron fcron-$(VERSION))
(cd ..; tar -czvf fcron-$(VERSION).src.tar.gz `cat fcron/MANIFEST`)
@(cd ..; rm -f fcron-$(VERSION))
@(cd ..; mv -f fcron-$(VERSION).src.tar.gz old-fcron-pkg/)
syntax highlighted by Code2HTML, v. 0.9.1