RaspberrPi project source code
Guo Wenxue
6 days ago f7889e2ceddbc3e15ea4b5377d831f4432169f76
commit | author | age
e30a4c 1 #********************************************************************************
GW 2 #      Copyright:  (C) 2023 LingYun IoT System Studio
3 #                  All rights reserved.
4 #
5 #       Filename:  Makefile
6 #    Description:  This file is the project top Makefie
7 #
8 #        Version:  1.0.0(11/08/23)
9 #         Author:  Guo Wenxue <guowenxue@gmail.com>
10 #      ChangeLog:  1, Release initial version on "11/08/23 16:18:43"
11 #
12 #*******************************************************************************
13
14 PRJ_PATH=$(shell pwd)
15 APP_NAME = iotd
16
17 BUILD_ARCH=$(shell uname -m)
18 ifneq ($(findstring $(BUILD_ARCH), "x86_64" "i386"),)
19     CROSS_COMPILE=arm-linux-gnueabihf-
20 endif
21
22 # C source files in top-level directory
23 SRCFILES = $(wildcard *.c)
24
25 # common CFLAGS for our source code
26 CFLAGS = -Wall -Wshadow -Wundef -Wmaybe-uninitialized -D_GNU_SOURCE
27
28 # sub-directory compiled to a library and need to link
29 SRCS=src hal booster
30 SRCS_PATH=$(patsubst %,${PRJ_PATH}/%,$(SRCS))
31 CFLAGS+=$(patsubst %,-I%,$(SRCS_PATH))
32 LDFLAGS+=$(patsubst %,-L%,$(SRCS_PATH))
33 LIBS=$(patsubst %,-l%,$(SRCS))
34 LDFLAGS+=${LIBS}
35
36 # Open source libraries
37 LDFLAGS+=-lmosquitto -lgpiod -lcjson -lm
38
39 # sub-directory need to entry and compile
40 SUBDIR=${SRCS}
41
42 all: entry subdir
43     ${CROSS_COMPILE}gcc ${CFLAGS} main.c -o ${APP_NAME} ${LDFLAGS}
44
45 entry:
46     @echo "Building ${APP_NAME} on ${BUILD_ARCH}"
47
48 subdir:
49     @for dir in ${SUBDIR} ; do if [ ! -e $${dir} ] ; then ln -s ../$${dir}; fi; done
50     @for dir in ${SUBDIR} ;  do make CFLAGS="${CFLAGS}" -C $${dir} ; done
51
52 install:
53     cp ${APP_NAME} /tftp
54
55 clean:
56     @for dir in ${SRCS} ; do if [ -e $${dir} ] ; then make clean -C $${dir}; fi; done
57     @rm -f ${APP_NAME}
58
59 distclean:
60     @for dir in ${SUBDIR} ; do if [ -e $${dir} ] ; then make clean -C $${dir}; fi; done
61     @rm -f ${APP_NAME}
62     @rm -f cscope.* tags
63     @rm -f *.log *.db
64