# 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`