blob: 286cf0f12c812d1034cb1c42d0e4c21e67dc5c15 [file] [log] [blame]
kenton@google.com7db148f2010-01-12 22:45:15 +00001# Additional tests to run before releasing a package.
2#
3# Run like:
4# make PACKAGE=/path/to/protobuf-VERSION.tar.gz
5#
6# Some of these tests require tools or make assumptions that may not be
7# available on end-user machines, so these cannot be part of "make check". For
8# example, we test that the headers compile with strict warning settings, but
9# since different compilers produce wildly different warnings we cannot assume
10# that this test will pass everywhere. If we ran it as part of "make check",
11# it could unnecessarily block users from running the real tests just because
12# their compiler produces some extra warnings that probably aren't a big deal.
13# So we run it separately.
14
15all: header_warning_test
16
17clean:
18 rm -rf src target header_warning_test.cc header_warning_test.o header_warning_test
19
20# Unpack the package into src, then install it into target.
21PACKAGE=protobuf.tar.gz
22
23src: $(PACKAGE)
24 tar zxvf $(PACKAGE)
25 mv `basename $(PACKAGE) .tar.gz` src
26
27target: src
28 (cd src && ./configure --prefix=$$PWD/../target --disable-shared)
29 (cd src && make -j4 check)
30 (cd src && make install)
31
32# Verify that headers produce no warnings even under strict settings.
33header_warning_test.cc: target
34 ( (cd target/include && find google/protobuf -name '*.h') | \
35 awk '{print "#include \""$$1"\""} ' > header_warning_test.cc )
36
37header_warning_test: header_warning_test.cc
38 # TODO(kenton): Consider adding -pedantic and -Weffc++. Currently these
39 # produce tons of extra warnings so we'll need to do some work first.
40 g++ -Itarget/include -Wall -Werror -Wsign-compare -O2 -c header_warning_test.cc
41 touch header_warning_test