Skip to content

Commit bb9a355

Browse files
authored
Merge pull request #977 from Pinata-Consulting/make-missing-phony-statements
make: add missing .PHONY statements
2 parents e2fff25 + 9e70d1b commit bb9a355

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

flow/Makefile

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ $(1) $(2) &: $(3)
311311
endef
312312

313313
# Targets to harden Blocks in case of hierarchical flow is triggered
314+
.PHONY: build_macros
314315
build_macros: $(BLOCK_LEFS) $(BLOCK_LIBS)
315316

316317
$(foreach block,$(BLOCKS),$(eval $(call GENERATE_ABSTRACT_RULE,./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lef,./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lib,./designs/$(PLATFORM)/$(DESIGN_NICKNAME)/${block}/config.mk)))
@@ -416,6 +417,7 @@ clean_synth:
416417
# | _| | |__| |_| | |_| | _ <| __/| |___ / ___ \| |\ |
417418
# |_| |_____\___/ \___/|_| \_\_| |_____/_/ \_\_| \_|
418419
#
420+
.PHONY: floorplan
419421
floorplan: $(RESULTS_DIR)/2_floorplan.odb \
420422
$(RESULTS_DIR)/2_floorplan.sdc
421423
# ==============================================================================
@@ -473,6 +475,7 @@ $(RESULTS_DIR)/2_floorplan.odb: $(RESULTS_DIR)/2_6_floorplan_pdn.odb
473475
$(RESULTS_DIR)/2_floorplan.sdc: $(RESULTS_DIR)/2_1_floorplan.odb
474476

475477

478+
.PHONY: clean_floorplan
476479
clean_floorplan:
477480
rm -f $(RESULTS_DIR)/2_*floorplan*.odb $(RESULTS_DIR)/2_floorplan.sdc $(RESULTS_DIR)/2_*.v $(RESULTS_DIR)/2_*.def
478481
rm -f $(REPORTS_DIR)/2_*
@@ -485,6 +488,7 @@ clean_floorplan:
485488
# | __/| |___ / ___ \ |___| |___
486489
# |_| |_____/_/ \_\____|_____|
487490
#
491+
.PHONY: place
488492
place: $(RESULTS_DIR)/3_place.odb \
489493
$(RESULTS_DIR)/3_place.sdc
490494
# ==============================================================================
@@ -512,6 +516,7 @@ $(RESULTS_DIR)/3_3_place_gp.odb: $(RESULTS_DIR)/3_2_place_iop.odb $(RESULTS_DIR)
512516
$(RESULTS_DIR)/3_4_place_resized.odb: $(RESULTS_DIR)/3_3_place_gp.odb $(RESULTS_DIR)/2_floorplan.sdc
513517
($(TIME_CMD) $(OPENROAD_CMD) $(SCRIPTS_DIR)/resize.tcl -metrics $(LOG_DIR)/3_4_resizer.json) 2>&1 | tee $(LOG_DIR)/3_4_resizer.log
514518

519+
.PHONY: clean_resize
515520
clean_resize:
516521
rm -f $(RESULTS_DIR)/3_4_place_resized.odb
517522

@@ -528,6 +533,7 @@ $(RESULTS_DIR)/3_place.sdc: $(RESULTS_DIR)/2_floorplan.sdc
528533

529534
# Clean Targets
530535
#-------------------------------------------------------------------------------
536+
.PHONY: clean_place
531537
clean_place:
532538
rm -f $(RESULTS_DIR)/3_*place*.odb
533539
rm -f $(RESULTS_DIR)/3_place.sdc
@@ -543,6 +549,7 @@ clean_place:
543549
# | |___ | | ___) |
544550
# \____| |_| |____/
545551
#
552+
.PHONY: cts
546553
cts: $(RESULTS_DIR)/4_cts.odb \
547554
$(RESULTS_DIR)/4_cts.sdc
548555
# ==============================================================================
@@ -562,6 +569,7 @@ $(RESULTS_DIR)/4_cts.sdc: $(RESULTS_DIR)/4_cts.odb
562569
$(RESULTS_DIR)/4_cts.odb: $(RESULTS_DIR)/4_2_cts_fillcell.odb
563570
cp $< $@
564571

572+
.PHONY: clean_cts
565573
clean_cts:
566574
rm -rf $(RESULTS_DIR)/4_*cts*.odb $(RESULTS_DIR)/4_cts.sdc $(RESULTS_DIR)/4_*.v $(RESULTS_DIR)/4_*.def
567575
rm -f $(REPORTS_DIR)/4_*
@@ -575,6 +583,7 @@ clean_cts:
575583
# | _ <| |_| | |_| | | | | || |\ | |_| |
576584
# |_| \_\\___/ \___/ |_| |___|_| \_|\____|
577585
#
586+
.PHONY: route
578587
route: $(RESULTS_DIR)/5_route.odb \
579588
$(RESULTS_DIR)/5_route.sdc
580589
# ==============================================================================
@@ -605,6 +614,7 @@ $(RESULTS_DIR)/5_route.v:
605614
@export OR_DB=5_route ;\
606615
$(OPENROAD_CMD) ./scripts/write_verilog.tcl
607616

617+
.PHONY: clean_route
608618
clean_route:
609619
rm -rf output*/ results*.out.dmp layer_*.mps
610620
rm -rf *.gdid *.log *.met *.sav *.res.dmp
@@ -613,13 +623,15 @@ clean_route:
613623
rm -f $(REPORTS_DIR)/5_*
614624
rm -f $(LOG_DIR)/5_*
615625

626+
.PHONY: klayout_tr_rpt
616627
klayout_tr_rpt: $(RESULTS_DIR)/5_route.def $(OBJECTS_DIR)/klayout.lyt
617628
$(call KLAYOUT_FOUND)
618629
$(KLAYOUT_CMD) -rd in_drc="$(REPORTS_DIR)/5_route_drc.rpt" \
619630
-rd in_def="$<" \
620631
-rd tech_file=$(OBJECTS_DIR)/klayout.lyt \
621632
-rm $(UTILS_DIR)/viewDrc.py
622633

634+
.PHONY: klayout_guides
623635
klayout_guides: $(RESULTS_DIR)/5_route.def $(OBJECTS_DIR)/klayout.lyt
624636
$(call KLAYOUT_FOUND)
625637
$(KLAYOUT_CMD) -rd in_guide="$(RESULTS_DIR)/route.guide" \
@@ -636,6 +648,7 @@ klayout_guides: $(RESULTS_DIR)/5_route.def $(OBJECTS_DIR)/klayout.lyt
636648
# |_| |___|_| \_|___|____/|_| |_|___|_| \_|\____|
637649
#
638650
GDS_FINAL_FILE = $(RESULTS_DIR)/6_final.$(STREAM_SYSTEM_EXT)
651+
.PHONY: finish
639652
finish: $(LOG_DIR)/6_report.log \
640653
$(RESULTS_DIR)/6_final.v \
641654
$(RESULTS_DIR)/6_final.sdc \
@@ -665,6 +678,7 @@ $(LOG_DIR)/6_report.log: $(RESULTS_DIR)/6_1_fill.odb $(RESULTS_DIR)/6_1_fill.sdc
665678
$(RESULTS_DIR)/6_final.def: $(LOG_DIR)/6_report.log
666679

667680
# Skipping CTS can be useful to smoketest later stages.
681+
.PHONY: skip_cts
668682
skip_cts: $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/3_place.sdc
669683
# mock all intermediate results
670684
cp $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/4_1_cts.odb
@@ -673,6 +687,7 @@ skip_cts: $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/3_place.sdc
673687
cp $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/4_cts.odb
674688

675689
# Skipping route can be useful to create a mock abstract
690+
.PHONY: skip_route
676691
skip_route: $(RESULTS_DIR)/4_cts.odb $(RESULTS_DIR)/4_cts.sdc
677692
cp $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/5_1_grt.odb
678693
cp $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/5_2_route.odb
@@ -685,6 +700,7 @@ skip_route: $(RESULTS_DIR)/4_cts.odb $(RESULTS_DIR)/4_cts.sdc
685700
# make skip_cts
686701
# make skip_route
687702
# make generate_abstract
703+
.PHONY: generate_abstract
688704
generate_abstract: $(RESULTS_DIR)/6_final.gds $(RESULTS_DIR)/6_final.def $(RESULTS_DIR)/6_final.v
689705
($(TIME_CMD) $(OPENROAD_CMD) $(SCRIPTS_DIR)/generate_abstract.tcl -metrics $(LOG_DIR)/generate_abstract.json) 2>&1 | tee $(LOG_DIR)/generate_abstract.log
690706

@@ -722,6 +738,7 @@ $(RESULTS_DIR)/6_final.v: $(LOG_DIR)/6_report.log
722738
$(GDS_FINAL_FILE): $(GDS_MERGED_FILE)
723739
cp $^ $@
724740

741+
.PHONY: drc
725742
drc: $(REPORTS_DIR)/6_drc.lyrdb
726743

727744
$(REPORTS_DIR)/6_drc.lyrdb: $(GDS_FINAL_FILE) $(KLAYOUT_DRC_FILE)
@@ -742,6 +759,7 @@ $(RESULTS_DIR)/6_final.cdl: $(RESULTS_DIR)/6_final.v
742759
$(OBJECTS_DIR)/6_final_concat.cdl: $(RESULTS_DIR)/6_final.cdl $(CDL_FILE)
743760
cat $^ > $@
744761

762+
.PHONY: lvs
745763
lvs: $(RESULTS_DIR)/6_lvs.lvsdb
746764

747765
$(RESULTS_DIR)/6_lvs.lvsdb: $(GDS_FINAL_FILE) $(KLAYOUT_LVS_FILE) $(OBJECTS_DIR)/6_final_concat.cdl
@@ -755,6 +773,7 @@ else
755773
echo "LVS not supported on this platform" > $@
756774
endif
757775

776+
.PHONY: clean_finish
758777
clean_finish:
759778
rm -rf $(RESULTS_DIR)/6_*.gds $(RESULTS_DIR)/6_*.oas $(RESULTS_DIR)/6_*.odb $(RESULTS_DIR)/6_*.v $(RESULTS_DIR)/6_*.def $(RESULTS_DIR)/6_*.sdc $(RESULTS_DIR)/6_*.spef
760779
rm -rf $(REPORTS_DIR)/6_*.rpt
@@ -770,20 +789,24 @@ clean_finish:
770789
#
771790
# ==============================================================================
772791

792+
.PHONY: all
773793
all: $(SDC_FILE) $(WRAPPED_LIBS) $(DONT_USE_LIBS) $(OBJECTS_DIR)/klayout.lyt $(WRAPPED_GDSOAS) $(DONT_USE_SC_LIB)
774794
mkdir -p $(RESULTS_DIR) $(LOG_DIR) $(REPORTS_DIR)
775795
($(TIME_CMD) $(OPENROAD_CMD) $(SCRIPTS_DIR)/run_all.tcl -metrics $(LOG_DIR)/run_all.json) 2>&1 | tee $(LOG_DIR)/run_all.log
776796

797+
.PHONY: clean
777798
clean:
778799
@echo
779800
@echo "Make clean disabled."
780801
@echo "Use make clean_all or clean individual steps:"
781802
@echo " clean_synth clean_floorplan clean_place clean_cts clean_route clean_finish"
782803
@echo
783804

805+
.PHONY: clean_all
784806
clean_all: clean_synth clean_floorplan clean_place clean_cts clean_route clean_finish clean_metadata
785807
rm -rf $(OBJECTS_DIR)
786808

809+
.PHONY: nuke
787810
nuke: clean_test clean_issues
788811
rm -rf ./results ./logs ./reports ./objects
789812
rm -rf layer_*.mps macrocell.list *best.plt *_pdn.def dummy.guide
@@ -800,10 +823,15 @@ RESULTS_OAS = $(notdir $(sort $(wildcard $(RESULTS_DIR)/*.oas)))
800823
$(foreach file,$(RESULTS_DEF) $(RESULTS_GDS) $(RESULTS_OAS),klayout_$(file)): klayout_%: $(OBJECTS_DIR)/klayout.lyt
801824
$(KLAYOUT_CMD) -nn $(OBJECTS_DIR)/klayout.lyt $(RESULTS_DIR)/$*
802825

826+
.PHONY: gui_floorplan
803827
gui_floorplan: gui_2_floorplan.odb
828+
.PHONY: gui_place
804829
gui_place: gui_3_place.odb
830+
.PHONY: gui_cts
805831
gui_cts: gui_4_cts.odb
832+
.PHONY: gui_route
806833
gui_route: gui_5_route.odb
834+
.PHONY: gui_final
807835
gui_final: gui_6_final.odb
808836

809837
$(foreach file,$(RESULTS_DEF),gui_$(file)): gui_%:
@@ -820,9 +848,12 @@ $(foreach file,$(RESULTS_ODB),$(file).def): %.def:
820848
$(foreach file,$(RESULTS_ODB),$(file).v): %.v:
821849
ODB_FILE=$(RESULTS_DIR)/$* VERILOG_FILE=$(RESULTS_DIR)/$@ $(OPENROAD_CMD) $(SCRIPTS_DIR)/write_verilog.tcl
822850

851+
.PHONY: all_defs
823852
all_defs : $(foreach file,$(RESULTS_ODB),$(file).def)
853+
.PHONY: all_verilog
824854
all_verilog : $(foreach file,$(RESULTS_ODB),$(file).v)
825855

856+
.PHONY: handoff
826857
handoff : all_defs all_verilog
827858

828859
print-% : ; @echo $* = $($*)

flow/util/utils.mk

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
# Utilities
22
#===============================================================================
3+
.PHONY: metadata
34
metadata: $(REPORTS_DIR)/metadata-$(FLOW_VARIANT)-check.log
45

6+
.PHONY: clean_metadata
57
clean_metadata:
68
rm -f $(REPORTS_DIR)/metadata-$(FLOW_VARIANT)-check.log
79
rm -f $(REPORTS_DIR)/metadata-$(FLOW_VARIANT).json
@@ -16,6 +18,7 @@ update_metadata: $(REPORTS_DIR)/metadata-$(FLOW_VARIANT).json
1618
update_rules:
1719
$(UTILS_DIR)/genRuleFile.py $(DESIGN_DIR) --variant $(FLOW_VARIANT) --failing --tighten
1820

21+
.PHONY: update_rules_force
1922
update_rules_force:
2023
$(UTILS_DIR)/genRuleFile.py $(DESIGN_DIR) --variant $(FLOW_VARIANT) --update
2124

@@ -33,18 +36,21 @@ $(REPORTS_DIR)/metadata-$(FLOW_VARIANT)-check.log: $(REPORTS_DIR)/metadata-$(FLO
3336

3437
#-------------------------------------------------------------------------------
3538

39+
.PHONY: write_net_rc
3640
write_net_rc: $(RESULTS_DIR)/6_net_rc.csv
3741

3842
#$(RESULTS_DIR)/6_net_rc.csv: $(RESULTS_DIR)/4_cts.odb $(RESULTS_DIR)/6_final.spef
3943
$(RESULTS_DIR)/6_net_rc.csv:
4044
($(TIME_CMD) $(OPENROAD_CMD) $(UTILS_DIR)/write_net_rc_script.tcl) 2>&1 | tee $(LOG_DIR)/6_write_net_rc.log
4145

46+
.PHONY: correlate_rc
4247
correlate_rc: $(RESULTS_DIR)/6_net_rc.csv
4348
$(UTILS_DIR)/correlateRC.py $(RESULTS_DIR)/6_net_rc.csv
4449

4550
# TODO Make always wants to redo designs with this rule, regardless of which variations are tried.
4651
# $(MAKE) DESIGN_CONFIG=$$config write_net_rc; \
4752
#$(foreach config,$(wildcard designs/$(PLATFORM)/*/config.mk),$(MAKE) DESIGN_CONFIG=$(config) write_net_rc; )
53+
.PHONY: correlate_platform_rc
4854
correlate_platform_rc:
4955
for config in designs/$(PLATFORM)/*/config.mk; do \
5056
design=$$(basename $$(dirname $$config)); \
@@ -55,12 +61,14 @@ correlate_platform_rc:
5561
# Run test using gnu parallel
5662
#-------------------------------------------------------------------------------
5763
TEST_SCRIPT ?= $(TEST_DIR)/core_tests.sh
64+
.PHONY: run_test
5865
run_test:
5966
parallel --sshloginfile $(TEST_DIR)/nodes.txt \
6067
--timeout 21600 \
6168
--workdir `pwd` < $(TEST_SCRIPT) \
6269
--joblog $(TEST_DIR)/parallel.log
6370

71+
.PHONY: clean_test
6472
clean_test:
6573
rm -rf $(TEST_DIR)/logs
6674
rm -rf $(TEST_DIR)/parallel.log
@@ -82,6 +90,7 @@ export ISSUE_VARIABLES := $(foreach V, $(.VARIABLES),$(if $(filter-out environme
8290
$(foreach script,$(ISSUE_SCRIPTS),$(script)_issue): %_issue : versions.txt
8391
$(UTILS_DIR)/makeIssue.sh $*
8492

93+
.PHONY: clean_issues
8594
clean_issues:
8695
rm -rf $(foreach issue, $(ISSUE_SCRIPTS), $(issue)_*.tar.gz)
8796
rm -rf $(VARS_BASENAME).sh $(RUN_ME_SCRIPT)
@@ -93,16 +102,19 @@ $(RESULTS_DIR)/6_final_no_power.def: $(RESULTS_DIR)/6_final.def
93102
$(TIME_CMD) $(OPENROAD_CMD) $(SCRIPTS_DIR)/deletePowerNets.tcl
94103

95104

105+
.PHONY: gallery
96106
gallery: $(RESULTS_DIR)/6_final_no_power.def $(RESULTS_DIR)/6_final_only_clk.def
97107
($(TIME_CMD) klayout -z -nc -rx -rd gallery_json=util/gallery.json \
98108
-rd results_path=$(RESULTS_DIR) \
99109
-rd tech_file=$(OBJECTS_DIR)/klayout.lyt \
100110
-rm $(UTILS_DIR)/createGallery.py) 2>&1 | tee $(LOG_DIR)/6_1_merge.log
101111

112+
.PHONY: view_cells
102113
view_cells:
103114
$(OPENROAD_GUI_CMD) $(SCRIPTS_DIR)/view_cells.tcl
104115

105116
## Quick access to command line
117+
.PHONY: command
106118
command:
107119
$(OPENROAD_NO_EXIT_CMD)
108120

@@ -117,6 +129,7 @@ OPENROAD_EXE := valgrind $(VALGRIND_ARGS) $(OPENROAD_EXE)
117129
endif
118130

119131
## Convert RVE DRC database to JSON
132+
.PHONY: convert_rve
120133
convert_rve: $(REPORTS_DIR)/drc.json
121134

122135
$(REPORTS_DIR)/drc.json: $(DRC_FILE)
@@ -130,5 +143,6 @@ endif
130143

131144
# Update the clock period sdc based on the worst slack reported by the final
132145
# (post global route) timing.
146+
.PHONY: update_sdc_clocks
133147
update_sdc_clocks: $(RESULTS_DIR)/route.guide
134148
cp $(RESULTS_DIR)/updated_clks.sdc $(SDC_FILE)

0 commit comments

Comments
 (0)