aboutsummaryrefslogtreecommitdiff
path: root/unix/README
blob: dcd73b5bef06bb42bd2faec16d7738c653be985f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
PC-IRAF HSI -- September 2001

The old (1985) README for the Unix HSI is preserved unchanged below.
We are not going to attempt to include updated, comprehensive documentation
here now, but a few pointers follow.  See the Unix/IRAF or PC-IRAF system
manager's guide for more complete documentation.

    o	To build the HSI on first sets the architecture (via "mkpkg <arch>"
	in the iraf root), then types "reboot" in this directory.  The
	first time this is done on a platform there will be no system
	libraries (libsys.a etc.) and the HSI will be compled with NOVOS
	set.  This builds the HSI with certain routines stubbed-out.  It
	is functional enough after a sucessful bootstrap to compile the
	iraf system libraries ("mkpkg syslibs" at the iraf root).  One
	can then do another "reboot" to re-bootstrap the HSI.  It will
	be built this time using the iraf system libraries and will be
	fully functional, and ready to sysgen the full iraf system.

    o   The PC-IRAF HSI currently uses F2C for Fortran (SPP) to C
	translation.  Although F2C is available as an option on many
	platforms, we integrate it into the HSI to avoid versioning
	problems and to avoid an external dependency.  The version of F2C
	used is maintained in /local/src/f2c on Lepus.  The README in that
	directory contains instructions for building f2c for a platform.
	Once the runtime files have been generated they are copied to the
	HBIN for the target platform.


===============================================================================
UNIX (a.k.a. host$) -- IRAF/UNIX System Interface (13Dec85 Dct)

    These directories contain those portions of the IRAF software which are
machine or host operating system dependent.  The major directories are as
follows:

	as		all assembler files (most of these are optional)
	boot		bootstrap utilities (mkpkg, xc, etc.)
	hlib		host library (config files, header files, etc.)
	os		the UNIX/IRAF kernel (LIBOS.A)
	gdev		ZFIOGD device driver (i/o to binary graphics devices)

A graph of the IRAF/UNIX system interface directories is shown below.
-------------------------------------------------------------------------------
Thu Jan 16 16:37:52 MST 1986

                |-as------------
                |
                |               |-bootlib-------
                |               |-generic-------
                |               |-mkpkg---------
                |               |-rmbin---------
                |               |-rtar----------
                |               |               
                |               |                               |-ratlibc-------
                |-boot----------|                               |-ratlibf-------
                |               |-spp-----------|-rpp-----------|-ratlibr-------
|-unix----------|               |               |               |-rppfor--------
                |               |               |               |-rpprat--------
                |               |               |-xpp-----------
                |               |-vfn-----------
                |               |-wtar----------
                |               |
                |               |-xyacc---------|-debug---------
                |
                |-gdev----------|-iism70--------
                |
                |
                |-hlib----------|-libc----------
                |
                |-os------------|-doc-----------
                                |-net-----------



SYSTEM GENERATION PROCEDURE

    The bootstrap utilities must be built before the remainder of the IRAF
system can be built.  The procedure for building the system from scratch given
a text-only distribution is outlined below.  Those sites fortunate to receive
a binary distribution can skip all this, and proceed to editing the device
tables and other runtime files.


    [1]	Edit the config files in HLIB.  The major files are iraf.h, config.h,
	mach.h, libc/iraf.h, libc/libc.h, and libc/knames.h.  All files should
	be reviewed.
    
    [2] If the AS assembler files will not work on your machine, rename the
	directory as VAXAS or some such, create a new, empty AS directory,
	and code the file ZSVJMP.S therein.  This is the only assembler file
	required for the operation of IRAF; the autogeneration code will use
	alternate (but less efficient) portable routines if any of the other
	AS files are not found.  To code ZSVJMP on a UNIX system, it may help
	to write a small C program which calls longjmp and setjmp and use ADB
	to disassemble it.  Write a modified version which is callable from
	Fortran and has the indicated calling sequence.

    [3] The directory OS contains the IRAF kernel for 4.2BSD UNIX.  This will
   	have to be modified somewhat if a different version of UNIX is in use.
	Manual pages are given in os/doc and the package is described in the
	"System Interface Reference Manual", which any IRAF implementor should
	already have.  As of this writing the documentation is partially out
	of date.

    [4] Edit the pathnames in the file ./hlib/libc/iraf.h.  Make a symbolic
	link /usr/include/iraf.h which points to this file (alternatively, copy
	the file to /usr/include).  Edit the pathnames in ./hlib/irafuser.csh.
	Add references to your CSHELL .login and .cshrc files to pick up the
	environment definitions and aliases in this file (alternatively,
	add the appropriate SET/EXPORT environment definitions to your Bourne
	shell login file, and make symbolic links pointing to the aliased
	commands in some public directory).

    [5]	Use source or login to pick up the environment defs and aliases.  You
	are now ready to compile the bootstrap utilities:

		% sh -x mkpkg.csh >& spool &

	This command should compile the libraries LIBOS.A and LIBBOOT.A and
	install them in hlib, then compile and install all the bootstrap
	utilities.

Once this sequence has been successfully completed you should be able to
compile the machine independent part of IRAF by the following sequence of
commands:

	% cd $iraf
	% mkpkg >& spool &

Generation of the full system will take many hours.