ftp.nice.ch/pub/next/unix/graphics/netpbm.19940301.s.tar.gz#/netpbm/amiga

DICE.PATCH
 
NETPBM.INTRO
 
README.DICE
 
README.SASC
 
compat.amiga
 
dice_stack.c
[View dice_stack.c] 
foreach.lha
 
link_merged
 

README.DICE

This file describes how to compile NETPBM with DICE (registered version).
You need a real "make" program (the "dmake" supplied with DICE won't work for
this), and "patch".  The "make" program should ignore a WARN return code.
Compilation requires about 4MB RAM and 6MB of HD space, and takes about
45 minutes on a 25MHz 68030.

Compilation of the TIFF library is not covered in this file. A compiled
TIFF lib is available in the dicelibs archive (see "NETPBM.INTRO" for
FTP addresses).  Copy this library to the netpbm/libtiff directory.


(1) CD into netpbm/amiga and compile dice_stack.c with
        dcc -c dice_stack.c

(2) Set the environment variable "USER" to your name, like this:
        setenv USER "Al Bundy"
    CD into the toplevel netpbm directory and execute the shell-script
    "stamp-date.amiga".  This will create the file "compile.h".

(3) Apply the patch:
        patch -l < amiga/DICE.PATCH
    This installs a workaround for a DICE bug in two source files.  If you
    are using a DICE version newer than 2.07.56R, this bug might already be
    fixed.  To test this, compile this program:
        main() { double d = 0.5; int i = 2; i *= d; printf("%d\n", i); }
    If the result is "0", the bug still exists.

(4) Edit pbmplus.h.  The following symbols should be set:
        A_SMALLSTACK (obsolete, no longer used)
        A_FRAGARRAY
        A_RGBENV     (optional, but recommended)
        A_STRERROR

(5) There is no toplevel Makefile. CD into netpbm/pbm and type
        make -f Makefile.dice all     for separate binaries
    or  make -f Makefile.dice merge   for a merged binary (see "NETPBM.INTRO")
    Repeat this in the directories netpbm/pgm, netpbm/ppm and netpbm/pnm,
    in this order.  If you are changing the compiler options, make sure to
    change them in all four makefiles.

(6) The binaries are now in netpbm/p?m/bin, just move them to a directory in
    your search path.  See the file "NETPBM.INTRO" for more installation info.
    Note that binaries created by you will not use the PBMMEM environment
    variable.


Here is a short explanations of compiler options used in the DICE Makefiles:
    -E xxx      write error messages into file xxx
    -ms         place strings constants in read-only code hunk
    -mu         unix-compat, if there are two definitions for the
                same variable (at the same scope), merge them into one
    -gs         generate stack-checking code (see dice_stack.c: whenever
                available stack falls below _stack_fudge, allocate a new stack
                of size _stack_chunk)
    -proto      strict prototype checking
    -mRR        functions take their args in registers (requires full prototyping)
    -mD         large data model (absolute addressing instead of A4-rel)
    -mC         large code model (absolute addressing instead of PC-rel)
    -r          generate "pure" executable (no -mD and -mC allowed)
    -S          alternate library section naming (used for link libs only)
    -s          DEBUG: don't strip symbol information from executable
    -d1         DEBUG: include LINE information in executable (for Enforcer's FindHit)

Naming conventions in the Makefiles:
    RLIBP?M     small data library, args in registers
    RLLIBP?M    large data library, args in registers
    SLIBP?M     small data library, args on stack
    SLLIB?M     large data library, args on stack

    RALLCFLAGS  options to compile register-args executables
    SALLCFLAGS  options to compile stack-args executables
    MALLCFLAGS  options to compile merged executable

    BINS        small data executables, register-args
    LBINS       large data executables, register-args
    SBINS       small data executables, stack-args
    SLBINS      large data executables, stack-args

    MATHBINS    \
    LMATHBINS    \  same as above, but need floating-point
    SMATHBINS    /  version of printf/scanf (link with math-lib)
    SLMATHBINS  /

    *.or        library object file (small data, reg-args)
    *.os        library object file (small data, stack args)
    *.olr       library object file (large data, reg-args)
    *.ols       library object file (large data, stack args)
    *.om        object file for merged binary (large data, stack args)

I tried to use small data/reg-args whenever possible.  Some programs
had to be compiled with large data, and some with stack-args or the
compiler would complain.



-Ingo
email: Ingo.Wilken@informatik.uni-oldenburg.de

README.SASC

SAS/C SMakefiles for SAS/C 6.0 and greater have been created by Robert A. Knop
Jr. (rknop@cco.caltech.edu).  These Makefiles have been tested with SAS/C
6.51.  They are based on the 7dec1993 release of netpbm.

See also README.AMIGA for DICE, Amiga binary, and Amiga general information
from Ingo Wilken.

The following files are specific to SAS/C SMakefiles:

SMakefile           - Top level makefile, runs SMakefiles in pbm, pgm, ppm, pnm
SCOPTIONS           - SAS/C options file
foreach_amiga.lha   - Amiga Shell utility needed in the SMakefiles
pbm/SMakefile       - make file for pbm, run by top level SMAkefile
pbm/SCOPTIONS       - should be same as top level SCOPTIONS
pgm/SMakefile       - make file for pgm, run by top level SMAkefile
pgm/SCOPTIONS       - should be same as top level SCOPTIONS
ppm/SMakefile       - make file for ppm, run by top level SMAkefile
ppm/SCOPTIONS       - should be same as top level SCOPTIONS
pnm/SMakefile       - make file for pnm, run by top level SMAkefile
pnm/SCOPTIONS       - should be same as top level SCOPTIONS

The shell script stamp-date.amiga by Ingo Wilken is used by the SAS/C Amiga
SMakefile.

To build netpbm with SAS/C:

(1) Decompact the netpbm source archive (presumably you've already done this
if you are reading this file).  The top level directory should have, among
others, subdirectories "pbm", "pgm", "ppm", and "pnm".  CD to this top level
directory.

(2) Install foreach somewhere in your path, e.g. c:

(3) In the top level directory, type "smake".  This will build all of the
binaries.

(4) Edit the top-level SMakefile, changing the definition of the variables
INSTALLBINARIES, INSTALLMANUALS1, INSTALLMANUALS3, and INSTALLMANUALS5 to
reflect where on your system you want the executables and man pages to go.

(5) In the top level directory, type "smake install".  This will copy the
executables to $(INSTALLBINARIES) and the man pages to $(INSTALLMANUALS?).

(6) In the top level directory, type "smake clean".  This will delete the
copies of the executables from the source tree, the .o object files, and other
chaff.

-R. Knop 93/01/26

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.