1#
2#    realtime test suite Makefile.
3#
4#    Copyright (C) 2009, Cisco Systems Inc.
5#
6#    This program is free software; you can redistribute it and/or modify
7#    it under the terms of the GNU General Public License as published by
8#    the Free Software Foundation; either version 2 of the License, or
9#    (at your option) any later version.
10#
11#    This program is distributed in the hope that it will be useful,
12#    but WITHOUT ANY WARRANTY; without even the implied warranty of
13#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14#    GNU General Public License for more details.
15#
16#    You should have received a copy of the GNU General Public License along
17#    with this program; if not, write to the Free Software Foundation, Inc.,
18#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19#
20# Ngie Cooper, September 2009
21#
22
23top_srcdir		?= ../..
24
25# Override these variables to use non-system available tools.
26ACLOCAL			?= aclocal
27AUTOCONF		?= autoconf
28AUTOHEADER		?= autoheader
29AUTOMAKE		?= automake
30
31include $(top_srcdir)/include/mk/env_pre.mk
32# Ensure that this error / warning only applies for build targets.
33#
34# NOTE (garrcoop): this criterium should be in-sync with include/mk/env_pre.mk
35# (minus help as that's only invoked in the top-level Makefile).
36ifeq ($(filter autotools %clean .gitignore gitignore.%,$(MAKECMDGOALS)),)
37include $(abs_srcdir)/config.mk
38endif
39include $(top_srcdir)/include/mk/gitignore.mk
40
41LIBDIR			:= lib
42FILTER_OUT_DIRS		:= $(LIBDIR) m4
43LIB			:= $(LIBDIR)/librealtime.a
44
45# START autotools junk
46AUTOGENERATED_FILES	= \
47			m4/Makefile
48
49AUTOMAKE_FILES := config.guess config.sub install-sh missing stamp-h1
50
51.PHONY: autotools aclocal autoconf autoheader automake
52autotools: aclocal autoconf autoheader automake
53
54.PHONY: ac-clean ac-distclean ac-maintainer-clean
55ac-clean::
56	$(RM) -rf autom4te.cache
57	$(RM) -f aclocal.m4 config.log config.status
58	$(RM) -f include/realtime_config.h include/stamp-h1
59
60ac-distclean:: ac-clean
61ac-maintainer-clean:: ac-distclean
62	$(RM) -f aclocal.m4 configure $(AUTOMAKE_FILES) m4/Makefile.in
63	$(RM) -f include/realtime_config.h.in
64
65aclocal.m4:
66	$(ACLOCAL) -I $(abs_srcdir)/m4
67
68autoconf: configure
69
70include/realtime_config.h.in: configure.ac $(wildcard m4/*.m4) aclocal.m4
71	$(AUTOHEADER)
72
73configure: configure.ac aclocal.m4
74	$(AUTOCONF)
75automake: $(AUTOMAKE_FILES)
76$(AUTOMAKE_FILES): m4/Makefile.in
77m4/Makefile.in: m4/Makefile.am aclocal.m4
78	$(AUTOMAKE) -c -a
79
80.PHONY: autoheader
81autoheader: include/realtime_config.h.in
82	$(AUTOHEADER)
83
84distclean:: %: clean ac-distclean
85	$(RM) -f $(AUTOGENERATED_FILES)
86
87maintainer-clean:: distclean ac-maintainer-clean
88
89$(AUTOGENERATED_FILES): $(top_builddir)/config.status
90	$(SHELL) $^
91
92# END autotools junk
93
94$(LIBDIR):
95	mkdir -p "$@"
96
97$(LIB): $(LIBDIR)
98	$(MAKE) -C $^ -f "$(abs_srcdir)/$(LIBDIR)/Makefile" all
99
100trunk-all: $(LIB)
101
102trunk-clean:: | lib-clean
103
104lib-clean:: $(LIBDIR)
105	$(MAKE) -C $^ -f "$(abs_srcdir)/$(LIBDIR)/Makefile" clean
106
107# Stub reference for config.mk
108$(abs_srcdir)/config.mk:
109	$(MAKE) -C $(top_srcdir) help; false
110
111include $(top_srcdir)/include/mk/generic_trunk_target.mk
112