Blame Makefile

Packit 96cac8
VERSION := $(shell dpkg-parsechangelog | sed -n 's/^Version: //p')
Packit 96cac8
Packit 96cac8
CC      ?= gcc
Packit 96cac8
CFLAGS  += -Wall -Wextra -D_REENTRANT -fpic
Packit 96cac8
Packit 96cac8
ifeq (,$(INSTALL_PROGRAM))
Packit 96cac8
    INSTALL_PROGRAM := "install"
Packit 96cac8
endif
Packit 96cac8
Packit 96cac8
prefix	= /usr
Packit 96cac8
libdir 	= $(prefix)/lib
Packit 96cac8
ifneq (,$(libarch))
Packit 96cac8
# The `*-*' pattern matches to both hurd-i386 and e.g. i386-linux-gnu
Packit 96cac8
marchpt = /*-*
Packit 96cac8
endif
Packit 96cac8
bindir	= $(prefix)/bin
Packit 96cac8
mandir	= $(prefix)/share/man
Packit 96cac8
Packit 96cac8
all compile: datefudge datefudge.so datefudge.1
Packit 96cac8
Packit 96cac8
install: datefudge datefudge.so datefudge.1
Packit 96cac8
	install -d $(DESTDIR)$(libdir)/$(libarch)/datefudge
Packit 96cac8
	$(INSTALL_PROGRAM) -o root -g root -m 644 datefudge.so $(DESTDIR)$(libdir)/$(libarch)/datefudge/datefudge.so
Packit 96cac8
	install -d $(DESTDIR)$(bindir)
Packit 96cac8
	$(INSTALL_PROGRAM) -o root -g root -m 755 datefudge $(DESTDIR)$(bindir)
Packit 96cac8
	install -d $(DESTDIR)$(mandir)/man1
Packit 96cac8
	install -o root -g root -m 644 datefudge.1 $(DESTDIR)$(mandir)/man1
Packit 96cac8
Packit 96cac8
datefudge: datefudge.sh
Packit 96cac8
datefudge.1: datefudge.man
Packit 96cac8
Packit 96cac8
datefudge datefudge.1:
Packit 96cac8
	sed -e 's,@VERSION@,$(VERSION),g; s,@MULTIARCH_PATTERN@,$(marchpt),g; s,@LIBDIR@,$(libdir),g;' \
Packit 96cac8
	< $< > $@
Packit 96cac8
Packit 96cac8
datefudge.so: datefudge.o
Packit 96cac8
	$(CC) $(LDFLAGS) -o $@ -shared $< -ldl -lc
Packit 96cac8
Packit 96cac8
datefudge.o: datefudge.c
Packit 96cac8
	$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
Packit 96cac8
Packit 96cac8
clean:
Packit 96cac8
	rm -f datefudge.o datefudge.so datefudge datefudge.1
Packit 96cac8
Packit 96cac8
# The first run may possibly fail when it's around midnight, that's why it's run twice.
Packit 96cac8
test: compile
Packit 96cac8
	@echo -n "Running a simple date test... "                                ;\
Packit 96cac8
	export TZ=UTC								 ;\
Packit 96cac8
	ret1=1; ret2=1                                                           ;\
Packit 96cac8
	for i in 1 2; do                                                         \
Packit 96cac8
	        export DATEFUDGE=`LC_ALL=C date --date='yesterday 0:00'  +%s`   ;\
Packit 96cac8
	        dt=`LC_ALL=C LD_PRELOAD=$(CURDIR)/datefudge.so date --date=12:15 +%F.%T` ;\
Packit 96cac8
	        exp="1970-01-02.12:15:00"                                       ;\
Packit 96cac8
	        [ "$$dt" != "$$exp" ] || { echo "OK"; ret1=0; break; }          ;\
Packit 96cac8
	        echo "failed: expected: $$exp, actual: $$dt"                    ;\
Packit 96cac8
	        [ $$i = 2 ] || { echo -n "   retrying... "; sleep 2; }          ;\
Packit 96cac8
	done                                                                    ;\
Packit 96cac8
	echo -n "Running a simple perl localtime() test... "                    ;\
Packit 96cac8
	pscr='@t=localtime(time);$$t[5]+=1900;$$t[4]++;printf "%04d-%02d-%02d\n",$$t[5],$$t[4],$$t[3];';\
Packit 96cac8
	for i in 1 2; do                                                         \
Packit 96cac8
	        export DATEFUDGE=`LC_ALL=C date --date='yesterday 0:00'  +%s`   ;\
Packit 96cac8
	        dt=`LD_PRELOAD=$(CURDIR)/datefudge.so perl -e "$$pscr"`         ;\
Packit 96cac8
	        exp="1970-01-02"                                                ;\
Packit 96cac8
	        [ "$$dt" != "$$exp" ] || { echo "OK"; ret2=0; break; }          ;\
Packit 96cac8
	        echo "failed: expected: $$exp, actual: $$dt"                    ;\
Packit 96cac8
	        [ $$i = 2 ] || { echo -n "   retrying... "; sleep 2; }          ;\
Packit 96cac8
	done                                                                    ;\
Packit 96cac8
	exit `expr $$ret1 + $$ret2`;