|
@@ -1,169 +0,0 @@
|
|
|
-{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
|
|
|
-{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fnil\fcharset77 Monaco;
|
|
|
-\f3\fswiss\fcharset77 Helvetica-Oblique;}
|
|
|
-{\colortbl;\red255\green255\blue255;}
|
|
|
-\margl1440\margr1440\vieww11220\viewh11220\viewkind0
|
|
|
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\qc\pardirnatural
|
|
|
-
|
|
|
-\f0\b\fs36 \cf0 Building Addon Modules for\
|
|
|
-Mac OS X GRASS.app\
|
|
|
-
|
|
|
-\f1\b0\fs32 (without GEM)\
|
|
|
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
|
|
|
-
|
|
|
-\fs28 \cf0 \
|
|
|
-GEM is a nice idea, but there are a few issues. Not many modules are setup for GEM (there are a couple in the new SVN repository, and some by the GEM author). It puts the resulting files in the GRASS binary folder and alters the GUI menus in the application package, and this is Not a Good Thing to do with Mac OS X applications.\
|
|
|
-\
|
|
|
-The method is similar to GEM in that it uses a minimal template of the GRASS source and uses the needed headers and libraries from GRASS.app. But there is less setup needed (for developers), and you don't need admin privileges to install and use the module, except in some more complex cases. Though a user does need to do a little setup, unlike with GEM.\
|
|
|
-\
|
|
|
-It's a bit rough right now. It doesn't have a module registry like GEM. It doesn't add modules to the GUI menu, though the menu is dynamically maintained by the GRASS.app startup.\
|
|
|
-\
|
|
|
-I haven't tried it with a module that also includes its own library.\
|
|
|
-\
|
|
|
-
|
|
|
-\f0\b Note:
|
|
|
-\f1\b0 if there is no makefile in the module source, it's probably just a script that you can simply copy to the bin folder (see \ul Use\ulnone section below).\
|
|
|
-\
|
|
|
-\
|
|
|
-
|
|
|
-\f0\b Requirements\
|
|
|
-
|
|
|
-\f1\b0 \
|
|
|
-- Xcode - at least version 2.3 (scripts shouldn't need this).\
|
|
|
-\
|
|
|
-- GRASS.app (you don't need the full GRASS source).\
|
|
|
-\
|
|
|
-- Module source. It should be compatible with the GRASS.app version you use.\
|
|
|
-\
|
|
|
-- This modbuild template.\
|
|
|
-\
|
|
|
-\
|
|
|
-
|
|
|
-\f0\b Setup\
|
|
|
-
|
|
|
-\f1\b0 \
|
|
|
-
|
|
|
-\f2\fs24 $VERSION
|
|
|
-\f1\fs28 is the major.minor GRASS version.\
|
|
|
-\
|
|
|
-- copy the modbuild folder from
|
|
|
-\f2\fs24 /Library/GRASS/$VERSION/
|
|
|
-\f1\fs28 to a location you have read/write access to. You could use your home
|
|
|
-\f2\fs24 /Library/GRASS/$VERSION/
|
|
|
-\f1\fs28 , for example.\
|
|
|
-\
|
|
|
-- Unpack the module source and put that source folder in the '
|
|
|
-\f2\fs24 module
|
|
|
-\f1\fs28 ' folder in the modbuild folder. If the module source is setup for GEM, you'll have to dig into the src/[section] subfolder to find the module's source folder (ie src/raster/module.source.folder). You should end up with your template folder like so:\
|
|
|
-\
|
|
|
-
|
|
|
-\f2\fs24 modbuild\
|
|
|
- dist.some-platform-version\
|
|
|
- include\
|
|
|
- License.rtf\
|
|
|
- module\
|
|
|
- module_source_folder\
|
|
|
- description.html (this might have the module name instead)\
|
|
|
- main.c\
|
|
|
- makefile\
|
|
|
- (other_src.c)\
|
|
|
- (other_header.h)\
|
|
|
- ReadMe.rtf\
|
|
|
- tools\
|
|
|
-
|
|
|
-\f1\fs28 \
|
|
|
-
|
|
|
-\f0\b NOTE:
|
|
|
-\f1\b0 make sure that there are no spaces in the path to the modbuild folder.\
|
|
|
-\
|
|
|
-- If the module uses extra data file(s) that are stored in the
|
|
|
-\f2\fs24 etc/
|
|
|
-\f1\fs28 folder (v.in.dwg does this), make sure it uses the new
|
|
|
-\f2\fs24 G_find_etc()
|
|
|
-\f1\fs28 function (for C modules) or the
|
|
|
-\f2\fs24 g.findetc
|
|
|
-\f1\fs28 module (for script modules) instead of the hardwired
|
|
|
-\f2\fs24 $GISBASE/etc/
|
|
|
-\f1\fs28 . This will mean either asking the author to make this change or attempting it yourself. See the developer documentation for usage of G_find_etc(), and the GRASS Help for usage of g.findetc.\
|
|
|
-\
|
|
|
-- In a Terminal,
|
|
|
-\f2\fs24 cd
|
|
|
-\f1\fs28 to the module source folder, then:\
|
|
|
-\
|
|
|
-
|
|
|
-\f2\fs24 $ make GRASS_HOME='/path/to/grass/modbuild' GRASS_APP='/path/to/GRASS.app'\
|
|
|
-
|
|
|
-\f1\fs28 \
|
|
|
-The modbuild path is the path to the
|
|
|
-\f2\fs24 modbuild
|
|
|
-\f1\fs28 folder, not the module source folder. Make sure to include the correct GRASS.app name in the GRASS_APP path (ie GRASS-6.3.app).\
|
|
|
-\
|
|
|
-\
|
|
|
-
|
|
|
-\f0\b Use
|
|
|
-\f1\b0 \
|
|
|
-\
|
|
|
-The module files will be in the
|
|
|
-\f2\fs24 dist
|
|
|
-\f1\fs28 folder in this template. A C source module will be in
|
|
|
-\f2\fs24 bin
|
|
|
-\f1\fs28 , script modules will be in
|
|
|
-\f2\fs24 scripts
|
|
|
-\f1\fs28 , and documentation will be in
|
|
|
-\f2\fs24 docs/html
|
|
|
-\f1\fs28 . GRASS.app has a couple default locations for addon modules that use the same configuration as the GRASS_ADDON_PATH environment variable:
|
|
|
-\f2\fs24 /Library/GRASS/$VERSION/Modules
|
|
|
-\f1\fs28 and
|
|
|
-\f2\fs24 ~/Library/GRASS/$VERSION/Modules
|
|
|
-\f1\fs28 . The version is the Major.minor GRASS version. Modules that should be available to all users should be installed in
|
|
|
-\f2\fs24 /Library
|
|
|
-\f1\fs28 (requires admin privileges), and any modules in
|
|
|
-\f2\fs24 ~/Library
|
|
|
-\f1\fs28 will only be available to the user that installs them. The user GRASS folder will be created the first time GRASS is run.\
|
|
|
-\
|
|
|
-
|
|
|
-\f3\i Installation is not automatic.
|
|
|
-\f1\i0 You must manually copy the files because the install targets in the GRASS make system only exist in the GRASS source.\
|
|
|
-\
|
|
|
-- Both
|
|
|
-\f0\b scripts
|
|
|
-\f1\b0 and
|
|
|
-\f0\b binary
|
|
|
-\f1\b0 executables can be run from the same location, so install them in the
|
|
|
-\f2\fs24 bin/
|
|
|
-\f1\fs28 folder.\
|
|
|
-- Any
|
|
|
-\f0\b libraries
|
|
|
-\f1\b0 should go in the
|
|
|
-\f2\fs24 lib/
|
|
|
-\f1\fs28 folder.\
|
|
|
--
|
|
|
-\f0\b Documentation
|
|
|
-\f1\b0 goes in the
|
|
|
-\f2\fs24 docs/html/
|
|
|
-\f1\fs28 folder.\
|
|
|
--
|
|
|
-\f0\b Data
|
|
|
-\f1\b0 files should go into
|
|
|
-\f2\fs24 etc/
|
|
|
-\f1\fs28 .\
|
|
|
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
|
|
-\cf0 \
|
|
|
-\
|
|
|
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
|
|
-
|
|
|
-\fs24 \cf0 \'a9 2006-2007 by the GRASS Development Team\
|
|
|
-This program is free software under the GNU General Public License (>=v2).\
|
|
|
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
|
|
-
|
|
|
-\fs28 \cf0 \
|
|
|
-\
|
|
|
-- William Kyngesburye\
|
|
|
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
|
|
-{\field{\*\fldinst{HYPERLINK "mailto:kyngchaos@kyngchaos.com"}}{\fldrslt \cf0 kyngchaos@kyngchaos.com}}
|
|
|
-\fs24 \
|
|
|
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
|
|
-{\field{\*\fldinst{HYPERLINK "http://www.kyngchaos.com"}}{\fldrslt
|
|
|
-\fs28 \cf0 http://www.kyngchaos.com/}}
|
|
|
-\fs28 \
|
|
|
-}
|