Chinaunix首页 | 论坛 | 博客
  • 博客访问: 235603
  • 博文数量: 36
  • 博客积分: 2025
  • 博客等级: 大尉
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-22 20:55
文章分类

全部博文(36)

文章存档

2008年(4)

2007年(32)

我的朋友

分类: C/C++

2007-03-22 21:13:27

自从用了autotools很久不曾有过编写Makefile的经历了,这两天维护客户以前让别的公司给做的一个项目中的代码,写了个Makefile感觉挺不错。。。
CC = g++
GTK_CFLAGS
= $(shell gdk-pixbuf-config --cflags)
GTK_LIBS = $(shell gdk-pixbuf-config --libs) $(shell pkg-config --libs gthread)
MYSQL_CFLAGS = $(shell mysql_config --cflags)
MYSQL_LIBS = $(shell mysql_config --libmysqld-libs)
CFLAGS = $(GTK_CFLAGS) $(MYSQL_CFLAGS) -I/usr/include/lclibs -DMYSQL_EMBED -DETC_THREAD
LIBS = $(GTK_LIBS) $(MYSQL_LIBS) -L./libs -ldl -rdynamic -llclibs -ldsrc -lgts

SRC_PATH = src
OBJ_PATH = obj
SOURCES
= $(wildcard $(SRC_PATH)/*.c)
OBJECTS
= $(patsubst $(SRC_PATH)/%.c, $(OBJ_PATH)/%.o, $(SOURCES))
DEPENDS = $(patsubst $(SRC_PATH)/%.c, $(OBJ_PATH)/%.d, $(SOURCES))

all: hwetc

$(DEPENDS): $(OBJ_PATH)/%.d: $(SRC_PATH)/%.c
        $(CC) -MM $(CFLAGS) $< > $@; \
        sed -i 's,\($*\)\.o[ :]*,$(OBJ_PATH)/\1.o $@ : ,g' $@include $(DEPENDS)

hwetc: $(OBJECTS)
        $(CC) $(OBJECTS) $(LIBS) -o $@

$(OBJECTS):
        $(CC) -c $(CFLAGS) $< -o $@

.PHONY: clean
clean:        rm -f hwetc $(OBJECTS) $(DEPENDS)
ps: 之所以CC = g++是因为其中用到gts等C++写就的library,而且头文件里就包含有C++语法,因此将就着应付一下。。。
阅读(1400) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~