CC = gcc
RTINCLUDE=-I/usr/src/rtlinux-2.3/include/
POSIXINC = -I/usr/src/rtlinux-2.3/include/posix
OBJECT = pwm.o both.o encoder.o
ALL = pwm.o both.o encoder.o  
SRC = pwm.c both.c encoder.c 
MODULE = enc_module6.c enc_stop.c
USS = uss_main.c
AVOID = avoid.c
AVOIDOB = avoid.o
THREAD = thread_prog.c
SEARCH = search.c
SEARCHOB = search.o
MANAGE = manage.c
MYFUNCS = myfuncs.c
MYFUNCSOB = myfuncs.o
IRSMODE = irs_mode.c
MYOBJECTS = manage.o irs_mode.o 

all: ${OBJECT} ${MYOBJECTS} ${AVOIDOB} ${MYFUNCSOB} ${SEARCHOB}
	${CC} ${RTINCLUDE} ${ALL} ${SEARCHOB} ${MYFUNCSOB} ${MYOBJECTS} ${AVOIDOB} main.c -o main -lpthread
avoid: $(AVOID)
	${CC} ${RTINCLUDE} -c ${AVOID}
search: $(SEARCH)
	${CC} ${RTINCLUDE} -c ${SEARCH}
manage: ${MANAGE}
	${CC} ${RTINCLUDE} -c ${MANAGE}
myfuncs: ${MYFUNCS}
	${CC} ${RTINCLUDE} -c ${MYFUNCS}
irsmode: ${IRSMODE}
	${CC} ${RTINCLUDE} -c ${IRSMODE}
func_test: 
	${CC} ${RTINCLUDE} -c func_test.c
object: $(SRC)
	${CC} ${RTINCLUDE} -c ${SRC} 
module: ${MODULES}
	${CC} ${RTINCLUDE} ${POSIXINC} -c ${MODULE}
uss: ${USS} ${MYFUNCSOB} manage.o
	${CC} ${RTINCLUDE}  ${USS} ${ALL} ${MYOBJECTS} ${MYFUNCSOB} -o uss_main -lpthread
thread: ${THREAD}
	${CC} -c print_func.c
	${CC} ${RTINCLUDE}  ${THREAD} print_func.o -o thread_t -lpthread
clean:
	rm -rf *.o
