CROSS = /korea-dokdo/aesoptool/gcc-3.3.4-glibc-2.3.3/arm-linux/bin/arm-linux-
KERNEL_PATH = /korea-dokdo/linux-2.6.13-slc2410main
DEP = Makefile $(wildcard *.h)
CC = $(CROSS)gcc
CFLAGS = -Wall -O -I. -I$(KERNEL_PATH)/include
LDFLAGS = -s
OBJS = main.o gpio.o
PROG = gpio
all: $(PROG)
$(PROG): %: Makefile $(OBJS)
$(CC) $(LDFLAGS) -o $* $(OBJS)
$(OBJS): %.o: %.c $(DEP)
clean:
@ rm -vf $(PROG) $(OBJS)
===============================================
한지훈님께서 작성하신..(S3C2440 PDS)
GPIO 테스트 Makefile 입니다.
잘 이해가 안가는 부분이
<1>
DEP = Makefile $(wildcard *.h) 에서 Makefile 의 의미가 궁금합니다.
모든 .h 파일을 찾아서 Makefile 해서 DEP에 넣는다 같은데.. 모르겠습니다.
<2>
$(OBJS): %o : %c $(DEP)
에서 %o : %c 이 .c.o: 와 어떤 차이가 있는 건가요?
또 이부분에서
%.o : %c
$(CC) -c $@ $<
이런식으로 개개의 .c 파일을 .o 파일로 컴파일한 후 에
$(PROG): %: Makefile $(OBJS)
$(CC) $(LDFLAGS) -o $* $(OBJS)
요 부분에서 실행파일로 만들어야 되지 않나요..
위에 부분이 없이 되는게 어떤식으로 되는지 알고 싶습니다.
으... 내공이 부족임이 여실히 드러나는게 책에서 본 내용과 달라져 버리면
잘 모르겠네요 ㅜ_ㅡ
은근히 요새 감기걸리시는 분 많은데 감기들 조심하세요~~
2. %o %c랑 .o.c랑 차이는 unix용의 makefile이냐 gnu용 makefile이냐에 따라 문법이 틀린겁니다. 어느게 unix인지는 정확히 모르겠네요(둘 다 되니 대충 쓰거든요)