aboutsummaryrefslogtreecommitdiff
path: root/local/src/README
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /local/src/README
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'local/src/README')
-rw-r--r--local/src/README75
1 files changed, 75 insertions, 0 deletions
diff --git a/local/src/README b/local/src/README
new file mode 100644
index 00000000..7ca0cb0f
--- /dev/null
+++ b/local/src/README
@@ -0,0 +1,75 @@
+LOCAL -- Locally added tasks and packages.
+
+ The LOCAL package is a place to put locally added tasks and packages
+without modifying the standard IRAF system (and thereby complicating future
+updates and so on). The LOCAL provided with the distributed system is a
+template package provided to make it as easy as possible for user sites to
+set up their own custom LOCAL packages.
+
+To create a custom LOCAL package:
+
+ [1] Copy the template package directory tree (iraf$local) to a new
+ directory somewhere outside the iraf directories. DO NOT MODIFY
+ THE TEMPLATE LOCAL, CREATE AN EXTERNAL COPY AND MODIFY THAT INSTEAD.
+ This is necessary to ensure that your custom local is unaffected by
+ updates to the core IRAF system.
+
+ [2] Edit the pathame of local in the "reset local = ..." statement in the
+ IRAF file hlib$extern.pkg, replacing the "iraf$local/" by the host
+ pathname of the root directory of your custom LOCAL. Be sure to
+ include the trailing / on UNIX systems, or escape $ and [ on VMS
+ systems. All references to LOCAL will now refer to your custom
+ version of LOCAL, rather than to the template version provided with
+ the distributed system.
+
+To add a new task to LOCAL:
+
+ [1] Add the source and parameter file if any to this directory, e.g.,
+ mytask.x, mytask.par.
+
+ [2] Add the name of the new task to x_local.x. Any number of tasks may
+ be added to the package in this way.
+
+ task pavg = t_pavg,
+ mytask = t_mytask
+
+ [3] Add the manual page for the task to the `doc' subdirectory, e.g.,
+ file doc/mytask.hlp. Add entries for the new task to local.hd
+ (so that HELP can find the new manual page) and local.men (so that
+ the task will be listed when `help local' is entered). Load the
+ softools package and run `mkhelpdb' to recompile the help database
+ else HELP will not know about the new manual page.
+
+ cl> mkhelpdb local$lib/root.hd local$lib/helpdb.mip
+
+ [4] Add an entry for all source files to the library member list in
+ the mkpkg file in this directory. List any include files referenced
+ in the source file to the right of the source file name.
+
+ libpkg.a:
+ pavg.x <imhdr.h>
+ mytask.x
+ ;
+
+ [5] Add an entry for the new task in local.cl, so that the CL will
+ know about the new task when the LOCAL package is loaded. Prefix
+ the task name with a dollar sign ($mytask) if the new task does
+ not have an associated parameter (.par) file.
+
+ task pavg,
+ mytask = "local$src/x_local.e"
+
+ [6] Enter the command `mkpkg -p local' to compile and link the new package
+ executable `x_local.e'. After testing the new task, install the new
+ package executable in bin$ with the command `mkpkg -p local install'.
+
+You should now be able to load the LOCAL package in the CL, and run the new
+task, or get help for any of the LOCAL package tasks.
+
+Any number of tasks may be added to your custom LOCAL package in this fashion.
+Host programs and IMFORT programs may also be added, modifying the task
+statements and mkpkg compile/link instructions appropriately (if used).
+Subpackages should be used to group like tasks if the LOCAL grows large
+enough. For more information on program development in IRAF, refer to the
+SOFTOOLS package help pages for xc, mkpkg, etc., the SPP/VOS technical
+documentation, the IMFORT manual, and so on.