1 # You must select the correct terminal control system to be used to
2 # turn character echo off when reading passwords. There a 5 systems
3 # SGTTY - the old BSD system
4 # TERMIO - most system V boxes
5 # TERMIOS - SGI (ala IRIX).
6 # VMS - the DEC operating system
7 # MSDOS - we all know what it is :-)
8 # read_pwd.c makes a reasonable guess at what is correct.
11 # make - twidle the options yourself :-)
12 # make cc - standard cc options
13 # make gcc - standard gcc options
14 # make x86-elf - linux-elf etc
15 # make x86-out - linux-a.out, FreeBSD etc
19 # If you are on a DEC Alpha, edit des.h and change the DES_LONG
20 # define to 'unsigned int'. I have seen this give a %20 speedup.
22 OPTS0= -DRAND -DTERMIO #-DNOCONST
24 # Version 1.94 has changed the strings_to_key function so that it is
25 # now compatible with MITs when the string is longer than 8 characters.
26 # If you wish to keep the old version, uncomment the following line.
27 # This will affect the -E/-D options on des(1).
28 #OPTS1= -DOLD_STR_TO_KEY
30 # There are 4 possible performance options
33 # -DDES_RISC2 (only one of DES_RISC1 and DES_RISC2)
35 # after the initial build, run 'des_opts' to see which options are best
36 # for your platform. There are some listed in options.txt
38 #OPTS3= -DDES_RISC1 # or DES_RISC2
41 OPTS= $(OPTS0) $(OPTS1) $(OPTS2) $(OPTS3) $(OPTS4)
48 #CFLAG= -O4 -funroll-loops -fomit-frame-pointer
49 CFLAG= -O3 -fomit-frame-pointer
51 CFLAGS=$(OPTS) $(CFLAG)
56 # Assember version of des_encrypt*().
57 DES_ENC=des_enc.o fcrypt_b.o # normal C version
58 #DES_ENC=asm/dx86-elf.o asm/yx86-elf.o # elf format x86
59 #DES_ENC=asm/dx86-out.o asm/yx86-out.o # a.out format x86
60 #DES_ENC=asm/dx86-sol.o asm/yx86-sol.o # solaris format x86
61 #DES_ENC=asm/dx86bsdi.o asm/yx86basi.o # bsdi format x86
65 INCDIR=/usr/local/include
70 OBJ_LIT=cbc_enc.o ecb_enc.o $(DES_ENC) fcrypt.o set_key.o
71 OBJ_FULL=cbc_cksm.o $(OBJ_LIT) pcbc_enc.o \
72 xcbc_enc.o qud_cksm.o cbc3_enc.o \
73 cfb64ede.o cfb64enc.o cfb_enc.o ecb3_enc.o \
74 enc_read.o enc_writ.o ofb64ede.o ofb64enc.o ofb_enc.o \
75 rand_key.o read_pwd.o read2pwd.o rpc_enc.o str2key.o supp.o
77 GENERAL_LIT=COPYRIGHT INSTALL README VERSION Makefile des_crypt.man \
78 des.doc options.txt asm
79 GENERAL_FULL=$(GENERAL_LIT) FILES Imakefile times vms.com KERBEROS MODES.DES \
80 des.man DES.pm DES.pod DES.xs Makefile.PL dess.cpp des3s.cpp \
81 Makefile.uni typemap t Makefile.ssl makefile.bc Makefile.lit \
83 TESTING_LIT= destest speed des_opts
84 TESTING_FULL= rpw des $(TESTING_LIT)
85 TESTING_SRC_LIT=destest.c speed.c des_opts.c
86 TESTING_SRC_FULL=rpw.c des.c $(TESTING_SRC_LIT)
87 HEADERS_LIT=des_ver.h des.h des_locl.h podd.h sk.h spr.h
88 HEADERS_FULL= $(HEADERS_LIT) rpc_des.h
89 LIBDES_LIT=cbc_enc.c ecb_enc.c fcrypt.c set_key.c des_enc.c fcrypt_b.c
90 LIBDES_FULL= cbc_cksm.c pcbc_enc.c qud_cksm.c cbc3_enc.c \
91 cfb64ede.c cfb64enc.c cfb_enc.c ecb3_enc.c \
92 enc_read.c enc_writ.c ofb64ede.c ofb64enc.c ofb_enc.c \
93 rand_key.c rpc_enc.c str2key.c supp.c \
94 xcbc_enc.c $(LIBDES_LIT) read_pwd.c read2pwd.c
96 PERL= des.pl testdes.pl doIP doPC1 doPC2 PC1 PC2 shifts.pl
99 GENERAL=$(GENERAL_FULL)
100 TESTING=$(TESTING_FULL)
101 TESTING_SRC=$(TESTING_SRC_FULL)
102 HEADERS=$(HEADERS_FULL)
103 LIBDES= $(LIBDES_FULL)
105 ALL= $(GENERAL) $(TESTING_SRC) $(LIBDES) $(PERL) $(HEADERS)
109 all: $(DLIB) $(TESTING)
112 $(MAKE) CC=cc CFLAGS="-O $(OPTS) $(CFLAG)" all
115 $(MAKE) CC=gcc CFLAGS="-O3 -fomit-frame-pointer $(OPTS) $(CFLAG)" all
118 $(MAKE) DES_ENC='asm/dx86-elf.o asm/yx86-elf.o' CC=$(CC) CFLAGS="-DELF $(OPTS) $(CFLAG)" all
121 $(MAKE) DES_ENC='asm/dx86-out.o asm/yx86-out.o' CC=$(CC) CFLAGS="-DOUT $(OPTS) $(CFLAG)" all
124 $(MAKE) DES_ENC='asm/dx86-sol.o asm/yx86-sol.o' CC=$(CC) CFLAGS="-DSOL $(OPTS) $(CFLAG)" all
127 $(MAKE) DES_ENC='asm/dx86bsdi.o asm/yx86bsdi.o' CC=$(CC) CFLAGS="-DBSDI $(OPTS) $(CFLAG)" all
130 asm/dx86-elf.o: asm/dx86unix.cpp
131 $(CPP) -DELF asm/dx86unix.cpp | $(AS) -o asm/dx86-elf.o
133 asm/yx86-elf.o: asm/yx86unix.cpp
134 $(CPP) -DELF asm/yx86unix.cpp | $(AS) -o asm/yx86-elf.o
137 asm/dx86-sol.o: asm/dx86unix.cpp
138 $(CC) -E -DSOL asm/dx86unix.cpp | sed 's/^#.*//' > asm/dx86-sol.s
139 as -o asm/dx86-sol.o asm/dx86-sol.s
142 asm/yx86-sol.o: asm/yx86unix.cpp
143 $(CC) -E -DSOL asm/yx86unix.cpp | sed 's/^#.*//' > asm/yx86-sol.s
144 as -o asm/yx86-sol.o asm/yx86-sol.s
148 asm/dx86-out.o: asm/dx86unix.cpp
149 $(CPP) -DOUT asm/dx86unix.cpp | $(AS) -o asm/dx86-out.o
151 asm/yx86-out.o: asm/yx86unix.cpp
152 $(CPP) -DOUT asm/yx86unix.cpp | $(AS) -o asm/yx86-out.o
155 asm/dx86bsdi.o: asm/dx86unix.cpp
156 $(CPP) -DBSDI asm/dx86unix.cpp | $(AS) -o asm/dx86bsdi.o
158 asm/yx86bsdi.o: asm/yx86unix.cpp
159 $(CPP) -DBSDI asm/yx86unix.cpp | $(AS) -o asm/yx86bsdi.o
162 (cd asm; perl des-586.pl cpp >dx86unix.cpp)
165 (cd asm; perl crypt586.pl cpp >yx86unix.cpp)
175 des_opts: des_opts.o $(DLIB)
176 $(CC) $(CFLAGS) -o des_opts des_opts.o $(DLIB)
178 destest: destest.o $(DLIB)
179 $(CC) $(CFLAGS) -o destest destest.o $(DLIB)
182 $(CC) $(CFLAGS) -o rpw rpw.o $(DLIB)
184 speed: speed.o $(DLIB)
185 $(CC) $(CFLAGS) -o speed speed.o $(DLIB)
188 $(CC) $(CFLAGS) -o des des.o $(DLIB)
191 ctags $(TESTING_SRC) $(LIBDES)
194 /bin/mv Makefile Makefile.tmp
195 /bin/cp Makefile.lit Makefile
196 for i in $(HEADERS_LIT) $(LIBDES_LIT) $(GENERAL_LIT) $(TESTING_SRC_LIT) ;\
200 ( cd .. ; tar chf - $$n )| gzip > libdes-l.tgz
202 /bin/mv Makefile.tmp Makefile
205 mv Makefile Makefile.tmp
206 /bin/cp Makefile.uni Makefile
211 ( cd .. ; tar chf - $$n )| gzip > libdes.tgz
213 /bin/mv Makefile.tmp Makefile
216 shar $(ALL) >libdes.shar
219 makedepend $(LIBDES) $(TESTING_SRC)
222 /bin/rm -f *.o tags core $(TESTING) $(DLIB) .nfs* *.old *.bak asm/*.o
225 sed -e '/^# DO NOT DELETE THIS LINE/ q' Makefile >Makefile.new
226 mv -f Makefile.new Makefile
228 # Eric is probably going to choke when he next looks at this --tjh
230 if test $(INSTALLTOP); then \
231 echo SSL style install; \
232 cp $(DLIB) $(INSTALLTOP)/lib; \
234 chmod 644 $(INSTALLTOP)/lib/$(DLIB); \
235 cp des.h $(INSTALLTOP)/include; \
236 chmod 644 $(INSTALLTOP)/include/des.h; \
238 echo Standalone install; \
239 cp $(DLIB) $(LIBDIR)/$(DLIB); \
241 chmod 644 $(LIBDIR)/$(DLIB); \
242 cp des $(BINDIR)/des; \
243 chmod 711 $(BINDIR)/des; \
244 cp des_crypt.man $(MANDIR)/man$(MAN3)/des_crypt.$(MAN3); \
245 chmod 644 $(MANDIR)/man$(MAN3)/des_crypt.$(MAN3); \
246 cp des.man $(MANDIR)/man$(MAN1)/des.$(MAN1); \
247 chmod 644 $(MANDIR)/man$(MAN1)/des.$(MAN1); \
248 cp des.h $(INCDIR)/des.h; \
249 chmod 644 $(INCDIR)/des.h; \
251 # DO NOT DELETE THIS LINE -- make depend depends on it.