#!/bin/bash


#--- using: GCC 3.3.2 ---


# set constants ----------------------------------------------------------------
COMPILER=g++
LINKER=g++
COMPILE_OPTIONS="-c -x c++ -ansi -std=c++98 -pedantic -fno-gnu-keywords -fno-enforce-eh-specs -fno-rtti -O3 -ffast-math -mfpmath=sse -msse -Wall -Wold-style-cast -Woverloaded-virtual -Wsign-promo -Wcast-align -Wwrite-strings -Winline -Wdisabled-optimization -D TESTING -Igeneral -Igraphics -Iimage"


mkdir obj
rm obj/*


# compile ----------------------------------------------------------------------
echo
$COMPILER --version
echo "--- compile ---"

$COMPILER $COMPILE_OPTIONS general/Array.cpp -o obj/Array.o
$COMPILER $COMPILE_OPTIONS general/Bounded.cpp -o obj/Bounded.o
$COMPILER $COMPILE_OPTIONS general/Clamps.cpp -o obj/Clamps.o
$COMPILER $COMPILE_OPTIONS general/Float01.cpp -o obj/Float01.o
$COMPILER $COMPILE_OPTIONS general/FpToInt.cpp -o obj/FpToInt.o
$COMPILER $COMPILE_OPTIONS general/LogFast.cpp -o obj/LogFast.o
$COMPILER $COMPILE_OPTIONS general/PowFast.cpp -o obj/PowFast.o
$COMPILER $COMPILE_OPTIONS general/RandomMwc1.cpp -o obj/RandomMwc1.o
$COMPILER $COMPILE_OPTIONS general/RandomMwc2.cpp -o obj/RandomMwc2.o
$COMPILER $COMPILE_OPTIONS general/Sheet.cpp -o obj/Sheet.o

$COMPILER $COMPILE_OPTIONS graphics/ColorConstants.cpp -o obj/ColorConstants.o
$COMPILER $COMPILE_OPTIONS graphics/ColorSpace.cpp -o obj/ColorSpace.o
$COMPILER $COMPILE_OPTIONS graphics/Coord2.cpp -o obj/Coord2.o
$COMPILER $COMPILE_OPTIONS graphics/Filters.cpp -o obj/Filters.o
$COMPILER $COMPILE_OPTIONS graphics/HaltonSequence.cpp -o obj/HaltonSequence.o
$COMPILER $COMPILE_OPTIONS graphics/Matrix3f.cpp -o obj/Matrix3f.o
$COMPILER $COMPILE_OPTIONS graphics/Matrix4f.cpp -o obj/Matrix4f.o
$COMPILER $COMPILE_OPTIONS graphics/Polar.cpp -o obj/Polar.o
$COMPILER $COMPILE_OPTIONS graphics/Quaternion.cpp -o obj/Quaternion.o
$COMPILER $COMPILE_OPTIONS graphics/SobolSequence.cpp -o obj/SobolSequence.o
$COMPILER $COMPILE_OPTIONS graphics/Spherahedron.cpp -o obj/Spherahedron.o
$COMPILER $COMPILE_OPTIONS graphics/UnitVector3f.cpp -o obj/UnitVector3f.o
$COMPILER $COMPILE_OPTIONS graphics/Vector3f.cpp -o obj/Vector3f.o
$COMPILER $COMPILE_OPTIONS graphics/Vector4f.cpp -o obj/Vector4f.o
$COMPILER $COMPILE_OPTIONS graphics/XyzE.cpp -o obj/XyzE.o

$COMPILER $COMPILE_OPTIONS image/ImageQuantizing.cpp -o obj/ImageQuantizing.o
$COMPILER $COMPILE_OPTIONS image/PixelsPtr.cpp -o obj/PixelsPtr.o
$COMPILER $COMPILE_OPTIONS image/ppm.cpp -o obj/ppm.o
$COMPILER $COMPILE_OPTIONS image/rgbe.cpp -o obj/rgbe.o
$COMPILER $COMPILE_OPTIONS image/StreamExceptionSet.cpp -o obj/StreamExceptionSet.o

$COMPILER $COMPILE_OPTIONS hxa7241_cpp_library_tester.cpp -o obj/hxa7241_cpp_library_tester.o


# link -------------------------------------------------------------------------
echo
echo "--- link ---"

$LINKER -o hxa7241_cpp_library_tester obj/*.o


rm obj/*


echo
echo "--- done ---"


exit
