# Makefile for pbm tools.
#
# Copyright (C) 1989, 1991 by Jef Poskanzer.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted, provided
# that the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation.  This software is provided "as is" without express or
# implied warranty.

CC =            dcc
CFLAGS =        -O0 -E DCC_ERRORS -T RAM: -ffp -ms -r -mu -gs -proto -mRR
SCFLAGS =        -O0 -E DCC_ERRORS -T RAM: -ffp -ms -r -mu -gs -proto
RGBDEF =        -DRGB_DB="RGBDEF"
TIFFDEF =       -DLIBTIFF
LDFLAGS =
BINDIR =        bin

INCLUDE =       -I/
ALLCFLAGS =     $(CFLAGS) $(RGBDEF) $(TIFFDEF) $(INCLUDE)
SALLCFLAGS =     $(SCFLAGS) $(RGBDEF) $(TIFFDEF) $(INCLUDE)
LIBPBM =        libpbm_sr.lib
LARGELIBPBM =   libpbm_lr.lib
STKLIBPBM =     libpbm_l.lib
DEFPBM =        pbm.h /pbmplus.h

PORTBINARIES =  atktopbm brushtopbm cmuwmtopbm g3topbm \
                icontopbm gemtopbm macptopbm mgrtopbm \
                pbmlife pbmmake pbmmask \
                pbmtext pbmto10x pbmtoascii pbmtoatk \
                pbmtobbnbg pbmtocmuwm pbmtoepson pbmtog3 \
                pbmtogem pbmtogo pbmtoicon pbmtolj pbmtomacp \
                pbmtomgr pbmtopi3 pbmtoplot pbmtoptx \
                pbmtox10bm pbmtoxbm pbmtoybm pbmtozinc \
                pbmupc pi3topbm xbmtopbm ybmtopbm

MATHBINARIES =  pbmreduce

BINARIES =      $(PORTBINARIES) $(MATHBINARIES)

OBJECTS =       atktopbm.o brushtopbm.o cmuwmtopbm.o g3topbm.o \
                icontopbm.o gemtopbm.o macptopbm.o mgrtopbm.o \
                pbmlife.o pbmmake.o pbmmask.o pbmreduce.o \
                pbmtext.o pbmto10x.o pbmtoascii.o pbmtoatk.o \
                pbmtobbnbg.o pbmtocmuwm.o pbmtoepson.o pbmtog3.o \
                pbmtogem.o pbmtogo.o pbmtoicon.o pbmtolj.o pbmtomacp.o \
                pbmtomgr.o pbmtopi3.o pbmtoplot.o pbmtoptx.o \
                pbmtox10bm.o pbmtoxbm.o pbmtoybm.o pbmtozinc.o \
                pbmupc.o pi3topbm.o xbmtopbm.o ybmtopbm.o


all:            bindir lib binaries

bindir:
                -makedir $(BINDIR)

binaries:       $(BINARIES)


# Rules for plain programs.
$(PORTBINARIES):    $(DEFPBM) $(LIBPBM)
        $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $(BINDIR)/$@ $@.c -l $(LIBPBM)
$(MATHBINARIES):    $(DEFPBM) $(LIBPBM)
        $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $(BINDIR)/$@ $@.c -l $(LIBPBM) -lm
#$(OBJECTS):     $(DEFPBM)
#        $(CC) $(ALLCFLAGS) "-Dmain=$*_main" -c $*.c

# And library.
lib:            $(LIBPBM) $(LARGELIBPBM) $(STKLIBPBM)

$(LIBPBM):      libpbm1.or libpbm2.or libpbm3.or libpbm4.or libpbm5.or
        -delete $(LIBPBM)
        join libpbm1.or libpbm2.or libpbm3.or libpbm4.or libpbm5.or to $(LIBPBM)

libpbm1.or:      $(DEFPBM) /version.h libpbm.h libpbm1.c
        $(CC) $(ALLCFLAGS) -S -o $@ -c libpbm1.c
libpbm2.or:      $(DEFPBM) libpbm.h libpbm2.c
        $(CC) $(ALLCFLAGS) -S -o $@ -c libpbm2.c
libpbm3.or:      $(DEFPBM) libpbm.h libpbm3.c
        $(CC) $(ALLCFLAGS) -S -o $@ -c libpbm3.c
libpbm4.or:      $(DEFPBM) libpbm.h libpbm4.c
        $(CC) $(ALLCFLAGS) -S -o $@ -c libpbm4.c
libpbm5.or:      $(DEFPBM) pbmfont.h libpbm5.c
        $(CC) $(ALLCFLAGS) -S -o $@ -c libpbm5.c

# large data version of libpbm
$(LARGELIBPBM):      libpbm1.olr libpbm2.olr libpbm3.olr libpbm4.olr libpbm5.olr
        -delete $(LARGELIBPBM)
        join libpbm1.olr libpbm2.olr libpbm3.olr libpbm4.olr libpbm5.olr to $(LARGELIBPBM)

libpbm1.olr:      $(DEFPBM) /version.h libpbm.h libpbm1.c
        $(CC) -mD $(ALLCFLAGS) -S -o $@ -c libpbm1.c
libpbm2.olr:      $(DEFPBM) libpbm.h libpbm2.c
        $(CC) -mD $(ALLCFLAGS) -S -o $@ -c libpbm2.c
libpbm3.olr:      $(DEFPBM) libpbm.h libpbm3.c
        $(CC) -mD $(ALLCFLAGS) -S -o $@ -c libpbm3.c
libpbm4.olr:      $(DEFPBM) libpbm.h libpbm4.c
        $(CC) -mD $(ALLCFLAGS) -S -o $@ -c libpbm4.c
libpbm5.olr:      $(DEFPBM) pbmfont.h libpbm5.c
        $(CC) -mD $(ALLCFLAGS) -S -o $@ -c libpbm5.c


# large data version of libpbm, not registerized
$(STKLIBPBM):      libpbm1.ol libpbm2.ol libpbm3.ol libpbm4.ol libpbm5.ol
        -delete $(STKLIBPBM)
        join libpbm1.ol libpbm2.ol libpbm3.ol libpbm4.ol libpbm5.ol to $(STKLIBPBM)

libpbm1.ol:      $(DEFPBM) /version.h libpbm.h libpbm1.c
        $(CC) -mD $(SALLCFLAGS) -S -o $@ -c libpbm1.c
libpbm2.ol:      $(DEFPBM) libpbm.h libpbm2.c
        $(CC) -mD $(SALLCFLAGS) -S -o $@ -c libpbm2.c
libpbm3.ol:      $(DEFPBM) libpbm.h libpbm3.c
        $(CC) -mD $(SALLCFLAGS) -S -o $@ -c libpbm3.c
libpbm4.ol:      $(DEFPBM) libpbm.h libpbm4.c
        $(CC) -mD $(SALLCFLAGS) -S -o $@ -c libpbm4.c
libpbm5.ol:      $(DEFPBM) pbmfont.h libpbm5.c
        $(CC) -mD $(SALLCFLAGS) -S -o $@ -c libpbm5.c


# Other dependencies.
atktopbm atktopbm.o:            atktopbm.c
brushtopbm brushtopbm.o:        brushtopbm.c
cmuwmtopbm cmuwmtopbm.o:        cmuwmtopbm.c cmuwm.h
g3topbm g3topbm.o:              g3topbm.c g3.h
icontopbm icontopbm.o:          icontopbm.c
gemtopbm gemtopbm.o:            gemtopbm.c
macptopbm macptopbm.o:          macptopbm.c macp.h
mgrtopbm mgrtopbm.o:            mgrtopbm.c mgr.h
pbmlife pbmlife.o:              pbmlife.c
pbmmake pbmmake.o:              pbmmake.c
pbmmask pbmmask.o:              pbmmask.c
pbmreduce pbmreduce.o:          pbmreduce.c
pbmtext pbmtext.o:              pbmtext.c pbmfont.h
pbmto10x pbmto10x.o:            pbmto10x.c
pbmtoascii pbmtoascii.o:        pbmtoascii.c
pbmtoatk pbmtoatk.o:            pbmtoatk.c
pbmtobbnbg pbmtobbnbg.o:        pbmtobbnbg.c
pbmtocmuwm pbmtocmuwm.o:        pbmtocmuwm.c cmuwm.h
pbmtoepson pbmtoepson.o:        pbmtoepson.c
pbmtog3 pbmtog3.o:              pbmtog3.c g3.h
pbmtogem pbmtogem.o:            pbmtogem.c
pbmtogo pbmtogo.o:              pbmtogo.c
pbmtoicon pbmtoicon.o:          pbmtoicon.c
pbmtolj pbmtolj.o:              pbmtolj.c
pbmtomacp pbmtomacp.o:          pbmtomacp.c macp.h
pbmtomgr pbmtomgr.o:            pbmtomgr.c mgr.h
pbmtopi3 pbmtopi3.o:            pbmtopi3.c
pbmtoplot pbmtoplot.o:          pbmtoplot.c
pbmtoptx pbmtoptx.o:            pbmtoptx.c
pbmtox10bm pbmtox10bm.o:        pbmtox10bm.c
pbmtoxbm pbmtoxbm.o:            pbmtoxbm.c
pbmtoybm pbmtoybm.o:            pbmtoybm.c
pbmtozinc pbmtozinc.o:          pbmtozinc.c
pbmupc pbmupc.o:                pbmupc.c
pi3topbm pi3topbm.o:            pi3topbm.c
xbmtopbm xbmtopbm.o:            xbmtopbm.c
ybmtopbm ybmtopbm.o:            ybmtopbm.c

clean:
        -delete \#?.o \#?.or \#?.ol \#?.olr \#?.lib DCC_ERRORS

cleanbin:   clean
        -delete $(BINDIR) all


