#
# MinGWŃRpCł̂mFB
#
# mingw32-make.exegꍇ͈ȉ̃R}hŃRpCł͂B
#    mingw32-make.exe -f makefile
# -ftYꂵ₷łB
#
#
# RpC邽߂ɂ͉LTCg̃CuKvłB
# http://cetus.sakura.ne.jp/softlab/jpeg-x86simd/jpegsimd.html
#
# IvV
# input   jpeg_input.auirh
# output  jpeg_output.auorh
# print   jpeg_print.aufrh
# asm     AZuR[ho
#
#

CC = gcc
CXX = g++
RC = windres
CFLAGS = -O2 -march=i686 -mtune=generic -mmmx -fomit-frame-pointer -Wall
LDFLAGS  = -s -shared -Wl,--dll,--add-stdcall-alias
LIBS = -L. -llibjpeg-62
RM = del

all: input output print

input: jpeg_input.aui
jpeg_input.aui: jpeg_input.o
	$(CXX) jpeg_input.o $(LDFLAGS) $(LIBS) -o jpeg_input.aui
jpeg_input.o: jpeg_input.cpp
	$(CXX) -c -o jpeg_input.o jpeg_input.cpp $(CFLAGS)

output: jpeg_output.auo
jpeg_output.auo: jpeg_output.o jpeg_output.res
	$(CXX) jpeg_output.o jpeg_output.res $(LDFLAGS) $(LIBS) -o jpeg_output.auo
jpeg_output.o: jpeg_output.cpp jpeg_output.h quant_tbl.h
	$(CXX) -c -o jpeg_output.o jpeg_output.cpp $(CFLAGS)
jpeg_output.res: jpeg_output.rc jpeg_output.h
	$(RC) --input-format=rc --output-format=coff --language=0411 -o jpeg_output.res -i jpeg_output.rc

print: jpeg_print.auf
jpeg_print.auf: jpeg_print.o jpeg_print.res
	$(CXX) jpeg_print.o jpeg_print.res $(LDFLAGS) $(LIBS) -mwindows -o jpeg_print.auf
jpeg_print.o: jpeg_print.cpp jpeg_print.h quant_tbl.h
	$(CXX) -c -o jpeg_print.o jpeg_print.cpp $(CFLAGS)
jpeg_print.res: jpeg_print.rc jpeg_print.h
	$(RC) --input-format=rc --output-format=coff --language=0411 -o jpeg_print.res -i jpeg_print.rc

# AZuR[ho
asm: jpeg_input.s jpeg_output.s jpeg_print.s
.SUFFIXES: .s .cpp
.cpp.s:
	$(CXX) -S -o $@ $< $(CFLAGS)

# t@C폜
clean:
	$(RM) jpeg_input.o jpeg_output.o jpeg_print.o
	$(RM) jpeg_input.s jpeg_output.s jpeg_print.s
	$(RM) jpeg_output.res jpeg_print.res
