|
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`;
|