make 파일은 그렇게 만드는게 아니어요.. ㅡ ㅡ;;
아래 처럼 할 경우는 차라리 chmod +x Makefile한뒤에
./Makefile로 실행 시키는경우겠네염.
makefile은 make명령어가 실행되기 위해 필요한 환경설정같은겁니다.
간단한 예제를 보여드리지요.
all: ping
#compiler
CC = gcc
#install directory
INSTDIR = ~/bin
INCLUDE = /usr/include
# developing option
CFLAGS = -g -Wall
# output option
# CFLAGS = -o -Wall -ansi
# chatserver compile option
ping : ping.o MySocket.o
$(CC) -I$(INCLUDE) $(CFLAGS) -o ping ping.o MySocket.o
ping.o: ping.c ping.h
$(CC) -I$(INCLUDE) $(CFLAGS) -c ping.c
MySocket.o: MySocket.c MySocket.h
$(CC) -I$(INCLUDE) $(CFLAGS) -c MySocket.c
#cleaning all objective files
clean:
-rm ping.o MySocket.o
install: ping
@if [ -d $(INSTDIR) ];
then
cp ping $(INSTDIR);
chmod a+x $(INSTDIR)/ping;
chmod og-2 $(INSTDIR)/ping;
echo "Installed in $(INSTDIR)";
else
echo "Sorry, $(INSTDIR) does not exist, Install error";
fi
: 안녕하세요
:
: 제가 make 를 공부할려고
:
: [root@jhh project]# ls
: Makefile headerfile.h source1.o source2.o source3.o test
:
: 이렇게 각각의 파일을 만든후 (빈파일)
:
: [root@jhh project]# cat Makefile
: gcc -c source1.c
:
: gcc -c source2.c
: gcc -c source3.c
: gcc -o test source1.o source2.o source3.o
: 이렇게 make 파일을 만든후
:
: #make 했더니....
:
: [root@jhh project]# make
: Makefile:1:*** commands commence before first target. Stop.
: 이런 메시지가 나오네요...
:
: 내용은 뭐~ 명령은 첫번째 목표물 전에 실행되어야 한다는 것
: 같은 데 통 모르겟습니다.
: 답변 주시면 감사하겠습니다.