On Thu, 12 Dec 2024, James K. Lowden wrote:

> diff --git a/configure b/configure
> index 51bf1d1add1..2a8f0cadc0e 100755
> --- a/configure
> +++ b/configure
> @@ -775,6 +775,7 @@ infodir
>  docdir
>  oldincludedir
>  includedir
> +runstatedir
>  localstatedir
>  sharedstatedir
>  sysconfdir

Please make sure to do all regeneration with *unmodified* versions of the 
relevant tools, not ones with distribution changes.

> +CPPFLAGS =                                   \
> + -std=c++17                                  \
> + $(MAX_ERRORS)                                       \
> + -Iinclude                                   \
> + -I$(BINCLUDE)                                       \
> + -Wno-cpp                                    \
> + -Wno-missing-field-initializers             \
> + -DEXEC_LIB=\"$(DESTDIR)$(libdir)\"
> + $(END)

It's never appropriate for $(DESTDIR) to be built into any programs; it's 
a temporary staging directory used for installation (when the final 
installation will use a distribution package manager or similar) only.  
Paths built into programs should only be within $(prefix) or 
$(exec_prefix) or other configured directories that default to being based 
on those (and when one part of the compiler locates another, it needs to 
use make_relative_prefix from libiberty to handle the possibility that the 
final installed prefix is different from the configure-time one).

> +YACC = bison

Please use BISON as already set by configure in gcc/Makefile.in.  That 
allows people to override the setting at configure time.

> +LEX = flex

Likewise, use FLEX.

> +cobol.install-common: installdirs
> +     $(INSTALL_PROGRAM) -v gcobol$(exeext)                           \
> +             $(DESTDIR)$(bindir)/$(gcobol_INSTALL_NAME)$(exeext)
> +     $(INSTALL_PROGRAM) -v $(srcdir)/cobol/gcobc $(DESTDIR)$(bindir)/
> +     $(INSTALL_DATA) -v $(srcdir)/cobol/udf/* $(udfdir)/

Apart from the missing definition of $(udfdir), that line is also missing 
a use of $(DESTDIR).

> +cobol.uninstall:
> +     -rm -f gcobol$(exeext) cobol1$(exeext)
> +     -rm -f $(cobol_OBJS)

The uninstall target should remove exactly the installed files under 
$(DESTDIR).  It shouldn't remove anything from the build directory.  In 
general it *can't* remove anything from the build directory (consider the 
case where "make uninstall" is run as root and the build directory is 
root-squashed NFS, so there is no write access to the build directory from 
"make install" or "make uninstall").

-- 
Joseph S. Myers
josmy...@redhat.com

Reply via email to