blob: 7cb1d80b5c875fbaec4b3477b369c8cf465980f1 [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
21 @cd mag && MAGTYPE=mag magic -rcfile ${PDK_ROOT}/sky130A/libs.tech/magic/current/sky130A.magicrc -noc -dnull mag2gds.tcl < /dev/null
22 mv mag/caravel_out.gds gds
23
24
Ahmed Ghazye4c7ec52020-11-20 13:10:15 +020025
Ahmed Ghazy5898e4a2020-11-13 22:28:55 +020026.PHONY: clean
27clean:
28 echo "clean"
29
30
31
32.PHONY: verify
33verify:
34 echo "verify"
35
36
37
38$(LARGE_FILES_GZ): %.gz: %
Ahmed Ghazye4c7ec52020-11-20 13:10:15 +020039 if ! [ $(suffix $<) == ".gz" ]; then\
40 gzip -n --best $< > /dev/null &&\
Ahmed Ghazy5898e4a2020-11-13 22:28:55 +020041 echo "$< -> $@";\
42 fi
43
Ahmed Ghazye4c7ec52020-11-20 13:10:15 +020044# This target compresses all files larger than $(FILE_SIZE_LIMIT_MB) MB
Ahmed Ghazy5898e4a2020-11-13 22:28:55 +020045.PHONY: compress
46compress: $(LARGE_FILES_GZ)
47 @echo "Files larger than $(FILE_SIZE_LIMIT_MB) MBytes are compressed!"
48
49
50
51$(ARCHIVE_SOURCES): %: %.gz
Ahmed Ghazye4c7ec52020-11-20 13:10:15 +020052 @gzip -d $< &&\
53 echo "$< -> $@";\
Ahmed Ghazy5898e4a2020-11-13 22:28:55 +020054
55.PHONY: uncompress
56uncompress: $(ARCHIVE_SOURCES)
57 @echo "All files are uncompressed!"