linked_list_test : linked_list.o main.o
	gcc -Wall -std=c11 -o linked_list_test linked_list.o main.o

linked_list.o : linked_list.h linked_list.c
	gcc -Wall -std=c11 -g -c linked_list.c linked_list.h

main.o : main.c linked_list.h
	gcc -Wall -std=c11 -g -c main.c linked_list.h

# # is the comment character for makefiles
# We can have 'phony' rules with no prerequisites to perform special-case jobs.
# Since there are no prerequisites, make will always run the commands for the
# rule.
.PHONY : clean # we need to do this to prevent make from getting confused if
               # there is an acutal file named clean
# a clean rule is a useful to 'reset' the codebase to just the source files
# run with the command 'make clean'
clean :
	rm -f linked_list.o main.o linked_list_test