diff options
author | Mike Frysinger <[email protected]> | 2013-02-04 21:27:40 -0500 |
---|---|---|
committer | Matt Turner <[email protected]> | 2013-07-18 13:55:48 -0700 |
commit | 73c9b4b0e05fc66629ba250846948dc55c0e7a0d (patch) | |
tree | df99a60ae90c6cb58a90249541c6fef14ad219c7 /src/mesa/x86-64/Makefile.am | |
parent | a48be954ceb250b98fb6ee46d82653532d4e4f2f (diff) |
gen_matypes: fix cross-compiling with gcc
The current gen_matypes logic assumes that the host compiler will produce
information that is useful for the target compiler. Unfortunately, this
is not the case whenever cross-compiling.
When we detect that we're cross-compiling and using GCC, use the target
compiler to produce assembly from the gen_matypes.c source, then process
it with a shell script to create a usable header. This is similar to how
the linux kernel creates its asm-offsets.c file.
Reviewed-by: Matt Turner <[email protected]>
Signed-off-by: Mike Frysinger <[email protected]>
Diffstat (limited to 'src/mesa/x86-64/Makefile.am')
-rw-r--r-- | src/mesa/x86-64/Makefile.am | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mesa/x86-64/Makefile.am b/src/mesa/x86-64/Makefile.am index 80e791784ec..b62387d66a0 100644 --- a/src/mesa/x86-64/Makefile.am +++ b/src/mesa/x86-64/Makefile.am @@ -33,7 +33,17 @@ gen_matypes_SOURCES = ../x86/gen_matypes.c BUILT_SOURCES = matypes.h CLEANFILES = matypes.h +if GEN_ASM_OFFSETS + +matypes.h: $(gen_matypes_SOURCES) + $(AM_V_GEN)$(COMPILE) $< -DASM_OFFSETS -S -o - | \ + sed -n '/^->/{s:^->::;/[$$]/{s:^:#define :;s:[$$]::};p}' > $@ + +else + matypes.h: gen_matypes $(AM_V_GEN)./gen_matypes > $@ endif + +endif |