Subject: Re: bug#25536: problem in adding a prog to make in coreutils -- spread to multiple files

From: Eric Blake <[email-masked]>
Date: Wed, 25 Jan 2017 16:39:17 -0600

tag 25536 notabug
done

On 01/25/2017 04:09 PM, L A Walsh wrote:
> I was trying to compile a file in the 'src' dir of the coreutils,
> called 'retab.c' but I got all sorts of weird errors.  Trying
> to do a make clean and remaking it I now get it in a bunch of files:
> 
> ./lib/time.h:20:1: error: stray '@' in program
> @ PRAGMA_SYSTEM_HEADER @
> ^

> 
> Was something suppose to replace those?

Those are files inserted by gnulib, the @ markers get fixed up during
'make', provided that you didn't mess up the automake invocation.  So it
sounds like something you did prevented automake's normal rules from
properly generating those files.

> 
> 
> How does one add a file to be made?
> 
> I tried going through Makefile.in,

Wrong file. Coreutils uses automake, therefore your edits need to be
made to Makefile.am and/or the files that it includes (such as
src/local.mk).  Then you need to make sure you rerun automake to rebuild
Makefile.in, then configure (or config.status) to rebuild Makefile; if
you have all the right tools installed, then the rerun of automake and
config.status happens automatically from the existing Makefile.  But it
sounds like since you bypassed a step and messed up your tree, it may be
easiest to just rerun ./bootstrap to fix the incomplete job (bootstrap
runs automake under the hood as needed).

By the way, this isn't a bug in coreutils, so much as a build question,
so it might be better to ask similar questions directly to the
[email-masked] list (rather than bug-coreutils) so that we don't have
to close out a corresponding bug from the tracker.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org