]> rtime.felk.cvut.cz Git - arc.git/blobdiff - makefile
Merge branch 'mikulka' of git@rtime.felk.cvut.cz:arc into mikulka
[arc.git] / makefile
index ccfb623410b861ec10ee766d47f8ef86aa362321..6b64781e01bdcf74fb4f8c405a197028774c181e 100644 (file)
--- a/makefile
+++ b/makefile
@@ -11,7 +11,7 @@
 #   BOARDDIR=<board dir> \r
 #       Select what board to build for \r
 #   BDIR=<dir>[,<dir>] \r
-#       Select what directories to build. The kernel if always built.\r
+#       Select what directories to build. The kernel is always built.\r
 #   CROSS_COMPILE\r
 #       Specify the compiler to use.  \r
 #   Q=[(@)/empty] \r
@@ -38,8 +38,12 @@ else
        export SED=sed\r
 endif\r
 \r
-Q?=@\r
-export Q\r
+ifeq ($(VERBOSE),y)\r
+export Q?=\r
+else\r
+export Q?=@\r
+endif\r
+\r
 export TOPDIR = $(CURDIR)\r
 export PATH\r
 \r
@@ -51,45 +55,23 @@ export USE_DEBUG_PRINTF
 export SELECT_OPT\r
 \r
 ifneq ($(filter clean_all,$(MAKECMDGOALS)),clean_all)\r
-  ifeq (${BOARDDIR},)\r
-#    $(error BOARDDIR is empty) \r
+  ifeq ($(BOARDDIR),)\r
+    $(error BOARDDIR is empty)\r
+  endif\r
+  ifeq ($(BDIR),)\r
+    $(error BDIR is empty)\r
   endif\r
 endif\r
 \r
 USE_T32_SIM?=n\r
 export USE_T32_SIM\r
 \r
-# override BDIR := system/kernel ${BDIR} \r
-\r
 # Tools\r
 # Ugly thing to make things work under cmd.exe \r
 PATH := /usr/bin/:$(PATH) \r
-#find := $(shell which find)\r
 FIND := $(shell which find)\r
 \r
 export objdir = obj_$(BOARDDIR)\r
-\r
-.PHONY: clean\r
-.PHONY: release\r
-\r
-.PHONY: help\r
-help:\r
-       @echo "Make kernel and a simple example"\r
-       @echo "  > make BOARDDIR=mpc551xsim CROSS_COMPILE=/opt/powerpc-eabi/bin/powerpc-eabi- BDIR=examples/simple all"\r
-       @echo ""\r
-       @echo "Save the config (CROSS_COMPILE and BDIR)"\r
-       @echo "  > make BOARDDIR=mpc551xsim CROSS_COMPILE=/opt/powerpc-eabi/bin/powerpc-eabi- BDIR=examples/simple save"\r
-       @echo ""\r
-       @echo "Clean"\r
-       @echo "  > make clean"\r
-       @echo ""\r
-       @echo "Present config:"\r
-       @echo "  ARCH=$(ARCH)"\r
-       @echo "  ARCH_FAM=$(ARCH_FAM)"\r
-       @echo "  BOARDDIR =$(BOARDDIR)"\r
-       @echo "  CROSS_COMPILE =$(CROSS_COMPILE)"\r
-       @echo ""\r
-       \r
 export CFG_MCU \r
 export CFG_CPU\r
 export MCU\r
@@ -101,21 +83,21 @@ export def-y+=$(CFG_ARCH_$(ARCH)) $(CFG_MCU) $(CFG_CPU)
 # SUBDIR - The current subdirectory it's building.\r
 \r
 comma:= ,\r
+empty:=\r
+space:= $(empty) $(empty)\r
 split = $(subst $(comma), ,$(1))\r
 dir_cmd_goals  := $(call split,$(BDIR))\r
 cmd_cmd_goals := $(filter all clean config,$(MAKECMDGOALS))\r
 \r
 # Check for CROSS_COMPILE\r
 ifneq ($(cmd_cmd_goals),)\r
-#ifndef CROSS_COMPILE\r
-#  $(error CROSS_COMPILE not defined)\r
-#endif\r
 \r
 # Check that the board actually exist\r
 ifdef BOARDDIR\r
   all_boards := $(subst boards/,,$(shell $(FIND) boards/ -maxdepth 1 -type d))\r
+  all_boards_print := $(subst $(space),$(comma)$(space),$(strip $(all_boards)))\r
   ifeq ($(filter $(BOARDDIR),$(all_boards)),)\r
-       $(error no such board: $(BOARDDIR), valid boards are: $(all_boards))\r
+       $(error no such board: $(BOARDDIR), valid boards are: $(all_boards_print))\r
   endif\r
 endif\r
 \r
@@ -129,20 +111,47 @@ libs:
 \r
 all: libs $(dir_cmd_goals)\r
 \r
+.PHONY: clean\r
+.PHONY: release\r
+\r
+.PHONY: help\r
+help:\r
+       @echo "Build a simple example"\r
+       @echo "  > make BOARDDIR=mpc551xsim CROSS_COMPILE=/opt/powerpc-eabi/bin/powerpc-eabi- BDIR=examples/simple all"\r
+       @echo ""\r
+       @echo "Clean"\r
+       @echo "  > make clean"\r
+       @echo ""\r
+       @echo "Present config:"\r
+       @echo "  BDIR          = ${BDIR}"\r
+       @echo "  BOARDDIR      = $(BOARDDIR)"\r
+       @echo "  CROSS_COMPILE = $(CROSS_COMPILE)"\r
+       @echo "  CURDIR        = $(CURDIR)"     \r
+       @echo ""\r
+\r
 \r
 test:\r
        @echo $(all_boards)\r
 \r
 show_build:\r
-       @echo "BUILD INFO"\r
-       @echo "BOARDDIR:      $(BOARDDIR) [$(origin BOARDDIR)]"\r
-       @echo "BDIR:          $(BDIR) [$(origin BDIR)]"\r
-       @echo "CROSS_COMPILE: $(CROSS_COMPILE) [$(origin CROSS_COMPILE)]"\r
-       @echo "cmd_cmd_goals: $(cmd_cmd_goals)"\r
+       @echo ""\r
+       @echo "==========[ BUILD INFO ]==========="\r
+       @echo "  BDIR:           $(BDIR) [$(origin BDIR)]"\r
+       @echo "  BOARDDIR:       $(BOARDDIR) [$(origin BOARDDIR)]"\r
+       @echo "  COMPILER:       $(COMPILER) [$(origin COMPILER)]"      \r
+ifeq ($(COMPILER),cw)  \r
+       @echo "  CW_COMPILE:     $(CW_COMPILE) [$(origin CW_COMPILE)]"\r
+else \r
+       @echo "  CROSS_COMPILE:  $(CROSS_COMPILE) [$(origin CROSS_COMPILE)]"\r
+endif\r
+       @echo "  CURDIR:         $(CURDIR)"\r
+       @echo "  SELECT_CONSOLE: $(SELECT_CONSOLE) [$(origin SELECT_CONSOLE)]"\r
+       \r
        \r
        \r
 $(dir_cmd_goals) :: show_build FORCE   \r
-       @echo ==========[ $@  ]===========\r
+       @echo ""\r
+       @echo ==========[ ${abspath $@}  ]===========\r
        @if [ ! -d $@ ]; then echo "No such directory: \"$@\" quitting"; exit 1; fi\r
        +@[ -d $@/$(objdir) ] || mkdir -p $@/$(objdir)\r
        @chmod 777 $@/$(objdir)\r
@@ -156,20 +165,24 @@ boards:
        @find . -type d -name *\r
 \r
 clean_all:\r
-       @find . -type d -name obj_* | xargs rm -rf\r
-       @find . -type f -name *.a | xargs rm -rf\r
-       echo Done!\r
+       $(Q)find . -type d -name obj_* | xargs rm -rf\r
+       $(Q)find . -type f -name *.a | xargs rm -rf\r
+       @echo\r
+       @echo "  >>>>>>>>>  DONE  <<<<<<<<<"\r
+       @echo\r
        \r
 config: $(dir_cmd_goals)       \r
        \r
 .PHONY clean:  \r
 clean: $(dir_cmd_goals)\r
-       @echo "Clean:"\r
-       @echo "  Removing objectfiles and libs for ARCH=$(ARCH)"\r
-       @find . -type d -name $(objdir) | xargs rm -rf\r
-       @find . -type f -name *.a| xargs rm -rf\r
-       @rm   -rf libs/*\r
-       @echo Done!\r
+       @echo\r
+       @echo "  >> Cleaning MAIN $(CURDIR)"\r
+#      $(Q)find . -type d -name $(objdir) | xargs rm -rf\r
+#      $(Q)find . -type f -name *.a | xargs rm -rf\r
+#      $(Q)rm   -rf libs/*\r
+       @echo\r
+       @echo "  >>>>>>>>>  DONE  <<<<<<<<<"\r
+       @echo\r
 \r
                \r
        \r