#*********************************************************************************
|
# Copyright: (C) 2012 Guo Wenxue<Email:guowenxue@gmail.com QQ:281143292>
|
# All rights reserved.
|
#
|
# Filename: Makefile
|
# Description: This Makefile used to compile all the C source code file in current
|
# folder to one excutable binary files.
|
#
|
# Version: 1.0.0(10/08/2011~)
|
# Author: Guo Wenxue <guowenxue@gmail.com>
|
# ChangeLog: 1, Release initial version on "11/11/2011 01:29:33 PM"
|
#
|
#********************************************************************************/
|
|
PRJ_PATH=$(shell pwd)
|
INSTPATH=/usr/bin
|
IMAGE_NAME=$(shell basename ${PRJ_PATH})
|
|
#CROSSTOOL=
|
export CC=${CROSSTOOL}gcc
|
export CXX=${CROSSTOOL}g++
|
export AR=${CROSSTOOL}ar
|
export AS=${CROSSTOOL}as
|
export LD=${CROSSTOOL}ld
|
export RANLIB=${CROSSTOOL}ranlib
|
export STRIP=${CROSSTOOL}strip
|
export LDFLAGS
|
|
DIRS= conf hal lylib
|
|
DIRS_PATH=$(patsubst %,${PRJ_PATH}/%,$(DIRS))
|
CFLAGS=$(patsubst %,-I%,$(DIRS_PATH))
|
LDFLAGS=$(patsubst %,-L%,$(DIRS_PATH))
|
LIBS=$(patsubst %,-l%,$(DIRS))
|
|
CFLAGS+=-D_GNU_SOURCE
|
CFLAGS+=-I ${PRJ_PATH}
|
CFLAGS+=-I ${PRJ_PATH}/3rdlib/install/include/
|
LDFLAGS+=-L ${PRJ_PATH}/3rdlib/install/lib
|
|
LIBS+=-lgpiod -lmosquitto -lcjson -lpthread -lm
|
|
SRCFILES = $(wildcard *.c)
|
|
all: thirdlib entry modules binary
|
entry:
|
@echo " ";
|
@echo " =========================================================";
|
@echo " ** Compile \"${BINARIES}\" for ${ARCH} ";
|
@echo " =========================================================";
|
|
thirdlib:
|
@make CROSSTOOL=${CROSSTOOL} -C 3rdlib
|
|
modules:
|
set -e; for d in ${DIRS}; do $(MAKE) CROSSTOOL=${CROSSTOOL} CFLAGS="${CFLAGS}" -C $${d}; done
|
|
binary: ${SRCFILES}
|
$(CC) $(CFLAGS) -o ${IMAGE_NAME} $^ ${LDFLAGS} ${LIBS}
|
@echo " Compile over"
|
|
install:
|
@cp $(IMAGE_NAME) ${INSTPATH}
|
|
clean:
|
set -e; for d in ${DIRS}; do $(MAKE) clean -C $${d}; done
|
@rm -f *.o $(IMAGE_NAME)
|
|
distclean: clean
|
@rm -f tags cscope*
|
@make distclean -C 3rdlib
|
|
.PHONY: clean entry
|