Merge "Fixup usage of lex/yacc in Android.mk files"
diff --git a/src/compiler/Android.glsl.gen.mk b/src/compiler/Android.glsl.gen.mk
index f4bc9e8..fc708ac 100644
--- a/src/compiler/Android.glsl.gen.mk
+++ b/src/compiler/Android.glsl.gen.mk
@@ -54,42 +54,24 @@
 define local-l-or-ll-to-c-or-cpp
 	@mkdir -p $(dir $@)
 	@echo "Mesa Lex: $(PRIVATE_MODULE) <= $<"
-	$(hide) $(LEX) --nounistd -o$@ $<
+	$(hide) M4=$(M4) $(LEX) --nounistd -o$@ $<
 endef
 
-define glsl_local-y-to-c-and-h
-	@mkdir -p $(dir $@)
-	@echo "Mesa Yacc: $(PRIVATE_MODULE) <= $<"
-	$(hide) $(YACC) -o $@ -p "glcpp_parser_" $<
-endef
-
-YACC_HEADER_SUFFIX := .hpp
-
-define local-yy-to-cpp-and-h
-	@mkdir -p $(dir $@)
-	@echo "Mesa Yacc: $(PRIVATE_MODULE) <= $<"
-	$(hide) $(YACC) -p "_mesa_glsl_" -o $@ $<
-	touch $(@:$1=$(YACC_HEADER_SUFFIX))
-	echo '#ifndef '$(@F:$1=_h) > $(@:$1=.h)
-	echo '#define '$(@F:$1=_h) >> $(@:$1=.h)
-	cat $(@:$1=$(YACC_HEADER_SUFFIX)) >> $(@:$1=.h)
-	echo '#endif' >> $(@:$1=.h)
-	rm -f $(@:$1=$(YACC_HEADER_SUFFIX))
-endef
-
-$(intermediates)/glsl/glsl_lexer.cpp: $(LOCAL_PATH)/glsl/glsl_lexer.ll
+$(intermediates)/glsl/glsl_lexer.cpp: $(LOCAL_PATH)/glsl/glsl_lexer.ll $(LEX) $(M4)
 	$(call local-l-or-ll-to-c-or-cpp)
 
-$(intermediates)/glsl/glsl_parser.cpp: $(LOCAL_PATH)/glsl/glsl_parser.yy
-	$(call local-yy-to-cpp-and-h,.cpp)
+$(intermediates)/glsl/glsl_parser.cpp: PRIVATE_YACCFLAGS := -p "_mesa_glsl_"
+$(intermediates)/glsl/glsl_parser.cpp: .KATI_IMPLICIT_OUTPUTS := $(intermediates)/glsl/glsl_parser.h
+$(intermediates)/glsl/glsl_parser.cpp: $(LOCAL_PATH)/glsl/glsl_parser.yy $(BISON) $(BISON_DATA) $(M4)
+	$(transform-y-to-c-or-cpp)
 
-$(intermediates)/glsl/glsl_parser.h: $(intermediates)/glsl/glsl_parser.cpp
-
-$(intermediates)/glsl/glcpp/glcpp-lex.c: $(LOCAL_PATH)/glsl/glcpp/glcpp-lex.l
+$(intermediates)/glsl/glcpp/glcpp-lex.c: $(LOCAL_PATH)/glsl/glcpp/glcpp-lex.l $(LEX) $(M4)
 	$(call local-l-or-ll-to-c-or-cpp)
 
-$(intermediates)/glsl/glcpp/glcpp-parse.c: $(LOCAL_PATH)/glsl/glcpp/glcpp-parse.y
-	$(call glsl_local-y-to-c-and-h)
+$(intermediates)/glsl/glcpp/glcpp-parse.c: PRIVATE_YACCFLAGS := -p "glcpp_parser_"
+$(intermediates)/glsl/glcpp/glcpp-parse.c: .KATI_IMPLICIT_OUTPUTS := $(intermediates)/glsl/glcpp/glcpp-parse.h
+$(intermediates)/glsl/glcpp/glcpp-parse.c: $(LOCAL_PATH)/glsl/glcpp/glcpp-parse.y $(BISON) $(BISON_DATA) $(M4)
+	$(transform-y-to-c-or-cpp)
 
 $(intermediates)/glsl/ir_expression_operation.h: $(prebuilt_intermediates)/glsl/ir_expression_operation.h
 	cp -a $< $@
diff --git a/src/mesa/program/Android.mk b/src/mesa/program/Android.mk
index c6470e6..91e7286 100644
--- a/src/mesa/program/Android.mk
+++ b/src/mesa/program/Android.mk
@@ -20,18 +20,6 @@
 
 LOCAL_PATH := $(call my-dir)
 
-define local-l-to-c
-	@mkdir -p $(dir $@)
-	@echo "Mesa Lex: $(PRIVATE_MODULE) <= $<"
-	$(hide) $(LEX) -o$@ $<
-endef
-
-define mesa_local-y-to-c-and-h
-	@mkdir -p $(dir $@)
-	@echo "Mesa Yacc: $(PRIVATE_MODULE) <= $<"
-	$(hide) $(YACC) -o $@ -p "_mesa_program_" $<
-endef
-
 # ----------------------------------------------------------------------
 # libmesa_program.a
 # ----------------------------------------------------------------------
@@ -58,19 +46,17 @@
 
 LOCAL_SRC_FILES := \
 	$(filter-out $(generated_sources_basenames),$(subst program/,,$(PROGRAM_FILES))) \
-	$(subst program/,,$(PROGRAM_NIR_FILES))
+	$(subst program/,,$(PROGRAM_NIR_FILES)) \
+	program_lexer.l
 
 LOCAL_GENERATED_SOURCES := \
-	$(addprefix $(intermediates)/program/,$(generated_sources_basenames))
+	$(intermediates)/program/program_parse.tab.c \
+	$(intermediates)/program/program_parse.tab.h
 
-$(intermediates)/program/program_parse.tab.c: $(LOCAL_PATH)/program_parse.y
-	$(mesa_local-y-to-c-and-h)
-
-$(intermediates)/program/program_parse.tab.h: $(intermediates)/program/program_parse.tab.c
-	@
-
-$(intermediates)/program/lex.yy.c: $(LOCAL_PATH)/program_lexer.l
-	$(local-l-to-c)
+$(intermediates)/program/program_parse.tab.c: .KATI_IMPLICIT_OUTPUTS := $(intermediates)/program/program_parse.tab.h
+$(intermediates)/program/program_parse.tab.c: PRIVATE_YACCFLAGS := -p "_mesa_program_"
+$(intermediates)/program/program_parse.tab.c: $(LOCAL_PATH)/program_parse.y $(BISON) $(BISON_DATA) $(M4)
+	$(transform-y-to-c-or-cpp)
 
 LOCAL_C_INCLUDES := \
 	$(MESA_TOP)/src/mapi \