[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Differing behaviour between make 3.81 and 4.0
From: |
Shriramana Sharma |
Subject: |
Differing behaviour between make 3.81 and 4.0 |
Date: |
Sat, 31 May 2014 21:03:50 +0530 |
Hello. Consider a directory with (dummy) files {a,b,c,chelper,def}.c
and the attached Makefile.
Now with make 3.81 (on Kubuntu Trusty) I am getting the output:
$< gives /usr/bin/startx
$< gives /usr/bin/startx
$< gives chelper.c
$< gives /usr/bin/startx
$< gives /usr/bin/startx
$< gives /usr/bin/startx
I was wondering about this since as per
http://www.gnu.org/software/make/manual/html_node/Prerequisite-Types.html#Prerequisite-Types
for every successive rule adding a prerequisite to a given target, the
prerequisites "are appended appropriately" (which I presume to mean
"in the order they are specified in the Makefile). So what I would
actually have expected make to give me is:
$< gives a.c
$< gives b.c
$< gives c.c
$< gives def.c
$< gives def.c
$< gives def.c
But with make 3.81 to get this output, I need to move the
/usr/bin/startx rule at location 2 to location 1 (see Makefile) which
doesn't seem right. OTOH with make 4.0 (backported from Kubuntu
Utopic) I am getting the above output with the /usr/bin/startx rule at
location 2 as expected, and if I move it to location 1, $< points to
/usr/bin/startx in all cases (and not chelper.c in one of the cases as
in 3.81's location 2 case).
I am just posting this here to ascertain from whether this was
actually an intentional bugfix in make 4.0 and not just a
serendipitous one.
Thanks.
--
Shriramana Sharma ஶ்ரீரமணஶர்மா श्रीरमणशर्मा
Makefile
Description: Binary data
- Differing behaviour between make 3.81 and 4.0,
Shriramana Sharma <=