Windows-Server-2003/inetsrv/query/buildenv.txt

89 lines
4.1 KiB
Plaintext

Here are some detailed instructions on setting up your development machine so that you can build the query project.
Part 1: Setting up your environment
Pick a volume with a lot of space on it. If you want to just build the query project then you will need about 900 Mb of disk space. This value includes space for the public directory and space for the built files (obj, exe, dll, lib etc)
Rename the volume so that it starts with your username. (e.g. KLAM-E). A good rule of thumb is to use machinename-driverletter since you can be enlisted from more than one machine (your machine name should include your username) (e.g. KLAM2-E).
Create the directories to put the sources and binaries in:
\nt\private\query
\nt\private\infosoft
\nt\private\inc
\nt\public
\nt\idw
\nt\mstools
Some prefer to put the mstools and idw directories under their %Windir% directory. Beware: Some projects might require different tools for slm and building than others.
Get your environment variables set:
LINKER_FLAGS=/RELEASE
BASEDIR=\nt
_NTDRIVE=<the drive letter where your sources are followed by a colon>
_NTROOT=\nt
_NTBINDIR=%_NTDRIVE%%_NTROOT%
NTMAKEENV=%_NTDRIVE%%_NTROOT%\public\oak\bin
_NT386TREE=%_NTDRIVE%\ntx86.chk
If you have an alpha machine:
_NTALPHATREE=%_NTDRIVE%\ntalpha.chk
Instead of using this variable you can use _NTTREE if you don't need to put the binaries for different architectures in different directories. Beware of 32/64 bit builds though.
LOGNAME=<some name that starts with your user name, such as KLAM2>
You could have multiple enlistments on the same machine, make sure they are unique but still include your username.
NTDEBUGTYPE=both
NTDEBUG=ntsd
path=%path%;%_NTDRIVE%%_NTROOT%\public\tools;%_NTDRIVE%%_NTROOT%\idw;%_NTDRIVE%%_NTROOT%\mstools;
To build free (instead of checked) set:
_NTDEBUG=ntsdnodbg
_NT386TREE to a different release point (e.g. _NT386TREE=%_NTDRIVE%\ntx86.free)
If you have an alpha machine:
_NTALPHATREE=%_NTDRIVE%\ntalpha.free
Always build free and checked before checking in
I keep these environment variables in a batch file(s) that I call up when a cmd window is started, you will probably want to do the same. (e.g. a shortcut on the desktop: cmd /q /k "e:\bin\ntenv.bat").
Part 2: Preparing your machine to build the Query project
Copy the tools from your build release point:
tc \\ntbuilds\release\usa\<build#>\<machine_type>\fre.srv\idw \nt\idw
tc \\ntbuilds\release\usa\<build#>\<machine_type>\fre.srv\mstools \nt\mstools
"Use IDW tools consistent with the same build number of NT you are running, and MSTOOLS tools consistent with your state of being in ssync." You may occaisionally need a more up-to-date IDW tool for building. You just need to scan build mails for notes in red.
Enlist in the public sources:
cd \nt\public
enlist -vs \\orville\razzle -p public
This will create a whole bunch of directories under \nt\public
Sync the public project:
cd \nt\public
ssync -r
This will copy all of the files from the server
You can't use the convenient ntenlist or ntsync utilities since it requires you to have the public\tools already installed.
Copy new public files:
tc \\ntbuilds\release\usa\<build#>\<machine_type>\fre.pub \nt\public
Not all of the files are gotten when you do a sync. The files that shouldn't be written over won't be since they will be read-only.
Enlist in the projects:
ntenlist query infosoft
This will create the directories for you based on your environment settings above.
Sync the projects:
ntsync query infosoft
Get the private include files:
copy \\x86fre\sources\private\inc\filterr.mc \nt\private\inc\.
Alpha: copy \\alphafre\sources\private\inc\filterr.mc \nt\private\inc\.
It seems ugly to get this file from the build machine, but its simple. The other option is to enlist in the genx project and try to build it yourself. Warning: This requires enlistments in other projects (e.g. windows, ie, ...) as well.
Now let's build the query project:
cd \nt\private\query
build -c
To build the infosoft project:
cd \nt\private\infosoft
build -c
That's all there is to it!