# Cannot build kernel after make buildworld and make buildkernel



## big_girl (Mar 22, 2016)

Hello,

On 10.1-REL on amd64, I ran `make buildworld` and `make buildkernel` and rebooted into the new kernel. The `make` was done using a custom kernel config file, modified make.conf, and modified src.conf, all to give a very minimal install.

After rebooting, I cannot run `make buildkernel` again (using the same kernel config, make.conf, and src.conf files) without throwing this error-


```
---------------------------------------------------------------------------
>>> stage 3.1: making dependencies
---------------------------------------------------------------------------
usage: vnode_if.awk <srcfile> [-c|-h|-p|-q]

*** Failed target:  vnode_if_newproto.h
*** Failed command: awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src -p
*** Error code 1

Stop.
make[2]: stopped in /usr/obj/usr/src/sys/GENERIC_MODIFIED
```

I ruled out the kernel config file and make.conf as the source of the problem, which leaves the src.conf. I've left in anything related to install or compilers, but am at a loss for what is preventing `make buildkernel` from completing successfully. I've got these tools set in src.conf-


```
WITH_CLANG=YES
WITHOUT_CPP=NO
WITHOUT_CXX=NO
WITHOUT_GCC=YES
WITHOUT_GNUCXX=YES
WITHOUT_LIBCPLUSPLUS=NO
WITHOUT_MAKE=NO
```

Anyone have this error before?

TIA,
-bg


----------



## SirDice (Mar 23, 2016)

big_girl said:


> ```
> WITHOUT_CPP=NO
> WITHOUT_CXX=NO
> WITHOUT_GCC=YES
> ...


Yep. You just removed make(1) and friends. This doesn't do what you expected:

```
WITHOUT_MAKE=NO
```
The variable is defined, it doesn't matter what its value is. So these are all the same and will all remove make(1):

```
WITHOUT_MAKE=YES
WITHOUT_MAKE=NO
WITHOUT_MAKE="SOME RANDOM TEXT"
```


----------



## big_girl (Mar 23, 2016)

My goodness! 

And it was right here, all along, in src.conf(5) -


```
The values of variables are ignored regardless of their setting; even if they would be set to ``FALSE'' or ``NO''. Just the existence of an
 option will cause it to be honoured by make(1).
```

It is a little strange, though, that NOT specifying a value for any parameter in src.conf(5) throws an error when calling make(1), given that those values are ignored anyway.


----------



## SirDice (Mar 23, 2016)

It's basically a simple shell script. So this will throw a syntax error:

```
WITH_MAKE
```
But this doesn't:

```
WITH_MAKE=
```


----------

