#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

SUBDIRS = t

Makefile-perl.mk : Makefile.PL
	$(PERL) Makefile.PL MAKEFILE=Makefile-perl.mk INSTALLDIRS=$(INSTALLDIRS) INSTALL_BASE=$(PERL_PREFIX)

all-local: Makefile-perl.mk
	$(MAKE) -f $<
	find blib -name 'Makefile*' -exec rm -f {} \;

install-exec-local: Makefile-perl.mk
	$(MAKE) -f $< install DESTDIR=$(DESTDIR)/

clean-local:
	if test -f Makefile-perl.mk ; then \
		$(MAKE) -f Makefile-perl.mk clean ; \
	fi
	$(RM) Makefile-perl.mk.old
	$(RM) -r gen-perl gen-perl2

distdir:
	$(MAKE) $(AM_MAKEFLAGS) distdir-am

EXTRA_DIST = \
	coding_standards.md \
	build-cpan-dist.sh \
	Makefile.PL \
	MANIFEST.SKIP \
	test.pl \
	lib/Thrift.pm \
	lib/Thrift.pm \
	lib/Thrift/BinaryProtocol.pm \
	lib/Thrift/BufferedTransport.pm \
	lib/Thrift/Exception.pm \
	lib/Thrift/FramedTransport.pm \
	lib/Thrift/HttpClient.pm \
	lib/Thrift/MemoryBuffer.pm \
	lib/Thrift/MessageType.pm \
	lib/Thrift/MultiplexedProcessor.pm \
	lib/Thrift/MultiplexedProtocol.pm \
	lib/Thrift/Protocol.pm \
	lib/Thrift/ProtocolDecorator.pm \
	lib/Thrift/Server.pm \
	lib/Thrift/ServerSocket.pm \
	lib/Thrift/Socket.pm \
	lib/Thrift/SSLSocket.pm \
	lib/Thrift/SSLServerSocket.pm \
	lib/Thrift/UnixServerSocket.pm \
	lib/Thrift/UnixSocket.pm \
	lib/Thrift/Type.pm \
	lib/Thrift/Transport.pm \
	tools/FixupDist.pl \
	README.md

THRIFT = @top_builddir@/compiler/cpp/thrift
THRIFT_IF = @top_srcdir@/test/v0.16/ThriftTest.thrift
NAME_BENCHMARKSERVICE =  @top_srcdir@/lib/rb/benchmark/Benchmark.thrift
NAME_AGGR = @top_srcdir@/contrib/async-test/aggr.thrift

THRIFTTEST_GEN = \
	gen-perl/ThriftTest/Constants.pm \
	gen-perl/ThriftTest/SecondService.pm \
	gen-perl/ThriftTest/ThriftTest.pm \
	gen-perl/ThriftTest/Types.pm

BENCHMARK_GEN = \
	gen-perl/BenchmarkService.pm \
	gen-perl/Constants.pm \
	gen-perl/Types.pm

AGGR_GEN = \
	gen-perl2/Aggr.pm \
	gen-perl2/Constants.pm \
	gen-perl2/Types.pm

PERL_GEN = \
	$(THRIFTTEST_GEN) \
	$(BENCHMARK_GEN) \
	$(AGGR_GEN)

BUILT_SOURCES = $(PERL_GEN)

check-local: $(PERL_GEN)
	$(PERL) -Iblib/lib -I@abs_srcdir@ -I@builddir@/gen-perl2 -I@builddir@/gen-perl \
		@abs_srcdir@/test.pl @abs_srcdir@/t/*.t

$(THRIFTTEST_GEN): $(THRIFT_IF) $(THRIFT)
	$(THRIFT) --gen perl $<

$(BENCHMARK_GEN): $(NAME_BENCHMARKSERVICE) $(THRIFT)
	$(THRIFT) --gen perl $<

$(AGGR_GEN): $(NAME_AGGR) $(THRIFT)
	$(MKDIR_P) gen-perl2
	$(THRIFT) -out gen-perl2 --gen perl $<
