# Makefile for Independent JPEG Group's software
# Modified for hiview

# This makefile is suitable for DJ GCC on MSDOS machines

# Thanks to Tom Wright and Ge' Weijers for this file.

# Read SETUP instructions before saying "make" !!

# The name of your C compiler:
CC= gcc

# Debug flags
# DEBUG= -v
DEBUG= 

# Memory model
MODEL= m

CFLAGS= $(DEBUG)
# -DHAVE_STDC -DINCLUDES_ARE_ANSI enable ANSI-C features (we DON'T want -A)
# -ms selects small memory model for most efficient code
# -DMSDOS enables DOS-specific code
# -DINCOMPLETE_TYPES_BROKEN suppresses bogus warning about undefined structures
# -w-par suppresses warnings about unused function parameters
# -O2 enables full code optimization (for pre-3.0 Borland C++, use -O -G -Z)

# Link-time cc options:
LDFLAGS= 
# memory model option here must match CFLAGS!


# source files (independently compilable files)
SOURCES= jbsmooth.c jcarith.c jccolor.c jcdeflts.c jcexpand.c jchuff.c \
        jcmain.c jcmaster.c jcmcu.c jcpipe.c jcsample.c jdarith.c jdcolor.c \
        jddeflts.c jdhuff.c jdmain.c jdmaster.c jdmcu.c jdpipe.c jdsample.c \
        jerror.c jquant1.c jquant2.c jfwddct.c jrevdct.c jutils.c jmemmgr.c \
        jrdjfif.c jrdgif.c jrdppm.c jrdrle.c jrdtarga.c jwrjfif.c jwrgif.c \
        jwrppm.c jwrrle.c jwrtarga.c
# virtual source files (not present in distribution file)
VIRTSOURCES= jmemsys.c
# system-dependent implementations of source files
SYSDEPFILES= jmemansi.c jmemname.c jmemnobs.c
# files included by source files
INCLUDES= jinclude.h jconfig.h jpegdata.h jversion.h jmemsys.h egetopt.c
# documentation, test, and support files
DOCS= README SETUP USAGE CHANGELOG cjpeg.1 djpeg.1 architecture codingrules
MAKEFILES= makefile.ansi makefile.unix makefile.manx makefile.sas \
        makefile.mc5 makefile.mc6 makcjpeg.lnk makdjpeg.lnk makefile.bcc \
        makcjpeg.lst makdjpeg.lst makefile.pwc makcjpeg.cf makdjpeg.cf \
        makljpeg.cf makefile.mms makefile.vms makvms.opt
OTHERFILES= ansi2knr.c ckconfig.c example.c
TESTFILES= testorig.jpg testimg.ppm testimg.gif testimg.jpg
DISTFILES= $(DOCS) $(MAKEFILES) $(SOURCES) $(SYSDEPFILES) $(INCLUDES) \
        $(OTHERFILES) $(TESTFILES)
# objectfiles common to cjpeg and djpeg
COMOBJECTS= jutils.o jerror.o jmemmgr.o jmemsys.o 
# compression objectfiles
CLIBOBJECTS= jcmaster.o jcdeflts.o jcarith.o jccolor.o jcexpand.o \
        jchuff.o jcmcu.o jcpipe.o jcsample.o jfwddct.o \
        jwrjfif.o jrdgif.o jrdppm.o jrdrle.o jrdtarga.o
COBJECTS= jcmain.o $(CLIBOBJECTS) $(COMOBJECTS)
# decompression objectfiles
DLIBOBJECTS= jdmaster.o jddeflts.o jbsmooth.o jdarith.o jdcolor.o \
        jdhuff.o jdmcu.o jdpipe.o jdsample.o jquant1.o \
        jquant2.o jrevdct.o jrdjfif.o jwrgif.o jwrppm.o \
        jwrrle.o jwrtarga.o
DOBJECTS= jdmain.o $(DLIBOBJECTS) $(COMOBJECTS)
# viewer object files
VOBJECTS= range.o mypow.o fnsplit.o hicolor.o jrdgif.o jrdtarga.o viewer.o $(DLIBOBJECTS) $(COMOBJECTS) dither.o
# These objectfiles are included in libjpeg.lib
LIBOBJECTS= $(CLIBOBJECTS) $(DLIBOBJECTS) $(COMOBJECTS)


all: hiview.out

cjpeg.exe: $(COBJECTS)
        $(CC) $(LDFLAGS) -ecjpeg.exe @makcjpeg.lst

djpeg.exe: $(DOBJECTS)
        $(CC) $(LDFLAGS) -edjpeg.exe @makdjpeg.lst

hiview.out: $(VOBJECTS)
        $(CC) $(LDFLAGS)  -o hiview.out @mkhiview.lst -lpc -lm -lgrx

jview.out: $(VOBJECTS) jview.o
        $(CC) $(LDFLAGS)  -o jview.out @mkjview.lst -lpc -lm -lgr

.c.o:
        $(CC) $(CFLAGS) -I/lang/djgcc/contrib/libgrx/include -c $<

clean:
        del *.o
        del cjpeg.exe
        del djpeg.exe
        del testout.*

zip:
        pkzip hiview.zip @zip.lst

test:
        del testout.*
        djpeg testorig.jpg testout.ppm
        djpeg -G testorig.jpg testout.gif
        cjpeg testimg.ppm testout.jpg
        fc testimg.ppm testout.ppm
        fc testimg.gif testout.gif
        fc testimg.jpg testout.jpg

range.o: range.c
mypow.o: mypow.c mypow.h
fnsplit.o: fnsplit.c
dither.o: dither.c dither.h
hicolor.o : hicolor.c hicolor.h jinclude.h
jbsmooth.o : jbsmooth.c jinclude.h jconfig.h jpegdata.h
jcarith.o : jcarith.c jinclude.h jconfig.h jpegdata.h
jccolor.o : jccolor.c jinclude.h jconfig.h jpegdata.h
jcdeflts.o : jcdeflts.c jinclude.h jconfig.h jpegdata.h
jcexpand.o : jcexpand.c jinclude.h jconfig.h jpegdata.h
jchuff.o : jchuff.c jinclude.h jconfig.h jpegdata.h
jcmain.o : jcmain.c jinclude.h jconfig.h jpegdata.h jversion.h egetopt.c
jcmaster.o : jcmaster.c jinclude.h jconfig.h jpegdata.h
jcmcu.o : jcmcu.c jinclude.h jconfig.h jpegdata.h
jcpipe.o : jcpipe.c jinclude.h jconfig.h jpegdata.h
jcsample.o : jcsample.c jinclude.h jconfig.h jpegdata.h
jdarith.o : jdarith.c jinclude.h jconfig.h jpegdata.h
jdcolor.o : jdcolor.c jinclude.h jconfig.h jpegdata.h 
jddeflts.o : jddeflts.c jinclude.h jconfig.h jpegdata.h
jdhuff.o : jdhuff.c jinclude.h jconfig.h jpegdata.h
jdmain.o : jdmain.c jinclude.h jconfig.h jpegdata.h jversion.h egetopt.c
jdmaster.o : jdmaster.c jinclude.h jconfig.h jpegdata.h
jdmcu.o : jdmcu.c jinclude.h jconfig.h jpegdata.h 
jdpipe.o : jdpipe.c jinclude.h jconfig.h jpegdata.h
jdsample.o : jdsample.c jinclude.h jconfig.h jpegdata.h
jerror.o : jerror.c jinclude.h jconfig.h jpegdata.h
jquant1.o : jquant1.c jinclude.h jconfig.h jpegdata.h
jquant2.o : jquant2.c jinclude.h jconfig.h jpegdata.h
jfwddct.o : jfwddct.c jinclude.h jconfig.h jpegdata.h
jrevdct.o : jrevdct.c jinclude.h jconfig.h jpegdata.h
jutils.o : jutils.c jinclude.h jconfig.h jpegdata.h
jmemmgr.o : jmemmgr.c jinclude.h jconfig.h jpegdata.h jmemsys.h
jrdjfif.o : jrdjfif.c jinclude.h jconfig.h jpegdata.h
jrdgif.o : jrdgif.c jinclude.h jconfig.h jpegdata.h
jrdppm.o : jrdppm.c jinclude.h jconfig.h jpegdata.h
jrdrle.o : jrdrle.c jinclude.h jconfig.h jpegdata.h
jrdtarga.o : jrdtarga.c jinclude.h jconfig.h jpegdata.h
jwrjfif.o : jwrjfif.c jinclude.h jconfig.h jpegdata.h
jwrgif.o : jwrgif.c jinclude.h jconfig.h jpegdata.h
jwrppm.o : jwrppm.c jinclude.h jconfig.h jpegdata.h
jwrrle.o : jwrrle.c jinclude.h jconfig.h jpegdata.h
jwrtarga.o : jwrtarga.c jinclude.h jconfig.h jpegdata.h
jmemsys.o : jmemsys.c jinclude.h jconfig.h jpegdata.h jmemsys.h
viewer.o : viewer.c hicolor.h jinclude.h jmemsys.h viewer.h dither.h mypow.h
jview.o: viewer.c hicolor.h jinclude.h jmemsys.h viewer.h dither.h mypow.h
     $(CC) $(CFLAGS) -I/lang/djgcc/contrib/libgrx/include -c -o jview.o -DOLD_DRIVERS viewer.c

