#!/usr/bin/make -f
# -*- makefile -*-

# The package build supports three optional features. To enable/disable them,
# modify DEB_BUILD_OPTIONS accordingly:
#  * PAM support        default: ON     disable: DEB_BUILD_OPTIONS=nopam
#  * SELinux support    default: ON     disable: DEB_BUILD_OPTIONS=noselinux
#  * audit support      default: OFF    enable:  DEB_BUILD_OPTIONS=withaudit
#
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

# Retrieve architecture-related variables
include /usr/share/dpkg/architecture.mk

# Enable cross-compiling support
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
export CC=$(DEB_HOST_GNU_TYPE)-gcc
endif

# Customize build flags
export DEB_CFLAGS_MAINT_APPEND += -Wall -Wno-unused -Wno-comment
export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# debug is disabled by default
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
  DEBUG_DEFS = -DDEBUGGING=1
else
  DEBUG_DEFS = -DDEBUGGING=0
endif
export DEBUG_DEFS

# PAM is enabled by default
ifeq (,$(findstring nopam,$(DEB_BUILD_OPTIONS)))
    PAM_DEFS = -DUSE_PAM
    PAM_LIBS = -lpam
    export PAM_DEFS PAM_LIBS
endif

# SELinux and audit are only available on Linux
ifeq ($(DEB_HOST_ARCH_OS), linux)
# SELinux is enabled by default
ifeq (,$(findstring noselinux,$(DEB_BUILD_OPTIONS)))
    SELINUX_DEFS = -DWITH_SELINUX
    SELINUX_LIBS = -lselinux
    export SELINUX_DEFS SELINUX_LIBS
endif

# audit is disabled by default
ifneq (,$(findstring withaudit,$(DEB_BUILD_OPTIONS)))
    AUDIT_DEFS = -DWITH_AUDIT
    AUDIT_LIBS = -laudit
    export AUDIT_DEFS AUDIT_LIBS
endif
endif # Linux


%:
	dh $@

override_dh_auto_clean:
	dh_auto_clean
	# remove the special version of cron wich does not wait before
	# executing crontabs
	rm -f cron_now*

override_dh_auto_build:
	dh_auto_build
	# prepare a special version of cron wich does not wait before
	# executing crontabs, and copy it to debian/tests
	python3 contrib/make_cron_now.py
	cc -g -O2 \
	  -ffile-prefix-map=/home/georgesk/developpement/cron/collab/cron=. \
	  -fstack-protector-strong -Wformat -Werror=format-security -Wall \
	  -Wno-unused -Wno-comment -I. -DPOSIX -DDEBUGGING=0 -DUSE_PAM \
	  -DWITH_SELINUX  -Wdate-time -D_FORTIFY_SOURCE=2  -c \
	  -o cron_now.o cron_now.c
	cc -Wl,-z,relro -Wl,-z,now -o cron_now cron_now.o \
	  database.o user.o entry.o job.o do_command.o misc.o env.o \
	  popen.o compat.o -lpam -lselinux

override_dh_auto_install:
	# Empty target to bypass the auto-detected install target in Makefile


COMMON_ETC = debian/cron-daemon-common/etc
# beginning with release 3.0pl1-139, the configuration files
# are managed by the package cron-daemon-common

override_dh_install-indep:
	install -m 644 debian/crontab.main $(COMMON_ETC)/crontab
	install -m 644 debian/placeholder $(COMMON_ETC)/cron.d/.placeholder
	install -m 644 debian/placeholder $(COMMON_ETC)/cron.hourly/.placeholder
	install -m 644 debian/placeholder $(COMMON_ETC)/cron.daily/.placeholder
	install -m 644 debian/placeholder $(COMMON_ETC)/cron.weekly/.placeholder
	install -m 644 debian/placeholder $(COMMON_ETC)/cron.monthly/.placeholder
	install -m 644 debian/placeholder $(COMMON_ETC)/cron.yearly/.placeholder
