MATRIX_WRAP_*, MATRIX_SB2_* and MATRIX_FAKEROOT variables
authorTimo Savola <tsavola@movial.fi>
Tue, 10 Jun 2008 10:27:49 +0000 (13:27 +0300)
committerTimo Savola <tsavola@movial.fi>
Tue, 10 Jun 2008 10:27:49 +0000 (13:27 +0300)
the following variables may be set in component plug-files or in the
environment:

    * MATRIX_WRAP_AUTOGEN,
    * MATRIX_WRAP_CONFIGURE,
    * MATRIX_WRAP_BUILD and
    * MATRIX_WRAP_INSTALL replace CCTOOL_INSTALL and CCTOOL_BUILD.  Their
      values are prepended to commands used in the respective make target
      invocation.

    * MATRIX_SB2_TARGET enables Scratchbox 2 support.  an appropriate sb2
      invocation is appended to the MATRIX_WRAP_* variables.
    * MATRIX_SB2_DISABLE can be used to disable sb2 invocation for some or
      all make targets (see below).

    * MATRIX_FAKEROOT enables fakeroot for some or all make targets
      (see below).

MATRIX_SB2_DISABLE and MATRIX_FAKEROOT may contain a whitespace-separated
list of the following keywords:

    * autogen
    * configure
    * build
    * install
    * all       - same as specifying all of the above

scripts/matrix.mk
scripts/styles/autotools.mk
scripts/styles/custom.mk
scripts/styles/make.mk

index 7ba0a9c..68e8b02 100644 (file)
@@ -4,13 +4,50 @@
 #          Tuomas Kulve <tuomas.kulve@movial.fi>
 #          Timo Savola <tsavola@movial.fi>
 
-#CCTOOL_INSTALL=sb2 -e
-#CCTOOL_BUILD=sb2
-
 include meta/plug
 
-ifneq ($(FAKEROOT),)
-FAKEROOT_INSTALL       := fakeroot -s $(MATRIX_WORKDIR)/meta/fakedb
+ifneq ($(MATRIX_SB2_TARGET),)
+
+  ifeq ($(filter all autogen,$(MATRIX_SB2_DISABLE)),)
+  MATRIX_WRAP_AUTOGEN  += sb2 -t $(MATRIX_SB2_TARGET)
+  endif
+
+  ifeq ($(filter all configure,$(MATRIX_SB2_DISABLE)),)
+  MATRIX_WRAP_CONFIGURE        += sb2 -t $(MATRIX_SB2_TARGET)
+  endif
+
+  ifeq ($(filter all build,$(MATRIX_SB2_DISABLE)),)
+  MATRIX_WRAP_BUILD    += sb2 -t $(MATRIX_SB2_TARGET)
+  endif
+
+  ifeq ($(filter all install,$(MATRIX_SB2_DISABLE)),)
+  MATRIX_WRAP_INSTALL  += sb2 -t $(MATRIX_SB2_TARGET) -m install
+  endif
+
+  ifneq ($(filter-out all autogen configure build install,$(MATRIX_SB2_DISABLE)),)
+  $(error "invalid MATRIX_SB2_DISABLE value")
+  endif
+
+endif
+
+ifneq ($(filter all autogen,$(MATRIX_FAKEROOT)),)
+MATRIX_WRAP_AUTOGEN    += fakeroot
+endif
+
+ifneq ($(filter all configure,$(MATRIX_FAKEROOT)),)
+MATRIX_WRAP_CONFIGURE  += fakeroot
+endif
+
+ifneq ($(filter all build,$(MATRIX_FAKEROOT)),)
+MATRIX_WRAP_BUILD      += fakeroot
+endif
+
+ifneq ($(filter all install,$(MATRIX_FAKEROOT)),)
+MATRIX_WRAP_INSTALL    += fakeroot -s $(MATRIX_WORKDIR)/meta/fakedb
+endif
+
+ifneq ($(filter-out all autogen configure build install,$(MATRIX_FAKEROOT)),)
+$(error "invalid MATRIX_FAKEROOT value")
 endif
 
 __MATRIX_BUILD_STYLE_FILE := $(MATRIX_SCRIPTDIR)/styles/$(MATRIX_BUILD_STYLE).mk
index fd5dd94..b0d238e 100644 (file)
@@ -1,6 +1,7 @@
 # Copyright (C) 2006-2008 Movial Oy
 # Authors: Lauri Leukkunen
 #          Kalle Vahlman <kalle.vahlman@movial.fi>
+#          Timo Savola <tsavola@movial.fi>
 #
 # Provides the necessary targets to build a component using
 # standard autotools in the normal 
@@ -48,45 +49,26 @@ MATRIX_CONFIGURE_ARGS = --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
                         $(MATRIX_CONFIGURE_EXTRA_ARGS)
 endif
 
+__matrix_build: $(MATRIX_PREPARE_TARGET)
 ifneq ($(has_configure),yes)
-MATRIX_AUTOGEN = __autogen
-else
-MATRIX_AUTOGEN = 
+       $(MATRIX_AUTOGEN_ENV) $(MATRIX_WRAP_AUTOGEN) ./autogen.sh $(MATRIX_AUTOGEN_ARGS)
 endif
-
-__matrix_build: $(MATRIX_PREPARE_TARGET) $(MATRIX_AUTOGEN) __configure __build
-       @echo "[$(MATRIX_COMPONENT)] Build completed"
-
-__matrix_install: __install
-       @echo "[$(MATRIX_COMPONENT)] Install completed"
-
-__autogen: $(MATRIX_PREPARE_TARGET)
-       @$(MATRIX_AUTOGEN_ENV) $(CCTOOL_BUILD) ./autogen.sh $(MATRIX_AUTOGEN_ARGS)
-
-__configure: $(MATRIX_AUTOGEN)
-ifdef MATRIX_OBJ_DIR
+ifneq ($(MATRIX_OBJ_DIR),)
        rm -rf $(MATRIX_OBJ_DIR)
        mkdir -p $(MATRIX_OBJ_DIR)
-       @cd $(MATRIX_OBJ_DIR) && $(MATRIX_CONFIGURE_ENV) $(CCTOOL_BUILD) $(MATRIX_TOPDIR)/src/$(MATRIX_COMPONENT)/configure --build=$(MATRIX_AUTOTOOLS_BUILD_ARCH) --host=$(MATRIX_AUTOTOOLS_HOST_ARCH) $(MATRIX_CONFIGURE_ARGS)
-else   
-       @$(MATRIX_CONFIGURE_ENV) $(CCTOOL_BUILD) ./configure $(MATRIX_CONFIGURE_ARGS)
-endif
-
-__build: __configure
-ifdef MATRIX_OBJ_DIR
-       @cd $(MATRIX_OBJ_DIR) && $(MATRIX_BUILD_ENV) $(CCTOOL_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
+       cd $(MATRIX_OBJ_DIR) && $(MATRIX_CONFIGURE_ENV) $(MATRIX_WRAP_CONFIGURE) $(MATRIX_TOPDIR)/src/$(MATRIX_COMPONENT)/configure $(MATRIX_CONFIGURE_ARGS)
+       cd $(MATRIX_OBJ_DIR) && $(MATRIX_BUILD_ENV) $(MATRIX_WRAP_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
 else
-       @$(MATRIX_BUILD_ENV) $(CCTOOL_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
+       $(MATRIX_CONFIGURE_ENV) $(MATRIX_WRAP_CONFIGURE) ./configure $(MATRIX_CONFIGURE_ARGS)
+       $(MATRIX_BUILD_ENV) $(MATRIX_WRAP_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
 endif
 
-
 # this can't have any requisites as that would trigger a rebuild
-
-__install:
-ifdef MATRIX_OBJ_DIR
-       @cd $(MATRIX_OBJ_DIR) && $(MATRIX_INSTALL_ENV) $(CCTOOL_INSTALL) $(FAKEROOT_INSTALL) $(MAKE) install $(MATRIX_INSTALL_ARGS)
+__matrix_install:
+ifneq ($(MATRIX_OBJ_DIR),)
+       cd $(MATRIX_OBJ_DIR) && $(MATRIX_INSTALL_ENV) $(MATRIX_WRAP_INSTALL) $(MAKE) install $(MATRIX_INSTALL_ARGS)
 else
-       @$(MATRIX_INSTALL_ENV) $(CCTOOL_INSTALL) $(FAKEROOT_INSTALL) $(MAKE) install $(MATRIX_INSTALL_ARGS)
+       $(MATRIX_INSTALL_ENV) $(MATRIX_WRAP_INSTALL) $(MAKE) install $(MATRIX_INSTALL_ARGS)
 endif
 
-
+.PHONY: __matrix_build __matrix_install
index dd00b37..c10381d 100644 (file)
@@ -1,14 +1,14 @@
 # Copyright (C) 2006-2008 Movial Oy
 # Authors: Lauri Leukkunen
-
+#          Timo Savola <tsavola@movial.fi>
 
 __MATRIX_BUILD_STYLE_LOADED=1
 
-.PHONY: configure build install __matrix_build __matrix_install
-
 __matrix_build:
-       @$(CCTOOL_BUILD) $(MAKE) -f meta/plug configure
-       @$(CCTOOL_BUILD) $(MAKE) -f meta/plug build
+       $(MATRIX_WRAP_CONFIGURE) $(MAKE) -f meta/plug configure
+       $(MATRIX_WRAP_BUILD) $(MAKE) -f meta/plug build
 
 __matrix_install:
-       @$(CCTOOL_INSTALL) $(FAKEROOT_INSTALL) $(MAKE) -f meta/plug install
+       $(MATRIX_WRAP_INSTALL) $(MAKE) -f meta/plug install
+
+.PHONY: configure build install __matrix_build __matrix_install
index e9b47ed..feb4f2d 100644 (file)
@@ -8,9 +8,9 @@ MATRIX_BUILD_ARGS       ?= $(MATRIX_ARGS)
 MATRIX_INSTALL_ARGS    ?= $(MATRIX_ARGS)
 
 __matrix_build:
-       @$(CCTOOL_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
+       $(MATRIX_WRAP_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
 
 __matrix_install:
-       @$(CCTOOL_INSTALL) $(FAKEROOT_INSTALL) $(MAKE) $(MATRIX_INSTALL_ARGS) install
+       $(MATRIX_WRAP_INSTALL) $(MAKE) $(MATRIX_INSTALL_ARGS) install
 
 .PHONY: __matrix_build __matrix_install