# Project:   libpng


# Toolflags:
CCflags = -c -depend !Depend -IC:,Zlib: -g -throwback  -DRISCOS  -fnah 
C++flags = -c -depend !Depend -IC: -throwback
Linkflags = -aif -c++ -o $@
ObjAsmflags = -throwback -NoCache -depend !Depend
CMHGflags = 
LibFileflags = -c -l -o $@ 
Squeezeflags = -o $@


# Final targets:
@.libpng-lib:   @.o.png @.o.pngerror @.o.pngrio @.o.pngwio @.o.pngmem \
        @.o.pngpread @.o.pngset @.o.pngget @.o.pngread @.o.pngrtran \
        @.o.pngrutil @.o.pngtrans @.o.pngwrite @.o.pngwtran @.o.pngwutil 
        LibFile $(LibFileflags) @.o.png @.o.pngerror @.o.pngrio @.o.pngrtran \
        @.o.pngmem @.o.pngpread @.o.pngset @.o.pngget @.o.pngread @.o.pngwio \
        @.o.pngrutil @.o.pngtrans  @.o.pngwrite @.o.pngwtran @.o.pngwutil 
@.mm-libpng-lib:   @.mm.png @.mm.pngerror @.mm.pngrio @.mm.pngwio @.mm.pngmem \
        @.mm.pngpread @.mm.pngset @.mm.pngget @.mm.pngread @.mm.pngrtran \
        @.mm.pngrutil @.mm.pngtrans @.mm.pngwrite @.mm.pngwtran @.mm.pngwutil 
        LibFile $(LibFileflags) @.mm.png @.mm.pngerror @.mm.pngrio \
        @.mm.pngwio @.mm.pngmem @.mm.pngpread @.mm.pngset @.mm.pngget \
        @.mm.pngread @.mm.pngrtran @.mm.pngrutil @.mm.pngtrans @.mm.pngwrite \
        @.mm.pngwtran @.mm.pngwutil 


# User-editable dependencies:
# (C) Copyright 1997 Tom Tanner
Test: @.pngtest 
        <Prefix$Dir>.pngtest
        @remove <Prefix$Dir>.pngtest

#It would be nice if you could stop "make" listing from here on!
@.pngtest:   @.o.pngtest @.libpng-lib C:o.Stubs Zlib:zlib_lib 
        Link $(Linkflags) @.o.pngtest @.libpng-lib C:o.Stubs Zlib:zlib_lib 

.SUFFIXES: .o .mm .c

.c.mm:
        MemCheck.CC cc $(ccflags) -o $@ LibPng:$<
.c.o:
        cc $(ccflags) -o $@ $<


# Static dependencies:


# Dynamic dependencies:
o.pngtest:	c.pngtest
o.pngtest:	h.png
o.pngtest:	Zlib:h.zlib
o.pngtest:	Zlib:h.zconf
o.pngtest:	h.pngconf
mm.png:		LibPng:c.png
mm.png:		LibPng:h.png
mm.png:		Zlib:h.zlib
mm.png:		Zlib:h.zconf
mm.png:		LibPng:h.pngconf
mm.png:		MemCheck:ANSI.h.stdio
mm.pngerror:	LibPng:c.pngerror
mm.pngerror:	LibPng:h.png
mm.pngerror:	Zlib:h.zlib
mm.pngerror:	Zlib:h.zconf
mm.pngerror:	LibPng:h.pngconf
mm.pngerror:	MemCheck:ANSI.h.stdio
mm.pngrio:	LibPng:c.pngrio
mm.pngrio:	LibPng:h.png
mm.pngrio:	Zlib:h.zlib
mm.pngrio:	Zlib:h.zconf
mm.pngrio:	LibPng:h.pngconf
mm.pngrio:	MemCheck:ANSI.h.stdio
mm.pngwio:	LibPng:c.pngwio
mm.pngwio:	LibPng:h.png
mm.pngwio:	Zlib:h.zlib
mm.pngwio:	Zlib:h.zconf
mm.pngwio:	LibPng:h.pngconf
mm.pngwio:	MemCheck:ANSI.h.stdio
mm.pngmem:	LibPng:c.pngmem
mm.pngmem:	LibPng:h.png
mm.pngmem:	Zlib:h.zlib
mm.pngmem:	Zlib:h.zconf
mm.pngmem:	LibPng:h.pngconf
mm.pngmem:	MemCheck:ANSI.h.stdio
mm.pngpread:	LibPng:c.pngpread
mm.pngpread:	LibPng:h.png
mm.pngpread:	Zlib:h.zlib
mm.pngpread:	Zlib:h.zconf
mm.pngpread:	LibPng:h.pngconf
mm.pngpread:	MemCheck:ANSI.h.stdio
mm.pngset:	LibPng:c.pngset
mm.pngset:	LibPng:h.png
mm.pngset:	Zlib:h.zlib
mm.pngset:	Zlib:h.zconf
mm.pngset:	LibPng:h.pngconf
mm.pngset:	MemCheck:ANSI.h.stdio
mm.pngget:	LibPng:c.pngget
mm.pngget:	LibPng:h.png
mm.pngget:	Zlib:h.zlib
mm.pngget:	Zlib:h.zconf
mm.pngget:	LibPng:h.pngconf
mm.pngget:	MemCheck:ANSI.h.stdio
mm.pngread:	LibPng:c.pngread
mm.pngread:	LibPng:h.png
mm.pngread:	Zlib:h.zlib
mm.pngread:	Zlib:h.zconf
mm.pngread:	LibPng:h.pngconf
mm.pngread:	MemCheck:ANSI.h.stdio
mm.pngrtran:	LibPng:c.pngrtran
mm.pngrtran:	LibPng:h.png
mm.pngrtran:	Zlib:h.zlib
mm.pngrtran:	Zlib:h.zconf
mm.pngrtran:	LibPng:h.pngconf
mm.pngrtran:	MemCheck:ANSI.h.stdio
mm.pngrutil:	LibPng:c.pngrutil
mm.pngrutil:	LibPng:h.png
mm.pngrutil:	Zlib:h.zlib
mm.pngrutil:	Zlib:h.zconf
mm.pngrutil:	LibPng:h.pngconf
mm.pngrutil:	MemCheck:ANSI.h.stdio
mm.pngtrans:	LibPng:c.pngtrans
mm.pngtrans:	LibPng:h.png
mm.pngtrans:	Zlib:h.zlib
mm.pngtrans:	Zlib:h.zconf
mm.pngtrans:	LibPng:h.pngconf
mm.pngtrans:	MemCheck:ANSI.h.stdio
mm.pngwrite:	LibPng:c.pngwrite
mm.pngwrite:	LibPng:h.png
mm.pngwrite:	Zlib:h.zlib
mm.pngwrite:	Zlib:h.zconf
mm.pngwrite:	LibPng:h.pngconf
mm.pngwrite:	MemCheck:ANSI.h.stdio
mm.pngwtran:	LibPng:c.pngwtran
mm.pngwtran:	LibPng:h.png
mm.pngwtran:	Zlib:h.zlib
mm.pngwtran:	Zlib:h.zconf
mm.pngwtran:	LibPng:h.pngconf
mm.pngwtran:	MemCheck:ANSI.h.stdio
mm.pngwutil:	LibPng:c.pngwutil
mm.pngwutil:	LibPng:h.png
mm.pngwutil:	Zlib:h.zlib
mm.pngwutil:	Zlib:h.zconf
mm.pngwutil:	LibPng:h.pngconf
mm.pngwutil:	MemCheck:ANSI.h.stdio
o.png:		c.png
o.png:		h.png
o.png:		Zlib:h.zlib
o.png:		Zlib:h.zconf
o.png:		h.pngconf
o.pngerror:	c.pngerror
o.pngerror:	h.png
o.pngerror:	Zlib:h.zlib
o.pngerror:	Zlib:h.zconf
o.pngerror:	h.pngconf
o.pngrio:	c.pngrio
o.pngrio:	h.png
o.pngrio:	Zlib:h.zlib
o.pngrio:	Zlib:h.zconf
o.pngrio:	h.pngconf
o.pngwio:	c.pngwio
o.pngwio:	h.png
o.pngwio:	Zlib:h.zlib
o.pngwio:	Zlib:h.zconf
o.pngwio:	h.pngconf
o.pngmem:	c.pngmem
o.pngmem:	h.png
o.pngmem:	Zlib:h.zlib
o.pngmem:	Zlib:h.zconf
o.pngmem:	h.pngconf
o.pngpread:	c.pngpread
o.pngpread:	h.png
o.pngpread:	Zlib:h.zlib
o.pngpread:	Zlib:h.zconf
o.pngpread:	h.pngconf
o.pngset:	c.pngset
o.pngset:	h.png
o.pngset:	Zlib:h.zlib
o.pngset:	Zlib:h.zconf
o.pngset:	h.pngconf
o.pngget:	c.pngget
o.pngget:	h.png
o.pngget:	Zlib:h.zlib
o.pngget:	Zlib:h.zconf
o.pngget:	h.pngconf
o.pngread:	c.pngread
o.pngread:	h.png
o.pngread:	Zlib:h.zlib
o.pngread:	Zlib:h.zconf
o.pngread:	h.pngconf
o.pngrtran:	c.pngrtran
o.pngrtran:	h.png
o.pngrtran:	Zlib:h.zlib
o.pngrtran:	Zlib:h.zconf
o.pngrtran:	h.pngconf
o.pngrutil:	c.pngrutil
o.pngrutil:	h.png
o.pngrutil:	Zlib:h.zlib
o.pngrutil:	Zlib:h.zconf
o.pngrutil:	h.pngconf
o.pngtrans:	c.pngtrans
o.pngtrans:	h.png
o.pngtrans:	Zlib:h.zlib
o.pngtrans:	Zlib:h.zconf
o.pngtrans:	h.pngconf
o.pngwrite:	c.pngwrite
o.pngwrite:	h.png
o.pngwrite:	Zlib:h.zlib
o.pngwrite:	Zlib:h.zconf
o.pngwrite:	h.pngconf
o.pngwtran:	c.pngwtran
o.pngwtran:	h.png
o.pngwtran:	Zlib:h.zlib
o.pngwtran:	Zlib:h.zconf
o.pngwtran:	h.pngconf
o.pngwutil:	c.pngwutil
o.pngwutil:	h.png
o.pngwutil:	Zlib:h.zlib
o.pngwutil:	Zlib:h.zconf
o.pngwutil:	h.pngconf
