help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GNU make - "file has not been updated" but it definitely has


From: Adrian Muresan
Subject: GNU make - "file has not been updated" but it definitely has
Date: Sun, 7 Aug 2016 21:11:33 +0000

I'm building my `make` project using `--print-data-base` and then parsing the 
output database for use in another step.

The database contains ALL targets defined in the makefile even if one or more 
were not built.

Thankfully, in the database section of `make` output, whether a given target 
was built or not is denoted by this line:

    #  File has not been updated.

or

    #  File has been updated.

or so I thought . . .

Now, I've come up against a target that absolutely was built but its database 
entry says `File has not been updated`.<br/>
**Is it because the target is a directory?**

Database entry:

    C:/Users/mureadr/Desktop/A/HMI_FORGF/src/../bin/armle-v7/release/:
    #  Implicit rule search has not been done.
    #  Modification time never checked.
    #  File has not been updated.
    #  recipe to execute (from 
'C:/Users/mureadr/Desktop/A/HMI_FORGF/src/../../HMI/cfg/config.mk', line 92):
    -mkdir -p $(@)

Makefile entry:

    # Building necessary directories
    build_dirs: $(BUILD_DIRS)

    $(BUILD_DIRS):
    -mkdir -p $(@)


`make` output:

              Considering target file 
'C:/Users/mureadr/Desktop/A/HMI_FORGF/src/../bin/armle-v7/release/'.
               File 
'C:/Users/mureadr/Desktop/A/HMI_FORGF/src/../bin/armle-v7/release/' does not 
exist.
               Finished prerequisites of target file 
'C:/Users/mureadr/Desktop/A/HMI_FORGF/src/../bin/armle-v7/release/'.
              Must remake target 
'C:/Users/mureadr/Desktop/A/HMI_FORGF/src/../bin/armle-v7/release/'.
    C:/Users/mureadr/Desktop/A/HMI_FORGF/src/../../HMI/cfg/config.mk:92: target 
'C:/Users/mureadr/Desktop/A/HMI_FORGF/src/../bin/armle-v7/release/' does not 
exist
    mkdir -p C:/Users/mureadr/Desktop/A/HMI_FORGF/src/../bin/armle-v7/release/
              Successfully remade target file 
'C:/Users/mureadr/Desktop/A/HMI_FORGF/src/../bin/armle-v7/release/'.

So obviously it's being built!

**Question**<br/>
Why does its database entry say "file has **not** been updated?<br/>
Is there a special case for directories?<br/>
If so, are there any other special cases, with respect to "file has (not)? been 
updated" that I need to know about?<br/>
If directories are a special case, why were they made special?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]