https://gcc.gnu.org/g:ea46ef1d21ce3bc6b7584cdf21b7b26d5daf72db

commit r15-9019-gea46ef1d21ce3bc6b7584cdf21b7b26d5daf72db
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Sat Mar 29 00:47:57 2025 +0100

    cobol: Fix up cobol/{charmaps,valconv}.cc rules
    
    sed -i is not portable, it is supported by GNU sed and perhaps some BSDs,
    but not elsewhere.
    Furthermore, I think it is far better to always use
     #include "../../libgcobol/something.h"
    paths rather than something depending on the build directory.
    And because we require GNU make, we don't have to have two different
    rules for those, can use just one for both.
    The l variable in there is just to make it fit into 80 columns.
    
    2025-03-28  Jakub Jelinek  <ja...@redhat.com>
    
            * Make-lang.in (cobol/charmaps.cc, cobol/valconv.cc): Used sed -e
            instead of cp and multiple sed -i commands.  Always prefix libgcobol
            header names in #include directives with ../../libgcobol/ rather 
than
            something depending on $(LIB_SOURCE).

Diff:
---
 gcc/cobol/Make-lang.in | 25 ++++---------------------
 1 file changed, 4 insertions(+), 21 deletions(-)

diff --git a/gcc/cobol/Make-lang.in b/gcc/cobol/Make-lang.in
index ee048b09d9de..990d51a85788 100644
--- a/gcc/cobol/Make-lang.in
+++ b/gcc/cobol/Make-lang.in
@@ -87,27 +87,10 @@ cobol1_OBJS =    \
 # Various #includes in the files copied from gcc/libgcobol need to be modified
 # so that the .h files can be found.
 
-cobol/charmaps.cc: $(LIB_SOURCE)/charmaps.cc
-       cp $^ $@
-       sed -i "s|\"ec[.]h\"|\"$(LIB_SOURCE)/ec.h\"|g" $@
-       sed -i "s|\"common-defs[.]h\"|\"$(LIB_SOURCE)/common-defs.h\"|g" $@
-       sed -i "s|\"io[.]h\"|\"$(LIB_SOURCE)/io.h\"|g" $@
-       sed -i "s|\"gcobolio[.]h\"|\"$(LIB_SOURCE)/gcobolio.h\"|g" $@
-       sed -i "s|\"gfileio[.]h\"|\"$(LIB_SOURCE)/gfileio.h\"|g" $@
-       sed -i "s|\"charmaps[.]h\"|\"$(LIB_SOURCE)/charmaps.h\"|g" $@
-       sed -i "s|\"valconv[.]h\"|\"$(LIB_SOURCE)/valconv.h\"|g" $@
-       sed -i "s|\"exceptl[.]h\"|\"$(LIB_SOURCE)/exceptl.h\"|g" $@
-
-cobol/valconv.cc: $(LIB_SOURCE)/valconv.cc
-       cp $^ $@
-       sed -i "s|\"ec[.]h\"|\"$(LIB_SOURCE)/ec.h\"|g" $@
-       sed -i "s|\"common-defs[.]h\"|\"$(LIB_SOURCE)/common-defs.h\"|g" $@
-       sed -i "s|\"io[.]h\"|\"$(LIB_SOURCE)/io.h\"|g" $@
-       sed -i "s|\"gcobolio[.]h\"|\"$(LIB_SOURCE)/gcobolio.h\"|g" $@
-       sed -i "s|\"gfileio[.]h\"|\"$(LIB_SOURCE)/gfileio.h\"|g" $@
-       sed -i "s|\"charmaps[.]h\"|\"$(LIB_SOURCE)/charmaps.h\"|g" $@
-       sed -i "s|\"valconv[.]h\"|\"$(LIB_SOURCE)/valconv.h\"|g" $@
-       sed -i "s|\"exceptl[.]h\"|\"$(LIB_SOURCE)/exceptl.h\"|g" $@
+cobol/charmaps.cc cobol/valconv.cc: cobol/%.cc: $(LIB_SOURCE)/%.cc
+       -l='ec\|common-defs\|io\|gcobolio\|gfileio\|charmaps'; \
+       l=$$l'\|valconv\|exceptl'; \
+       sed -e '/^#include/s,"\('$$l'\)\.h","../../libgcobol/\1.h",' $^ > $@
 
 LIB_SOURCE_H=$(wildcard $(LIB_SOURCE)/*.h)

Reply via email to