Skip to content

Commit 8b4c2dc

Browse files
authored
Merge pull request #1109 from Pinata-Consulting/makefile-revert-symlink-usage
makefile: mixing symlinks and normal files doesn't work with make
2 parents 42e5a06 + e8ee34b commit 8b4c2dc

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

flow/Makefile

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ $(RESULTS_DIR)/2_2_floorplan_io.odb: $(RESULTS_DIR)/2_1_floorplan.odb $(IO_CONST
457457
ifndef IS_CHIP
458458
($(TIME_CMD) $(OPENROAD_CMD) $(SCRIPTS_DIR)/io_placement_random.tcl -metrics $(LOG_DIR)/2_2_floorplan_io.json) 2>&1 | tee $(LOG_DIR)/2_2_floorplan_io.log
459459
else
460-
ln -sf $(shell realpath --relative-to=$(dir $@) $<) $@
460+
cp $< $@
461461
endif
462462

463463
# STEP 3: Timing Driven Mixed Sized Placement
@@ -467,7 +467,7 @@ ifeq ($(MACRO_PLACEMENT),)
467467
($(TIME_CMD) $(OPENROAD_CMD) $(SCRIPTS_DIR)/tdms_place.tcl -metrics $(LOG_DIR)/2_3_tdms.json) 2>&1 | tee $(LOG_DIR)/2_3_tdms_place.log
468468
else
469469
$(info [INFO][FLOW] Using manual macro placement file $(MACRO_PLACEMENT))
470-
ln -sf $(shell realpath --relative-to=$(dir $@) $<) $@
470+
cp $< $@
471471
endif
472472

473473
# STEP 4: Macro Placement
@@ -487,7 +487,7 @@ $(RESULTS_DIR)/2_6_floorplan_pdn.odb: $(RESULTS_DIR)/2_5_floorplan_tapcell.odb $
487487
($(TIME_CMD) $(OPENROAD_CMD) $(SCRIPTS_DIR)/pdn.tcl -metrics $(LOG_DIR)/2_6_pdn.json) 2>&1 | tee $(LOG_DIR)/2_6_pdn.log
488488

489489
$(RESULTS_DIR)/2_floorplan.odb: $(RESULTS_DIR)/2_6_floorplan_pdn.odb
490-
ln -sf $(shell realpath --relative-to=$(dir $@) $<) $@
490+
cp $< $@
491491

492492
$(RESULTS_DIR)/2_floorplan.sdc: $(RESULTS_DIR)/2_1_floorplan.odb
493493

@@ -520,7 +520,7 @@ $(RESULTS_DIR)/3_2_place_iop.odb: $(RESULTS_DIR)/3_1_place_gp_skip_io.odb $(IO_C
520520
ifndef IS_CHIP
521521
($(TIME_CMD) $(OPENROAD_CMD) $(SCRIPTS_DIR)/io_placement.tcl -metrics $(LOG_DIR)/3_2_place_iop.json) 2>&1 | tee $(LOG_DIR)/3_2_place_iop.log
522522
else
523-
ln -sf $(shell realpath --relative-to=$(dir $@) $<) $@
523+
cp $< $@
524524
endif
525525

526526
# STEP 3: Global placement with placed IOs, timing-driven, and routability-driven.
@@ -543,7 +543,7 @@ $(RESULTS_DIR)/3_5_place_dp.odb: $(RESULTS_DIR)/3_4_place_resized.odb
543543
($(TIME_CMD) $(OPENROAD_CMD) $(SCRIPTS_DIR)/detail_place.tcl -metrics $(LOG_DIR)/3_5_opendp.json) 2>&1 | tee $(LOG_DIR)/3_5_opendp.log
544544

545545
$(RESULTS_DIR)/3_place.odb: $(RESULTS_DIR)/3_5_place_dp.odb
546-
ln -sf $(shell realpath --relative-to=$(dir $@) $<) $@
546+
cp $< $@
547547

548548
$(RESULTS_DIR)/3_place.sdc: $(RESULTS_DIR)/2_floorplan.sdc
549549
cp $< $@
@@ -584,7 +584,7 @@ $(RESULTS_DIR)/4_2_cts_fillcell.odb: $(RESULTS_DIR)/4_1_cts.odb
584584
$(RESULTS_DIR)/4_cts.sdc: $(RESULTS_DIR)/4_cts.odb
585585

586586
$(RESULTS_DIR)/4_cts.odb: $(RESULTS_DIR)/4_2_cts_fillcell.odb
587-
ln -sf $(shell realpath --relative-to=$(dir $@) $<) $@
587+
cp $< $@
588588

589589
.PHONY: clean_cts
590590
clean_cts:
@@ -622,7 +622,7 @@ endif
622622
($(TIME_CMD) $(OPENROAD_CMD) $(SCRIPTS_DIR)/detail_route.tcl -metrics $(LOG_DIR)/5_2_TritonRoute.json) 2>&1 | tee $(LOG_DIR)/5_2_TritonRoute.log
623623

624624
$(RESULTS_DIR)/5_route.odb: $(RESULTS_DIR)/5_2_route.odb
625-
ln -sf $(shell realpath --relative-to=$(dir $@) $<) $@
625+
cp $< $@
626626

627627
$(RESULTS_DIR)/5_route.sdc: $(RESULTS_DIR)/4_cts.sdc
628628
cp $< $@
@@ -683,7 +683,7 @@ $(RESULTS_DIR)/6_1_fill.odb: $(RESULTS_DIR)/5_route.odb $(FILL_CONFIG)
683683
($(TIME_CMD) $(OPENROAD_CMD) $(SCRIPTS_DIR)/density_fill.tcl -metrics $(LOG_DIR)/6_density_fill.json) 2>&1 | tee $(LOG_DIR)/6_density_fill.log
684684
else
685685
$(RESULTS_DIR)/6_1_fill.odb: $(RESULTS_DIR)/5_route.odb
686-
ln -sf $(shell realpath --relative-to=$(dir $@) $<) $@
686+
cp $< $@
687687
endif
688688

689689
$(RESULTS_DIR)/6_1_fill.sdc: $(RESULTS_DIR)/5_route.sdc
@@ -707,17 +707,17 @@ skip_resize: $(RESULTS_DIR)/3_3_place_gp.odb
707707
.PHONY: skip_cts
708708
skip_cts: $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/3_place.sdc
709709
# mock all intermediate results
710-
cd $(RESULTS_DIR) && ln -sf 3_place.odb 4_1_cts.odb
711-
cd $(RESULTS_DIR) && ln -sf 3_place.odb 4_2_cts_fillcell.odb
712-
cd $(RESULTS_DIR) && ln -sf 3_place.sdc 4_cts.sdc
713-
cd $(RESULTS_DIR) && ln -sf 3_place.odb 4_cts.odb
710+
cp $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/4_1_cts.odb
711+
cp $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/4_2_cts_fillcell.odb
712+
cp $(RESULTS_DIR)/3_place.sdc $(RESULTS_DIR)/4_cts.sdc
713+
cp $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/4_cts.odb
714714

715715
# Skipping route can be useful to create a mock abstract
716716
.PHONY: skip_route
717717
skip_route: $(RESULTS_DIR)/4_cts.odb $(RESULTS_DIR)/4_cts.sdc
718-
cd $(RESULTS_DIR) && ln -sf 3_place.odb 5_1_grt.odb
719-
cd $(RESULTS_DIR) && ln -sf 3_place.odb 5_2_route.odb
720-
cd $(RESULTS_DIR) && ln -sf 3_place.odb 6_1_fill.odb
718+
cp $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/5_1_grt.odb
719+
cp $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/5_2_route.odb
720+
cp $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/6_1_fill.odb
721721
touch $(RESULTS_DIR)/6_final.spef
722722

723723
# To create a mock abstract quickly, good enough to iterate quickly on
@@ -760,7 +760,7 @@ $(GDS_MERGED_FILE): $(RESULTS_DIR)/6_final.def $(OBJECTS_DIR)/klayout.lyt $(GDSO
760760
$(RESULTS_DIR)/6_final.v: $(LOG_DIR)/6_report.log
761761

762762
$(GDS_FINAL_FILE): $(GDS_MERGED_FILE)
763-
ln -sf $(shell realpath --relative-to=$(dir $@) $<) $@
763+
cp $< $@
764764

765765
.PHONY: drc
766766
drc: $(REPORTS_DIR)/6_drc.lyrdb

0 commit comments

Comments
 (0)