From a7e3405cd8c344118d4223e340df14a8dedf33ed Mon Sep 17 00:00:00 2001 From: cxgeorge <> Date: Thu, 21 Feb 2002 23:07:54 +0000 Subject: [PATCH] switch to formatted howto doc --- panda/src/doc/howto.install_panda_on_windows | 331 ------------------ .../doc/howto.install_panda_on_windows.doc | Bin 0 -> 71168 bytes 2 files changed, 331 deletions(-) delete mode 100644 panda/src/doc/howto.install_panda_on_windows create mode 100644 panda/src/doc/howto.install_panda_on_windows.doc diff --git a/panda/src/doc/howto.install_panda_on_windows b/panda/src/doc/howto.install_panda_on_windows deleted file mode 100644 index ecbcf0f622..0000000000 --- a/panda/src/doc/howto.install_panda_on_windows +++ /dev/null @@ -1,331 +0,0 @@ -WARNING: This document is an internal VR Studio document describing -how to set up Panda on a new PC using our internal development -environment. It is not useful for programmers who are not within the -VR Studio firewall. - -If you are looking for documentation on installing Panda in the rest -of the world, see INSTALL.txt in this directory. - - - - -To install Panda3D on WinXP/Win2000 -------------------------------------- -Notes: - Lines preceeded by ">" are instructions to be typed on the command line. - On WinNT, make sure your system clock is not set to GMT (only worry about - this if your makedepend seems out of sync, i.e. you constantly reinstall - old files over more current ones). - "Touch" doesn't quite work properly on WinNT or Win98 currently. - Make sure you run ftp in "binary" mode to fetch tarballs. - "ftp" doesn't currently read "backspace" in rxvt, so you'll just have to be - precise at the ftp prompt for now ("delete" doesn't work either). - If this really bugs you, you can create a shortcut on the Desktop to - "tcsh.exe" and run ftp properly from there rather than from rxvt. - Make sure your machine has enough disk space - I'd start with the largest - open space on any of your partitions. - Make sure your machine has networking (IP, gateway, etc.) so you can use - ftp to get to mother. - -Step 0: Map network drive to build tools drive - - right click on Network Places, choose Map Network Drive - - Map Network Drive V: to \\dimbo\panda - You also can do this from cmd.exe using 'net use v: \\dimbo\panda' - - select reconnect drive at startup - - if this doesnt work, you can install the build tools from CD - - run 'regedit V:\tabs.reg' to enable cmd.exe tab-filename-completion. - You must exit and restart the cmd.exe shell to enable this, since the - registry is only read at cmd.exe startup. - -Step 1: Update OS software - - On Win2000, install ServicePack 2 and DX 8.1 by running - v:\win2k-servicepack2.exe and - v:\dx8.1\DX81NTeng.exe - or download them from http://windowsupdate.microsoft.com (this will be MUCH slower). - Also check your video card manufacturer's website for updated drivers, the ones - on the original win2k CD are most likely too old. - - On both WinXP and Win2000, I recommend you go to http://windowsupdate.microsoft.com, - click on 'Product Updates', and install any patches labeled 'Critical Updates'. - -Step 2: - Choose whether to use Visual C++ v7.0 or v6.0 - - To Install VC++ 7.0 - Run v:\msvc7\vc_setup\setup.exe, or install from the MSDN 'Visual Studio.NET' CD - Click on 'Windows Component Update' (if it is highlighted, else click '2') - Click 'Continue' (Selecting 'Do not use this machine to host web projects') - You will install IE6, which will requires a reboot. Give your pw if you - want it to happen automatically. - - After rebooting, setup should start again. If it does not, go back and rerun - it, it should remember where it left off. - - After installing components, you are ready to install VC7 in Step 2. - Enter this step and enter the product-key, which is stored in - V:\msvc7\vc7-prodkey.txt - - On the 'select items to install page', you need uncheck things to avoid wasting - gigs of extra space and install time. Uncheck everything except for - Language Tools->Visual C++, Server Components->Remote Debugger->Native Remote - Debugger, and if you want, Documentation (this is a gig, and is only a slight - update if you already have MSDN installed locally though. you will want to - uninstall the separately-installed MSDN docs if you get this.) - - Unlike VC 6.0, there is no option to add the required compiler bin - directories to the environment path automatically. To do this, if you - are running from the NT command line, run - "C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin\vcvars32.bat" - - If you are using tcsh.exe under cygwin, see step 4.5 to setup the environment after - your shell environment is running properly - - To Install Visual C++ (v6.0) - - Run V:\msvc-6.0\setup.exe, or install from CD. - For a faster install, select custom install and uncheck everything - but Visual C++, Data Access, ActiveX, and Tools - - On WinNT/XP/2000, you will be prompted to register environment variables for - running the compiler from the command line - do it. - - Install MSVC Service Pack 5 by running V:\msvc-sp5\setupsp5.exe, or from CD - You may need to run v:\msvc-sp5\mdac_typ.exe first (setup will tell you if so) - - Install the MSDN Library documentation if this is a primary dev machine. - Install from CD, or by running V:\msdn-apr01\setup.exe. To save time and - disk space, choose custom install and uncheck everything but Text-Search - Index, VC++, Platform SDK, Knowledge Base, and All Other Files. - - - Install MS Platform SDK to get updated VC libs and headers - - Run v:\platform-sdk\setup.exe to install the Feb 2001 Platform SDK and - choose 'Install MS Platform SDK in default location.' - (there may be problems with other newer versions of the Platform SDK) - This should prepend the Platform SDK paths to your PATH,INCLUDE, - and LIB dirs. Building libpandadx requires this step (needs DX7 - headers/libs) - -Step 3: Install Cygwin (v1.3.5 or above should work) - - Install Cygwin by running V:\cygwin-1.3.5\setup.exe, and selecting - 'install from local directory' (or go to cygwin.com and run setup.exe - from the link there to install the latest version from the internet). - Be careful to make sure that packages such as CVS, perl, bison, - etc. which are required to build PANDA are selected for installation. - Alternatively, you can install the latest Cygwin off the Internet from - http://cygwin.com. - - Open up a shell by running (and, if you desire, creating a shortcut to) - tcsh.exe in: - C:/Cygwin/bin - Known Problems with tcsh: - tcsh v6.09.00: (cygwin 1.0) long paths result in 'Word too long' errors - tcsh v6.10.00 (cygwin 1.3.3) uppercase filename executables not found on - path, so build fails (cant find 'CL.EXE') - tcsh v6.11.00 (cygwin 1.3.6) TAB filename completion sometimes fails - - v6.09 and v6.11 should be stored on V:\cygwin-1.3.5, you can copy them - to c:\cygwin\bin if you want to use them - - Alternately, you can run a bash shell by going to the "Start" - button at the bottom left of your screen, selecting "Programs", - "Cygwin" and "bash". You can then run "tcsh" at the bash prompt to make - things easier. - - Set up the Cygwin environment: - - all of the commands below have been collected in V:\win\install\wintools\etc\setup_env.csh. cd V:\win\install\wintools\etc, run tcsh, and -do 'source setup_env.csh' to do all of the below automatically - - - Check for directories /bin /etc /tmp /usr and create them using - mkdir if they don't exist. - - Make the following directories: - > mkdir /c /f /g /h /i /j /v - > mkdir /msvc98 /mscommon /mspsdk /msvc7 /intel /ia32 - > mkdir /usr/local /usr/local/bin /usr/local/etc - - - Rename any cygwin-installed python.exe (if it exists) to avoid conflicts with required VRSTUDIO-compiled python, - which is custom-built to load sitecustomize.py and setup PYTHONPATH for our panda environment - - > mv /bin/python.exe /bin/python-cygwin.exe - - - Create some links expected by the attach scripts: - > ln -s /bin/tcsh /bin/csh - > ln -s /bin/perl /usr/local/bin/perl - > ln -s /bin/bash /usr/local/bin/bash - - Connect the network drives: - Note that any of your drive letters are already in use, you - simply do a 'net use' to a different drive letter, then - change the 'mount' command to point the official '/[drivelet]' dir - at the real drive letter it's mounted to. It is not necessary - for /v to point to the v: drive. - - > net use f: "\\nufat\fat" /persistent:yes - > net use g: "\\nufat\bit" /persistent:yes - > net use h: "\\dimbo\usr2" /persistent:yes - > net use i: "\\nufat\big" /persistent:yes - > net use j: "\\nufat\for" /persistent:yes - > net use v: "\\dimbo\panda" /persistent:yes - - Mount directories. Note the use of -b for the unix mounts. The - VC++ mounts assume VC++ was installed in C:\Program Files: - > mount -s c:/ /c - > mount -s -b f:/ /f - > mount -s -b g:/ /g - > mount -s -b h:/ /h - > mount -s -b i:/ /i - > mount -s -b j:/ /j - > mount -s -b v:/ /v - > mount -s C:/Program\ Files/Microsoft\ Visual\ Studio/VC98 /msvc98 - > mount -s C:/Program\ Files/Microsoft\ Visual\ Studio/Common /mscommon - > mount -s C:/Program\ Files/Microsoft\ Platform\ Sdk /mspsdk - - If VC7 is installed: - > mount -s C:/Program\ Files/Microsoft\ Visual\ Studio .NET/Vc7 /msvc7 - - If Intel C++ is installed: - > mount -s C:/Program\ Files/Intel /intel - > mount -s C:/Program\ Files/Intel/Compiler60/IA32 /ia32 - - - These are optional, but handy - > mkdir /fat - > mkdir /bit - > mkdir /fit - > mkdir /ful - > mkdir /alpha - > mkdir /beta - > mkdir /gamma - > mkdir /for - > mount -s -b F:/ /fat - > mount -s -b G: /bit - > mount -s -b H:/fit/ /fit - > mount -s -b H:/ful/ /ful - > mount -s -b I:/alpha/ /alpha - > mount -s -b I:/beta /beta - > mount -s -b I:/gamma /gamma - > mount -s -b J:/ /for - -Step 4: Create your home directory - - Create a HOME directory: - > mkdir /usr/ - - Set the $HOME environment variable: - - On WinNT use the Registry: - - Select "My Computer" icon from the desktop. - - Select "Control Panel" icon. - - Select "System" icon. - - Select "Environment" tab. - - Create the variable "HOME" with the value "/usr/". - - click ok - ok - ok to exit (you must exit for the change to take - effect) - - Now open a new shell to get the changes. - - On Win98 use AUTOEXEC.BAT: - - Add/Change the "HOME=/usr/" line in C:\AUTOEXEC.BAT: - - Note: if you want to edit your existing AUTOEXEC.BAT, you need - to use "edit.exe" in order to generate the correct "newline" - character (^M). - - Note: We've seen a problem where we can't source ~/.cshrc if the home - directory /usr/ does not match the user name %USERNAME% windows env var. - To be safe, be sure and name your home directory to be /usr/. - - Copy important startup files into your home directory: - > cd /v/win/install/wintools/panda - > cp .cshrc .emacs Configrc Config.pp /usr/ - - Make sure the contents of .cshrc are correct for your setup. In - particular, make sure the definition for PANDA_ROOT matches the - directory you have installed Cygwin to (normally C:\Cygwin), and - that CVSROOT is correct for your CVS login (if $USERNAME is not - the same as your CVS/Unix account name, edit the variable as - necessary). - - -Step 4.5: - If using VC++ 7.0 - 'source $WINTOOLS/bin/setup_msvc7.csh' (ignore any 'already exists' messages) - You will want to copy the top portion of setup_msvc7.csh to your .cshrc, and put - 'set_msvc7' cmd from the script at the end of your .cshrc to set up the PATH properly - as well as do the 'setenv USE_COMPILER MSVC7'. - -Step 5: Update /usr/local/etc: - - Copy vspec files from $WINTOOLS to /usr/local/etc - > cd /v/win/install/wintools - > cp_vspec - - (Optional) Add new username to vspec files - - If you are setting up a new user, edit the *.vspec files - in /usr/local/etc to reflect the new username and path to the player - tree. - - Also edit (on the SGI, for instance on mother) the file - /fit/cvs/CVSROOT/passwd to add the new username as a valid user of - CVS. - - (Optional) Update default values in vspec files - - Edit appropriate *.vspec files to specify which trees you wish to use - as a default (e.g. install vs. minstall vs. personal) - -Step 6: Grab the cvs trees - - Open a new shell - - Create personal trees: - > cd ~ - > mkdir player - > cd player - # Just hit return when prompted for a password - > cvs login - > cvs co dtool (only if local dtool will be built) - > cvs co panda (only if local panda will be built) - > cvs co direct (only if local direct will be built) - > cvs co toontown (only if local toontown will be built) - - Choose which optimize level you want. This is set in Config.pp in - your $HOME directory. Look for #define OPTIMIZE and follow - instructions above that. You can only choose an arbitrary - optimize level if you are building your own DTOOL and PANDA; - otherwise, you must set it to the optimize level corresponding to - the version of DTOOL/PANDA you intend to attach to (install is - built OPTIMIZE 2, release is built OPTIMIZE 3). - -Step 7: (Optional) Build $DTOOL - - When you opened a new shell in step 6, it should have attached - to $DTOOL:install automatically, but you will need to attach to your - own DTOOL if you want to build your own. - > cta dtool personal - > cd $DTOOL - > ppremake - > nmake install - -Step 8: (Optional) Build $PANDA - - Build panda - > cta panda personal - > cd $PANDA - > ppremake - > nmake install - - You can now run "demo" to test the install and build - you should - see a window pop up with a triangle in it. To see the triangle with - a texture on it, you'll need to be in $PANDA/src/all/testbed/ when - you run "demo". - -Step 9: Install Emacs - (note: this emacs does not use Cygwin paths, "/" represents the real root not "C:\Cygwin".) - - get the tarball from /for/program/tarballs/emacs-20.7-fullbin-i386.tar.gz - - untar/install (This will install emacs into C:/emacs-20.7, - do not attempt to install it under a directory containing a space, - like "Program Files".) - > cd /c - > tar xvzf ~/emacs-20.7-fullbin-i386.tar.gz - - Copy lisp/script files - > cp $DIRECT/src/directscripts/python-mode.el /c/emacs-20.7/lisp/progmodes - > cp $DIRECT/src/directscripts/runPythonEmacs /usr/local/bin - - Update environment variables (win2000). Note: You should only need to - do this if you intend to invoke Panda from a non-Cygwin prompt. If you - will always be using Cygwin, simply edit your .cshrc file to extend the - path appropriately. - - right click on your computer icon at the top left of the screen - - select "properties" - - click on the "Advanced" tab - - click on "Environment Variables..." - - double click on the "Path" variable in the bottom pane (system variables) - - add C:\emacs-20.7\bin to the end of the path (semicolon separated) - - click ok - ok - ok to exit (you must exit for the change to take effect) - -Step 10: Build $DIRECT - > cta direct personal - > cd $DIRECT - > ppremake - > nmake install - -Step 11: Build $TOONTOWN - > cta toontown personal - > cd $TOONTOWN - > ppremake - > nmake install - -Step 12: Generate Python Code - > cd $DIRECT/bin - > genPyCode win-debug (if you have built using OPTIMIZE = 1 or 2) - > genPyCode win-release (if you have built using OPTIMIZE = 3 or 4) - diff --git a/panda/src/doc/howto.install_panda_on_windows.doc b/panda/src/doc/howto.install_panda_on_windows.doc new file mode 100644 index 0000000000000000000000000000000000000000..44cceff289ed2d1f7c6f24c8b7d0d829436e21ec GIT binary patch literal 71168 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 literal 0 HcmV?d00001