# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1362052646 0 # Node ID 72a75442c51dc13d9ccae4500a96df0972e2dc92 # Parent dcd6181223a9a2e2686c2132913cc087ccbde5e9 Updated MinGW makefile to support picking 32-bit or 64-bit based on the value of the TARGET_CPU variable... defaulting to 32-bit. Also added manifest support so MinGW builds use visual styles. diff -r dcd6181223a9 -r 72a75442c51d makefile.mingw --- a/makefile.mingw Thu Feb 28 01:15:59 2013 +0000 +++ b/makefile.mingw Thu Feb 28 11:57:26 2013 +0000 @@ -7,9 +7,23 @@ DEFS = LIBS = +ifndef TARGET_CPU +TARGET_CPU=x86 +endif + +ifeq ($(TARGET_CPU), x86) +PLATFORM_DEF=-DWIN32 +PLATFORM_CFLAGS=-m32 +PLATFORM_TARGET=pe-i386 +else +PLATFORM_DEF=-DWIN64 +PLATFORM_CFLAGS=-m64 +PLATFORM_TARGET=pe-x86-64 +endif + # Had to disable -Wunused-value due to every Win32 macro generating this warning... # GCC has marked this as WONTFIX http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24900 -CFLAGS = -O -g -DMSVC -DWIN32 -D__WIN32__ -DGDIPLUS -DUNICODE -D_UNICODE -DISOLATION_AWARE_ENABLED=1 -I./win -I. -I./platform -Wall -Wno-unused-value -mthreads -o $(@) +CFLAGS = -O -g -DMSVC $(PLATFORM_DEF) $(PLATFORM_CFLAGS) -D__WIN32__ -DGDIPLUS -DUNICODE -D_UNICODE -DISOLATION_AWARE_ENABLED=1 -I./win -I. -I./platform -Wall -Wno-unused-value -mthreads -o $(@) LDFLAGS = -shared -mwindows -mthreads -lcomctl32 -lole32 -loleaut32 -luserenv -lmsimg32 -lgdiplus COMPATOBJECTS = dwcompat.o dirent.o @@ -19,16 +33,22 @@ all: dw.dll dwcompat.dll dwtest.exe -dw.dll: $(OBJECTS) win/dw-mingw.def - $(CC) $(CFLAGS) $(DEFS) -o dw.dll $(OBJECTS) $(LDFLAGS) \ +dw.res: win/dw.rc + windres $(PLATFORM_DEF) --target=$(PLATFORM_TARGET) --input win/dw.rc --output dw.res --output-format=coff + +dw.dll: $(OBJECTS) win/dw-mingw.def dw.res + $(CC) $(CFLAGS) $(DEFS) -o dw.dll dw.res $(OBJECTS) $(LDFLAGS) \ -Wl,--out-implib,dw.a -Wl,-Map,dw.dll.map -Wl,--cref -Wl,--enable-stdcall-fixup win/dw-mingw.def dwcompat.dll: $(COMPATOBJECTS) win/dwcompat-mingw.def $(CC) $(CFLAGS) $(DEFS) -o dwcompat.dll $(COMPATOBJECTS) $(LDFLAGS) -lwsock32 \ -Wl,--out-implib,dwcompat.a -Wl,-Map,dwcompat.dll.map -Wl,--cref -Wl,--enable-stdcall-fixup win/dwcompat-mingw.def -dwtest.exe: dwtest.o dw.a dwcompat.a - $(CC) $(CFLAGS) -o dwtest.exe dwtest.o dw.a dwcompat.a +dwtest.res: win/dwtest.rc + windres $(PLATFORM_DEF) --target=$(PLATFORM_TARGET) --input win/dwtest.rc --output dwtest.res --output-format=coff + +dwtest.exe: dwtest.o dw.a dwcompat.a dwtest.res + $(CC) $(CFLAGS) -o dwtest.exe dwtest.res dwtest.o dw.a dwcompat.a clean: $(RM) *.obj *.o *.lib *.res *~ dwtest.exe dw.dll dwcompat.dll SVN.REV diff -r dcd6181223a9 -r 72a75442c51d win/dw.rc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/win/dw.rc Thu Feb 28 11:57:26 2013 +0000 @@ -0,0 +1,6 @@ +#include "winuser.h" +#ifdef WIN64 +2 RT_MANIFEST dw.dll.x64.manifest +#else +2 RT_MANIFEST dw.dll.x86.manifest +#endif \ No newline at end of file diff -r dcd6181223a9 -r 72a75442c51d win/dwtest.rc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/win/dwtest.rc Thu Feb 28 11:57:26 2013 +0000 @@ -0,0 +1,6 @@ +#include "winuser.h" +#ifdef WIN64 +1 RT_MANIFEST dwtest.exe.x64.manifest +#else +1 RT_MANIFEST dwtest.exe.x86.manifest +#endif \ No newline at end of file