CC = gcc CFLAGS = -g -Wall -std=gnu99 all: wc_mono wc_fgetc wc_read wc_inline wc_class wc_subclass wc_mono: word_count_mono.c $(CC) $(CFLAGS) -o $@ word_count_mono.c wc_fgetc: word_count_file_reader.c file_reader_extern.h file_reader_fgetc.c ln -s file_reader_extern.h file_reader.h $(CC) $(CFLAGS) -o $@ word_count_file_reader.c file_reader_fgetc.c rm file_reader.h wc_read: word_count_file_reader.c file_reader_extern.h file_reader_read.c ln -s file_reader_extern.h file_reader.h $(CC) $(CFLAGS) -o $@ word_count_file_reader.c file_reader_read.c rm file_reader.h wc_inline: word_count_file_reader.c file_reader_inline.h file_reader_inline.c ln -s file_reader_inline.h file_reader.h $(CC) $(CFLAGS) -o $@ word_count_file_reader.c file_reader_inline.c rm file_reader.h wc_class: word_count_class.c file_reader_class.c file_reader_class.h $(CC) $(CFLAGS) -o $@ word_count_class.c file_reader_class.c wc_subclass: word_count_subclass.c file_reader_subclass.c file_reader_subclass.h $(CC) $(CFLAGS) -o $@ word_count_subclass.c file_reader_class.c file_reader_subclass.c run: bash -c 'time ./wc_mono long.txt; echo' bash -c 'time ./wc_fgetc long.txt; echo' bash -c 'time ./wc_read long.txt; echo' bash -c 'time ./wc_inline long.txt; echo' bash -c 'time ./wc_class long.txt; echo' bash -c 'time ./wc_subclass long.txt; echo' clean: /bin/rm -f *.o *~ wc_mono wc_fgetc wc_read wc_inline wc_class wc_subclass