diff makefile.mingw @ 1855:72a75442c51d

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.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 28 Feb 2013 11:57:26 +0000
parents 123d1a900f54
children 285bf986e4fd
line wrap: on
line diff
--- 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