tool_chain

Christian Helmuth christian.helmuth at ...1...
Thu May 28 14:12:27 CEST 2009


Hello Julian,

thanks for the patch, but I have some questions...

On Wed, May 27, 2009 at 10:30:22PM +0200, Julian Stecklina wrote:
> diff --git a/tool/tool_chain b/tool/tool_chain
> index e830712..887b899 100755
> --- a/tool/tool_chain
> +++ b/tool/tool_chain
> @@ -14,9 +14,10 @@ BINUTILS_DOWNLOAD_URL = http://ftp.gnu.org/gnu/binutils
>  #
>  # Tool versions and install location
>  #
> -GCC_VERSION      = 4.2.4
> -BINUTILS_VERSION = 2.18
> -INSTALL_LOCATION = /usr/local/genode-gcc
> +GCC_VERSION      ?= 4.2.4
> +BINUTILS_VERSION ?= 2.18
> +INSTALL_LOCATION ?= /usr/local/genode-gcc
> +USE_SUDO         ?= yes

This variable is not used later in the script. Did you mean NOSUDO?

>  #
>  # Platform-specific configuration
> @@ -46,6 +47,13 @@ BRIGHT_COL  = \033[01;33m
>  DEFAULT_COL = \033[0m
>  ECHO        = @echo -e
>  
> +ifdef NOSUDO
> +  SUDO      =
> +  SUDO_MSG  =
> +else
> +  SUDO      = sudo
> +  SUDO_MSG  =  (requires root privileges)
> +endif

I would not care about the SUDO_MSG (or change it to "may require")
and just use SUDO as configuration variable:

  SUDO = sudo   -> use sudo
  SUDO =        -> just call subsequent command

>  help:
>  	$(ECHO) "Build tool chain for the Genode OS Framework"
> @@ -53,11 +61,16 @@ help:
>  	$(ECHO) "The tool chain consists of GCC $(GCC_VERSION) and binutils $(BINUTILS_VERSION)"
>  	$(ECHO) "and will be installed at $(INSTALL_LOCATION)."
>  	$(ECHO)
> +	$(ECHO)
>  	$(ECHO) "--- available commands ---"
>  	$(ECHO) "x86       - download, build, and install gcc and binutils for x86"
>  	$(ECHO) "clean     - clean everything except downloaded archives"
>  	$(ECHO) "cleanall  - clean everything including downloaded archives"
>  	$(ECHO) "uninstall - remove installation from $(INSTALL_LOCATION)"
> +	$(ECHO)
> +	$(ECHO) "--- customization ---"
> +	$(ECHO) "INSTALL_LOCATION=/your/directory - install into /your/directory"
> +	$(ECHO) "NOSUDO=yes                       - do not use sudo"

Please add all customizable variables.

>  #
>  # We use the binaries 'objdump' and 'g++' as examples for declaring
> @@ -101,8 +114,8 @@ binutils-$(BINUTILS_VERSION)/binutils/objdump: binutils-$(BINUTILS_VERSION)/Make
>  	@make -C binutils-$(BINUTILS_VERSION)
>  
>  $(INSTALL_LOCATION)/bin/$(PROGRAM_PREFIX)objdump: binutils-$(BINUTILS_VERSION)/binutils/objdump
> -	$(ECHO) "$(BRIGHT_COL)installing binutils... (requires root privileges)$(DEFAULT_COL)"
> -	@sudo make -C binutils-$(BINUTILS_VERSION) install
> +	$(ECHO) "$(BRIGHT_COL)installing binutils...$(SUDO_MSG)$(DEFAULT_COL)"
> +	@$(SUDO) make -C binutils-$(BINUTILS_VERSION) install
>  
>  gcc_build_$(PLATFORM)/Makefile: gcc-$(GCC_VERSION)
>  	$(ECHO) "$(BRIGHT_COL)configuring gcc...$(DEFAULT_COL)"
> @@ -114,8 +127,8 @@ gcc_build_$(PLATFORM)/gcc/g++: gcc_build_$(PLATFORM)/Makefile
>  	@make -C gcc_build_$(PLATFORM)
>  
>  $(INSTALL_LOCATION)/bin/$(PROGRAM_PREFIX)g++: gcc_build_$(PLATFORM)/gcc/g++
> -	$(ECHO) "$(BRIGHT_COL)installing gcc... (requires root privileges)$(DEFAULT_COL)"
> -	@sudo make -C gcc_build_$(PLATFORM) install
> +	$(ECHO) "$(BRIGHT_COL)installing gcc... $(SUDO_MSG)$(DEFAULT_COL)"
> +	@$(SUDO) make -C gcc_build_$(PLATFORM) install
>  
>  clean:
>  	rm -rf binutils-$(BINUTILS_VERSION) gcc-$(GCC_VERSION)
> @@ -124,7 +137,7 @@ cleanall: clean
>  	rm -rf binutils-$(BINUTILS_VERSION).tar.gz
>  	rm -rf gcc-core-$(GCC_VERSION).tar.bz2
>  	rm -rf gcc-g++-$(GCC_VERSION).tar.bz2
> -	rm -rf gcc_build_$(PLATFORM)
> +	rm -rf gcc_build_x86

Why not use PLATFORM here?

>  uninstall:
> -	sudo rm -rf $(INSTALL_LOCATION)
> +	$(SUDO) rm -rf $(INSTALL_LOCATION)

Cheers
-- 
Christian Helmuth
Genode Labs

http://www.genode-labs.com/ ยท http://genode.org/




More information about the users mailing list