On Fri, 28 Mar 2025, Jakub Jelinek wrote:

> Hi!
> 
> 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.
> 
> Ok for trunk?

OK if this passes build.

Richard.

> 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).
> 
> --- gcc/cobol/Make-lang.in.jj 2025-03-28 15:08:29.431543005 +0100
> +++ gcc/cobol/Make-lang.in    2025-03-28 15:31:14.886182633 +0100
> @@ -87,29 +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|\"libgcobol[.]h\"|\"$(LIB_SOURCE)/libgcobol.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|\"libgcobol[.]h\"|\"$(LIB_SOURCE)/libgcobol.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\|libgcobol\|gfileio\|charmaps'; \
> +     l=$$l'\|valconv\|exceptl'; \
> +     sed -e '/^#include/s,"\('$$l'\)\.h","../../libgcobol/\1.h",' $^ > $@
>  
>  LIB_SOURCE_H=$(wildcard $(LIB_SOURCE)/*.h)
>  
> 
>       Jakub
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)

Reply via email to