Welcome!

. . . . . . . Development Tools

Welcome to the Skunkware '98 Development Tools section. Here you will find replacement compilers, debuggers, libraries and other tools used for software development. A lot of these tools are updated regularly, so you may want to check out the on-line version of this page.

Package List

Name Description Version OSR5 UnixWare
gcc Integrated GNU Compilation System 98q2 Yes Yes
gdb GNU Source level Debugger 4.16 Yes No
make GNU Make 3.76.1 Yes Yes
aalib Ascii graphics library 1.2 Yes Yes
autoconf GNU configuration script generator 2.12 Yes Yes
bison GNU parser generator 1.25 Yes Yes
flex Fast lexical analyzer generator 2.5.4 Yes Yes
getline GNU Getline 3.11 Yes Yes
pkgtools Pkgadd/pkgmk and family skw98 Yes No
readline GNU Readline 2.1 Yes Yes
rcs GNU revision control system 5.7 Yes Yes
cvs GNU concurrent version system 1.9 Yes Yes
eiffel SmallEiffel The GNU Eiffel Compiler 0.91 Yes No
indent GNU indent - a source code beautifier 1.9.1 Yes Yes
mkpkg SCO Pkgadd Packaging Frontend 1.1 Yes Yes
mkvol SCO Custom Packaging Frontend 1.1 Yes Yes
patch GNU patch 2.5 Yes Yes
glib Graphics Libraries 1.3 Yes Yes
pthreads Posix Threads 3.5 Yes No
perl Perl 5 Scripting Language 5.004_04 Yes Yes
tcl Tool Command Language (TCL) 8.0p2 Yes Yes
tclx Extended TCL 8.0.2 Yes Yes
tk Tk - an X11 Toolkit for TCL 8.0p2 Yes Yes
tix Tk 4.2 based Tix widget set 4.1 No Yes
tix8 Tk 8.0 based Tix widget set 8.0 No Yes
expect Expect - a TCL Extension 5.25 Yes Yes
python Python - an object orient scripting tool 1.5 Yes Yes


Integrated GNU Compilation System

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/gcc/

UnixWare Distribution http://skunkware.dev/skunkware/uw7/devtools/gcc/

Original source code ftp://prep.ai.mit.edu/pub/gnu/

The GNU C Compiler (gcc) is an advanced optimizing compiler for C, C++ and Objective C. On OpenServer, this version of gcc can generate both COFF and ELF binaries from within a single compiler. Use the -melf flag to turn on ELF mode. By default, the compiler is always in COFF mode. On UnixWare, gcc always generates ELF binaries.

On Skunkware 98, the "Gcc" package is an "Integrated GNU C Compilation System" containing both the "production quality" GNU C Compiler and the experimental EGCS GNU C Compiler from Cygnus. When installing the Gcc package off of Skunkware 98, both of these compilers are installed and co-exist. By default, the FSF gcc will be used. The system wide default can be set in the file /etc/default/gcc by setting the PREFERRED_GCC variable to either /usr/local/lib/front-fsf or /usr/local/lib/front-egcs. An individual developer can over-ride the system wide default by setting and exporting PREFERRED_GCC in her environment.

Skunkware 98 contains gcc version 2.7.2.3 and egcs version 1.0.2. Many of the packages contained in Skunkware 98 were built with the GNU C Compiler.

For the UnixWare compiler (and the OpenServer compiler in ELF mode), there are a few switches which developers may be interested in. All of these switches are covered in the GCC documentation, this is just a brief summary:

On OpenServer release 5.0.4, be careful when invoking gcc as a linker if you use gcc specific flags. Be especially careful with mixing gcc specific flags when using the -s option. This can cause the 5.0.4 linker to core dump. For example, the command line gcc -m486 -fomit-frame-pointer -Wall -s -o foo *.o is bad, whereas the command line gcc -s -o foo *.o is good. The gcc specific flags -fomit-frame-pointer -Wall (used only as an example here) confuse the 5.0.4 linker.

Users of the old GDS (OSR5 only)

For users of the GDS, as shipped on Skunkware 96, or for users who have downloaded the GDS from the SCO ftp site, life is a little different with this release of GCC.Firstly, the -b elf flag has been replaced with -melf. Secondly, the -K PIC option has been replaced with the -fPIC option. This is to ensure compatibility with all other version of the GNU C Compiler. Thirdly, no assemblers are provided, as described below.

With this release of GCC, no assembler is provided, and the GDS is no longer one large package, but rather a collection of smaller packages. However, installing all of the tools found in this section of Skunkware will be at least the equivalent of the GDS, if not more. For people using SCO OpenServer release 5.0.0 or release 5.0.2 who are not licensed development system users, you will need to install not only the linkers and libraries package, but also the assembler from the development system package. If you have the SCO OpenServer Development System package installed, you do not need to do anything extra in order to use gcc.

For people running OpenServer release 5.0.4 or later, the linkers and libraries package already contains the SCO assemblers. For licensed SCO OpenServer Development System users, you can safely install gcc and all of these development system utilities without impacting your existing installed development system at all.

 

GNU Debugger

The GNU debugger is a source-level symbolic debugger. On Open Server, it can debug both ELF and COFF binaries from within the same executable, the file formats are automatically recognized. This is a very powerful debugger, and has many friendly interfaces (coming soon to Skunkware On-line), such as xxgdb, mxgdb and of course the interfaces provided by X-Emacs and GNU Emacs.

As with most GNU software, GDB comes with complete Texinfo documentation. If you have installed the Texinfo package, you can view the documentation by executing the command info -f /usr/local/info/gdb.info.gz.

UnixWare Distribution http://skunkware.dev/skunkware/uw7/devtools/

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/gdb/

Original source code ftp://prep.ai.mit.edu/pub/gnu/

 

GNU Make

GNU make is a replacement for the standard development system make. It has many advantages over the standard make. Firstly, it has a much saner set of default compile rules. Secondly, it has very good conditional compilation support. Thirdly, it is much more verbose in the actions it performs, and gives the user a lot of useful information. This is a fine replacement for the standard system make, and is 100% compatible with all existing make files.

UnixWare Distribution http://skunkware.dev/skunkware/uw7/devtools/

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/make/

Original source code ftp://prep.ai.mit.edu/pub/gnu/

 

aalib - ascii graphics library

aalib is a really amazing ascii graphics library. There's a cool demo with synchronized audio called bb.

UnixWare Distribution http://skunkware.dev/skunkware/uw7/libraries/aalib/

OpenServer Distribution http://skunkware.dev/skunkware/osr5/libraries/aalib/

Original source code ftp://ftp.ta.jcu.cz/pub/aa/aalib-1.2.tar.gz

Package Home page http://horac.ta.jcu.cz/aa/aalib/

 

GNU autoconf

GNU autoconf is a set of M4 macros and various shell scripts which allow a developer to generate the famous "configure" scripts which most programs use these days. This package requires that you install the GNU m4 macro package, which is also to be found under the Shell Utilities section of Skunkware.

UnixWare Distribution http://skunkware.dev/skunkware/uw7/devtools/

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/autoconf/

Original source code ftp://prep.ai.mit.edu/pub/gnu/

 

GNU Project parser generator

Bison is a parser generator in the style of yacc(1). It should be upwardly compatible with input files designed for yacc. Input files should follow the yacc convention of ending in .y. Unlike yacc, the generated files do not have fixed names, but instead use the prefix of the input file. For instance, a grammar description file named parse.y would produce the generated parser in a file named parse.tab.c, instead of yacc's y.tab.c.

UnixWare Distribution http://skunkware.dev/skunkware/uw7/devtools/

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/bison/

Original source code ftp://prep.ai.mit.edu/pub/gnu/

 

fast lexical analyzer generator

flex is a tool for generating scanners: programs which recognize lexical patterns in text. flex reads the given input files, or its standard input if no file names are given, for a description of a scanner to generate. The description is in the form of pairs of regular expressions and C code, called rules. flex generates as output a C source file, lex.yy.c, which defines a routine yylex(). This file is compiled and linked with the -lfl library to produce an executable. When the executable is run, it analyzes its input for occurrences of the regular expressions. Whenever it finds one, it executes the corresponding C code.

UnixWare Distribution http://skunkware.dev/skunkware/uw7/devtools/

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/flex/

Original source code ftp://prep.ai.mit.edu/pub/gnu/

 

command-line editing library with history

The getline package is a set of library routines that implement an editable command-line history. Getline is GNU Readline compatible but a lot smaller.

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/

UnixWare Distribution http://skunkware.dev/skunkware/uw7/lib/

Original source code ftp://ftp.sco.com/skunkware/src/lib/

 

Pkgadd/pkgmk and family

The OpenServer release of the standard UnixWare packaging tools. Useful in preparing distributions built with the UDK for subsequent installation on either OpenServer or UnixWare.

OpenServer Distribution http://skunkware.dev/skunkware/osr5/sysadmin/pkgtools/

Original source code http://skunkware.dev/skunkware/src/sysadmin/

 

GNU Readline Library

The GNU Readline Library is a facility which aids in the consistency of user interface across discrete programs that need to provide a command line interface.

readline will read a line from the terminal and return it. The line returned is allocated with malloc(3), so the caller must free it when finished. The line returned has the final newline removed, so only the text of the line remains.

readline offers editing capabilities while the user is entering the line. By default, the line editing commands are similar to those of emacs. A vi-style line editing interface is also available.

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/

UnixWare Distribution http://skunkware.dev/skunkware/uw7/lib/

Original source code ftp://prep.ai.mit.edu:/pub/gnu

 

GNU revision control system

RCS is a set of tools for source code / version control. RCS is more powerful than SCCS, and easier to use. RCS is required if you wish to use the CVS package (see below).

If you have installed perl, RCS is also able to convert existing SCCS databases into RCS format.

UnixWare Distribution http://skunkware.dev/skunkware/uw7/devtools/

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/rcs/

Original source code ftp://prep.ai.mit.edu/pub/gnu/

 

GNU concurrent version system

CVS, which works in conjunction with RCS, is a tools which allows multiple developers to be working on the same source code at the same time. RCS itself only allows a single developer to have a file locked for editing. CVS is designed to allow more than one developer to edit a source file. When multiple developers check in source files, CVS does conflict checking very well. CVS is one of the easiest, most comprehensive version control systems available. This package is highly recommended for any developer who has a version control requirement.

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/cvs/

UnixWare Distribution http://skunkware.dev/skunkware/uw7/devtools/cvs/

Original source code ftp://prep.ai.mit.edu/pub/gnu/

 

SmallEiffel The GNU Eiffel Compiler

SmallEiffel The GNU Eiffel Compiler is a free Eiffel compiler distributed under the terms of the GNU General Public License as published by the Free Software Foundation. It is intended to be a complete, though small and very fast, free Eiffel compiler.

It is available for a very wide range of platforms. In fact, SmallEiffel should run on any platform for which an ANSI C - POSIX compiler exists.

The current distribution includes an Eiffel to C compiler, an Eiffel to Java bytecode compiler, a documentation tool, a pretty printer and various other tools.

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/

Original source code ftp://ftp.loria.fr/pub/loria/genielog/SmallEiffel/

Package Home page http://www.loria.fr/SmallEiffel

 

GNU indent

Indent is a source re-formatting program. It can reformat any C or C++ source code according to almost any style you choose. It has a very large set of options, and works extremely well. An ideal tool for reformatting your code to look the way you want it to. This is especially useful if you get code from external vendors or from the net, which doesn't conform to the way you like your code to look.

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/indent/

UnixWare Distribution http://skunkware.dev/skunkware/uw7/devtools/indent/

Original source code ftp://prep.ai.mit.edu/pub/gnu/

 

Packaging front-ends

mkpkg - front-ends to assist in the creation of pkgadd installable packages.

Written by Ronald Joe Record (rr@ronrecord.com)

The mkpkg front-end attempts to ease the pain of creating a package suitable for installation with the pkgadd tools. The easiest way to use these front-ends is to first create a gzip'd tar archive of the distribution files. That is, as root and with the proper permissions/ownership set on the files you want to package :

  cd /
  tar cfF - /tmp/filelist | gzip -9 > /home/ftp/pub/uw7/dist/foo-1.0-dist.tar.gz
In the example command above, i am using /tmp/filelist as a file which contains a list of all the files you want to distribute and i'm creating the gzip'd tar archive foo-1.0-dist.tar.gz (for the example product foo, release 1.0).

Note that the location of the distribution archive is important. In the example i have placed it in /home/ftp/pub/uw7/dist. By default, that's where the dist2pkg script looks for distribution archives. You can set this location by editing dist2pkg.

Once the distribution file is in place, you can then run the dist2pkg script. This script front-ends the chkdist and mkpkg scripts. The first time you run dist2pkg you needn't provide any options. It will extract your archive, generate a prototype file based on the permissions and ownership you gave, and eventually run pkgmk and pkgtrans.

There appears to be a bug in the packaging tools such that a symbolic link something like foo.so -> foo.so.1.0 doesn't get created properly. To help me find these types of symlinks, i run the chkproto command which spits out a list of prototype files that might have this problem. I hand edit those files changing any occurrence of a relative symlink to an absolute symlink. For instance, i might change the above to foo.so -> /usr/local/lib/foo.so.1.0

If you have any questions or suggestions, e-mail rr@ronrecord.com

UnixWare Distribution http://skunkware.dev/skunkware/uw7/devtools/mkpkg/

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/mkpkg/

Original source code ftp://ftp.sco.com/skunkware/src/devtools/

 

Packaging front-ends

mkvol - front-ends to assist in the creation of custom installable packages.

Written by Ronald Joe Record (rr@ronrecord.com)

The mkvol front-end attempts to ease the pain of creating a package suitable for installation with the Software Manager on OpenServer (/etc/custom). The easiest way to use these front-ends is to first create a gzip'd tar archive of the distribution files. That is, as root and with the proper permissions/ownership set on the files you want to package :

  cd /
  tar cfF - /tmp/filelist | gzip -9 > /home/ftp/pub/dist/foo-1.0-dist.tar.gz
In the example command above, i am using /tmp/filelist as a file which contains a list of all the files you want to distribute and i'm creating the gzip'd tar archive foo-1.0-dist.tar.gz (for the example product foo, release 1.0).

Once the distribution archive is created, simply extract this into an empty directory and, in that directory, run the command:

    # mkvol -c COMPONENT_NAME -r RELEASE
where COMPONENT_NAME is the name you wish to give the component and RELEASE is the release number.

You will now need to edit the CDMT input files in the input subdirectory. Usually i give the component a better description and fix up any errors in the *.pkg input file. Typically these have to do with what gets exported where and incorrect symbolic links, etc.

Once this process is completed, you can then run the script MakeSSO which will create the media images. The component can then be installed by running the Install script. The scripts are setup to create components of the SKUNK98 product.

If you have any questions or suggestions, e-mail rr@ronrecord.com

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/mkvol/

Original source code ftp://ftp.sco.com/skunkware/src/devtools/

 

GNU patch

GNU patch is the latest version of Larry Wall's famous patch utility. Many source code products ship "patches", and you apply those patches with this program. In this version, there is a slightly different behavior with the -p option. If you see instructions in a patch file to run with the -p option, and there is no number following the -p, then you should use -p0 instead. This behavior is different from previous versions of the patch program.

OpenServer Distribution http://skunkware.dev/skunkware/osr5/devtools/patch/

UnixWare Distribution http://skunkware.dev/skunkware/uw2/devtools/patch/

Original source code ftp://prep.ai.mit.edu/pub/gnu/

 

Graphics Libraries

Many of the SCO Skunkware graphics utilities require the installation of several dynamically loaded shared graphics libraries. These include support for the JPEG, TIFF, XPM, Mesa3D, PNG and other graphical file formats.

The versions of the various libraries included in the Skunkware Glib package are as follows:

NameVersionOriginal Source
aalib 1.2 ftp://ftp.ta.jcu.cz/pub/aa/
Mesa 2.3 ftp://iris.ssec.wisc.edu/pub/Mesa
Xaw3d 1.3 ftp://ftp.x.org/contrib/widgets/Xaw3d
Gd 1.2 http://www.boutell.com/gd
Gtk+ 971109 ftp://ftp.gimp.org/pub/gtk
ImageMagick 4.0.4 ftp://204.183.81.131/pub/ImageMagick/
Imlib 0.5 http://www.rasterman.com
Jpeg 6a ftp://ftp.uu.net/graphics/jpeg/
Mpeg 1.2 ftp://ftp.mni.mcgill.ca/pub/mpeg/
Png 0.96 ftp://ftp.uu.net/graphics/png/
Tiff 3.4 ftp://ftp.sgi.com/graphics/tiff
Xpm 3.4j ftp://avahi.inria.fr/pub/xpm/
Zlib 1.0.4 http://www.cdrom.com/pub/infozip/zlib/

UnixWare Distribution http://skunkware.dev/skunkware/uw7/libraries/

OpenServer Distribution http://skunkware.dev/skunkware/osr5/libraries/Glib/

Original source code ftp://ftp.sco.com/skunkware/src/libraries

 

Posix Threads

Pthreads is a prototype implementation of POSIX 1003.4a, Draft 6. It is a C-language library that supports multiple threads of control within a single process.

This library was developed to support the PART Ada runtime System (RTS). As such, it does not implement the entire Pthreads interface. It runs on a SPARCstation under the SunOS operating system, and its use on that platform will also be non-compliant since the bulk of the POSIX 1003.1 base standard and POSIX 1003.4 Real-Time Extensions to which Pthreads is an extension will not be available. The Pthreads library does provide some of the capability of these other standards.

papers:
WWW USA: http://www.cs.fsu.edu/~mueller/pthreads
WWW Europe: http://www.informatik.hu-berlin.de/~mueller/pthreads
ftp-site:  ftp.cs.fsu.edu/pub/PART/publications
files:     pthreads_serf92.ps.Z, pthreads_usenix93.ps.Z,
       pthreads_interface.ps.Z, rtoss94.ps.Z, pthreads_tr94-091.ps.Z

mail-list: mueller@informatik.hu-berlin.de  Subject: subscribe-pthreads
WWW USA  : http://www.cs.fsu.edu/~mueller/projects.html
WWW Europe: http://www.informatik.hu-berlin.de/~mueller/projects.html

OpenServer Distribution http://skunkware.dev/skunkware/osr5/libraries/pthreads/

Original source code ftp://ftp.cs.fsu.edu/pub/PART/PTHREADS

Package Home page http://www.cs.fsu.edu/~mueller/projects.html

 

PERL scripting language

PERL is a scripting language in use in many sites today. It combines the best features of sed, awk, shell scripts and even a little BASIC. It is commonly used for administrative tasks, and for WWW CGI scripts. Many tools depend on perl, and no system is complete without it.

This page provides links to Perl 5 binary distributions for SCO platforms and the Perl source archive as well as more info on Perl 5.

In addition to the custom installable Perl 5.004_04 for OpenServer 5 on Skunkware 98, there is a gzip'd tar archive of Perl 5.005 pre-compiled for use on SCO OpenServer 5. Manual installation of this release of Perl can be accomplished by issuing the following commands (as root):

    # cd /
    # gzcat /mount-point/osr5/interp/perl-5.005/perl-5.005.tar.gz | tar xf -
where mount-point refers to the directory path on which the Skunkware 98 CD-ROM is mounted.

OpenServer Distribution http://skunkware.dev/skunkware/osr5/interp/perl/

UnixWare Distribution http://skunkware.dev/skunkware/uw7/interp/perl/

Original source code ftp://prep.ai.mit.edu/pub/gnu/

 

TCL - Tool Command Language

TCL is an embeddable scripting language and shell tool. This means you can write applications and link in the TCL interpreter into your applications in order to give them a scripting capability. TCL also comes with a shell version of the interpreter, in which you can write programs in much the same way as you can with perl or python.

One of the best features of TCL is the sheer number of extensions available for it. There are many of them, and most of them will be found on Skunkware in time. Keep an eye out on the on-line version of Skunk for updates to TCL.

This page provides links to the Tcl 8.0 distribution and more info on TCL 8.0.

UnixWare Distribution http://skunkware.dev/skunkware/uw7/interp/

OpenServer Distribution http://skunkware.dev/skunkware/osr5/interp/

Original source code ftp://ftp.smli.com/pub/tcl/

Package Home page http://sunscript.sun.com

 

Extended TCL

Extended TCL is a set of extra TCL commands and functions designed to make standard UNIX features more accessible in TCL. A most useful tool to have around if you are using TCL.

OpenServer Distribution http://skunkware.dev/skunkware/osr5/interp/tclX/

UnixWare Distribution http://skunkware.dev/skunkware/uw7/interp/

Original source code ftp://ftp.neosoft.com/languages/tcl/TclX/

Package Home page http://www.neosoft.com/tcl

 

Tk - An X11 Toolkit for TCL

Tk is an official TCL companion. It allows TCL script writers to create pretty GUI programs from within their scripts. There are many extensions to Tk as well, and many will be coming to Skunkware soon.

This page provides links to the Tk 8.0 distribution and more info on Tk 8.0.

OpenServer Distribution http://skunkware.dev/skunkware/osr5/interp/

UnixWare Distribution http://skunkware.dev/skunkware/uw7/interp/

Original source code ftp://ftp.smli.com/pub/tcl/

Package Home page http://sunscript.sun.com

 

Tix widget set

Tix is a set of mega widgets based on the standard Tk widgets. If you are planning only to use Tix with the standard Tk widget set, you can use the program tixwish(1) to interpret your TCL scripts.

This page provides links to the Tk 4.2 based Tix 4.1 distribution. SCO Skunkware also contains a Tk 8.0 based Tix 4.1 distribution.

UnixWare Distribution http://skunkware.dev/skunkware/uw2/interp/tix/

Original source code ftp://ftp.smli.com/pub/tcl/

Package Home page http://sunscript.sun.com

 

Tix widget set

Tix is a set of mega widgets based on the standard Tk widgets. If you are planning only to use Tix with the standard Tk widget set, you can use the program tixwish(1) to interpret your TCL scripts.

This page provides links to the Tk 8.0 based Tix 4.1 distribution. SCO Skunkware also contains a Tk 4.2 based Tix 4.1 distribution.

UnixWare Distribution http://skunkware.dev/skunkware/uw2/interp/Tix8/

Original source code ftp://ftp.smli.com/pub/tcl/

Package Home page http://sunscript.sun.com

 

Expect - a TCL / Tk extension

expect is an extension to TCL that allows a script to drive any aapplication that normally requires human interaction (e.g ftp, telnet, fsck, rlogin, passwd..). Obvious application areas include testing, automation and stress-testing or exercising.. In addition such programs can be wrapped with an X GUI using expectk

(It also has the distinction of being the first (and oldest) Tcl extension created).

There is more documentation availible on Expect, with links to other TCL resources.

UnixWare Distribution http://skunkware.dev/skunkware/uw7/interp/expect/

OpenServer Distribution http://skunkware.dev/skunkware/osr5/interp/expect/

Original source code ftp://ftp.sco.com/skunkware/src/interp/

 

Python Object Oriented Scripting Language

Python is an object oriented embed-able scripting language and shell scripting language. It comes with many very useful function libraries and is very well tested and stable. Python is a good alternative to TCL or Perl, for those who prefer object oriented programming.

Python also comes with an extremely comprehensive manual, both for the language itself, as well as the library functions provided with it.

UnixWare Distribution http://skunkware.dev/skunkware/uw7/interp/

OpenServer Distribution http://skunkware.dev/skunkware/osr5/interp/python/

Original source code ftp://ftp.python.org/pub/python/src/

Package Home page http://www.python.org/

 


Last Updated: Friday Mar 19, 1999 at 08:43:22 PST


  © Copyright 1997 The Santa Cruz Operation, Inc. All rights reserved.