# Makefile for libpng
# TurboC++ 3.0 (Note: All modules are compiled in C mode)

# To use, do "make -fmakefile.tc3"

# ------------- Turbo C++ 3.0 -------------
MODEL=-ml
CFLAGS=-O2 -Z $(MODEL) -I..\zlib
CC=tcc
LD=tcc
LIB=tlib
LDFLAGS=$(MODEL) -L..\zlib
O=.obj
E=.exe

# variables
OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O)
OBJS2 = pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O)
OBJS3 = pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O)
OBJSL1 = +png$(O) +pngset$(O) +pngget$(O) +pngrutil$(O) +pngtrans$(O)
OBJSL2 = +pngwutil$(O) +pngmem$(O) +pngpread$(O) +pngread$(O) +pngerror$(O)
OBJSL3 = +pngwrite$(O) +pngrtran$(O) +pngwtran$(O) +pngrio$(O) +pngwio$(O)

all: libpng.lib pngtest.exe

png$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngset$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngget$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngread$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngpread$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngrtran$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngrutil$(O): png.h pngconf.h
		  $(CC) -c $(CFLAGS) $*.c

pngerror$(O): png.h pngconf.h
        $(CC) -c $(CFLAGS) $*.c

pngmem$(O): png.h pngconf.h
        $(CC) -c $(CFLAGS) $*.c

pngrio$(O): png.h pngconf.h
        $(CC) -c $(CFLAGS) $*.c

pngwio$(O): png.h pngconf.h
        $(CC) -c $(CFLAGS) $*.c

pngtest$(O): png.h pngconf.h
        $(CC) -c $(CFLAGS) $*.c

pngtrans$(O): png.h pngconf.h
        $(CC) -c $(CFLAGS) $*.c

pngwrite$(O): png.h pngconf.h
        $(CC) -c $(CFLAGS) $*.c

pngwtran$(O): png.h pngconf.h
        $(CC) -c $(CFLAGS) $*.c

pngwutil$(O): png.h pngconf.h
        $(CC) -c $(CFLAGS) $*.c

libpng.lib: $(OBJS1) $(OBJS2) $(OBJS3)
        $(LIB) libpng +$(OBJSL1)
        $(LIB) libpng +$(OBJSL2)
        $(LIB) libpng +$(OBJSL3)

pngtest$(E): pngtest$(O) libpng.lib
        $(CC) $(LDFLAGS) pngtest.obj libpng.lib zlib.lib

# End of makefile for libpng
