More .cvsignore stuff to make CVS quiet on our generated files.
[openssl.git] / crypto / bf / Makefile.uni
1 # Targets
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
7 # make x86-solaris
8 # make x86-bdsi
9
10 DIR=    bf
11 TOP=    .
12 # use BF_PTR2 for intel boxes,
13 # BF_PTR for sparc and MIPS/SGI
14 # use nothing for Alpha and HP.
15
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
20
21 MAKE=make -f Makefile
22 #CC=cc
23 #CFLAG= -O
24
25 CC=gcc
26 #CFLAG= -O4 -funroll-loops -fomit-frame-pointer
27 CFLAG= -O3 -fomit-frame-pointer
28
29 CFLAGS=$(OPTS) $(CFLAG)
30 CPP=$(CC) -E
31 AS=as
32
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 
39
40 LIBDIR=/usr/local/lib
41 BINDIR=/usr/local/bin
42 INCDIR=/usr/local/include
43 MANDIR=/usr/local/man
44 MAN1=1
45 MAN3=3
46 SHELL=/bin/sh
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
49
50 GENERAL=Makefile Makefile.ssl Makefile.uni asm bf_locl.org README \
51         COPYRIGHT blowfish.doc INSTALL
52
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
56
57 ALL=    $(GENERAL) $(TESTING_SRC) $(LIBSRC) $(HEADERS)
58
59 BLIB=   libblowfish.a
60
61 all: $(BLIB) $(TESTING)
62
63 cc:
64         $(MAKE) CC=cc CFLAGS="-O $(OPTS) $(CFLAG)" all
65
66 gcc:
67         $(MAKE) CC=gcc CFLAGS="-O3 -fomit-frame-pointer $(OPTS) $(CFLAG)" all
68
69 x86-elf:
70         $(MAKE) BF_ENC='asm/bx86-elf.o' CC=$(CC) CFLAGS="-DELF $(OPTS) $(CFLAG)" all
71
72 x86-out:
73         $(MAKE) BF_ENC='asm/bx86-out.o' CC=$(CC) CFLAGS="-DOUT $(OPTS) $(CFLAG)" all
74
75 x86-solaris:
76         $(MAKE) BF_ENC='asm/bx86-sol.o' CC=$(CC) CFLAGS="-DSOL $(OPTS) $(CFLAG)" all
77
78 x86-bsdi:
79         $(MAKE) BF_ENC='asm/bx86bsdi.o' CC=$(CC) CFLAGS="-DBSDI $(OPTS) $(CFLAG)" all
80
81 # elf
82 asm/bx86-elf.o: asm/bx86unix.cpp
83         $(CPP) -DELF asm/bx86unix.cpp | $(AS) -o asm/bx86-elf.o
84
85 # solaris
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
89         rm -f asm/bx86-sol.s
90
91 # a.out
92 asm/bx86-out.o: asm/bx86unix.cpp
93         $(CPP) -DOUT asm/bx86unix.cpp | $(AS) -o asm/bx86-out.o
94
95 # bsdi
96 asm/bx86bsdi.o: asm/bx86unix.cpp
97         $(CPP) -DBSDI asm/bx86unix.cpp | $(AS) -o asm/bx86bsdi.o
98
99 asm/bx86unix.cpp:
100         (cd asm; perl bf-586.pl cpp >bx86unix.cpp)
101         
102 test:   all
103         ./bftest
104
105 $(BLIB): $(LIBOBJ)
106         /bin/rm -f $(BLIB)
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); \
110         else exit 0; fi; fi
111
112 bftest: bftest.o $(BLIB)
113         $(CC) $(CFLAGS) -o bftest bftest.o $(BLIB)
114
115 bfspeed: bfspeed.o $(BLIB)
116         $(CC) $(CFLAGS) -o bfspeed bfspeed.o $(BLIB)
117
118 bf_opts: bf_opts.o $(BLIB)
119         $(CC) $(CFLAGS) -o bf_opts bf_opts.o $(BLIB)
120
121 tags:
122         ctags $(TESTING_SRC) $(LIBBF)
123
124 tar:
125         tar chf libbf.tar $(ALL)
126
127 shar:
128         shar $(ALL) >libbf.shar
129
130 depend:
131         makedepend $(LIBBF) $(TESTING_SRC)
132
133 clean:
134         /bin/rm -f *.o tags core $(TESTING) $(BLIB) .nfs* *.old *.bak asm/*.o 
135
136 dclean:
137         sed -e '/^# DO NOT DELETE THIS LINE/ q' Makefile >Makefile.new
138         mv -f Makefile.new Makefile
139
140 # Eric is probably going to choke when he next looks at this --tjh
141 install: $(BLIB)
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); \
147             else \
148                 if test -s /usr/bin/ranlib; then \
149                 /usr/bin/ranlib $(INSTALLTOP)/lib/$(BLIB); \
150             fi; fi; \
151             chmod 644 $(INSTALLTOP)/lib/$(BLIB); \
152             cp blowfish.h $(INSTALLTOP)/include; \
153             chmod 644 $(INSTALLTOP)/include/blowfish.h; \
154         else \
155             echo Standalone install; \
156             cp $(BLIB) $(LIBDIR)/$(BLIB); \
157             if test -s /bin/ranlib; then \
158               /bin/ranlib $(LIBDIR)/$(BLIB); \
159             else \
160               if test -s /usr/bin/ranlib; then \
161                 /usr/bin/ranlib $(LIBDIR)/$(BLIB); \
162               fi; \
163             fi; \
164             chmod 644 $(LIBDIR)/$(BLIB); \
165             cp blowfish.h $(INCDIR)/blowfish.h; \
166             chmod 644 $(INCDIR)/blowfish.h; \
167         fi
168
169 # DO NOT DELETE THIS LINE -- make depend depends on it.