Welcome!

. . . . . . . Development Tools

Welcome to the Skunkware 7 Development Tools section. Here you will find replacement compilers, debuggers, libraries and other tools used for software development.

Package List

Name Description Version OSR5 UnixWare
aalib Ascii graphics library 1.2 Yes Yes
bison GNU Project parser generator 1.25 Yes Yes
cvs GNU concurrent version system 1.10 Yes Yes
flex fast lexical analyzer generator 2.5.4a Yes Yes
gdb GNU Source level Debugger 970817 Yes Yes
make GNU Make 3.76.1 Yes Yes
dejagnu GNU test framework 971028 Yes Yes
gcc GNU C compiler 2.8.0 Yes Yes
egcs Experimental GNU C compiler 1.0.1 Yes Yes
autoconf GNU configuration script generator 2.12 Yes Yes
getline command-line editing library with history 39 No Yes
glib Graphics Libraries 1.0 Yes Yes
mkpkg SCO packaging front-ends 1.1 Yes Yes
rcs GNU revision control system 5.7 Yes Yes
readline GNU Readline Library 2.1 No Yes
stl SGI Standard Template Library 3.11 Yes Yes


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://www.sco.com/skunkware/uw7/libraries/aalib/

OpenServer Distribution http://www.sco.com/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 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://www.sco.com/skunkware/uw7/devtools/

OpenServer Distribution http://www.sco.com/skunkware/osr5/devtools/bison/

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://www.sco.com/skunkware/osr5/devtools/cvs/

UnixWare Distribution http://www.sco.com/skunkware/uw7/devtools/cvs/

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://www.sco.com/skunkware/uw7/devtools/

OpenServer Distribution http://www.sco.com/skunkware/osr5/devtools/flex/

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

 

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://www.sco.com/skunkware/uw7/devtools/

OpenServer Distribution http://www.sco.com/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://www.sco.com/skunkware/uw7/devtools/

OpenServer Distribution http://www.sco.com/skunkware/osr5/devtools/make/

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

 

GNU test framework

DejaGnu is a framework for testing other programs. Its purpose is to provide a single front end for all tests. Beyond this, DejaGnu offers several advantages for testing:

UnixWare Distribution http://www.sco.com/skunkware/uw7/devtools/dejagnu/

OpenServer Distribution http://www.sco.com/skunkware/osr5/devtools/dejagnu/

Original source code ftp://ftp.cygnus.com/pub/dejagnu/

 

GNU C Compiler

UnixWare Distribution http://www.sco.com/skunkware/uw7/devtools/gcc/

OpenServer Distribution http://www.sco.com/skunkware/osr5/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 7, the "gcc" package is the GNU C Compiler from the Free Software Foundation (FSF). Also included on Skunkware 7 is the EGCS GNU C Compiler from Cygnus (package name "egcs"). Both of these compilers can be installed and co-exist. By default, the FSF gcc will be used if installed. 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 7 contains the latest released versions of gcc and egcs (2.8.0 and 1.0.1 respectively) Many of the packages contained in Skunkware 7 were built with either the EGCS GNU C Compiler or that from FSF.

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 Applications Development Libraries" package (on the OSR 5.0.4 CD-ROM) 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 C Compiler

egcs is an experimental step in the development of GCC, the GNU C compiler.

A bunch of folks (including Fortran, Linux, Intel and RTEMS hackers) have gotten together to return to the fundamental idea that code visibility and submissions from the net are vital to the long term improvement of the compiler. They are going to integrate variations and patches to GCC that are floating around, including some front-ends like g77 (Fortran). They are going to work closely with the free OS'es (e.g. Linux, *BSD) where GCC is a critical piece of infrastructure. They invite you to join them.

They want to work closely with contributors to help and encourage them to submit their changes for inclusion in egcs. They'll make regular snapshots publicly available. They are looking at providing read-only access via remote-CVS to anyone on the net, and read-write access to certain external developers, in the manner already used in other Free Software projects on the net. All code will continue to be assigned to the FSF exactly as before and will be made available to the gcc2 maintainers for ultimate inclusion into the gcc2 tree.

They will provide regular, high quality releases. They want those releases to work well on a variety of native (including linux) and cross targets. egcs-1.0.1 is the current release.

egcs is pronounced "eggs", the c is silent.

UnixWare Distribution http://www.sco.com/skunkware/uw7/devtools/

OpenServer Distribution http://www.sco.com/skunkware/osr5/devtools/

Original source code ftp://ftp.cygnus.com/pub/egcs/releases/index.html

Package Home page http://www.cygnus.com/egcs/

 

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://www.sco.com/skunkware/uw7/devtools/

OpenServer Distribution http://www.sco.com/skunkware/osr5/devtools/autoconf/

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.

UnixWare Distribution http://www.sco.com/skunkware/uw7/lib/

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

 

Graphics Libraries

Many of the SCO Skunkware 97 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 7 glib package are as follows:

NameVersionOriginal Source
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
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://www.sco.com/skunkware/uw7/libraries/

OpenServer Distribution http://www.sco.com/skunkware/osr5/libraries/Glib/

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

 

Packaging front-ends

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

Written by Ronald Joe Record (rr@sco.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@sco.com

UnixWare Distribution http://www.sco.com/skunkware/uw7/devtools/mkpkg/

OpenServer Distribution http://www.sco.com/skunkware/osr5/devtools/mkpkg/

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

 

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://www.sco.com/skunkware/uw7/devtools/

OpenServer Distribution http://www.sco.com/skunkware/osr5/devtools/rcs/

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

 

SGI Standard Template Library

OpenServer Distribution http://www.sco.com/skunkware/osr5/shells/stl/

UnixWare Distribution http://www.sco.com/skunkware/uw2/shells/stl/

Original source code http://www.sgi.com/Technology/STL/

Package Home page http://www.sgi.com/Technology/STL/

The Silicon Graphics STL 3.11 is a freeware implementation of the new C++ Standard Template Library, with a few other parts of the new ANSI/ISO C++ standard library also included (string, bitset, auto_ptr).

It is available from

http://www.sgi.com/Technology/STL/

and is the best source of C++ standard library classes until such time as SCO bundles a full C++ standard library implementation with its C++ compiler.

This distribution includes the full SGI STL 3.11 release together with a set of changes to make it work on SCO platforms. In cases where SGI files have been modified, the original is preserved with an ..orig suffix.

The SGI site mentioned above has a full set of functional documentation on the SGI STL; it is also included in this distribution. Start at file://localhost/usr/local/man/html/stl/index.html.

In order to use the SGI STL 3.11 on SCO platforms (UW7, UW2, OSR5) you must use the UDK C++ compiler, version 7.0 or later. You cannot use the older SDK C++ compilers on either UW2 or OSR5.

To compile the SGI STL 3.11 with the UDK compiler, simply do

	$ CC -I/usr/local/include/stl ...
Note that the whole implementation is in header files, so there is no library to build. Similarly, you shouldn't have to worry about template instantiation issues; use of the default CC -Tauto option should work well.

If you are using the STL in a multi-threaded environment, compile with the CC -Kthread option, as usual. This will enable the POSIX threads support in the SGI STL. Note however that currently POSIX threads are only supported on UW 7.0.1. Support has also been added for UnixWare threads on pre-UW 7.0.1 platforms.

[The UW 7.0.1 upgrade can be downloaded free of charge from ftp.sco.com.]

These are the changes SCO has made for the SCO UDK C++ compiler (all are based on the macro __USLC__ being defined, which the UDK CC command does):

stl_config.h
Set the appropriate C++ language defines for our EDG 2.35-based compiler (also works for the EDG 2.39-based compiler in UW 7.1.0). Enable _PTHREADS when CC -Kthread is active.
stl_alloc.h
Work around a problem with the UDK compiler not accepting the generalized _Alloc_traits::allocator_type declaration (due to rebind weirdness). The work-around probably means that you need to specialize _Alloc_traits if you want to use it, but as is user-defined allocators seem to work.
stl_config.h, stl_alloc.h, thread_alloc.h, thread_alloc
Add _THREADS for UnixWare-style threads support (contributed by Jochen Schlick, schlick@comsoft.de).
string
Add a cast to avoid an annoying warning.
stl_list.h, stl_iterator.h, stl_map.h, stl_multimap.h, stl_multiset.h, stl_queue.h, stl_set.h, stl_stack.h, string
All modified to conform to the SCO UDK compiler's interpretation of template friends declarations.
ropeimpl.h, stl_rope.h
Same as above, for the SGI extension rope class (also contributed by Jochen Schlick).

Note: similar problems no doubt occur in the other SGI extension- to-the-standard hash and slist classes. These have not been changed; by looking at the changes for the above files, it should be clear how to modify them if you are so interested.

Note that compiling the bitset class results in an internal compiler error in the UW7 UDK compiler; this is fixed in the UW 7.0.1 C++ compiler. There have also been an intermittent compiler internal error in compiling STL member template declarations; this is fixed in the UW 7.1.0 C++ compiler, and is also be available as ptf7123a against UW 7.0.1.

There is no official support from SCO for these modifications, although we are interested in hearing of any problems in using them and will try to help out.


The following notice is reproduced from the SGI STL 3.11 distribution:

Copyright © 1996 Silicon Graphics Computer Systems, Inc.

Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appears in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Silicon Graphics makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

Copyright © 1994 Hewlett-Packard Company

Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appears in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Hewlett-Packard Company makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

 

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.

UnixWare Distribution http://www.sco.com/skunkware/uw7/lib/

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

 


Last Updated: Friday Mar 19, 1999 at 13:22:56 PST


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