diff options
| author | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2020-05-03 20:23:10 +0200 |
|---|---|---|
| committer | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2020-05-03 20:23:10 +0200 |
| commit | fe10e5fa354a508a6b20b4a20b9bba46c6b8612e (patch) | |
| tree | c9993398c269dd5017370f422e2025d0b9a3e396 | |
| parent | a3870e00c23e64691c43e74c5f20969e9051a48c (diff) | |
make it compile as 64bit under mingw
| -rw-r--r-- | Makefile.mingw-amd64 | 73 | ||||
| -rw-r--r-- | alf/alfbutton.cpp | 4 | ||||
| -rw-r--r-- | alf/alfcombobox.cpp | 2 | ||||
| -rw-r--r-- | alf/alfcompat.cpp | 4 | ||||
| -rw-r--r-- | alf/alfedit.cpp | 2 | ||||
| -rw-r--r-- | alf/alflabel.cpp | 2 | ||||
| -rw-r--r-- | alf/alfnotebook.cpp | 2 | ||||
| -rw-r--r-- | alf/alfpanel.cpp | 2 | ||||
| -rwxr-xr-x | makemakefile.sh | 43 |
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 ( |
