YosysHQ / oss-cad-suite-build

Multi-platform nightly builds of open source digital design and verification tools
ISC License
783 stars 71 forks source link

Add a strip.sh shell script #4

Closed clairexen closed 3 years ago

clairexen commented 3 years ago

Currently the extracted distribution is 2 GB large. More than half of that (639MB + 331MB + 178MB = 1.15 GB) is LiteX, ice40, and ecp5:

claire@lamarr:/opt/oss-cad-suite$ LC_ALL=C du -sh .
2.0G    .
claire@lamarr:/opt/oss-cad-suite$ C_ALL=C du -shc libexec/nextpnr-ice40 share/icebox
224M    libexec/nextpnr-ice40
108M    share/icebox
331M    total
claire@lamarr:/opt/oss-cad-suite$ C_ALL=C du -shc libexec/nextpnr-ecp5 share/trellis
113M    libexec/nextpnr-ecp5
65M share/trellis
178M    total
claire@lamarr:/opt/oss-cad-suite$ LC_ALL=C du -shc libexec/nextpnr-{ice40,ecp5} share/{icebox,trellis} lib/python3.8/site-packages/litex
224M    libexec/nextpnr-ice40
113M    libexec/nextpnr-ecp5
108M    share/icebox
65M share/trellis
639M    lib/python3.8/site-packages/litex
1.2G    total

Maybe it would make sense to add a strip.sh script that can be used to easily remove some of the larger components. For example:

/opt/oss-cad-suite$ ./strip.sh -y -d ice40 litex    # delete these components
/opt/oss-cad-suite$ ./strip.sh -y -k ecp5      # delete all other strip-able components
/opt/oss-cad-suite$ ./strip.sh -n -d ice40    # show what would be removed and how much space that would free
/opt/oss-cad-suite$ ./strip.sh -d ice40    # display -n output, then ask user y/n on performing the action
/opt/oss-cad-suite$ ./strip.sh             # display components, their size, and which components have been stripped
mmicko commented 3 years ago

Fixed in 63f50bf96df32cc83ede4182bb0f767bbde4b17a tool is added enabling uninstall of packages