On Thu, Feb 6, 2025 at 7:55 AM Bruno Ribeiro via Freedos-devel <freedos-devel@lists.sourceforge.net> wrote: > [..] > Anyway, I think self-hosting is a technical property in alignment with > the very purpose of free software. It's a nice feature! In my > bare-metal retro endeavors, I'm fond of being able to modify and build > any software in place, without resorting to foreign systems. >
This is probably a longer answer than you needed, but here you go: In terms of building everything from source: yes you can do that. And we provide the source code with every package so you can do this. Our preferred C compiler for FreeDOS programs is OpenWatcom C, and our preferred assembler is NASM. Both are included in the FreeDOS distribution (on the BonusCD). However, DOS has a different development paradigm than Linux or GNU or BSD, which is probably the point of view you're coming from. For example, with Linux you can build packages through a common 'make' system, and the GNU tools use Autoconf to support the varying configuration of different Unix-like platforms (including Linux and BSD). The Linux kernel, Linux tools, GNU, and BSD all started as open source software, so building these from source has always been possible, and usually fairly straightforward. DOS systems from the 1980s and 1990s were rooted in proprietary software. PC DOS and MS-DOS were closed source -- if you wanted to write programs in C, you bought a C compiler like Borland's TurboC or Microsoft's QuickC .. or to write assembly programs, you bought an assembler like Microsoft's MASM. Many compilers had a 'make' but others used a "project" based approach. And some developers used 'make' to compile their programs, and others created BAT files (I use BUILD.BAT and CLEAN.BAT for several of my programs, especially if they're small). It was only much later that open source compilers & common tools became more common/normal. So as you found, there are a few older (as in "started in the 1990s") programs in FreeDOS that use a closed source compiler like TurboC. If the program was updated over time (and especially if other developers maintained it) then it's more likely the program was "ported" to use an open source compiler like OpenWatcom. But if the program didn't need to get updated, then not. And it's important to note the difference here: a distinguishing feature of DOS is that it's backwards compatible. Even MS-DOS 6.22 could run programs written for PC DOS 1. FreeDOS is an open source implementation of DOS, so FreeDOS can run these older DOS programs too. And DOS doesn't use the shared library model of Linux and other Unix systems; there's no dependency on an underlying library, once you have compiled a DOS program, it's standalone. So FreeDOS programs don't need to be rebuilt all the time just because a library changes, like on Linux -- if the program works, it will keep working. And that's why some older ("started in the 1990s") FreeDOS programs have notes to compile it with TurboC or something else, because it just keeps going and you don't need to rebuild it for each new FreeDOS distribution. Folks are always welcome to update an older FreeDOS program to "port" it to OpenWatcom. If you'd like to do this for any programs you find that require a closed source compiler, please do. If there isn't an active maintainer for that program (and likely not, or the program might have been updated already) then you can become the "maintainer" for the purpose of updating it to OpenWatcom. I'll add that several vendors have since released their compilers for free (gratis, if not open source) and we link to them from the "For developers" page on our website. <https://www.freedos.org/about/devel/> For example, Embarcadero bought out Borland many years ago, and released TurboC and TurboC++ for free via their website, and Micro-C is also available from Dave Dunfield's website. _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel