# as poume oti exoume ena programma me 3 C arxeia, foo.c bar.c kai xyzzy.c # as ftiaksoume mia metavliti me ta object files pou tha xreiastei na ginoun build obj = foo.o bar.o xyzzy.o # as poume oti to binary tha legetai test bin = test # as poume oti theloume na perasoume ta eksis flags ston C compiler CFLAGS = -pedantic -Wall -g # as poume oti theloume na perasoume ta eksis flags ston linker LDFLAGS = -lm # default rule, pos na ftiaxtei ena binary apo mia seira object files, me ti # voitheia tou linker. kaloume to c compiler frontend (cc) o opoios kalei ton linker monos tou $(bin): $(obj) $(CC) -o $@ $(obj) $(LDFLAGS) # de xreiazetai na orisoume pos ginontai compile object files apo C source files # alla an to kaname gia kapoio apo ta parapano tha itan etsi (min to symperilabeis ayto) foo.o: foo.c $(CC) $(CFLAGS) -c foo.c # useless compile-only target compile: $(obj) # na kai ena clean rule pou katharizei ola ta object files kai to binary clean: rm -f $(obj) $(bin)