1
0
mirror of https://github.com/OlafvdSpek/ctemplate.git synced 2025-09-28 19:05:49 +08:00
ctemplate/Makefile.am
csilvers+ctemplate@google.com 6dd1aabba0 compile_test wasn't testing what I wanted: because it ran in
the main ctemplate source tree, it had access to files that
weren't going to be installed, when the whole point it to test
this can compile against the installed ctemplate.

To resolve this, I added a new rule that's executed at install
time (or the 'install' done during 'make distcheck').  I've
verified that this finds the problems with the current
ctemplate distribution that compile_test was supposed to
capture, and that are reported in
http://code.google.com/p/google-ctemplate/issues/detail?id=79

While in the area, add a few files that aren't in the dist
tarball but should be.  MOE noticed these.

R=jad
DELTA=11  (10 added, 0 deleted, 1 changed)


Revision created by MOE tool push_codebase.
MOE_MIGRATION=2766
2011-07-28 07:45:12 +00:00

501 lines
25 KiB
Makefile

## Process this file with automake to produce Makefile.in
# Make sure that when we re-make ./configure, we get the macros we need
ACLOCAL_AMFLAGS = -I m4
# This is so we can #include <ctemplate/foo>
AM_CPPFLAGS = -I$(top_srcdir)/src
# These are good warnings to turn on by default
if GCC
AM_CXXFLAGS = -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare
endif
ctemplateincludedir = $(includedir)/ctemplate
## The .h files you want to install (that is, .h files that people
## who install this package can include in their own applications.)
## We have to include both the .h and .h.in forms. The latter we
## put in noinst_HEADERS.
## NOTE: If you add a file here, also add it to the end of configure.ac
nodist_ctemplateinclude_HEADERS = \
src/ctemplate/template.h \
src/ctemplate/template_cache.h \
src/ctemplate/template_string.h \
src/ctemplate/template_enums.h \
src/ctemplate/template_pathops.h \
src/ctemplate/template_modifiers.h \
src/ctemplate/template_dictionary.h \
src/ctemplate/template_dictionary_interface.h \
src/ctemplate/template_annotator.h \
src/ctemplate/template_emitter.h \
src/ctemplate/template_namelist.h \
src/ctemplate/per_expand_data.h
noinst_HEADERS = \
src/ctemplate/template.h.in \
src/ctemplate/template_cache.h.in \
src/ctemplate/template_string.h.in \
src/ctemplate/template_enums.h.in \
src/ctemplate/template_pathops.h.in \
src/ctemplate/template_modifiers.h.in \
src/ctemplate/template_dictionary.h.in \
src/ctemplate/template_dictionary_interface.h.in \
src/ctemplate/template_annotator.h.in \
src/ctemplate/template_emitter.h.in \
src/ctemplate/template_namelist.h.in \
src/ctemplate/per_expand_data.h.in
docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION)
## This is for HTML and other documentation you want to install.
## Add your documentation files (in doc/) in addition to these
## top-level boilerplate files. Also add a TODO file if you have one.
dist_doc_DATA = AUTHORS COPYING ChangeLog INSTALL NEWS README README_windows.txt \
doc/designstyle.css doc/index.html \
doc/howto.html doc/guide.html doc/reference.html \
doc/tips.html doc/example.html doc/auto_escape.html \
doc/xss_resources.html
## The libraries (.so's) you want to install
lib_LTLIBRARIES =
## Libraries that we want to use only internally (for our unittest binaries)
noinst_LTLIBRARIES =
## The binaries you want to install
bin_PROGRAMS =
bin_SCRIPTS =
## The location of the windows project file for each binary we make
WINDOWS_PROJECTS = google-ctemplate.sln
## unittests you want to run when people type 'make check'.
## TESTS is for binary unittests, check_SCRIPTS for script-based unittests.
## TESTS_ENVIRONMENT sets environment variables for when you run unittest,
## but it only seems to take effect for *binary* unittests (argh!)
TESTS =
check_SCRIPTS =
TESTS_ENVIRONMENT = TEMPLATE_ROOTDIR=$(top_srcdir)
# Every time you add a unittest to check_SCRIPTS, add it here too
noinst_SCRIPTS =
# Add to this for tests that use data
TESTDATA =
## vvvv RULES TO MAKE THE LIBRARIES, BINARIES, AND UNITTESTS
# These files are auto-generated via generate_fsm.py. Since we don't want
# to require python to build ctemplate, we include these in the dist
src/htmlparser/htmlparser_fsm.h: src/htmlparser/generate_fsm.py src/htmlparser/fsm_config.py src/htmlparser/htmlparser_fsm.config
$(top_srcdir)/src/htmlparser/generate_fsm.py $(top_srcdir)/src/htmlparser/htmlparser_fsm.config > $@
src/htmlparser/jsparser_fsm.h: src/htmlparser/generate_fsm.py src/htmlparser/fsm_config.py src/htmlparser/jsparser_fsm.config
$(top_srcdir)/src/htmlparser/generate_fsm.py $(top_srcdir)/src/htmlparser/jsparser_fsm.config > $@
src/tests/statemachine_test_fsm.h: src/htmlparser/generate_fsm.py src/htmlparser/fsm_config.py src/tests/statemachine_test_fsm.config
$(top_srcdir)/src/htmlparser/generate_fsm.py $(top_srcdir)/src/tests/statemachine_test_fsm.config > $@
# This is a required hack for auto-generated .h files: cf the automake info pages
# NOTE: since we put these .h files in BUILT_SOURCES, we don't need to put
# them in as deps for the binaries that use them. In fact, it's important
# that we don't; instead we put them in EXTRA_DIST. This mean, in practice,
# they'll go at the end of the distribution tarfile, which means they'll
# have a later timestamp than the .config files that generate them, which
# means users won't try to rebuild them. Ah, the joys of automake.
BUILT_SOURCES = src/htmlparser/htmlparser_fsm.h \
src/htmlparser/jsparser_fsm.h \
src/tests/statemachine_test_fsm.h
# These are the symbols (classes, mostly) we want to export from our library.
# Note this regexp applies to the *mangled* name, which is why we have to
# be careful where we want to assert [^A-Za-z]. (Particularly bad on Darwin.)
# template_modifiers and BaseArena and UnsafeArena perhaps shouldn't be
# exported, but they're needed -- at least -- for some unittests.
CTEMPLATE_SYMBOLS = '(ctemplate|template_modifiers|BaseArena|UnsafeArena|[^A-Za-z]Template[^A-Za-z]|TemplateDictionary|TemplateNamelist|TemplateFromString|TemplateString|TemplateState|[^A-Za-z]Strip[^A-Za-z])'
lib_LTLIBRARIES += libctemplate.la
WINDOWS_PROJECTS += vsprojects/libctemplate/libctemplate.vcproj
libctemplate_la_SOURCES = $(nodist_ctemplateinclude_HEADERS) \
src/base/aligned_char_array.h \
src/base/arena-inl.h \
src/base/arena.cc \
src/base/arena.h \
src/base/fileutil.h \
src/base/macros.h \
src/base/manual_constructor.h \
src/base/mutex.h \
src/base/small_map.h \
src/base/thread_annotations.h \
src/base/util.h \
src/indented_writer.h \
src/per_expand_data.cc \
src/template.cc \
src/template_annotator.cc \
src/template_cache.cc \
src/template_dictionary.cc \
src/template_modifiers.cc \
src/template_modifiers_internal.h \
src/template_namelist.cc \
src/template_pathops.cc \
src/template_string.cc \
src/htmlparser/htmlparser.cc \
src/htmlparser/htmlparser.h \
src/htmlparser/htmlparser_cpp.h \
src/htmlparser/jsparser.cc \
src/htmlparser/jsparser.h \
src/htmlparser/statemachine.cc \
src/htmlparser/statemachine.h
libctemplate_la_CXXFLAGS = $(PTHREAD_CFLAGS) -DNDEBUG $(AM_CXXFLAGS)
# -version-info gets passed to libtool
libctemplate_la_LDFLAGS = $(PTHREAD_CFLAGS) \
-export-symbols-regex $(CTEMPLATE_SYMBOLS) \
-version-info @SO_VERSION@
libctemplate_la_LIBADD = $(PTHREAD_LIBS)
# For MinGW, we need to bring in the windows port files
if MINGW
libctemplate_la_SOURCES += src/windows/port.h src/windows/port.cc
endif MINGW
# automake will make different .o files for this library, which is good,
# because we use an extra compiler flag.
lib_LTLIBRARIES += libctemplate_nothreads.la
libctemplate_nothreads_la_SOURCES = $(libctemplate_la_SOURCES)
libctemplate_nothreads_la_DEPENDENCIES = $(libctemplate_la_DEPENDENCIES)
libctemplate_nothreads_la_CXXFLAGS = -DNDEBUG -DNO_THREADS $(AM_CXXFLAGS)
libctemplate_nothreads_la_LDFLAGS = -export-symbols-regex $(CTEMPLATE_SYMBOLS) \
-version-info @SO_VERSION@
# For our tests, we want versions of these libraries that include asserts.
noinst_LTLIBRARIES += libctemplate_debug.la
libctemplate_debug_la_SOURCES = $(libctemplate_la_SOURCES)
libctemplate_debug_la_DEPENDENCIES = $(libctemplate_la_DEPENDENCIES)
libctemplate_debug_la_CXXFLAGS = $(PTHREAD_CFLAGS) $(AM_CXXFLAGS)
libctemplate_debug_la_LDFLAGS = $(libctemplate_la_LDFLAGS)
libctemplate_debug_la_LIBADD = $(libctemplate_la_LIBADD)
noinst_LTLIBRARIES += libctemplate_nothreads_debug.la
libctemplate_nothreads_debug_la_SOURCES = $(libctemplate_nothreads_la_SOURCES)
libctemplate_nothreads_debug_la_DEPENDENCIES = $(libctemplate_nothreads_la_DEPENDENCIES)
libctemplate_nothreads_debug_la_CXXFLAGS = -DNO_THREADS $(AM_CXXFLAGS)
libctemplate_nothreads_debug_la_LDFLAGS = $(libctemplate_nothreads_la_LDFLAGS)
# We could also make a library that has the TemplateDictionaryPeer
# class. This class is useful for testing (it provides introspection
# on the TemplateDictionary hierarchy that's easier to use than the
# default debugging method, TemplateDictionary::Dump()) but by the
# same token also violates abstraction in ways that might be fragile.
# We don't expose the library for now, until the demonstrated need
# outweighs the costs. If you'd like to use this library, please send
# mail to google-ctemplate@googlegroups.com!
##lib_LTLIBRARIES += libctemplate_testing.la
noinst_LTLIBRARIES += libctemplate_testing.la libctemplate_testing_nothreads.la
libctemplate_testing_la_SOURCES = $(nodist_ctemplateinclude_HEADERS) \
src/tests/template_test_util.h \
src/tests/template_test_util.cc
libctemplate_testing_la_CXXFLAGS = $(PTHREAD_CFLAGS) $(AM_CXXFLAGS)
CTEMPLATE_TESTING_SYMBOLS = 'TemporaryRegisterTemplate|TemplateDictionaryPeer'
libctemplate_testing_la_LDFLAGS = $(PTHREAD_CFLAGS) \
-export-symbols-regex $(CTEMPLATE_TESTING_SYMBOLS) \
-version-info @SO_VERSION@
libctemplate_testing_la_LIBADD = $(PTHREAD_LIBS)
libctemplate_testing_nothreads_la_SOURCES = $(libctemplate_testing_la_SOURCES)
libctemplate_testing_nothreads_la_CXXFLAGS = $(AM_CXXFLAGS) -DNO_THREADS
libctemplate_testing_nothreads_la_LDFLAGS = -export-symbols-regex $(CTEMPLATE_TESTING_SYMBOLS) \
-version-info @SO_VERSION@
# This library depends on libctemplate, but it can use either libctemplate
# or libctemplate_nothreads. Rather than have two versions of this
# library, I just leave out the deps entirely: you must be sure to specify
# one of the two whenever you link this library into your code.
#libctemplate_testing_la_LIBADD = libctemplate.la # or libctemplate_nothreads.la
# Helper apps
bin_PROGRAMS += make_tpl_varnames_h
WINDOWS_PROJECTS += vsprojects/make_tpl_varname_h/make_tpl_varname_h.vcproj
make_tpl_varnames_h_SOURCES = $(nodist_ctemplateinclude_HEADERS) \
src/make_tpl_varnames_h.cc
make_tpl_varnames_h_LDADD = libctemplate_nothreads.la
bin_PROGRAMS += diff_tpl_auto_escape
WINDOWS_PROJECTS += vsprojects/diff_tpl_auto_escape/diff_tpl_auto_escape.vcproj
diff_tpl_auto_escape_SOURCES = $(nodist_ctemplateinclude_HEADERS) \
src/diff_tpl_auto_escape.cc
diff_tpl_auto_escape_LDADD = libctemplate_nothreads.la
bin_SCRIPTS += src/template-converter
# For each of the tests, we test with and without threads
TESTS += compile_test compile_nothreads_test
WINDOWS_PROJECTS += vsprojects/compile_test/compile_test.vcproj
compile_test_SOURCES = $(nodist_ctemplateinclude_HEADERS) \
src/tests/compile_test.cc
compile_test_CXXFLAGS = $(PTHREAD_CFLAGS) $(AM_CXXFLAGS)
compile_test_LDFLAGS = $(PTHREAD_CFLAGS)
compile_test_LDADD = libctemplate_debug.la $(PTHREAD_LIBS)
compile_nothreads_test_SOURCES = $(compile_test_SOURCES)
compile_nothreads_test_CXXFLAGS = -DNO_THREADS $(AM_CXXFLAGS)
compile_nothreads_test_LDADD = libctemplate_nothreads_debug.la
# With compile_test, we are making sure that the code compiles without
# needing config.h/etc. The best test is to make sure we can compile
# with just the installed header files. The best way to do this is at
# installcheck time. When this rule is run (via 'make distcheck'),
# 'includedir' is the installed include-dir.
installcheck-local:
$(CXX) -I $(includedir) -c $(top_srcdir)/src/tests/compile_test.cc \
-o installcheck_compile_test.o
TESTS += template_test_util_test template_test_util_nothreads_test
WINDOWS_PROJECTS += vsprojects/template_test_util_test/template_test_util_test.vcproj
template_test_util_test_SOURCES = src/tests/config_for_unittests.h \
src/template_dictionary.cc \
src/tests/template_test_util_test.cc
template_test_util_test_CXXFLAGS = $(PTHREAD_CFLAGS) $(AM_CXXFLAGS)
template_test_util_test_LDFLAGS = $(PTHREAD_CFLAGS)
template_test_util_test_LDADD = libctemplate_testing.la libctemplate_debug.la \
$(PTHREAD_LIBS)
template_test_util_nothreads_test_SOURCES = $(template_test_util_test_SOURCES)
template_test_util_nothreads_test_CXXFLAGS = -DNO_THREADS $(AM_CXXFLAGS)
template_test_util_nothreads_test_LDADD = libctemplate_testing_nothreads.la \
libctemplate_nothreads_debug.la
TESTS += template_dictionary_unittest template_dictionary_nothreads_unittest
WINDOWS_PROJECTS += vsprojects/template_dictionary_unittest/template_dictionary_unittest.vcproj
template_dictionary_unittest_SOURCES = src/tests/config_for_unittests.h \
src/base/arena.h \
src/tests/template_dictionary_unittest.cc
template_dictionary_unittest_CXXFLAGS = $(PTHREAD_CFLAGS) $(AM_CXXFLAGS)
template_dictionary_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
template_dictionary_unittest_LDADD = libctemplate_testing.la libctemplate_debug.la \
$(PTHREAD_LIBS)
template_dictionary_nothreads_unittest_SOURCES = $(template_dictionary_unittest_SOURCES)
template_dictionary_nothreads_unittest_CXXFLAGS = -DNO_THREADS $(AM_CXXFLAGS)
template_dictionary_nothreads_unittest_LDADD = libctemplate_testing_nothreads.la \
libctemplate_nothreads_debug.la
TESTS += template_modifiers_unittest template_modifiers_nothreads_unittest
WINDOWS_PROJECTS += vsprojects/template_modifiers_unittest/template_modifiers_unittest.vcproj
template_modifiers_unittest_SOURCES = src/tests/config_for_unittests.h \
src/tests/template_modifiers_unittest.cc
template_modifiers_unittest_CXXFLAGS = $(PTHREAD_CFLAGS) $(AM_CXXFLAGS)
template_modifiers_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
template_modifiers_unittest_LDADD = libctemplate_testing.la libctemplate_debug.la \
$(PTHREAD_LIBS)
template_modifiers_nothreads_unittest_SOURCES = $(template_modifiers_unittest_SOURCES)
template_modifiers_nothreads_unittest_CXXFLAGS = -DNO_THREADS $(AM_CXXFLAGS)
template_modifiers_nothreads_unittest_LDADD = libctemplate_testing_nothreads.la \
libctemplate_nothreads_debug.la
TESTS += template_setglobals_unittest template_setglobals_nothreads_unittest
WINDOWS_PROJECTS += vsprojects/template_setglobals_unittest/template_setglobals_unittest.vcproj
template_setglobals_unittest_SOURCES = src/tests/config_for_unittests.h \
src/tests/template_setglobals_unittest.cc
template_setglobals_unittest_CXXFLAGS = $(PTHREAD_CFLAGS) $(AM_CXXFLAGS)
template_setglobals_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
template_setglobals_unittest_LDADD = libctemplate_testing.la libctemplate_debug.la \
$(PTHREAD_LIBS)
template_setglobals_nothreads_unittest_SOURCES = $(template_setglobals_unittest_SOURCES)
template_setglobals_nothreads_unittest_CXXFLAGS = -DNO_THREADS $(AM_CXXFLAGS)
template_setglobals_nothreads_unittest_LDADD = libctemplate_testing_nothreads.la \
libctemplate_nothreads_debug.la
TESTS += template_cache_test template_cache_nothreads_test
WINDOWS_PROJECTS += vsprojects/template_cache_test/template_cache_test.vcproj
template_cache_test_SOURCES = src/tests/config_for_unittests.h \
src/template_modifiers_internal.h \
src/tests/template_cache_test.cc
template_cache_test_CXXFLAGS = $(PTHREAD_CFLAGS) $(AM_CXXFLAGS)
template_cache_test_LDFLAGS = $(PTHREAD_CFLAGS)
template_cache_test_LDADD = libctemplate_testing.la libctemplate_debug.la \
$(PTHREAD_LIBS)
template_cache_nothreads_test_SOURCES = $(template_cache_test_SOURCES)
template_cache_nothreads_test_CXXFLAGS = -DNO_THREADS $(AM_CXXFLAGS)
template_cache_nothreads_test_LDADD = libctemplate_testing_nothreads.la \
libctemplate_nothreads_debug.la
TESTS += template_unittest template_nothreads_unittest
WINDOWS_PROJECTS += vsprojects/template_unittest/template_unittest.vcproj
WINDOWS_PROJECTS += vsprojects/template_unittest_static/template_unittest_static.vcproj
template_unittest_SOURCES = src/tests/config_for_unittests.h \
src/template_modifiers_internal.h \
src/tests/template_unittest.cc
template_unittest_CXXFLAGS = $(PTHREAD_CFLAGS) $(AM_CXXFLAGS)
template_unittest_LDFLAGS = $(PTHREAD_CFLAGS)
template_unittest_LDADD = libctemplate_testing.la libctemplate_debug.la \
$(PTHREAD_LIBS)
template_nothreads_unittest_SOURCES = $(template_unittest_SOURCES)
template_nothreads_unittest_CXXFLAGS = -DNO_THREADS $(AM_CXXFLAGS)
template_nothreads_unittest_LDADD = libctemplate_testing_nothreads.la \
libctemplate_nothreads_debug.la
TESTS += template_regtest template_nothreads_regtest
WINDOWS_PROJECTS += vsprojects/template_regtest/template_regtest.vcproj
template_regtest_SOURCES = src/tests/template_regtest.cc
template_regtest_CXXFLAGS = $(PTHREAD_CFLAGS) $(AM_CXXFLAGS)
template_regtest_LDFLAGS = $(PTHREAD_CFLAGS)
template_regtest_LDADD = libctemplate_debug.la $(PTHREAD_LIBS)
template_nothreads_regtest_SOURCES = $(template_regtest_SOURCES)
template_nothreads_regtest_CXXFLAGS = -DNO_THREADS $(AM_CXXFLAGS)
template_nothreads_regtest_LDADD = libctemplate_nothreads_debug.la
TESTDATA += \
src/tests/template_unittest_test_footer.in \
src/tests/template_unittest_test_html.in \
src/tests/template_unittest_test_invalid1.in \
src/tests/template_unittest_test_invalid2.in \
src/tests/template_unittest_test_markerdelim.in \
src/tests/template_unittest_test_modifiers.in \
src/tests/template_unittest_test_nul.in \
src/tests/template_unittest_test_selective_css.in \
src/tests/template_unittest_test_selective_html.in \
src/tests/template_unittest_test_selective_js.in \
src/tests/template_unittest_test_simple.in \
src/tests/template_unittest_test_valid1.in \
src/tests/template_unittest_test_footer_dict01.out \
src/tests/template_unittest_test_footer_dict02.out \
src/tests/template_unittest_test_html_dict01.out \
src/tests/template_unittest_test_html_dict02.out \
src/tests/template_unittest_test_markerdelim_dict01.out \
src/tests/template_unittest_test_markerdelim_dict02.out \
src/tests/template_unittest_test_modifiers_dict01.out \
src/tests/template_unittest_test_nul_dict01.out \
src/tests/template_unittest_test_selective_css_dict01.out \
src/tests/template_unittest_test_selective_css_dict02.out \
src/tests/template_unittest_test_selective_html_dict01.out \
src/tests/template_unittest_test_selective_html_dict02.out \
src/tests/template_unittest_test_selective_js_dict01.out \
src/tests/template_unittest_test_selective_js_dict02.out \
src/tests/template_unittest_test_simple_dict01.out \
src/tests/template_unittest_test_simple_dict02.out \
src/tests/template_unittest_test_simple_dict03.out \
src/tests/template_unittest_test_valid1_dict01.out
TESTS += htmlparser_test htmlparser_nothreads_test
WINDOWS_PROJECTS += vsprojects/htmlparser_test/htmlparser_test.vcproj
htmlparser_test_SOURCES = src/tests/htmlparser_cpp_test.cc
htmlparser_test_CXXFLAGS = $(PTHREAD_CFLAGS) $(AM_CXXFLAGS)
htmlparser_test_LDFLAGS = $(PTHREAD_CFLAGS)
htmlparser_test_LDADD = libctemplate_debug.la $(PTHREAD_LIBS)
htmlparser_nothreads_test_SOURCES = $(htmlparser_test_SOURCES)
htmlparser_nothreads_test_CXXFLAGS = -DNO_THREADS $(AM_CXXFLAGS)
htmlparser_nothreads_test_LDADD = libctemplate_nothreads_debug.la
TESTDATA += \
src/tests/htmlparser_testdata/cdata.html \
src/tests/htmlparser_testdata/comments.html \
src/tests/htmlparser_testdata/context.html \
src/tests/htmlparser_testdata/google.html \
src/tests/htmlparser_testdata/javascript_attribute.html \
src/tests/htmlparser_testdata/javascript_block.html \
src/tests/htmlparser_testdata/javascript_regexp.html \
src/tests/htmlparser_testdata/position.html \
src/tests/htmlparser_testdata/reset.html \
src/tests/htmlparser_testdata/simple.html \
src/tests/htmlparser_testdata/tags.html
# We want to compile statemachine.cc as a c file as well as a c++ file
statemachine.c: src/htmlparser/statemachine.cc
$(LN_S) src/htmlparser/statemachine.cc $@
BUILT_SOURCES += statemachine.c
CLEANFILES = statemachine.c
TESTS += statemachine_test
WINDOWS_PROJECTS += vsprojects/statemachine_test/statemachine_test.vcproj
statemachine_test_SOURCES = src/tests/statemachine_test.c \
statemachine.c
statemachine_test_CFLAGS = -I$(top_srcdir)/src/htmlparser
TESTS += generate_fsm_c_test
WINDOWS_PROJECTS += vsprojects/generate_fsm_c_test/generate_fsm_c_test.vcproj
generate_fsm_c_test_SOURCES = src/tests/generate_fsm_c_test.c
generate_fsm_c_test_DEPENDENCIES = src/tests/htmlparser_testdata/sample_fsm.c
# This is something only maintainers need (since they're the only ones
# who generate .h or .c files from .config files).
check_SCRIPTS += generate_fsm_test_sh
noinst_SCRIPTS += src/tests/generate_fsm_test.sh
generate_fsm_test_sh: src/tests/generate_fsm_test.sh \
src/tests/htmlparser_testdata/sample_fsm.config \
src/tests/htmlparser_testdata/sample_fsm.c \
src/htmlparser/generate_fsm.py
sh $(top_srcdir)/src/tests/generate_fsm_test.sh $(top_srcdir)
TESTDATA += \
src/tests/htmlparser_testdata/sample_fsm.config \
src/tests/htmlparser_testdata/sample_fsm.c
check_SCRIPTS += make_tpl_varnames_h_unittest_sh
noinst_SCRIPTS += src/tests/make_tpl_varnames_h_unittest.sh
make_tpl_varnames_h_unittest_sh: src/tests/make_tpl_varnames_h_unittest.sh \
make_tpl_varnames_h
sh $(top_srcdir)/src/tests/make_tpl_varnames_h_unittest.sh \
$(top_builddir)/make_tpl_varnames_h /tmp/$@_dir
check_SCRIPTS += diff_tpl_auto_escape_unittest_sh
noinst_SCRIPTS += src/tests/diff_tpl_auto_escape_unittest.sh
diff_tpl_auto_escape_unittest_sh: src/tests/diff_tpl_auto_escape_unittest.sh \
diff_tpl_auto_escape
sh $(top_srcdir)/src/tests/diff_tpl_auto_escape_unittest.sh \
$(top_builddir)/diff_tpl_auto_escape /tmp/$@_dir
## ^^^^ END OF RULES TO MAKE THE LIBRARIES, BINARIES, AND UNITTESTS
## This should always include $(TESTS), but may also include other
## binaries that you compile but don't want automatically installed.
noinst_PROGRAMS = $(TESTS)
rpm: dist-gzip packages/rpm.sh packages/rpm/rpm.spec
@cd packages && ./rpm.sh ${PACKAGE} ${VERSION}
deb: dist-gzip packages/deb.sh packages/deb/*
@cd packages && ./deb.sh ${PACKAGE} ${VERSION}
# http://linux.die.net/man/1/pkg-config, http://pkg-config.freedesktop.org/wiki
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = lib${PACKAGE}.pc lib${PACKAGE}_nothreads.pc
CLEANFILES += $(pkgconfig_DATA)
# I get the description and URL lines from the rpm spec. I use sed to
# try to rewrite exec_prefix, libdir, and includedir in terms of
# prefix, if possible.
lib${PACKAGE}.pc: Makefile packages/rpm/rpm.spec
echo 'prefix=$(prefix)' > "$@".tmp
echo 'exec_prefix='`echo '$(exec_prefix)' | sed 's@^$(prefix)@$${prefix}@'` >> "$@".tmp
echo 'libdir='`echo '$(libdir)' | sed 's@^$(exec_prefix)@$${exec_prefix}@'` >> "$@".tmp
echo 'includedir='`echo '$(includedir)' | sed 's@^$(prefix)@$${prefix}@'` >> "$@".tmp
echo '' >> "$@".tmp
echo 'Name: $(PACKAGE)' >> "$@".tmp
echo 'Version: $(VERSION)' >> "$@".tmp
-grep '^Summary:' $(top_srcdir)/packages/rpm/rpm.spec | sed s/^Summary:/Description:/ | head -n1 >> "$@".tmp
-grep '^URL: ' $(top_srcdir)/packages/rpm/rpm.spec >> "$@".tmp
echo 'Requires:' >> "$@".tmp
echo 'Libs: -L$${libdir} -l$(PACKAGE)' >> "$@".tmp
echo 'Libs.private: $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)' >> "$@".tmp
echo 'Cflags: -I$${includedir}' >> "$@".tmp
mv -f "$@".tmp "$@"
# The nothreads version is mostly the same
lib${PACKAGE}_nothreads.pc: lib${PACKAGE}.pc
grep -v Libs.private lib${PACKAGE}.pc | sed s/-l$(PACKAGE)/-l$(PACKAGE)_nothreads/ > "$@"
# Windows wants write permission to .vcproj files and maybe even sln files.
dist-hook:
test -e "$(distdir)/vsprojects" \
&& chmod -R u+w $(distdir)/*.sln $(distdir)/vsprojects/
## If you're using libtool, add 'libtool' here. Also add this rule:
libtool: $(LIBTOOL_DEPS)
$(SHELL) ./config.status --recheck
# In addition to the normal stuff, we include all the windows-specific
# code, and also the code used to generate the html-parser fsm files.
# NOTE: BUILT_SOURCES should come after the .config files, so they
# come later (and thus end up with a later timestamp) when we tar/untar.
EXTRA_DIST = packages/rpm.sh packages/rpm/rpm.spec packages/deb.sh packages/deb \
$(SCRIPTS) $(TESTDATA) libtool autogen.sh \
src/htmlparser/generate_fsm.py src/htmlparser/fsm_config.py \
src/tests/statemachine_test_fsm.config \
src/htmlparser/htmlparser_fsm.config \
src/htmlparser/jsparser_fsm.config \
$(BUILT_SOURCES) \
src/windows/config.h src/windows/preprocess.sh \
src/windows/ctemplate $(WINDOWS_PROJECTS) \
src/solaris/libstdc++.la contrib