]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lib.git/blobdiff - Makefile
Change license to MIT
[pes-rpp/rpp-lib.git] / Makefile
index 7d0ea518758347baf1b37889fe4ba7909395aaa2..74efa02c46249cf579d333a70ec5855ee15d3d80 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,48 @@
-# This makefile tries to build all RPP projects in this repository.
+# Copyright (C) 2013-2015 Czech Technical University in Prague
+#
+# Authors:
+#     - Michal Sojka <sojkam1@fel.cvut.cz>
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation
+# files (the "Software"), to deal in the Software without
+# restriction, including without limitation the rights to use,
+# copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following
+# conditions:
 
-SUBDIRS = Debug POSIX apps/rpp-test-suite/Debug apps/rpp-test-suite/POSIX
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+#
+# File : Makefile
+# Abstract:
+#       This makefile tries to build all RPP projects in this repository.
+
+TARGETS=$(sort $(notdir $(patsubst %/,%,$(dir $(wildcard build/*/Makefile.config)))))
+
+SUBDIRS = $(foreach t,$(TARGETS),build/$(t)/Debug build/$(t)/apps/helloworld build/$(t)/apps/rpp-test-suite)
 
 subdir-targets = $(SUBDIRS:%=subdir-%)
 
 all: $(subdir-targets)
 
+print-targets:
+       @echo "Building for targets: $(TARGETS)"
+
 clean: $(subdir-targets)
 
 lib: # Build only the library
-       $(MAKE) -C Debug
+       $(MAKE) -C build/tms570_hydctr/Debug
 
 doc: # Build API documentation (Doxygen)
        $(MAKE) -C rpp/doc/api/
@@ -23,5 +56,34 @@ doc: # Build API documentation (Doxygen)
 # parallel.
 .NOTPARALLEL:
 
-subdir-% subdir-apps/%:
+subdir-build/%: print-targets
        $(MAKE) -C $(@:subdir-%=%) $(MAKECMDGOALS)
+
+
+UNCRUSTIFY_FILES = $(shell etc/git-ls-files-attr uncrustify)
+UNCRUSTIFY_CFG = etc/uncrustify.cfg
+define UNCRUSTIFY_ALL
+$(foreach i,$(UNCRUSTIFY_FILES),git show HEAD:$i | uncrustify -c $(UNCRUSTIFY_CFG) -o $i
+)
+endef
+
+# Usage: Run 'make uncrustify' and then 'git add -p' to commit the
+# changes you agree with.
+uncrustify:
+       git diff --quiet # Check that the tree is clean
+       $(UNCRUSTIFY_ALL)
+
+
+include common.mk
+
+$(eval $(call release_rules,rpp-lib))
+release: $(RELEASE_BASENAME).zip
+
+$(RELEASE_BASENAME)::
+# lwIP
+       git --git-dir=lwip/.git archive --prefix=$@/lwip/ $(RELEASE_COMMIT) | tar xf -
+# API doc
+       rm -rf rpp/doc/api/html
+       $(MAKE) -C rpp/doc/api
+       mkdir -p $@/rpp/doc/api/html
+       cp -rT rpp/doc/api/html $@/rpp/doc/api/html