1fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville#!/bin/sh
2fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
3fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# Run this script to regenerate descriptor.pb.{h,cc} after the protocol
4fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# compiler changes.  Since these files are compiled into the protocol compiler
5fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# itself, they cannot be generated automatically by a make rule.  "make check"
6fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# will fail if these files do not match what the protocol compiler would
7fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# generate.
8fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville#
9fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville# HINT:  Flags passed to generate_descriptor_proto.sh will be passed directly
10fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville#   to make when building protoc.  This is particularly useful for passing
11fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville#   -j4 to run 4 jobs simultaneously.
12fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
13fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleif test ! -e src/google/protobuf/stubs/common.h; then
14fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  cat >&2 << __EOF__
15fbaaef999ba563838ebd00874ed8a1c01fbf286dWink SavilleCould not find source code.  Make sure you are running this script from the
16fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleroot of the distribution tree.
17fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville__EOF__
18fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  exit 1
19fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillefi
20fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
21fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savilleif test ! -e src/Makefile; then
22fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  cat >&2 << __EOF__
23fbaaef999ba563838ebd00874ed8a1c01fbf286dWink SavilleCould not find src/Makefile.  You must run ./configure (and perhaps
24fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville./autogen.sh) first.
25fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville__EOF__
26fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville  exit 1
27fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillefi
28fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Saville
29fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillecd src
30d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Savillemake $@ protoc &&
31d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville  ./protoc --cpp_out=dllexport_decl=LIBPROTOBUF_EXPORT:. google/protobuf/descriptor.proto && \
32d0332953cda33fb4f8e24ebff9c49159b69c43d6Wink Saville  ./protoc --cpp_out=dllexport_decl=LIBPROTOC_EXPORT:. google/protobuf/compiler/plugin.proto
33fbaaef999ba563838ebd00874ed8a1c01fbf286dWink Savillecd ..
34