LingYun IoT Studio NB-IoT research project
Guo Wenxue
2018-11-20 bc9652bd9ad0c4ff9cf595ba68f702f44a92a3d6
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
#*********************************************************************************
#      Copyright:  (C) 2018 LingYun IoT Studio
#                  All rights reserved.
#
#       Filename:  Makefile
#    Description:  This is the common subdir Makefile which to compile all the C
#                  source code to object files and then generate the shared or 
#                  static library named lib$(FOLDER_NAME).a orlib $(FOLDER_NAME).so,
#                  which depends on the variable $LINK_MODE.
#                      
#        Version:  1.0.0
#                  Author:  Guo Wenxue <guowenxue@gmail.com>
#      ChangeLog:  1, Release initial version on "11/20/2018 11:29:33 AM"
#                       
#********************************************************************************/
 
PWD=$(shell pwd)
LIBNAME=$(shell basename ${PWD})
STALIB=lib${LIBNAME}.a
DYNLIB=lib${LIBNAME}.so
 
CROSS_COMPILE?=/opt/rpi/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
 
VPATH= .
SRCS = $(wildcard ${VPATH}/*.c)
OBJS = $(patsubst %.c,%.o,$(SRCS))
 
PRJDIR?=$(shell dirname ${PWD})
CFLAGS+=-I${PRJDIR}
CC = ${CROSS_COMPILE}gcc
AR = ${CROSS_COMPILE}ar
 
 
ifeq ("${LINK_MODE}", "STATIC")
    LIBS = ${STALIB} 
else 
    LIBS=${DYNLIB}
endif
 
all: entry ${LIBS} install
 
entry: 
    @echo " ";
    @echo " =========================================================";
    @echo " **     Compile subdir ${LIBNAME} for ${ARCH}             ";
    @echo " =========================================================";
 
#$(LD) -g --relocatable $(OBJS) -o lib${LIBNAME}.o
${STALIB}:    $(OBJS) 
    $(AR) -rcu $@ $(OBJS)
 
${DYNLIB}:   $(OBJS) 
    $(CC) -fPIC -shared -o $@ $(OBJS)
 
%.o : %.c
    $(CC) -c $< $(CFLAGS)
 
install:
    @if [ ! -z "${LIBS_PATH}" ] ; then \
        mkdir -p ${LIBS_PATH} ; \
        cp ${LIBS} ${LIBS_PATH}; \
    fi;
 
 
clean:
    @rm -f *.o
    @rm -rf *.gdb *.a *.so
 
distclean: clean
    @rm -f  tags cscope*
 
.PHONY: clean entry