# Makefile for Independent JPEG Group's software

# This makefile is for Microsoft C for MS-DOS, version 5.x.

# See README and edit jconfig.h before saying "make" !!

# Microsoft's brain-damaged version of make uses nonstandard syntax (a blank
# line is needed to terminate a command list) and it simply scans the rules
# in order, rather than doing a true dependency-tree walk.  Furthermore,
# expanded command lines can't exceed 128 chars (this is a DOS bug, not
# make's fault); so we can't just name all the objectfiles in the link steps.
# Instead we shove each objectfile into a library as it is made, and link
# from the library.  The objectfiles are also kept separately as timestamps.

# You may need to adjust these cc options:
CFLAGS=  /AS /I. /W3 /Oail /Gs /DMEM_STATS  # NB: /Gs turns off stack oflo checks
LDFLAGS= /Fm /F 2000  # /F hhhh  sets stack size (in hex)
# In particular:
#   Add /DMSDOS if your compiler doesn't automatically #define MSDOS.
#   Add /DHAVE_GETOPT if your library includes getopt(3) (see jcmain.c, jdmain.c).
#   /DMEM_STATS is optional -- it enables gathering of memory usage statistics.

# compression objectfiles
COBJECTS = jcmain.obj jcmaster.obj jcdeflts.obj jcarith.obj jccolor.obj jcexpand.obj \
	   jchuff.obj jcmcu.obj jcpipe.obj jcsample.obj jfwddct.obj \
	   jrdgif.obj jrdppm.obj jwrjfif.obj \
	   jutils.obj jvirtmem.obj jerror.obj
# decompression objectfiles
DOBJECTS = jdmain.obj jdmaster.obj jbsmooth.obj jdarith.obj jdcolor.obj jdhuff.obj \
	   jdmcu.obj jdpipe.obj jdsample.obj jquant1.obj jquant2.obj jrevdct.obj \
	   jrdjfif.obj jwrgif.obj jwrppm.obj \
	   jutils.obj jvirtmem.obj jerror.obj


# inference rule used for all compilations except jcmain.c, jdmain.c
# notice that objectfile is also inserted into libjpeg.lib
.c.obj:
	cl $(CFLAGS) /c $*.c
	lib libjpeg -+$*.obj;

# these two objectfiles are not inserted into libjpeg
# because they have duplicate global symbol names (notably main()).
jcmain.obj: jcmain.c jinclude.h jconfig.h jpegdata.h egetopt.c 
	cl $(CFLAGS) /c $*.c

jdmain.obj: jdmain.c jinclude.h jconfig.h jpegdata.h egetopt.c
	cl $(CFLAGS) /c $*.c


jbsmooth.obj: jbsmooth.c jinclude.h jconfig.h jpegdata.h 

jcarith.obj: jcarith.c jinclude.h jconfig.h jpegdata.h 

jccolor.obj: jccolor.c jinclude.h jconfig.h jpegdata.h 

jcdeflts.obj: jcdeflts.c jinclude.h jconfig.h jpegdata.h 

jcexpand.obj: jcexpand.c jinclude.h jconfig.h jpegdata.h 

jchuff.obj: jchuff.c jinclude.h jconfig.h jpegdata.h 

jcmaster.obj: jcmaster.c jinclude.h jconfig.h jpegdata.h 

jcmcu.obj: jcmcu.c jinclude.h jconfig.h jpegdata.h 

jcpipe.obj: jcpipe.c jinclude.h jconfig.h jpegdata.h 

jcsample.obj: jcsample.c jinclude.h jconfig.h jpegdata.h 

jdarith.obj: jdarith.c jinclude.h jconfig.h jpegdata.h 

jdcolor.obj: jdcolor.c jinclude.h jconfig.h jpegdata.h 

jdhuff.obj: jdhuff.c jinclude.h jconfig.h jpegdata.h 

jdmaster.obj: jdmaster.c jinclude.h jconfig.h jpegdata.h 

jdmcu.obj: jdmcu.c jinclude.h jconfig.h jpegdata.h 

jdpipe.obj: jdpipe.c jinclude.h jconfig.h jpegdata.h 

jdsample.obj: jdsample.c jinclude.h jconfig.h jpegdata.h 

jerror.obj: jerror.c jinclude.h jconfig.h jpegdata.h 

jfwddct.obj: jfwddct.c jinclude.h jconfig.h jpegdata.h 

jquant1.obj: jquant1.c jinclude.h jconfig.h jpegdata.h 

jquant2.obj: jquant2.c jinclude.h jconfig.h jpegdata.h 

jrdjfif.obj: jrdjfif.c jinclude.h jconfig.h jpegdata.h 

jrdgif.obj: jrdgif.c jinclude.h jconfig.h jpegdata.h 

jrdppm.obj: jrdppm.c jinclude.h jconfig.h jpegdata.h 

jrevdct.obj: jrevdct.c jinclude.h jconfig.h jpegdata.h 

jutils.obj: jutils.c jinclude.h jconfig.h jpegdata.h 

jvirtmem.obj: jvirtmem.c jinclude.h jconfig.h jpegdata.h 

jwrjfif.obj: jwrjfif.c jinclude.h jconfig.h jpegdata.h 

jwrgif.obj: jwrgif.c jinclude.h jconfig.h jpegdata.h 

jwrppm.obj: jwrppm.c jinclude.h jconfig.h jpegdata.h 


cjpeg.exe: $(COBJECTS)
	cl /Fecjpeg.exe jcmain.obj libjpeg.lib $(LDFLAGS)

djpeg.exe: $(DOBJECTS)
	cl /Fedjpeg.exe jdmain.obj libjpeg.lib $(LDFLAGS)
