CC = @PTHREAD_CC@
CFLAGS = @CFLAGS@ @PTHREAD_CFLAGS@
DEBUGCFLAGS = @CFLAGS@ @PTHREAD_CFLAGS@ -DCACKEY_DEBUG=1
CPPFLAGS = @CPPFLAGS@ @DEFS@ -I./pkcs11/
DEBUGCPPFLAGS = @CPPFLAGS@ -DCACKEY_DEBUG=1 -I./pkcs11/ @DEFS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@ @PTHREAD_LIBS@
SHOBJFLAGS = @SHOBJFLAGS@
SHOBJLDFLAGS = @SHOBJLDFLAGS@
AR = @AR@
RANLIB = @RANLIB@
prefix = @prefix@
exec_prefix = @exec_prefix@
libdir = @libdir@
@SET_MAKE@
all: @DEFAULT_TARGET@
shared:
$(MAKE) libcackey.@SHOBJEXT@
-$(MAKE) libcackey_g.@SHOBJEXT@
static:
$(MAKE) libcackey.a
-$(MAKE) libcackey_g.a
cackey.o: cackey.c cackey_builtin_certs.h sha1.c sha1.h md5.c md5.h asn1-x509.c asn1-x509.h config.h
$(CC) $(SHOBJFLAGS) $(CPPFLAGS) $(CFLAGS) -o cackey.o -c cackey.c
cackey_g.o: cackey.c cackey_builtin_certs.h sha1.c sha1.h md5.c md5.h asn1-x509.c asn1-x509.h config.h
$(CC) $(SHOBJFLAGS) $(DEBUGCPPFLAGS) $(DEBUGCFLAGS) -o cackey_g.o -c cackey.c
libcackey.@SHOBJEXT@: cackey.o
$(CC) $(SHOBJFLAGS) $(CPPFLAGS) $(CFLAGS) $(SHOBJLDFLAGS) $(LDFLAGS) -o libcackey.@SHOBJEXT@ cackey.o $(LIBS)
-@WEAKENSYMS@ "libcackey.@SHOBJEXT@"
-@REMOVESYMS@ "libcackey.@SHOBJEXT@"
libcackey_g.@SHOBJEXT@: cackey_g.o
$(CC) $(SHOBJFLAGS) $(DEBUGCPPFLAGS) $(DEBUGCFLAGS) $(SHOBJLDFLAGS) $(LDFLAGS) -o libcackey_g.@SHOBJEXT@ cackey_g.o $(LIBS)
-@WEAKENSYMS@ "libcackey_g.@SHOBJEXT@"
libcackey.a: cackey.o
rm -f libcackey.a
$(AR) rc libcackey.a cackey.o
-$(RANLIB) libcackey.a
libcackey_g.a: cackey_g.o
rm -f libcackey_g.a
$(AR) rc libcackey_g.a cackey_g.o
-$(RANLIB) libcackey_g.a
libcackey_wrap.@SHOBJEXT@: libcackey_wrap.o
$(CC) $(SHOBJFLAGS) $(SHOBJLDFLAGS) -o libcackey_wrap.@SHOBJEXT@ libcackey_wrap.o
-@WEAKENSYMS@ "libcackey_wrap.@SHOBJEXT@"
-@REMOVESYMS@ "libcackey_wrap.@SHOBJEXT@"
libcackey_wrap.o: libcackey_wrap.c
$(CC) $(SHOBJFLAGS) -o libcackey_wrap.o -c libcackey_wrap.c
test: test.c libcackey_g.@SHOBJEXT@
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o test test.c -Wl,-R,. libcackey_g.@SHOBJEXT@ $(LIBS)
test-afl.data: test
tmpLogFile='log.$(shell openssl rand -hex 16)'; \
./test 2> $${tmpLogFile}; \
echo -ne "$$( \
grep 'Returned Value:' $${tmpLogFile} | sed 's@^.*/@@;s@ = {@ @;s@})$$@@;s@,@@g;s@ @\\x@g;s@\\@ \\@' | while IFS=' ' read -r count string; do \
printf '\\x%02x\\x%02x%s' $$[$${count} / 256] $$[$${count} % 256] "$${string}"; \
done \
)" > test-afl.data; rm -f $${tmpLogFile}
test-afl: test-afl.data test.c cackey.c cackey_builtin_certs.h sha1.c sha1.h md5.c md5.h asn1-x509.c asn1-x509.h config.h
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -DCACKEY_TEST_AFL -o test-afl test.c $(patsubst -lpcsclite,,$(LIBS))
splint-cackey.txt: cackey.c cackey_builtin_certs.h asn1-x509.c asn1-x509.h config.h
splint $(DEBUGCPPFLAGS) -DCACKEY_PARANOID=1 -weak +posixlib -I/usr/include/PCSC -Ipkcs11 cackey.c > splint-cackey.txt
install: libcackey.@SHOBJEXT@
-mkdir -p "$(DESTDIR)$(libdir)"
rm -f "$(DESTDIR)$(libdir)/libcackey.@SHOBJEXT@"
rm -f "$(DESTDIR)$(libdir)/libcackey_g.@SHOBJEXT@"
cp "libcackey.@SHOBJEXT@" "$(DESTDIR)$(libdir)/"
-cp "libcackey_g.@SHOBJEXT@" "$(DESTDIR)$(libdir)/"
clean:
rm -f libcackey.@SHOBJEXT@ libcackey_g.@SHOBJEXT@
rm -f libcackey.@SHOBJEXT@.def libcackey_g.@SHOBJEXT@.def
rm -f libcackey.@SHOBJEXT@.a libcackey_g.@SHOBJEXT@.a
rm -f libcackey_wrap.@SHOBJEXT@ libcackey_wrap.o
rm -f cackey.o cackey_g.o
rm -f test
rm -f splint-cackey.txt
distclean: clean
rm -f config.log config.status config.h Makefile libcackey.syms
mrproper: distclean
rm -f configure config.h.in aclocal.m4 *~
.PHONY: all shared static clean distclean mrproper install