DIET=/opt/diet/bin/diet
DIETOS=$(DIET) -Os
TINYLDAP=../tinyldap
LDAPLIB=$(TINYLDAP)/ldap.a $(TINYLDAP)/asn1.a
LDAPINC=-I$(TINYLDAP)

all: data blog blog.cgi xmlrpc-ping

.PHONY:
clean:
	rm -f data blog blog.cgi perf.data perf.data.old *.da *.bbg *.bb *.gcov gmon.out *.gcda *.gcno core

blog: blog.c
	$(DIET) gcc -g -o $@ $^ $(LDAPINC) $(LDAPLIB) -lowfat -lz -lzstd

blog.cgi: blog.c
	$(DIETOS) gcc -o $@ $^ $(LDAPINC) $(LDAPLIB) -W -Wall -Wextra -lowfat -lz -lzstd
	strip -R .note -R .comment blog.cgi

miniz.o: miniz.c miniz.h
	$(DIETOS) gcc -fPIC -fpie -c miniz.c -ffunction-sections

.PHONY:
miniz: miniz.o
	$(DIETOS) gcc -fPIC -pie -o blog.cgi blog.c $(LDAPINC) $(LDAPLIB) -W -Wall -Wextra -lowfat miniz.o -DMINIZ -ffunction-sections -Wl,--gc-sections -Wl,-Map,mapfile

server:
	tcpserver -RHl localhost 127.0.0.1 389 $(TINYLDAP)/tinyldap

data: ldif
	$(TINYLDAP)/parse ldif data.new
	$(TINYLDAP)/addindex data.new dn h
	$(TINYLDAP)/addindex data.new danke if
	$(TINYLDAP)/addindex data.new ts f
	$(TINYLDAP)/acl data.new
	chmod a+r data.new
	mv -f data.new data
#	sh ping-all

.PHONY:
join: ldif journal
	(sed '/dn: ts/,$$ d' < ldif; ../tinyldap/ldapclient 127.0.0.1 'ou=blog,d=fefe,c=de' '(objectClass=*)' objectClass ts danke img text href) > ldif.new

update:
	ln -f blog.cgi ~/blog.fefe.de:80/index.html

xmlrpc-ping: xmlrpc-ping.c
	$(DIETOS) gcc -s -o $@ $^
