Re: Missing separator error can be caused by too many files in alternate recipe format

2014-05-27 Thread Paul Smith
On Mon, 2014-05-26 at 20:46 -0400, PenguinDude24 wrote:
 What I think happened is that obviously there was some internal error 
 with heuristics that GNU Make (and most likely others), and the 
 heuristics engine could not figure out how to parse that long line 
 (maybe was not expecting data to be so long, or programmer so stupid
 to do that) and threw the error.

GNU make supports an arbitrary number of targets and prerequisites, up
to the size of your computer's memory.  There are no (known) hardcoded
limits.

And, an error like missing separator is not what I would expect to see
if the problem were related to some out of bounds error.

Instead, I expect that either there's some issue with the way automake
generated the makefile, or else some issue with the filenames in the
target list, or a bug in GNU make related to heap management.

The only way to know is if you give us the details necessary to
understand the problem.  What version of automake are you using?  What
version of GNU make?  And, what is the (exact) contents of the line
which is causing make to throw an error (and a few lines before/after
it, for context)?




Re: Missing separator error can be caused by too many files in alternate recipe format

2014-05-27 Thread PenguinDude24

On 05/27/2014 07:21 AM, Paul Smith wrote:

On Mon, 2014-05-26 at 20:46 -0400, PenguinDude24 wrote:

What I think happened is that obviously there was some internal error
with heuristics that GNU Make (and most likely others), and the
heuristics engine could not figure out how to parse that long line
(maybe was not expecting data to be so long, or programmer so stupid
to do that) and threw the error.


GNU make supports an arbitrary number of targets and prerequisites, up
to the size of your computer's memory.  There are no (known) hardcoded
limits.

And, an error like missing separator is not what I would expect to see
if the problem were related to some out of bounds error.

Instead, I expect that either there's some issue with the way automake
generated the makefile, or else some issue with the filenames in the
target list, or a bug in GNU make related to heap management.

The only way to know is if you give us the details necessary to
understand the problem.  What version of automake are you using?  What
version of GNU make?  And, what is the (exact) contents of the line
which is causing make to throw an error (and a few lines before/after
it, for context)?



It could be the way Automake generated the Makefile.

Although I had an issue with this, I resolved it by omitting a recipe to 
make the data file (both Make and Automake). No data files are built, 
but just needed them to be moved into pkgdatadir by Autotools.


I cannot put raw sources in here because of confidentiality reasons, but 
here is a foo example of what I have with real raw text changed.


Makefile.am:
# --

pluginsdir = $(pkgdatadir)/plugins

dist_plugins_DATA = plugin-1 plugin-2

messagesPlugindir = $(pluginsdir)/messages

messagesPluginTemplatesdir = $(messagesPlugindir)/templates

#   Here is the supposed text that causes issues. This project I'm on 
has hundreds of template files (not my idea)
messages_actual_data_files = data-file-1 data-file-2 ... data-file-300 
.. data-file-nnn


dist_messagesPluginTemplates_DATA = $(messages_actual_data_files)

#   FORM1 -- recipe that caused GNU Make crash, i.e missing separator 
line nnn'

# The target here is over two hundred or so data files (templates). The
# generated line is pretty printed by automake it seems, because it has
# formatting I did not put in there.
$(dist_messagesPluginTemplates_DATA): Makefile
@echo 'no-op for data file' $@

#   FORM2 -- no crash with this one, but rule is not run because Makefile
# exists and is newer than dependencies.
Makefile: $(dist_messagesPluginTemplates_DATA)
@echo 'no-op for data file' $@

I must add that in the generated Makefile, the output seems to be pretty 
printed  like so:


#   line 345_example
$(dist_directory_DATA) = \
target_foo-1 \
target_foo-2 \
target_foo-3 \
... \
target_foo-n

And Make complains of error on line 345_example. Also, in the 
Makefile.am that I made the variable declaration for that target, I 
added some minor pretty printing, and automake error checking (nor GNU 
Emacs)did not complain about it, and it ran until that line. Then the 
make(1) crash.


Hit me up if you have any Q's.



Re: Missing separator error can be caused by too many files in alternate recipe format

2014-05-27 Thread PenguinDude24

On 05/27/2014 05:56 PM, PenguinDude24 wrote:

On 05/27/2014 07:21 AM, Paul Smith wrote:

On Mon, 2014-05-26 at 20:46 -0400, PenguinDude24 wrote:

What I think happened is that obviously there was some internal error
with heuristics that GNU Make (and most likely others), and the
heuristics engine could not figure out how to parse that long line
(maybe was not expecting data to be so long, or programmer so stupid
to do that) and threw the error.


GNU make supports an arbitrary number of targets and prerequisites, up
to the size of your computer's memory. There are no (known) hardcoded
limits.

And, an error like missing separator is not what I would expect to see
if the problem were related to some out of bounds error.

Instead, I expect that either there's some issue with the way automake
generated the makefile, or else some issue with the filenames in the
target list, or a bug in GNU make related to heap management.

The only way to know is if you give us the details necessary to
understand the problem. What version of automake are you using? What
version of GNU make? And, what is the (exact) contents of the line
which is causing make to throw an error (and a few lines before/after
it, for context)?



It could be the way Automake generated the Makefile.

Although I had an issue with this, I resolved it by omitting a recipe to
make the data file (both Make and Automake). No data files are built,
but just needed them to be moved into pkgdatadir by Autotools.

I cannot put raw sources in here because of confidentiality reasons, but
here is a foo example of what I have with real raw text changed.

Makefile.am:
# --

pluginsdir = $(pkgdatadir)/plugins

dist_plugins_DATA = plugin-1 plugin-2

messagesPlugindir = $(pluginsdir)/messages

messagesPluginTemplatesdir = $(messagesPlugindir)/templates

# Here is the supposed text that causes issues. This project I'm on has
hundreds of template files (not my idea)
messages_actual_data_files = data-file-1 data-file-2 ... data-file-300
.. data-file-nnn

dist_messagesPluginTemplates_DATA = $(messages_actual_data_files)

# FORM1 -- recipe that caused GNU Make crash, i.e missing separator
line nnn'
# The target here is over two hundred or so data files (templates). The
# generated line is pretty printed by automake it seems, because it has
# formatting I did not put in there.
$(dist_messagesPluginTemplates_DATA): Makefile
@echo 'no-op for data file' $@

# FORM2 -- no crash with this one, but rule is not run because Makefile
# exists and is newer than dependencies.
Makefile: $(dist_messagesPluginTemplates_DATA)
@echo 'no-op for data file' $@

I must add that in the generated Makefile, the output seems to be pretty
printed like so:

# line 345_example
$(dist_directory_DATA) = \
target_foo-1 \
target_foo-2 \
target_foo-3 \
... \
target_foo-n

And Make complains of error on line 345_example. Also, in the
Makefile.am that I made the variable declaration for that target, I
added some minor pretty printing, and automake error checking (nor GNU
Emacs)did not complain about it, and it ran until that line. Then the
make(1) crash.

Hit me up if you have any Q's.


Just did some invistigation.

Does not appear to be length related, seems to be data filename related.

My filenames have semi-colons in them and yes I did escape them (as-is 
text):


admin_files = some-file.dat

admin_templates_files =   Admin/templates/adminLoginForm;admin;default 
Admin/templates/blockEdit\;admin\;default 
Admin/templates/colorEdit\;admin\;default 
Admin/templates/data\;admin\;default 
Admin/templates/editbuttons\;admin\;default 
Admin/templates/editFilter\;admin\;default 
Admin/templates/editStory\;admin\;default 
Admin/templates/ispellok\;admin\;default 
Admin/templates/keywordEdit\;admin\;default 
Admin/templates/listFilters\;admin\;default 
Admin/templates/listStories\;admin\;default 
Admin/templates/messages\;admin\;default 
Admin/templates/otherLinks\;admin\;default 
Admin/templates/relatedlinks\;admin\;default 
Admin/templates/siteInfo\;admin\;default 
Admin/templates/templateEdit\;admin\;default 
Admin/templates/titles\;admin\;default 
Admin/templates/topicEdit\;admin\;default 
Admin/templates/varEdit\;admin\;default


dist_admin_DATA = $(admin_files)

#   make dies here
dist_adminTemplates_DATA = $(admin_templates_files)




Re: Missing separator error can be caused by too many files in alternate recipe format

2014-05-27 Thread PenguinDude24



My filenames have semi-colons in them and yes I did escape them (as-is
text):

admin_files = some-file.dat

admin_templates_files = Admin/templates/adminLoginForm;admin;default
Admin/templates/blockEdit\;admin\;default
Admin/templates/colorEdit\;admin\;default
Admin/templates/data\;admin\;default
Admin/templates/editbuttons\;admin\;default
Admin/templates/editFilter\;admin\;default
Admin/templates/editStory\;admin\;default
Admin/templates/ispellok\;admin\;default
Admin/templates/keywordEdit\;admin\;default
Admin/templates/listFilters\;admin\;default
Admin/templates/listStories\;admin\;default
Admin/templates/messages\;admin\;default
Admin/templates/otherLinks\;admin\;default
Admin/templates/relatedlinks\;admin\;default
Admin/templates/siteInfo\;admin\;default
Admin/templates/templateEdit\;admin\;default
Admin/templates/titles\;admin\;default
Admin/templates/topicEdit\;admin\;default
Admin/templates/varEdit\;admin\;default

dist_admin_DATA = $(admin_files)

# make dies here
dist_adminTemplates_DATA = $(admin_templates_files)



CORRECTION

# causes problems
dist_adminTemplates_DATA = $(admin_templates_files)

$(dist_adminTemplates_DATA): Makefile
@echo 'no-op for datafile' $@



Re: Missing separator error can be caused by too many files in alternate recipe format

2014-05-27 Thread PenguinDude24

It turns out it is not a bug--just general error/quirk.

Okay, I found the error, and the reason why I been going insane over 
this over the past few hours.


My filenames have semi-colons in them. That is what triggered the 
missing separator error.


Makefile.am:


#   filename with semi-colons
template_file = data;sectionfoo;foo-1

dist_pkgdata_DATA = $(template_file)

#   generated Makefile rule here would cause make crash
$(dist_pkgdata_DATA): Makefile
@echo 'no-op for datafile' $@

My solution is to use the transformation program option of Autotools 
(via configure.ac).


Sorry for the inconvenience.

-- penguindude24