CC=gcc 
CFLAGS=-O3
#XLIBS = -L/usr/X11/lib -lX11
XLIBS = -L/usr/X11R6/lib -lX11

BIPED2 = dynamics.o b1-parameters.o sdfast/b1g_dyn.o sdfast/b1g_sar.o sdfast/b1glib.o
BIPED2C = dynamics-constraints.o b1-parameters.o sdfast/b1c_dyn.o sdfast/b1c_sar.o sdfast/b1clib.o
BIPED2I = dynamics-impact.o b1-parameters.o sdfast/b1ss_dyn.o sdfast/b1ss_sar.o sdfast/b1sslib.o sdfast/b1ds_dyn.o sdfast/b1ds_sar.o sdfast/b1dslib.o sdfast/b1c_dyn.o sdfast/b1c_sar.o sdfast/b1clib.o sdfast/b1g_dyn.o sdfast/b1g_sar.o sdfast/b1glib.o

GRAPHICS_X11 = ../graphics-x11/graphics-x11.o ../graphics-x11/views.o ../graphics-x11/xdump.o

POWELL = ../powell/nrutil.o ../powell/powell.o ../powell/linmin.o ../powell/mnbrak.o ../powell/f1dim.o ../powell/brent.o

all: walki opt-policy1i opt-policy1-sai opt-policy1-nmi display

walk: walk.o opt-parameters.o parameters.o controller.o graphics.o data.o $(BIPED2) $(GRAPHICS_X11) ../trajectory/trajectory.o ../mrdplot/mrdplot.o
	$(CC) $(CFLAGS) -o $@ walk.o opt-parameters.o parameters.o controller.o graphics.o data.o $(BIPED2) $(GRAPHICS_X11) ../trajectory/trajectory.o ../mrdplot/mrdplot.o $(XLIBS) -lm

walkc: walk.o opt-parameters.o parameters.o controller.o graphics.o data.o $(BIPED2C) $(GRAPHICS_X11) ../trajectory/trajectory.o ../mrdplot/mrdplot.o
	$(CC) $(CFLAGS) -o $@ walk.o opt-parameters.o parameters.o controller.o graphics.o data.o $(BIPED2C) $(GRAPHICS_X11) ../trajectory/trajectory.o ../mrdplot/mrdplot.o $(XLIBS) -lm

walki: walk.o opt-parameters.o parameters.o controller.o graphics.o data.o $(BIPED2I) $(GRAPHICS_X11) ../trajectory/trajectory.o ../mrdplot/mrdplot.o
	$(CC) $(CFLAGS) -o $@ walk.o opt-parameters.o parameters.o controller.o graphics.o data.o $(BIPED2I) $(GRAPHICS_X11) ../trajectory/trajectory.o ../mrdplot/mrdplot.o $(XLIBS) ../numerical-recipes-c/librecipes_c.a -lm

display: display.o opt-parameters.o opt-parameters.o parameters.o b1-parameters.o ../mrdplot/mrdplot.o $(GRAPHICS_X11)
	$(CC) $(CFLAGS) -o $@ display.o parameters.o b1-parameters.o ../mrdplot/mrdplot.o $(GRAPHICS_X11) $(XLIBS) -lm

opt-policy1: opt-policy1.o opt-parameters.o parameters.o controller.o graphics.o $(BIPED2) $(GRAPHICS_X11) $(POWELL) ../trajectory/trajectory.o
	$(CC) $(CFLAGS) -o $@ opt-policy1.o opt-parameters.o parameters.o controller.o graphics.o $(BIPED2) $(GRAPHICS_X11) $(POWELL) ../trajectory/trajectory.o $(XLIBS) -lm

opt-policy1c: opt-policy1.o opt-parameters.o parameters.o controller.o graphics.o $(BIPED2C) $(GRAPHICS_X11) $(POWELL) ../trajectory/trajectory.o
	$(CC) $(CFLAGS) -o $@ opt-policy1.o opt-parameters.o parameters.o controller.o graphics.o $(BIPED2C) $(GRAPHICS_X11) $(POWELL) ../trajectory/trajectory.o $(XLIBS) -lm

opt-policy1i: opt-policy1.o opt-parameters.o parameters.o controller.o graphics.o $(BIPED2I) $(GRAPHICS_X11) $(POWELL) ../trajectory/trajectory.o
	$(CC) $(CFLAGS) -o $@ opt-policy1.o opt-parameters.o parameters.o controller.o graphics.o $(BIPED2I) $(GRAPHICS_X11) $(POWELL) ../trajectory/trajectory.o $(XLIBS) ../numerical-recipes-c/librecipes_c.a -lm

opt-policy1-sa.o: opt-policy1-sa.c
	$(CC) $(CFLAGS) -I../numerical-recipes-c/include -c opt-policy1-sa.c

opt-policy1-sai: opt-policy1-sa.o opt-parameters.o parameters.o controller.o graphics.o $(BIPED2I) $(GRAPHICS_X11) ../trajectory/trajectory.o
	$(CC) $(CFLAGS) -o $@ opt-policy1-sa.o opt-parameters.o parameters.o controller.o graphics.o $(BIPED2I) $(GRAPHICS_X11) ../numerical-recipes-c/librecipes_c.a ../trajectory/trajectory.o $(XLIBS) -lm

opt-policy1-nm.o: opt-policy1-nm.c
	$(CC) $(CFLAGS) -I../numerical-recipes-c/include -c opt-policy1-nm.c

opt-policy1-nmi: opt-policy1-nm.o opt-parameters.o parameters.o controller.o graphics.o $(BIPED2I) $(GRAPHICS_X11) ../trajectory/trajectory.o
	$(CC) $(CFLAGS) -o $@ opt-policy1-nm.o opt-parameters.o parameters.o controller.o graphics.o $(BIPED2I) $(GRAPHICS_X11) ../numerical-recipes-c/librecipes_c.a ../trajectory/trajectory.o $(XLIBS) -lm

inv: inv.o opt-parameters.o opt-parameters.o parameters.o data.o ../mrdplot/mrdplot.o $(BIPED2I) $(GRAPHICS_X11)
	$(CC) $(CFLAGS) -o $@ inv.o parameters.o data.o ../mrdplot/mrdplot.o $(BIPED2I) $(GRAPHICS_X11) $(XLIBS) ../numerical-recipes-c/librecipes_c.a -lm

b1-parameters.o:	main.h
controller.o:	main.h
data.o:	main.h
display.o:	main.h
dynamics.o:	main.h
dynamics-constraints.o:	main.h
dynamics-impact.o:	main.h
graphics.o:	main.h
opt-policy1.o:	main.h
opt-policy1-sa.o:	main.h
opt-policy1-nm.o:	main.h
parameters.o:	main.h
walk.o:	main.h
