Added README and added AS environment variable

Signed-off-by: Charadon <dev@iotib.net>
This commit is contained in:
Charadon 2024-04-04 14:31:54 -04:00
parent 78b18b2f5c
commit 8e7663f07c
2 changed files with 80 additions and 0 deletions

74
README.txt Normal file
View File

@ -0,0 +1,74 @@
██╗ ██╗██╗███╗ ██╗██████╗ ██╗ ██╗██╗██╗ ██████╗
██║ ██║██║████╗ ██║██╔══██╗██║ ██║██║██║ ██╔══██╗
██║ █╗ ██║██║██╔██╗ ██║██████╔╝██║ ██║██║██║ ██║ ██║
██║███╗██║██║██║╚██╗██║██╔══██╗██║ ██║██║██║ ██║ ██║
╚███╔███╔╝██║██║ ╚████║██████╔╝╚██████╔╝██║███████╗██████╔╝
╚══╝╚══╝ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚═════╝ ╚═╝╚══════╝╚═════╝
================================================================================
About:
This is a MinGW distribution that:
- Updates quarterly/semi-annually for a stable toolchain.
- All-in-one package. No package manager, just extract and use.
- Everything is in simple to understand bash.
- Debuginfo is included *inside* the binaries. For easy debugging for both
developer and user.
- Fully native, no cygwin.dll linked with *any* binary. (Except git, but eh.)
What this distribution is *not*:
- "Fully Secure", this is meant for offline desktop apps and games. If you need
security over stability, such as for a Password Generator. Use something that
provides the latest packages such as MSYS2.
- Minimalist, while it's not that big compressed, it'll definitely be bigger
than an MSYS2 install with *only* the packages you need.
--------------------------------------------------------------------------------
Why:
When porting my programs to Windows, I always found it frustrating that there
was no "stable" MinGW distribution. Plenty of rolling releases, but no stable.
My gripes with the other distros were:
MSYS2: Because it's a rolling release, I find myself running into unexpected API
changes. This is frustrating as it forces me to forcefully use a newer
library while on Linux. Not fun.
Cygwin: You ever tried using MinGW with Cygwin? There's no documentaton on *how*
to use it, and i've never successfully gotten anything to build. If I
needed to port a non-graphical unix program, it's good. But for
graphical applications or games, it's a no go.
I then looked at the more "vanilla" MinGW builds, many of them included their
own software on top of the distribution. Which is mostly fine, but I wanted to
choose my own software.
And thus, I began the journey of making my own MinGW Distro.
--------------------------------------------------------------------------------
FAQ:
Q: Why not cross-compile from Linux?
A: Virtual Machines are cheap, and cross-compilation is a pain in the ass.
----
Q: Why not use the Visual Studio tools instead of MinGW?
A: I'm more familiar with GCC than I am with Cl or Clang. I prefer the more
"unix" way of how the folder structure is laid out. Not to mention, many
libraries require gcc or bash to even build.
----
Q: Isn't this not the best for security?
A: If your application needs security over stability, I highly recommend
MSYS2. This is mainly for offline desktop apps and games, where security
doesn't really matter much.
----
Q: Why are binaries not stripped?
A: To retain the debuginfo so you can more easily get backtraces. Useful for
users too, so they can *give* you said backtraces.
----
Q: Can I add a package to this distribution?
A: Sure! Look at PORTING.txt for more details on how to get your port
included.
----
Q: Can I use this in proprietary/commercial software?
A: Each library has it's own License. But all the scripts here are licensed
under Apache-2.0, so, for those, you can.
----
If you have any more questions, open an issue or e-mail me at dev@iotib.net

View File

@ -14,15 +14,19 @@ set "SCRIPT_DIR=%~dp0"
set "PATH=%SCRIPT_DIR%\\x86_64-w64-mingw32\\bin;%SCRIPT_DIR%\\bin;%SCRIPT_DIR%\\opt\\python3;%SCRIPT_DIR%\\opt\\python3\\Scripts;%SCRIPT_DIR%\\opt\\perl5\\bin;%SCRIPT_DIR%\\opt\\git\\cmd;%PATH%"
set "WINBUILD_PREFIX=%SCRIPT_DIR%"
set "PKG_CONFIG_PATH=%SCRIPT_DIR%\\lib\\pkgconfig:%SCRIPT_DIR%\\share\\pkgconfig"
:: Make cmake default to MinGW makefiles instead of nmake.
set "CMAKE_GENERATOR=MinGW Makefiles"
:: Make cmake install stuff to the winbuild prefix by default.
set "CMAKE_INSTALL_PREFIX=%WINBUILD_PREFIX%"
:: Set some LDFLAG defaults, such as making libstdc++ and libgcc statically link.
:: Also, try to make ld use shared libs over static if possible.
set "LDFLAGS=-static-libstdc++ -static-libgcc"
:: wget from busybox isn't what cpanm expects, so we need to disable it.
set "PERL_CPANM_OPT=--no-wget"
:: Configure scripts don't know how to find programs, so we'll declare commonly needed utilities here.
:: As a sidenote: Autotools suck.
set AR=ar.exe
@ -37,7 +41,9 @@ set STRIP=strip.exe
set OBJDUMP=objdump.exe
set DLLTOOL=dlltool.exe
set LINK=link.exe
set AS=as.exe
set "PKG_CONFIG=pkg-config.exe"
:: Unset the script dir variable.
set "SCRIPT_DIR="
touch "%WINBUILD_PREFIX%/INSTALLED.txt"