comparison 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
comparison
equal deleted inserted replaced
1854:dcd6181223a9 1855:72a75442c51d
5 RM = del /f 5 RM = del /f
6 6
7 DEFS = 7 DEFS =
8 LIBS = 8 LIBS =
9 9
10 ifndef TARGET_CPU
11 TARGET_CPU=x86
12 endif
13
14 ifeq ($(TARGET_CPU), x86)
15 PLATFORM_DEF=-DWIN32
16 PLATFORM_CFLAGS=-m32
17 PLATFORM_TARGET=pe-i386
18 else
19 PLATFORM_DEF=-DWIN64
20 PLATFORM_CFLAGS=-m64
21 PLATFORM_TARGET=pe-x86-64
22 endif
23
10 # Had to disable -Wunused-value due to every Win32 macro generating this warning... 24 # Had to disable -Wunused-value due to every Win32 macro generating this warning...
11 # GCC has marked this as WONTFIX http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24900 25 # GCC has marked this as WONTFIX http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24900
12 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 $(@) 26 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 $(@)
13 LDFLAGS = -shared -mwindows -mthreads -lcomctl32 -lole32 -loleaut32 -luserenv -lmsimg32 -lgdiplus 27 LDFLAGS = -shared -mwindows -mthreads -lcomctl32 -lole32 -loleaut32 -luserenv -lmsimg32 -lgdiplus
14 28
15 COMPATOBJECTS = dwcompat.o dirent.o 29 COMPATOBJECTS = dwcompat.o dirent.o
16 OBJECTS = dw.o XBrowseForFolder.o 30 OBJECTS = dw.o XBrowseForFolder.o
17 31
18 VPATH=../ ../win 32 VPATH=../ ../win
19 33
20 all: dw.dll dwcompat.dll dwtest.exe 34 all: dw.dll dwcompat.dll dwtest.exe
21 35
22 dw.dll: $(OBJECTS) win/dw-mingw.def 36 dw.res: win/dw.rc
23 $(CC) $(CFLAGS) $(DEFS) -o dw.dll $(OBJECTS) $(LDFLAGS) \ 37 windres $(PLATFORM_DEF) --target=$(PLATFORM_TARGET) --input win/dw.rc --output dw.res --output-format=coff
38
39 dw.dll: $(OBJECTS) win/dw-mingw.def dw.res
40 $(CC) $(CFLAGS) $(DEFS) -o dw.dll dw.res $(OBJECTS) $(LDFLAGS) \
24 -Wl,--out-implib,dw.a -Wl,-Map,dw.dll.map -Wl,--cref -Wl,--enable-stdcall-fixup win/dw-mingw.def 41 -Wl,--out-implib,dw.a -Wl,-Map,dw.dll.map -Wl,--cref -Wl,--enable-stdcall-fixup win/dw-mingw.def
25 42
26 dwcompat.dll: $(COMPATOBJECTS) win/dwcompat-mingw.def 43 dwcompat.dll: $(COMPATOBJECTS) win/dwcompat-mingw.def
27 $(CC) $(CFLAGS) $(DEFS) -o dwcompat.dll $(COMPATOBJECTS) $(LDFLAGS) -lwsock32 \ 44 $(CC) $(CFLAGS) $(DEFS) -o dwcompat.dll $(COMPATOBJECTS) $(LDFLAGS) -lwsock32 \
28 -Wl,--out-implib,dwcompat.a -Wl,-Map,dwcompat.dll.map -Wl,--cref -Wl,--enable-stdcall-fixup win/dwcompat-mingw.def 45 -Wl,--out-implib,dwcompat.a -Wl,-Map,dwcompat.dll.map -Wl,--cref -Wl,--enable-stdcall-fixup win/dwcompat-mingw.def
29 46
30 dwtest.exe: dwtest.o dw.a dwcompat.a 47 dwtest.res: win/dwtest.rc
31 $(CC) $(CFLAGS) -o dwtest.exe dwtest.o dw.a dwcompat.a 48 windres $(PLATFORM_DEF) --target=$(PLATFORM_TARGET) --input win/dwtest.rc --output dwtest.res --output-format=coff
49
50 dwtest.exe: dwtest.o dw.a dwcompat.a dwtest.res
51 $(CC) $(CFLAGS) -o dwtest.exe dwtest.res dwtest.o dw.a dwcompat.a
32 52
33 clean: 53 clean:
34 $(RM) *.obj *.o *.lib *.res *~ dwtest.exe dw.dll dwcompat.dll SVN.REV 54 $(RM) *.obj *.o *.lib *.res *~ dwtest.exe dw.dll dwcompat.dll SVN.REV
35 55
36 dw.o: win/dw.c 56 dw.o: win/dw.c