blob: 7a1745d57f1f80aa26ffb4cbfe641e6c08f6e23b [file] [log] [blame]
Ahmed Ghazye4c7ec52020-11-20 13:10:15 +02001FILE_SIZE_LIMIT_MB = 10
Ahmed Ghazy5898e4a2020-11-13 22:28:55 +02002LARGE_FILES := $(shell find . -type f -size +$(FILE_SIZE_LIMIT_MB)M -not -path "./.git/*")
3
4LARGE_FILES_GZ := $(addsuffix .gz, $(LARGE_FILES))
5
6ARCHIVES := $(shell find . -type f -name "*.gz")
7ARCHIVE_SOURCES := $(basename $(ARCHIVES))
8
Ahmed Ghazyefdc5292020-11-19 16:05:48 +02009ifndef PDK_ROOT
10$(error PDK_ROOT is undefined, please export it before running make)
11endif
12
13.DEFAULT_GOAL := ship
14
15# We need portable GDS_FILE pointers...
16.PHONY: ship
17ship: uncompress
18 @echo "###############################################"
19 @echo "Generating Caravel GDS (sources are in the 'gds' directory)"
20 @sleep 1
Ahmed Ghazy0252f542020-11-25 14:45:38 +020021 @cd gds && MAGTYPE=mag magic -rcfile ${PDK_ROOT}/sky130A/libs.tech/magic/current/sky130A.magicrc -noc -dnull gen_caravel.tcl < /dev/null
Ahmed Ghazyefdc5292020-11-19 16:05:48 +020022
23
Ahmed Ghazye4c7ec52020-11-20 13:10:15 +020024
Ahmed Ghazy5898e4a2020-11-13 22:28:55 +020025.PHONY: clean
26clean:
27 echo "clean"
28
29
30
31.PHONY: verify
32verify:
33 echo "verify"
34
35
36
37$(LARGE_FILES_GZ): %.gz: %
Ahmed Ghazy0252f542020-11-25 14:45:38 +020038 @if ! [ $(suffix $<) == ".gz" ]; then\
Ahmed Ghazye4c7ec52020-11-20 13:10:15 +020039 gzip -n --best $< > /dev/null &&\
Ahmed Ghazy5898e4a2020-11-13 22:28:55 +020040 echo "$< -> $@";\
41 fi
42
Ahmed Ghazye4c7ec52020-11-20 13:10:15 +020043# This target compresses all files larger than $(FILE_SIZE_LIMIT_MB) MB
Ahmed Ghazy5898e4a2020-11-13 22:28:55 +020044.PHONY: compress
45compress: $(LARGE_FILES_GZ)
46 @echo "Files larger than $(FILE_SIZE_LIMIT_MB) MBytes are compressed!"
47
48
49
50$(ARCHIVE_SOURCES): %: %.gz
Ahmed Ghazye4c7ec52020-11-20 13:10:15 +020051 @gzip -d $< &&\
52 echo "$< -> $@";\
Ahmed Ghazy5898e4a2020-11-13 22:28:55 +020053
54.PHONY: uncompress
55uncompress: $(ARCHIVE_SOURCES)
56 @echo "All files are uncompressed!"