의존성 분석 프로그램 gccmakedp에 대해 알아보자.
아래 프로그램 설치
$ sudo apt install xutils-dev
의존성 추가
$ gccmakedep main.c dog.c cat.c tiger.c
실행
$ gccmakedep
# 컴파일러와 컴파일 옵션 정의
CC = gcc #사용할 컴파일 gcc
CFLAGS = -Wall -g
# 타겟 실행 파일
TARGET = zoo
# 소스 파일과 객체 파일
SRCS = main.c dog.c cat.c tiger.c
OBJS = main.o dog.o cat.o tiger.o
# 최종 실행 파일 생성 규칙
$(TARGET): $(OBJS)
$(CC) -o $(TARGET) $(OBJS)
# 개별 소스 파일 -> 객체 파일 규칙
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# clean 규칙 (빌드 파일 정리)
clean:
rm -f $(OBJS) $(TARGET)
# DO NOT DELETE
main.o: main.c /usr/include/stdc-predef.h main.h dog.h \\
/usr/include/stdio.h \\
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \\
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \\
/usr/include/x86_64-linux-gnu/bits/wordsize.h \\
/usr/include/x86_64-linux-gnu/bits/long-double.h \\
/usr/include/x86_64-linux-gnu/gnu/stubs.h \\
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \\
/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \\
/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \\
/usr/include/x86_64-linux-gnu/bits/types.h \\
/usr/include/x86_64-linux-gnu/bits/timesize.h \\
/usr/include/x86_64-linux-gnu/bits/typesizes.h \\
/usr/include/x86_64-linux-gnu/bits/time64.h \\
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \\
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \\
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \\
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \\
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \\
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \\
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \\
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h cat.h tiger.h
dog.o: dog.c /usr/include/stdc-predef.h dog.h /usr/include/stdio.h \\
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \\
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \\
/usr/include/x86_64-linux-gnu/bits/wordsize.h \\
/usr/include/x86_64-linux-gnu/bits/long-double.h \\
/usr/include/x86_64-linux-gnu/gnu/stubs.h \\
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \\
/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \\
/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \\
/usr/include/x86_64-linux-gnu/bits/types.h \\
/usr/include/x86_64-linux-gnu/bits/timesize.h \\
/usr/include/x86_64-linux-gnu/bits/typesizes.h \\
/usr/include/x86_64-linux-gnu/bits/time64.h \\
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \\
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \\
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \\
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \\
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \\
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \\
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \\
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h
cat.o: cat.c /usr/include/stdc-predef.h cat.h /usr/include/stdio.h \\
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \\
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \\
/usr/include/x86_64-linux-gnu/bits/wordsize.h \\
/usr/include/x86_64-linux-gnu/bits/long-double.h \\
/usr/include/x86_64-linux-gnu/gnu/stubs.h \\
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \\
/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \\
/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \\
/usr/include/x86_64-linux-gnu/bits/types.h \\
/usr/include/x86_64-linux-gnu/bits/timesize.h \\
/usr/include/x86_64-linux-gnu/bits/typesizes.h \\
/usr/include/x86_64-linux-gnu/bits/time64.h \\
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \\
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \\
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \\
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \\
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \\
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \\
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \\
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h
tiger.o: tiger.c /usr/include/stdc-predef.h tiger.h /usr/include/stdio.h \\
/usr/include/x86_64-linux-gnu/bits/libc-header-start.h \\
/usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \\
/usr/include/x86_64-linux-gnu/bits/wordsize.h \\
/usr/include/x86_64-linux-gnu/bits/long-double.h \\
/usr/include/x86_64-linux-gnu/gnu/stubs.h \\
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \\
/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h \\
/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h \\
/usr/include/x86_64-linux-gnu/bits/types.h \\
/usr/include/x86_64-linux-gnu/bits/timesize.h \\
/usr/include/x86_64-linux-gnu/bits/typesizes.h \\
/usr/include/x86_64-linux-gnu/bits/time64.h \\
/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h \\
/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h \\
/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h \\
/usr/include/x86_64-linux-gnu/bits/types/__FILE.h \\
/usr/include/x86_64-linux-gnu/bits/types/FILE.h \\
/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h \\
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \\
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h