summaryrefslogtreecommitdiff
path: root/makemakefile.sh
diff options
context:
space:
mode:
authorJonas Kümmerlin <jonas@kuemmerlin.eu>2020-05-03 20:23:10 +0200
committerJonas Kümmerlin <jonas@kuemmerlin.eu>2020-05-03 20:23:10 +0200
commitfe10e5fa354a508a6b20b4a20b9bba46c6b8612e (patch)
treec9993398c269dd5017370f422e2025d0b9a3e396 /makemakefile.sh
parenta3870e00c23e64691c43e74c5f20969e9051a48c (diff)
make it compile as 64bit under mingw
Diffstat (limited to 'makemakefile.sh')
-rwxr-xr-xmakemakefile.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/makemakefile.sh b/makemakefile.sh
index 9e28c2b..5ce6557 100755
--- a/makemakefile.sh
+++ b/makemakefile.sh
@@ -5,6 +5,7 @@ cd "$(dirname "$(readlink -f "$0")")"
ALF_HEADERS=$(cd alf; ls *.h)
ALF_SOURCES=$(cd alf; ls *.cpp)
ALF_MINGW_OBJECTS=$(for i in $ALF_SOURCES; do printf ' out/%s.o' "$(basename "$i" .cpp)"; done)
+ALF_MINGW64_OBJECTS=$(for i in $ALF_SOURCES; do printf ' out/%s.amd64.o' "$(basename "$i" .cpp)"; done)
ALF_VC6_OBJECTS=$(for i in $ALF_SOURCES; do printf ' out/%s.obj' "$(basename "$i" .cpp)"; done)
# mingw makefile
@@ -49,6 +50,48 @@ ALF_VC6_OBJECTS=$(for i in $ALF_SOURCES; do printf ' out/%s.obj' "$(basename "$i
printf '\trm -rf out/*.o out/*.exe out/*.c out/*.h out/alf\n\n'
) > Makefile.mingw
+# mingw makefile for amd64
+(
+ printf '# automatically created by makemakefile.sh. DO NOT EDIT!\n'
+ printf '\n'
+ printf 'CC = x86_64-w64-mingw32-gcc\n'
+ printf 'CXX = x86_64-w64-mingw32-c++\n'
+ printf 'CFLAGS = -std=c99 -Wall -Wextra -Wconversion -mwindows -municode -DUNICODE -D_UNICODE -gstabs\n'
+ printf 'CXXFLAGS = -std=c++98 -Wall -Wextra -Wconversion -Wsign-conversion -mwindows -municode -DUNICODE -D_UNICODE -fno-exceptions -fno-rtti -gstabs\n'
+ printf 'LDFLAGS = -luser32 -lcomctl32 -lshell32 -lversion -static\n'
+ printf '\n'
+ printf 'all: out/widgetfactory64.exe out/alf/alf64.c out/widgetfactory64-c.exe\n'
+ printf '\n'
+ printf 'out/widgetfactory64.exe: out/widgetfactory.amd64.o %s\n' "$ALF_MINGW64_OBJECTS"
+ printf '\t$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)\n'
+ printf '\n'
+ for i in $ALF_SOURCES; do
+ printf 'out/%s: %s %s\n' "$(basename "$i" .cpp).amd64.o" "alf/$i" "$(for k in $ALF_HEADERS; do printf ' alf/%s' "$k"; done)"
+ printf '\t$(CXX) $(CXXFLAGS) -c -o $@ $<\n\n'
+ done
+
+ printf 'out/widgetfactory.amd64.o: widgetfactory.cpp alf/alf.h\n'
+ printf '\t$(CXX) $(CXXFLAGS) -c -o $@ $<\n\n'
+
+ printf 'out/alf/alf64.c: alf/alflist.h alf/alflayout.h alf/alfcompat.h alf/alfpriv.h %s\n' "$(for k in $ALF_SOURCES; do printf ' alf/%s' "$k"; done)"
+ printf '\t@mkdir -p out/alf\n'
+ printf '\t@printf "#include \\"alf.h\\"\\\\n" > $@\n'
+ printf '\t@cat $^ | grep -v "^#pragma once" | grep -v "^#include \\"alf" >> $@\n\n'
+
+ printf 'out/alf/alf.h: alf/alf.h\n'
+ printf '\t@mkdir -p out/alf\n'
+ printf '\t@cp $< $@\n\n'
+
+ printf 'out/widgetfactory64.c: widgetfactory.cpp\n'
+ printf '\t@cp $< $@\n\n'
+
+ printf 'out/widgetfactory64-c.exe: out/widgetfactory64.c out/alf/alf.h out/alf/alf64.c\n'
+ printf '\t$(CC) $(CFLAGS) -o $@ out/widgetfactory64.c out/alf/alf64.c $(LDFLAGS)\n\n'
+
+ printf 'clean:\n'
+ printf '\trm -rf out/*.o out/*.exe out/*.c out/*.h out/alf\n\n'
+) > Makefile.mingw-amd64
+
# vc6 makefile
(