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