Source file: /~heha/hs/vbs.zip/src/Makefile

#„Visual Basic Script“-Ersatz in mingw und ohne Laufzeitbibliothek
#Leider ist die Echse einiges größer als die von MSVC2008
#Könnte an den „sauberen“ C++11-Verschiebekonstruktoren liegen.
#Bei MSVC ohne C++11 sind alles Raubkopierkonstruktoren.

#Ausgabeverzeichnis
O = ..\mingw64

#Installationsort von mingw
MINGW = c:/Programme/MSVC/mingw64

#Compiler-Optionen
COPT += -Os -s -fno-exceptions
COPT += -fno-ident
#COPT += --verbose
#COPT += -fno-stack-protector
#COPT += -fomit-frame-pointer
#COPT += -fno-unwind-tables 
COPT += -fno-asynchronous-unwind-tables
#COPT += -falign-functions=1
#COPT += -mpreferred-stack-boundary=4
#COPT += -falign-jumps=1
#COPT += -falign-loops=1 
#COPT += -ffreestanding		bringt nichts

#-mconsole

#Problem: Quelle in ANSI wegen MSVC6. Funktioniert korrekt in ANSI und UNICODE.
#MinGW erwartet anscheinend valides UTF-8 bei L"", gibt's da eine Option?
#Jetzt ist alles mit Umlauten in Ressourcen
COPT += -DUNICODE -D_UNICODE

#Linker-Optionen
LOPT += -lkernel32 -luser32 -lshlwapi -lole32 -loleaut32 -luuid 
LOPT += -nostdlib -nostartfiles -e WinMainCRTStartup
#LOPT += -Wl,--file-alignment,16,--section-alignment,16		geht nicht
LOPT += -Wl,--subsystem=windows:4.0,--nxcompat,--no-seh

all: $O/vbs.exe

$O/vbs.exe: *.cpp $O/main.res *.h Makefile
#	mkdir $O
	$(MINGW)/bin/gcc $(COPT) -o $@ $(filter %.cpp %.c %.res,$^) $(LOPT)

$O/main.res: main.rc main.ico manifest Makefile
	$(MINGW)/bin/windres -o $@ -O coff $<

# Ausführen (Strg+F5 für Programmer's Notepad)
flash: $O/vbs.exe
	$<

#Tipps von Tobias Lucas, inzwischen ohne Internet gelöst
#startupcode mingw github -matvext_nocrt0_customstartup code for gcc_mingw.html
#00program chris wellons

#Ungelöst: msvcrt.dll statt libstdc++-6.dll verwenden.
#Dieses Programm verwendet keinerlei Standardbibliotheksfunktionen,
#vom Sonderfall _alloca() abgesehen. Nicht mal new oder delete.
Detected encoding: UTF-80