rename makefiles for automatic syntax highlight etc.
[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 ifndef MATRIX_CONFIGURE_ARGS
42 MATRIX_CONFIGURE_ARGS = --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
43                         $(MATRIX_CONFIG_FLAGS) \
44                         $(MATRIX_CONFIGURE_EXTRA_ARGS)
45 endif
46
47 ifneq ($(has_configure),yes)
48 MATRIX_AUTOGEN = __autogen
49 else
50 MATRIX_AUTOGEN = 
51 endif
52
53 __matrix_build: $(MATRIX_PREPARE_TARGET) $(MATRIX_AUTOGEN) __configure __build
54         @echo "[$(MATRIX_COMPONENT)] Build completed"
55
56 __matrix_install: __install
57         @echo "[$(MATRIX_COMPONENT)] Install completed"
58
59 __autogen: $(MATRIX_PREPARE_TARGET)
60         @$(MATRIX_AUTOGEN_ENV) ./autogen.sh $(MATRIX_AUTOGEN_ARGS)
61
62 __configure: $(MATRIX_AUTOGEN)
63 ifdef MATRIX_OBJ_DIR
64         rm -rf $(MATRIX_OBJ_DIR)
65         mkdir -p $(MATRIX_OBJ_DIR)
66         @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)
67 else    
68         @$(MATRIX_CONFIGURE_ENV) $(CCTOOL_BUILD) ./configure $(MATRIX_CONFIGURE_ARGS)
69 endif
70
71 __build: __configure
72 ifdef MATRIX_OBJ_DIR
73         @cd $(MATRIX_OBJ_DIR) && $(MATRIX_BUILD_ENV) $(CCTOOL_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
74 else
75         @$(MATRIX_BUILD_ENV) $(CCTOOL_BUILD) $(MAKE) $(MATRIX_BUILD_ARGS)
76 endif
77
78
79 # this can't have any requisites as that would trigger a rebuild
80
81 __install:
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