# Targets # make - twidle the options yourself :-) # make cc - standard cc options # make gcc - standard gcc options # make x86-elf - linux-elf etc # make x86-out - linux-a.out, FreeBSD etc # make x86-solaris # make x86-bdsi DIR= bf TOP= . # use BF_PTR2 for intel boxes, # BF_PTR for sparc and MIPS/SGI # use nothing for Alpha and HP. # There are 3 possible performance options, experiment :-) #OPTS= -DBF_PTR # usr for sparc and MIPS/SGI #OPTS= -DBF_PTR2 # use for pentium OPTS= # use for pentium pro, Alpha and HP MAKE=make -f Makefile #CC=cc #CFLAG= -O CC=gcc #CFLAG= -O4 -funroll-loops -fomit-frame-pointer CFLAG= -O3 -fomit-frame-pointer CFLAGS=$(OPTS) $(CFLAG) CPP=$(CC) -E AS=as RANLIB=ranlib # Assember version of bf_encrypt(). BF_ENC=bf_enc.o # normal C version #BF_ENC=asm/bx86-elf.o # elf format x86 #BF_ENC=asm/bx86-out.o # a.out format x86 #BF_ENC=asm/bx86-sol.o # solaris format x86 #BF_ENC=asm/bx86bsdi.o # bsdi format x86 LIBDIR=/usr/local/lib BINDIR=/usr/local/bin INCDIR=/usr/local/include MANDIR=/usr/local/man MAN1=1 MAN3=3 SHELL=/bin/sh LIBOBJ=bf_skey.o bf_ecb.o $(BF_ENC) bf_cfb64.o bf_ofb64.o LIBSRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c GENERAL=Makefile Makefile.ssl Makefile.uni asm bf_locl.org README \ COPYRIGHT blowfish.doc INSTALL TESTING= bftest bfspeed bf_opts TESTING_SRC=bftest.c bfspeed.c bf_opts.c HEADERS=bf_locl.h blowfish.h bf_pi.h ALL= $(GENERAL) $(TESTING_SRC) $(LIBSRC) $(HEADERS) BLIB= libblowfish.a all: $(BLIB) $(TESTING) cc: $(MAKE) CC=cc CFLAGS="-O $(OPTS) $(CFLAG)" all gcc: $(MAKE) CC=gcc CFLAGS="-O3 -fomit-frame-pointer $(OPTS) $(CFLAG)" all x86-elf: $(MAKE) BF_ENC='asm/bx86-elf.o' CC=$(CC) CFLAGS="-DELF $(OPTS) $(CFLAG)" all x86-out: $(MAKE) BF_ENC='asm/bx86-out.o' CC=$(CC) CFLAGS="-DOUT $(OPTS) $(CFLAG)" all x86-solaris: $(MAKE) BF_ENC='asm/bx86-sol.o' CC=$(CC) CFLAGS="-DSOL $(OPTS) $(CFLAG)" all x86-bsdi: $(MAKE) BF_ENC='asm/bx86bsdi.o' CC=$(CC) CFLAGS="-DBSDI $(OPTS) $(CFLAG)" all # elf asm/bx86-elf.o: asm/bx86unix.cpp $(CPP) -DELF asm/bx86unix.cpp | $(AS) -o asm/bx86-elf.o # solaris asm/bx86-sol.o: asm/bx86unix.cpp $(CC) -E -DSOL asm/bx86unix.cpp | sed 's/^#.*//' > asm/bx86-sol.s as -o asm/bx86-sol.o asm/bx86-sol.s rm -f asm/bx86-sol.s # a.out asm/bx86-out.o: asm/bx86unix.cpp $(CPP) -DOUT asm/bx86unix.cpp | $(AS) -o asm/bx86-out.o # bsdi asm/bx86bsdi.o: asm/bx86unix.cpp $(CPP) -DBSDI asm/bx86unix.cpp | $(AS) -o asm/bx86bsdi.o asm/bx86unix.cpp: (cd asm; perl bf-586.pl cpp >bx86unix.cpp) test: all ./bftest $(BLIB): $(LIBOBJ) /bin/rm -f $(BLIB) ar cr $(BLIB) $(LIBOBJ) $(RANLIB) $(BLIB) bftest: bftest.o $(BLIB) $(CC) $(CFLAGS) -o bftest bftest.o $(BLIB) bfspeed: bfspeed.o $(BLIB) $(CC) $(CFLAGS) -o bfspeed bfspeed.o $(BLIB) bf_opts: bf_opts.o $(BLIB) $(CC) $(CFLAGS) -o bf_opts bf_opts.o $(BLIB) tags: ctags $(TESTING_SRC) $(LIBBF) tar: tar chf libbf.tar $(ALL) shar: shar $(ALL) >libbf.shar depend: makedepend $(LIBBF) $(TESTING_SRC) clean: /bin/rm -f *.o tags core $(TESTING) $(BLIB) .nfs* *.old *.bak asm/*.o dclean: sed -e '/^# DO NOT DELETE THIS LINE/ q' Makefile >Makefile.new mv -f Makefile.new Makefile # Eric is probably going to choke when he next looks at this --tjh install: $(BLIB) if test $(INSTALLTOP); then \ echo SSL style install; \ cp $(BLIB) $(INSTALLTOP)/lib; \ $(RANLIB) $(BLIB); \ chmod 644 $(INSTALLTOP)/lib/$(BLIB); \ cp blowfish.h $(INSTALLTOP)/include; \ chmod 644 $(INSTALLTOP)/include/blowfish.h; \ else \ echo Standalone install; \ cp $(BLIB) $(LIBDIR)/$(BLIB); \ $(RANLIB) $(BLIB); \ chmod 644 $(LIBDIR)/$(BLIB); \ cp blowfish.h $(INCDIR)/blowfish.h; \ chmod 644 $(INCDIR)/blowfish.h; \ fi # DO NOT DELETE THIS LINE -- make depend depends on it.