# Amiga powerUP (TM) Makefile
# makefile for libpng and SAS C V6.58/7.00 PPC compiler
# Copyright (C) 1998 by Andreas R. Kleinert
#
# This code is released under the libpng license.
# For conditions of distribution and use, see the disclaimer
# and license in png.h

CC       = scppc
CFLAGS   = NOSTKCHK NOSINT OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL IDIR /zlib \
           OPTLOOP OPTRDEP=8 OPTDEP=8 OPTCOMP=8
LIBNAME  = libpng.a
AR       = ppc-amigaos-ar
AR_FLAGS = cr
RANLIB   = ppc-amigaos-ranlib
LDFLAGS  = -r -o
LDLIBS   =  ../zlib/libzip.a LIB:scppc.a
LN       = ppc-amigaos-ld
RM       = delete quiet
MKDIR    = makedir

OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o pngread.o \
       pngerror.o pngpread.o pngwrite.o pngrtran.o pngwtran.o pngrio.o \
       pngwio.o pngmem.o

all: $(LIBNAME) pngtest

$(LIBNAME): $(OBJS)
            $(AR) $(AR_FLAGS) $@ $(OBJS)
            $(RANLIB) $@

pngtest: pngtest.o $(LIBNAME)
        $(LN) $(LDFLAGS) pngtest LIB:c_ppc.o pngtest.o $(LIBNAME) $(LDLIBS) \
LIB:end.o
