Simplified build system for adding new examples.

This commit is contained in:
Gareth McMullin 2011-03-13 13:58:19 +13:00
parent ef766da468
commit 08990e5243
4 changed files with 21 additions and 169 deletions

View File

@ -24,6 +24,8 @@ INCDIR = $(DESTDIR)/$(PREFIX)/include
LIBDIR = $(DESTDIR)/$(PREFIX)/lib
INSTALL = install
TARGETS = stm32 lpc13xx lm3s
# Be silent per default, but 'make V=1' will show all compiler calls.
ifneq ($(V),1)
Q := @
@ -36,20 +38,20 @@ all: build
build: lib examples
lib:
@printf " BUILD lib/stm32\n"
$(Q)$(MAKE) -C lib/stm32 all
@printf " BUILD lib/lpc13xx\n"
$(Q)$(MAKE) -C lib/lpc13xx all
@printf " BUILD lib/lm3s\n"
$(Q)$(MAKE) -C lib/lm3s all
$(Q)for i in $(addprefix $@/,$(TARGETS)); do \
if [ -d $$i ]; then \
printf " BUILD $$i\n"; \
$(MAKE) -C $$i; \
fi; \
done
examples: lib
@printf " BUILD examples/stm32\n"
$(Q)$(MAKE) -C examples/stm32 all
@printf " BUILD examples/lpc13xx\n"
$(Q)$(MAKE) -C examples/lpc13xx all
@printf " BUILD examples/lm3s\n"
$(Q)$(MAKE) -C examples/lm3s all
examples:
$(Q)for i in $(addsuffix /*,$(addprefix $@/,$(TARGETS))); do \
if [ -d $$i ]; then \
printf " BUILD $$i\n"; \
$(MAKE) -C $$i; \
fi; \
done
install: lib
@printf " INSTALL headers\n"
@ -62,12 +64,12 @@ install: lib
$(Q)$(INSTALL) -m 0644 lib/*/*.ld $(LIBDIR)
clean:
$(Q)$(MAKE) -C examples/stm32 clean
$(Q)$(MAKE) -C lib/stm32 clean
$(Q)$(MAKE) -C examples/lpc13xx clean
$(Q)$(MAKE) -C lib/lpc13xx clean
$(Q)$(MAKE) -C examples/lm3s clean
$(Q)$(MAKE) -C lib/lm3s clean
$(Q)for i in $(addprefix lib/,$(TARGETS)) \
$(addsuffix /*,$(addprefix examples/,$(TARGETS))); do \
if [ -d $$i ]; then \
$(MAKE) -C $$i clean; \
fi; \
done
.PHONY: build lib examples install clean

View File

@ -1,38 +0,0 @@
##
## This file is part of the libopencm3 project.
##
## Copyright (C) 2010 Piotr Esden-Tempski <piotr@esden.net>
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
##
# Be silent per default, but 'make V=1' will show all compiler calls.
ifneq ($(V),1)
Q := @
# Do not print "Entering directory ...".
MAKEFLAGS += --no-print-directory
endif
all: lm3s3748-evb
lm3s3748-evb:
@printf " BUILD examples/lm3s/lm3s3748-evb\n"
$(Q)$(MAKE) -C lm3s3748-evb
clean:
@printf " CLEAN examples/lm3s/lm3s3748-evb\n"
$(Q)$(MAKE) -C lm3s3748-evb clean
.PHONY: lm3s3748-evb clean

View File

@ -1,38 +0,0 @@
##
## This file is part of the libopencm3 project.
##
## Copyright (C) 2010 Piotr Esden-Tempski <piotr@esden.net>
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
##
# Be silent per default, but 'make V=1' will show all compiler calls.
ifneq ($(V),1)
Q := @
# Do not print "Entering directory ...".
MAKEFLAGS += --no-print-directory
endif
all: lpc-p1343
lpc-p1343:
@printf " BUILD examples/lpc13xx/lpc-p1343\n"
$(Q)$(MAKE) -C lpc-p1343
clean:
@printf " CLEAN examples/lpc13xx/lpc-p1343\n"
$(Q)$(MAKE) -C lpc-p1343 clean
.PHONY: lpc-p1343 clean

View File

@ -1,74 +0,0 @@
##
## This file is part of the libopencm3 project.
##
## Copyright (C) 2010 Piotr Esden-Tempski <piotr@esden.net>
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
##
# Be silent per default, but 'make V=1' will show all compiler calls.
ifneq ($(V),1)
Q := @
# Do not print "Entering directory ...".
MAKEFLAGS += --no-print-directory
endif
all: stm32-discovery stm32-h103 stm32-h107 mb525 lisa-m obldc other
stm32-discovery:
@printf " BUILD examples/stm32/stm32-discovery\n"
$(Q)$(MAKE) -C stm32-discovery
stm32-h103:
@printf " BUILD examples/stm32/stm32-h103\n"
$(Q)$(MAKE) -C stm32-h103
stm32-h107:
@printf " BUILD examples/stm32/stm32-h107\n"
$(Q)$(MAKE) -C stm32-h107
mb525:
@printf " BUILD examples/stm32/mb525\n"
$(Q)$(MAKE) -C mb525
lisa-m:
@printf " BUILD examples/stm32/lisa-m\n"
$(Q)$(MAKE) -C lisa-m
other:
@printf " BUILD examples/stm32/other\n"
$(Q)$(MAKE) -C other
obldc:
@printf " BUILD examples/stm32/obldc\n"
$(Q)$(MAKE) -C obldc
clean:
@printf " CLEAN examples/stm32/stm32-discovery\n"
$(Q)$(MAKE) -C stm32-discovery clean
@printf " CLEAN examples/stm32/stm32-h103\n"
$(Q)$(MAKE) -C stm32-h103 clean
@printf " CLEAN examples/stm32/stm32-h107\n"
$(Q)$(MAKE) -C stm32-h107 clean
@printf " CLEAN examples/stm32/mb525\n"
$(Q)$(MAKE) -C mb525 clean
@printf " CLEAN examples/stm32/lisa-m\n"
$(Q)$(MAKE) -C lisa-m clean
@printf " CLEAN examples/stm32/other\n"
$(Q)$(MAKE) -C other clean
@printf " CLEAN examples/stm32/obldc\n"
$(Q)$(MAKE) -C obldc clean
.PHONY: stm32-discovery stm32-h103 stm32-h107 mb525 lisa-m other obldc clean