THRIFT-3264 Fix Erlang 16 namespaced types
Client: Erlang
Patch: Nobuaki Sukegawa <nsukeg@gmail.com>

This closes #566
diff --git a/lib/erl/Makefile.am b/lib/erl/Makefile.am
index 1f65a24..f48ff0a 100644
--- a/lib/erl/Makefile.am
+++ b/lib/erl/Makefile.am
@@ -21,12 +21,19 @@
 THRIFT_FILES = $(wildcard test/*.thrift) \
 		  ../../test/ThriftTest.thrift
 
-.generated: $(THRIFT_FILES)
+if ERLANG_OTP16
+.generated: $(THRIFT) $(THRIFT_FILES)
 	for f in $(THRIFT_FILES) ; do \
-	  $(THRIFT) --gen erl -o test $$f ; \
+		$(THRIFT) --gen erl:otp16 -o test $$f ; \
+	done ;
+else
+.generated: $(THRIFT) $(THRIFT_FILES)
+	for f in $(THRIFT_FILES) ; do \
+		$(THRIFT) --gen erl -o test $$f ; \
 	done ; \
 	$(THRIFT) --gen erl:maps -o test test/Thrift3214.thrift ; \
 	touch .generated
+endif
 
 all: .generated
 	./rebar get-deps
diff --git a/lib/erl/rebar.config b/lib/erl/rebar.config
index 0f5d40e..1ea18a4 100644
--- a/lib/erl/rebar.config
+++ b/lib/erl/rebar.config
@@ -1 +1 @@
-{erl_opts, [debug_info]}.
+{erl_opts, [{platform_define, "^R.*", otp16_or_less}, debug_info]}.
diff --git a/lib/erl/test/test_thrift_3214.erl b/lib/erl/test/test_thrift_3214.erl
index 118e779..0f9544b 100644
--- a/lib/erl/test/test_thrift_3214.erl
+++ b/lib/erl/test/test_thrift_3214.erl
@@ -23,6 +23,7 @@
 -include("gen-erl/thrift3214_types.hrl").
 
 -ifdef(TEST).
+-ifndef(otp16_or_less).
 -include_lib("eunit/include/eunit.hrl").
 
 record_generation_test_() ->
@@ -56,3 +57,4 @@
   ].
 
 -endif.
+-endif.