#
# Makefile for cross-compiling libraries
#
#------------------------------------------------------------------------------
VERSION_KERNEL= $(shell uname -r)
MACHINE	      = $(shell uname -m)

SOURCEKERNEL = /usr/src/linux-2.4.20-rtai-24.1.13
SOURCEIPN    = /usr/local/ipn

# Support for VME Driver
VMELIB	      = -I $(SOURCEIPN)/vme/universe/include
VMELIB       += -I $(SOURCEIPN)/vme/universe/src

# Support for RTAI compilation
RTAILIB	      =	-I $(SOURCEKERNEL)/include

RTAIFLAGS     =	-D__KERNEL__ -D_COMPILATION_RTAI_ -fsigned-char -msoft-float -mstring  -mmultiple 
RTAIFLAGS    += -Wstrict-prototypes  -Wno-trigraphs  -Wno-uninitialized -fno-strict-aliasing -fno-common
RTAIFLAGS    += -pipe -ffixed-r2 -fomit-frame-pointer -DMODULE 

# For PPC machine 
ifeq ($(MACHINE),ppc)
RTAIFLAGS    += -DMACHINE_PPC -DON_BOARD 
RTAILIB      += -I $(SOURCEIPN)/rtai-24.1.13/include
RTAILIB      += -I $(SOURCEKERNEL)/arch/ppc 
CC           = gcc-2.95

# For Others...
else
CC	     = gcc	
endif

#------------------------------------------------------------------------------
CFLAGS        = -O2 -Wall -ansi -pedantic $(CLIB)
LFLAGS        = -g

ObjSuf        = .o
SrcSuf        = .c
HeadSuf       = .h
ExeSuf        = .exe
OutPutOpt     = -o

#------------------------------------------------------------------------------
PATHDRV          = $(PWD)
CLIB          = -I $(PATHDRV) 

#------------------------------------------------------------------------------
VME_DRV          = vme_driver
VME_DRV_OBJ      = $(VME_DRV)$(ObjSuf)

TDC_LOW_DRV      = tdc1190_driver_low

TDC_MED_DRV      = tdc1190_driver_medium
TDC_MED_DRV_OBJ  = $(TDC_MED_DRV)$(ObjSuf)

TDC_HIGH_DRV     = tdc1190_driver_high
TDC_HIGH_DRV_OBJ = $(TDC_HIGH_DRV)$(ObjSuf)

ALL_OBJ          = $(VME_DRV_OBJ) $(TDC_MED_DRV_OBJ) $(TDC_HIGH_DRV_OBJ) 

#------------------------------------ Link ------------------------------------
driver  :        $(ALL_OBJ)	
	         echo "Driver Done..."

clean:
		@rm -f core *~ *.o *.exe

#------------------------------ Compile with "CVS" -----------------------------
.SUFFIXES: $(SrcSuf)

###

$(VME_DRV)$(ObjSuf): $(VME_DRV)$(SrcSuf) $(VME_DRV)$(HeadSuf)

$(TDC_MED_DRV)$(ObjSuf): $(TDC_MED_DRV)$(SrcSuf) $(TDC_MED_DRV)$(HeadSuf) $(TDC_LOW_DRV)$(HeadSuf)

$(TDC_HIGH_DRV)$(ObjSuf): $(TDC_HIGH_DRV)$(SrcSuf) $(TDC_HIGH_DRV)$(HeadSuf) $(TDC_LOW_DRV)$(HeadSuf)

$(SrcSuf)$(ObjSuf):
		$(CC) $(CFLAGS) $(VMELIB) $(RTAIFLAGS) $(RTAILIB) -c $<
