# OpenCA PKCS#7 Makefile
# (C) 2000 by Massimiliano Pala and OpenCA Group

VERSION = 0.1.1
PACKAGE = CryptoFlex Tool

prefix=/usr/local
exec_prefix=${prefix}
sysconfdir=${prefix}/etc
libexecdir=${exec_prefix}/libexec
srcdir=.
top_srcdir=.
BIN=${exec_prefix}/bin

POD2MAN=/usr/local/bin/pod2man
MKDIR=/bin/mkdir
INSTALL=/usr/bin/install -c
PRG_PREFIX=scard-
INSTALL_OPT = -o root -g root -m 755
COPY=/bin/cp
SHELL=/bin/sh
MOVE=/bin/mv
SED=/bin/sed
SHELL=/bin/sh
CHMOD=/bin/chmod
LN=ln -s
LIBS= -lcrypto -lpcsclite 
MAKE=/usr/bin/make
CC=gcc
LD=gcc
MANPATH=${prefix}/man
MANSUBPATH=@mansubdir@
CFLAGS=-g -O2 -Wall
LDFLAGS= -L/usr/local/lib
CPPFLAGS=-I. -I$(srcdir)/include  -I/usr/local/include $(PATHS) -DHAVE_CONFIG_H
HAVE_SHARED_LIBS=@HAVE_SHARED_LIBS@

PROGS = cryptoflex
SDIRS = src/

all: subs scard-init crypto

subs:
	@for i in $(SDIRS); \
	do \
		( cd $$i && echo "Making all in $$i directory ... " \
			&& $(MAKE) all ) ; \
	done

scard-init: 
	$(CC) $(INCLUDE) $(CPPFLAGS) $(LDFLAGS) $(CFLAGS) -o \
		bin/$(PRG_PREFIX)init src/init.o \
		src/pcsc/reader.o src/pcsc/command.o $(LIBS)

crypto: 
	$(CC) $(INCLUDE) $(CPPFLAGS) $(LDFLAGS) $(CFLAGS) -o \
		bin/$(PRG_PREFIX)cryptoflex src/main.o \
		src/pcsc/reader.o src/pcsc/command.o $(LIBS)

install:
	@echo "" ; \
	echo "Installing progs to $(BIN) ... "; \
	for i in $(PROGS) ; \
	do \
		k=$(PRG_PREFIX)$$i ; \
		if [ -e $(BIN)/$$k ] ; then \
			( $(MOVE) $(BIN)/$$k $(BIN)/$$k.old ) >/dev/null 2>&1; \
		fi ; \
                echo $(INSTALL) $(INSTALL_OPT) bin/$$k $(BIN)/$$k; \
                $(INSTALL) $(INSTALL_OPT) bin/$$k $(BIN)/$$k; \
                if [ $$? -ne 0 ] ; then \
                        echo "Error (write permissions ???)." ; \
                        exit 1; \
                fi ; \
	done ; \
	echo ""
	@echo -n "Installing man pages ... "; \
	$(COPY) -rf docs/man* $(MANPATH)
	@echo "Done."
	@echo ""
	@echo "All Done."
	@echo

docs:
	$(POD2MAN) docs/verify --section=3 \
		 --center="OpenCA PKCS7 Verification Tool" \
		 --release="Open Certification Authority" \
		 >docs/man3/OpenCA::verify.3 ; \
	$(POD2MAN) docs/sign --section=3 \
		 --center="OpenCA PKCS7 Signing Tool" \
		 --release="Open Certification Authority" \
		 >docs/man3/OpenCA::sign.3 

clean:
	@for i in $(SDIRS) ; do \
		( cd $$i && echo "Cleaning up $$i directory ... " && \
			$(MAKE) clean && cd .. ) ; \
	done
	@rm -f *.o bin/openca-*

dist-clean:
	@for i in $(SDIRS) ; do \
		( cd $$i && echo "Cleaning up $$i directory ... " && \
			$(MAKE) dist-clean && cd .. ) ; \
	done
	@rm -f config.cache config.status config.log
	@rm -f conftest conftest.c
	@rm Makefile

dist:
	@mkdir  /tmp/OpenCA-SCARDs-$(VERSION); \
	cp -rf * "/tmp/OpenCA-SCARDs-$(VERSION)" ; \
	cd /tmp ; \
	rm -rf OpenCA-SCARDs-$(VERSION)/CVS ; \
	rm -rf OpenCA-SCARDs-$(VERSION)/*/CVS ; \
	rm -rf OpenCA-SCARDs-$(VERSION)/*/*/CVS ; \
	tar cfpz OpenCA-SCARDs-$(VERSION).tar.gz OpenCA-SCARDs-$(VERSION) ; \
	cd - ; \
	mv "/tmp/OpenCA-SCARDs-$(VERSION).tar.gz" . ; \
	rm -rf "/tmp/OpenCA-SCARDs-$(VERSION)"

