-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
56 lines (45 loc) · 1.19 KB
/
Copy pathMakefile
File metadata and controls
56 lines (45 loc) · 1.19 KB
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
DIRS=
DIRS += lib
DIRS += user
ROOTDIR = $(shell pwd)
INSTALLDIR = $(ROOTDIR)/install
LDFLAGS = -L$(INSTALLDIR)/lib -I$(INSTALLDIR)/include
export ROOTDIR INSTALLDIR LDFLAGS
#export CC=gcc
#export CC=arm-none-linux-gnueabi-gcc
#export CXX=g++
export CROSS=arm-none-linux-gnueabi-
export CC=$(CROSS)gcc
.PHONY: all
all: lib_only lib_install user_only user_install
.PHONY: install
install:
for dir in $(DIRS); do [ ! -d $$dir ] || make -C $$dir install ; done
.PHONY: clean
clean:
for dir in $(DIRS); do [ ! -d $$dir ] || make -C $$dir clean ; done
.PHONY: distclean
distclean:
for dir in $(DIRS); do [ ! -d $$dir ] || make -C $$dir clean ; done
rm -rf $(INSTALLDIR)/
%_only:
@case "$(@)" in \
*/*) d=`expr $(@) : '\([^/]*\)/.*'`; \
t=`expr $(@) : '[^/]*/\(.*\)'`; \
make -C $$d $$t;; \
*) make -C $(@:_only=);; \
esac
%_install:
@case "$(@)" in \
*/*) d=`expr $(@) : '\([^/]*\)/.*'`; \
t=`expr $(@) : '[^/]*/\(.*\)'`; \
make -C $$d $$t;; \
*) make -C $(@:_install=) install;; \
esac
%_clean:
@case "$(@)" in \
*/*) d=`expr $(@) : '\([^/]*\)/.*'`; \
t=`expr $(@) : '[^/]*/\(.*\)'`; \
make -C $$d $$t;; \
*) make -C $(@:_clean=) clean;; \
esac