Files
mars-tinyldap/Makefile
leitner c52d6b8ad6 add clang static analyzer target in makefile
free hash table in addindex (not strictly necessary but shuts up memory leak false positives)
add openat to seccomp jail so glibc compiled tinyldap works, too
2018-09-02 10:49:05 +00:00

232 lines
8.5 KiB
Makefile

#DEBUG=1
#COVERAGE=1
all: libowfat-warning t1 t2 parse dumpidx idx2ldif addindex bindrequest tinyldap \
tinyldap_standalone tinyldap_debug ldapclient ldapclient_str \
md5password mysql2ldif acl dumpacls ldapdelete asn1dump tls.a x # t6 # t
pic pie:
$(MAKE) all PIC=-fPIC LDFLAGS=-fpie
asn1.a: fmt_asn1intpayload.o fmt_asn1length.o fmt_asn1tag.o \
fmt_asn1int.o fmt_asn1string.o fmt_asn1transparent.o scan_asn1tag.o \
scan_asn1length.o scan_asn1int.o scan_asn1string.o scan_asn1INTEGER.o \
scan_asn1STRING.o scan_asn1SEQUENCE.o scan_asn1ENUMERATED.o \
scan_asn1BOOLEAN.o scan_asn1rawint.o scan_asn1SET.o fmt_asn1sint.o \
fmt_asn1sintpayload.o scan_asn1oid.o scan_asn1BITSTRING.o \
scan_asn1tagint.o fmt_asn1tagint.o fmt_asn1OID.o scan_asn1generic.o \
fmt_asn1generic.o scan_asn1rawoid.o fmt_asn1bitstring.o asn1oid.o
ldap.a: scan_ldapmessage.o fmt_ldapmessage.o fmt_ldapbindrequest.o \
scan_ldapbindrequest.o scan_ldapbindresponse.o scan_ldapresult.o \
scan_ldapstring.o scan_ldapsearchfilter.o scan_ldapsearchrequest.o \
freefilter.o freeava.o scan_ldapava.o fmt_ldapsearchresultentry.o \
fmt_ldapstring.o freepal.o scan_ldapsearchresultentry.o \
fmt_ldapresult.o fmt_ldappal.o fmt_ldapadl.o fmt_ldapava.o \
fmt_ldapsearchfilter.o fmt_ldapsearchrequest.o matchstring.o \
matchprefix.o matchcasestring.o matchcaseprefix.o \
scan_ldapmodifyrequest.o scan_ldapaddrequest.o bstrlen.o bstrfirst.o \
bstrstart.o free_ldapadl.o free_ldappal.o free_ldapsearchfilter.o \
scan_ldapsearchfilterstring.o free_ldapsearchresultentry.o \
fmt_ldapsearchfilterstring.o ldap_match_sre.o \
fmt_ldapdeleterequest.o scan_ldapdeleterequest.o normalize_dn.o \
fmt_ldapmodifyrequest.o fmt_ldapaddrequest.o
ldif.a: ldif_parse.o ldap_match_mapped.o
storage.a: strstorage.o strduptab.o mstorage_add.o mduptab_add.o \
bstr_diff.o mduptab_adds.o bstr_diff2.o mstorage_add_bin.o \
mstorage_init.o mstorage_init_persistent.o mstorage_unmap.o \
mduptab_init.o mduptab_init_reuse.o mduptab_reset.o
auth.a: auth.o
tls.a: fmt_tls_clienthello.o init_tls_context.o \
fmt_tls_serverhello.o fmt_tls_alert.o fmt_tls_packet.o \
tls_cipherprio.o fmt_tls_alert_pkt.o fmt_tls_handshake_cert.o \
fmt_tls_handshake_certs_header.o fmt_tls_serverhellodone.o \
tls_accept.o tls_connect.o tls_doread.o tls_dowrite.o
DIET=/opt/diet/bin/diet -Os
CROSS=
#CROSS=i686-mingw32-
CC=$(CROSS)gcc
CFLAGS=-pipe -I. -Wall -W -Wextra
ifneq ($(DEBUG),)
DIET=/opt/diet/bin/diet
CFLAGS=-pipe -I. -Wall -W -Wextra -g -fstack-protector
endif
ifeq ($(COVERAGE),1)
DIET=
CFLAGS=-pipe -I. -g -fprofile-arcs -ftest-coverage
endif
CFLAGS+=$(PIC)
ifneq ($(DIET),)
LIBS+=-llatin1
else
LIBS+=-lcrypto -lcrypt
endif
ifeq ($(CROSS),i686-mingw32-)
EXE=.exe
endif
%.o: %.c
$(DIET) $(CC) $(CFLAGS) -c $<
%.a:
$(CROSS)ar cru $@ $^
%: %.c
$(DIET) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) -lowfat ${LIBS}
.PHONY: libowfat-warning
libowfat-warning:
@echo "#include <textcode.h>" > a.c
@($(DIET) $(CC) $(CFLAGS) -c a.c >/dev/null 2>&1 && echo "WARNING: libowfat has moved the header files from foo.h to libowfat/foo.h\nWARNING: you still have foo.h! Please update your libowfat!") || exit 0
@echo "#include <libowfat/textcode.h>" > a.c
@$(DIET) $(CC) $(CFLAGS) -c a.c >/dev/null 2>&1 || echo "WARNING: this package needs libowfat; get it from https://www.fefe.de/libowfat/"
@rm -f a.c a.o
t1 parse: ldif.a storage.a
t2: ldap.a asn1.a
t3 t4 t5 addindex: storage.a
t6: storage.a
tinyldap tinyldap_standalone tinyldap_debug: ldif.a storage.a auth.a
bindrequest tinyldap tinyldap_standalone tinyldap_debug ldapclient ldapclient_str ldapdelete: ldap.a asn1.a
idx2ldif: ldap.a
dumpacls: ldap.a asn1.a
parse: normalize_dn.o
asn1dump: asn1dump.c printasn1.c asn1.a
$(DIET) $(CC) $(CFLAGS) -o $@$(EXE) $< $(LDFLAGS) -lowfat asn1.a
asn1dump.o: printasn1.c
tinyldap_standalone: tinyldap.c
$(DIET) $(CC) $(CFLAGS) -DSTANDALONE -o $@ $^ $(LDFLAGS) -lowfat $(LIBS)
tinyldap_debug: tinyldap.c
$(DIET) $(CC) $(CFLAGS) -DSTANDALONE -DDEBUG -o $@ $^ $(LDFLAGS) -lowfat $(LIBS)
acl: acl.c ldap.a asn1.a
$(DIET) $(CC) $(CFLAGS) -o acl acl.c -I. ldap.a asn1.a -lowfat $(LIBS)
.PHONY: test
test: test/bind test/ebind
make -C test
test/%: test/%.c asn1.a ldap.a
$(DIET) $(CC) $(CFLAGS) -o $@ $^ ldap.a asn1.a -lowfat $(LIBS)
.PHONY: clean tar
clean:
rm -f t t[1-9] *.[ao] bindrequest tinyldap ldapclient \
parse tinyldap_standalone tinyldap_debug ldapclient_str addindex \
dumpidx idx2ldif md5password ldapdelete dumpacls asn1dump acl \
mysql2ldif x \
*.da *.bbg *.bb *.gcov gmon.out *.gcda *.gcno test/bind bind/ebind
tar: clean
cd ..; tar cvvf tinyldap.tar.bz2 tinyldap --use=bzip2 --exclude capture --exclude CVS --exclude exp.ldif --exclude polyp* --exclude rfc*
ldif_parse.o: ldif_parse.c strduptab.h strstorage.h ldif.h
tinyldap.o: tinyldap.c ldap.h ldif.h
ldapclient.o: ldapclient.c ldap.h
ldapclient_str.o: ldapclient_str.c ldap.h
bindrequest.o: bindrequest.c ldap.h
strduptab.o: strduptab.c strduptab.h strstorage.h
strstorage.o: strstorage.c strstorage.h
freeava.o: freeava.c ldap.h
freefilter.o: freefilter.c ldap.h
fmt_asn1int.o: fmt_asn1int.c asn1.h
fmt_asn1intpayload.o: fmt_asn1intpayload.c asn1.h
fmt_asn1length.o: fmt_asn1length.c asn1.h
fmt_asn1sint.o: fmt_asn1sint.c asn1.h
fmt_asn1sintpayload.o: fmt_asn1sintpayload.c asn1.h
fmt_asn1string.o: fmt_asn1string.c asn1.h
fmt_asn1tag.o: fmt_asn1tag.c asn1.h
fmt_asn1tagint.o: fmt_asn1tagint.c asn1.h
fmt_asn1transparent.o: fmt_asn1transparent.c asn1.h
fmt_ldapadl.o: fmt_ldapadl.c asn1.h ldap.h
fmt_ldapava.o: fmt_ldapava.c asn1.h ldap.h
fmt_ldapbindrequest.o: fmt_ldapbindrequest.c asn1.h ldap.h
fmt_ldapmessage.o: fmt_ldapmessage.c asn1.h ldap.h
fmt_ldappal.o: fmt_ldappal.c asn1.h ldap.h
fmt_ldapresult.o: fmt_ldapresult.c asn1.h ldap.h
fmt_ldapsearchfilter.o: fmt_ldapsearchfilter.c asn1.h ldap.h
fmt_ldapsearchfilterstring.o: fmt_ldapsearchfilterstring.c ldap.h
fmt_ldapsearchrequest.o: fmt_ldapsearchrequest.c asn1.h ldap.h
fmt_ldapsearchresultentry.o: fmt_ldapsearchresultentry.c asn1.h ldap.h
fmt_ldapstring.o: fmt_ldapstring.c asn1.h ldap.h
fmt_asn1OID.o: fmt_asn1OID.c asn1.h
fmt_asn1generic.o: fmt_asn1generic.c asn1.h
fmt_asn1bitstring.o: fmt_asn1bitstring.c asn1.h
scan_asn1BOOLEAN.o: scan_asn1BOOLEAN.c asn1.h
scan_asn1ENUMERATED.o: scan_asn1ENUMERATED.c asn1.h
scan_asn1INTEGER.o: scan_asn1INTEGER.c asn1.h
scan_asn1SEQUENCE.o: scan_asn1SEQUENCE.c asn1.h
scan_asn1SET.o: scan_asn1SET.c asn1.h
scan_asn1STRING.o: scan_asn1STRING.c asn1.h
scan_asn1BITSTRING.o: scan_asn1BITSTRING.c asn1.h
scan_asn1int.o: scan_asn1int.c asn1.h
scan_asn1length.o: scan_asn1length.c asn1.h
scan_asn1oid.o: scan_asn1oid.c asn1.h
scan_asn1rawoid.o: scan_asn1rawoid.c asn1.h
scan_asn1rawint.o: scan_asn1rawint.c asn1.h
scan_asn1string.o: scan_asn1string.c asn1.h
scan_asn1tag.o: scan_asn1tag.c asn1.h
scan_asn1tagint.o: scan_asn1tagint.c asn1.h
scan_ldapaddrequest.o: scan_ldapaddrequest.c asn1.h ldap.h
scan_ldapava.o: scan_ldapava.c asn1.h ldap.h
scan_ldapbindrequest.o: scan_ldapbindrequest.c asn1.h ldap.h
scan_ldapbindresponse.o: scan_ldapbindresponse.c asn1.h ldap.h
scan_ldapmessage.o: scan_ldapmessage.c asn1.h ldap.h
scan_ldapmodifyrequest.o: scan_ldapmodifyrequest.c asn1.h ldap.h
scan_ldapresult.o: scan_ldapresult.c asn1.h ldap.h
scan_ldapsearchfilter.o: scan_ldapsearchfilter.c asn1.h ldap.h
scan_ldapsearchfilterstring.o: scan_ldapsearchfilterstring.c ldap.h
scan_ldapsearchrequest.o: scan_ldapsearchrequest.c asn1.h ldap.h
scan_ldapsearchresultentry.o: scan_ldapsearchresultentry.c asn1.h ldap.h
scan_ldapstring.o: scan_ldapstring.c asn1.h ldap.h
scan_asn1generic.o: scan_asn1generic.c asn1.h
asn1oid.o: asn1oid.c asn1.h
init_tls_context.o: init_tls_context.c tinytls.h
fmt_tls_clienthello.o: fmt_tls_clienthello.c tinytls.h
ldap_match_sre.o: ldap_match_sre.c ldap.h
x: tls.a
privatekey.pem:
openssl genrsa -out $@
windoze:
$(MAKE) DIET= CROSS=i686-mingw32- asn1dump
static-analyzer:
/opt/llvm/bin/scan-build --use-cc=/opt/llvm/bin/clang make DIET= -j4
fmt_tls_alert.o: fmt_tls_alert.c tinytls.h asn1.h
fmt_tls_alert_pkt.o: fmt_tls_alert_pkt.c tinytls.h asn1.h
fmt_tls_clienthello.o: fmt_tls_clienthello.c tinytls.h asn1.h
fmt_tls_handshake_cert.o: fmt_tls_handshake_cert.c tinytls.h asn1.h
fmt_tls_handshake_certs_header.o: fmt_tls_handshake_certs_header.c \
tinytls.h asn1.h
fmt_tls_packet.o: fmt_tls_packet.c tinytls.h asn1.h
fmt_tls_serverhello.o: fmt_tls_serverhello.c tinytls.h asn1.h
fmt_tls_serverhellodone.o: fmt_tls_serverhellodone.c tinytls.h asn1.h
init_tls_context.o: init_tls_context.c tinytls.h asn1.h
tls_accept.o: tls_accept.c tinytls.h asn1.h
tls_cipherprio.o: tls_cipherprio.c
tls_connect.o: tls_connect.c tinytls.h asn1.h
tls_doread.o: tls_doread.c tinytls.h asn1.h
tls_dowrite.o: tls_dowrite.c tinytls.h asn1.h