|
|
| (35 intermediate revisions by 2 users not shown) |
| Line 1: |
Line 1: |
| == Other Development Pages ==
| | #REDIRECT [[Main Page#Developer]] |
| | |
| Here is a list of other development-related pages. (Some material has been moved because this page is getting very long.)
| |
| | |
| Topics - Software Projects
| |
| | |
| *[[faim development]]
| |
| *[[vtkMy development]]
| |
| | |
| Topics - Platforms
| |
| | |
| *[[Development on OS-X]]
| |
| *[[Development for Linux]]
| |
| *[[Development on VMS]]
| |
| | |
| Topics - Tools
| |
| | |
| *[[XEmacs]]
| |
| | |
| Topics - Misc
| |
| | |
| *[[C Shell Scripts]]
| |
| | |
| ==Hardware==
| |
| | |
| Used Alpha stations at http://www.islandco.com
| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| ==C Shell Scripts==
| |
| | |
| These scripts must be executable.
| |
| <pre>
| |
| $ chmod 775 myscript.com
| |
| </pre>
| |
| | |
| ===Sample 1===
| |
| | |
| This file <code>aim2voi.com</code> shows the use of command line arguments in a CSH script.
| |
| | |
| <pre>
| |
| #!/bin/csh | |
| #------------------------------------------------------------------------------
| |
| onintr end
| |
| if ($#argv < 1) goto usage
| |
| #------------------------------------------------------------------------------
| |
| aix $1.aim > $1.dsc
| |
| aic2voi $1.aim $1.voi
| |
| goto end
| |
| #------------------------------------------------------------------------------
| |
| usage:
| |
| #
| |
| echo ""
| |
| echo "Usage:"
| |
| echo ""
| |
| echo "aim2voi aim_filename (without aim extension)"
| |
| echo "will create a voi and dsc file from an aim"
| |
| echo ""
| |
| #
| |
| exit
| |
| #------------------------------------------------------------------------------
| |
| end:
| |
| exit
| |
| #------------------------------------------------------------------------------
| |
| </pre>
| |
| | |
| ===Sample 2===
| |
| | |
| Similar to above, but <code>aim2bid.com</code> generates a temporary file called <code>stack</code> which
| |
| is used as input.
| |
| | |
| <pre>
| |
| #!/bin/csh
| |
| #------------------------------------------------------------------------------
| |
| onintr end
| |
| if ($#argv < 4) goto usage
| |
| #------------------------------------------------------------------------------
| |
| set i = $3
| |
| while ($i <= $4)
| |
| set nr = $i
| |
| if ($nr<10) set nr = "0"$nr""
| |
| if ($nr<100) set nr = "0"$nr""
| |
| # if ($nr<1000) set nr = "0"$nr""
| |
| echo "XY" >! stack
| |
| echo "$i" >> stack
| |
| echo "$5" >> stack
| |
| if ($6 != "") then
| |
| echo "0" >> stack
| |
| aio $1 "$2"_"$nr".bid 14 < stack
| |
| convert -size "$7" "$2"_"$nr".bid "$2"_"$nr"."$6"
| |
| \rm -f "$2"_"$nr".bid
| |
| else
| |
| echo "2" >> stack
| |
| aio $1 "$2"_"$nr".bid 14 < stack
| |
| endif
| |
| \rm -f stack
| |
| @ i = $i + 1
| |
| end
| |
| goto end
| |
| #------------------------------------------------------------------------------
| |
| usage:
| |
| #
| |
| echo ""
| |
| echo "Usage:"
| |
| echo ""
| |
| echo "aim2bid aim_filename bid_prefix first_slice last_slice scal_factor [form size])"
| |
| echo " (values are one-based) gif/tif/..."
| |
| echo ""
| |
| #
| |
| exit
| |
| #------------------------------------------------------------------------------
| |
| end:
| |
| exit
| |
| #------------------------------------------------------------------------------
| |
| </pre>
| |
| | |
| ===Sample 3===
| |
| | |
| An example where a sequence of commands are executed resulting in an e-mail to let the user
| |
| know that their job is finished.
| |
| | |
| <pre>
| |
| #!/bin/csh
| |
| #
| |
| nohup faim -s $1; /bin/csh -cbf "Mail -s 'JOB $1 FINISHED' boyd@kin < ~/adm/mailer/faimjob.txt" &
| |
| </pre>
| |
| | |
| You would run this script called <code>faim.com</code> as follows
| |
| | |
| <pre>
| |
| $ faim.com inputfile
| |
| </pre>
| |
| | |
| ===Sample 4===
| |
| | |
| This example uses two files. One called <code>wrap.com</code> is the base program that is called in
| |
| a more general program called <code>wrap_all.com</code> so that many different files can be processed
| |
| by the base script.
| |
| | |
| *wrap.com
| |
| <pre>
| |
| #!/bin/csh
| |
| | |
| echo "0" >! stack
| |
| echo "0" >> stack
| |
| echo "0" >> stack
| |
| | |
| /home/skb/works/fio/aim_io $1.aim $1_sub.aim minimal 15 < stack
| |
| | |
| /rm -f stack
| |
| | |
| exit
| |
| </pre>
| |
| | |
| *wrap_all.com
| |
| <pre>
| |
| #!/bin/csh
| |
| | |
| ~/works/com/wrap calgary_dog_aclx_03-04_med_fem_left
| |
| ~/works/com/wrap calgary_dog_aclx_03-04_med_fem_right
| |
| ~/works/com/wrap calgary_dog_aclx_03-04_med_tib_left
| |
| ~/works/com/wrap calgary_dog_aclx_03-04_med_tib_right
| |
| | |
| echo "DONE!"
| |
| exit
| |
| </pre>
| |
| | |
| ==temple.ucalgary.ca==
| |
| | |
| ===Configuration Details===
| |
| | |
| I include in the attachments my checklist I use for a Solaris 10
| |
| installation, adjusted to show only items particular to yours
| |
| and not my entire decision tree. I added brief explanations
| |
| for some of the items that might seem arbitrary otherwise.
| |
| | |
| Very similar decisions are made when installing any release
| |
| of Linux, Solaris, MS Windows or yet another operating
| |
| system - the details vary though.
| |
| | |
| http://docs.sun.com/ has all (too many) the details.
| |
| | |
| :*Operating System [[Media:01_OS.pdf| Download PDF]]
| |
| :*Configuration [[Media:02_Configuration.pdf|Download PDF]]
| |
| :*Mirror [[Media:03_Mirror.pdf|Download PDF]]
| |
| :*RAID5 [[Media:04_RAID5.pdf|Download PDF]]
| |
| :*Finishing Steps [[Media:05_Finishing_Steps.pdf|Download PDF]]
| |
| | |
| ===Install XEmacs===
| |
| However, I would not install both Emacs and XEmacs at the same
| |
| time. Nowadays, I highly recommend installing only one of them,
| |
| with my preference given to XEmacs. Of course, only when
| |
| there are no specialized Lisp packages that require Emacs.
| |
| | |
| Then my installation would be like below:
| |
| <pre>
| |
| $ cd /cdrom/s10_software_companion/components/sparc/Packages
| |
| $ cat > /tmp/nointeraction
| |
| mail=
| |
| instance=unique
| |
| partial=nocheck
| |
| runlevel=nocheck
| |
| idepend=nocheck
| |
| rdepend=nocheck
| |
| space=quit
| |
| setuid=nocheck
| |
| conflict=quit
| |
| action=nocheck
| |
| basedir=default
| |
| | |
| $ pkgadd -a /tmp/nointeraction -d . -n SFWbdb SFWgcc34l SFWxmacs
| |
| [ Copyright and legal notices omitted for brevity. ]
| |
| 21872 blocks
| |
| | |
| Installation of <SFWbdb> was successful.
| |
| [ Copyright and legal notices omitted for brevity. ]
| |
| 69953 blocks
| |
| | |
| Installation of <SFWgcc34l> was successful.
| |
| [Copyright and legal notices omitted for brevity. ]
| |
| 264202 blocks
| |
| | |
| Installation of <SFWxmacs> was successful.
| |
| | |
| $ emacs () { /opt/sfw/bin/xemacs $* ; }
| |
| | |
| $ pkgadd -a /tmp/nointeraction -d . -n SFWddd SFWgbin SFWgdb
| |
| [ To complete installation of the other packages you require. ]
| |
| | |
| $ pkginfo SFWbdb SFWddd SFWgbin SFWgcc34l SFWgdb SFWxmacs
| |
| system SFWbdb berkeleyDB - Berkeley Database Library
| |
| system SFWddd ddd - GNU Data Display Debugger
| |
| system SFWgbin binutils - GNU binary utilities
| |
| system SFWgcc34l gcc-3.4.2 - GNU Compiler Collection Runtime Libraries
| |
| system SFWgdb gdb - GNU source level debugger
| |
| system SFWxmacs XEmacs - text editor
| |
| </pre>
| |
| | |
| ==Developing on Duck==
| |
| | |
| ===Installing GNV (GNU is not VMS)===
| |
| | |
| ====Downloading GNV====
| |
| | |
| First, download GNV version 1.9 for VMS 7.3-2<br>
| |
| http://h71000.www7.hp.com/opensource/gnv.html
| |
| <p>
| |
| Unzip the file on <b>your workstation</b>. FTP the two <code>.pcsi</code> to duck using the "binary" mode (i.e. type <code>bin</code> before you use <code>get</code>. Make sure that all letters in the file name are uppercase, so, for example, if you got the following after unzipping:
| |
| | |
| <pre>
| |
| dec-axpvms-gnv-v0109-000-1.pcsi$compressed;1
| |
| dec-axpvms-gnv-v0109-000-1.pcsi$compressed_esw;1
| |
| </pre>
| |
| | |
| rename them to
| |
| | |
| <pre>
| |
| DEC-AXPVMS-GNV-V0109-000-1.PCSI$COMPRESSED;1
| |
| DEC-AXPVMS-GNV-V0109-000-1.PCSI$COMPRESSED_ESW;1
| |
| </pre>
| |
| | |
| ====Installing GNV====
| |
| Login as user <code>system</code> to do the installation.
| |
| | |
| Follow the installation instructions on http://openvms.compaq.com/OpenSource/gnvreadme_first.html, section 6.
| |
| | |
| <pre>
| |
| $PRODUCT INSTALL GNV /SOURCE=device:[dir.where.pcsi.are]
| |
| </pre>
| |
| | |
| ====Setting up GNV====
| |
| | |
| Follow the installation instructions on http://openvms.compaq.com/OpenSource/gnvreadme_first.html, section 7.
| |
| <br>
| |
| The following modifications were made to configuration files on duck:
| |
| | |
| 1. File SYS$MANAGER:SYSTARTUP_VMS.COM: the following line was added
| |
| | |
| <pre>
| |
| $ @SYS$STARTUP:GNV$STARTUP.COM
| |
| </pre>
| |
| | |
| | |
| 2. File LOGIN.COM at the devel account: added the line below
| |
| | |
| <pre>
| |
| $ @GNU:[LIB]GNV_SETUP.COM
| |
| </pre>
| |
| | |
| 3. As mentioned in http://openvms.compaq.com/OpenSource/gnvreadme_first.html, section 9.3, long file names are enabled on an ODS-5 disk by adding the follwowing line devel's LOGIN.COM file:
| |
| | |
| <pre>
| |
| $ SET PROCESS/PARSE_STYLE=EXTENDED
| |
| </pre>
| |
| Note that you could also make the terminal case sensitive, but this did not work well, so I did not include this command.
| |
| | |
| ====Running GNV====
| |
| | |
| Just start bash:
| |
| | |
| <pre>
| |
| $ ssh -l devel duck.kin.ucalgary.ca
| |
| devel@duck.kin.ucalgary.ca's password:
| |
| Welcome to OpenVMS (TM) Alpha Operating System, Version V7.3-2
| |
| | |
| DISK1:[DEVEL]
| |
| $ bash
| |
| bash$
| |
| </pre>
| |
| | |
| See the list of commands available at http://h71000.www7.hp.com/opensource/gnvreadme_first.html, section 5.
| |