Fix missing output folder on making auto-generated headers (Automake)
authorKochin Chang <kochinc@outlook.com>
Fri, 12 Sep 2014 17:35:53 +0000 (13:35 -0400)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 24 Oct 2014 20:17:32 +0000 (00:17 +0400)
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

index d2cf718..fc09b27 100644 (file)
@@ -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 $? > $@