✅ 목표 (Goal)

✅ clean 한번 만들어 보자.

make만 했다하면 .o가 이미 있다고 투덜투덜 대므로,

생성한 파일 .o zoo를 제거하는 것만 만들어 보자.

zoo: main.o dog.o cat.o tiger.o
    gcc -o zoo main.o dog.o cat.o tiger.o

main.o: main.c
    gcc -c main.c

dog.o: dog.c dog.h
    gcc -c dog.c

cat.o: cat.c cat.h
    gcc -c cat.c

tiger.o: tiger.c tiger.h
    gcc -c tiger.c

clean:
    rm -r *.o
    rm -r zoo

✅ clean을 실행해 보자.

make clean 하면 된다. make 한후 ls로 .o 및 zoo가 생성되는지 확인 make clean 한 이후에 ls로 .o 및 zoo가 사라지는지 확인 이제 좀 나아졌다.

✅ [도전] 그럴싸하게 메시지를 출력해보자.

뭔가 전문가 스럽다.

위의 잇점이외에 메시지를 보면 도움이 된다. 어느 부분에서 에러가 나는지.

zoo: main.o dog.o cat.o tiger.o
	echo "Linking objects to create zoo..."
	gcc -o zoo main.o dog.o cat.o tiger.o

main.o: main.c
	echo "Compiling main.c into main.o..."
	gcc -c main.c

dog.o: dog.c dog.h
	echo "Compiling dog.c into dog.o..."
	gcc -c dog.c

cat.o: cat.c cat.h
	echo "Compiling cat.c into cat.o..."
	gcc -c cat.c

tiger.o: tiger.c tiger.h
	echo "Compiling tiger.c into tiger.o..."
	gcc -c tiger.c

clean:
	echo "Cleaning up object files and executable..."
	rm -r *.o
	rm -r zoo