# Base filename gets set to compiler\_depend.ts after update to CMake 3.20

**URL:** https://discourse.cmake.org/t/base-filename-gets-set-to-compiler-depend-ts-after-update-to-cmake-3-20/3075
**Category:** Code
**Tags:** os:linux, gen:makefiles
**Created:** [April 2, 2021, 7:20pm UTC](https://discourse.cmake.org/t/base-filename-gets-set-to-compiler-depend-ts-after-update-to-cmake-3-20/3075 "2021-04-02T19:20:12Z")
**Posts on this page:** 1
**Showing post:** 4

<div class="post-metadata">

### Author: ![marc.chevrier](https://discourse.cmake.org/letter_avatar_proxy/v4/letter/m/ecb155/32.png) [@marc.chevrier](https://discourse.cmake.org/u/marc.chevrier)
#### Post date: [April 2, 2021, 10:03pm UTC](https://discourse.cmake.org/t/base-filename-gets-set-to-compiler-depend-ts-after-update-to-cmake-3-20/3075/4 "2021-04-02T22:03:28Z")

</div>

The problem comes from the usage of `$<`. This `Make` variable returns the **first** prerequisite of the target. The behavior you expect relies on the layout of the makefile generated by `CMake`. And this layout has changed between `3.19` and `3.20`.  
This is definitively a very bad approach to rely on the makefile layout! If you can’t avoid to use your ` __FILENAME__ ` macro, I recommend you to use `Make` variable `$@`.

---

_[View the full topic](https://discourse.cmake.org/t/base-filename-gets-set-to-compiler-depend-ts-after-update-to-cmake-3-20/3075)._
