Menu

Running a task once

Help
2010-01-31
2013-03-15
  • Nobody/Anonymous

    Consider the following problem:

    Before running acceptance tests we want to ensure that previous executions didn't leave stale processes in memory. This could happen e.g. because the previous test failed.

    Our execution goes like this:

    We have a target (phony all) that depends on the individual outputs from projects A, B, C, D, etc. This gives us an option to either run all the tests or only some of them since they are grouped as different projects.

    If we want to run this "cleansystem" task then we need to ensure that it gets executed before all the others.

    One way is to split it up into two executions of makepp e.g. calling "makepp cleansystem" and then next "makepp all".

    However I wonder if it isn't possible to ensure that the order is proper? Our cleansystem task also needs to be phony as there are no output files from killing other processes.

    Thanks.

    • Henrik
     
  • Daniel Pfeiffer

    Daniel Pfeiffer - 2010-02-03

    Hi Henrik,

    well, order is another word for dependency:

    A B C D: cleanall
    

    But this would cause these targets to be remade each time, because they depend on a phony target.  Removing this line per ifdef won't help too much, because the next time they will get built again because of this removed dependency.  Instead I would do this while reading the makefile, i.e. before all normal rules:

    ifdef CLEANALL       # set this on the command line: mpp CLEANALL=1
      prebuild cleanall
    endif
    

    best regards
    Daniel

     

Log in to post a comment.