Ahmed Ghazy | e4c7ec5 | 2020-11-20 13:10:15 +0200 | [diff] [blame] | 1 | FILE_SIZE_LIMIT_MB = 10 |
Ahmed Ghazy | 5898e4a | 2020-11-13 22:28:55 +0200 | [diff] [blame] | 2 | LARGE_FILES := $(shell find . -type f -size +$(FILE_SIZE_LIMIT_MB)M -not -path "./.git/*") |
| 3 | |
| 4 | LARGE_FILES_GZ := $(addsuffix .gz, $(LARGE_FILES)) |
| 5 | |
| 6 | ARCHIVES := $(shell find . -type f -name "*.gz") |
| 7 | ARCHIVE_SOURCES := $(basename $(ARCHIVES)) |
| 8 | |
Ahmed Ghazy | efdc529 | 2020-11-19 16:05:48 +0200 | [diff] [blame] | 9 | ifndef PDK_ROOT |
| 10 | $(error PDK_ROOT is undefined, please export it before running make) |
| 11 | endif |
| 12 | |
| 13 | .DEFAULT_GOAL := ship |
| 14 | |
| 15 | # We need portable GDS_FILE pointers... |
| 16 | .PHONY: ship |
| 17 | ship: uncompress |
| 18 | @echo "###############################################" |
| 19 | @echo "Generating Caravel GDS (sources are in the 'gds' directory)" |
| 20 | @sleep 1 |
Ahmed Ghazy | 0252f54 | 2020-11-25 14:45:38 +0200 | [diff] [blame^] | 21 | @cd gds && MAGTYPE=mag magic -rcfile ${PDK_ROOT}/sky130A/libs.tech/magic/current/sky130A.magicrc -noc -dnull gen_caravel.tcl < /dev/null |
Ahmed Ghazy | efdc529 | 2020-11-19 16:05:48 +0200 | [diff] [blame] | 22 | |
| 23 | |
Ahmed Ghazy | e4c7ec5 | 2020-11-20 13:10:15 +0200 | [diff] [blame] | 24 | |
Ahmed Ghazy | 5898e4a | 2020-11-13 22:28:55 +0200 | [diff] [blame] | 25 | .PHONY: clean |
| 26 | clean: |
| 27 | echo "clean" |
| 28 | |
| 29 | |
| 30 | |
| 31 | .PHONY: verify |
| 32 | verify: |
| 33 | echo "verify" |
| 34 | |
| 35 | |
| 36 | |
| 37 | $(LARGE_FILES_GZ): %.gz: % |
Ahmed Ghazy | 0252f54 | 2020-11-25 14:45:38 +0200 | [diff] [blame^] | 38 | @if ! [ $(suffix $<) == ".gz" ]; then\ |
Ahmed Ghazy | e4c7ec5 | 2020-11-20 13:10:15 +0200 | [diff] [blame] | 39 | gzip -n --best $< > /dev/null &&\ |
Ahmed Ghazy | 5898e4a | 2020-11-13 22:28:55 +0200 | [diff] [blame] | 40 | echo "$< -> $@";\ |
| 41 | fi |
| 42 | |
Ahmed Ghazy | e4c7ec5 | 2020-11-20 13:10:15 +0200 | [diff] [blame] | 43 | # This target compresses all files larger than $(FILE_SIZE_LIMIT_MB) MB |
Ahmed Ghazy | 5898e4a | 2020-11-13 22:28:55 +0200 | [diff] [blame] | 44 | .PHONY: compress |
| 45 | compress: $(LARGE_FILES_GZ) |
| 46 | @echo "Files larger than $(FILE_SIZE_LIMIT_MB) MBytes are compressed!" |
| 47 | |
| 48 | |
| 49 | |
| 50 | $(ARCHIVE_SOURCES): %: %.gz |
Ahmed Ghazy | e4c7ec5 | 2020-11-20 13:10:15 +0200 | [diff] [blame] | 51 | @gzip -d $< &&\ |
| 52 | echo "$< -> $@";\ |
Ahmed Ghazy | 5898e4a | 2020-11-13 22:28:55 +0200 | [diff] [blame] | 53 | |
| 54 | .PHONY: uncompress |
| 55 | uncompress: $(ARCHIVE_SOURCES) |
| 56 | @echo "All files are uncompressed!" |