Statistics
| Branch: | Tag: | Revision:

amiro-os / modules / Makefile @ 10fd7ac9

History | View | Annotate | Download (2.4 KB)

1
################################################################################
2
# AMiRo-OS is an operating system designed for the Autonomous Mini Robot       #
3
# (AMiRo) platform.                                                            #
4
# Copyright (C) 2016..2019  Thomas Schöpping et al.                            #
5
#                                                                              #
6
# This program is free software: you can redistribute it and/or modify         #
7
# it under the terms of the GNU General Public License as published by         #
8
# the Free Software Foundation, either version 3 of the License, or            #
9
# (at your option) any later version.                                          #
10
#                                                                              #
11
# This program is distributed in the hope that it will be useful,              #
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of               #
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                #
14
# GNU General Public License for more details.                                 #
15
#                                                                              #
16
# You should have received a copy of the GNU General Public License            #
17
# along with this program.  If not, see <http://www.gnu.org/licenses/>.        #
18
#                                                                              #
19
# This research/work was supported by the Cluster of Excellence Cognitive      #
20
# Interaction Technology 'CITEC' (EXC 277) at Bielefeld University, which is   #
21
# funded by the German Research Foundation (DFG).                              #
22
################################################################################
23

    
24

    
25

    
26
# absolute path to this directory
27
MODULES_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
28

    
29
# list of available modules
30
MODULES = $(patsubst $(MODULES_DIR)%/,%,$(sort $(dir $(wildcard $(MODULES_DIR)*/*))))
31

    
32
# set custom build directory, if any
33
ifneq ($(BUILDDIR),)
34
  export BUILDDIR
35
endif
36

    
37
CLEANTRGS = $(MODULES:%=clean_%)
38
FLASHTRGS = $(MODULES:%=flash_%)
39

    
40
.PHONY: all $(MODULES) $(FLASHTRGS) clean $(CLEANTRGS)
41

    
42
all:
43
	$(MAKE) -j$(words $(MODULES)) $(MODULES)
44

    
45
$(MODULES):
46
	$(MAKE) -C $(MODULES_DIR)$@
47

    
48
$(FLASHTRGS):
49
	$(MAKE) -C $(MODULES_DIR)$(@:flash_%=%) flash
50

    
51
clean:
52
	$(MAKE) -j$(words $(MODULES)) $(CLEANTRGS)
53

    
54
$(CLEANTRGS):
55
	$(MAKE) -C $(MODULES_DIR)$(@:clean_%=%) clean