Specify Dependency Targets
Specifying dependency targets
final_target: sub_target final_target.c
	Recipe_to_create_final_target
sub_target: sub_target.c
	Recipe_to_create_sub_target
say_hello:
	echo "Hello World"
say_hello: == The Target 
- prerequisites or dependencies follow the target
 
echo "Hello World" == The Recipe 
- The target, prerequisites, and recipes together make a rule.
 
- Suppress command text and only show output with 
@ like @echo "hello world" 
say_hello:
	  @echo "Hello World"
generate:
	  @echo "Creating empty text files..."
	  touch file-{1..10}.txt
clean:
	  @echo "Cleaning up..."
	  rm *.txt
- This will only run the 
say_hello function because it's the default target ( the first thing ) 
- to hard code the default target, include this at beginning of file: 
.DEFAULT_GOAL := generate
- To instead run all targets the target 
all is used to call all other targets 
 
all: say_hello generate
say_hello:
	  @echo "Hello World"
generate:
	  @echo "Creating empty text files..."
	  touch file-{1..10}.txt
clean:
	  @echo "Cleaning up..."
	  rm *.txt