INSTALL 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401
  1. =================================
  2. Installation Notes: NCSA X Mosaic
  3. =================================
  4. =================
  5. Table of Contents
  6. =================
  7. Section One: Introduction
  8. How our Makefile works and what we would like from you...
  9. Section Two: Step-by-Step
  10. Four easy steps to X Mosaic.
  11. Section Three: The Makefile.OS
  12. How the Makefiles are set up and what means what.
  13. Section Four: Disclaimer
  14. If captured, we will disavow all knowledge...
  15. =========================
  16. Section One: Introduction
  17. =========================
  18. First you will need to edit the Makefile for your OS. The toplevel makefile
  19. simply calls one of the specific makefiles located in the directory
  20. "makefiles". Its purpose is to enable a quick way of using the correct
  21. makefile for people who recompile Mosaic again and again. It also facillitates
  22. adding a new platform. There are two ways to use the toplevel makefile: First
  23. you can manually specify "make <OS>" where <OS> is one of the items listed
  24. when you type "make help" or "make list" or you set the environment variable
  25. "DEV_ARCH" (developer architecture) to one of the same items. Of course, this
  26. assumes you have made the necessary adjustments to the makefile of your
  27. choice. In the near future we intend to implement autoconf (GNU) which should
  28. solve _everyone's_ problems.
  29. =========================
  30. Section Two: Step-by-Step
  31. =========================
  32. 1) Edit "makefiles/Makefile.OS" (issue "make list" from toplevel to see
  33. a list of supported OSs). See Section Three for more information.
  34. 2) Compile any external libraries you need (from what you selected in your
  35. Makefile.OS.
  36. 3) Install Mosaic in your favorite thrid party directory.
  37. 4) Start up Mosaic and READ THE RELEASE NOTES! There have, no doubt, been
  38. tremendous strides forward!
  39. ==============================
  40. Section Three: The Makefile.OS
  41. ==============================
  42. What I am going to do is simply include Makefile.solaris-24 and explain each
  43. part. To save space, only the configurable section is included. My comments
  44. are noted by:
  45. :::
  46. SWP
  47. ---
  48. Comment
  49. :::
  50. ----------------------------Makefile.solaris-24------------------------------
  51. # Toplevel Makefile for NCSA Mosaic.
  52. # You shouldn't need to touch any of the Makefiles in the various
  53. # source subdirectories if you configure this Makefile correctly.
  54. # If you need to make serious changes to get Mosaic to compile on your
  55. # platform, send context diffs to mosaic-x@ncsa.uiuc.edu.
  56. # -------------------------- CUSTOMIZABLE OPTIONS ----------------------------
  57. prereleaseflags = -DPRERELEASE
  58. :::
  59. SWP
  60. ---
  61. The prereleaseflags variable should not be modified as it allows us to set the
  62. correct version as well as dictating whether or not the comment card is
  63. active.
  64. :::
  65. RANLIB = /bin/true
  66. #### On non-SGI's, this should be ranlib.
  67. # RANLIB = ranlib
  68. :::
  69. SWP
  70. ---
  71. The RANLIB variable should be set according to whether or not your system
  72. needs to have libraries ranlibed.
  73. :::
  74. #CC = cc
  75. #### On Sun's, this should be gcc (ANSI required).
  76. CC = gcc
  77. :::
  78. SWP
  79. ---
  80. Set your compiler here. If you use something other than one of the two
  81. listed, make it so, otherwise comment one or the other out.
  82. :::
  83. #### Linker Flags -- Primarily for linking static on linux-elf.
  84. #ldflags = -static
  85. ldflags =
  86. :::
  87. SWP
  88. ---
  89. This is where you stick anything extra for linking. This will only affect the
  90. final link of Mosaic (not building libraries).
  91. :::
  92. #### For a few files in the source, some compilers may need to be kicked
  93. #### in K&R mode. E.g., on SGI's, -cckr does this.
  94. # knrflag = -cckr
  95. #### On most systems, no flag is needed.
  96. knrflag =
  97. :::
  98. SWP
  99. ---
  100. This does exactly what the comment above says. It is used on every compile.
  101. :::
  102. #### Random system configuration flags.
  103. #### --> *** For Motif 1.2 ON ANY PLATFORM, do -DMOTIF1_2 *** <--
  104. #### For IBM AIX 3.2, do -D_BSD
  105. #### For NeXT, do -DNEXT
  106. #### For HP/UX, do -Aa -D_HPUX_SOURCE
  107. #### For Dell SVR4, do -DSVR4
  108. #### For Solaris, do -DSVR4 -DSOLARIS
  109. #### For Esix 4.0.4 and Solaris x86 2.1, do -DSVR4
  110. #### For Convex whatever, do -DCONVEX
  111. #### For SCO ODT 3.0, do -DSCO -DSVR4 -DMOTIF1_2
  112. #### For Motorola SVR4, do -DSVR4 -DMOTOROLA -DMOTIF1_2
  113. sysconfigflags = -DSOLARIS -DSVR4 -DMOTIF1_2 -DSOLARIS24
  114. :::
  115. SWP
  116. ---
  117. This is used to pass in weird system flags...basically, if they aren't defined
  118. or defined correctly for your system to not barf on the source code, add it
  119. here. This is given to every compile line.
  120. :::
  121. #### System libraries.
  122. # syslibs = -lPW -lsun -lmalloc
  123. #### For AIX 3.2
  124. # syslibs = -lPW -lbsd
  125. #### For most other Motif platforms:
  126. # syslibs = -lPW
  127. #### For Sun's and Ultrix and HP and BSD/386:
  128. # syslibs =
  129. #### For Sun's with no DNS:
  130. # syslibs = -lresolv
  131. #### For SCO ODT:
  132. # syslibs = -lPW -lsocket -lmalloc
  133. #### For Dell SVR4:
  134. # syslibs = -lnsl -lsocket -lc -lucb
  135. #### For Solaris (2.x) --nsl does not link correctly staticly.
  136. syslibs = -lnsl /usr/lib/libsocket.a /usr/ccs/lib/libgen.a
  137. #### For Motorola SVR4:
  138. # syslibs = -lnsl -lsocket -lgen
  139. :::
  140. SWP
  141. ---
  142. These are any additional libraries needed (system libs only).
  143. :::
  144. #### X include file locations -- if your platform puts the X include
  145. #### files in a strange place, set this variable appropriately. Else
  146. #### don't worry about it.
  147. #### HP X11R4 version:
  148. # xinc = -I/usr/include/Motif1.1 -I/usr/include/X11R4
  149. #### HP X11R5 version:
  150. # xinc = -I/usr/include/Motif1.2 -I/usr/local/X11R5/include
  151. #### NeXT version:
  152. # xinc = -I/usr/include/X11
  153. #### BSD/386
  154. # xinc = -I/usr/X11/include
  155. #### Solaris 2.x (Patched X11R5 and Motif libs)
  156. xinc = -I/usr/openwin/include -I/usr/dt/include
  157. :::
  158. SWP
  159. ---
  160. This is where you specify where you have installed your X libraries. Some
  161. systems have everything off of /usr/lib, some are not so lucky. If you
  162. are compiling and you get an error of "can't find include file XXX.h" it is
  163. more than likely a problem here (or if you don't have a particular lib
  164. installed.
  165. :::
  166. #### X library locations.
  167. # xlibs = -lXm_s -lXmu -lXt_s -lX11_s
  168. #### For Sun's (at least running stock X/Motif as installed on our machines):
  169. # xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
  170. #### For HP-UX 8.00:
  171. # xlibs = -L/usr/lib/Motif1.1 -lXm -L/usr/lib/X11R4 -lXmu -lXt -lX11
  172. #### For HP-UX 9.01: The X11R5 libraries are here on our systems
  173. # xlibs = -L/usr/lib/Motif1.2 -lXm -L/usr/lib/X11R5 -L/usr/lib/X11R4 -lXmu -lXt -lX11
  174. #### For NeXT:
  175. # xlibs = -L/usr/lib/X11 -lXm -lXmu -lXt -lX11
  176. #### For Dell SVR4:
  177. # xlibs = -L/usr/X5/lib -lXm -lXmu -lXt -lXext -lX11
  178. #### For Solaris (2.x) (Use static to go from machine to machine)
  179. xlibs = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/dt/lib -lXm
  180. xlibs += /usr/openwin/lib/libXmu.a /usr/openwin/lib/libXt.a
  181. xlibs += /usr/openwin/lib/libXext.a -lX11
  182. xlibs += /usr/lib/libm.a
  183. #### For SCO ODT 3.0 (I'm told that -lXtXm_s is *not* a typo :-):
  184. # xlibs = -lXtXm_s -lXmu -lX11_s
  185. #### For nearly everyone else:
  186. # xlibs = -lXm -lXmu -lXt -lX11
  187. #### For BSD/386:
  188. # xlibs = -L/usr/X11/lib -lXm -lXmu -lXt -lX11
  189. #### For Motorola SVR4:
  190. # xlibs = -lXm -lXmu -lXt -lXext -lX11 -lm
  191. :::
  192. SWP
  193. ---
  194. This is where you specify exactly what X libraries to link in and in what
  195. order (Yes, it matters. List the libraries in dependent order.).
  196. :::
  197. #### DTM AND HDF SUPPORT; READ CAREFULLY
  198. #### If you want to compile with DTM and HDF support, you should leave
  199. #### the following lines uncommented and make sure you have a copy of
  200. #### HDF 3.3 (r1 or later) installed and ready. You can find HDF on
  201. #### ftp.ncsa.uiuc.edu in /HDF.
  202. #### If you do not want to compile with DTM and HDF support, comment
  203. #### the following lines out. (If you are compiling from source for
  204. #### the first time, you should probably not bother with HDF and DTM
  205. #### support.)
  206. #### dtmmachtype needs to be set to one of the following:
  207. #### sun, sgi, dec, ibm, next, cray, convex
  208. #### If your platform is not one of the above, then either do not compile
  209. #### with HDF/DTM support or try hacking libdtm/makefile.
  210. dtmmachtype = solaris
  211. dtmdirs = libdtm libnet
  212. dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
  213. dtmflags = -DHAVE_DTM -I.. -I../libnet
  214. hdfdir = /hdf2/install/solaris
  215. hdflibs = $(hdfdir)/lib/libmfhdf.a $(hdfdir)/lib/libdf.a
  216. hdfflags = -DHAVE_HDF -DHDF -I$(hdfdir)/include
  217. :::
  218. SWP
  219. ---
  220. This is one of those external libraries you will need to obtain if you want
  221. HDF support (there is no real purpose for building the dtm libs unless you
  222. use HDF. If you are not going to use it, comment it out.
  223. :::
  224. #### PNG SUPPORT
  225. #### For inline PNG support, the following should be defined:
  226. #### The libraries currently used are PNGLIB 0.81 and ZLIB 0.95
  227. pngdir = /xdev/mosaic/libpng/solaris-24
  228. pnglibdir = $(pngdir)/lib
  229. pngincludedir = $(pngdir)/include
  230. pnglibs = $(pnglibdir)/libpng.a $(pnglibdir)/libz.a -lm
  231. pngflags = -I$(pngincludedir) -DHAVE_PNG
  232. :::
  233. SWP
  234. ---
  235. This is one of those external libraries you will need to obtain if you want
  236. PNG support. Comment it out if you aren't going to use it.
  237. :::
  238. #### JPEG SUPPORT
  239. #### For inline JPEG support, the following should be defined:
  240. #### The library used is Independent JPEG Group (IJG's) 5.0a.
  241. jpegdir = /xdev/mosaic/libjpeg/solaris-24
  242. jpeglibs = $(jpegdir)/lib/libjpeg.a
  243. jpegflags = -I$(jpegdir)/include -DHAVE_JPEG
  244. :::
  245. SWP
  246. ---
  247. This is one of those external libraries you will need to obtain if you want
  248. JPEG support. Comment it out if you aren't going to use it.
  249. :::
  250. #### KERBEROS SUPPORT
  251. ####
  252. #### If you want Mosaic to support Kerberos authentication, set the
  253. #### following flags appropriately. You can support Kerberos V4 and/or V5,
  254. #### although it's most likely that your realm supports one or the other.
  255. #### To enable DES-encryption of HTTP messages via Kerberos key exchange,
  256. #### define the KRB-ENCRYPT flag.
  257. ##krb4dir = /usr/athena
  258. #krb4dir = /xdev/mosaic/libkrb4/solaris-24
  259. #krb4libs = $(krb4dir)/lib/libkrb.a $(krb4dir)/lib/libdes.a
  260. #krb4flags = -DKRB4 -I$(krb4dir)/include
  261. ##krb5dir = /krb5
  262. #krb5dir = /xdev/mosaic/libkrb5/solaris-24
  263. #krb5libs = $(krb5dir)/lib/libkrb5.a $(krb5dir)/lib/libcrypto.a $(krb5dir)/util/et/libcom_err.a
  264. #krb5flags = -DKRB5 -I$(krb5dir)/include -I$(krb5dir)/include/krb5
  265. #Do not comment out.
  266. krbflags = $(krb4flags) $(krb5flags)
  267. krblibs = $(krb4libs) $(krb5libs)
  268. :::
  269. SWP
  270. ---
  271. This is one of those external libraries you will need to obtain if you want
  272. KERBEROS 4 or 5 (you can have both) support. If you do not want to use it,
  273. comment out the first two groups, but not the group that expressly tells you
  274. to leave it alone.
  275. :::
  276. #### DIRECT WAIS SUPPORT
  277. #### If you want to have Mosaic be able to communicate directly with
  278. #### WAIS servers, do set the following flags appropriately. We
  279. #### recommend linking with CNIDR's freeWAIS 0.5 distribution; other
  280. #### WAIS distributions may work but we have not tested them with
  281. #### Mosaic. freeWAIS 0.5 can currently (Sept.1995) be found at
  282. #### ftp://sunsite.unc.edu/pub/wais/servers/freeWAIS
  283. #### If you do not wish to link to the WAIS libraries, then comment
  284. #### the following lines out. Mosaic will then communicate with WAIS
  285. #### servers via a HTTP gateway.
  286. #### -lm is required for freeWAIS 0.5, as ceil() is used.
  287. waisroot = /xdev/mosaic/freeWAIS/solaris24
  288. waisflags = -DDIRECT_WAIS -I$(waisroot)/include
  289. waislibdir = $(waisroot)/bin
  290. waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
  291. :::
  292. SWP
  293. ---
  294. This is one of those external libraries you will need to obtain if you want
  295. WAIS support. Comment it out if you don't want it.
  296. :::
  297. #### Customization flags:
  298. #### . If you want Mosaic to come up with monochrome colors by default,
  299. #### use -DMONO_DEFAULT
  300. #### . If you want to define the default Mosaic home page, set
  301. #### -DHOME_PAGE_DEFAULT=\\\"url\\\"
  302. #### . If you want to define the default Mosaic documentation directory
  303. #### (should be a URL), set -DDOCS_DIRECTORY_DEFAULT=\\\"url\\\"
  304. #### . Other things you can define are spelled out in src/mosaic.h.
  305. customflags =
  306. :::
  307. SWP
  308. ---
  309. This is the section which will set up various minor things in Mosaic.
  310. :::
  311. # ---------------------- END OF CUSTOMIZABLE OPTIONS -------------------------
  312. ---------------------------Makefile.solaris-24--------------------------------
  313. And that should be all you need to know about our Makefiles. Again, if you
  314. make modifications to it for support on your OS, please send in patches so
  315. we can support your platform.
  316. ========================
  317. Section Four: Disclaimer
  318. ========================
  319. The Makefiles provided are done so with the following intentions:
  320. o They are used to compile the Mosaic binaries that NCSA provides.
  321. o They are meant to be used as _guidelines_ for others who wish
  322. to compile Mosaic for themselves.
  323. o They do _not_ compile all of the necessary libraries.
  324. o They _will_ require editing to work for your system. Each config-
  325. urable section explains what it is and what it expects.
  326. o They are _not_ guarunteed to work.
  327. Note that the file "Makefile" is now simply a mechanism for calling the
  328. correct Makefile. This is due in large part to the finger
  329. of Tom Lane who very pointedly pointed out that if it does not compile Mosaic
  330. for all of the platforms, it shouldn't be there! No, this is not intended as
  331. a slight to Tom...we simply had not thought it through.
  332. Another note...the 2.8 distribution tree will be drastically changing. Do not
  333. expect patches for 2.7x to work for 2.8x. We will be moving the libraries
  334. out of the distribution tree and into a "library" distribution along with
  335. pointers to completely external libs (jpeg, png, zlib, etc). Since we have
  336. these libs in binary form, we will probably distribute a "binary_libs" archive
  337. of all the libs we build with for each platform (for those who can't get the
  338. lib to build or simply don't care to take the time, but still want to play
  339. with the source to Mosaic).
  340. The last note is for future reference. As a side project we have been playing
  341. with autoconf (ftp://prep.ai.mit.edu/pub/gnu). Please take into
  342. account that these are side projects which would certainly make life easy,
  343. but since these Makefiles suffice for us it is our intention to focus our
  344. efforts on more important features. HOWEVER, if someone out there in the
  345. great space wishes to perform this feat for us, we would gladly accept.
  346. Scott Powers spowers@ncsa.uiuc.edu \ The N.C.S.A. X Mosaic
  347. Paul Bleisch pbleisch@ncsa.uiuc.edu \ Development Team
  348. Dan Pape dpape@ncsa.uiuc.edu >
  349. Tommy Reilly tpreilly@ncsa.uiuc.edu / Comments? Suggestions? Problems?
  350. Brian Swetland swetland@ncsa.uiuc.edu/ mosaic-x@ncsa.uiuc.edu