#Uncomment to compile in RT-Linux
include /usr/rtlinux/rtl.mk

CC=gcc
#Uncomment to eliminate assertions (final release version)
#DFLAGS = -DNDEBUG
DFLAGS= -DKDM_COMPILATION
KDMFLAGS= $(DFLAGS) -c -Wall
RTFLAGS= $(CFLAGS) $(KDMFLAGS) -I/usr/rtlinux/include
LIBS= 

KDM_MODULES=	kdm_lt.o static.o events.o

RT_KDM_MODULES=	rt_kdm_lt.o rt_static.o rt_events.o

all: kdm.o rtl_kdm.o

# Final link to an unique object file
kdm.o: $(KDM_MODULES)
	$(LD) $(LDFLAGS) -r -o kdm.o -static $(KDM_MODULES)

rtl_kdm.o:  $(RT_KDM_MODULES)
	$(LD) $(LDFLAGS) -r -o rtl_kdm.o -static $(RT_KDM_MODULES)


# Generation of independent compiled kdm files
kdm_lt.o: ../source/kdm.c \
	  ../include/kdm/kdm.h \
	  ../include/kdm/blackboard.h 
	$(CC) $(KDMFLAGS) -o kdm_lt.o ../source/kdm.c

rt_kdm_lt.o: ../source/kdm.c \
	  ../include/kdm/kdm.h \
	  ../include/kdm/blackboard.h 
	$(CC) $(RTFLAGS) -o rt_kdm_lt.o ../source/kdm.c

static.o: ../source/static.c \
	  ../include/kdm/static.h \
	  ../include/kdm/globals.h
	$(CC) $(KDMFLAGS) -o static.o ../source/static.c

rt_static.o: ../source/static.c \
	  ../include/kdm/static.h \
	  ../include/kdm/globals.h
	$(CC) $(RTFLAGS) -o rt_static.o ../source/static.c

rt_events.o: ../source/events.c \
	  ../include/kdm/static.h \
	  ../include/kdm/events.h
	$(CC) $(RTFLAGS) -o rt_events.o ../source/events.c

events.o: ../source/events.c \
	  ../include/kdm/events.h \
	  ../include/kdm/static.h
	$(CC) $(KDMFLAGS) -o events.o ../source/events.c

doc:    
	cd ..; doxygen
clean:
	rm -rf *.o *~ ../doc
	(cd ../source; rm -f *~)
	(cd ../include; rm -f *~)
	(cd ../include/kdm; rm -f *~)

