Blob Blame History Raw
From e45146b18c19ba39b8f8631619dda26f00dba04c Mon Sep 17 00:00:00 2001
From: Kochin Chang <kochinc@outlook.com>
Date: Fri, 12 Sep 2014 13:35:53 -0400
Subject: [PATCH 07/20] Fix missing output folder on making auto-generated
 headers (Automake)

Create the directories before sed needs them (otherwise build fails
when sed tries to redirect output to a non-existent directory in case
of build root folder is not identical to source root folder).

* src/Makefile.am (atomic_ops/generalize-small.h,
atomic_ops/generalize-arithm.h, atomic_ops/sysdeps/ao_t_is_int.h,
atomic_ops/sysdeps/gcc/generic-arithm.h,
atomic_ops/sysdeps/loadstore/*.h): Add mkdir for output folder.
---
 src/Makefile.am | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/src/Makefile.am b/src/Makefile.am
index d2cf718..fc09b27 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -103,6 +103,7 @@ nobase_private_HEADERS = atomic_ops/ao_version.h \
           atomic_ops/sysdeps/sunc/x86.h
 
 atomic_ops/generalize-small.h: atomic_ops/generalize-small.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? > $@
 	sed -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? >> $@
 	sed -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? >> $@
@@ -110,12 +111,14 @@ atomic_ops/generalize-small.h: atomic_ops/generalize-small.template
 	sed -e s:XSIZE:double:g -e s:XCTYPE:AO_double_t:g $? >> $@
 
 atomic_ops/generalize-arithm.h: atomic_ops/generalize-arithm.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? > $@
 	sed -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? >> $@
 	sed -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? >> $@
 	sed -e s:XSIZE_::g -e s:XCTYPE:AO_t:g $? >> $@
 
 atomic_ops/sysdeps/ao_t_is_int.h: atomic_ops/sysdeps/ao_t_is_int.template
+	mkdir -p `dirname $@`
 	sed -e s:_XBAR::g $? > $@
 	sed -e s:XBAR:full:g $? >> $@
 	sed -e s:XBAR:acquire:g $? >> $@
@@ -125,6 +128,7 @@ atomic_ops/sysdeps/ao_t_is_int.h: atomic_ops/sysdeps/ao_t_is_int.template
 
 atomic_ops/sysdeps/gcc/generic-arithm.h: \
         atomic_ops/sysdeps/gcc/generic-arithm.template
+	mkdir -p `dirname $@`
 	sed -e s:_XBAR::g -e s:XGCCBAR:RELAXED:g \
 		-e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? > $@
 	sed -e s:_XBAR::g -e s:XGCCBAR:RELAXED:g \
@@ -160,6 +164,7 @@ atomic_ops/sysdeps/gcc/generic-arithm.h: \
 
 atomic_ops/sysdeps/gcc/generic-small.h: \
         atomic_ops/sysdeps/gcc/generic-small.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? > $@
 	sed -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? >> $@
 	sed -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? >> $@
@@ -167,6 +172,7 @@ atomic_ops/sysdeps/gcc/generic-small.h: \
 
 atomic_ops/sysdeps/loadstore/ordered_loads_only.h: \
         atomic_ops/sysdeps/loadstore/ordered_loads_only.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? > $@
 	sed -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? >> $@
 	sed -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? >> $@
@@ -175,6 +181,7 @@ atomic_ops/sysdeps/loadstore/ordered_loads_only.h: \
 
 atomic_ops/sysdeps/loadstore/ordered_stores_only.h: \
         atomic_ops/sysdeps/loadstore/ordered_stores_only.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? > $@
 	sed -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? >> $@
 	sed -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? >> $@
@@ -183,48 +190,60 @@ atomic_ops/sysdeps/loadstore/ordered_stores_only.h: \
 
 atomic_ops/sysdeps/loadstore/acquire_release_volatile.h: \
         atomic_ops/sysdeps/loadstore/acquire_release_volatile.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE_::g -e s:XCTYPE:AO_t:g $? > $@
 
 atomic_ops/sysdeps/loadstore/char_acquire_release_volatile.h: \
         atomic_ops/sysdeps/loadstore/acquire_release_volatile.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? > $@
 
 atomic_ops/sysdeps/loadstore/int_acquire_release_volatile.h: \
         atomic_ops/sysdeps/loadstore/acquire_release_volatile.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? > $@
 
 atomic_ops/sysdeps/loadstore/short_acquire_release_volatile.h: \
         atomic_ops/sysdeps/loadstore/acquire_release_volatile.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? > $@
 
 atomic_ops/sysdeps/loadstore/atomic_load.h: \
         atomic_ops/sysdeps/loadstore/atomic_load.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE_::g -e s:XCTYPE:AO_t:g $? > $@
 
 atomic_ops/sysdeps/loadstore/char_atomic_load.h: \
         atomic_ops/sysdeps/loadstore/atomic_load.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? > $@
 
 atomic_ops/sysdeps/loadstore/int_atomic_load.h: \
         atomic_ops/sysdeps/loadstore/atomic_load.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? > $@
 
 atomic_ops/sysdeps/loadstore/short_atomic_load.h: \
         atomic_ops/sysdeps/loadstore/atomic_load.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? > $@
 
 atomic_ops/sysdeps/loadstore/atomic_store.h: \
         atomic_ops/sysdeps/loadstore/atomic_store.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE_::g -e s:XCTYPE:AO_t:g $? > $@
 
 atomic_ops/sysdeps/loadstore/char_atomic_store.h: \
         atomic_ops/sysdeps/loadstore/atomic_store.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? > $@
 
 atomic_ops/sysdeps/loadstore/int_atomic_store.h: \
         atomic_ops/sysdeps/loadstore/atomic_store.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? > $@
 
 atomic_ops/sysdeps/loadstore/short_atomic_store.h: \
         atomic_ops/sysdeps/loadstore/atomic_store.template
+	mkdir -p `dirname $@`
 	sed -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? > $@
-- 
1.9.3