Really fix spurious build failures and make it more safer. Header file is

generated on the current working directory regardless of -o option.
This commit is contained in:
Jung-uk Kim
2016-03-22 17:47:45 +00:00
parent 5dfecaa5d4
commit 6e6281f2c5

View File

@@ -1,6 +1,6 @@
--- generate/unix/iasl/Makefile.orig 2016-02-12 17:14:36 UTC
--- generate/unix/iasl/Makefile.orig 2016-03-18 16:25:41 UTC
+++ generate/unix/iasl/Makefile
@@ -272,12 +272,11 @@ include ../Makefile.rules
@@ -274,12 +274,11 @@ include ../Makefile.rules
# Function to safely execute yacc
#
safe_yacc = \
@@ -10,11 +10,11 @@
- $(YACC) $(YFLAGS) -p$(1) -o$$_d/$$_f.c -d $(2) &&\
- mv $$_d/$$_f.$${_t\#\#*.} $(3);\
- test -d $$_d && rm -fr $$_d
+ _d=$$(mktemp -d $(3).XXXXXX) &&\
+ _t=$$_d/$(notdir $(basename $(2))) &&\
+ $(YACC) $(YFLAGS) -p$(1) -o$$_t.c -d $(2) &&\
+ mv $$_t$(suffix $(3)) $(3) &&\
+ rm -fr $$_d
+ _d=$$(mktemp -d '$(abspath $(OBJDIR))/$(1).XXXXXX') &&\
+ cd "$$_d" &&\
+ $(YACC) $(YFLAGS) -p$(1) -o$(1).c -d '$(abspath $(2))' &&\
+ mv $(1)$(suffix $(3)) '$(abspath $(3))' &&\
+ rm -fr "$$_d"
#
# Macro processing for iASL .y files