# $Id: Makefile,v 1.15 1996/06/07 12:12:50 skip Exp $
#
# Makefile for Cert-Part of ENskip                   5.2.96 G. Caronni
#
#
MATHPKGS=bn
#define -DUSE_BN for Colin Plumbs BigNumber package
#define -DUBS_CHIPCARD for the usage of SBG AuthentiBox
#define -DUSE_SUNCERT for usage of SUN certificate package (requires BN)
#
#location of the header and library for Math Operations
MATHPKG=bn
#
MATHLIB=$(MATHPKG)/lib$(MATHPKG).a
MATHTXT=$(MATHPKG)/README
MATHHDR=$(MATHPKG)/$(MATHPKG).h
#
#CHIPFLAGS= -DS_UNIX -DS_SOLARIS -DINCL_GBX -DUBS_CHIPCARD -I/home/skip/chip
#CHIPLIBS= -L/home/skip/chip -R/home/skip/chip -lgbx
#
#evt. -DSOLARIS for Solaris (for gettimeofday() prototype)
CFLAGS= -DUSE_BN $(FLAGS) $(CHIPFLAGS) -DUSE_SUNCERT
#
LDLIBS= $(LIBS_USER) $(CHIPLIBS) -Lsuncert -lsun -L../lib -lskip_user
COFLAGS = -q -M
RCSCLEAN = rcsclean

OBJS= md5.o cert_main.o cert_db.o cert_event.o cert_udp.o cert_int.o\
	#cert_ubs.o
HEADERS = cert.h cert_db.h cert_defs.h cert_event.h cert_int.h cert_udp.h\
	md5.h #cert_ubs.h


.PHONY:	clean tar all rcsclean checkout

all:	$(MATHLIB) $(MATHHDR) $(HEADERS) libsun.a \
	cert_make cert_gen cert_test cert_server libcert.a

cert_make: cert_make.o cert_db.o cert_int.o md5.o $(MATHLIB)
	$(CPLUSPLUS) $(LDFLAGS) cert_make.o cert_db.o cert_int.o md5.o $(MATHLIB) $(LDLIBS) -o $@

cert_gen: cert_gen.o cert_db.o cert_int.o md5.o $(MATHLIB)
	$(CPLUSPLUS) $(LDFLAGS) cert_gen.o cert_db.o cert_int.o md5.o $(MATHLIB) $(LDLIBS) -o $@

cert_server: cert_server.o libcert.a
	$(CPLUSPLUS) $(LDFLAGS) cert_server.o libcert.a $(LDLIBS) -o $@

cert_test: cert_test.o libcert.a
	$(CPLUSPLUS) $(LDFLAGS) cert_test.o libcert.a $(LDLIBS) -o $@

libcert.a: $(HEADERS) $(MATHLIB) $(MATHHDR) $(OBJS)
	cp $(MATHLIB) libcert.a
	ar r libcert.a $(OBJS) 
	-ranlib libcert.a

$(MATHLIB) $(MATHHDR):
	cd $(MATHPKG) && $(MAKE) all

libsun.a:	
	cd suncert && $(MAKE) CC="$(CC)" CPLUSPLUS="$(CPLUSPLUS)" FLAGS="$(FLAGS)" LIBS_USER="$(LIBS_USER)" all

.PHONY: clean rcsclean checkout mathdist
clean rcsclean checkout mathdist::
	cd bn && $(MAKE) $@
	cd suncert && $(MAKE) $@
 
rcsclean::
	$(RCSCLEAN)
 
checkout::
	-$(CO) $(COFLAGS) $(REVISION) RCS/* < /dev/null

clean::
	-rm -f *.o libcert.a cert_make cert_gen cert_test cert_server core *~ cert.tgz *.bak
	-cd suncert && $(MAKE) clean
	-cd $(MATHPKG) && $(MAKE) clean
	[ ! -w Makefile ] || { sed -e '/^# Do not delete, dependencies are assumed below this line/q' >.Makefile Makefile; mv .Makefile Makefile ;}

.PHONY:	tar
tar:
	-rm cert.tgz
	(cd ..; tar cvf - cert/Makefile cert/README cert/TODO cert/*.[ch] \
	cert/cache cert/public cert/secret cert/gmp/README cert/bn/README\
	)| gzip -9v >cert.tgz

cert_int.o: $(MATHHDR)

# Do not delete, dependencies are assumed below this line
