summaryrefslogtreecommitdiff
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
parenta3870e00c23e64691c43e74c5f20969e9051a48c (diff)
make it compile as 64bit under mingw
-rw-r--r--Makefile.mingw-amd6473
-rw-r--r--alf/alfbutton.cpp4
-rw-r--r--alf/alfcombobox.cpp2
-rw-r--r--alf/alfcompat.cpp4
-rw-r--r--alf/alfedit.cpp2
-rw-r--r--alf/alflabel.cpp2
-rw-r--r--alf/alfnotebook.cpp2
-rw-r--r--alf/alfpanel.cpp2
-rwxr-xr-xmakemakefile.sh43
9 files changed, 125 insertions, 9 deletions
diff --git a/Makefile.mingw-amd64 b/Makefile.mingw-amd64
new file mode 100644
index 0000000..81ab5b1
--- /dev/null
+++ b/Makefile.mingw-amd64
@@ -0,0 +1,73 @@
+# automatically created by makemakefile.sh. DO NOT EDIT!
+
+CC = x86_64-w64-mingw32-gcc
+CXX = x86_64-w64-mingw32-c++
+CFLAGS = -std=c99 -Wall -Wextra -Wconversion -mwindows -municode -DUNICODE -D_UNICODE -gstabs
+CXXFLAGS = -std=c++98 -Wall -Wextra -Wconversion -Wsign-conversion -mwindows -municode -DUNICODE -D_UNICODE -fno-exceptions -fno-rtti -gstabs
+LDFLAGS = -luser32 -lcomctl32 -lshell32 -lversion -static
+
+all: out/widgetfactory64.exe out/alf/alf64.c out/widgetfactory64-c.exe
+
+out/widgetfactory64.exe: out/widgetfactory.amd64.o out/alfbutton.amd64.o out/alfcheckbox.amd64.o out/alfcombobox.amd64.o out/alfcompat.amd64.o out/alf.amd64.o out/alfdpiaware.amd64.o out/alfedit.amd64.o out/alfgroupbox.amd64.o out/alflabel.amd64.o out/alflayout.amd64.o out/alfnotebook.amd64.o out/alfpanel.amd64.o out/alfwindow.amd64.o
+ $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+
+out/alfbutton.amd64.o: alf/alfbutton.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alfcheckbox.amd64.o: alf/alfcheckbox.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alfcombobox.amd64.o: alf/alfcombobox.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alfcompat.amd64.o: alf/alfcompat.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alf.amd64.o: alf/alf.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alfdpiaware.amd64.o: alf/alfdpiaware.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alfedit.amd64.o: alf/alfedit.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alfgroupbox.amd64.o: alf/alfgroupbox.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alflabel.amd64.o: alf/alflabel.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alflayout.amd64.o: alf/alflayout.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alfnotebook.amd64.o: alf/alfnotebook.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alfpanel.amd64.o: alf/alfpanel.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alfwindow.amd64.o: alf/alfwindow.cpp alf/alfcompat.h alf/alf.h alf/alflayout.h alf/alflist.h alf/alfpriv.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/widgetfactory.amd64.o: widgetfactory.cpp alf/alf.h
+ $(CXX) $(CXXFLAGS) -c -o $@ $<
+
+out/alf/alf64.c: alf/alflist.h alf/alflayout.h alf/alfcompat.h alf/alfpriv.h alf/alfbutton.cpp alf/alfcheckbox.cpp alf/alfcombobox.cpp alf/alfcompat.cpp alf/alf.cpp alf/alfdpiaware.cpp alf/alfedit.cpp alf/alfgroupbox.cpp alf/alflabel.cpp alf/alflayout.cpp alf/alfnotebook.cpp alf/alfpanel.cpp alf/alfwindow.cpp
+ @mkdir -p out/alf
+ @printf "#include \"alf.h\"\\n" > $@
+ @cat $^ | grep -v "^#pragma once" | grep -v "^#include \"alf" >> $@
+
+out/alf/alf.h: alf/alf.h
+ @mkdir -p out/alf
+ @cp $< $@
+
+out/widgetfactory64.c: widgetfactory.cpp
+ @cp $< $@
+
+out/widgetfactory64-c.exe: out/widgetfactory64.c out/alf/alf.h out/alf/alf64.c
+ $(CC) $(CFLAGS) -o $@ out/widgetfactory64.c out/alf/alf64.c $(LDFLAGS)
+
+clean:
+ rm -rf out/*.o out/*.exe out/*.c out/*.h out/alf
+
diff --git a/alf/alfbutton.cpp b/alf/alfbutton.cpp
index 292c913..2c67074 100644
--- a/alf/alfbutton.cpp
+++ b/alf/alfbutton.cpp
@@ -691,7 +691,7 @@ ALF_NtButton_Create(HWND win, WORD id, int x, int y, const TCHAR *text)
WS_CHILD | WS_TABSTOP | WS_VISIBLE,
0, 0, 100, 100,
win,
- (HMENU)(int)id,
+ (HMENU)(ULONG_PTR)id,
ALF_HINSTANCE,
NULL);
@@ -884,7 +884,7 @@ ALF_ClassicButton_Create(HWND win, WORD id, int x, int y, const TCHAR *text)
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_OWNERDRAW,
0, 0, 100, 100,
win,
- (HMENU)(int)id,
+ (HMENU)(ULONG_PTR)id,
ALF_HINSTANCE,
NULL);
diff --git a/alf/alfcombobox.cpp b/alf/alfcombobox.cpp
index f94c744..eebb269 100644
--- a/alf/alfcombobox.cpp
+++ b/alf/alfcombobox.cpp
@@ -324,7 +324,7 @@ ALF_InternalAddComboBox(HWND win, WORD id, int x, int y, DWORD style, const TCHA
WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN,
0, 0, 0, 0,
win,
- (HMENU)(int)id,
+ (HMENU)(ULONG_PTR)id,
(HINSTANCE)GetWindowLongPtr(win, GWLP_HINSTANCE),
&cp);
diff --git a/alf/alfcompat.cpp b/alf/alfcompat.cpp
index 5226bb4..164032f 100644
--- a/alf/alfcompat.cpp
+++ b/alf/alfcompat.cpp
@@ -90,8 +90,8 @@ ALF_Compat_fallbackSystemParametersInfoForDpi(UINT uiAction, UINT uiParam, PVOID
ncmw->iPaddedBorderWidth = 0;
}
- ncmw->cbSize = s;
- return SystemParametersInfo(SPI_GETNONCLIENTMETRICS, s, ncmw, fWinIni);
+ ncmw->cbSize = (UINT)s;
+ return SystemParametersInfo(SPI_GETNONCLIENTMETRICS, (UINT)s, ncmw, fWinIni);
#else
ALF_NONCLIENTMETRICSA_VISTA ncma;
ZeroMemory(&ncma, sizeof(ncma));
diff --git a/alf/alfedit.cpp b/alf/alfedit.cpp
index 1fadbc8..ae8e895 100644
--- a/alf/alfedit.cpp
+++ b/alf/alfedit.cpp
@@ -22,7 +22,7 @@ ALF_AddEdit(HWND win, WORD id, int x, int y, const TCHAR *text)
WS_CHILD | WS_VISIBLE | WS_TABSTOP | style,
0, 0, 100, 100,
win,
- (HMENU)(int)id,
+ (HMENU)(ULONG_PTR)id,
(HINSTANCE)GetWindowLongPtr(win, GWLP_HINSTANCE),
NULL);
diff --git a/alf/alflabel.cpp b/alf/alflabel.cpp
index 6f01cce..73296d9 100644
--- a/alf/alflabel.cpp
+++ b/alf/alflabel.cpp
@@ -303,7 +303,7 @@ ALF_AddLabel(HWND win, WORD id, int x, int y, const TCHAR *text)
WS_CHILD | WS_VISIBLE,
0, 0, 100, 100,
win,
- (HMENU)(int)id,
+ (HMENU)(ULONG_PTR)id,
ALF_HINSTANCE,
NULL);
diff --git a/alf/alfnotebook.cpp b/alf/alfnotebook.cpp
index 342bd92..73b0c85 100644
--- a/alf/alfnotebook.cpp
+++ b/alf/alfnotebook.cpp
@@ -511,7 +511,7 @@ ALF_AddNotebook(HWND parent, WORD id, int x, int y)
WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN,
0, 0, 100, 100,
parent,
- (HMENU)(int)id,
+ (HMENU)(ULONG_PTR)id,
ALF_HINSTANCE,
NULL);
diff --git a/alf/alfpanel.cpp b/alf/alfpanel.cpp
index 476bdb4..6e63611 100644
--- a/alf/alfpanel.cpp
+++ b/alf/alfpanel.cpp
@@ -281,7 +281,7 @@ ALF_CreatePanelWindow(HWND parent, WORD id)
WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN,
0, 0, 0, 0,
parent,
- (HMENU)(int)id,
+ (HMENU)(ULONG_PTR)id,
ALF_HINSTANCE,
NULL);
}
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
(