Added README and added AS environment variable
Signed-off-by: Charadon <dev@iotib.net>
This commit is contained in:
parent
78b18b2f5c
commit
8e7663f07c
|
@ -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
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue