# atari/Makefile.in, the source file for atari/Makefile, is
#
# Copyright (c) 2018-2023 Thorsten Otto
#
# For conditions of distribution and use, see the accompanying README file.

#
# The default library version.
# IJG 9c is incompatible to turbojpeg found in most
# recent distributions, so we stick to 8d instead
#
JPEG_LIB_VERSION = 80

ifeq ($(JPEG_LIB_VERSION),62)
JPEG_VERSION = 6b
endif
ifeq ($(JPEG_LIB_VERSION),70)
JPEG_VERSION = 7
endif
ifeq ($(JPEG_LIB_VERSION),80)
JPEG_VERSION = 8d
endif
ifeq ($(JPEG_LIB_VERSION),90)
JPEG_VERSION = 9c
endif
ifeq ($(JPEG_VERSION),)
$(error unknown JPEG_LIB_VERSION $(JPEG_LIB_VERSION))
endif

LIB_BASENAME = libjpeg$(JPEG_VERSION)

CROSS_PREFIX = m68k-atari-mint-

CC = $(CROSS_PREFIX)gcc
AR = $(CROSS_PREFIX)ar
RANLIB = $(CROSS_PREFIX)ranlib
STRIP = $(CROSS_PREFIX)strip
AWK = awk

srcdir = .
jpeg_srcdir = $(srcdir)/../jpeg-$(JPEG_VERSION)
top_srcdir = ..
top_builddir = ..

CFLAGS = -O2 -g -fomit-frame-pointer
CPPFLAGS = -I. -I$(jpeg_srcdir) -DNO_GETENV -DJPEG_LIB_VERSION=$(JPEG_LIB_VERSION)
SFLAGS = $(CFLAGS) -DJPEG_SLB
MATH_LIB = -lm

ELF := $(strip $(shell (echo "#ifdef __ELF__"; echo yes; echo "#endif") | $(CC) -E -P -))
BUILD_FAST=$(shell if $(CC) -mfastcall -E - < /dev/null >/dev/null 2>&1; then echo yes; else echo no; fi)
ifeq ($(ELF),yes)
CFLAGS += -ffunction-sections -fdata-sections
endif

LDFLAGS=
LDSHARED=$(CC) -s -nostartfiles -Wl,--mprg-flags,0x0f

STATICLIB=$(LIB_BASENAME).a
SHAREDLIB=jpeg$(JPEG_VERSION).slb
IMPORTLIB=$(LIB_BASENAME).slb.a
ALLLIBS=$(STATICLIB) $(SHAREDLIB) $(IMPORTLIB)

ARFLAGS=rcs
LDSHAREDLIBC= -nostdlib -lgcc
TAR=tar
SHELL=/bin/sh
EXE=

prefix = /usr
exec_prefix = ${prefix}
libdir = ${exec_prefix}/lib
bindir = ${exec_prefix}/bin
sharedlibdir = ${prefix}/../mint/slb
includedir = ${prefix}/include
mandir = ${prefix}/share/man
man1dir = ${mandir}/man1
pkgconfigdir = ${libdir}/pkgconfig

OBJS =  jcapimin.o jcapistd.o jccoefct.o jccolor.o jcdctmgr.o jchuff.o \
        jcinit.o jcmainct.o jcmarker.o jcmaster.o jcomapi.o jcparam.o \
        jcprepct.o jcsample.o jctrans.o jdapimin.o jdapistd.o \
        jdatadst.o jdatasrc.o jdcoefct.o jdcolor.o jddctmgr.o jdhuff.o \
        jdinput.o jdmainct.o jdmarker.o jdmaster.o jdmerge.o \
        jdpostct.o jdsample.o jdtrans.o jerror.o jfdctflt.o jfdctfst.o \
        jfdctint.o jidctflt.o jidctfst.o jidctint.o jquant1.o \
        jquant2.o jutils.o jmemmgr.o jmemnobs.o jcicc.o jdicc.o

ifeq ($(JPEG_LIB_VERSION),62)
OBJS += jcphuff.o jdphuff.o jidctred.o
endif
ifeq ($(JPEG_LIB_VERSION),70)
OBJS += jaricom.o jcarith.o jdarith.o
endif
ifeq ($(JPEG_LIB_VERSION),80)
OBJS += jaricom.o jcarith.o jdarith.o
endif
ifeq ($(JPEG_LIB_VERSION),90)
OBJS += jaricom.o jcarith.o jdarith.o
endif

PIC_OBJS = header.lo libinit.lo $(OBJS:.o=.lo)

include gen_imp.mak

IMP_OBJS = libptr.o libopen.o libclose.o slbload.o slbexec.o slbids.o \
	$(GEN_IMP_OBJS)

all: static shared

static: $(STATICLIB) djpeg$(EXE) cjpeg$(EXE) jpegtran$(EXE) rdjpgcom$(EXE) wrjpgcom$(EXE)

shared: $(SHAREDLIB) $(GEN_IMP_OBJS:.o=.c) $(IMPORTLIB) djpegsh$(EXE) cjpegsh$(EXE) jpegtransh$(EXE) rdjpgcomsh$(EXE) wrjpgcomsh$(EXE)

$(GEN_IMP_OBJS:.o=.c) gen_imp.mak: $(srcdir)/genimp.awk $(srcdir)/exports.h
	$(AWK) -f $(srcdir)/genimp.awk $(srcdir)/exports.h

check: test

test: all teststatic testshared

teststatic: static

testshared: shared

$(STATICLIB): $(OBJS)
	$(RM) $@
	$(AR) $(ARFLAGS) $@ $^

$(IMPORTLIB): $(IMP_OBJS)
	$(RM) $@
	$(AR) $(ARFLAGS) $@ $^

$(IMP_OBJS): lib_imp.h exports.h
libopen.o libclose.o: libstrct.h

cjpeg.o: $(jpeg_srcdir)/cjpeg.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

cjpeg.lo: $(jpeg_srcdir)/cjpeg.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

rdppm.o: $(jpeg_srcdir)/rdppm.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

rdppm.lo: $(jpeg_srcdir)/rdppm.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

rdgif.o: $(jpeg_srcdir)/rdgif.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

rdgif.lo: $(jpeg_srcdir)/rdgif.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

rdtarga.o: $(jpeg_srcdir)/rdtarga.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

rdtarga.lo: $(jpeg_srcdir)/rdtarga.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

rdrle.o: $(jpeg_srcdir)/rdrle.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

rdrle.lo: $(jpeg_srcdir)/rdrle.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

rdbmp.o: $(jpeg_srcdir)/rdbmp.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

rdbmp.lo: $(jpeg_srcdir)/rdbmp.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

rdswitch.o: $(jpeg_srcdir)/rdswitch.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

rdswitch.lo: $(jpeg_srcdir)/rdswitch.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

djpeg.o: $(jpeg_srcdir)/djpeg.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

djpeg.lo: $(jpeg_srcdir)/djpeg.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

wrppm.o: $(jpeg_srcdir)/wrppm.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

wrppm.lo: $(jpeg_srcdir)/wrppm.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

wrgif.o: $(jpeg_srcdir)/wrgif.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

wrgif.lo: $(jpeg_srcdir)/wrgif.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

wrtarga.o: $(jpeg_srcdir)/wrtarga.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

wrtarga.lo: $(jpeg_srcdir)/wrtarga.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

wrrle.o: $(jpeg_srcdir)/wrrle.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

wrrle.lo: $(jpeg_srcdir)/wrrle.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

wrbmp.o: $(jpeg_srcdir)/wrbmp.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

wrbmp.lo: $(jpeg_srcdir)/wrbmp.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

rdcolmap.o: $(jpeg_srcdir)/rdcolmap.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

rdcolmap.lo: $(jpeg_srcdir)/rdcolmap.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

cdjpeg.o: $(jpeg_srcdir)/cdjpeg.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

cdjpeg.lo: $(jpeg_srcdir)/cdjpeg.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

jpegtran.o: $(jpeg_srcdir)/jpegtran.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

jpegtran.lo: $(jpeg_srcdir)/jpegtran.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

transupp.o: $(jpeg_srcdir)/transupp.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

transupp.lo: $(jpeg_srcdir)/transupp.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

rdjpgcom.o: $(jpeg_srcdir)/rdjpgcom.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

rdjpgcom.lo: $(jpeg_srcdir)/rdjpgcom.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

wrjpgcom.o: $(jpeg_srcdir)/wrjpgcom.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

wrjpgcom.lo: $(jpeg_srcdir)/wrjpgcom.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<



include_files = jpeglib.h jconfig.h jmorecfg.h jerror.h


$(OBJS) $(PIC_OBJS): \
	$(jpeg_srcdir)/jpeglib.h \
	$(jpeg_srcdir)/jconfig.h \
	$(jpeg_srcdir)/jmorecfg.h \
	$(jpeg_srcdir)/jinclude.h \
	$(jpeg_srcdir)/jerror.h \
	$(jpeg_srcdir)/jpegint.h

$(PIC_OBJS): $(srcdir)/libslb.h $(srcdir)/libstrct.h
header.lo libinit.lo: $(srcdir)/exports.h

j%.o: $(jpeg_srcdir)/j%.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<

j%.lo: $(jpeg_srcdir)/j%.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<




header.lo: $(srcdir)/header.S
	$(CC) $(SFLAGS) $(CPPFLAGS) -DSHAREDLIB=\"$(SHAREDLIB)\" -c -o $@ $<

libinit.lo: $(srcdir)/libinit.c
	$(CC) $(SFLAGS) $(CPPFLAGS) -c -o $@ $<

# slbexec.S must also be compilabe by pure-c, so we cannot preprocess it
# figure out the symbol prefix here
USER_LABEL_PREFIX := $(shell echo '__USER_LABEL_PREFIX__' | $(CC) -E -P - 2>/dev/null)
ASFLAGS = -D_BasPag=$(USER_LABEL_PREFIX)_base -Wa,--register-prefix-optional
slbexec.o: slbexec.S
	$(CC) $(CFLAGS) $(CPPFLAGS) $(ASFLAGS) -c -o $@ $<



$(SHAREDLIB): $(PIC_OBJS) $(STATICLIB)
	$(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS)
	stripex $@

CJPEG_OBJS = cjpeg.o rdppm.o rdgif.o rdtarga.o rdrle.o rdbmp.o rdswitch.o cdjpeg.o
cjpeg$(EXE): $(CJPEG_OBJS) $(STATICLIB)
	$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ $(MATH_LIB)

cjpegsh$(EXE): $(CJPEG_OBJS:.o=.lo) $(IMPORTLIB)
	$(CC) $(SFLAGS) $(CPPFLAGS) -o $@ $^ $(MATH_LIB)

DJPEG_OBJS = djpeg.o wrppm.o wrgif.o wrtarga.o wrrle.o wrbmp.o rdcolmap.o cdjpeg.o
djpeg$(EXE): $(DJPEG_OBJS) $(STATICLIB)
	$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ $(MATH_LIB)

djpegsh$(EXE): $(DJPEG_OBJS:.o=.lo) $(IMPORTLIB)
	$(CC) $(SFLAGS) $(CPPFLAGS) -o $@ $^ $(MATH_LIB)

JPEGTRAN_OBJS = jpegtran.o rdswitch.o cdjpeg.o transupp.o
jpegtran$(EXE): $(JPEGTRAN_OBJS) $(STATICLIB)
	$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ $(MATH_LIB)

jpegtransh$(EXE): $(JPEGTRAN_OBJS:.o=.lo) $(IMPORTLIB)
	$(CC) $(SFLAGS) $(CPPFLAGS) -o $@ $^ $(MATH_LIB)

RDJPGCOM_OBJS = rdjpgcom.o
rdjpgcom$(EXE): $(RDJPGCOM_OBJS) $(STATICLIB)
	$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ $(MATH_LIB)

rdjpgcomsh$(EXE): $(RDJPGCOM_OBJS:.o=.lo) $(IMPORTLIB)
	$(CC) $(SFLAGS) $(CPPFLAGS) -o $@ $^ $(MATH_LIB)

WRJPGCOM_OBJS = wrjpgcom.o
wrjpgcom$(EXE): $(WRJPGCOM_OBJS) $(STATICLIB)
	$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ $(MATH_LIB)

wrjpgcomsh$(EXE): $(WRJPGCOM_OBJS:.o=.lo) $(IMPORTLIB)
	$(CC) $(SFLAGS) $(CPPFLAGS) -o $@ $^ $(MATH_LIB)


install-libs: all libjpeg$(JPEG_VERSION).pc
	-@if [ ! -d $(DESTDIR)$(exec_prefix)  ]; then mkdir -p $(DESTDIR)$(exec_prefix); fi
	-@if [ ! -d $(DESTDIR)$(libdir)       ]; then mkdir -p $(DESTDIR)$(libdir); fi
	-@if [ ! -d $(DESTDIR)$(sharedlibdir) ]; then mkdir -p $(DESTDIR)$(sharedlibdir); fi
	-@if [ ! -d $(DESTDIR)$(man1dir)      ]; then mkdir -p $(DESTDIR)$(man1dir); fi
	-@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi
	$(RM) $(DESTDIR)$(libdir)/$(STATICLIB) $(DESTDIR)$(libdir)/libjpeg.a
	$(RM) $(DESTDIR)$(libdir)/$(IMPORTLIB) $(DESTDIR)$(libdir)/libjpeg.slb.a
	install -m 644 $(STATICLIB) $(IMPORTLIB) $(DESTDIR)$(libdir)
	(cd $(DESTDIR)$(libdir); \
	 ln -s $(STATICLIB) libjpeg.a; \
	 ln -s $(IMPORTLIB) libjpeg.slb.a)
	$(RM) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB) $(DESTDIR)$(sharedlibdir)/libjpeg.slb
	echo "install $(SHAREDLIB) $(DESTDIR)$(sharedlibdir)"
	install -m 755 $(SHAREDLIB) $(DESTDIR)$(sharedlibdir)
	$(RM) $(DESTDIR)$(man1dir)/{cjpeg,djpeg,jpegtran,rdjpgcom,wrjpgcom}
	install -m 644 $(jpeg_srcdir)/{cjpeg,djpeg,jpegtran,rdjpgcom,wrjpgcom}.1 $(DESTDIR)$(man1dir)
	$(RM) $(DESTDIR)$(pkgconfigdir)/libjpeg$(JPEG_VERSION).pc
	install -m 644 libjpeg$(JPEG_VERSION).pc $(DESTDIR)$(pkgconfigdir)
	(cd $(DESTDIR)$(pkgconfigdir); \
	 rm -f libjpeg.pc; \
	 ln -s libjpeg$(JPEG_VERSION).pc libjpeg.pc )

install: install-libs
	-@if [ ! -d $(DESTDIR)$(includedir)   ]; then mkdir -p $(DESTDIR)$(includedir); fi
	-@if [ ! -d $(DESTDIR)$(includedir)/slb   ]; then mkdir -p $(DESTDIR)$(includedir)/slb; fi
	-@if [ ! -d $(DESTDIR)$(exec_prefix)/bin  ]; then mkdir -p $(DESTDIR)$(exec_prefix)/bin; fi
	for i in $(include_files); do $(RM) $(DESTDIR)$(includedir)/$$i; done
	$(RM)  $(DESTDIR)$(includedir)/slb/jpeg.h
	for i in $(include_files); do install -m 644 $(jpeg_srcdir)/$$i $(DESTDIR)$(includedir); done
	install -m 644 $(srcdir)/slb/jpeg.h $(srcdir)/slb/slbids.h $(DESTDIR)$(includedir)/slb
	install -m 755 cjpegsh$(EXE) $(DESTDIR)$(exec_prefix)/bin/cjpeg$(EXE)
	install -m 755 djpegsh$(EXE) $(DESTDIR)$(exec_prefix)/bin/djpeg$(EXE)

install-strip: install
	$(STRIP) -g -x $(DESTDIR)$(libdir)/$(STATICLIB)
	$(RANLIB) $(DESTDIR)$(libdir)/$(STATICLIB)
	$(STRIP) -g -x $(DESTDIR)$(libdir)/$(IMPORTLIB)
	$(RANLIB) $(DESTDIR)$(libdir)/$(IMPORTLIB)
	$(STRIP) $(DESTDIR)$(exec_prefix)/bin/cjpeg$(EXE) $(DESTDIR)$(exec_prefix)/bin/djpeg$(EXE)

uninstall:
	for i in $(include_files); do $(RM) $(DESTDIR)$(includedir)/$$i; done
	$(RM) $(DESTDIR)$(includedir)/slb/jpeg.h
	$(RM) $(DESTDIR)$(libdir)/$(STATICLIB) $(DESTDIR)$(libdir)/$(IMPORTLIB)
	$(RM) $(DESTDIR)$(man1dir)/{cjpeg,djpeg,jpegtran,rdjpgcom,wrjpgcom}.1*
	$(RM) $(DESTDIR)$(pkgconfigdir)/jpeg$(JPEG_VERSION)
	$(RM) $(DESTDIR)$(exec_prefix)/bin/cjpeg$(EXE) $(DESTDIR)$(exec_prefix)/bin/cjpeg$(EXE)

libjpeg$(JPEG_VERSION).pc: Makefile
	@(echo "prefix=$(prefix)"; \
	 echo 'exec_prefix=$${prefix}'; \
	 echo 'libdir=$${exec_prefix}/lib'; \
	 echo 'bindir=$${exec_prefix}/bin'; \
	 echo 'includedir=$${prefix}/include'; \
	 echo 'sharedlibdir=$${prefix}/../mint/slb'; \
	 echo ""; \
	 echo "Name: libjpeg"; \
	 echo "Description: Reads and writes JPEG files"; \
	 echo "Version: $(JPEG_LIB_VERSION)"; \
	 echo "Requires: "; \
	 echo "Libs: -ljpeg.slb $(MATH_LIB)"; \
	 echo "Libs.private: $(MATH_LIB)"; \
	 echo "Cflags: -DJPEG_SLB"; \
	) > $@

bindist:
	$(MAKE) DESTDIR=/tmp/t/jpeg$(JPEG_VERSION) PUREC=/windows/c/atari/pc/lib allbindist

allbindist:
ifeq ($(BUILD_FAST),yes)
	for version in 62 70 80; do \
		$(MAKE) clean; \
		$(MAKE) -j8 JPEG_LIB_VERSION=$$version CFLAGS="$(CFLAGS) -m68020-60 -mfastcall" || exit 1; \
		$(MAKE) JPEG_LIB_VERSION=$$version libdir="$(libdir)/m68020-60/mfastcall" sharedlibdir=$(sharedlibdir)/020 install-strip || exit 1; \
		rm -rf $(DESTDIR)$(libdir)/m68020-60/mfastcall/pkgconfig; \
		$(MAKE) clean; \
		$(MAKE) -j8 JPEG_LIB_VERSION=$$version CFLAGS="$(CFLAGS) -mcpu=5475 -mfastcall" || exit 1; \
		$(MAKE) JPEG_LIB_VERSION=$$version libdir="$(libdir)/m5475/mfastcall" sharedlibdir=$(sharedlibdir)/v4e install-strip || exit 1; \
		rm -rf $(DESTDIR)$(libdir)/m5475/mfastcall/pkgconfig; \
		$(MAKE) clean; \
		$(MAKE) -j8 JPEG_LIB_VERSION=$$version CFLAGS="$(CFLAGS) -m68000 -mfastcall" || exit 1; \
		$(MAKE) JPEG_LIB_VERSION=$$version libdir="$(libdir)/mfastcall" sharedlibdir=$(sharedlibdir)/000 install-strip || exit 1; \
		rm -rf $(DESTDIR)$(libdir)/mfastcall/pkgconfig; \
	done
endif
	for version in 62 70 80; do \
		$(MAKE) clean; \
		$(MAKE) -j8 JPEG_LIB_VERSION=$$version CFLAGS="$(CFLAGS) -m68020-60" || exit 1; \
		$(MAKE) JPEG_LIB_VERSION=$$version libdir="$(libdir)/m68020-60" sharedlibdir=$(sharedlibdir)/020 install-strip || exit 1; \
		rm -rf $(DESTDIR)$(libdir)/m68020-60/pkgconfig; \
		$(MAKE) clean; \
		$(MAKE) -j8 JPEG_LIB_VERSION=$$version CFLAGS="$(CFLAGS) -mcpu=5475" || exit 1; \
		$(MAKE) JPEG_LIB_VERSION=$$version libdir="$(libdir)/m5475" sharedlibdir=$(sharedlibdir)/v4e install-strip || exit 1; \
		rm -rf $(DESTDIR)$(libdir)/m5475/pkgconfig; \
		$(MAKE) clean; \
		$(MAKE) -j8 JPEG_LIB_VERSION=$$version CFLAGS="$(CFLAGS) -m68000" || exit 1; \
		$(MAKE) JPEG_LIB_VERSION=$$version libdir="$(libdir)" sharedlibdir=$(sharedlibdir)/000 install-strip || exit 1; \
	done
	install -m 755 $(SHAREDLIB) $(DESTDIR)$(sharedlibdir)
	install -d $(DESTDIR)$(bindir)
	$(RM) $(DESTDIR)$(mandir)/*/*.gz
	gzip $(DESTDIR)$(mandir)/*/*
	install -d $(DESTDIR)/purec/include/slb $(DESTDIR)/purec/lib/000 $(DESTDIR)/purec/lib/020 $(DESTDIR)/purec/bin
	for i in $(include_files); do install -m 644 $(jpeg_srcdir)/$$i $(DESTDIR)/purec/include/$$i; done
	install -m 644 $(srcdir)/slb/jpeg.h $(srcdir)/slb/slbids.h $(DESTDIR)/purec/include/slb
	cd $(DESTDIR)/purec/include && cr2nl -R -d .
	for version in 6 7 8; do \
		install -m 644 $(PUREC)/000/jpeg$$version.lib $(PUREC)/000/jpegslb$$version.lib $(DESTDIR)/purec/lib/000; \
		install -m 644 $(PUREC)/020/jpeg$$version.lib $(PUREC)/020/jpegslb$$version.lib $(DESTDIR)/purec/lib/020; \
	done
	install -m 755 $(PUREC)/000/cjpeg8.tos $(DESTDIR)/purec/bin/cjpeg.tos
	install -m 755 $(PUREC)/000/djpeg8.tos $(DESTDIR)/purec/bin/djpeg.tos
	install -m 755 $(PUREC)/000/jpegtran.tos $(DESTDIR)/purec/bin
	$(MAKE) clean
	install -m 644 READ_SLB.txt $(DESTDIR)
	cd $(DESTDIR)/..; $(RM) jpeg$(JPEG_VERSION).tbz; tar cvfj jpeg$(JPEG_VERSION).tbz `basename $(DESTDIR)`
	cd $(srcdir)/..; git archive --prefix=jpeg-$(JPEG_VERSION)-slb/ HEAD | bzip2 > $(DESTDIR)/../jpeg-$(JPEG_VERSION)-slb.tar.bz2

mostlyclean: clean
clean:
	$(RM) *.o *.lo *.a \
		$(GEN_IMP_OBJS:.o=.c) \
		cjpeg$(EXE) cjpegsh$(EXE) \
		djpeg$(EXE) djpegsh$(EXE) \
		$(STATICLIB) $(IMPORTLIB) $(SHAREDLIB) libjpeg$(JPEG_VERSION).pc
	$(RM) testout*

maintainer-clean: distclean
distclean: clean docs
	$(RM) Makefile
	-@$(RM) .DS_Store

# Run tests
check: check-static check-shared

check-static: static
	$(RM) testout*
	./djpeg -dct int -ppm -outfile testout.ppm $(jpeg_srcdir)/testorig.jpg
	./djpeg -dct int -bmp -colors 256 -outfile testout.bmp $(jpeg_srcdir)/testorig.jpg
	./cjpeg -dct int -outfile testout.jpg $(jpeg_srcdir)/testimg.ppm
	./djpeg -dct int -ppm -outfile testoutp.ppm $(jpeg_srcdir)/testprog.jpg
	./cjpeg -dct int -progressive -opt -outfile testoutp.jpg $(jpeg_srcdir)/testimg.ppm
	./jpegtran -outfile testoutt.jpg $(jpeg_srcdir)/testprog.jpg
	cmp $(jpeg_srcdir)/testimg.ppm testout.ppm
	cmp $(jpeg_srcdir)/testimg.bmp testout.bmp
	cmp $(jpeg_srcdir)/testimg.jpg testout.jpg
	cmp $(jpeg_srcdir)/testimg.ppm testoutp.ppm
	cmp $(jpeg_srcdir)/testimgp.jpg testoutp.jpg
	cmp $(jpeg_srcdir)/testorig.jpg testoutt.jpg

check-shared: shared
	$(RM) testout*
	./djpegsh -dct int -ppm -outfile testout.ppm $(jpeg_srcdir)/testorig.jpg
	./djpegsh -dct int -bmp -colors 256 -outfile testout.bmp $(jpeg_srcdir)/testorig.jpg
	./cjpegsh -dct int -outfile testout.jpg $(jpeg_srcdir)/testimg.ppm
	./djpegsh -dct int -ppm -outfile testoutp.ppm $(jpeg_srcdir)/testprog.jpg
	./cjpegsh -dct int -progressive -opt -outfile testoutp.jpg $(jpeg_srcdir)/testimg.ppm
	./jpegtransh -outfile testoutt.jpg $(jpeg_srcdir)/testprog.jpg
	cmp $(jpeg_srcdir)/testimg.ppm testout.ppm
	cmp $(jpeg_srcdir)/testimg.bmp testout.bmp
	cmp $(jpeg_srcdir)/testimg.jpg testout.jpg
	cmp $(jpeg_srcdir)/testimg.ppm testoutp.ppm
	cmp $(jpeg_srcdir)/testimgp.jpg testoutp.jpg
	cmp $(jpeg_srcdir)/testorig.jpg testoutt.jpg
