[완료]makefile에서 date를 사용해야 하는데 shell이 실행되지 않네요..,T.T
글쓴이: tibi / 작성시간: 수, 2007/05/23 - 7:00오후
아래에 date를 사용햇는데 잘 안됩니다
EXE_PROG = $(MAKEDIR)/STP_MSG
$(EXE_PROG):$(OBJECTS)
esql -G -o $@ $(OBJECTS) $(LOADLIBES)
@rm -f $(OBJECTS) $(SOURCES:.ec=.c)
# SOURCE 및 OBJECT Backup
test = date +%Y.%m.%d
DATE:=$(shell $$(test))
echo "DATE="$(DATE)
# for src in $(SOURCES);\
# do (\
# cp $(ROOT)/smiles/$$src $(HIST)/$$today_$$src);\
# done
아래와 같이 뜹니다..잘 아시는 분의 도움 바랍니다
DATE = `date "+%Y.%m.%d"`
/usr/bin/sh: DATE: not found.
make: 1254-004 The error code from the last command is 127.
참고로 Unix에 DB는 informix 입니다
Forums:
$$(test) 를 $(test) 로
$$(test) 를 $(test) 로 쓰면 안되나요?
아니면
옙
옙 그리해봣는데..안되는걸요...먼가 환경에서 설정해 주는게 다른게 있는건가요?
답답하네요.
일단 make 버전이 GNU
일단 make 버전이 GNU make 여야 합니다.
처럼 서보세요.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
답변감사합니다.. 말
답변감사합니다..
말씀하신대로 해봤는데 일단 GNU make가 아닌거 같습니다..
아래와 같이 에러가 나네요.
CMD := ;
/usr/bin/sh: CMD: not found.
make: 1254-004 The error code from the last command is 127.
Stop.
makefile에 아래와 같이 넣엇더니 처리가 되는데요.
SOURCES = cs_lib.ec msgview.ec make_mesg.ec STP_MSG.ec
OBJECTS = cs_lib.o msgview.o make_mesg.o STP_MSG.o
DATE = `date "+%y%m%d%H%M%S"`
EXE_PROG = $(MAKEDIR)/$(EXE_FILE)
$(EXE_PROG):$(OBJECTS)
@rm -f $(OBJECTS) $(SOURCES:.ec=.c)
echo $(DATE)
# SOURCE 및 OBJECT Backup
for src in $(SOURCES);\
do (\
cp $(ROOT)/smiles/$$src $(HIST)/"$$(DATE)"_$$src;\
);\
done
(에러메시지)
echo `date "+%y%m%d%H%M%S"`
070525125124
for src in cs_lib.ec msgview.ec make_mesg.ec STP_MSG.ec; do ( cp /home/smile/smile30/smiles/
$src /"$(DATE)"_$src; ); done
/usr/bin/sh: DATE: not found.
cp: /_cs_lib.ec: The file access permissions do not allow the specified action.
make: 1254-004 The error code from the last command is 1.
Stop.
일단 보니깐 위에서 date를 사용하면 echo가 뿌려지기는 하는데...
실제 실행할때는 DATE가 값이 일자시간이 대입되지 않습니다...어떤식으로 처리해야 DATE를 일자시간으로 대입해서 처리할까요?
바로 위에 올리신
바로 위에 올리신 Makefile의 문맥상으로 보면
$$(DATE)를 $(DATE)로 바꾸시고
$$src를 $src로 바꾸시면 원하시는 대로 작동할 것 같습니다. ^^
말씀해주신대로
말씀해주신대로 해봣는데 아래와 같이 에러가 납니다
일단 GNU make는 아니고요..
echo `date "+%y%m%d%H%M%S"`
070525141742
for src in cs_lib.ec msgview.ec make_mesg.ec STP_MSG.ec; do ( cp /home/smile/smile30/smiles/
$src /`date "+%y%m%d%H%M%S"`_rc; ); done
cp: /070525141742_rc: The file access permissions do not allow the specified action.
make: 1254-004 The error code from the last command is 1.
위의 에러는 퍼미션
위의 에러는 퍼미션 문제인것 같습니다.
에러 문구로 봐서는 /070525141742_rc 라는 파일(혹은 폴더)로 쓸수가 없었던거 같은데요.
make를 실행시키신 상황이 최상위 폴더 ('/')에 쓸수 있는 권한이 있는 root권한이신가요? 아니면 다른곳에 복사하시고자 한것인가요?
옙 말씀하신대로
옙 말씀하신대로 permission 문제가 맞네요..감사합니다
댓글 달기