1*c2c66affSColin FinckTOPSRCDIR = ../.. 2*c2c66affSColin FinckTOPOBJDIR = ../.. 3*c2c66affSColin FinckSRCDIR = . 4*c2c66affSColin Finck 5*c2c66affSColin FinckMODULE = explorer.exe 6*c2c66affSColin FinckAPPMODE = gui 7*c2c66affSColin FinckIMPORTS = shell32 comctl32 msimg32 ole32 user32 gdi32 kernel32 advapi32 oleaut32 8*c2c66affSColin FinckEXTRADEFS = -D__WINE__ -D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -D__MINGW32__ -DCINTERFACE 9*c2c66affSColin FinckEXTRA_OBJS = notifyhook.dll 10*c2c66affSColin FinckEXTRALIBS = $(LIBUUID) 11*c2c66affSColin Finck 12*c2c66affSColin FinckC_SRCS = \ 13*c2c66affSColin Finck services/startup.c \ 14*c2c66affSColin Finck utility/splitpath.c 15*c2c66affSColin Finck 16*c2c66affSColin FinckCPP_SRCS = \ 17*c2c66affSColin Finck explorer.cpp \ 18*c2c66affSColin Finck desktop/desktop.cpp \ 19*c2c66affSColin Finck utility/shellclasses.cpp \ 20*c2c66affSColin Finck utility/utility.cpp \ 21*c2c66affSColin Finck utility/window.cpp \ 22*c2c66affSColin Finck utility/dragdropimpl.cpp \ 23*c2c66affSColin Finck utility/shellbrowserimpl.cpp \ 24*c2c66affSColin Finck utility/xmlstorage.cpp \ 25*c2c66affSColin Finck utility/xmlstorage.cpp \ 26*c2c66affSColin Finck utility/xs-native.cpp 27*c2c66affSColin Finck shell/entries.cpp \ 28*c2c66affSColin Finck shell/winfs.cpp \ 29*c2c66affSColin Finck shell/unixfs.cpp \ 30*c2c66affSColin Finck shell/shellfs.cpp \ 31*c2c66affSColin Finck shell/mainframe.cpp \ 32*c2c66affSColin Finck shell/filechild.cpp \ 33*c2c66affSColin Finck shell/pane.cpp \ 34*c2c66affSColin Finck shell/shellbrowser.cpp \ 35*c2c66affSColin Finck shell/ntobjfs.cpp \ 36*c2c66affSColin Finck shell/regfs.cpp \ 37*c2c66affSColin Finck shell/fatfs.cpp \ 38*c2c66affSColin Finck shell/webchild.cpp \ 39*c2c66affSColin Finck services/shellservices.cpp \ 40*c2c66affSColin Finck taskbar/desktopbar.cpp \ 41*c2c66affSColin Finck taskbar/taskbar.cpp \ 42*c2c66affSColin Finck taskbar/startmenu.cpp \ 43*c2c66affSColin Finck taskbar/traynotify.cpp \ 44*c2c66affSColin Finck taskbar/quicklaunch.cpp \ 45*c2c66affSColin Finck taskbar/favorites.cpp \ 46*c2c66affSColin Finck dialogs/searchprogram.cpp \ 47*c2c66affSColin Finck dialogs/settings.cpp 48*c2c66affSColin Finck 49*c2c66affSColin FinckRC_SRCS = explorer_intres.rc 50*c2c66affSColin FinckEXTRARCFLAGS = -D__WRC__ -D_WIN32 51*c2c66affSColin Finck 52*c2c66affSColin Finck 53*c2c66affSColin Finck# Global rules for building a Winelib program -*-Makefile-*- 54*c2c66affSColin Finck# 55*c2c66affSColin Finck# Each individual makefile should define the following variables: 56*c2c66affSColin Finck# MODULE : name of the main module being built 57*c2c66affSColin Finck# APPMODE : program mode (cui,gui,cuiw,guiw) 58*c2c66affSColin Finck# EXTRALIBS : extra libraries to link in (optional) 59*c2c66affSColin Finck# EXTRADEFS : extra symbol definitions, like -DWINELIB (optional) 60*c2c66affSColin Finck# 61*c2c66affSColin Finck# plus all variables required by the global Make.rules.in 62*c2c66affSColin Finck# 63*c2c66affSColin Finck 64*c2c66affSColin FinckDEFS = -D_REENTRANT -fPIC $(EXTRADEFS) 65*c2c66affSColin FinckLDDLLFLAGS = -Wl,-Bsymbolic,-z,defs 66*c2c66affSColin FinckALL_OBJS = $(OBJS) $(MODULE).dbg.o 67*c2c66affSColin FinckALL_LIBS = $(LIBWINE) $(EXTRALIBS) $(LIBPORT) $(LDFLAGS) $(LIBS) 68*c2c66affSColin FinckBASEMODULE = $(MODULE:.exe=) 69*c2c66affSColin FinckTESTIMPORTS = $(DELAYIMPORTS) $(IMPORTS) 70*c2c66affSColin FinckRUNTESTFLAGS= -q -P wine -T $(TOPOBJDIR) $(PLTESTPROGRAM:%=-p %) 71*c2c66affSColin Finck 72*c2c66affSColin Finck 73*c2c66affSColin Finck# Global rules shared by all makefiles -*-Makefile-*- 74*c2c66affSColin Finck# 75*c2c66affSColin Finck# Each individual makefile must define the following variables: 76*c2c66affSColin Finck# TOPSRCDIR : top-level source directory 77*c2c66affSColin Finck# TOPOBJDIR : top-level object directory 78*c2c66affSColin Finck# SRCDIR : source directory for this module 79*c2c66affSColin Finck# MODULE : name of the module being built 80*c2c66affSColin Finck# 81*c2c66affSColin Finck# Each individual makefile may define the following additional variables: 82*c2c66affSColin Finck# C_SRCS : C sources for the module 83*c2c66affSColin Finck# CPP_SRCS : C++ sources for the module 84*c2c66affSColin Finck# C_SRCS16 : 16-bit C sources for the module 85*c2c66affSColin Finck# RC_SRCS : resource source files 86*c2c66affSColin Finck# EXTRA_SRCS : extra source files for make depend 87*c2c66affSColin Finck# EXTRA_OBJS : extra object files 88*c2c66affSColin Finck# IMPORTS : dlls to import 89*c2c66affSColin Finck# DELAYIMPORTS : dlls to import in delayed mode 90*c2c66affSColin Finck# SUBDIRS : subdirectories that contain a Makefile 91*c2c66affSColin Finck# EXTRASUBDIRS : subdirectories that do not contain a Makefile 92*c2c66affSColin Finck# INSTALLSUBDIRS : subdirectories to run make install/uninstall into 93*c2c66affSColin Finck 94*c2c66affSColin Finck# First some useful definitions 95*c2c66affSColin Finck 96*c2c66affSColin FinckSHELL = /bin/sh 97*c2c66affSColin FinckCC = gcc 98*c2c66affSColin FinckCXX = g++ 99*c2c66affSColin FinckCPP = gcc -E 100*c2c66affSColin Finck#CFLAGS = -g -O2 101*c2c66affSColin FinckCFLAGS = -g 102*c2c66affSColin FinckCPPFLAGS = 103*c2c66affSColin FinckLIBS = -lm -lstdc++ 104*c2c66affSColin FinckYACC = bison -y 105*c2c66affSColin FinckLEX = flex 106*c2c66affSColin FinckLEXLIB = -lfl 107*c2c66affSColin FinckEXEEXT = 108*c2c66affSColin FinckOBJEXT = o 109*c2c66affSColin FinckLIBEXT = so 110*c2c66affSColin FinckDLLEXT = .so 111*c2c66affSColin FinckIMPLIBEXT = def 112*c2c66affSColin FinckLDSHARED = $(CC) -shared $(SONAME:%=-Wl,-soname,%) 113*c2c66affSColin FinckDLLTOOL = false 114*c2c66affSColin FinckDLLWRAP = 115*c2c66affSColin FinckAR = ar rc 116*c2c66affSColin FinckRANLIB = ranlib 117*c2c66affSColin FinckSTRIP = strip 118*c2c66affSColin FinckWINDRES = mingw32-windres 119*c2c66affSColin FinckLN = ln 120*c2c66affSColin FinckLN_S = ln -s 121*c2c66affSColin FinckTOOLSDIR = $(TOPOBJDIR) 122*c2c66affSColin FinckAS = as 123*c2c66affSColin FinckLD = ld 124*c2c66affSColin FinckLDFLAGS = 125*c2c66affSColin FinckLDCOMBINE = $(LD) -r 126*c2c66affSColin FinckRM = rm -f 127*c2c66affSColin FinckMV = mv 128*c2c66affSColin FinckLINT = 129*c2c66affSColin FinckLINTFLAGS = 130*c2c66affSColin FinckINCLUDES = -I$(SRCDIR) -I. -I$(TOPSRCDIR)/include -I$(TOPOBJDIR)/include $(EXTRAINCL) 131*c2c66affSColin FinckEXTRACFLAGS = -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith 132*c2c66affSColin FinckALLCFLAGS = $(INCLUDES) $(DEFS) $(EXTRACFLAGS) $(CPPFLAGS) $(CFLAGS) 133*c2c66affSColin FinckALLLINTFLAGS = $(INCLUDES) $(DEFS) $(LINTFLAGS) 134*c2c66affSColin FinckMKINSTALLDIRS= $(TOPSRCDIR)/tools/mkinstalldirs -m 755 135*c2c66affSColin FinckWINAPI_CHECK = $(TOPSRCDIR)/tools/winapi_check/winapi_check 136*c2c66affSColin FinckWINEWRAPPER = $(TOPSRCDIR)/tools/winewrapper 137*c2c66affSColin FinckC2MAN = $(TOPSRCDIR)/tools/c2man.pl 138*c2c66affSColin FinckRUNTEST = $(TOPSRCDIR)/tools/runtest 139*c2c66affSColin FinckWINEBUILD = $(TOOLSDIR)/tools/winebuild/winebuild 140*c2c66affSColin FinckMAKEDEP = $(TOOLSDIR)/tools/makedep 141*c2c66affSColin FinckWRC = $(TOOLSDIR)/tools/wrc/wrc 142*c2c66affSColin FinckWMC = $(TOOLSDIR)/tools/wmc/wmc 143*c2c66affSColin FinckWIDL = $(TOOLSDIR)/tools/widl/widl 144*c2c66affSColin FinckRC = $(WRC) 145*c2c66affSColin FinckRC16 = $(WRC) 146*c2c66affSColin FinckRCFLAGS = --nostdinc $(INCLUDES) $(EXTRARCFLAGS) 147*c2c66affSColin FinckRC16FLAGS = -O res16 $(RCFLAGS) 148*c2c66affSColin FinckLDPATH = LD_LIBRARY_PATH="$(TOOLSDIR)/libs/unicode:$$LD_LIBRARY_PATH" 149*c2c66affSColin FinckDLLDIR = $(TOPOBJDIR)/dlls 150*c2c66affSColin FinckLIBDIR = $(TOPOBJDIR)/libs 151*c2c66affSColin FinckLIBPORT = -L$(TOPOBJDIR)/libs/port -lwine_port 152*c2c66affSColin FinckLIBUNICODE = -L$(TOPOBJDIR)/libs/unicode -lwine_unicode 153*c2c66affSColin FinckLIBUUID = -L$(TOPOBJDIR)/libs/uuid -lwine_uuid 154*c2c66affSColin FinckLIBWINE = -L$(TOPOBJDIR)/libs/wine -lwine 155*c2c66affSColin Finck 156*c2c66affSColin Finck 157*c2c66affSColin Finck 158*c2c66affSColin Finck# Installation infos 159*c2c66affSColin Finck 160*c2c66affSColin FinckINSTALL = /usr/bin/install -c $(INSTALL_FLAGS) 161*c2c66affSColin FinckINSTALL_PROGRAM = ${INSTALL} $(INSTALL_PROGRAM_FLAGS) 162*c2c66affSColin FinckINSTALL_SCRIPT = ${INSTALL} $(INSTALL_SCRIPT_FLAGS) 163*c2c66affSColin FinckINSTALL_DATA = ${INSTALL} -m 644 $(INSTALL_DATA_FLAGS) 164*c2c66affSColin Finckprefix = /usr/local 165*c2c66affSColin Finckexec_prefix = ${prefix} 166*c2c66affSColin Finckbindir = ${exec_prefix}/bin 167*c2c66affSColin Fincklibdir = ${exec_prefix}/lib 168*c2c66affSColin Finckdatadir = ${prefix}/share 169*c2c66affSColin Finckinfodir = ${prefix}/info 170*c2c66affSColin Finckmandir = ${prefix}/man 171*c2c66affSColin Fincksysconfdir = ${prefix}/etc 172*c2c66affSColin Finckincludedir = ${prefix}/include/wine 173*c2c66affSColin Finckdlldir = ${exec_prefix}/lib/wine 174*c2c66affSColin Finckprog_manext = 1 175*c2c66affSColin Finckapi_manext = 3w 176*c2c66affSColin Finckconf_manext = 5 177*c2c66affSColin FinckCLEAN_FILES = *.o *.a *.so *.ln *.$(LIBEXT) \\\#*\\\# *~ *% .\\\#* *.bak *.orig *.rej \ 178*c2c66affSColin Finck *.flc *.spec.c *.spec.def *.dbg.c y.tab.c y.tab.h lex.yy.c core */*.o 179*c2c66affSColin Finck 180*c2c66affSColin FinckOBJS = $(C_SRCS:.c=.o) $(CPP_SRCS:.cpp=.o) $(EXTRA_OBJS) 181*c2c66affSColin Finck 182*c2c66affSColin FinckRCOBJS = $(RC_SRCS:.rc=.res.o) 183*c2c66affSColin FinckLINTS = $(C_SRCS:.c=.ln) $(CPP_SRCS:.cpp=.ln) 184*c2c66affSColin Finck 185*c2c66affSColin Finck# Implicit rules 186*c2c66affSColin Finck 187*c2c66affSColin Finck.SUFFIXES: .mc .rc .mc.rc .res .res.o .coff .spec .spec.c .spec.def .ok 188*c2c66affSColin Finck 189*c2c66affSColin Finck.c.o: 190*c2c66affSColin Finck $(CC) -c $(ALLCFLAGS) -o $@ $< 191*c2c66affSColin Finck 192*c2c66affSColin Finck.cpp.o: 193*c2c66affSColin Finck $(CXX) -c $(ALLCFLAGS) -o $@ $< 194*c2c66affSColin Finck 195*c2c66affSColin Finck.s.o: 196*c2c66affSColin Finck $(AS) -o $@ $< 197*c2c66affSColin Finck 198*c2c66affSColin Finck.mc.mc.rc: 199*c2c66affSColin Finck $(LDPATH) $(WMC) -i -U -H /dev/null -o $@ $< 200*c2c66affSColin Finck 201*c2c66affSColin Finck.rc.res: 202*c2c66affSColin Finck $(LDPATH) $(RC) $(RCFLAGS) -fo$@ $< 203*c2c66affSColin Finck 204*c2c66affSColin Finck.res.res.o: 205*c2c66affSColin Finck $(WINDRES) -i $< -o $@ 206*c2c66affSColin Finck 207*c2c66affSColin Finck.rc.coff: 208*c2c66affSColin Finck $(WINDRES) -i $< -o $@ 209*c2c66affSColin Finck 210*c2c66affSColin Finck.spec.spec.c: 211*c2c66affSColin Finck $(WINEBUILD) $(DEFS) -o $@ --main-module $(MODULE) --spec $< 212*c2c66affSColin Finck 213*c2c66affSColin Finck.spec.spec.def: 214*c2c66affSColin Finck $(WINEBUILD) $(DEFS) -o $@ --def $< 215*c2c66affSColin Finck 216*c2c66affSColin Finck.c.ln: 217*c2c66affSColin Finck $(LINT) -c $(ALLLINTFLAGS) $< || ( $(RM) $@ && exit 1 ) 218*c2c66affSColin Finck 219*c2c66affSColin Finck.c.ok: 220*c2c66affSColin Finck $(RUNTEST) $(RUNTESTFLAGS) $< && touch $@ 221*c2c66affSColin Finck 222*c2c66affSColin Finck# 'all' target first in case the enclosing Makefile didn't define any target 223*c2c66affSColin Finck 224*c2c66affSColin Finckall: Makefile 225*c2c66affSColin Finck 226*c2c66affSColin Finckfilter: 227*c2c66affSColin Finck @$(TOPSRCDIR)/tools/winapi/make_filter --make $(MAKE) all 228*c2c66affSColin Finck 229*c2c66affSColin Finck.PHONY: all filter 230*c2c66affSColin Finck 231*c2c66affSColin Finck# Rule for main module debug channels 232*c2c66affSColin Finck 233*c2c66affSColin Finck$(MODULE).dbg.c: $(C_SRCS) $(CPP_SRCS) $(C_SRCS16) $(WINEBUILD) 234*c2c66affSColin Finck $(WINEBUILD) $(DEFS) -o $@ --debug -C$(SRCDIR) $(C_SRCS) $(CPP_SRCS) $(C_SRCS16) 235*c2c66affSColin Finck 236*c2c66affSColin Finck# Rule to rebuild the tools 237*c2c66affSColin Finck 238*c2c66affSColin Finck$(MAKEDEP): 239*c2c66affSColin Finck cd $(TOOLSDIR)/tools && $(MAKE) `basename $@` 240*c2c66affSColin Finck 241*c2c66affSColin Finck# Rules for makefile 242*c2c66affSColin Finck 243*c2c66affSColin FinckMakefile: Makefile.in $(TOPSRCDIR)/configure 244*c2c66affSColin Finck @echo Makefile is older than $?, please rerun $(TOPSRCDIR)/configure 245*c2c66affSColin Finck @exit 1 246*c2c66affSColin Finck 247*c2c66affSColin Finck# Rule for linting 248*c2c66affSColin Finck 249*c2c66affSColin Finck$(MODULE).ln : $(LINTS) 250*c2c66affSColin Finck if test "$(LINTS)" ; \ 251*c2c66affSColin Finck then \ 252*c2c66affSColin Finck $(LINT) $(ALLLINTFLAGS) -o$(MODULE) $(LINTS) ; \ 253*c2c66affSColin Finck $(MV) llib-l$(MODULE).ln $(MODULE).ln ; \ 254*c2c66affSColin Finck else \ 255*c2c66affSColin Finck $(LINT) $(ALLLINTFLAGS) -C$(MODULE) /dev/null ; \ 256*c2c66affSColin Finck fi 257*c2c66affSColin Finck 258*c2c66affSColin Fincklint:: $(MODULE).ln 259*c2c66affSColin Finck 260*c2c66affSColin Finck# Rules for Windows API checking 261*c2c66affSColin Finck 262*c2c66affSColin Finckwinapi_check:: dummy 263*c2c66affSColin Finck $(WINAPI_CHECK) $(WINAPI_CHECK_FLAGS) $(WINAPI_CHECK_EXTRA_FLAGS) . 264*c2c66affSColin Finck 265*c2c66affSColin Finck.PHONY: winapi_check 266*c2c66affSColin Finck 267*c2c66affSColin Finck# Rules for dependencies 268*c2c66affSColin Finck 269*c2c66affSColin Finck$(SUBDIRS:%=%/__depend__): $(MAKEDEP) dummy 270*c2c66affSColin Finck cd `dirname $@` && $(MAKE) depend 271*c2c66affSColin Finck 272*c2c66affSColin Finckdepend: $(MAKEDEP) $(SUBDIRS:%=%/__depend__) 273*c2c66affSColin Finck $(MAKEDEP) $(INCLUDES) -C$(SRCDIR) $(C_SRCS) $(CPP_SRCS) $(C_SRCS16) $(RC_SRCS) $(RC_SRCS16) $(MC_SRCS) $(IDL_SRCS) $(EXTRA_SRCS) 274*c2c66affSColin Finck 275*c2c66affSColin Finck.PHONY: depend $(SUBDIRS:%=%/__depend__) 276*c2c66affSColin Finck 277*c2c66affSColin Finck# Rules for cleaning 278*c2c66affSColin Finck 279*c2c66affSColin Finck$(SUBDIRS:%=%/__clean__): dummy 280*c2c66affSColin Finck cd `dirname $@` && $(MAKE) clean 281*c2c66affSColin Finck 282*c2c66affSColin Finck$(SUBDIRS:%=%/__testclean__): dummy 283*c2c66affSColin Finck cd `dirname $@` && $(MAKE) testclean 284*c2c66affSColin Finck 285*c2c66affSColin Finck$(EXTRASUBDIRS:%=%/__clean__): dummy 286*c2c66affSColin Finck -cd `dirname $@` && $(RM) $(CLEAN_FILES) 287*c2c66affSColin Finck 288*c2c66affSColin Fincktestclean:: $(SUBDIRS:%=%/__testclean__) 289*c2c66affSColin Finck 290*c2c66affSColin Finckclean:: $(SUBDIRS:%=%/__clean__) $(EXTRASUBDIRS:%=%/__clean__) 291*c2c66affSColin Finck $(RM) $(CLEAN_FILES) $(RC_SRCS:.rc=.res) $(RC_SRCS16:.rc=.res) $(MC_SRCS:.mc=.mc.rc) $(PROGRAMS) 292*c2c66affSColin Finck 293*c2c66affSColin Finck.PHONY: clean testclean $(SUBDIRS:%=%/__clean__) $(SUBDIRS:%=%/__testclean__) $(EXTRASUBDIRS:%=%/__clean__) 294*c2c66affSColin Finck 295*c2c66affSColin Finck# Rules for installing 296*c2c66affSColin Finck 297*c2c66affSColin Finck$(SUBDIRS:%=%/__install__): dummy 298*c2c66affSColin Finck cd `dirname $@` && $(MAKE) install 299*c2c66affSColin Finck 300*c2c66affSColin Finck$(SUBDIRS:%=%/__install-lib__): dummy 301*c2c66affSColin Finck cd `dirname $@` && $(MAKE) install-lib 302*c2c66affSColin Finck 303*c2c66affSColin Finck$(SUBDIRS:%=%/__install-dev__): dummy 304*c2c66affSColin Finck cd `dirname $@` && $(MAKE) install-dev 305*c2c66affSColin Finck 306*c2c66affSColin Finck$(SUBDIRS:%=%/__uninstall__): dummy 307*c2c66affSColin Finck cd `dirname $@` && $(MAKE) uninstall 308*c2c66affSColin Finck 309*c2c66affSColin Finckinstall:: $(INSTALLSUBDIRS:%=%/__install__) 310*c2c66affSColin Finck 311*c2c66affSColin Finckuninstall:: $(INSTALLSUBDIRS:%=%/__uninstall__) 312*c2c66affSColin Finck 313*c2c66affSColin Finck.PHONY: install install-lib install-dev uninstall \ 314*c2c66affSColin Finck $(SUBDIRS:%=%/__install__) $(SUBDIRS:%=%/__uninstall__) \ 315*c2c66affSColin Finck $(SUBDIRS:%=%/__install-lib__) $(SUBDIRS:%=%/__install-dev__) 316*c2c66affSColin Finck 317*c2c66affSColin Finck# Rules for checking that no imports are missing 318*c2c66affSColin Finck 319*c2c66affSColin Finck$(SUBDIRS:%=%/__checklink__): dummy 320*c2c66affSColin Finck @cd `dirname $@` && $(MAKE) checklink 321*c2c66affSColin Finck 322*c2c66affSColin Finck.PHONY: checklink $(SUBDIRS:%=%/__checklink__) 323*c2c66affSColin Finck 324*c2c66affSColin Finck# Rules for testing 325*c2c66affSColin Finck 326*c2c66affSColin Finck$(SUBDIRS:%=%/__test__): dummy 327*c2c66affSColin Finck @cd `dirname $@` && $(MAKE) test 328*c2c66affSColin Finck 329*c2c66affSColin Finck$(SUBDIRS:%=%/__crosstest__): dummy 330*c2c66affSColin Finck @cd `dirname $@` && $(MAKE) crosstest 331*c2c66affSColin Finck 332*c2c66affSColin Finck.PHONY: check test crosstest $(SUBDIRS:%=%/__test__) $(SUBDIRS:%=%/__crosstest__) 333*c2c66affSColin Finck 334*c2c66affSColin Finck# Misc. rules 335*c2c66affSColin Finck 336*c2c66affSColin Finck$(RC_SRCS:.rc=.res) $(RC_SRCS16:.rc=.res): $(WRC) 337*c2c66affSColin Finck 338*c2c66affSColin Finck$(MC_SRCS:.mc=.mc.rc): $(WMC) 339*c2c66affSColin Finck 340*c2c66affSColin Finck$(IDL_SRCS:.idl=.h): $(WIDL) 341*c2c66affSColin Finck 342*c2c66affSColin Finck$(SUBDIRS): dummy 343*c2c66affSColin Finck @cd $@ && $(MAKE) 344*c2c66affSColin Finck 345*c2c66affSColin Finckdummy: 346*c2c66affSColin Finck 347*c2c66affSColin Finck.PHONY: dummy $(SUBDIRS) 348*c2c66affSColin Finck 349*c2c66affSColin Finck# End of global rules 350*c2c66affSColin Finck 351*c2c66affSColin Finckall: $(MODULE)$(DLLEXT) $(BASEMODULE)$(EXEEXT) 352*c2c66affSColin Finck 353*c2c66affSColin Finck# Rule for main module spec file 354*c2c66affSColin Finck 355*c2c66affSColin Finck$(MODULE).spec.c: $(RC_SRCS:.rc=.res) $(ALL_OBJS) $(WINEBUILD) 356*c2c66affSColin Finck $(WINEBUILD) $(DEFS) -o $@ --exe $(MODULE) $(APPMODE:%=--exe-mode %) $(RC_SRCS:.rc=.res) $(ALL_OBJS) -L$(DLLDIR) $(DELAYIMPORTS:%=-d%) $(IMPORTS:%=-l%) 357*c2c66affSColin Finck 358*c2c66affSColin Finck# Rules for .so main module 359*c2c66affSColin Finck 360*c2c66affSColin Finck$(MODULE).so: $(MODULE).spec.o $(ALL_OBJS) Makefile.in 361*c2c66affSColin Finck $(LDSHARED) $(LDDLLFLAGS) $(MODULE).spec.o $(ALL_OBJS) -o $@ $(ALL_LIBS) -lc 362*c2c66affSColin Finck 363*c2c66affSColin Finck$(BASEMODULE): $(WINEWRAPPER) 364*c2c66affSColin Finck $(RM) $@ && $(LN_S) $(WINEWRAPPER) $@ 365*c2c66affSColin Finck 366*c2c66affSColin Finck# Rules for .exe main module 367*c2c66affSColin Finck 368*c2c66affSColin Finck$(MODULE): $(ALL_OBJS) $(RCOBJS) Makefile.in 369*c2c66affSColin Finck $(CC) $(ALL_OBJS) $(RCOBJS) -o $@ $(DELAYIMPORTS:%=-l%) $(IMPORTS:%=-l%) $(ALL_LIBS) 370*c2c66affSColin Finck 371*c2c66affSColin Finck# Rules for testing 372*c2c66affSColin Finck 373*c2c66affSColin Finckcheck test:: $(SUBDIRS:%=%/__test__) 374*c2c66affSColin Finck 375*c2c66affSColin Finck$(TESTRESULTS): $(MODULE)$(DLLEXT) 376*c2c66affSColin Finck 377*c2c66affSColin Finck# Rules for installation 378*c2c66affSColin Finck 379*c2c66affSColin Finck.PHONY: install_prog install_prog.so uninstall_prog uninstall_prog.so 380*c2c66affSColin Finck 381*c2c66affSColin Finckinstall_prog.so: $(MODULE).so dummy 382*c2c66affSColin Finck $(MKINSTALLDIRS) $(dlldir) 383*c2c66affSColin Finck $(INSTALL_PROGRAM) $(MODULE).so $(dlldir)/$(MODULE).so 384*c2c66affSColin Finck 385*c2c66affSColin Finckinstall_prog: $(MODULE) dummy 386*c2c66affSColin Finck $(MKINSTALLDIRS) $(bindir) 387*c2c66affSColin Finck $(INSTALL_PROGRAM) $(MODULE) $(bindir)/$(MODULE) 388*c2c66affSColin Finck 389*c2c66affSColin Finckuninstall_prog.so: dummy 390*c2c66affSColin Finck $(RM) $(dlldir)/$(MODULE).so 391*c2c66affSColin Finck 392*c2c66affSColin Finckuninstall_prog: dummy 393*c2c66affSColin Finck $(RM) $(bindir)/$(MODULE) 394*c2c66affSColin Finck 395*c2c66affSColin Finckinstall:: install_prog$(DLLEXT) 396*c2c66affSColin Finck 397*c2c66affSColin Finckuninstall:: uninstall_prog$(DLLEXT) 398*c2c66affSColin Finck 399*c2c66affSColin Finckclean:: 400*c2c66affSColin Finck $(RM) $(BASEMODULE) $(MODULE) 401*c2c66affSColin Finck 402*c2c66affSColin Finck### Dependencies: 403