blob: b1b6b01dffb45175ada73f02ab5a41e203daf326 [file] [log] [blame]
David Reissea2cba82009-03-30 21:35:00 +00001#
2# Licensed to the Apache Software Foundation (ASF) under one
3# or more contributor license agreements. See the NOTICE file
4# distributed with this work for additional information
5# regarding copyright ownership. The ASF licenses this file
6# to you under the Apache License, Version 2.0 (the
7# "License"); you may not use this file except in compliance
8# with the License. You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing,
13# software distributed under the License is distributed on an
14# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15# KIND, either express or implied. See the License for the
16# specific language governing permissions and limitations
17# under the License.
18#
Todd Lipcon53ae9f32009-12-07 00:42:38 +000019#
20# Contains some contributions under the Thrift Software License.
21# Please see doc/old-thrift-license.txt in the Thrift distribution for
22# details.
David Reissea2cba82009-03-30 21:35:00 +000023
Mark Sleeeb0d0242007-01-25 07:58:55 +000024AM_YFLAGS = -d
David Reissdd08f6d2008-06-30 20:24:24 +000025BUILT_SOURCES =
Mark Sleeeb0d0242007-01-25 07:58:55 +000026
27bin_PROGRAMS = thrift
28
29thrift_OBJDIR = obj
30
31thrift_SOURCES = src/thrifty.yy \
32 src/thriftl.ll \
33 src/main.cc \
David Reiss8df6c822008-05-04 03:00:22 +000034 src/md5.c \
Mark Sleeeb0d0242007-01-25 07:58:55 +000035 src/generate/t_generator.cc \
Mark Sleeefd37f12007-11-20 05:13:09 +000036 src/globals.h \
37 src/main.h \
David Reiss204420f2008-01-11 20:59:03 +000038 src/platform.h \
Mark Sleeefd37f12007-11-20 05:13:09 +000039 src/md5.h \
40 src/parse/t_doc.h \
41 src/parse/t_type.h \
42 src/parse/t_base_type.h \
43 src/parse/t_enum.h \
44 src/parse/t_enum_value.h \
45 src/parse/t_typedef.h \
46 src/parse/t_container.h \
47 src/parse/t_list.h \
48 src/parse/t_set.h \
49 src/parse/t_map.h \
50 src/parse/t_struct.h \
51 src/parse/t_field.h \
52 src/parse/t_service.h \
53 src/parse/t_function.h \
54 src/parse/t_program.h \
55 src/parse/t_scope.h \
56 src/parse/t_const.h \
57 src/parse/t_const_value.h \
58 src/generate/t_generator.h \
David Reissbba69282009-02-17 20:28:28 +000059 src/generate/t_oop_generator.h
iproctor9a41a0c2007-07-16 21:59:24 +000060
David Reiss22585732008-02-27 01:55:33 +000061if THRIFT_GEN_cpp
62thrift_SOURCES += src/generate/t_cpp_generator.cc
63endif
David Reisse8a87de2008-02-27 02:39:25 +000064if THRIFT_GEN_java
65thrift_SOURCES += src/generate/t_java_generator.cc
66endif
David Reissce4f4f02008-03-27 21:41:31 +000067if THRIFT_GEN_csharp
68thrift_SOURCES += src/generate/t_csharp_generator.cc
69endif
David Reissbfd26dc2008-03-27 21:41:49 +000070if THRIFT_GEN_py
71thrift_SOURCES += src/generate/t_py_generator.cc
72endif
David Reissae253582008-03-27 21:42:11 +000073if THRIFT_GEN_rb
74thrift_SOURCES += src/generate/t_rb_generator.cc
75endif
David Reissfdc21aa2008-03-27 21:42:34 +000076if THRIFT_GEN_perl
77thrift_SOURCES += src/generate/t_perl_generator.cc
78endif
David Reiss32272d92009-02-17 20:28:30 +000079if THRIFT_GEN_php
80thrift_SOURCES += src/generate/t_php_generator.cc
81endif
David Reissf3b0db32009-02-17 20:28:01 +000082if THRIFT_GEN_erl
83thrift_SOURCES += src/generate/t_erl_generator.cc
84endif
David Reiss4b349aa2008-03-27 21:41:02 +000085if THRIFT_GEN_cocoa
86thrift_SOURCES += src/generate/t_cocoa_generator.cc
87endif
David Reissb3ac8a62008-03-27 21:40:42 +000088if THRIFT_GEN_st
89thrift_SOURCES += src/generate/t_st_generator.cc
90endif
David Reiss3d671b52008-03-27 21:40:11 +000091if THRIFT_GEN_ocaml
92thrift_SOURCES += src/generate/t_ocaml_generator.cc
93endif
David Reiss22812f82008-03-27 21:40:26 +000094if THRIFT_GEN_hs
95thrift_SOURCES += src/generate/t_hs_generator.cc
96endif
David Reiss782cb672009-02-17 20:28:13 +000097if THRIFT_GEN_xsd
98thrift_SOURCES += src/generate/t_xsd_generator.cc
99endif
David Reissdc0aada2008-10-21 00:09:23 +0000100if THRIFT_GEN_html
101thrift_SOURCES += src/generate/t_html_generator.cc
102endif
T Jake Luciani322caa22010-02-15 03:24:55 +0000103if THRIFT_GEN_js
104thrift_SOURCES += src/generate/t_js_generator.cc
105endif
David Reiss22585732008-02-27 01:55:33 +0000106
David Reiss832b2622007-12-28 18:25:33 +0000107thrift_CXXFLAGS = -Wall -I$(srcdir)/src $(BOOST_CPPFLAGS)
Mark Slee58dfb4f2007-07-06 02:45:25 +0000108thrift_LDFLAGS = -Wall $(BOOST_LDFLAGS)
Mark Sleeeb0d0242007-01-25 07:58:55 +0000109
110thrift_LDADD = @LEXLIB@
111
David Reiss832b2622007-12-28 18:25:33 +0000112EXTRA_DIST = README
David Reissb72d19f2007-09-18 19:46:00 +0000113
Mark Sleeeb0d0242007-01-25 07:58:55 +0000114clean-local:
David Reiss466b3fa2008-11-20 21:24:32 +0000115 $(RM) thriftl.cc thrifty.cc thrifty.h version.h
David Reissdd08f6d2008-06-30 20:24:24 +0000116
117src/main.cc: version.h
118
119# Adding this to BUILT_SOURCES will cause version.h to be
120# regenerated on every "make all" or "make check", which is
121# necessary because it changes whenever we "svn up" or similar.
122# Ideally, we would like this to be regenerated whenever the
123# compiler is rebuilt, but every way we could think of to do
124# that caused unnecessary rebuilds of the compiler.
125BUILT_SOURCES += regen_version_h
126
127THRIFT_VERSION=$(shell /bin/sh $(top_srcdir)/print_version.sh -v)
128THRIFT_REVISION=$(shell /bin/sh $(top_srcdir)/print_version.sh -r)
129
130regen_version_h:
David Reiss4d8edc52008-06-30 21:55:52 +0000131 @printf "Regenerating version.h... "
David Reissdd08f6d2008-06-30 20:24:24 +0000132 @TMPFILE=`mktemp ./version_h.tmp_XXXXXX` ; \
133 echo "// AUTOGENERATED, DO NOT EDIT" > $$TMPFILE ; \
David Reissaabfa632008-06-30 22:27:29 +0000134 echo '#define THRIFT_VERSION "$(THRIFT_VERSION)"' >> $$TMPFILE ; \
135 echo '#define THRIFT_REVISION "$(THRIFT_REVISION)"' >> $$TMPFILE ; \
David Reissdd08f6d2008-06-30 20:24:24 +0000136 if cmp $$TMPFILE version.h >/dev/null ; \
137 then \
138 rm -f $$TMPFILE ; \
139 echo "No changes." ; \
140 else \
141 mv $$TMPFILE version.h ; \
142 echo "Updated." ; \
143 fi