makefile

#makefile for ftp

#定义宏
CC=		gcc
CFLAGS=		-c -Wall -O -shared
LDFLAGS=	-lpthreadGC2 -lws2_32 -I"../lib/pthread" -L"../lib/pthread"  # -shared 会报"ftp.exe不是有效的win32应用程序"错误.
LD=		gcc

OBJS=		debug.o util.o socket_api.o \
		my_define.o main.o

TARGET=		.\ftp.exe

#all 用于创建多个文件,比如all: ftp.ext help.txt.没有all的情况下,只生成第一个目标
all: $(TARGET)    
	@echo done.

#$(TARGET)依赖于$(OBJS),规则是将各.o目标文件链接成可执行代码.$@表示当前的目标 
$(TARGET):$(OBJS)	
	$(LD) $(OBJS) $(LDFLAGS) -o $@

####.c.o告诉make要从.c文件得到.o文件,规则是将各.c文件编译成目标文件.o
.c.o:
#{1}lt;表示当前目标的依赖文件,$?当前目标文件所依赖的文件比当前目标文件还要新的文件,$*不含后缀名的依赖文件
	$(CC) $(CFLAGS) {1}lt; -o $@ 

#.PHONY 伪名称,跟all的作用差不多
.PHONY: clean cleanobj sayhi
clean:
	-del *.o
	-del $(TARGET)

cleanobj:
	-del *.o

sayhi:
	@echo hi.just for fun.




##################################################
#
#gcc -E hello.c -o hello.i   预编译
#gcc -S hello.i -o hello.s   编译(产生汇编)
#gcc -c hello.s -o hello.o   汇编(二进制)
#gcc hello.c -o hello	     链接(可执行代码)
#
##################################################

你可能感兴趣的:(汇编,socket,makefile)