Improve support for running everything as a monolithic application.
[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 RANLIB=ranlib
33
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 
40
41 LIBDIR=/usr/local/lib
42 BINDIR=/usr/local/bin
43 INCDIR=/usr/local/include
44 MANDIR=/usr/local/man
45 MAN1=1
46 MAN3=3
47 SHELL=/bin/sh
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
50
51 GENERAL=Makefile Makefile.ssl Makefile.uni asm bf_locl.org README \
52         COPYRIGHT blowfish.doc INSTALL
53
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
57
58 ALL=    $(GENERAL) $(TESTING_SRC) $(LIBSRC) $(HEADERS)
59
60 BLIB=   libblowfish.a
61
62 all: $(BLIB) $(TESTING)
63
64 cc:
65         $(MAKE) CC=cc CFLAGS="-O $(OPTS) $(CFLAG)" all
66
67 gcc:
68         $(MAKE) CC=gcc CFLAGS="-O3 -fomit-frame-pointer $(OPTS) $(CFLAG)" all
69
70 x86-elf:
71         $(MAKE) BF_ENC='asm/bx86-elf.o' CC=$(CC) CFLAGS="-DELF $(OPTS) $(CFLAG)" all
72
73 x86-out:
74         $(MAKE) BF_ENC='asm/bx86-out.o' CC=$(CC) CFLAGS="-DOUT $(OPTS) $(CFLAG)" all
75
76 x86-solaris:
77         $(MAKE) BF_ENC='asm/bx86-sol.o' CC=$(CC) CFLAGS="-DSOL $(OPTS) $(CFLAG)" all
78
79 x86-bsdi:
80         $(MAKE) BF_ENC='asm/bx86bsdi.o' CC=$(CC) CFLAGS="-DBSDI $(OPTS) $(CFLAG)" all
81
82 # elf
83 asm/bx86-elf.o: asm/bx86unix.cpp
84         $(CPP) -DELF asm/bx86unix.cpp | $(AS) -o asm/bx86-elf.o
85
86 # solaris
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
90         rm -f asm/bx86-sol.s
91
92 # a.out
93 asm/bx86-out.o: asm/bx86unix.cpp
94         $(CPP) -DOUT asm/bx86unix.cpp | $(AS) -o asm/bx86-out.o
95
96 # bsdi
97 asm/bx86bsdi.o: asm/bx86unix.cpp
98         $(CPP) -DBSDI asm/bx86unix.cpp | $(AS) -o asm/bx86bsdi.o
99
100 asm/bx86unix.cpp:
101         (cd asm; perl bf-586.pl cpp >bx86unix.cpp)
102         
103 test:   all
104         ./bftest
105
106 $(BLIB): $(LIBOBJ)
107         /bin/rm -f $(BLIB)
108         ar cr $(BLIB) $(LIBOBJ)
109         $(RANLIB) $(BLIB)
110
111 bftest: bftest.o $(BLIB)
112         $(CC) $(CFLAGS) -o bftest bftest.o $(BLIB)
113
114 bfspeed: bfspeed.o $(BLIB)
115         $(CC) $(CFLAGS) -o bfspeed bfspeed.o $(BLIB)
116
117 bf_opts: bf_opts.o $(BLIB)
118         $(CC) $(CFLAGS) -o bf_opts bf_opts.o $(BLIB)
119
120 tags:
121         ctags $(TESTING_SRC) $(LIBBF)
122
123 tar:
124         tar chf libbf.tar $(ALL)
125
126 shar:
127         shar $(ALL) >libbf.shar
128
129 depend:
130         makedepend $(LIBBF) $(TESTING_SRC)
131
132 clean:
133         /bin/rm -f *.o tags core $(TESTING) $(BLIB) .nfs* *.old *.bak asm/*.o 
134
135 dclean:
136         sed -e '/^# DO NOT DELETE THIS LINE/ q' Makefile >Makefile.new
137         mv -f Makefile.new Makefile
138
139 # Eric is probably going to choke when he next looks at this --tjh
140 install: $(BLIB)
141         if test $(INSTALLTOP); then \
142             echo SSL style install; \
143             cp $(BLIB) $(INSTALLTOP)/lib; \
144                 $(RANLIB) $(BLIB); \
145             chmod 644 $(INSTALLTOP)/lib/$(BLIB); \
146             cp blowfish.h $(INSTALLTOP)/include; \
147             chmod 644 $(INSTALLTOP)/include/blowfish.h; \
148         else \
149             echo Standalone install; \
150             cp $(BLIB) $(LIBDIR)/$(BLIB); \
151                 $(RANLIB) $(BLIB); \
152             chmod 644 $(LIBDIR)/$(BLIB); \
153             cp blowfish.h $(INCDIR)/blowfish.h; \
154             chmod 644 $(INCDIR)/blowfish.h; \
155         fi
156
157 # DO NOT DELETE THIS LINE -- make depend depends on it.