makefile模板

 1,编译so

#!/bin/bash
############################################################################
#
############################################################################
#源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件
SOURCE  := $(wildcard *.c) $(wildcard *.cpp)
OBJS    := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))

TARGET  := libxlib_alg.so
ROOT_DIR := /home/derek/share/xlib
  
############################################################################  
# 编译参数
############################################################################  
# 编译器
CC := gcc
LD := ld

# 编译宏
DEFINES := 

# 头文件路径
INCLUDE := -I$(ROOT_DIR)/include  

# 链接库
LIBS := -lpthread 

# 链接选项
LDFLAGS :=

# 汇总处理
CFLAGS := -g -Wall -O3 $(DEFINES) $(INCLUDE) $(LIBS)
  
############################################################################  
# 下面的基本上不需要做任何改动了
############################################################################  
all:$(OBJS)
    echo $(OBJS)
    $(LD) -shared -o $(TARGET) $(OBJS) $(LDFLAGS)

clean:
    echo "Removing linked and compiled files......"
    rm -fr *.o $(TARGET)

%.o:%.c
    @echo Compiling $< ...
    $(CC) -fPIC -c $(CFLAGS)  $< -o $*.o

 2,编译app

#!/bin/bash
############################################################################
#
############################################################################
#源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件
SOURCE  := $(wildcard *.c) $(wildcard *.cpp)
OBJS    := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))
  
#目标文件名,输入任意你想要的执行文件名
TARGET  := cmd.bin
ROOT_DIR := /home/derek/share/xlib

############################################################################  
# 编译参数
############################################################################  
# 编译器
CC := gcc
LD := ld

# 编译宏
DEFINES :=

# 头文件路径
INCLUDE := -I$(ROOT_DIR)/include  

# 链接库
LIBS := -lpthread 

# 链接选项
LDFLAGS :=

# CFLAGS汇总处理
CFLAGS := -g -Wall -O3 $(DEFINES) $(INCLUDE) $(LIBS)

############################################################################  
# 下面的基本上不需要做任何改动了
############################################################################
.PHONY : everything clean rebuild

everything : $(TARGET)
all : $(TARGET)

rebuild: clean everything

clean:
    echo "Removing linked and compiled files......"
    rm -fr $(TARGET)
    rm -fr *.o

$(TARGET) : $(OBJS)
    echo $(OBJS)
    $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) 
############################################################################

 

posted @ 2017-04-08 11:49  soul.stone  阅读(194)  评论(0编辑  收藏  举报