Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
4.2 KiB

  1. Here are some detailed instructions on setting up your development machine so that you can build the query project.
  2. Part 1: Setting up your environment
  3. 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)
  4. 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).
  5. Create the directories to put the sources and binaries in:
  6. \nt\private\query
  7. \nt\private\infosoft
  8. \nt\private\inc
  9. \nt\public
  10. \nt\idw
  11. \nt\mstools
  12. 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.
  13. Get your environment variables set:
  14. LINKER_FLAGS=/RELEASE
  15. BASEDIR=\nt
  16. _NTDRIVE=<the drive letter where your sources are followed by a colon>
  17. _NTROOT=\nt
  18. _NTBINDIR=%_NTDRIVE%%_NTROOT%
  19. NTMAKEENV=%_NTDRIVE%%_NTROOT%\public\oak\bin
  20. _NT386TREE=%_NTDRIVE%\ntx86.chk
  21. If you have an alpha machine:
  22. _NTALPHATREE=%_NTDRIVE%\ntalpha.chk
  23. 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.
  24. LOGNAME=<some name that starts with your user name, such as KLAM2>
  25. You could have multiple enlistments on the same machine, make sure they are unique but still include your username.
  26. NTDEBUGTYPE=both
  27. NTDEBUG=ntsd
  28. path=%path%;%_NTDRIVE%%_NTROOT%\public\tools;%_NTDRIVE%%_NTROOT%\idw;%_NTDRIVE%%_NTROOT%\mstools;
  29. To build free (instead of checked) set:
  30. _NTDEBUG=ntsdnodbg
  31. _NT386TREE to a different release point (e.g. _NT386TREE=%_NTDRIVE%\ntx86.free)
  32. If you have an alpha machine:
  33. _NTALPHATREE=%_NTDRIVE%\ntalpha.free
  34. Always build free and checked before checking in
  35. 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").
  36. Part 2: Preparing your machine to build the Query project
  37. Copy the tools from your build release point:
  38. tc \\ntbuilds\release\usa\<build#>\<machine_type>\fre.srv\idw \nt\idw
  39. tc \\ntbuilds\release\usa\<build#>\<machine_type>\fre.srv\mstools \nt\mstools
  40. "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.
  41. Enlist in the public sources:
  42. cd \nt\public
  43. enlist -vs \\orville\razzle -p public
  44. This will create a whole bunch of directories under \nt\public
  45. Sync the public project:
  46. cd \nt\public
  47. ssync -r
  48. This will copy all of the files from the server
  49. You can't use the convenient ntenlist or ntsync utilities since it requires you to have the public\tools already installed.
  50. Copy new public files:
  51. tc \\ntbuilds\release\usa\<build#>\<machine_type>\fre.pub \nt\public
  52. 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.
  53. Enlist in the projects:
  54. ntenlist query infosoft
  55. This will create the directories for you based on your environment settings above.
  56. Sync the projects:
  57. ntsync query infosoft
  58. Get the private include files:
  59. copy \\x86fre\sources\private\inc\filterr.mc \nt\private\inc\.
  60. Alpha: copy \\alphafre\sources\private\inc\filterr.mc \nt\private\inc\.
  61. 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.
  62. Now let's build the query project:
  63. cd \nt\private\query
  64. build -c
  65. To build the infosoft project:
  66. cd \nt\private\infosoft
  67. build -c
  68. That's all there is to it!