222 lines
7.5 KiB
Makefile
222 lines
7.5 KiB
Makefile
|
# Copyright 2010 Google Inc.
|
||
|
# All rights reserved.
|
||
|
#
|
||
|
# Redistribution and use in source and binary forms, with or without
|
||
|
# modification, are permitted provided that the following conditions are
|
||
|
# met:
|
||
|
#
|
||
|
# * Redistributions of source code must retain the above copyright
|
||
|
# notice, this list of conditions and the following disclaimer.
|
||
|
# * Redistributions in binary form must reproduce the above copyright
|
||
|
# notice, this list of conditions and the following disclaimer in the
|
||
|
# documentation and/or other materials provided with the distribution.
|
||
|
# * Neither the name of Google Inc. nor the names of its contributors
|
||
|
# may be used to endorse or promote products derived from this software
|
||
|
# without specific prior written permission.
|
||
|
#
|
||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
|
||
|
ACLOCAL_AMFLAGS = -I m4
|
||
|
|
||
|
doc_DATA = AUTHORS COPYING NEWS README
|
||
|
noinst_DATA = INSTALL README
|
||
|
EXTRA_DIST = $(doc_DATA) INSTALL README
|
||
|
|
||
|
LUTOK_CFLAGS = -I$(srcdir)/include $(LUA_CFLAGS)
|
||
|
LUTOK_LIBS = liblutok.la $(LUA_LIBS)
|
||
|
|
||
|
pkginclude_HEADERS = c_gate.hpp
|
||
|
pkginclude_HEADERS += debug.hpp
|
||
|
pkginclude_HEADERS += exceptions.hpp
|
||
|
pkginclude_HEADERS += operations.hpp
|
||
|
pkginclude_HEADERS += stack_cleaner.hpp
|
||
|
pkginclude_HEADERS += state.hpp
|
||
|
pkginclude_HEADERS += state.ipp
|
||
|
pkginclude_HEADERS += test_utils.hpp
|
||
|
|
||
|
EXTRA_DIST += include/lutok/README
|
||
|
EXTRA_DIST += include/lutok/c_gate.hpp
|
||
|
EXTRA_DIST += include/lutok/debug.hpp
|
||
|
EXTRA_DIST += include/lutok/exceptions.hpp
|
||
|
EXTRA_DIST += include/lutok/operations.hpp
|
||
|
EXTRA_DIST += include/lutok/stack_cleaner.hpp
|
||
|
EXTRA_DIST += include/lutok/state.hpp
|
||
|
EXTRA_DIST += include/lutok/state.ipp
|
||
|
|
||
|
lib_LTLIBRARIES = liblutok.la
|
||
|
liblutok_la_SOURCES = c_gate.cpp
|
||
|
liblutok_la_SOURCES += c_gate.hpp
|
||
|
liblutok_la_SOURCES += debug.cpp
|
||
|
liblutok_la_SOURCES += debug.hpp
|
||
|
liblutok_la_SOURCES += exceptions.cpp
|
||
|
liblutok_la_SOURCES += exceptions.hpp
|
||
|
liblutok_la_SOURCES += operations.cpp
|
||
|
liblutok_la_SOURCES += operations.hpp
|
||
|
liblutok_la_SOURCES += stack_cleaner.cpp
|
||
|
liblutok_la_SOURCES += stack_cleaner.hpp
|
||
|
liblutok_la_SOURCES += state.cpp
|
||
|
liblutok_la_SOURCES += state.hpp
|
||
|
liblutok_la_SOURCES += state.ipp
|
||
|
liblutok_la_SOURCES += test_utils.hpp
|
||
|
liblutok_la_CPPFLAGS = $(LUTOK_CFLAGS)
|
||
|
liblutok_la_LDFLAGS = -version-info 3:0:0
|
||
|
liblutok_la_LIBADD = $(LUA_LIBS)
|
||
|
|
||
|
pkgconfig_DATA = lutok.pc
|
||
|
CLEANFILES = lutok.pc
|
||
|
EXTRA_DIST += lutok.pc.in
|
||
|
lutok.pc: $(srcdir)/lutok.pc.in Makefile
|
||
|
$(AM_V_GEN)sed -e 's#__INCLUDEDIR__#$(includedir)#g' \
|
||
|
-e 's#__LIBDIR__#$(libdir)#g' \
|
||
|
-e 's#__LUA_CFLAGS__#$(LUA_CFLAGS)#g' \
|
||
|
-e 's#__LUA_LIBS__#$(LUA_LIBS)#g' \
|
||
|
-e 's#__VERSION__#$(PACKAGE_VERSION)#g' \
|
||
|
<$(srcdir)/lutok.pc.in >lutok.pc.tmp; \
|
||
|
mv lutok.pc.tmp lutok.pc
|
||
|
|
||
|
CLEAN_TARGETS =
|
||
|
DIST_HOOKS =
|
||
|
PHONY_TARGETS =
|
||
|
|
||
|
examplesdir = $(docdir)/examples
|
||
|
examples_DATA = examples/Makefile
|
||
|
examples_DATA += examples/bindings.cpp
|
||
|
examples_DATA += examples/hello.cpp
|
||
|
examples_DATA += examples/interpreter.cpp
|
||
|
examples_DATA += examples/raii.cpp
|
||
|
EXTRA_DIST += $(examples_DATA)
|
||
|
|
||
|
if WITH_ATF
|
||
|
tests_DATA = Kyuafile
|
||
|
EXTRA_DIST += $(tests_DATA)
|
||
|
|
||
|
tests_PROGRAMS = c_gate_test
|
||
|
c_gate_test_SOURCES = c_gate_test.cpp test_utils.hpp
|
||
|
c_gate_test_CXXFLAGS = $(LUTOK_CFLAGS) $(ATF_CXX_CFLAGS)
|
||
|
c_gate_test_LDADD = $(LUTOK_LIBS) $(ATF_CXX_LIBS)
|
||
|
|
||
|
tests_PROGRAMS += debug_test
|
||
|
debug_test_SOURCES = debug_test.cpp test_utils.hpp
|
||
|
debug_test_CXXFLAGS = $(LUTOK_CFLAGS) $(ATF_CXX_CFLAGS)
|
||
|
debug_test_LDADD = $(LUTOK_LIBS) $(ATF_CXX_LIBS)
|
||
|
|
||
|
tests_SCRIPTS = examples_test
|
||
|
CLEANFILES += examples_test
|
||
|
EXTRA_DIST += examples_test.sh
|
||
|
examples_test: $(srcdir)/examples_test.sh
|
||
|
$(AM_V_GEN)sed -e 's,__ATF_SH__,$(ATF_SH),g' \
|
||
|
-e 's,__CXX__,$(CXX),g' \
|
||
|
-e 's,__EXAMPLESDIR__,$(examplesdir),g' \
|
||
|
-e 's,__LIBDIR__,$(libdir),g' \
|
||
|
<$(srcdir)/examples_test.sh >examples_test.tmp; \
|
||
|
chmod +x examples_test.tmp; \
|
||
|
rm -f examples_test; \
|
||
|
mv examples_test.tmp examples_test
|
||
|
|
||
|
tests_PROGRAMS += exceptions_test
|
||
|
exceptions_test_SOURCES = exceptions_test.cpp
|
||
|
exceptions_test_CXXFLAGS = $(LUTOK_CFLAGS) $(ATF_CXX_CFLAGS)
|
||
|
exceptions_test_LDADD = $(LUTOK_LIBS) $(ATF_CXX_LIBS)
|
||
|
|
||
|
tests_PROGRAMS += operations_test
|
||
|
operations_test_SOURCES = operations_test.cpp test_utils.hpp
|
||
|
operations_test_CXXFLAGS = $(LUTOK_CFLAGS) $(ATF_CXX_CFLAGS)
|
||
|
operations_test_LDADD = $(LUTOK_LIBS) $(ATF_CXX_LIBS)
|
||
|
|
||
|
tests_PROGRAMS += stack_cleaner_test
|
||
|
stack_cleaner_test_SOURCES = stack_cleaner_test.cpp test_utils.hpp
|
||
|
stack_cleaner_test_CXXFLAGS = $(LUTOK_CFLAGS) $(ATF_CXX_CFLAGS)
|
||
|
stack_cleaner_test_LDADD = $(LUTOK_LIBS) $(ATF_CXX_LIBS)
|
||
|
|
||
|
tests_PROGRAMS += state_test
|
||
|
state_test_SOURCES = state_test.cpp test_utils.hpp
|
||
|
state_test_CXXFLAGS = $(LUTOK_CFLAGS) $(ATF_CXX_CFLAGS)
|
||
|
state_test_LDADD = $(LUTOK_LIBS) $(ATF_CXX_LIBS)
|
||
|
|
||
|
if HAVE_KYUA
|
||
|
check-local: check-kyua
|
||
|
PHONY_TARGETS += check-kyua
|
||
|
check-kyua:
|
||
|
$(TESTS_ENVIRONMENT) kyua test \
|
||
|
--kyuafile='$(top_srcdir)/Kyuafile' --build-root='$(top_builddir)'
|
||
|
|
||
|
installcheck-local: installcheck-kyua
|
||
|
PHONY_TARGETS += installcheck-kyua
|
||
|
installcheck-kyua:
|
||
|
cd $(testsdir) && $(TESTS_ENVIRONMENT) kyua test
|
||
|
endif
|
||
|
else
|
||
|
DIST_HOOKS += dist-no-atf
|
||
|
PHONY_TARGETS += dist-no-atf
|
||
|
dist-no-atf:
|
||
|
@echo "Sorry; cannot build a distfile without atf"
|
||
|
@false
|
||
|
endif
|
||
|
|
||
|
if WITH_DOXYGEN
|
||
|
# This should probably be html-local, but it seems better to generate the
|
||
|
# documentation in all cases to get warnings about missing documentation every
|
||
|
# time the code is modified. (And, after all, the documentation is not
|
||
|
# installed so generating it unconditionally is not a big problem.)
|
||
|
all-local: api-docs/api-docs.tag
|
||
|
|
||
|
api-docs/api-docs.tag: $(builddir)/Doxyfile $(SOURCES)
|
||
|
$(AM_V_GEN)rm -rf api-docs; \
|
||
|
mkdir -p api-docs; \
|
||
|
${DOXYGEN} $(builddir)/Doxyfile 2>&1 | tee api-docs/warnings; \
|
||
|
rm -f api-docs/html/installdox
|
||
|
api-docs/html: api-docs/api-docs.tag
|
||
|
|
||
|
CLEAN_TARGETS += clean-api-docs
|
||
|
clean-api-docs:
|
||
|
rm -rf api-docs
|
||
|
|
||
|
EXTRA_DIST += api-docs/html
|
||
|
else
|
||
|
DIST_HOOKS += dist-no-doxygen
|
||
|
PHONY_TARGETS += dist-no-doxygen
|
||
|
dist-no-doxygen:
|
||
|
@echo "Sorry; cannot build a distfile without Doxygen"
|
||
|
@false
|
||
|
endif
|
||
|
|
||
|
install-data-local: install-api-docs
|
||
|
install-api-docs: install-docDATA
|
||
|
@echo "Installing HTML documentation into $(DESTDIR)$(htmldir)"
|
||
|
@if [ -d api-docs/html ]; then \
|
||
|
test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"; \
|
||
|
( cd api-docs/html && tar cf - . ) | \
|
||
|
( cd "$(DESTDIR)$(htmldir)" && tar xf - ); \
|
||
|
elif [ -d "$(srcdir)/api-docs/html" ]; then \
|
||
|
test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"; \
|
||
|
( cd "$(srcdir)/api-docs/html" && tar cf - . ) | \
|
||
|
( cd "$(DESTDIR)$(htmldir)" && tar xf - ); \
|
||
|
else \
|
||
|
echo "Doxygen not installed and prebuilt documents not found"; \
|
||
|
fi
|
||
|
|
||
|
uninstall-local: uninstall-api-docs
|
||
|
uninstall-api-docs:
|
||
|
find "$(DESTDIR)$(htmldir)" -type d -exec chmod 755 {} \;
|
||
|
rm -rf "$(DESTDIR)$(htmldir)"
|
||
|
|
||
|
clean-local: $(CLEAN_TARGETS)
|
||
|
|
||
|
PHONY_TARGETS += clean-all
|
||
|
clean-all:
|
||
|
GIT="$(GIT)" $(SH) $(srcdir)/admin/clean-all.sh
|
||
|
|
||
|
dist-hook: $(DIST_HOOKS)
|
||
|
|
||
|
.PHONY: ${PHONY_TARGETS}
|