de9fe5995ab9d76db3b2483a226823ea622885d6
[matrix.git] / scripts / matrix-autotools.mak
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 include $(MATRIX_SCRIPTDIR)/matrix-common.mak
12
13 t := $(shell if [ -d /usr/share/aclocal ]; then echo yes; else echo no; fi)
14 ifeq (yes,$(t))
15 ACLOCAL_ARGS := -I /usr/share/aclocal $(ACLOCAL_ARGS)
16 endif
17
18 ACLOCAL := aclocal $(ACLOCAL_ARGS)
19 PKG_CONFIG_PATH := /usr/lib/pkgconfig:/usr/share/pkgconfig:$(PKG_CONFIG_PATH)
20
21 export ACLOCAL PKG_CONFIG_PATH
22
23 has_configure := $(shell if [ -e ./configure ]; then echo "yes"; else echo "no"; fi)
24
25 ifdef no-docs
26 MATRIX_CONFIG_FLAGS += --disable-gtk-doc --disable-xml-docs --disable-doxygen-docs --disable-docbook --disable-docs
27 endif
28
29 ifdef no-examples
30 MATRIX_CONFIG_FLAGS += --disable-demos --disable-examples
31 endif
32
33 ifdef no-tests
34 MATRIX_CONFIG_FLAGS += --disable-tests
35 endif
36
37 ifdef debug
38 MATRIX_CONFIG_FLAGS += --enable-debug
39 else
40 MATRIX_CONFIG_FLAGS += --disable-debug
41 endif
42
43 ifndef MATRIX_CONFIGURE_ARGS
44 MATRIX_CONFIGURE_ARGS = --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
45                         $(MATRIX_CONFIG_FLAGS) \
46                         $(MATRIX_CONFIGURE_EXTRA_ARGS)
47 endif
48
49 ifneq ($(has_configure),yes)
50 MATRIX_AUTOGEN = __autogen
51 else
52 MATRIX_AUTOGEN = 
53 endif
54
55 __matrix_build: $(MATRIX_PREPARE_TARGET) $(MATRIX_AUTOGEN) __configure __build  __install_pre_lock
56         @echo "[$(MATRIX_COMPONENT)] Build completed"
57
58 __autogen: $(MATRIX_PREPARE_TARGET)
59         @$(MATRIX_AUTOGEN_ENV) ./autogen.sh $(MATRIX_AUTOGEN_ARGS)
60
61 __configure: $(MATRIX_AUTOGEN)
62 ifdef MATRIX_OBJ_DIR
63         rm -rf $(MATRIX_OBJ_DIR)
64         mkdir -p $(MATRIX_OBJ_DIR)
65         @cd $(MATRIX_OBJ_DIR) && $(MATRIX_CONFIGURE_ENV) $(MATRIX_TOPDIR)/$(MATRIX_COMPONENT)/configure --build=$(MATRIX_AUTOTOOLS_BUILD_ARCH) --host=$(MATRIX_AUTOTOOLS_HOST_ARCH) $(MATRIX_CONFIGURE_ARGS)
66 else    
67         @$(MATRIX_CONFIGURE_ENV) $(CCTOOL_BUILD) ./configure $(MATRIX_CONFIGURE_ARGS)
68 endif
69
70 __build: __configure
71 ifdef MATRIX_OBJ_DIR
72         @cd $(MATRIX_OBJ_DIR) && $(MATRIX_BUILD_ENV) $(CCTOOL_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
73 else
74         @$(MATRIX_BUILD_ENV) $(CCTOOL_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
75 endif
76
77
78 # this can't have any requisites as that would trigger a rebuild
79 # __install_pre_lock depends on __build so we're safe here
80
81 __install_post_lock:
82 ifdef MATRIX_OBJ_DIR
83         @cd $(MATRIX_OBJ_DIR) && $(MATRIX_INSTALL_ENV) $(CCTOOL_INSTALL) $(MAKE) install $(MATRIX_INSTALL_ARGS)
84 else
85         @$(MATRIX_INSTALL_ENV) $(CCTOOL_INSTALL) $(MAKE) install $(MATRIX_INSTALL_ARGS)
86 endif
87
88