CF=-Wall
CC=gcc

all: mserverS mloopN clientN loopR loopU

mserverS: src/mserverS.c src/m-srvSd src/runserverS
	$(CC) $(CF) -o bin/mserverS src/mserverS.c -lpthread
	cp src/m-srvSd bin/m-srvSd
	cp src/runserverS bin/runserverS

mloopN: src/mloopN/mloopN.c src/mloopN/mloopNd src/mloopN/libtasksN.c src/mloopN/mountRAM src/mloopN/df/get-df.c src/mloopN/client-lib/client-lib.c src/mloopN/md5m.c src/mloopN/regen src/mloopN/mk_image
	$(CC) $(CF) -o bin/mloopN src/mloopN/mloopN.c
	cp src/mloopN/mountRAM bin/mountRAM
	cp src/mloopN/mloopNd bin/mloopNd
	$(CC) $(CF) -o bin/md5m src/mloopN/md5m.c
	cp src/mloopN/regen bin/regen
	cp src/mloopN/mk_image bin/mk_image

clientN: src/run_read src/run_readMD src/run_write src/run_writeMD src/run_read_robR src/run_read_robU src/READN-ROB-R.c src/READN-ROB-U.c src/from-node-to-buffer.c src/from-buffer-to-node.c src/MD-from-buffer-to-node.c src/MD-from-node-to-buffer.c
	cp src/run_read bin/run_read
	cp src/run_readMD bin/run_readMD
	cp src/run_write bin/run_write
	cp src/run_writeMD bin/run_writeMD
	cp src/run_read_robR bin/run_read_robR
	cp src/run_read_robU bin/run_read_robU
	$(CC) $(CF) -o bin/READ-ROBR src/READN-ROB-R.c
	$(CC) $(CF) -o bin/READ-ROBU src/READN-ROB-U.c
	$(CC) $(CF) -o bin/from-node-to-buffer src/from-node-to-buffer.c
	$(CC) $(CF) -o bin/from-buffer-to-node src/from-buffer-to-node.c
	$(CC) $(CF) -o bin/MD-from-buffer-to-node src/MD-from-buffer-to-node.c
	$(CC) $(CF) -o bin/MD-from-node-to-buffer src/MD-from-node-to-buffer.c
	$(CC) $(CF) -o bin/clientNR src/client-NR.c
	$(CC) $(CF) -o bin/clientNW src/client-NW.c

loopR: src/loopR/loopR.c src/loopR/rloopd src/loopR/run
	cp src/loopR/rloopd bin/loopR/rloopd
	cp src/loopR/run bin/loopR/run
	$(CC) $(CF) -o bin/loopR/loopR src/loopR/loopR.c

loopU: src/loopU/loopU.c src/loopU/uloopd src/loopU/run
	cp src/loopU/uloopd bin/loopU/uloopd
	cp src/loopU/run bin/loopU/run
	$(CC) $(CF) -o bin/loopU/loopU src/loopU/loopU.c