

# #############################################################

LIB_RENDER   = "LIB      = -L../../lib -limage -lgraph -lload -liman -lshade -leye -lOS_X -lputil -lmath3d -ldecjpeg -ltiff -lm"
LIB_ANITROLL = "LIB      = -L../../lib -lanitroll -limage -lgraph -lload -liman -lshade -leye -lOS_X -lputil -lmath3d -ldecjpeg -ltiff -lm"
LIB_DARKHOUR = "LIB      = -L../../lib -lfx -ldark -lgame -lanitroll -limage -lgraph -lload -liman -leye -lOS_X -lputil -lmath3d -ltiff -ldecjpeg -lm"
LIB_IMAGE    = "LIBIMAGE = -L../lib -limage -lgraph -liman -leye -lOS_X -lputil -lmath3d -ldecjpeg -ltiff -lm"
LIB_GEOM     = "LIBGEOM  = -L../lib -lpopt -lgame -lanitroll -limage -lgraph -lload -liman -leye -lOS_X -lputil -lmath3d -ldecjpeg -ltiff -lm"
LIB_GAME     = "LIBGAME  = -L../lib -lgame -lanitroll -limage -lgraph -lload -liman -leye -lOS_X -lputil -lmath3d -ldecjpeg -ltiff -lm"
LIB_CONVERT  = "LIB      = -L../../lib -lgame -lanitroll -limage -lgraph -lload -liman -leye -lputil -lmath3d -ldecjpeg -ltiff -lm"
LIB_3DV      = "LIB      = -L../../lib -lcsphr -lgame -lanitroll -limage -lgraph -lload -liman -leye -lOS_X -lputil -lmath3d -ldecjpeg -ltiff -lm"

# #############################################################

all: depend
	cd 3rdparty/tiff;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libtiff.$(SLAVEEXT)"
	cp 3rdparty/tiff/mkversion bin
	cp 3rdparty/tiff/mkg3states bin

	cd 3rdparty/jpeg;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libdecjpeg.$(SLAVEEXT)"
	cd src/eye;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libeye.$(SLAVEEXT)"
	cd src/math3d;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libmath3d.$(SLAVEEXT)"
	cd src/image;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libimage.$(SLAVEEXT)"
	cd src/imgman;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libiman.$(SLAVEEXT)"
	cd src/util;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libputil.$(SLAVEEXT)"
	cd src/X;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libOS_X.$(SLAVEEXT)"
	cd src/graph;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libgraph.$(SLAVEEXT)"
	cd src/anitroll;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libanitroll.$(SLAVEEXT)"
	cd src/loader;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libload.$(SLAVEEXT)"
	cd src/shader;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libshade.$(SLAVEEXT)"
	cd src/pcoms;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libpcoms.$(SLAVEEXT)"
	cd src/gamegine;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libgame.$(SLAVEEXT)"
	cd src/polyopt;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libpopt.$(SLAVEEXT)"
	cd prog/darkhour;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB) "LIBRARY = libdark.$(SLAVEEXT)"
	cd prog/darkhour/fx;make libfx \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEMAKELIB2) "LIBRARY = libfx.$(SLAVEEXT)"
	cd prog/render;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEOPENGL) $(LIB_RENDER)
	cd prog/anitroll;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEOPENGL) $(LIB_ANITROLL)
	cd prog/darkhour;make darkhour \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEOPENGL) $(LIB_DARKHOUR) "LIBRARY = NA"
	cd prog;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEOPENGL) $(LIB_GEOM) $(LIB_GAME) $(LIB_IMAGE)
	cd prog/3dv;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEOPENGL) $(SLAVEMAKELIB) $(LIB_3DV) "LIBRARY = libcsphr.$(SLAVEEXT)"
	cd prog/convert;make \
		$(SLAVECC) $(SLAVEARCH) $(SLAVEOPENGL) $(LIB_CONVERT)

# #############################################################

depend:
	cd 3rdparty/jpeg;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/eye;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/math3d;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/image;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/imgman;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/X;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/graph;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/anitroll;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/loader;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/shader;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/pcoms;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/util;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/gamegine;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd src/polyopt;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd prog/render;make depend $(SLAVEDEPEND)
	cd prog/darkhour;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd prog/darkhour/fx;make depend "LIBRARY = NA" $(SLAVEDEPEND)
	cd prog/3dv;make depend "LIBRARY = NA" $(SLAVEDEPEND)

clean:
	cd 3rdparty/tiff;make clean "LIBRARY = NA"
	cd 3rdparty/jpeg;make clean "LIBRARY = NA"
	cd src/eye;make clean "LIBRARY = NA"
	cd src/math3d;make clean "LIBRARY = NA"
	cd src/image;make clean "LIBRARY = NA"
	cd src/imgman;make clean "LIBRARY = NA"
	cd src/X;make clean "LIBRARY = NA"
	cd src/graph;make clean "LIBRARY = NA"
	cd src/anitroll;make clean "LIBRARY = NA"
	cd src/loader;make clean "LIBRARY = NA"
	cd src/shader;make clean "LIBRARY = NA"
	cd src/pcoms;make clean "LIBRARY = NA"
	cd src/util;make clean "LIBRARY = NA"
	cd src/gamegine;make clean "LIBRARY = NA"
	cd src/polyopt;make clean "LIBRARY = NA"
	cd prog;make clean
	cd prog/3dv;make clean "LIBRARY = NA"
	cd prog/darkhour;make clean "LIBRARY = NA"
	cd prog/darkhour/fx;make clean "LIBRARY = NA"
	cd prog/render;make clean
	cd prog/anitroll;make clean
	cd prog/convert;make clean
