PiSCSI / piscsi

PiSCSI allows a Raspberry Pi to function as emulated SCSI devices (hard disk, CD-ROM, and others) for vintage SCSI-based computers and devices. This is a fork of the RaSCSI project by GIMONS.
https://piscsi.org
BSD 3-Clause "New" or "Revised" License
545 stars 82 forks source link

By default easyinstall should not build everything #1383

Closed uweseimet closed 1 year ago

uweseimet commented 1 year ago

In order to reduce compile times we should consider one of these options:

  1. Add "target" and "initiator" Makefile targets for only building the target or initiator binaries. By default only the target binaries (piscsi, scsictl, scsiloop, scsimon) should be built.
  2. By default easyinstall should only build "piscsi" and "scsictl" with "make piscsi scsictl". No Makefile changes required.

I prefer option 2. Future releases might ask the user for which devices to compile, but this requires changes also in the C++ code. With this code getting more modular all the time we might not be very far away anymore from only building a subset of devices. Hardly anybody needs the host bridge, for instance, I guess. Just for fun I omitted the host services when building, and this was trivial. One just has to remove the instantiation of the device in the DeviceFactory class. Removing devices won't save much code, though. Most code is needed for the disk devices, and those you would usually not want to remove.

One also might revive https://github.com/PiSCSI/piscsi/issues/185. This is about saving memory, not build time. But the changes in #1349 regarding the huge DaynaPort buffer most likely save more memory (up to 16 MB) than you can ever save elsewhere.