all: tailgunner headless
	echo All up to date.


# turn on optimised compilation.  Looks like it is not going to be needed.
#OPT+=-O3 

# for pi opengl hardware support
CFLAGS+=-DSTANDALONE -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -D_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE -Wall -g -DHAVE_LIBOPENMAX=2 -DOMX -DOMX_SKIP64BIT -ftree-vectorize -pipe -DUSE_EXTERNAL_OMX -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM -Wno-psabi

# Pi includes needed for OpenGL
INCLUDES+=-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I./ -I/opt/vc/src/hello_pi/libs/ilclient -I/opt/vc/src/hello_pi/libs/vgfont

# Pi libraries needed for OpenGL
LDFLAGS+=-L/opt/vc/lib/ -lglut -lGL -lbrcmGLESv2 -lbrcmEGL -lopenmaxil -lbcm_host -lvcos -lvchiq_arm -lpthread -lrt -lm -L/opt/vc/src/hello_pi/libs/ilclient -L/opt/vc/src/hello_pi/libs/vgfont

tailgunner: tailgunr.c streamgen.o vecterm_communication.o clipping.o ops.o mdep.h externs.h mdep.c
	gcc -DOPENGL -DRASPBERRY_PI -DUSE_VECTERM $(OPT) \
		-o tailgunner \
		-Wno-unused-variable -fsigned-char $(CFLAGS) $(INCLUDES) tailgunr.c ops.o \
		streamgen.o vecterm_communication.o clipping.o \
		$(LDFLAGS)

headless: tailgunr.c streamgen.o vecterm_communication.o clipping.o ops.o mdep.h externs.h mdep.c
	gcc -DRASPBERRY_PI -DUSE_VECTERM $(OPT) \
		-o headless \
		-Wall -Wno-unused-variable -fsigned-char tailgunr.c ops.o \
		streamgen.o vecterm_communication.o clipping.o \
		-lpthread -lm

streamgen.o: ../vecterm/streamgen.c
	gcc -Wall $(OPT) -fsigned-char -c ../vecterm/streamgen.c

vecterm_communication.o: ../vecterm/vecterm_communication.c
	gcc -Wall $(OPT) -fsigned-char -c ../vecterm/vecterm_communication.c

clipping.o: ../vecterm/clipping.c
	gcc -Wall $(OPT) -fsigned-char -Wno-maybe-uninitialized -c ../vecterm/clipping.c

ops.o: ops.c externs.h
	gcc $(OPT) -c ops.c

clean:
	rm *.o tailgunner headless *~
