# $OpenBSD: Makefile.distribution,v 1.5 1999/06/25 20:34:02 angelos Exp $ # # The author of this code is Angelos D. Keromytis (angelos@dsl.cis.upenn.edu) # # This code was written by Angelos D. Keromytis in Philadelphia, PA, USA, # in April-May 1998 # # Copyright (C) 1998, 1999 by Angelos D. Keromytis. # # Permission to use, copy, and modify this software without fee # is hereby granted, provided that this entire notice is included in # all copies of any software which is or includes a copy or # modification of this software. # # THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR # IMPLIED WARRANTY. IN PARTICULAR, THE AUTHORS MAKES NO # REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE # MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR # PURPOSE. VERSION = 2-beta2 DISTFILE = keynote-${VERSION}.tar.gz KNSUBDIR = KeyNote-${VERSION} RANLIB = ranlib MKDIR = mkdir YACC = yacc #YACC = bison TRUE = true LEX = flex TAR = tar CC = gcc RM = rm AR = ar NROFF = nroff TARFLAGS = -cvzf ${DISTFILE} YACCFLAGS2 = -d -p kv -b z YACCFLAGS = -d -p kn -b k LEXFLAGS2 = -Pkv -s -i LEXFLAGS = -Cr -Pkn -s -i CFLAGS = -O2 -Wall # -g RMFLAGS2 = -rf RMFLAGS = -f NROFFFLAGS = -mandoc # SSLeay/OpenSSL pointers SSLINC = -I/usr/local/include -I/usr/local/ssl/include \ -I/usr/local/openssl/include -I/usr/local/ssl/include/openssl SSLLIB = -L/usr/lib -L/usr/local/lib -L/usr/local/ssl/lib \ -L/usr/local/openssl/lib -L/usr/local/openssl/ -lcrypto # No-crypto compile/link flags and definitions NOCRYPTODEFS = #-DPGPLIB -DNO_SNPRINTF -DNEED_GETOPT -DPILOT NOCRYPTOINC = -I. NOCRYPTOLIBS = -L. -lkeynote -lm # Final compile/link flags and definitions DEFS = -DCRYPTO ${NOCRYPTODEFS} INC = $(SSLINC) ${NOCRYPTOINC} LIBS = ${NOCRYPTOLIBS} ${SSLLIB} TARGET = libkeynote.a TARGET2 = keynote #GETOPT = getopt.o OBJS = k.tab.o lex.kn.o environment.o parse_assertion.o \ signature.o aux.o base64.o $(GETOPT) OBJS2 = z.tab.o lex.kv.o keynote-verify.o keynote-sign.o keynote-sigver.o \ keynote-keygen.o keynote-main.o crypto: all nocrypto: ${MAKE} LIBS="${NOCRYPTOLIBS}" INC="${NOCRYPTOINC}" \ DEFS="${NOCRYPTODEFS}" all: $(TARGET) $(TARGET2) library: $(TARGET) $(TARGET): $(OBJS) $(AR) -cvr $(TARGET) $(OBJS) $(RANLIB) $(TARGET) $(TARGET2): $(TARGET) $(OBJS2) $(CC) $(CFLAGS) -o $(TARGET2) $(OBJS2) $(LIBS) k.tab.c: keynote.y keynote.h assertion.h $(YACC) $(YACCFLAGS) keynote.y z.tab.c: keynote-ver.y keynote.h header.h $(YACC) $(YACCFLAGS2) keynote-ver.y lex.kn.c: keynote.l k.tab.h keynote.h assertion.h $(LEX) $(LEXFLAGS) keynote.l lex.kv.c: keynote-ver.l z.tab.h keynote.h header.h $(LEX) $(LEXFLAGS2) keynote-ver.l .c.o: $(CC) $(CFLAGS) $(DEFS) $(INC) -c $< aux.c: keynote.h assertion.h signature.h parse_assertion.c: keynote.h assertion.h signature.h environment.c: keynote.h assertion.h keynote-verify.c: keynote.h header.h signature.c: keynote.h assertion.h signature.h keynote-keygen.c: keynote.h assertion.h signature.h header.h keynote-sign.c: keynote.h header.h keynote-sigver.c: keynote.h header.h keynote-main.c: header.h base64.c: keynote.h clean: $(RM) $(RMFLAGS) $(OBJS) $(OBJS2) a.out *.core *~ */*~ cleandir: cleanall cleanall: clean $(RM) $(RMFLAGS) *.o k.tab.c lex.kn.c k.tab.h z.tab.c z.tab.h $(RM) $(RMFLAGS) lex.kv.c y.output z.output ${DISTFILE} $(RM) $(RMFLAGS) $(TARGET) $(TARGET2) man/*.0 test: all ./$(TARGET2) verify -e testsuite/test-env \ -r false,maybe,probably,true \ -k testsuite/auth1 -k testsuite/auth2 -k testsuite/auth3 \ -k testsuite/auth4 \ -l testsuite/test-assertion1 -l testsuite/test-assertion2 \ -l testsuite/test-assertion3 -l testsuite/test-assertion4 \ -l testsuite/test-assertion5 -l testsuite/test-assertion6 \ -l testsuite/test-assertion7 || ${TRUE} manpages: mankeynote mansystem manutility mankeynote: ${NROFF} ${NROFFFLAGS} man/keynote.3 > man/keynote-library.0 mansystem: ${NROFF} ${NROFFFLAGS} man/keynote.4 > man/keynote-system.0 manutility: ${NROFF} ${NROFFFLAGS} man/keynote.1 > man/keynote-utility.0 distribution: test cleanall manpages ${MKDIR} ${KNSUBDIR} $(TAR) cf - . | (cd ${KNSUBDIR}; ${TAR} xf -) ${RM} ${RMFLAGS2} ${KNSUBDIR}/CVS ${KNSUBDIR}/testsuite/CVS \ ${KNSUBDIR}/Misc/CVS ${KNSUBDIR}/${KNSUBDIR} \ ${KNSUBDIR}/.cvsignore ${KNSUBDIR}/man/CVS \ ${KNSUBDIR}/man/.cvsignore ${KNSUBDIR}/doc/CVS $(TAR) $(TARFLAGS) ${KNSUBDIR} ${RM} ${RMFLAGS2} ${KNSUBDIR}