install using fakeroot only when component requests it
[matrix.git] / scripts / styles / autotools.mk
1 # Copyright (C) 2006-2008 Movial Oy
2 # Authors: Lauri Leukkunen
3 #          Kalle Vahlman <kalle.vahlman@movial.fi>
4 #
5 # Provides the necessary targets to build a component using
6 # standard autotools in the normal 
7 # autogen.sh + configure + make + make install way.
8
9 __MATRIX_BUILD_STYLE_LOADED=1
10
11 t := $(shell if [ -d /usr/share/aclocal ]; then echo yes; else echo no; fi)
12 ifeq (yes,$(t))
13 ACLOCAL_ARGS := -I /usr/share/aclocal $(ACLOCAL_ARGS)
14 endif
15
16 ACLOCAL := aclocal $(ACLOCAL_ARGS)
17 PKG_CONFIG_PATH := /usr/lib/pkgconfig:/usr/share/pkgconfig:$(PKG_CONFIG_PATH)
18
19 export ACLOCAL PKG_CONFIG_PATH
20
21 has_configure := $(shell if [ -e ./configure ]; then echo "yes"; else echo "no"; fi)
22
23 ifdef no-docs
24 MATRIX_CONFIG_FLAGS += --disable-gtk-doc --disable-xml-docs --disable-doxygen-docs --disable-docbook --disable-docs
25 endif
26
27 ifdef no-examples
28 MATRIX_CONFIG_FLAGS += --disable-demos --disable-examples
29 endif
30
31 ifdef no-tests
32 MATRIX_CONFIG_FLAGS += --disable-tests
33 endif
34
35 ifdef debug
36 MATRIX_CONFIG_FLAGS += --enable-debug
37 else
38 MATRIX_CONFIG_FLAGS += --disable-debug
39 endif
40
41 ifdef quiet
42 MATRIX_CONFIG_FLAGS += --quiet
43 endif
44
45 ifndef MATRIX_CONFIGURE_ARGS
46 MATRIX_CONFIGURE_ARGS = --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
47                         $(MATRIX_CONFIG_FLAGS) \
48                         $(MATRIX_CONFIGURE_EXTRA_ARGS)
49 endif
50
51 ifneq ($(has_configure),yes)
52 MATRIX_AUTOGEN = __autogen
53 else
54 MATRIX_AUTOGEN = 
55 endif
56
57 __matrix_build: $(MATRIX_PREPARE_TARGET) $(MATRIX_AUTOGEN) __configure __build
58         @echo "[$(MATRIX_COMPONENT)] Build completed"
59
60 __matrix_install: __install
61         @echo "[$(MATRIX_COMPONENT)] Install completed"
62
63 __autogen: $(MATRIX_PREPARE_TARGET)
64         @$(MATRIX_AUTOGEN_ENV) ./autogen.sh $(MATRIX_AUTOGEN_ARGS)
65
66 __configure: $(MATRIX_AUTOGEN)
67 ifdef MATRIX_OBJ_DIR
68         rm -rf $(MATRIX_OBJ_DIR)
69         mkdir -p $(MATRIX_OBJ_DIR)
70         @cd $(MATRIX_OBJ_DIR) && $(MATRIX_CONFIGURE_ENV) $(MATRIX_TOPDIR)/src/$(MATRIX_COMPONENT)/configure --build=$(MATRIX_AUTOTOOLS_BUILD_ARCH) --host=$(MATRIX_AUTOTOOLS_HOST_ARCH) $(MATRIX_CONFIGURE_ARGS)
71 else    
72         @$(MATRIX_CONFIGURE_ENV) $(CCTOOL_BUILD) ./configure $(MATRIX_CONFIGURE_ARGS)
73 endif
74
75 __build: __configure
76 ifdef MATRIX_OBJ_DIR
77         @cd $(MATRIX_OBJ_DIR) && $(MATRIX_BUILD_ENV) $(CCTOOL_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
78 else
79         @$(MATRIX_BUILD_ENV) $(CCTOOL_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
80 endif
81
82
83 # this can't have any requisites as that would trigger a rebuild
84
85 __install:
86 ifdef MATRIX_OBJ_DIR
87         @cd $(MATRIX_OBJ_DIR) && $(MATRIX_INSTALL_ENV) $(FAKEROOT_INSTALL) $(CCTOOL_INSTALL) $(MAKE) install $(MATRIX_INSTALL_ARGS)
88 else
89         @$(MATRIX_INSTALL_ENV) $(FAKEROOT_INSTALL) $(CCTOOL_INSTALL) $(MAKE) install $(MATRIX_INSTALL_ARGS)
90 endif
91
92