autotools: allow clearing of configure/autogen args
[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 #          Timo Savola <tsavola@movial.fi>
5 #
6 # Provides the necessary targets to build a component using
7 # standard autotools in the normal 
8 # autogen.sh + configure + make + make install way.
9
10 __MATRIX_BUILD_STYLE_LOADED=1
11
12 t := $(shell if [ -d /usr/share/aclocal ]; then echo yes; else echo no; fi)
13 ifeq (yes,$(t))
14 ACLOCAL_FLAGS := -I /usr/share/aclocal $(ACLOCAL_ARGS) $(ACLOCAL_FLAGS)
15 endif
16
17 ACLOCAL := aclocal $(ACLOCAL_FLAGS)
18 PKG_CONFIG_PATH := /usr/lib/pkgconfig:/usr/share/pkgconfig:$(PKG_CONFIG_PATH)
19
20 export ACLOCAL PKG_CONFIG_PATH
21
22 has_configure := $(shell if [ -e ./configure ]; then echo "yes"; else echo "no"; fi)
23
24 ifdef no-docs
25 MATRIX_CONFIG_FLAGS += --disable-gtk-doc --disable-xml-docs --disable-doxygen-docs --disable-docbook --disable-docs
26 endif
27
28 ifdef no-examples
29 MATRIX_CONFIG_FLAGS += --disable-demos --disable-examples
30 endif
31
32 ifdef no-tests
33 MATRIX_CONFIG_FLAGS += --disable-tests
34 endif
35
36 ifdef debug
37 MATRIX_CONFIG_FLAGS += --enable-debug
38 else
39 MATRIX_CONFIG_FLAGS += --disable-debug
40 endif
41
42 ifdef quiet
43 MATRIX_CONFIG_FLAGS += --quiet
44 endif
45
46 ifeq ($(origin MATRIX_CONFIGURE_ARGS),undefined)
47 MATRIX_CONFIGURE_ARGS = --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
48                         $(MATRIX_CONFIG_FLAGS) \
49                         $(MATRIX_CONFIGURE_EXTRA_ARGS)
50 endif
51
52 ifndef MATRIX_AUTOGEN
53 MATRIX_AUTOGEN = $(if $(wildcard meta/autogen.sh),meta/autogen.sh,./autogen.sh)
54 endif
55
56 ifeq ($(origin MATRIX_AUTOGEN_ARGS),undefined)
57 MATRIX_AUTOGEN_ARGS = $(MATRIX_CONFIGURE_ARGS)
58 endif
59
60 __matrix_build: $(MATRIX_PREPARE_TARGET)
61 ifneq ($(has_configure),yes)
62         $(MATRIX_AUTOGEN_ENV) $(MATRIX_WRAP_AUTOGEN) $(MATRIX_AUTOGEN) $(MATRIX_AUTOGEN_ARGS)
63 endif
64 ifneq ($(MATRIX_OBJ_DIR),)
65         rm -rf $(MATRIX_OBJ_DIR)
66         mkdir -p $(MATRIX_OBJ_DIR)
67         cd $(MATRIX_OBJ_DIR) && $(MATRIX_CONFIGURE_ENV) $(MATRIX_WRAP_CONFIGURE) $(MATRIX_TOPDIR)/src/$(MATRIX_COMPONENT)/configure $(MATRIX_CONFIGURE_ARGS)
68         cd $(MATRIX_OBJ_DIR) && $(MATRIX_BUILD_ENV) $(MATRIX_WRAP_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
69 else
70         $(MATRIX_CONFIGURE_ENV) $(MATRIX_WRAP_CONFIGURE) ./configure $(MATRIX_CONFIGURE_ARGS)
71         $(MATRIX_BUILD_ENV) $(MATRIX_WRAP_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
72 endif
73
74 # this can't have any requisites as that would trigger a rebuild
75 __matrix_install:
76 ifneq ($(MATRIX_OBJ_DIR),)
77         cd $(MATRIX_OBJ_DIR) && $(MATRIX_INSTALL_ENV) $(MATRIX_WRAP_INSTALL) $(MAKE) install $(MATRIX_INSTALL_ARGS)
78 else
79         $(MATRIX_INSTALL_ENV) $(MATRIX_WRAP_INSTALL) $(MAKE) install $(MATRIX_INSTALL_ARGS)
80 endif
81
82 .PHONY: __matrix_build __matrix_install