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)
33 # Assember version of bf_encrypt().
34 BF_ENC=bf_enc.o # normal C version
35 #BF_ENC=asm/bx86-elf.o # elf format x86
36 #BF_ENC=asm/bx86-out.o # a.out format x86
37 #BF_ENC=asm/bx86-sol.o # solaris format x86
38 #BF_ENC=asm/bx86bsdi.o # bsdi format x86
42 INCDIR=/usr/local/include
47 LIBOBJ=bf_skey.o bf_ecb.o $(BF_ENC) bf_cfb64.o bf_ofb64.o
48 LIBSRC=bf_skey.c bf_ecb.c bf_enc.c bf_cfb64.c bf_ofb64.c
50 GENERAL=Makefile Makefile.ssl Makefile.uni asm bf_locl.org README \
51 COPYRIGHT blowfish.doc INSTALL
53 TESTING= bftest bfspeed bf_opts
54 TESTING_SRC=bftest.c bfspeed.c bf_opts.c
55 HEADERS=bf_locl.h blowfish.h bf_pi.h
57 ALL= $(GENERAL) $(TESTING_SRC) $(LIBSRC) $(HEADERS)
61 all: $(BLIB) $(TESTING)
64 $(MAKE) CC=cc CFLAGS="-O $(OPTS) $(CFLAG)" all
67 $(MAKE) CC=gcc CFLAGS="-O3 -fomit-frame-pointer $(OPTS) $(CFLAG)" all
70 $(MAKE) BF_ENC='asm/bx86-elf.o' CC=$(CC) CFLAGS="-DELF $(OPTS) $(CFLAG)" all
73 $(MAKE) BF_ENC='asm/bx86-out.o' CC=$(CC) CFLAGS="-DOUT $(OPTS) $(CFLAG)" all
76 $(MAKE) BF_ENC='asm/bx86-sol.o' CC=$(CC) CFLAGS="-DSOL $(OPTS) $(CFLAG)" all
79 $(MAKE) BF_ENC='asm/bx86bsdi.o' CC=$(CC) CFLAGS="-DBSDI $(OPTS) $(CFLAG)" all
82 asm/bx86-elf.o: asm/bx86unix.cpp
83 $(CPP) -DELF asm/bx86unix.cpp | $(AS) -o asm/bx86-elf.o
86 asm/bx86-sol.o: asm/bx86unix.cpp
87 $(CC) -E -DSOL asm/bx86unix.cpp | sed 's/^#.*//' > asm/bx86-sol.s
88 as -o asm/bx86-sol.o asm/bx86-sol.s
92 asm/bx86-out.o: asm/bx86unix.cpp
93 $(CPP) -DOUT asm/bx86unix.cpp | $(AS) -o asm/bx86-out.o
96 asm/bx86bsdi.o: asm/bx86unix.cpp
97 $(CPP) -DBSDI asm/bx86unix.cpp | $(AS) -o asm/bx86bsdi.o
100 (cd asm; perl bf-586.pl cpp >bx86unix.cpp)
107 ar cr $(BLIB) $(LIBOBJ)
108 -if test -s /bin/ranlib; then /bin/ranlib $(BLIB); \
109 else if test -s /usr/bin/ranlib; then /usr/bin/ranlib $(BLIB); \
112 bftest: bftest.o $(BLIB)
113 $(CC) $(CFLAGS) -o bftest bftest.o $(BLIB)
115 bfspeed: bfspeed.o $(BLIB)
116 $(CC) $(CFLAGS) -o bfspeed bfspeed.o $(BLIB)
118 bf_opts: bf_opts.o $(BLIB)
119 $(CC) $(CFLAGS) -o bf_opts bf_opts.o $(BLIB)
122 ctags $(TESTING_SRC) $(LIBBF)
125 tar chf libbf.tar $(ALL)
128 shar $(ALL) >libbf.shar
131 makedepend $(LIBBF) $(TESTING_SRC)
134 /bin/rm -f *.o tags core $(TESTING) $(BLIB) .nfs* *.old *.bak asm/*.o
137 sed -e '/^# DO NOT DELETE THIS LINE/ q' Makefile >Makefile.new
138 mv -f Makefile.new Makefile
140 # Eric is probably going to choke when he next looks at this --tjh
142 if test $(INSTALLTOP); then \
143 echo SSL style install; \
144 cp $(BLIB) $(INSTALLTOP)/lib; \
145 if test -s /bin/ranlib; then \
146 /bin/ranlib $(INSTALLTOP)/lib/$(BLIB); \
148 if test -s /usr/bin/ranlib; then \
149 /usr/bin/ranlib $(INSTALLTOP)/lib/$(BLIB); \
151 chmod 644 $(INSTALLTOP)/lib/$(BLIB); \
152 cp blowfish.h $(INSTALLTOP)/include; \
153 chmod 644 $(INSTALLTOP)/include/blowfish.h; \
155 echo Standalone install; \
156 cp $(BLIB) $(LIBDIR)/$(BLIB); \
157 if test -s /bin/ranlib; then \
158 /bin/ranlib $(LIBDIR)/$(BLIB); \
160 if test -s /usr/bin/ranlib; then \
161 /usr/bin/ranlib $(LIBDIR)/$(BLIB); \
164 chmod 644 $(LIBDIR)/$(BLIB); \
165 cp blowfish.h $(INCDIR)/blowfish.h; \
166 chmod 644 $(INCDIR)/blowfish.h; \
169 # DO NOT DELETE THIS LINE -- make depend depends on it.