1*c2c66affSColin Finck#
2*c2c66affSColin Finck#  ReactOS explorer
3*c2c66affSColin Finck#
4*c2c66affSColin Finck#  Makefile.MinGW
5*c2c66affSColin Finck#
6*c2c66affSColin Finck
7*c2c66affSColin FinckCC = gcc
8*c2c66affSColin FinckCXX = g++
9*c2c66affSColin FinckLINK = g++
10*c2c66affSColin Finck
11*c2c66affSColin Finck# -D_NO_ALPHABLEND for builds without msimg32.dll dependency
12*c2c66affSColin FinckCFLAGS	= -DWIN32 -D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -fexceptions -Wall -I.
13*c2c66affSColin FinckRCFLAGS	= -DWIN32 -D__WINDRES__
14*c2c66affSColin FinckLFLAGS	= -Wl,--subsystem,windows
15*c2c66affSColin Finck
16*c2c66affSColin Finckifdef DEBUG
17*c2c66affSColin FinckCFLAGS	+= -D_DEBUG -g
18*c2c66affSColin FinckRCFLAGS	+= -D_DEBUG
19*c2c66affSColin FinckLFLAGS	+= -g
20*c2c66affSColin Finckelse
21*c2c66affSColin FinckCFLAGS	+= -DNDEBUG -Os
22*c2c66affSColin FinckRCFLAGS	+= -DNDEBUG
23*c2c66affSColin FinckLFLAGS	+= -s
24*c2c66affSColin Finckendif
25*c2c66affSColin Finck
26*c2c66affSColin Finckifndef UNICODE
27*c2c66affSColin FinckUNICODE = 1
28*c2c66affSColin Finckendif
29*c2c66affSColin Finck
30*c2c66affSColin Finckifeq ($(UNICODE),1)
31*c2c66affSColin FinckCFLAGS	+= -DUNICODE
32*c2c66affSColin Finck# LFLAGS+= -Wl,--entry,_wWinMain@16
33*c2c66affSColin FinckRCFLAGS += -DUNICODE
34*c2c66affSColin Finckendif
35*c2c66affSColin Finck
36*c2c66affSColin FinckCXXFLAGS = $(CFLAGS)
37*c2c66affSColin Finck
38*c2c66affSColin FinckEXEC_SUFFIX = .exe
39*c2c66affSColin FinckRES_SUFFIX = .coff
40*c2c66affSColin Finck
41*c2c66affSColin FinckVPATH = shell utility taskbar desktop dialogs services
42*c2c66affSColin Finck
43*c2c66affSColin FinckPROGRAM = explorer
44*c2c66affSColin Finck
45*c2c66affSColin FinckTARGET = $(PROGRAM)$(EXEC_SUFFIX)
46*c2c66affSColin Finck
47*c2c66affSColin FinckOBJECTS = \
48*c2c66affSColin Finck	startup.o \
49*c2c66affSColin Finck	shellclasses.o \
50*c2c66affSColin Finck	utility.o \
51*c2c66affSColin Finck	window.o \
52*c2c66affSColin Finck	dragdropimpl.o \
53*c2c66affSColin Finck	shellbrowserimpl.o \
54*c2c66affSColin Finck	shellservices.o \
55*c2c66affSColin Finck	explorer.o \
56*c2c66affSColin Finck	entries.o \
57*c2c66affSColin Finck	winfs.o \
58*c2c66affSColin Finck	unixfs.o \
59*c2c66affSColin Finck	shellfs.o \
60*c2c66affSColin Finck	ntobjfs.o \
61*c2c66affSColin Finck	regfs.o \
62*c2c66affSColin Finck	fatfs.o \
63*c2c66affSColin Finck	webchild.o \
64*c2c66affSColin Finck	mainframe.o \
65*c2c66affSColin Finck	filechild.o \
66*c2c66affSColin Finck	pane.o \
67*c2c66affSColin Finck	shellbrowser.o \
68*c2c66affSColin Finck	desktop.o \
69*c2c66affSColin Finck	desktopbar.o \
70*c2c66affSColin Finck	taskbar.o \
71*c2c66affSColin Finck	startmenu.o \
72*c2c66affSColin Finck	traynotify.o \
73*c2c66affSColin Finck	quicklaunch.o \
74*c2c66affSColin Finck	favorites.o \
75*c2c66affSColin Finck	searchprogram.o \
76*c2c66affSColin Finck	settings.o \
77*c2c66affSColin Finck	i386-stub-win32.o \
78*c2c66affSColin Finck	xmlstorage.o \
79*c2c66affSColin Finck	xs-native.o
80*c2c66affSColin Finck
81*c2c66affSColin FinckLIBS = gdi32 comctl32 msimg32 ole32 uuid
82*c2c66affSColin FinckDELAYIMPORTS = oleaut32 wsock32
83*c2c66affSColin Finck
84*c2c66affSColin Finckall: $(TARGET)
85*c2c66affSColin Finck
86*c2c66affSColin Finck$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) notifyhook.dll
87*c2c66affSColin Finck	$(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS)) $(addprefix -l,$(DELAYIMPORTS))
88*c2c66affSColin Finck
89*c2c66affSColin Finck$(PROGRAM)$(RES_SUFFIX): $(PROGRAM)_intres.rc res/*.bmp res/*.ico
90*c2c66affSColin Finck	windres $(RCFLAGS) -o $@ $(PROGRAM)_intres.rc
91*c2c66affSColin Finck
92*c2c66affSColin Fincknotifyhook.dll: notifyhook/notifyhook.c notifyhook/notifyhook.h
93*c2c66affSColin Finck	$(CC) -D_WIN32_IE=0x0600 -Wall -D_NOTIFYHOOK_IMPL -Os -s notifyhook/notifyhook.c -shared -o $@
94*c2c66affSColin Finck
95*c2c66affSColin Finckclean:
96*c2c66affSColin Finck	rm -f $(TARGET) $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) \
97*c2c66affSColin Finck	desktop/*.o dialogs/*.o shell/*.o taskbar/*.o utility/*.o
98