2011년7월25일_숙제 Makefile (20110720_storage)




최초 make를 하면 모두 컴파일하고 생성.
main.c를 수정하면 main.o와 main만 갱신.
main.h를 수정해도 main.o와 main만 갱신.
test.c를 수정하면 test.o와 test만 갱신.
test.h를 수정하면 모든 파일(main.o, test.o, main)이 갱신되도록 Makefile을 만들 것.




● Makefile

 image






   1: #all: main.h test.h main.o test.o
   2: #    gcc -o main main.c test.c
   3:  
   4: main: main.o test.o
   5:     gcc -o main main.o test.o
   6:  
   7: main.o: main.h test.h main.c
   8:     gcc -c main.c
   9:  
  10: test.o: test.h test.c
  11:     gcc -c test.c
  12:  
  13: clean:
  14:     ls -l
  15:     rm main
  16:     rm *.o
  17:     ls -l
  18:  
  19: run: all
  20:     ls -al
  21:     ./main




● 소스코드들



● 결과

image


요구사항대로,
main.c를 수정하면 main.o와 main만 갱신.
main.h를 수정해도 main.o와 main만 갱신.
test.c를 수정하면 test.o와 test만 갱신.
test.h를 수정하면 모든 파일(main.o, test.o, main)이 갱신된다.