summaryrefslogtreecommitdiff
path: root/sysutils/acpica-tools/files/patch-generate_unix_iasl_Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/acpica-tools/files/patch-generate_unix_iasl_Makefile')
-rw-r--r--sysutils/acpica-tools/files/patch-generate_unix_iasl_Makefile62
1 files changed, 62 insertions, 0 deletions
diff --git a/sysutils/acpica-tools/files/patch-generate_unix_iasl_Makefile b/sysutils/acpica-tools/files/patch-generate_unix_iasl_Makefile
new file mode 100644
index 000000000000..a0c860f782f5
--- /dev/null
+++ b/sysutils/acpica-tools/files/patch-generate_unix_iasl_Makefile
@@ -0,0 +1,62 @@
+--- generate/unix/iasl/Makefile.orig 2015-07-17 16:04:37 UTC
++++ generate/unix/iasl/Makefile
+@@ -260,10 +260,21 @@ CFLAGS += \
+ include ../Makefile.rules
+
+ #
++# Function to safely execute yacc
++#
++safe_yacc = \
++ _d=`mktemp -d $(OBJDIR)/$$_f.XXXXXX` &&\
++ _f=`echo $(1) | tr '[:upper:]' '[:lower:]'` &&\
++ _t=`basename $(3)` &&\
++ $(YACC) $(YFLAGS) -p$(1) -o$$_d/$$_f.c -d $(2) &&\
++ mv $$_d/$$_f.$${_t\#\#*.} $(3);\
++ test -d $$_d && rm -fr $$_d
++
++#
+ # Macro processing for iASL .y files
+ #
+ $(OBJDIR)/aslcompiler.y : $(ASL_PARSER)
+- $(MACROPROC) $(MFLAGS) $(ASL_COMPILER)/aslparser.y > $(OBJDIR)/aslcompiler.y
++ $(MACROPROC) $(MFLAGS) $(ASL_COMPILER)/aslparser.y > $@
+
+ #
+ # Parser and Lexer - intermediate C files
+@@ -271,30 +282,20 @@ $(OBJDIR)/aslcompiler.y : $(ASL_PAR
+ $(OBJDIR)/aslcompilerlex.c : $(ASL_LEXER)
+ $(LEX) $(LFLAGS) -PAslCompiler -o$@ $(ASL_COMPILER)/aslcompiler.l
+
+-$(OBJDIR)/aslcompiler.y.h : $(OBJDIR)/aslcompiler.y
+- $(YACC) $(YFLAGS) -pAslCompiler -o/dev/null --defines=$@ $<
+-
+-$(OBJDIR)/aslcompilerparse.c : $(OBJDIR)/aslcompiler.y
+- $(YACC) $(YFLAGS) -pAslCompiler -o$@ --defines=/dev/null $<
++$(OBJDIR)/aslcompilerparse.c $(OBJDIR)/aslcompiler.y.h : $(OBJDIR)/aslcompiler.y
++ $(call safe_yacc,AslCompiler,$<,$@)
+
+ $(OBJDIR)/dtparserlex.c : $(ASL_COMPILER)/dtparser.l $(OBJDIR)/dtparser.y.h
+ $(LEX) $(LFLAGS) -PDtParser -o$@ $<
+
+-$(OBJDIR)/dtparser.y.h : $(ASL_COMPILER)/dtparser.y
+- $(YACC) $(YFLAGS) -pDtParser -o/dev/null --defines=$@ $<
+-
+-$(OBJDIR)/dtparserparse.c : $(ASL_COMPILER)/dtparser.y
+- $(YACC) $(YFLAGS) -pDtParser -o$@ --defines=/dev/null $<
++$(OBJDIR)/dtparserparse.c $(OBJDIR)/dtparser.y.h : $(ASL_COMPILER)/dtparser.y
++ $(call safe_yacc,DtParser,$<,$@)
+
+ $(OBJDIR)/prparserlex.c : $(ASL_COMPILER)/prparser.l $(OBJDIR)/prparser.y.h
+ $(LEX) $(LFLAGS) -PPrParser -o$@ $<
+
+-$(OBJDIR)/prparser.y.h : $(ASL_COMPILER)/prparser.y
+- $(YACC) $(YFLAGS) -pPrParser -o/dev/null --defines=$@ $<
+-
+-$(OBJDIR)/prparserparse.c : $(ASL_COMPILER)/prparser.y
+- $(YACC) $(YFLAGS) -pPrParser -o$@ --defines=/dev/null $<
+-
++$(OBJDIR)/prparserparse.c $(OBJDIR)/prparser.y.h : $(ASL_COMPILER)/prparser.y
++ $(call safe_yacc,PrParser,$<,$@)
+
+ #
+ # Parsers and Lexers - final object files