1VER=`head -n 1 ../VERSION` 2LIBDIR=/usr/local/lib 3INSTDIR=/usr/local/lib/libadacrypt-dev-$(VER) 4 5GNATCLEAN=gnatclean 6DEL=rm -f 7DELDIR= rm -rf 8 9CC=gnatmake 10CFLAGS=-c -shared -gnato -s -O3 -gnatn -gnat12 -W -Wall -Werror 11 12all: types asymmetric symmetric 13gcov: CFLAGS=-f -c -shared -gnat12 -s -O0 -gnatE -gnatf -gnato -W -Wall -Werror -fprofile-arcs -ftest-coverage -fprofile-arcs -fno-inline 14gcov: all 15symmetric: hashfunction onewaybc mode mac blockcipher ae tweakable-blockcipher crypto-symmetric-utils 16asymmetric: crypto-asymmetric-dsa crypto-asymmetric-rsa ec 17certificate: crypto-certificate 18ec: crypto-asymmetric-ecdsa crypto-asymmetric-ecdh crypto-asymmetric-ecies 19hashfunction: crypto-symmetric-hashfunction_sha256 crypto-symmetric-hashfunction_sha512 crypto-symmetric-hashfunction_whirlpool 20onewaybc: crypto-symmetric-oneway_blockcipher_whirlpool crypto-symmetric-oneway_blockcipher_twofish256 crypto-symmetric-oneway_blockcipher_twofish192 crypto-symmetric-oneway_blockcipher_twofish128 crypto-symmetric-oneway_blockcipher_tripledes crypto-symmetric-oneway_blockcipher_sha512 crypto-symmetric-oneway_blockcipher_sha384 crypto-symmetric-oneway_blockcipher_sha256 crypto-symmetric-oneway_blockcipher_sha1 crypto-symmetric-oneway_blockcipher_serpent256 crypto-symmetric-oneway_blockcipher_blowfish128 crypto-symmetric-oneway_blockcipher_aes256 crypto-symmetric-oneway_blockcipher_aes192 crypto-symmetric-oneway_blockcipher_aes128 21mode: crypto-symmetric-mode-oneway_ofb crypto-symmetric-mode-oneway_ctr crypto-symmetric-mode-oneway_cfb crypto-symmetric-mode-ofb crypto-symmetric-mode-ctr crypto-symmetric-mode-cfb crypto-symmetric-mode-cbc crypto-symmetric-mode-bps 22mac: crypto-symmetric-mac-rmac crypto-symmetric-mac-hmac_whirlpool crypto-symmetric-mac-hmac_sha512 crypto-symmetric-mac-hmac_sha256 crypto-symmetric-mac-hmac_sha1 23blockcipher: crypto-symmetric-blockcipher_twofish256 crypto-symmetric-blockcipher_twofish192 crypto-symmetric-blockcipher_twofish128 crypto-symmetric-blockcipher_tripledes crypto-symmetric-blockcipher_serpent256 crypto-symmetric-blockcipher_blowfish128 crypto-symmetric-blockcipher_aes256 crypto-symmetric-blockcipher_aes192 crypto-symmetric-blockcipher_aes128 24tweakable-blockcipher: crypto-symmetric-tweakable_blockcipher_cmt crypto-symmetric-tweakable_blockcipher_tx 25types: crypto-types-big_numbers crypto-types-elliptic_curves-ss_bf crypto-types-elliptic_curves-nss_bf crypto-types-mutexes crypto-types-nonces-nonces_ctr crypto-types-nonces-nonces_mixed_1 crypto-types-nonces-nonces_mixed_2 crypto-types-nonces-nonces_random crypto-types-nonces-nonces_randomized_counter 26ae: crypto-symmetric-aead_mcoe crypto-symmetric-aead_siv.adb crypto-symmetric-ae_ocb.adb 27kdf: crypto-symmetric-kdf_pbkdf2 crypto-symmetric-kdf_scrypt 28 29 30crypto-symmetric-kdf_pbkdf2: 31 $(CC) $(CFLAGS) $@ 32 33crypto-symmetric-kdf_scrypt: 34 $(CC) $(CFLAGS) $@ 35 36crypto-asymmetric-ecies: 37 $(CC) $(CFLAGS) $@ 38 39crypto-asymmetric-ecdh: 40 $(CC) $(CFLAGS) $@ 41 42crypto-symmetric-blockcipher_twofish256: 43 $(CC) $(CFLAGS) $@ 44 45crypto-symmetric-blockcipher_twofish192: 46 $(CC) $(CFLAGS) $@ 47 48crypto-symmetric-blockcipher_twofish128: 49 $(CC) $(CFLAGS) $@ 50 51crypto-symmetric-blockcipher_tripledes: 52 $(CC) $(CFLAGS) $@ 53 54crypto-symmetric-blockcipher_serpent256: 55 $(CC) $(CFLAGS) $@ 56 57crypto-symmetric-blockcipher_blowfish128: 58 $(CC) $(CFLAGS) $@ 59 60crypto-symmetric-blockcipher_aes256: 61 $(CC) $(CFLAGS) $@ 62 63crypto-symmetric-blockcipher_aes192: 64 $(CC) $(CFLAGS) $@ 65 66crypto-symmetric-blockcipher_aes128: 67 $(CC) $(CFLAGS) $@ 68 69crypto-symmetric-mac-hmac_sha512: 70 $(CC) $(CFLAGS) $@ 71 72crypto-symmetric-mac-hmac_sha256: 73 $(CC) $(CFLAGS) $@ 74 75crypto-symmetric-mac-hmac_sha1: 76 $(CC) $(CFLAGS) $@ 77 78crypto-symmetric-mac-hmac_whirlpool: 79 $(CC) $(CFLAGS) $@ 80 81crypto-symmetric-mac-rmac: 82 $(CC) $(CFLAGS) $@ 83 84crypto-symmetric-mode-bps: 85 $(CC) $(CFLAGS) $@ 86 87crypto-symmetric-mode-cbc: 88 $(CC) $(CFLAGS) $@ 89 90crypto-symmetric-mode-cfb: 91 $(CC) $(CFLAGS) $@ 92 93crypto-symmetric-mode-ctr: 94 $(CC) $(CFLAGS) $@ 95 96crypto-symmetric-mode-ofb: 97 $(CC) $(CFLAGS) $@ 98 99crypto-symmetric-mode-oneway_cfb: 100 $(CC) $(CFLAGS) $@ 101 102crypto-symmetric-mode-oneway_ctr: 103 $(CC) $(CFLAGS) $@ 104 105crypto-symmetric-mode-oneway_ofb: 106 $(CC) $(CFLAGS) $@ 107 108crypto-symmetric-oneway_blockcipher_aes128: 109 $(CC) $(CFLAGS) $@ 110 111crypto-symmetric-oneway_blockcipher_aes192: 112 $(CC) $(CFLAGS) $@ 113 114crypto-symmetric-oneway_blockcipher_aes256: 115 $(CC) $(CFLAGS) $@ 116 117crypto-symmetric-oneway_blockcipher_blowfish128: 118 $(CC) $(CFLAGS) $@ 119 120crypto-symmetric-oneway_blockcipher_serpent256: 121 $(CC) $(CFLAGS) $@ 122 123crypto-symmetric-oneway_blockcipher_sha1: 124 $(CC) $(CFLAGS) $@ 125 126crypto-symmetric-oneway_blockcipher_sha256: 127 $(CC) $(CFLAGS) $@ 128 129crypto-symmetric-oneway_blockcipher_sha384: 130 $(CC) $(CFLAGS) $@ 131 132crypto-symmetric-oneway_blockcipher_sha512: 133 $(CC) $(CFLAGS) $@ 134 135crypto-symmetric-oneway_blockcipher_tripledes: 136 $(CC) $(CFLAGS) $@ 137 138crypto-symmetric-oneway_blockcipher_twofish128: 139 $(CC) $(CFLAGS) $@ 140 141crypto-symmetric-oneway_blockcipher_twofish192: 142 $(CC) $(CFLAGS) $@ 143 144crypto-symmetric-oneway_blockcipher_twofish256: 145 $(CC) $(CFLAGS) $@ 146 147crypto-symmetric-oneway_blockcipher_whirlpool: 148 $(CC) $(CFLAGS) $@ 149 150crypto-types-big_numbers: 151 $(CC) $(CFLAGS) $@ 152 153crypto-types-elliptic_curves-nss_bf: 154 $(CC) $(CFLAGS) $@ 155 156crypto-types-elliptic_curves-ss_bf: 157 $(CC) $(CFLAGS) $@ 158 159crypto-types-mutexes: 160 $(CC) $(CFLAGS) $@ 161 162crypto-types-nonces-nonces_ctr: 163 $(CC) $(CFLAGS) $@ 164 165crypto-types-nonces-nonces_mixed_1: 166 $(CC) $(CFLAGS) $@ 167 168crypto-types-nonces-nonces_mixed_2: 169 $(CC) $(CFLAGS) $@ 170 171crypto-types-nonces-nonces_random: 172 $(CC) $(CFLAGS) $@ 173 174crypto-types-nonces-nonces_randomized_counter: 175 $(CC) $(CFLAGS) $@ 176 177crypto-symmetric-hashfunction_whirlpool: 178 $(CC) $(CFLAGS) $@ 179 180crypto-symmetric-hashfunction_sha512: 181 $(CC) $(CFLAGS) $@ 182 183crypto-symmetric-hashfunction_sha256: 184 $(CC) $(CFLAGS) $@ 185 186crypto-certificate: 187 $(CC) $(CFLAGS) $@ 188 189crypto-asymmetric-rsa: 190 $(CC) $(CFLAGS) $@ 191 192crypto-asymmetric-dsa: 193 $(CC) $(CFLAGS) $@ 194 195crypto-asymmetric-ecdsa: 196 $(CC) $(CFLAGS) $@ 197 198crypto-symmetric-aead_mcoe: 199 $(CC) $(CFLAGS) $@ 200 201crypto-symmetric-aead_siv: 202 $(CC) $(CFLAGS) $@ 203 204crypto-symmetric-ae_ocb: 205 $(CC) $(CFLAGS) $@ 206 207crypto-symmetric-tweakable_blockcipher_cmt: 208 $(CC) $(CFLAGS) $@ 209 210crypto-symmetric-tweakable_blockcipher_tx: 211 $(CC) $(CFLAGS) $@ 212 213crypto-symmetric-utils: 214 $(CC) $(CFLAGS) $@ 215 216.PHONY : clean 217.SILENT : clean 218 219install: 220 mkdir -p $(INSTDIR) 221 mkdir -p $(LIBDIR) 222 cp *.ads *.adb *.o $(INSTDIR)/ 223 224uninstall: 225 $(DELDIR) $(INSTDIR) 226 227clean: 228 $(GNATCLEAN) *.o *.ali 229 $(DEL) *.gcno *.gcov *.gcda 230 $(DEL) *~ *.lst *.sli 231 232#SHARED LIB 233 234shared : 235 gcc -shared -O3 -Wl,-soname,libadacrypt.so.1 -o libadacrypt.so.$(VER) \ 236 crypto*.o 237 238clean-shared: 239 $(DEL) libadacrypt.so.$(VER) 240 241install-shared : 242 mkdir -p $(INSTDIR) 243 mkdir -p $(LIBDIR) 244 cp crypto*.ads crypto*.ali $(INSTDIR)/ 245 cp libadacrypt.so.$(VER) $(LIBDIR)/ 246 $(DEL) $(LIBDIR)/libadacrypt.so 247 ln -s $(LIBDIR)/libadacrypt.so.$(VER) $(LIBDIR)/libadacrypt.so 248 ldconfig 249 250uninstall-shared: 251 $(DEL) $(LIBDIR)/libadacrypt.so 252 $(DEL) $(LIBDIR)/libadacrypt.so.$(VER) 253 $(DEL) $(INSTDIR)/crypto*.ali 254