CC	  = gcc
INCS      = -I. -I$(UDF_HOME)/include -I$(IDL_DIR)/external
LBS       = -L. -L$(UDF_HOME)/lib
CADD      =
EXT       =
SO_EXT    =
LD_FLAGS  =
RANLIB    =
LD	  =
UDF_LIBS  = -L$(UDF_HOME)/lib -lpidf -lbase_udf -lServer -ldB -lCfg
CFLAGS    = $(INCS) $(LBS) $(CADD) $(CSO)

#
# Principal target is the shared lib loaded by IDL.
#

all:	checkenv  udf.$(SO_EXT)

# Object files linked together into the shared lib

objects = AlignMem.o \
          CntExtra.o CheckStructs.o \
          FreeUpOne.o FhClose.o FillUnits.o  FindFh.o  FormTags.o \
          IdlBarf.o \
          ImportFree.o \
          MkDataStruc.o MkVidfStruc.o \
          NumTblVals.o \
          ProcKeyWords.o \
          ReadOpts.o RetNumUnits.o RetUnit.o \
          SetOrder.o SetUpTag.o SetDims.o SetVidfPtr.o \
          StoreData.o \
          TagName.o TblOffset.o TimeFill.o \
          UDF_DONE.o \
          UDF_CLOSE.o UDF_EOF.o UDF_KEY.o UDF_MISC.o UDF_OPEN.o UDF_READ.o \
          UDF_JUMPTIME.o UDF_TIMES.o UdfBarf.o UdfFree.o UdfPostIdlLoad.o \
          UdfTimeFill.o udf_errmsgs.o \
          idl_load.o \
	  UDF_VIDF.o UDF_VFREE.o

.c.o:	$(CC) -c $(CFLAGS) $<

udf.$(SO_EXT):	$(objects)
	$(LD) $(LD_FLAGS) -o $@ $(objects) $(UDF_LIBS) -lm

# udf.o :	udf.h

checkenv:
	@if [ "x${UDF_HOME}" = "x" ];then echo "Please set UDF_HOME";false;fi
	@if [ "x${IDL_DIR}"  = "x" ];then echo "Please set IDL_DIR";false;fi

clean:
	-rm -f $(objects)
	-rm -f *.so
	-rm -f *.dylib

release :
	cp MENU/UdfUnits ../bin
