OS=$(shell uname)

AR=ar

ifeq ($(OS),CYGWIN_NT-5.1)
_CYGWIN=1
endif

ifeq ($(OS),Linux)
CXX=g++
endif

ifeq ($(OS),Darwin)
CXX=g++-4.2
endif

ifeq ($(_CYGWIN),1)
CXX=/valve/gcc-4.2.4-windows/bin/g++
AR=/gcc/ar
RUN_RANLIB=ranlib libjpeg.a
endif

HOST_CFLAGS=-O3 -DfPIC
JPEG_CFLAGS := 
JPEG_HCFLAGS := $(JPEG_CFLAGS) -msse -mfpmath=sse

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


JPEG_TARGETS := djpeg

OBJDIRS += jpeg
CLEAN_FILES += $(JPEG_DOBJS) $(JPEG_NOBJS) $(JPEG_TARGETS)

JPEG_HDOBJS := $(patsubst %.c,%.o,$(JPEG_SRCS))
CLEAN_FILES += $(JPEG_HDOBJS) jpeg/hdjpeg

hdjpeg: $(JPEG_HDOBJS)
	$(AR) rs libjpeg.a $(JPEG_HDOBJS);
	$(RUN_RANLIB)

%.o: %.c
	$(CXX) -o $@ $(HOST_CFLAGS) $(JPEG_HCFLAGS) -c $<

clean:
	rm *.o

all: $(JPEG_TARGETS)