CPP=g++

CFLAGS= -O3 -fnonnull-objects


INPUT= leggi_E.c leggi_P.c leggi_pd.c leggi_pi.c leggi_pp.c leggi_sh.c leggi_sp.c permuta.c
OUTPUT= stampa_fml.c stampa_cnf.c stampa_fof.c stampa_smodel.c
GENERATE= formule.c iterades.c comune.c ins_01.c
EVALUATE= valuprop.c modif_id.c minimiz.c propagID.c verifica.c
MISC= chiave.c confron.c esa_bin.c garbage.c scrivi.c

fml: clean des des2fml key2bin random

des2fml: ${INPUT} ${OUTPUT} ${GENERATE} ${EVALUATE} ${MISC} main.c S_boxes.c
	${CPP} ${CFLAGS} ${INPUT} S_boxes.c ${OUTPUT} ${GENERATE} ${EVALUATE} ${MISC} main.c -o des2fml

des:
	${CPP} ${CFLAGS} des_1.c des.c esa_bin.c ${INPUT} leg_Sbox.c -o des

key2bin:
	${CPP} ${CFLAGS} key_bin.c -o key2bin

random:
	${CPP} ${CFLAGS} randblock.c -o randblock 
	${CPP} ${CFLAGS} randkey.c -o randkey  

clean:
	rm -f des des2fml key2bin randblock randkey

ausil:	matrix sbox2espr espr2fml

matrix:
	${CPP} ${CFLAGS} matrici.c -o matrix

sbox2espr:
	${CPP} ${CFLAGS} creafile.c creafil2.c leg_Sbox.c -o sbox2espr

espr2fml:
	${CPP} ${CFLAGS} transform.c -o espr2fml
