Compiling EPICS on WIN32 (Windows95/NT) --------------------------------------- Original port of EPICS base to WIN32 (Windows95/NT) was done by Kay-Uwe Kasemir 11/96 questions & comments please mail to johill@lanl.gov 0) what you will get -------------------- Right now this port of EPICS to WIN32 should allow you to * compile almost all of EPICS base using {Tornado, MS Visual C, perl, GNU make} (only {MS Visual C, perl, GNU make} if you prefer to compile only the host portions of EPICS base). * load EPICS on a PC IOC (486, pentium), load simple databases (no drivers/devices for real I/O available, yet. Some Greenspring IP support [Relay, Dig, ADC, DAC] is in progress) * build and use ca.dll on NT or Win95 to access all IOCs, as well as the Com-library, gdd-library, and cas-library as DLLs. The remaining libraries are statically linked and therefore only accessible from programming languages like C, not general WIN32 apps. * build gdd, cas and a demo of the new portable CA server on WIN32. 1) see what you have -------------------- To compiler EPICS on WIN32, we need WindRiver System's Tornado (used: 1.0) (not required if host only build) Microsoft's Visual C/C++ (used: 4.0) (borland C++ rumored to work also) and some tools: gnu make www.gnu.org perl www.perl.org (used 5.003) The perl interpreter and gnu make are available 'on the net' as sources which compile with MS Visual C++. If you cannot/don't want to find them, contact me, please! 2) set environment variables Your path should include: - The EPICS-binaries that we are about to build in base/bin/WIN32 - The System (for me it's in NT40...) - The MS Visual C compiler binaries Check with e.g.: >echo %Path% C:\WINNT35.0\system32; C:\WINNT35.0; c:\msdev\bin; c:\perl5\bin; c:\make-3.75\WinRel; c:\epics\base\bin\win32 (really where INSTALL_LOCATION specifies) On NT, "Path" is defined by the operatin system, on Win95, it's "PATH" instead. MS Visual C and Tornado should be installed properly with these env. variables set: WIND_BASE=c:\Tornado (required for cross development only) WIND_HOST_TYPE=x86-win32 (required for cross development only) This way the EPICS makesystem can locate Tornado without any changes to the files in base/config. So for pc486 the settings in CONFIG_SITE where you specify the location of VxWorks are ignored, this information is taken from WIND_BASE and _HOST_TYPE!! MSDevDir=C:\MSDEV include=c:\msdev\include;c:\msdev\mfc\include lib=c:\msdev\lib;c:\msdev\mfc\lib Select host arch to build: HOST_ARCH=WIN32 (used by the make system) Special note: configuring EPICS_CA_AUTO_CA_ADDR_LIST under WIN32 ---------------------------------------------------------------- Currently if EPICS_CA_AUTO_CA_ADDR_LIST is YES (the default) then the ca address list will be initialized to the broadcast address of one of the interfaces on the WIN32 host (in the near future this will be fixed so that the broadcast addresses of all interfaces is used as on other os). If EPICS_CA_AUTO_CA_ADDR_LIST is NO behavior is as described in the CA reference manual. (Setting env. vars. is different: for NT, use Settings/System, for Win95 use autoexec.bat) 3) building EPICS ----------------- Prepare apx. 2 ltr. Tee and type: cd /base make (use gnu make) Watch for errors and send them to me. Known problems: * gnumake seems to be faster than WIN32 sometimes which results in warnings/errors like "file has modification date in the future" for newly vreated things. Very seldom this is fatal, so you have to stop gnumake and restart it. * This is strange because Windows95/NT don't care about upper/lower case: WIN32 is WIN32, not win32. Gnumake fails if e.g. base/src/include/os/WIN32 is ...win32. Good luck ! -Kay