TARGETNAME=syssetup TARGETPATH=obj PASS1_PUBLISH={$(O)\$(TARGETNAME).lib=$(SDK_LIB_PATH)\$(TARGETNAME).lib} TARGETTYPE=DYNLINK DLLENTRY=_DllMainCRTStartup #USE_MSVCRT=1 USE_LIBCMT=1 PASS0_HEADERDIR=$(O) PASS0_SOURCEDIR=$(O) !include $(PROJECT_ROOT)\headless\lib\sources.inc INCLUDES=\ ..\inc;\ ..\ocmanage\inc;\ ..\..\pchealth\sr\inc;\ $(NET_INC_PATH);\ $(WINDOWS_INC_PATH);\ $(SHELL_INC_PATH);\ $(BASE_INC_PATH);\ $(DS_INC_PATH);\ $(DDK_INC_PATH); \ $(DRIVERS_INC_PATH); \ $(PROJECT_ROOT)\ntos\inc; \ $(BASE_SAC_UMODE_C_API_INC); C_DEFINES=-DUNICODE -D_OCM USE_SETUP_PERF=1 !if "$(USE_SETUP_PERF)" == "1" C_DEFINES=$(C_DEFINES) -D_SETUP_PERF_ -D_ENABLE_SAC_CHANNEL_LOGGING_ !endif !include $(PROJECT_ROOT)\ntsetup\sources.inc SOURCES=applyacl.c \ afpnp.c \ arc.c \ asrbkup.c \ asrclus.c \ asrrest.c \ billbrd.c \ clasinst.c \ clasprop.c \ cmdline.c \ copy.c \ crypto.c \ ctls.c \ debug.c \ dll.c \ dynupdt.c \ external.c \ extprog.c \ fileops.c \ inifile.c \ infcache.c \ intl.c \ log.c \ mainwind.c \ misc.c \ msg.mc \ names.c \ netdde.c \ ocm.c \ oobe.c \ optdirs.c \ pid.c \ preinst.c \ printer.c \ printupg.c \ ps2ppg.c \ registry.c \ repair.c \ resource.c \ sacchan.c \ security.c \ services.c \ setupasr.c \ sif.c \ storinst.c \ strtmenu.c \ syspnp.c \ syssec.c \ syssetup.c \ unattend.c \ userdiff.c \ vdm.c \ virtmem.c \ watch.c \ welcome.c \ wizard.c \ syssetup.rc \ utils.cpp \ _setup_browser.cxx MIGSHARED_ROOT=$(PROJECT_ROOT)\ntsetup\migshared MIGSHARED_BIN=$(MIGSHARED_ROOT)\$(O) PCH_LIB_PATHA=$(MIGSHARED_ROOT)\pcha\$(O)\pcha.lib PCH_LIB_PATHW=$(MIGSHARED_ROOT)\pchw\$(O)\pchw.lib MIGSHARED_PRECOMPILED_LIBS=$(PCH_LIB_PATHA) $(PCH_LIB_PATHW) HWDB_BIN=$(PROJECT_ROOT)\ntsetup\hwdb\lib\$(O) LINKLIBS=$(PROJECT_LIB_PATH)\pnpsif.lib \ $(PROJECT_LIB_PATH)\pencrypt.lib\ ..\excppkg\$(O)\excppkg.lib \ ..\hwlog\$(O)\hwlog.lib \ $(HWDB_BIN)\hwdblib.lib \ $(MIGSHARED_PRECOMPILED_LIBS) \ $(MIGSHARED_BIN)\migutil.lib \ $(BASE_LIB_PATH)\spapip.lib \ # IMPORANT: spapip.lib is a superset of setupapi.lib and sputils?.lib. However, # the initialization is in the DllMain function, so we include stub # implementations of pSetupInitializeUtils and pSetupUninitializeUtils # in syssetup.c. TARGETLIBS=\ $(SDK_LIB_PATH)\advapi32.lib \ $(SDK_LIB_PATH)\comctl32.lib \ $(SDK_LIB_PATH)\crypt32.lib \ $(SDK_LIB_PATH)\dnsapi.lib \ $(SDK_LIB_PATH)\gdi32.lib \ $(SDK_LIB_PATH)\imagehlp.lib \ $(SDK_LIB_PATH)\kernel32.lib \ $(SDK_LIB_PATH)\kernl32p.lib \ $(SDK_LIB_PATH)\ole32.lib \ $(SDK_LIB_PATH)\powrprof.lib \ $(DS_LIB_PATH)\dpapi.lib \ $(SDK_LIB_PATH)\samlib.lib \ $(BASE_LIB_PATH)\spapip.lib \ $(BASE_LIB_PATH)\wow64reg.lib \ $(SDK_LIB_PATH)\user32.lib \ $(SDK_LIB_PATH)\userenv.lib \ $(SDK_LIB_PATH)\version.lib \ $(SDK_LIB_PATH)\winspool.lib \ $(SDK_LIB_PATH)\sfc.lib \ $(SDK_LIB_PATH)\sfcfiles.lib \ $(SDK_LIB_PATH)\shlwapi.lib \ $(PROJECT_ROOT)\ntsetup\ocmanage\$(O)\ocmanage.lib \ $(PROJECT_ROOT)\ntsetup\setuplog\unicode\$(O)\setuplgu.lib \ $(SDK_LIB_PATH)\cryptui.lib \ $(SDK_LIB_PATH)\rpcutil.lib \ $(SDK_LIB_PATH)\netapi32.lib \ $(SDK_LIB_PATH)\rpcrt4.lib \ $(DS_LIB_PATH)\rsa32.lib \ $(PROJECT_LIB_PATH)\encrypt.lib \ $(PROJECT_ROOT)\ntsetup\pidgen\lib\trial\$(O)\pidgen.lib \ $(SDK_LIB_PATH)\imm32.lib \ $(SDK_LIB_PATH)\wintrust.lib \ $(BASE_SAC_UMODE_C_API_LIB) UMRES=$(O)\syssetup.res DELAYLOAD=\ comctl32.dll; \ crypt32.dll; \ dnsapi.dll; \ imagehlp.dll; \ ocmanage.dll; \ ole32.dll; \ pidgen.dll; \ samlib.dll; \ userenv.dll; \ winspool.drv !if $(WIN64) DELAYLOAD=\ $(DELAYLOAD); \ shlwapi.dll !endif DLOAD_ERROR_HANDLER=kernel32.dll PRECOMPILED_INCLUDE=setupp.h PRECOMPILED_PCH=setupp.pch PRECOMPILED_OBJ=setupp.obj OPTIONAL_UMTEST=x UMTYPE=windows UMENTRY=wmain UMLIBS=$(SDK_LIB_PATH)\syssetup.lib \ $(BASE_LIB_PATH)\spapip.lib \ $(SDK_LIB_PATH)\comctl32.lib # # This is an odd use of Sxs. # Setup registers .dlls that depends on gdiplus.dll, which is in the # system default context, but not (any longer) in system32. # The system default context for the setup.exe process is created before # we actually install the system default assembly. Creating the system # default context silently fails if the system default assembly has # not yet been installed, and is simply retried for every subsequent # process create. "system default" is also known as "system compatible". # SXS_ASSEMBLY_LANGUAGE_INDEPENDENT=1 SXS_MANIFEST=SysSetup.Manifest SXS_ASSEMBLY_NAME=Microsoft.Windows.Setup SXS_NO_BINPLACE=1 SXS_MANIFEST_IN_RESOURCES=1 SXS_MANIFEST_RESOURCE_ID=1234 C_DEFINES=$(C_DEFINES) -DSXS_MANIFEST_RESOURCE_ID=MAKEINTRESOURCEW($(SXS_MANIFEST_RESOURCE_ID))