# BUG: Targets 'config-recursive' and 'config-conditional', behave same!



## Seeker (Jun 8, 2011)

I think this is a bug:

Navigate into port dir of your selection.



> *config* - Configure port's OPTIONS using dialog(1)


No matter how much time in a row you call it, it will always throw a dialog!


```
[B]config-recursive[/B] - SAME as above, but also affect its dependencies
```
NOT, try to run it, more then once in a row and you'll see it works only ONCE! It SKIPS ports which had their options set! This is behaviour of:


> *config-conditional* - Skip the ports which have already had their OPTIONS configured.


----------



## SirDice (Jun 9, 2011)

Seeker said:
			
		

> No matter how much time in a row you call it, it will always throw a dialog!


Make sure you "click" on "OK". If you cancel it the options won't be saved.


----------



## Seeker (Jun 9, 2011)

SirDice said:
			
		

> Make sure you "click" on "OK". If you cancel it the options won't be saved.


Which would *ensure*, that *config-recursive*, throws dialog each time.
But once you "click" on "OK", *config-recursive* ignores all ports with saved options, *INCLUDING* root port!
This is behaviour of *config-conditional* target!

I say that, this is a bug!


----------



## Seeker (Jun 9, 2011)

And here is why!

```
.if !target(config-recursive)
config-recursive:
        @${ECHO_MSG} "===> Setting user-specified options for ${PKGNAME} and dependencies";
        @for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \
                (cd $$dir; ${MAKE} [color="Red"][B]config-conditional[/B][/color]); \
        done
.endif
```
*config-recursive* calls *config-conditional*, so that is why *config-recursive* behaves as *config-conditional*!
It should call *config*


----------



## Seeker (Jun 9, 2011)

Additionally, there seems to be a BUG, with first 2, make targets: (they have substituted behaviour)

```
all-depends-list
run-depends-list
pretty-print-run-depends-list
```

Last 2 should return SAME amount of dependencies, but differently formated.

*all-depends-list* should only list, first level dependencies.


----------

