---
# System prepended metadata

title: Regular Meeting (2021.11.29)
tags: [Regular Meeting, DeWei]

---

# Regular Meeting (2021.11.29)

* Reducing *makefile* (for all *makefile*)

## Reducing *makefile* 

| Old style | New style |
|:---------:|:---------:|
|![](https://i.imgur.com/SWEEN8q.png)| ![](https://i.imgur.com/41o58OH.png)|

* Circumstance(Problem):
  * Old style may caused problem when parsing *has build* or *has not build*
  * That means: `build_fsbl` will always rebuild, doesn't check if target exist


#### p1. Format of *makefile*
```makefile
Target: Dependency-1 Dependency-2 ... Dependency-n
<tab>commend-1
<tab>commend-2
...
<tab>commend-n
```

#### p2. Run rule of *makefile*
```
if (Target && Dependencies) changed 
  then remake 
  aka 
if (Target && Dependencies) changed
  then run Dependencies 
  then run Commends
```

#### p3. Dummy target aka `.phony`
```
.phony pt

pt: dep1 dep2
  cmd
```
\>>means: `pt` is always **changed**

#### Why?

* Since deps aka `init_dir`,`start_msg`,...,etc. are always **changed** (.phony target), 
-> Because deps is changed, so they need to be rebuild
-> Rebuild all (no matter what the target exists )

###### tags: `Regular Meeting` `DeWei`