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)

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);

C_DEFINES=-DUNICODE -D_OCM
USE_SETUP_PERF=1
!if "$(USE_SETUP_PERF)" == "1"
C_DEFINES=$(C_DEFINES) -D_SETUP_PERF_
!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  \
        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

LINKLIBS=$(BASE_LIB_PATH)\spapip.lib\
     $(PROJECT_LIB_PATH)\pnpsif.lib\
      $(PROJECT_LIB_PATH)\pencrypt.lib \
         ..\excppkg\$(O)\excppkg.lib \
         ..\hwdb\hwdblib\$(O)\hwdblib.lib \
         ..\hwdb\$(O)\utils.lib \
         ..\hwdb\utils\pch\$(O)\pch.obj \
         ..\hwlog\$(O)\hwlog.lib \

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

UMRES=$(O)\syssetup.res

DELAYLOAD=\
        advapi32.dll;     \
        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

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))