#******************************************************************************
#*
#* Created: 2005/03/16 (y/m/d)
#* Author:  Guy Rabiller
#*
#******************************************************************************

CDEFS := $(CDEFS)
CINCS := $(CINCS) -I/usr/include/Xm -IUI -I$(XSISDK_ROOT)/include -I./src

CC    := gcc
CPP   := g++
OPTIMIZED ?= -O3
CDEFS     := $(CDEFS) -DEX_OK=X_OK -DXMSTRINGDEFINES
COPTS     := $(COPTS) $(OPTIMIZED)
CPPOPTS   := $(CPPOPTS) $(OPTIMIZED) -fpermissive
LDFLAGS   := -L$(XSISDK_ROOT)/lib -L/usr/X11R6/lib
#LIBS      := -lXm -lXp -lXext -lXt -lX11 -lnsl -ldl -llmgr -llmsoft -lshader


CFLAGS    := $(CINCS) $(CDEFS) $(COPTS)
CPPFLAGS  := $(CINCS) $(CDEFS) $(CPPOPTS)
LDFLAGS   := -shared -L$(SI_HOME)/Application/bin $(LDFLAGS) $(LIBS) $(SYSLIBS)
#LDFLAGS   := -shared -L$(SI_HOME)/Application/bin -L$(XSISDK_ROOT)/lib $(LDFLAGS)
DEPLIBS   := -lm

SOURCEFILES = \
   src/lm2DMV_v2.cpp \
   $(END_OF_LIST)

CPPOBJS   := $(patsubst %.cpp, obj/Linux/%.o, $(filter %.cpp,$(SOURCEFILES)))
COBJS     := $(patsubst %.c, obj/Linux/%.o, $(filter %.c,$(SOURCEFILES)))
OBJS      := $(CPPOBJS) $(COBJS)

HFILES = \
   src/lm2DMV_v2.h \
   src/mrMemory.hpp \
   src/mrTTLS.hpp \
   $(END_OF_LIST)

.phony: depend all

all:		bin xsi/lm2DMV_v2.so

ifeq "$(NODEP)" ""
   include obj/makefile.dep
endif


depend:	obj/makefile.dep

obj/makefile.dep: $(SOURCEFILES) $(HFILES)
	@-rm -f $@; touch $@
	@echo Building $@

$(CPPOBJS): obj/Linux/%.o: %.cpp
	@-if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
	$(CPP) -c $(CPPFLAGS) $< -o $@

$(COBJS): obj/Linux/%.o: %.c
	@-if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi
	$(CC) -c $(CFLAGS) $< -o $@

bin:	$(CPPOBJS) $(COBJS)
	@-if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)"; fi

xsi/lm2DMV_v2.so: obj/%.so: src/%.o
	@-if [ ! -d "$(dir $@)" ]; then mkdir -p "$(dir $@)";fi
	ld $(LDFLAGS) $(OBJS) $(DEPLIBS) -o $@
	@echo $@ is up to date

clean:
	@-rm -f *~ core obj/*.dep $(BIN)
	@-rm -rf obj/Linux
	@-rm -rf obj/*.so
	@echo Project cleaned

