guowenxue
2021-04-21 0fa05ec9d808e1872a1c7d75bffeaa3114a3be61
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#*********************************************************************************
#      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 mqtt 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