makefile 에서 이문제점 좀 봐주십시오.
글쓴이: jinushun / 작성시간: 화, 2003/08/12 - 9:46오후
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ else if [ -x /bin/bash ]; then echo /bin/bash; \ else echo sh; fi ; fi) TOPDIR := $(shell /bin/pwd) #STOPDIR = /root/main_dev STOPDIR := ../$(TOPDIR) .SUFFIXES : .c .o CROSS_COMPILE = /opt/hardhat/devkit/ppc/8xx/bin/ppc_8xx- #HOSTCC = $(CROSS_COMPILE)gcc HOSTCC = gcc HPATH = $(TOPDIR)/include SHPATH = $(STOPDIR)/include FUNCDIR = $(TOPDIR)/function CFLAGS = -I$(HPATH) -I$(SHPATH) -D_REENTRANT OBJ_FUNC = $(FUNCDIR)/ParamFunc.o $(FUNCDIR)/semaphore.o OBJ_MAIN = controlmain.o OBJECTS = $(OBJ_MAIN) $(OBJ_FUNC) SRC_FUNC = $(FUNCDIR)/ParamFunc.c $(FUNCDIR)/semaphore.c SRC_MAIN = controlmain.c SOURCES = $(SRC_MAIN) $(SRC_FUNC) TARGET = module_ControlMain all : $(TARGET) $(TARGET) : $(OBJECTS) $(HOSTCC) -o $@ $(OBJECTS) -lpthread dep : gccmakedep $(HPATH) $(SOURCES) clean : rm -rf $(OBJECTS) $(TARGET) new : $(MAKE) clean $(MAKE)
이상이 메익파일이구요..
TOPDIR 의 상위 디렉을 STOPDIR 로 TOPDIR 을 사용해 표현하려했는데.
일단 디렉안으로는 잘 들어가지는 거 같습니다.
왜냐면 메익 클린 햇을때 오브젝트랑 타겟을 다 지워주거든요.
근데 컴파일에러가 나네요
에러나는 내용은 아래와 같습니다.
make clean make[1]: 들어감 `/root/main_dev/module_ControlMain' 디렉토리 rm -rf controlmain.o /root/main_dev/module_ControlMain/function/ParamFunc.o /root/main_dev/module_ControlMain/function/semaphore.o module_ControlMain make[1]: 나감 `/root/main_dev/module_ControlMain' 디렉토리 make make[1]: 들어감 `/root/main_dev/module_ControlMain' 디렉토리 cc -I/root/main_dev/module_ControlMain/include -I..//root/main_dev/module_ControlMain /include -D_REENTRANT -c -o controlmain.o controlmain.c make[1]: 나감 `/root/main_dev/module_ControlMain' 디렉토리
-I ..// 이부분인거같은데.. 에러위치가.
아무튼 TOP DIR 을 사용해서 그 상위 디렉토리를 나타낼수 있는 방법이 없을까요.
그냥 절대경로 해도 되지만. 왠지멋이 없어 보여서 -_-;;
그럼 답변 기다릴게요 ^^
Forums:
생각해보니 메익 클린은 그거랑 상관이 없이 되는부분이네요. 제가 착각했구
생각해보니 메익 클린은 그거랑 상관이 없이 되는부분이네요. 제가 착각했구요. 답변 기다리겠습니다.
----------------------------
www.nate.com
----------------------------
STOPDIR = $(TOPDIR)/..이라고 해야 할 듯 싶은데
STOPDIR = $(TOPDIR)/..
이라고 해야 할 듯 싶은데요?
댓글 달기