2 # make - twidle the options yourself :-)
3 # make cc - standard cc options
4 # make gcc - standard gcc options
5 # make x86-elf - linux-elf etc
6 # make x86-out - linux-a.out, FreeBSD etc
12 # use BF_PTR2 for intel boxes,
13 # BF_PTR for sparc and MIPS/SGI
14 # use nothing for Alpha and HP.
16 # There are 3 possible performance options, experiment :-)
17 #OPTS= -DBF_PTR # usr for sparc and MIPS/SGI
18 #OPTS= -DBF_PTR2 # use for pentium
19 OPTS= # use for pentium pro, Alpha and HP
26 #CFLAG= -O4 -funroll-loops -fomit-frame-pointer
27 CFLAG= -O3 -fomit-frame-pointer
29 CFLAGS=$(OPTS) $(CFLAG)
34 # Assember version of bf_encrypt().
35 BF_ENC=bf_enc.o # normal C version
36 #BF_ENC=asm/bx86-elf.o # elf format x86
37 #BF_ENC=asm/bx86-out.o # a.out format x86
38 #BF_ENC=asm/bx86-sol.o # solaris format x86
39 #BF_ENC=asm/bx86bsdi.o # bsdi format x86
43 INCDIR=/usr/local/include
48 LIBOBJ=bf_skey.o bf_ecb.o $(BF_ENC) bf_cfb64.o bf_ofb64.o
49 LIBSRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
51 GENERAL=Makefile Makefile.ssl Makefile.uni asm bf_locl.org README \
52 COPYRIGHT blowfish.doc INSTALL
54 TESTING= bftest bfspeed bf_opts
55 TESTING_SRC=bftest.c bfspeed.c bf_opts.c
56 HEADERS=bf_locl.h blowfish.h bf_pi.h
58 ALL= $(GENERAL) $(TESTING_SRC) $(LIBSRC) $(HEADERS)
62 all: $(BLIB) $(TESTING)
65 $(MAKE) CC=cc CFLAGS="-O $(OPTS) $(CFLAG)" all
68 $(MAKE) CC=gcc CFLAGS="-O3 -fomit-frame-pointer $(OPTS) $(CFLAG)" all
71 $(MAKE) BF_ENC='asm/bx86-elf.o' CC=$(CC) CFLAGS="-DELF $(OPTS) $(CFLAG)" all
74 $(MAKE) BF_ENC='asm/bx86-out.o' CC=$(CC) CFLAGS="-DOUT $(OPTS) $(CFLAG)" all
77 $(MAKE) BF_ENC='asm/bx86-sol.o' CC=$(CC) CFLAGS="-DSOL $(OPTS) $(CFLAG)" all
80 $(MAKE) BF_ENC='asm/bx86bsdi.o' CC=$(CC) CFLAGS="-DBSDI $(OPTS) $(CFLAG)" all
83 asm/bx86-elf.o: asm/bx86unix.cpp
84 $(CPP) -DELF asm/bx86unix.cpp | $(AS) -o asm/bx86-elf.o
87 asm/bx86-sol.o: asm/bx86unix.cpp
88 $(CC) -E -DSOL asm/bx86unix.cpp | sed 's/^#.*//' > asm/bx86-sol.s
89 as -o asm/bx86-sol.o asm/bx86-sol.s
93 asm/bx86-out.o: asm/bx86unix.cpp
94 $(CPP) -DOUT asm/bx86unix.cpp | $(AS) -o asm/bx86-out.o
97 asm/bx86bsdi.o: asm/bx86unix.cpp
98 $(CPP) -DBSDI asm/bx86unix.cpp | $(AS) -o asm/bx86bsdi.o
101 (cd asm; perl bf-586.pl cpp >bx86unix.cpp)
108 ar cr $(BLIB) $(LIBOBJ)
111 bftest: bftest.o $(BLIB)
112 $(CC) $(CFLAGS) -o bftest bftest.o $(BLIB)
114 bfspeed: bfspeed.o $(BLIB)
115 $(CC) $(CFLAGS) -o bfspeed bfspeed.o $(BLIB)
117 bf_opts: bf_opts.o $(BLIB)
118 $(CC) $(CFLAGS) -o bf_opts bf_opts.o $(BLIB)
121 ctags $(TESTING_SRC) $(LIBBF)
124 tar chf libbf.tar $(ALL)
127 shar $(ALL) >libbf.shar
130 makedepend $(LIBBF) $(TESTING_SRC)
133 /bin/rm -f *.o tags core $(TESTING) $(BLIB) .nfs* *.old *.bak asm/*.o
136 sed -e '/^# DO NOT DELETE THIS LINE/ q' Makefile >Makefile.new
137 mv -f Makefile.new Makefile
139 # Eric is probably going to choke when he next looks at this --tjh
141 if test $(INSTALLTOP); then \
142 echo SSL style install; \
143 cp $(BLIB) $(INSTALLTOP)/lib; \
145 chmod 644 $(INSTALLTOP)/lib/$(BLIB); \
146 cp blowfish.h $(INSTALLTOP)/include; \
147 chmod 644 $(INSTALLTOP)/include/blowfish.h; \
149 echo Standalone install; \
150 cp $(BLIB) $(LIBDIR)/$(BLIB); \
152 chmod 644 $(LIBDIR)/$(BLIB); \
153 cp blowfish.h $(INCDIR)/blowfish.h; \
154 chmod 644 $(INCDIR)/blowfish.h; \
157 # DO NOT DELETE THIS LINE -- make depend depends on it.