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

Use GNU autoconf or cmake for build configuration #1013

Closed uweseimet closed 1 year ago

uweseimet commented 1 year ago

On a Raspberry Pi files that are specific to the BananaPi platform are compiled, and vice versa. By using GNU autoconf it should be possible to create a platform-specific Makefile. Benefits:

There may be other benefits.

akuker commented 1 year ago

I'm in favor of coming up with a different build system/approach.

But, I don't agree with segregating Banana/Raspberry pi functionality into different executables. IMHO, the code isn't that big for the differences, especially when/if we add different variants of Banana Pi. One of the more requested thing from users is to have pre-built executables, since it does take a long time to compile. I'd like to ultimately combine the different board types (Standard/Fullspec/Aibom/Gamernium) into a single executable as well.

Now that we're "really" using C++ (one could argue the original code was more like C than C++), I think we should also look at CMake. I think it could also provide some of these benefits.

uweseimet commented 1 year ago

I agree that cmake is an alternative. The current build mechanism may not be sufficient anymore, or at least not in the future, that's the main point I want to make. Regarding pre-built binaries IMO the most user-friendly approach is a package solution as proposed in https://github.com/akuker/RASCSI/issues/740.

uweseimet commented 1 year ago

Closing my ticket, because over time the build process has become less dynamic and less platform dependent, e.g. by making use of portable C++ functionality. There is also no need anymore for a compiler check in the Makefile. Thus all in all using anything but a regular Makefile would make the build process more complicated without providing a benefit.