#*********************************************************************************
|
# Copyright: (C) 2012 Guo Wenxue<Email:guowenxue@gmail.com QQ:281143292>
|
# All rights reserved.
|
#
|
# Filename: Makefile
|
# Description: This Makefile used to call function to compile all the C source
|
# in current folder and links all the objects file into a excutable
|
# binary file.
|
#
|
# Version: 1.0.0(10/08/2011~)
|
# Author: Guo Wenxue <guowenxue@gmail.com>
|
# ChangeLog: 1, Release initial version on "10/08/2011 01:29:33 AM"
|
#
|
#********************************************************************************/
|
|
PWD=$(shell pwd)
|
INSTPATH=/tftp
|
|
APP_BINARY_NAME = test_sqlite
|
ARCH?=i386
|
#ARCH?=arm926t
|
|
LINK_MODE=STATIC
|
MODE=PRODUCTION
|
DEBUG=1
|
|
#CFLAGS+=-Wall -Werror
|
|
CFLAGS+=-Isqlite3/include
|
LDFLAGS+=-Lsqlite3/lib/ -lsqlite3
|
|
ifeq ("${MODE}", "PRODUCTION")
|
CFLAGS+=-DPRODUCTION_MODE
|
endif
|
ifdef DEBUG
|
CFLAGS+=-g -DDEBUG
|
endif
|
|
COMPILE_DATE=$(shell date -u +"%Y-%m-%d %H:%M")
|
VPATH= .
|
SRCS = $(wildcard ${VPATH}/*.c)
|
OBJS = $(patsubst %.c,%.o,$(SRCS))
|
|
TMP=$(shell echo $(ARCH) | tr "[A-Z]" "[a-z]")
|
ifneq (,$(filter i386,$(TMP)))
|
CROSS_COMPILE=
|
else
|
CROSS_COMPILE=/opt/buildroot-2012.08/$(ARCH)/usr/bin/arm-linux-
|
|
endif
|
|
CFLAGS+=-I${PWD}
|
|
export CC=${CROSS_COMPILE}gcc
|
export CXX=${CROSS_COMPILE}g++
|
export AR=${CROSS_COMPILE}ar
|
export AS=${CROSS_COMPILE}as
|
export RANLIB=${CROSS_COMPILE}ranlib
|
export STRIP=${CROSS_COMPILE}strip
|
|
export CFLAGS
|
export LDFLAGS
|
export ARCH
|
export LINK_MODE
|
|
ifeq ("${LINK_MODE}", "STATIC")
|
CFLAGS+=--static
|
LDFLAGS+=-static
|
else
|
LDFLAGS+=-ldl
|
endif
|
|
LDFLAGS+=-lpthread -ldl
|
|
all: entry version $(APP_BINARY_NAME)
|
|
entry:
|
@echo " ";
|
@echo " =========================================================";
|
@echo " ** Compile ${APP_BINARY_NAME} for ${ARCH} ";
|
@echo " =========================================================";
|
bash build.sh
|
|
version:
|
@echo "/* Generated by makefile, don't Edit it by hand */" > version.h
|
@echo "#define DATE \"$(COMPILE_DATE)\"" >> version.h
|
@echo "#define MAJOR 1" >>version.h
|
@echo "#define MINOR 0" >>version.h
|
@echo "#define REVER 0" >>version.h
|
@if [ -f .svn/entries ] ; then \
|
echo "#define SVNVER `sed -n -e 11p .svn/entries`" >>version.h; \
|
else \
|
echo "#define SVNVER 0" >>version.h; \
|
fi;
|
@echo "" >> version.h
|
@echo '#define version(progname) printf("%s Version %d.%d.%d Build @%05d (%s)\n", progname, MAJOR, MINOR, REVER,SVNVER, DATE)' >> version.h
|
@echo '#define copyright() printf("Copyright: (C) 2012 Guo Wenxue<Email:guowenxue@gmail.com QQ:281143292>\n")' >>version.h
|
@echo '#define banner(progname) {version(progname); copyright(); printf("\n");}' >>version.h
|
@echo "" >> version.h
|
|
$(APP_BINARY_NAME): $(OBJS)
|
$(CC) -o $@ $(OBJS) $(LDFLAGS)
|
$(STRIP) $(APP_BINARY_NAME)
|
|
%.o : %.c
|
$(CC) -c $< $(CFLAGS)
|
|
tag:
|
@ctags --c-kinds=+defglmnstuvx --langmap=c:.c.h.ho.hem.het.hec.hev.him.hit.hic.hiv -R .
|
@cscope -Rbq
|
|
install:
|
@cp $(APP_BINARY_NAME) ${INSTPATH}
|
|
clean:
|
@rm -f version.h
|
@rm -f *.o $(APP_BINARY_NAME)
|
@rm -rf *.gdb *.a *.so *.elf*
|
|
distclean: clean
|
@rm -f tags cscope*
|
|
.PHONY: clean entry
|