CC = gcc CFLAGS = -O2 -Wall PROGS = forks execs internal external restart shellex signaldeadlock loop all: $(PROGS) signaldeadlock: signaldeadlock.c safe_printf.c safe_printf.h $(CC) $(CFLAGS) -o signaldeadlock signaldeadlock.c safe_printf.c shellex: shellex.c $(CC) $(CFLAGS) -o shellex shellex.c csapp.c -lpthread forks: forks.c safe_printf.c $(CC) $(CFLAGS) -o forks forks.c safe_printf.c execs: execs.c $(CC) $(CFLAGS) -o execs execs.c internal: internal.c safe_printf.c $(CC) $(CFLAGS) -o internal internal.c safe_printf.c external: external.c safe_printf.c $(CC) $(CFLAGS) -o external external.c safe_printf.c restart: restart.c safe_printf.c $(CC) $(CFLAGS) -o restart restart.c safe_printf.c loop: loop.c $(CC) $(CFLAGS) -o loop loop.c clean: rm -rf *~ $(PROGS)