home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / doc / HOWTO / mini / GIS-GRASS < prev    next >
Text File  |  1997-10-08  |  52KB  |  1,170 lines

  1.  
  2. This document is not subject to copyright.  See section 9 below.
  3.                                              Version 0.9: 15 July 1997 
  4.                         The GIS-GRASS miniHOWTO
  5.                            David A. Hastings
  6.                       U. S. Department of Commerce
  7.             National Oceanic and Atmospheric Administration
  8.                     National Geophysical Data Center
  9.                             Boulder CO 80303
  10.                            dah@ngdc.noaa.gov
  11.  
  12. Summary: This document describes how to acquire, install and configure a 
  13. powerful scientific public-domain Geographic Information System (GIS): 
  14. the Geographic Resources Analysis Support System (GRASS).  It provides 
  15. information on other resources for learning more about GRASS, GIS in 
  16. general, for acquiring data, etc.
  17.  
  18. This document also encourages the Linux community to consider enhancing 
  19. this software as a major application of UNIX/Linux.  ("When will Linux 
  20. become bundled with public domain or Linux Public License 'killer 
  21. aps'"?)  For more on this topic, see Section 8 below.
  22.  
  23. Note: This is the first version of this document.  You can consider this a
  24. copy for "peer review."  You can consider yourself one of the "peers."
  25. Suggestions (of almost any kind) for improving this document would be
  26. appreciated.
  27.  
  28.                                 Contents
  29. 1. What is a GIS?
  30. 2. What is GRASS?
  31. 3. A Brief History of GRASS
  32. 4. System Requirements for GRASS
  33. 5. How to Acquire GRASS
  34. 6. How to Get GRASS Running on Your Linux-based Computer.
  35. 7. Web-based Support for GRASS (and for GIS Matters in General)
  36. 8. The Future of GRASS?
  37. 9. Copyright Notice, and Notice on Support of this Document
  38. 10. References
  39.  
  40. Appendix A: Acquisition/Installation of GRASS4.1.3 Binaries
  41. Appendix B: Acquisition/Installation of GRASS4.1.5 Binaries
  42. Appendix C: Acquisition/Compilation of GRASS Source Code
  43. Appendix D: If you plan to enhance any part of GRASS, read this first!
  44. Appendix E: Example Linux versions of some critical GRASS files.
  45.  
  46. ====================================================================
  47.                            1. What is a GIS?
  48.  
  49. There are many ways to describe a Geographic Information System.  Here 
  50. are three working definitions (from David A. Hastings, 1992, Geographic 
  51. Information Systems: A Tool for Geoscience Analysis and Interpretation):
  52.    1.   (The minimal definition):  A GIS is a hardware/software system 
  53.         for the storage, management, and (with hardcopy or screen 
  54.         graphic) selective retrieval capabilities of georeferenced data.  
  55.         Definitions like this one are often used by vendors and users of 
  56.         vector-only GIS, whose objective is sophisticated management and 
  57.         output of cartographic data.
  58.  
  59.    2.   (A parallel definition): A GIS is a hardware/software system for 
  60.         managing and displaying spatial data.  It is similar to a 
  61.         traditional Data Base Management System, where we now think in 
  62.         <u>spatial</u> rather than in tabular terms, and where the 
  63.         "report writer" now allows output of maps as well as of tables 
  64.         and numbers.  Thus we can consider a GIS a "spatial DBMS" as 
  65.         opposed to traditional "tabular DBMSs."  Few people use this 
  66.         definition, but it might help to explain GIS to a DBMS user.
  67.  
  68.    3.   (A more aggressive definition): A GIS is a system of hardware, 
  69.         software, and data that facilitates the development, 
  70.         enhancement, modeling, and display of multivariate (e.g. 
  71.         multilayered) spatially referenced data.  It performs some 
  72.         analytical functions itself, and by its analysis, selective 
  73.         retrieval and display capabilities, helps the user to further 
  74.         analyze and interpret the data.  Properly configured, the GIS 
  75.         can model (e.g. synthetically recreate) a feature or phenomenon 
  76.         as a function of other features or phenomena which may be 
  77.         related - where all features or phenomena are represented 
  78.         (characterized) by spatial and related tabular data.  The 
  79.         analytical objectives described here are sometimes controversial 
  80.         - and often given lip service by cartographic GIS specialists 
  81.         who have not yet seen what can be accomplished scientifically by 
  82.         a select few GISs that go beyond cartographic approaches.
  83.  
  84.    4.   Another definition can be found at the University of 
  85.         Edinburgh:http://www.geo.ed.ac.uk/home/research/whatisgis.html
  86.  
  87.                            2. What is GRASS?
  88.  
  89. GRASS (Geographic Resources Analysis Support System) is a public domain 
  90. raster based GIS, vector GIS, image processing system, and graphics 
  91. production system.  Created by the US Army Corps of Engineers, 
  92. Constriction Engineering Research Laboratory (USA/CERL) and enhanced by 
  93. many others, it is used extensively at government offices, universities 
  94. and commercial organizations throughout the world. It is written mostly 
  95. in C for various UNIX based machines.  Linux is one of its more robust 
  96. implementations.
  97.  
  98. GRASS contains over 40 programs to render images on monitor and paper; 
  99. over 60 raster manipulation programs; over 30 vector manipulation 
  100. programs; nearly 30 multi-spectral image processing manipulation 
  101. programs; 16 data management programs; and 6 point file management 
  102. programs.  
  103.  
  104. GRASS' strengths lie in several fields. The simple user interface makes 
  105. it an ideal platform for those learning about GIS for the first time.  
  106. Users wishing to write their own code can do so by examining existing 
  107. source code, interfacing with the documented GIS libraries, and by using 
  108. the GRASS Programmers' Manual. This allows more sophisticated 
  109. functionality to be fully integrated within GRASS.
  110.  
  111. Other strengths include GRASS' pioneering of mixed resolutions in a data 
  112. base, mixed geographic coverage areas in a data base, raster image 
  113. compression techniques via run-length encoding and reclassification 
  114. lookup tables, GRASS' rescaling of display images on the fly to fill the 
  115. display screen, plus its fundamental design criterion of powerful 
  116. computer-assisted scientific analysis of environmental issues (as 
  117. opposed to merely going for intricate cartographic output of relatively 
  118. simple processes).
  119.  
  120. GRASS is usually supplied as free, non-copyright source code to be 
  121. compiled on host machines.  Some compiled binaries are also easily 
  122. obtainable at no cost via the Internet.  It runs on a variety of UNIX 
  123. platforms. 
  124.  
  125. (Copied from Project Assist - Intro to GRASS at URL: 
  126. http://www.geog.le.ac.uk/assist/grass)
  127.  
  128.  
  129.                       3. A Brief History of GRASS
  130.  
  131. In the early 1980s the U. S. Army Corps of Engineers' Construction 
  132. Engineering Research Laboratory (USA/CERL) in Champaign, Illinois, began 
  133. to explore the possibilities of using Geographic Information Systems to 
  134. conduct environmental research, assessments, monitoring and management 
  135. of lands under the stewardship of the U. S. Department of Defense.  Part 
  136. of the motivation for this action was new responsibility for the 
  137. environment encoded into the National Environmental Policy Act of the 
  138. late 1970s.
  139.  
  140. Bill Goran of USA/CERL conducted a survey of available GISs, assuming 
  141. that he could find several systems capable of environmental analysis, 
  142. from which he could select one or more to recommend for use by CERL and 
  143. perhaps others in the Department of Defense.  However, he was surprised 
  144. to find no GIS that satisfied his needs.  What started as a selection 
  145. process turned into a design exercise for his own GIS development 
  146. program.
  147.  
  148. USA/CERL hired several programmers, and began by writing a hybrid 
  149. raster-vector GIS for the VAX UNIX environment.   This made the team one 
  150. of the first to seriously develop GIS for UNIX.  Though they still faced 
  151. challenges with different versions of UNIX, they developed procedures of 
  152. coding in ANSI standard UNIX, avoiding "tweaking" the code toward any 
  153. particular vendor-specific flavor of UNIX.
  154.  
  155. GRASS developed a programming style characterized by:
  156.  
  157. o    Use of UNIX libraries where possible, plus the creation of GRASS 
  158.      libraries for repeated GIS-specific acts such as opening raster 
  159.      files that might be compressed (by run-length encoding) or not.
  160. o    The ability to handle both major GIS data types: raster and vector.
  161. o    The favoring of raster data processing, as scientific analysis was 
  162.      easier to encode with raster (than for vector) data models.
  163. o    The ability to handle raster grids of mixed grid sizes in the same 
  164.      data base.  This was a departure from raster's image processing 
  165.      tradition of requiring identical (and perfectly registered) grid 
  166.      cell arrays in each and every data layer.
  167. o    The ability to handle raster grids with different areas of 
  168.      coverage.  Again, this was a departure from raster tradition of 
  169.      having all grids be identical in geographic coverage.
  170. o    The ability to run-length encode raster data files, in order to 
  171.      greatly reduce file sizes of most files.
  172. o    The separate structure of reclassification files.  Such files 
  173.      merely contained a look-up table noting the previous and new 
  174.      classes.  This is MUCH more compact than replicating the original 
  175.      grid with different numerical values.  A reclassified file of a 
  176.      100x100 km square area of 10 metre grid cells would be a few 
  177.      hundred bytes, rather than 100 megabytes of uncompressed 8-bit 
  178.      raster data.
  179. o    The acceptance of de-facto standard data models.  While competitors 
  180.      created cumbersome (and in many cases secretive) data formats, 
  181.      GRASS accepted the de-facto standard Digital Line Graph vector 
  182.      format and unheaded binary raster grid format.  GRASS later 
  183.      abandoned DLG as its internal vector file format, and let its 
  184.      raster format evolve.  However, DLG and the unheaded binary raster 
  185.      grid are still routinely handled formats for GRASS, and its new 
  186.      formats are as open as its previous ones.
  187. o    GRASS code was managed in several directories.  Initial 
  188.      contributions were placed in the src.contrib directory.  More solid 
  189.      code was moved to the src.alpha directory.  After remaining in the 
  190.      src.alpha for one full release cycle, the code, with resultant bug 
  191.      fixes, moved to the most honorable level, the src directory.
  192.  
  193. GRASS was overseen by three levels of oversight committees.  USA/CERL 
  194. kept the ultimate responsibility for GRASS.  It implemented most GRASS 
  195. development, and carried out the day-to-day management of GRASS testing 
  196. and release.  The GRASS Interagency Steering Committee (GIASC), 
  197. comprised of other Federal agencies, met semi-annually to review 
  198. development progress, and evaluate future directions for GRASS.  
  199. (Academic and commercial participants in GRASS also attended GIASC 
  200. meetings; only part of each meeting was "Federal-Agencies-only."  GRASS 
  201. eventually became nominally and officially a "product" of the GIASC, 
  202. though everyone recognized USA/CERL's leadership role.  The GRASS 
  203. Military Steering Committee met periodically to review the progress of 
  204. GRASS in serving its original intent: meeting the Department of 
  205. Defense's needs to evaluate and manage the environment of military 
  206. lands.  
  207.  
  208. The public interacted with CERL and GIASC through USA/CERL's GRASS 
  209. Information Center.  GRASS Beta testing was very widespread, and quite 
  210. intensive for the leading users of GRASS.  Several leading users, such 
  211. as the National Park Service and the Soil Conservation Service, selected 
  212. GRASS as its prime or only GIS.  They made significant commitments to 
  213. enhance and test GRASS, yet considered this investment well worth their 
  214. while.  They said that they had more influence over the direction of 
  215. GRASS than they would over any known alternative system.  They also felt 
  216. that, despite their major efforts and expenses in supporting GRASS, they 
  217. had a bargain in relevant power for the dollar.
  218.  
  219. Several universities adopted GRASS as an important training and research 
  220. environment.  Many conducted short-courses for the public, in addition 
  221. to using GRASS in their own curricula.  Examples of such leading 
  222. academic users of GRASS are Central Washington University, The 
  223. University of Arkansas, Texas A & M University, The University of 
  224. California at Berkeley, and Rutgers University.
  225.  
  226. Though GRASS received some criticism (some say) for being so good and so 
  227. public, it was also reputedly borrowed from liberally by some developers 
  228. of other systems.  Though the first group might have viewed it as unfair 
  229. competition, the second group may have noted that it was not copyright, 
  230. and was a valuable testbed for GIS concepts.  GRASS received an award 
  231. from the Urban and Regional Information Systems Association (URISA) for 
  232. quality software in 1988.
  233.  
  234. As CERL and GRASS evolved through the late 1980s and early 1990s, CERL 
  235. attempted to cut overhead costs associated with supporting the public 
  236. domain version.  It created and initially funded the Open GRASS 
  237. Foundation, in cooperation with several of the leading users of GRASS.  
  238. The Open GRASS Foundation has since evolved into the Open GIS 
  239. Consortium, which is aiming for more thorough interoperability at the 
  240. data and user interface level, but appears not to be taking advantage of 
  241. the major open GIS testbed (GRASS).
  242.  
  243. In 1996 USA/CERL, just before beginning the beta testing for GRASS 
  244. version 5.0, announced that it was formally withdrawing support to the 
  245. public.  USA/CERL announced agreements with several commercial GISs, and 
  246. agreed to provide encouragement to commercialization of GRASS.  One 
  247. result of this is GRASSLANDS, a commercial adaptation of much of GRASS 
  248. (URL: http://www.las.com/grassland).  Another result is a migration of 
  249. several former GRASS users to COTS (Commercial Off-The-Shelf) GISs.  
  250. However, GRASS' anonymous ftp site contains many enhancements to the 
  251. last full version 4.1 release of GRASS.  Many organizations still use 
  252. GRASS feeling that, despite the lack of a major release in five years, 
  253. GRASS still leads the pack in many areas.
  254.  
  255. An ad-hoc group (which includes myself) is exploring the continued, 
  256. reconfigured, yea perhaps increased, value of GRASS as a public test-bed 
  257. for GIS technology.  It is exploring shepherding the testing and release 
  258. of GRASS5.0, and exploring possibilities for a more distributed 
  259. management model for GRASS design and development.  The Linux model, 
  260. perhaps?  See Section 8 for more discussion on this topic.
  261.  
  262.  
  263.                     4. System Requirements for GRASS
  264.  
  265. Minimum requirements include:
  266.  
  267.   8 Mbytes of memory (of course, more is better..)
  268.   100 Mbytes of free disk space 
  269.       ~40 mb for executables,
  270.       ~40 mb for source code (which you can ignore if you merely
  271.              install the Linux binaries)
  272.       ~? for data (the veritable bottomless pit can be filled with data,
  273.              if you so choose)
  274.   GRASS runs on Linux kernel versions as old as 1.2.13 (see more 
  275.       information in the appendices for various specific binaries).
  276.   GRASS will run in text mode.  However, for displays of data, you will
  277.       need X.  If you are still running a version of X, it will probably
  278.       work with GRASS.
  279.  
  280. If you find any other hardware/OS requirements that should be mentioned, 
  281. please let me know!
  282.  
  283.  
  284.                         5. How to Acquire GRASS
  285.  
  286. GRASS used to be available on tape from various companies that signed 
  287. distribution agreements with USA/CERL.  These companies usually 
  288. supported specific platform environments, such as Masscomp, Sun, DEC, 
  289. Hewlett Packard, IBM (risc), PC (running some flavor of UNIX), and 
  290. Macintosh (running AUX).  Until recently, the flavors of UNIX working on 
  291. PCs generally were too low-end, or required too much added programming 
  292. support (e.g. programming drivers for high-end graphics boards like the 
  293. Number Nine boards of several years back) to be stable or complete.  
  294. However, with robust systems like Linux, this problem is history.  
  295. Similarly, few people acquire GRASS on tape, though a few do on CD-ROM.
  296.  
  297. The main way to acquire GRASS is to get it via anonymous ftp from 
  298. USA/CERL, or from mirrors cited at USA/CERL's website:
  299.  
  300. http://www.cecer.army.mil/grass
  301.  
  302. The ftp location is:
  303.  
  304. moon.cecer.army.mil
  305.  
  306. Appendix A describes how to acquire and install GRASS4.13 compiled 
  307. binaries from USA/CERL.  (See section 6 before installing GRASS!)
  308.  
  309. Appendix B describes how to acquire and install GRASS4.15 compiled 
  310. binaries from USA/CERL.  (See section 6 before installing GRASS!)
  311.  
  312. Appendix C describes how to acquire and compile GRASS4.14 and GRASS4.15 
  313. source code from USA/CERL.  (See section 6 before installing GRASS!)
  314.  
  315. Linux distribution developers!  Might you be interested in including 
  316. GRASS with your distribution?  Remember, GRASS source code is in the 
  317. completely unrestricted, copyright-free, public domain.  Your 
  318. distribution might be more valuable if it contained source code and/or 
  319. compiled binaries for GRASS.
  320.  
  321.  
  322.        6. How to Get GRASS Running on Your Linux-based Computer.
  323.  
  324. Appendices A, B, and C describe how to acquire and install GRASS.  
  325.  
  326. Before actually installing GRASS, you will have to decide where to put 
  327. three parts of the system:
  328.  
  329. 1.   The GRASS binaries, source code (if you install this), man pages, 
  330.      documentation, and the like.  Many folks put this stuff off 
  331.      /usr/local (e.g. /usr/local/grass/bin, /usr/local/grass/src).
  332. 2.   The GRASS executable and gmake utilities.  Some folks put this 
  333.      stuff off /usr/local (e.g. /usr/local/grass/grass4.1 and gmake4.1 
  334.      or /usr/local/bin/grass4.1 and gmake4.1).
  335. 3.   The GRASS data directories.  These can go anywhere, as they are 
  336.      specified in configuration files.
  337.  
  338. I have used a different scheme for a decade.  As GRASS code, binaries, 
  339. and the like (except data owned by users) are all owned by the special 
  340. user "grass" I don't want this stuff to get spread around my system.  I 
  341. create a new directory (usually on a separate file system) called /user, 
  342. and put all my GRASS stuff below this.  For example:
  343.  
  344. /user/grass4.1/bin   (I usually put grass4.1 and gmake4.1 here...)
  345.               /data
  346.               /dev  
  347.               /etc
  348.               /man
  349.               /src
  350.               /src.alpha
  351.               /src.contrib
  352.  
  353. I'm currently building a GRASS5.0 site, which then goes under:
  354.  
  355. /user/grass5/bin
  356.             /data   (some GRASS5 data formats have changed...)
  357.             /dev
  358.             /etc
  359.  
  360. The GRASS Installation Guide (described in Section 10 and in Appendix C) 
  361. is useful for getting GRASS running, even if you merely install the 
  362. binaries as described in Appendices A and B.  Please don't overlook one 
  363. important detail:  Most GRASS installations separate user from software 
  364. manager accounts and UNIX permissions.  You should create a "grass" (the 
  365. quotes here are for emphasis, and should not be part of the actual user 
  366. userid) user account on your workstation.  All installation and 
  367. configuration of grass should be done by user "grass".  Untar (or 
  368. un"cpio" files, run setup configuration utilities, run Gmakefiles (GRASS 
  369. versions of makefiles), and edit configuration files as user "grass."  
  370. Then only RARELY run GRASS as user "grass."  (I only run GRASS as user 
  371. "grass" when I am making archival data files in the PERMANENT mapset.)  
  372. This is done for much the same reason as not running user software as 
  373. user "root".  YOU CAN DO TOO MUCH DAMAGE AS USER "grass"!
  374.  
  375. Beyond the instructions in these appendices, and information in the 
  376. GRASS Installation Guide, you have some additional housekeeping to do, 
  377. such as developing a data base.  You can acquire sample data bases from 
  378. USA/CERL (directory pub/grass/grass4.1/data at anonymous "ftp 
  379. moon.cecer.army.mil"), start from scratch following instructions in the 
  380. GRASS Programmer's Manual (and, to a lesser degree, buried in the 
  381. functional descriptions of the GRASS User's Reference Manual).
  382.  
  383. I personally recommend that you start with the Spearfish and Global 
  384. databases available from USA/CERL:  
  385. 1.   The Spearfish data base covers two 7.5 minute topographic sheets in 
  386.      the northern Black Hills of South Dakota, USA.  It is in the 
  387.      Universal Transverse Mercator Projection.  It was originally 
  388.      created by Larry Batten (now of the Environmental Systems Research 
  389.      Institute's office in Boulder, Colorado) while he was with the U. 
  390.      S. Geological Survey's EROS Data Center in South Dakota.  The data 
  391.      base was enhanced by USA/CERL and cooperators.  It is an excellent, 
  392.      and well-used (there are many training materials available for 
  393.      GRASS with this data base) example of a county-scale GIS project in 
  394.      the UTM projection.
  395. 2.   The Global data base was developed by Bob Lozar of USA/CERL to 
  396.      prototype a latitude-longitude "projection" data base in GRASS for 
  397.      global environmental study and decision support. 
  398.  
  399. Starting with these two examples, you can build your own data bases in 
  400. UTM and latitude-longitude projections.  (Note, many people don't call 
  401. latitude-longitude a projection.  Others disagree, saying that anything 
  402. that transfers the Earth's surface to two dimensions is a projection..  
  403. We'll stay away from that debate here.  Needless to say, lat-lon is 
  404. treated as other projections are by the computer program.)
  405.  
  406.  
  407.     7. Web-based Support for GRASS (and for GIS Matters in General)                                    
  408.  
  409. Support for a public domain program?  No way, they say!  Actually, as a 
  410. user of Linux, you probably know better.
  411.  
  412. GRASS started by having a GRASS Information Office at USA/CERL.  There 
  413. were also very active users outside USA/CERL, who provided valuable user 
  414. support.  GRASS had annual users' meetings, listservers for users and 
  415. developers, etc.  Companies provided value added support services on a 
  416. contractual or fee basis.
  417.  
  418. Various people have developed valuable books and training materials on 
  419. GRASS.  Several universities used to conduct training courses in GRASS.  
  420. I don't know how many of these are continuing.  If training courses 
  421. interest you, try asking on the usenet newsgroup comp.infosystems.gis 
  422. (see below for more on this newsgroup).
  423.  
  424. Valuable "books" available on the Internet are noted in the References 
  425. (Section 10).
  426.  
  427. World Wide Web-based training materials, including training in GRASS, 
  428. are highlighted in the CyberInstute Short Course in GIS 
  429. (http://www.ngdc.noaa.gov/seg/tools/gis/referenc.html then scan down for 
  430. the link(s) to Web-based tutorials in GIS).
  431.  
  432. One of the better GRASS tutorials is Project Assist's - Intro to GRASS 
  433. at URL: http://www.geog.le.ac.uk/assist/grass
  434.  
  435. Other good sites:
  436.  
  437. http://www.csu.edu/~gishome/grass.htm  
  438.      Central Washington University was an early GRASS user and training
  439.      facility.
  440. http://cast.uark.edu/local/hunt
  441.      "Starting the hunt for mostly free spatial data" by Stephan Pollard
  442.      This is based at the Center for Advanced Spatial Technology of the
  443.      University of Arkansas, another early educator with GRASS.
  444. http://pasture.ecn.purdue.edu/~aggrass
  445.      Purdue University has several GRASS features
  446. http://www.cecer.army.mil/grass/userman/main-alpha.html
  447.      USA/CERL's online GRASS manual
  448. http://deathstar.rutgers.edu/grassinfo.html
  449.      Rutgers University's GRASS Information Center.
  450. http://www.regis/berkeley.edu
  451.      The REGIS project at the University of California at Berkeley
  452.      has a Linux version of GRASS available via ftp, and also has
  453.      a Web-based version of GRASS called GRASSLINKS.
  454.  
  455. After getting trained by the books and Web-based tutorials noted just 
  456. above, where do you turn to for specific advice???
  457.  
  458. Probably the best source of support these days is usenet newsgroup 
  459. comp.infosystems.gis  If you're not familiar with newsgroups, ask your 
  460. network administrator or Internet service provider.  
  461. comp.infosystems.gis contains modestly heavy traffic on such topics as
  462.  
  463. o  "how do I find data on this topic for this area?"
  464. o  "how do I convert these data for use in my Aardvark GIS?"
  465. o  "how do I get this function to work in my Aardvark GIS?"
  466. o  "which GIS can I use to solve my particular problem?"
  467.  
  468. GRASS used to be one of the top GISs discussed on this group.  Traffic 
  469. in GRASS is dropping slightly, as its user community matures.  However, 
  470. there are usually answers to your questions, if you post them.  You 
  471. might also do a "power search" on subject:GRASS [& your own subject of 
  472. interest here?] and newsgroup:comp.infosystems.gis in DejaNews 
  473. (http://www.dejanews.com) to see what might appear from the usenet 
  474. archives.
  475.  
  476.  
  477.                         8. The Future of GRASS?
  478.  
  479. Excellent question!  Several possible answers have been thrown out:
  480.  
  481. 1.   USA/CERL's announced intention is to use GRASS and COTS (commercial 
  482.      off-the-shelf software) for internal uses, to leave the GRASS 
  483.      public web- and ftp-site on its system indefinitely, and to sign 
  484.      cooperative research and development agreements with three 
  485.      companies: (1) the Environmental Sciences Research Institute 
  486.      (ESRI), (2) Intergraph, and (3) Logiciels et Applications 
  487.      Scientifiques (L.A.S.) Inc.  The first two agreements encouraged 
  488.      the incorporation of GRASS concepts into ESRI's and Intergraph's 
  489.      commercial GISs.  The third encouraged the adaptation of GRASS' 
  490.      concepts and code into a new commercial GIS by L.A.S.  L.A.S. also 
  491.      offered to encourage the continuation of a public domain GRASS, as 
  492.      a viable stand-alone system and as a potential source of new ideas 
  493.      and code for L.A.S.'s GRASSLAND.  One observer noted that the first 
  494.      two agreements might be akin to someone signing Linux over to 
  495.      Microsoft.  The same observer considers the experiment by/with 
  496.      L.A.S. to be an interesting possibility - an attempt to keep viable 
  497.      public domain and commercial versions of GRASS.
  498.  
  499. 2.   Some people believe that GRASS will wither without USA/CERL's 
  500.      central management.  Some believe that the Open GIS Consortium will 
  501.      successfully guide industry into an open architecture that will 
  502.      benefit all developers and users.  Others believe that OGIS' effort 
  503.      will lead to a cacophony of almost similar (but not quite 
  504.      interoperable) vendor-specific "standards," so the loss of GRASS as 
  505.      an open development platform will be felt sorely.
  506.  
  507. 3.   Some people believe that developments on some campuses and other 
  508.      sites may result in those institutes keeping GRASS for awhile, but 
  509.      in non-standard forms.  In short, GRASS will undergo "cell 
  510.      division" and lead to a cacophony of internally valuable, but 
  511.      externally unused, GISs.
  512.  
  513. 4.   Others hope that GRASS' previous management model under USA/CERL 
  514.      has left it ready for a new model.  Perhaps:
  515.      A.   Under a new mentor, such as NASA (which needs an open, 
  516.           powerful and scientific, GIS integrated with image processing 
  517.           system for its Earth Observing System).  
  518.      B.   Under a distributed management model... perhaps somewhat like 
  519.           Linux?
  520.      C.   Perhaps a bit of a hybrid?  Perhaps a Web-based effort could 
  521.           spawn a series of usenet discussion groups beginning with 
  522.           comp.infosystems.gis.grass, and evolving to:
  523.             comp.infosystems.gis.grass.academics
  524.             comp.infosystems.gis.grass.publicservice
  525.             comp.infosystems.gis.grass.commercialvalueadded
  526.             comp.infosystems.gis.grass.commercialdistributors
  527.             comp.infosystems.gis.grass.programming
  528.             comp.infosystems.gis.grass.users
  529.             comp.infosystems.gis.grass.centralcommittee
  530.      Clearly the topics are a bit tongue-in-cheek.  However, under this 
  531.      model, a Central Committee (including representation of academic, 
  532.      public service [government and nongovernmental organizations], 
  533.      commercial distributors and value added firms, programmers, and 
  534.      users) would guide overall grass development and testing.  The 
  535.      other special interest groups would serve their user communities.  
  536.      Academics, for example, would involve GIS and GRASS education, but 
  537.      would also try to pull GRASS development in its direction.  Value 
  538.      added commercial developers would serve their own interests, 
  539.      including trying to pull GRASS development in a direction that 
  540.      would help their businesses.  Users would help each other learn 
  541.      GRASS, develop workarounds to bugs, etc.
  542.  
  543. GRASS offers considerable potential for:
  544. o    Use as a scientific, as well as a traditional graphically oriented 
  545.      GIS.  Many GISs can make pretty maps.  Many of those GISs cannot 
  546.      easily perform certain scientific analytical functions as easily or 
  547.      powerfully as GRASS.  GRASS was designed and developed in response 
  548.      to a perceived need for scientific GIS, specifically for 
  549.      environmental analysis, and the environmental management/protection 
  550.      of public lands.  Incidentally, there is at least one Web-based 
  551.      GRASS version.  GRASSLINKS, developed at the University of 
  552.      California at Berkeley (http://www.regis/berkeley.edu/grasslinks), 
  553.      uses Web forms to submit commands to the server, which 
  554.      creates .gif-based display output, places the images into pages, 
  555.      and serves them up to the requester.  More on that later.
  556. o    Education.  GRASS is easier to teach and learn than some other 
  557.      GISs.  It is easier to modify (for those that want to learn GIS as 
  558.      computer science, rather than as "geography") than most other GISs 
  559.      that come without source code and treat the program as a magical 
  560.      black box.  And, of course, it is more affordable for the student 
  561.      of GIS than many other GISs.
  562. o    Applications research and development.  Many universities have used 
  563.      GRASS.  Its available source code, easy modification, easy 
  564.      scriptability, etc., give it distinct advantages over some more 
  565.      closed systems.
  566. o    Public Service.  GRASS has been used as a scientific GIS for many 
  567.      public service applications.  There is considerable value in 
  568.      continuing a robust GIS that can ba packaged with any UNIX 
  569.      workstation.  There is considerably more value if that UNIX 
  570.      workstation universe can include Linux (but is not constrained only 
  571.      to Linux).
  572. o    GIS research and development.  For example - do you want to 
  573.      experiment with a different data model?  Add it to GRASS!
  574. o    Commercialization. This document gives contact information for a 
  575.      commercial version of GRASS.  That company (and perhaps others?) 
  576.      may welcome your help in enhancing/supporting their product.
  577.  
  578. Who would be the Linus Torvelds equivalent in this management model?  
  579. Perhaps no single person.  I have been involved in GRASS for about a 
  580. decade, when GRASS was the only GIS that satisfied my needs in 
  581. scientific data management and GIS application.  Indeed, I had been a 
  582. dedicated avoider of the user-unfriendly UNIX environment until GRASS 
  583. forced me to learn it.  Several senior GRASS developers are active in 
  584. GRASS-related activities and would like to see the continued vitality of 
  585. an open GRASS.  It's likely that a reborn GRASS would attract a new crop 
  586. of friends.  Thus the concept of a "Central Committee" to collectively 
  587. lead GRASS' transition to a more open management and development style.
  588.  
  589. In short, the Linux community has an opportunity to take under its wing 
  590. a killer ap.  GRASS' current public domain status is slightly different 
  591. from Linux's.  However, that status could be discussed....
  592.  
  593. Comments would be appreciated!
  594.                                     
  595.       9. Copyright Notice, and Notice on Support of this Document
  596.  
  597. Copyright notice:  
  598.  
  599. This document was prepared by a Federal civil servant in support of his 
  600. work (but mostly on his own time).  It is NOT SUBJECT TO COPYRIGHT.
  601.  
  602. Notice on support of this document:  
  603.  
  604. I believe that the contents of this document are accurate.  However, if 
  605. you use this document, you accept the risks for any errors in this 
  606. document (and in any documents that are cited here).
  607.  
  608. I would greatly appreciate help in correcting any errors, or in 
  609. enhancing this document.  However, "my time is limited" in dealing with 
  610. this issue.  Any help that you can provide, that also helps me to more 
  611. efficiently respond to your interest, is more likely to be responded to 
  612. quickly.  A complaint might be appreciated, but a suggested improvement 
  613. that includes draft wording might be REALLY appreciated.
  614.  
  615.  
  616.                              10. References
  617.  
  618. For general reference material on GIS, try a very good technical 
  619. bookstore (in many cases these are campus bookstores at schools with 
  620. good GIS programs or top-notch technical or general bookstores - you 
  621. know that ones are near you..), or the following URL for the 
  622. CyberInstitute Short Course on Geographic Information Systems (convened 
  623. by myself):
  624.  
  625.   http://www.ngdc.noaa.gov/seg/tools/gis/referenc.html
  626.  
  627. Also check USA/CERL's GRASS Home Page:
  628.  
  629.   http://www.cecer.army.mil/grass
  630.  
  631. For a good collection of references on GRASS, try this procedure, to 
  632. load up on reference goodies from USA/CERL:
  633.  
  634.   ftp moon.cecer.army.mil
  635.   login: anonymous
  636.   password: your email address
  637.   cd pub/grass/grass4.1/outgoing
  638.   image
  639.   get grassman.ps.Z  (or grassman.txt.Z, or grassman.wp.Z)
  640.   cd ../documents/programmer/postscript
  641.   image
  642.   get progman.ps.Z    
  643.   cd ../../user/postscript
  644.   image
  645.   get refman.ps.Z
  646.   cd ../..
  647.   image
  648.   get installGuide.ps.Z
  649.   bye
  650.  
  651.   uncompress grassman.ps.Z
  652.   uncompress progman.ps.Z
  653.   uncompress refman.ps.Z
  654.   uncompress installGuide.ps.Z
  655.  
  656.   lpr *.ps   (or whatever is appropriate for your environment)
  657.  
  658. installGuide => The GRASS Installation Guide (you need this to
  659.                 compile GRASS source code)
  660. grassman     => The GRASS Beginner's Manual (intro to GRASS)
  661. refman       => The GRASS User's Reference Manual (function guide)
  662. progman      => The GRASS Programmer's Manual (and administrator's 
  663.                 guide - this is valuable for info about data formats,
  664.                 etc.)
  665.  
  666. Browse around the ftp site noted just above, and you may find more 
  667. stuff of interest.  Particularly in the pub/grass/grass4.1/documents 
  668. directory, there are tutorials on advanced GRASS functions such as 
  669. r.mapcalc (think of this as math applied to raster arrays), r.combine 
  670. and r.weight (think of this as how to combine spatial submodels into 
  671. one type of model), and others.
  672.  
  673. Incidentally, do you prefer German?  Try URL:
  674.  
  675.   http://www.laum.uni-hannover.de/iln/grass/handbuch
  676.  
  677. =====================================================================
  678.       Appendix A: Acquisition/Installation of GRASS4.13 Binaries
  679.  
  680. This appendix describes how to acquire and install Linux binaries for 
  681. GRASS4.13 (the 3rd update to the last full release of GRASS, version 
  682. 4.1).
  683.  
  684. How to get these files:
  685.  
  686.   ftp moon.cecer.army.mil
  687.   login: anonymous
  688.   password: your email address
  689.   cd pub/grass/grass4.1/release/binaries/linux
  690.   image
  691.   mget grassa*
  692.   bye
  693.  
  694. Installation instructions:
  695. ********************************************************************
  696. * GRASS 4.1 Update 3 for Linux
  697. *
  698. * This package contains GRASS programs only, *NO* GIS
  699. * data is included.  You can find example GRASS data at
  700. * moon.cecer.army.mil
  701. *
  702. * Compiled by: Andy Burnett - burnett@zorro.cecer.army.mil
  703. * compiled on: April 7, 1994
  704.  
  705. ********************************************************************
  706. System Requiremnts:
  707.  
  708.         35 MB disk space to hold the binary distribution
  709.  
  710. System library requirements:
  711.  
  712.         libc4.5.21 or greater
  713.  
  714.         libX.so.3.1.0 or greater
  715.  
  716. If you are running libraries that are older than these, this binary
  717. distribution will *NOT* run on your linux system.
  718. --------------------------------------------------------------------------
  719. Files in this release:
  720.  
  721.         README_4.1.3            what you are currently reading
  722.         ginstall                simple grass installation script
  723.         grassaa --------|
  724.         grassab         |
  725.         grassac         |
  726.         grassad         |
  727.         grassae         |--     the linux GRASS binaries
  728.         grassaf         |
  729.         grassag         |
  730.         grassah         |
  731.         grassai         |
  732.         grassaj         |
  733.         grassak --------|
  734.  
  735. INSTALLATION:
  736.  
  737.         To install this binary distribution of grass for linux, you 
  738. can simply run the ginstall script or you can unpack the files by 
  739. hand.  I recommend using the ginstall script ... it's very simple and 
  740. should be bullet proof.  To run the ginstall script, you will need 
  741. gawk (gnu awk) installed on your system and it needs to be in your 
  742. PATH.
  743.  
  744. If, however, you want to do things by hand, here's what you need to 
  745. do:
  746.  
  747. o  make the destination directory (/usr/grass, /usr/local/grass,
  748.    whatever)  This will become your GISBASE for grass.
  749.  
  750. ********************* LOOK HERE **************************************
  751. from here on, replace $GISBASE with the name of the directory you just
  752. created
  753. ********************* LOOK HERE **************************************
  754.  
  755. o  cat grassa? | gzip -d | (cd $GISBASE; tar xvf -)
  756.    This will unpack all the grass binaries into the $GISBASE directory
  757. o  copy $GISBASE/etc/moncap.sample to $GISBASE/etc/monitorcap and edit
  758.    it.
  759. o  change all occurrences of GBASE in that file to $GISBASE
  760. o  copy $GISBASE/etc/grass4.1 into a public directory (I suggest
  761.    /usr/bin)
  762. o  edit the copy you just made: 
  763.    change all occurrences of GBASE to $GISBASE
  764.  
  765. ====================================================================
  766.      Appendix B: Acquisition/Installation of GRASS4.1.5 Binaries
  767.  
  768. This appendix describes how to acquire and install Linux binaries for 
  769. GRASS4.15 (the 5th and last update to the last full release of GRASS, 
  770. version 4.1).
  771.  
  772. How to get these files:
  773.  
  774. ftp moon.cecer.army.mil
  775. login: anonymous
  776. password: your email address
  777. cd pub/grass/grass4.1/release/binaries/linux
  778. image
  779. mget linuxa*
  780. bye
  781.  
  782. Installation instructions:
  783. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
  784. Files in this release:
  785.         README_4.1.5            what you are currently reading
  786.         install.sh                simple grass installation script
  787.         linuxaa --------|
  788.         linuxab         |
  789.         linuxac         |
  790.         linuxad         |
  791.         linuxae         |--   the linux GRASS binaries, version 4.1.5
  792.         linuxaf         |
  793.         linuxag         |
  794.         linuxah         |
  795.         linuxai --------|
  796.  
  797. * * * * * * * * * * *** * * * * * * * * * * * * * * * * * * * * * * * 
  798.  
  799. The GRASS4.15 for Linux was compiled in my Linux box with the 
  800. following configuration:
  801.         Slackware 3.0
  802.         kernel 1.2.13
  803.         gcc 2.7.0
  804.         libc 5.0.9
  805.         flex 3.5.2
  806.  
  807. ~ ~ ~ ~ ~ ~ ~
  808. ~ IMPORTANT: ~
  809. ~ ~ ~ ~ ~ ~ ~ 
  810. THE LINUX GRASS 4.15 BINARIES ONLY WORK ON ELF-LINUX. THE BINARIES MAY 
  811. NOT WORK WITH EARLY VERSION OF KERNEL AND/OR GCC AND FLEX.
  812.  
  813. The binaries was tared and gziped, then split into 9 (close to 1.3 MB 
  814. - 1200 x 1K block) files named from linuxg.aa to linuxg.ai.
  815.  
  816. You should ftp all the linuxg.a* in binary mode and also get this 
  817. readme file and an installation script - install.sh.  Please put all 
  818. of these files in the same directory - source directory.
  819.  
  820. At the source directory under the UNIX prompt, type
  821.         sh ./install.sh full_path_to_the_destination_directory
  822.  
  823. and it should automatically unzip and untar the linuxg.a* files to the 
  824. destination directory and also edit several site-specific files.  The 
  825. total space your need is about 26 MB.
  826.  
  827. At the destination directory, your can find the grass4.1 script.  It 
  828. should have been modified to reflect your installation directory.  
  829. Now, either move/copy the grass4.1 file to one of your PATH or use the 
  830. link command as below:
  831.         cd /usr/local/bin
  832.         ln -s destination_directory/etc/grass4.1 grass4.1
  833.  
  834. Now, your are ready to start GRASS by typing grass4.1 and you should 
  835. know how to run GRASS afterward.
  836.  
  837. There is a readme directory in the destination_directory/etc 
  838. directory.  This directory has several readme files that come with 
  839. some incoming commands.  You can find all the compiled commands of 
  840. this binaries in the commands.readme file.  I can't guarantee that all 
  841. of them work but I have tested lots of them.  If you find some 
  842. commands that don't work, please post a message on the grass user 
  843. group and we can solve it all together.
  844.  
  845. Yung-Tsung Kang,
  846. Michigan State University
  847.  
  848. =====================================================================
  849.        Appendix C: Acquisition/Compilation of GRASS Source Code
  850.  
  851. The GRASS binaries tend to work.  Why would anyone want to mess with 
  852. the source code?
  853.  
  854. Let's try to answer this with another question: "Why can't I get the 
  855. source code to my GIS, so I can see how it works, and maybe fix some 
  856. things to work the way I like them?"  (You probably know the answers 
  857. to this question, at least for many commercial software packages.)
  858.  
  859. If you want to 
  860. 1.   Add any of the numerous existing alpha and contributed GRASS 
  861.      functions, 
  862. 2.   Understand how a function works (did any programming shortcuts or 
  863.      performance enhancements affect the accuracy of a function?  Can 
  864.      I improve the performance of a function?) 
  865. 3.   Revise or enhance the code (if you do this, please see Appendix 
  866.      D!), 
  867. 4.   Try compiling several tens of megabytes of source code, 
  868. this appendix is for you.  Also check Appendix E.
  869.  
  870. First, you need to acquire the source code, and the GRASS Installation 
  871. Guide.  You may also want to get the GRASS Programmer's Manual and 
  872. User's Reference Manual.  To do this:
  873.  
  874. ftp moon.cecer.army.mil
  875. login: anonymous
  876. password: your email address
  877. cd pub/grass/grass4.1/release/source
  878. get README.4
  879. get README.5
  880. image
  881. mget s4* (or s5*, your choice)
  882. cd ../../documents
  883. get installGuide.ps.Z
  884. cd /manuals/programmer/postscript
  885. get progman.ps.Z
  886. cd ../../user/postscript
  887. get refman.ps.Z
  888. bye
  889.  
  890. Don't forget this site.  There are several tutorials on some of GRASS' 
  891. more advanced programs in the pub/grass/grass4.1/document directory.  
  892. There are two options for source code (I'm only discussing GRASS 
  893. version 4.14 here, though version 4.15 is also available)  The 
  894. pub/grass/outgoing directory contains many contributed functions (and 
  895. many other candidates for enhancing your system).
  896.  
  897. Follow the README.4 file for installing GRASS version 4.14 (which is 
  898. sometimes called version 4.1.4) source code.  Follow the README.5 file 
  899. for installing GRASS version 4.15 (which is sometimes called version 
  900. 4.1.5) source code.
  901.  
  902. After installing the source code, uncompress and print 
  903. installGuide.ps.Z (or the troff version, if you prefer that and got it 
  904. from a neighboring directory).  You might also want to uncompress and 
  905. print refman.ps.Z and progman.ps.Z at the same time.  Note that 
  906. progman.ps.Z is called the programmer's manual, but also contains 
  907. valuable information about data formats and directory structures.  
  908. Advanced users may also want to know the GRASS system utilities, even 
  909. if they won't be calling them in code.
  910.  
  911. Now, use the GRASS Installation Guide (from installGuide.ps.Z) to 
  912. guide yourself through the installation.  The thickness of this 
  913. document may at first be intimidating.  However, if you installed 
  914. Linux yourself, you should be ready to tackle a GRASS installation.  
  915. Don't be surprised if a function or two does not compile on your 
  916. system.  I have a couple of uncompiled functions on my own Linux 
  917. system.  Fortunately, these are functions that I don't use...  Some 
  918. day I'll get back to them, fix them, and compile them!?
  919.  
  920. -----------------------------------------
  921.  
  922. The rest of the compilation should just take some time.  If you have 
  923. already installed GRASS binaries, you should back up your system (or 
  924. at least get the working binaries out of the way of your 
  925. compilation!).
  926.  
  927. Good Luck!  And be secure in the likelihood that you can use the 
  928. compiled binaries if you bail out of a full compilation of the source 
  929. code.
  930.  
  931. =====================================================================
  932. Appendix D: If you plan to enhance any part of GRASS, read this first!
  933.  
  934. GRASS has been developed for over a decade as completely unrestricted 
  935. public domain source code and executables.  Though there was initial 
  936. resistance to the existence of such robust software in the public 
  937. domain, many competitors learned to take advantage of GRASS.  It has 
  938. reputedly been the intellectual stimulus for several enhancements to 
  939. other GISs.  Several companies conducted business by installing and 
  940. customizing public domain GRASS for customers, and by providing other 
  941. value-added services such as data base development.  
  942.  
  943. As USA/CERL no longer supports the public version of GRASS, users are 
  944. free to use what currently exists.  They're also currently completely 
  945. on their own.  At least where the public domain version is concerned.
  946.  
  947. There is a commercial version of GRASS, adapted from the public domain 
  948. version by Logiciels et Applications Scientifiques (L.A.S) Inc. of 
  949. Montreal (URL: http://www.las.com/grassland).  In a recent check, LAS 
  950. sold its GRASSLAND for Sun, Linux and Windows NT.  LAS is trying to 
  951. encourage the continuation of a robust public domain Linux, partly as 
  952. a source of new ideas and code for their own developments.
  953.  
  954.     Appendix E: Example Linux versions of some critical GRASS files.
  955.  
  956. This appendix is the home of Linux-specific examples of selected GRASS 
  957. configuration files.  Currently, only several examples of a single file 
  958. are offered.  However, this is the most important file for 
  959. configuration!  Later, examples of database configuration files (e.g. 
  960. DEFAULT_WIND) and other files may appear.
  961.  
  962. In the Installation Guide (pp. 10-11) you will see mention of the 
  963. <header> file in directory $GIS/src/CMD/header (where $GIS is the 
  964. directory in which you place GRASS - some folks put this in /usr/local - 
  965. I put everything in a GRASS' own filesystem/directory /user/grass4.1).  
  966. The installation guide favors Sun systems, as these were the development 
  967. environment for GRASS4.  (In case you cared, Masscomp workstations were 
  968. earlier development environments.)  Below are examples of this <header> 
  969. file for linux (which you might want to name linux in your 
  970. $GIS/src/CMD/header directory.  You may want to refer to this section 
  971. when running the setup ($GIS/src/CMD/utils/setup) command.
  972.  
  973. -----------------------------------------------------------------
  974.  
  975. One version:
  976.  
  977. CC                  = gcc
  978. ARCH                =
  979.  
  980. GISBASE             = /user/grass4.1
  981. UNIX_BIN            = /user/grass4.1/bin
  982.  
  983. DEFAULT_DATABASE    = /user/grass4.1/data
  984. DEFAULT_LOCATION    = china
  985.  
  986. COMPILE_FLAGS       = -O2
  987. LDFLAGS             = -s
  988.  
  989. XCFLAGS             = -D_NO_PROTO -DXM_1_1_BC
  990. XLDFLAGS            =
  991. XINCPATH            =
  992. XMINCPATH           =
  993. XLIBPATH            =
  994. XTLIBPATH           = -L/usr/lib
  995. XMLIBPATH           = -L/usr/lib
  996. XLIB                = -lX11
  997. XTLIB               = -lXt
  998. XMLIB               = -lXm
  999. XEXTRALIBS          =
  1000.  
  1001. TERMLIB             =
  1002. CURSES              = -lcurses $(TERMLIB)
  1003. MATHLIB             = -lm
  1004.  
  1005. #                   LIBRULE = ar ruv $@ $?
  1006. #                   LIBRULE = ar ruv $@ $?; ranlib $@
  1007. #                   LIBRULE = ar ruv $@ $?; ar ts $@
  1008. #                   LIBRULE = ar rc $@ `lorder $(OBJ) | tsort`
  1009. LIBRULE             = ar ruv $@ $?
  1010.  
  1011. USE_TERMIO          = -DUSE_TERMIO
  1012. USE_MTIO            = -DUSE_MTIO
  1013. USE_FTIME           = -DUSE_FTIME
  1014. DIGITFLAGS          = -DUSE_SETREUID -DUSE_SETPRIORITY
  1015. VECTLIBFLAGS        =
  1016. GETHOSTNAME         = -DGETHOSTNAME_OK
  1017.  
  1018. ---------------------------------------------------------------
  1019. Another version:
  1020.  
  1021. #CC                  = gcc 
  1022. #CC                  = gcc -ggdb -traditional 
  1023. CC                  = gcc -traditional
  1024. #CC                  = gcc -static
  1025.  
  1026. ARCH                = linux
  1027.  
  1028. GISBASE             = /usr2/local/grass/grass4.1
  1029. UNIX_BIN            = /usr/local/bin
  1030.  
  1031. DEFAULT_DATABASE    = /usr2/local/grass
  1032. DEFAULT_LOCATION    = grass4.1
  1033.  
  1034. COMPILE_FLAGS       =
  1035. #COMPILE_FLAGS       = -O 
  1036. LDFLAGS             = -s
  1037.  
  1038. XCFLAGS             = -D_NO_PROTO
  1039. XLDFLAGS            =
  1040. XINCPATH            = -I$GISBASE/xgrass
  1041. #XINCPATH            = 
  1042. XMINCPATH           =
  1043. XLIBPATH            = -L/usr/lib
  1044. XTLIBPATH           = -L/usr/lib
  1045. XMLIBPATH           = -L/usr/lib
  1046. XLIB                = -lX11
  1047. XTLIB               = -lXt
  1048. XMLIB               = -lXm
  1049. XEXTRALIBS          =
  1050.  
  1051. TERMLIB             = 
  1052. CURSES              = -lcurses $(TERMLIB)
  1053. MATHLIB             = -lm
  1054.  
  1055. #                   LIBRULE = ar ruv $@ $?
  1056. #                   LIBRULE = ar ruv $@ $?; ranlib $@
  1057. #                   LIBRULE = ar ruv $@ $?; ar ts $@
  1058. #                   LIBRULE = ar rc $@ `lorder $(OBJ) | tsort`
  1059. LIBRULE             = ar ruv $@ $?; ranlib $@
  1060.  
  1061. USE_TERMIO          = -DUSE_TERMIO
  1062. USE_MTIO            = -DUSE_MTIO
  1063. USE_FTIME           = -DUSE_FTIME
  1064. DIGITFLAGS          = -DUSE_SETREUID -DUSE_SETPRIORITY
  1065. VECTLIBFLAGS        =
  1066. GETHOSTNAME         = -DGETHOSTNAME_OK
  1067.  
  1068. ------------------------------------------------------------------
  1069.  
  1070. Another version:
  1071.  
  1072. #CC                  = gcc -traditional -ggdb
  1073. CC                  = gcc -traditional -m486
  1074. #CC                  = gcc
  1075. ARCH                = linux
  1076.  
  1077. GISBASE             = /usr/local/grass/grass4.1
  1078. UNIX_BIN            = /usr/local/bin
  1079.  
  1080. DEFAULT_DATABASE    = /usr/local/grass
  1081. DEFAULT_LOCATION    = grass4.1
  1082.  
  1083. COMPILE_FLAGS       = -O2
  1084. LDFLAGS             = -s
  1085.  
  1086. XCFLAGS             = -D_NO_PROTO -DXM_1_1_BC
  1087. XLDFLAGS            = 
  1088. XINCPATH            =
  1089. XMINCPATH           =
  1090. XLIBPATH            = -L/usr/lib
  1091. XTLIBPATH           = -L/usr/lib
  1092. XMLIBPATH           = -L/usr/lib
  1093. XLIB                = -lX11
  1094. XTLIB               = -lXt
  1095. XMLIB               = -lXm
  1096. XEXTRALIBS          = -lXmu
  1097.  
  1098. TERMLIB             = 
  1099. CURSES              = -lcurses $(TERMLIB) 
  1100. MATHLIB             = -lm
  1101.  
  1102. #                   LIBRULE = ar ruv $@ $?
  1103. #                   LIBRULE = ar ruv $@ $?; ranlib $@
  1104. #                   LIBRULE = ar ruv $@ $?; ar ts $@
  1105. #                   LIBRULE = ar rc $@ `lorder $(OBJ) | tsort`
  1106. LIBRULE             = ar ruv $@ $?; ranlib $@
  1107.  
  1108. #USE_TERMIO          = #-DUSE_TERMIO
  1109. USE_TERMIO          = -DUSE_TERMIO
  1110. USE_MTIO            = -DUSE_MTIO
  1111. USE_FTIME           = -DUSE_FTIME
  1112. DIGITFLAGS          = -DUSE_SETREUID -DUSE_SETPRIORITY
  1113. VECTLIBFLAGS        =
  1114. GETHOSTNAME         = -DGETHOSTNAME_OK
  1115.  
  1116. ----------------------------------------------------------------------
  1117.  
  1118. Yet another version:
  1119.  
  1120. CC                  = cc
  1121. ARCH                = linux
  1122.  
  1123. GISBASE             = /usr/local/grass4.15/linux
  1124. UNIX_BIN            = /usr/local/grass4.15/linux
  1125.  
  1126. DEFAULT_DATABASE    = /data/grassdata
  1127. DEFAULT_LOCATION    = 
  1128.  
  1129. # -fwritable-strings - for ps.map only
  1130. #COMPILE_FLAGS       = -O -m486 -fwritable-strings
  1131. COMPILE_FLAGS       = -O -m486
  1132. LDFLAGS             = -s
  1133.  
  1134. XCFLAGS             = -D_NO_PROTO
  1135. XLDFLAGS            =
  1136. XINCPATH            =
  1137. XMINCPATH           =
  1138. XLIBPATH            = -L/usr/X11R6/lib
  1139. XTLIBPATH           = -L/usr/lib
  1140. XMLIBPATH           = -L/usr/lib
  1141. XLIB                = -lX11
  1142. XTLIB               = -lXt
  1143. XMLIB               = -lXm
  1144. XEXTRALIBS          =
  1145.  
  1146. TERMLIB             =
  1147. CURSES              = -lcurses $(TERMLIB)
  1148. MATHLIB             = -lm
  1149.  
  1150. #                   LIBRULE = ar ruv $@ $?
  1151. #                   LIBRULE = ar ruv $@ $?; ranlib $@
  1152. #                   LIBRULE = ar ruv $@ $?; ar ts $@
  1153. #                   LIBRULE = ar rc $@ `lorder $(OBJ) | tsort`
  1154. LIBRULE             = ar ruv $@ $?
  1155.  
  1156. USE_TERMIO          = -DUSE_TERMIO
  1157. USE_MTIO            = -DUSE_MTIO
  1158. USE_FTIME           = -DUSE_FTIME
  1159. DIGITFLAGS          = -DUSE_SETREUID -DUSE_SETPRIORITY
  1160. VECTLIBFLAGS        = -DPORTABLE_3
  1161. GETHOSTNAME         = -DGETHOSTNAME_OK
  1162.  
  1163.  
  1164. Intimidating?  It probably shouldn't be if you've configured X Windows 
  1165. on your Linux box.  These examples should give you patterns to look 
  1166. for when running the setup utility in GRASS (described in the 
  1167. Installation Guide).
  1168.  
  1169.