一个makefile使用实例

来源:互联网 发布:编程原本 pdf 下载 编辑:程序博客网 时间:2024/06/06 00:09


# cross compile tools
#TOOL_PREFIX=arm-wrs-linux-gnueabi-armv6jel_vfp-uclibc_small-

ROOTDIR = ../..
include $(ROOTDIR)/Rules.make

TARGET = libcamera.a
DEF= -Wall -O2 -Werror
INCLUDE_DIR=./include
INTERFACE_DIR=./interface
RELEASE_DIR=release/
OUTPUT_DIR_H=../../../include/camera_lib
OUTPUT_DIR_A=$(IPC_LIB_DIR)


#8127ƽ̨ʹԃ
ifeq ($(PLAT_FORM), dm8127)
 DEF += -DCAM_DM8127 -DDM8127
 RELEASE_DIR=release/dm8127
endif


INCLUDE := -I$(INCLUDE_DIR)/Arch-davinciHD 

#ADD INCLUDE FOR CCDPARAM
DEF +=  -DFOR9000 -DNET_EMAIL
INCLUDE += -I$(ROOT_DIR)/include \
     -I$(INTERFACE_DIR) \
     -I$(ROOT_DIR)/app/include \
     -I$(ROOT_DIR)/app/include/modules_wrapper \
     -I$(DADSP_INC_DIR) \
     -I../../openssl-1.0.0a/include \
     -I$(PLATFORM_INC_DIR) \
     -I$(INCLUDE_DIR)


SOURCES :=

-include $(shell pwd)/SOURCES

 

KBUILD_VERBOSE = @
ifdef V
  ifeq ("$(origin V)", "command line")
    KBUILD_VERBOSE = #SPACE
  endif
endif

CC=$(KBUILD_VERBOSE)$(TOOL_PREFIX)gcc
AR = $(KBUILD_VERBOSE)$(TOOL_PREFIX)ar
RANLIB = $(KBUILD_VERBOSE)$(TOOL_PREFIX)ranlib
 
DEF +=

C_SRCS   = $(filter %.c, $(SOURCES))
CPP_SRCS = $(filter %.cpp,$(SOURCES))

C_OBJS   = $(C_SRCS:%.c=%.o)
CPP_OBJS = $(CPP_SRCS:%.cpp=%.o)

CFLAGS = $(INCLUDE) $(DEF)

RETAILTARGET=$(RELEASE_DIR)/$(TARGET)
 

 
.PHONY: all
all: $(RETAILTARGET)
$(RETAILTARGET) : $(C_OBJS) $(CPP_OBJS)

 echo $(RETAILTARGET)
 echo $(RELEASE_DIR)
#echo $(CFLAGS)
 echo $@
 echo 1111
 
 @echo "current platform is $(PLAT_FORM)"
 @mkdir -p $(RELEASE_DIR)
 @$(AR) -rc $@ $(C_OBJS) $(CPP_OBJS)
 @$(RANLIB) $@
 
 @echo $(OUTPUT_DIR_A)
 @echo $(INTERFACE_DIR)
 @echo $(ROOTDIR)
 
 
 cp  $(RETAILTARGET) $(OUTPUT_DIR_A)/ -f
 cp  $(INTERFACE_DIR)/camera_lib_interface.h  $(ROOTDIR)/app/include/ -f


%.o:%.c
 @echo "Compling   $@"
 $(CC) $(CFLAGS) -c $^ -o $@
 
%.o:%.cpp
 $(CC) $(CFLAGS) -c $^ -o $@

clean :
 find ./ -name "libcamera.a" | xargs rm -f
 find ./ -name "*.o" | xargs rm -f


 

0 0
原创粉丝点击