aboutsummaryrefslogtreecommitdiffstats
path: root/tools/automake/Makefile
blob: c016f1d76a6ef96e63ede4936533b10c510ed9c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#
# Copyright (C) 2006-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk

PKG_NAME:=automake
PKG_CPE_ID:=cpe:/a:gnu:automake
PKG_VERSION:=1.15.1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/automake
PKG_HASH:=af6ba39142220687c500f79b4aa2f181d9b24e4f8d8ec497cea4ba26c64bedaf

include $(INCLUDE_DIR)/host-build.mk

HOST_CONFIGURE_ARGS += \
	--datarootdir=$(STAGING_DIR_HOST)/share \
	--disable-silent-rules

HOST_CONFIGURE_VARS += \
	PERL="/usr/bin/env perl" \
	am_cv_prog_PERL_ithreads=no

define Host/Configure
	(cd $(HOST_BUILD_DIR); $(AM_TOOL_PATHS) STAGING_DIR="" ./bootstrap)
	$(call Host/Configure/Default)
endef

define Host/Install
	# remove old automake resources to avoid version conflicts
	rm -rf $(STAGING_DIR_HOST)/share/aclocal-[0-9]*
	rm -rf $(STAGING_DIR_HOST)/share/automake-[0-9]*
	$(MAKE) -C $(HOST_BUILD_DIR) install
	mv $(STAGING_DIR_HOST)/bin/aclocal $(STAGING_DIR_HOST)/bin/aclocal.real
	$(INSTALL_BIN) ./files/aclocal $(STAGING_DIR_HOST)/bin
	ln -sf aclocal $(STAGING_DIR_HOST)/bin/aclocal-1.9
	ln -sf aclocal $(STAGING_DIR_HOST)/bin/aclocal-1.10
	ln -sf aclocal $(STAGING_DIR_HOST)/bin/aclocal-1.11
	ln -sf aclocal $(STAGING_DIR_HOST)/bin/aclocal-1.11.6
	ln -sf aclocal $(STAGING_DIR_HOST)/bin/aclocal-1.15
endef

define Host/Clean
	-$(MAKE) -C $(HOST_BUILD_DIR) uninstall
	$(call Host/Clean/Default)
endef

$(eval $(call HostBuild))
n> You can also alter \texttt{option\_cb} from \texttt{config\_cb} based on the section type. This allows you to process every single config section based on its type individually. \texttt{config\_cb} is run every time a new section starts (before options are being processed). You can access the last section through the \texttt{CONFIG\_SECTION} variable. Also an extra call to \texttt{config\_cb} (without a new section) is generated after \texttt{config\_load} is done. That allows you to process sections both before and after all options were processed. Another way of iterating on config sections is using the \texttt{config\_foreach} command. Syntax: \begin{Verbatim} config_foreach <function name> [<sectiontype>] [<arguments...>] \end{Verbatim} This command will run the supplied function for every single config section in the currently loaded config. The section name will be passed to the function as argument 1. If the section type is added to the command line, the function will only be called for sections of the given type. You can access already processed options with the \texttt{config\_get} command Syntax: \begin{Verbatim} # print the value of the option config_get <section> <option> # store the value inside the variable config_get <variable> <section> <option> \end{Verbatim} In busybox ash the three-option \texttt{config\_get} is faster, because it does not result in an extra fork, so it is the preferred way. Additionally you can also modify or add options to sections by using the \texttt{config\_set} command. Syntax: \begin{Verbatim} config_set <section> <option> <value> \end{Verbatim} If a config section is unnamed, an automatically generated name will be assigned internally, e.g. \texttt{cfg1}, \texttt{cfg2}, ... While it is possible, using unnamed sections through these autogenerated names is strongly discouraged. Use callbacks or \texttt{config\_foreach} instead.