Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
91 lines (68 loc) · 2.29 KB
/
Copy pathMakefile
File metadata and controls
91 lines (68 loc) · 2.29 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#
# make - Configuration
#
MAKE_BINARY:=bin
MAKE_DOCENT:=doc
MAKE_LIBRAR:=lib
MAKE_SOURCE:=src
MAKE_INPATH:=/usr/bin
MAKE_CMCOPY:=cp
MAKE_CMRMFL:=rm -f
MAKE_CMMKDR:=mkdir -p
MAKE_CMMKLN:=ln -sf
BUILD_SUBMD:=$(MAKE_LIBRAR)/libcommon
#
# make - Modules
#
MAKE_MODULE:=$(foreach LIBS, $(BUILD_SUBMD), $(if $(findstring /lib/, $(LIBS)), , $(LIBS)))
#
# make - Enumeration
#
MAKE_BUILDS:=$(notdir $(wildcard $(MAKE_SOURCE)/*) )
#
# make - Targets
#
all:make-directories make-modules make-build
build:make-directories make-build
modules:make-modules
documentation:make-directories make-documentation
clean:make-clean
clean-all:make-clean make-clean-modules
clean-modules:make-clean-modules
clean-documentation:make-clean-documentation
install:make-install
uninstall:make-uninstall
#
# make - Directives
#
make-build:
@$(foreach SOFT, $(MAKE_BUILDS), $(MAKE) -C $(MAKE_SOURCE)/$(SOFT) all OPENMP=$(OPENMP) && $(MAKE_CMCOPY) $(MAKE_SOURCE)/$(SOFT)/$(MAKE_BINARY)/$(SOFT) $(MAKE_BINARY)/ && ) true
make-modules:
@$(foreach LIBS, $(MAKE_MODULE), $(MAKE) -C $(LIBS) all OPENMP=$(OPENMP) && ) true
make-documentation:
@$(foreach SOFT, $(MAKE_BUILDS), $(MAKE) -C $(MAKE_SOURCE)/$(SOFT) documentation && $(MAKE_CMMKLN) ../../$(MAKE_SOURCE)/$(SOFT)/$(MAKE_DOCENT)/html $(MAKE_DOCENT)/html/$(SOFT) && ) true
@$(foreach LIBS, $(MAKE_MODULE), $(MAKE) -C $(LIBS) documentation && ) true
#
# make - Cleaning
#
make-clean:
$(MAKE_CMRMFL) $(MAKE_BINARY)/*
@$(foreach SOFT, $(MAKE_BUILDS), $(MAKE) -C $(MAKE_SOURCE)/$(SOFT) clean && ) true
make-clean-modules:
@$(foreach LIBS, $(MAKE_MODULE), $(MAKE) -C $(LIBS) clean-all && ) true
make-clean-documentation:
$(MAKE_CMRMFL) $(MAKE_DOCENT)/html/*
@$(foreach SOFT, $(MAKE_BUILDS), $(MAKE) -C $(MAKE_SOURCE)/$(SOFT) clean-documentation && ) true
@$(foreach LIBS, $(MAKE_MODULE), $(MAKE) -C $(LIBS) clean-documentation && ) true
#
# make - Implementation
#
make-install:
@$(foreach SOFT, $(MAKE_BUILDS), $(MAKE) -C $(MAKE_SOURCE)/$(SOFT) install && ) true
make-uninstall:
@$(foreach SOFT, $(MAKE_BUILDS), $(MAKE) -C $(MAKE_SOURCE)/$(SOFT) uninstall && ) true
#
# make - Directories
#
make-directories:
$(MAKE_CMMKDR) $(MAKE_BINARY) $(MAKE_DOCENT)