Developer: Difference between revisions

From bone.wiki
Jump to navigation Jump to search
→Other Development Pages: Added link to C Shell Scripts page
Redirecting to Main Page#Developer
 
(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.

Latest revision as of 15:49, 16 September 2010