3 # bash script to set a suitable environment to call MSVC's build
4 # to build a 64-bit version of the kernel.
6 # inspired by C:/winddk/7600.16385.1/bin/setenv.bat
7 # see http://www.osronline.com/ddkx/ddtools/build_ref_0kqb.htm
9 #############################################################
10 # edit theese variables to meet your configuration #
11 # - DRIVE is the hard drive letter where DDK is installed #
12 # - DDK is the path to the DDK's root directory #
13 # - CYGDDK is the complete cygwin path to DDK #
14 #############################################################
16 echo "invalid params" && exit 1
20 CYGDDK=/cygdrive/c/${DDK}
22 MYDIR=`pwd` # XXX luigi
24 if [ "$TARGETOS" = "wnet" ]; then
25 export DDK_TARGET_OS=WinNET
26 export _NT_TARGET_VERSION=0x502
29 if [ "$TARGETOS" = "wlh" ]; then
30 export DDK_TARGET_OS=WinLH
31 export _NT_TARGET_VERSION=0x600
34 if [ "$TARGETOS" = "win7" ]; then
35 export DDK_TARGET_OS=Win7
36 export _NT_TARGET_VERSION=0x601
40 #############################################################
41 # don't edit anything else below this point #
42 #############################################################
51 export ATL_INC_PATH=$DI # defaults to DDKROOT/inc
52 export ATL_INC_ROOT=$DI # XXX redundant ?
53 export ATL_LIB_PATH=${DL}/atl/*
54 export BASEDIR=$D # default
55 export BUFFER_OVERFLOW_CHECKS=1
56 export BUILD_ALLOW_COMPILER_WARNINGS=1
57 export BUILD_ALT_DIR=chk_${TARGETOS}_AMD64
58 export BUILD_DEFAULT="-ei -nmake -i -nosqm" # can go on the command line
59 export BUILD_DEFAULT_TARGETS="-amd64" # can also go on the command line
60 export BUILD_MAKE_PROGRAM=nmake.exe # default to nmake
61 export BUILD_MULTIPROCESSOR=1 # parallel make, same as -M
62 export BUILD_OPTIONS=" ~imca ~toastpkg"
63 export COFFBASE_TXT_FILE=${DB}/coffbase.txt
65 export CRT_INC_PATH=${DI}/crt # default
66 export CRT_LIB_PATH=${DL}/crt/* # not default, it seems uses lib/{wnet,win7}/*
67 export DDKBUILDENV=chk # checked or free
68 export DDK_INC_PATH=${DI}/ddk
69 export DDK_LIB_DEST=${DL}/${TARGETOS}
70 export DDK_LIB_PATH=${DL}/${TARGETOS}/*
71 export DEPRECATE_DDK_FUNCTIONS=1
72 export DRIVER_INC_PATH=${DI}/ddk
73 export HALKIT_INC_PATH=${DI}/ddk
74 export HALKIT_LIB_PATH=${DL}/${TARGETOS}/*
75 export IFSKIT_INC_PATH=${DI}/ddk
76 export IFSKIT_LIB_DEST=${DL}/${TARGETOS}
77 export IFSKIT_LIB_PATH=${DL}/${TARGETOS}/*
78 export Include=${DI}/api
79 export KMDF_INC_PATH=${DI}/wdf/kmdf
80 export KMDF_LIB_PATH=${DL}/wdf/kmdf/*
81 export LANGUAGE_NEUTRAL=0
83 export LINK_LIB_IGNORE=4198
84 export MFC_INC_PATH=${DI}/mfc42
85 export MFC_LIB_PATH=${DL}/mfc/*
86 export MSC_OPTIMIZATION="/Od /Oi"
88 export NO_BINPLACE=TRUE
89 export NO_BROWSER_FILE=TRUE
92 export NTDEBUGTYPE=both
93 # need NTMAKEENV to point to the binary dir
94 export NTMAKEENV=${DB}
95 export OAK_INC_PATH=${DI}/api
97 export PATH="${CYGDDK}/bin/amd64:${CYGDDK}/tools/sdv/bin:${CYGDDK}/tools/pfd/bin/bin/x86_AMD64\
98 :${CYGDDK}/bin/SelfSign:${CYGDDK}/bin/x86/amd64:${CYGDDK}/bin/x86\
99 :${CYGDDK}/tools/pfd/bin/bin/AMD64:${CYGDDK}/tools/tracing/amd64:$PATH"
101 export PATHEXT=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"
102 export PROJECT_ROOT=${D}/src
103 export PUBLIC_ROOT=${D}
104 export RAZZLETOOLPATH=${DB}
106 export SDK_INC_PATH=${DI}/api
107 export SDK_LIB_DEST=${DL}/${TARGETOS}
108 export SDK_LIB_PATH=${DL}/${TARGETOS}/*
109 export SDV=${D}/tools/sdv
110 export separate_object_root=FALSE
113 export UMDF_INC_PATH=${DI}/wdf/umdf
114 export USE_OBJECT_ROOT=1
115 export WDM_INC_PATH=${DI}/ddk
116 export WPP_CONFIG_PATH=${DB}/wppconfig
117 export _AMD64bit=true
118 export _BUILDARCH=AMD64
119 export _BuildType=chk
120 export _NTDRIVE=${DRIVE}
121 export _NTROOT=${DDK}
123 # --- XXX note, it spams C:/winddk/7600.16385.1/build.dat
124 # -c: delete objs, -e: generare build.* logfiles, -f rescan sources, -g color errors
126 echo "emv ${MAKE} flags ${MAKEFLAGS}"
127 cd kipfw-mod && build -cefg
129 #cp objchk_${TARGETOS}_amd64/amd64/ipfw.sys ../binary/ipfw.sys