CC      = gcc
INCS    = -I. -I$(UDF_HOME)/include
LBS     = -L. -L$(UDF_HOME)/lib
CADD    =
EXT     =
RANLIB  =
CTYPE   = 

ifeq "$(CTYPE)" "SHARED"
LHOME   = $(UDF_HOME)/lib
CFLAGS  = $(INCS) $(LBS) $(CADD) $(CSO)
LIBRARY = libpidf.$(SO_EXT)
CF      = $(INCS) $(LBS) $(CADD)
LIBS    = $(LIBRARY) $(LHOME)/libbase_udf.$(SO_EXT) $(LHOME)/libCfg.$(SO_EXT) \
          $(LHOME)/libdB.$(SO_EXT) $(LHOME)/libServer.$(SO_EXT) -lm

else

CFLAGS  = $(INCS) $(LBS) $(CADD)
LIBRARY = libpidf.a
LIBS    = $(LIBRARY) -lbase_udf -lCfg -ldB -lm
endif

objects = BreakApart.o \
          ChkPidfMem.o CreatePidfStruc.o \
          FormPidfPath.o \
          GetPidfStr.o \
          InitAncil.o InitBin.o InitLatLong.o InitMode.o InitPidf.o \
          InitScan.o InitSensor.o InitUnit.o IsHex.o \
          KeysToStr.o \
          LoadAnc.o LoadBin.o LoadFixed.o LoadImage.o LoadLatLong.o \
          LoadMode.o LoadPAng.o LoadQual.o LoadSAng.o LoadSBlk.o LoadScan.o \
          LoadSen.o LoadUnit.o \
          OpenPidf.o \
          PidfErrs.o PidfSizes.o ProcLine.o ProcOper.o PrAncils.o PrBins.o \
          PrAngsQual.o PrHeader.o PrImages.o PrModes.o PrSensors.o PrScan.o \
          PrUnits.o PtrUpDate.o \
          ReadPidf.o RmDelims.o RmEndNum.o \
          SenInGrp.o StripTo.o SubEnvVar.o \
          Xfr.o

ifeq "$(CTYPE)" "SHARED"
                                                                                
.c.o:   $(CC) -c $(CFLAGS) $<
                                                                                
$(LIBRARY):  $(objects)
	$(LD) $(LD_FLAGS) -o $@ $(objects)
                                                                                
else
                                                                                
.PRECIOUS: $(LIBRARY)
.KEEP_STATE:
                                                                                
$(LIBRARY): $(objects)
	ar r $(LIBRARY) $(objects)
        ifdef $(RANLIB)
        	$(RANLIB) $(LIBRARY)
        endif
endif

release:
	cp $(LIBRARY) $(UDF_HOME)/lib
	cp PidfAnsi.h $(UDF_HOME)/include
	cp PidfDefs.h $(UDF_HOME)/include
	cp PidfRets.h $(UDF_HOME)/include
	cp PidfStr.h $(UDF_HOME)/include
	cp PidfVar.h $(UDF_HOME)/include

clean:
	-rm -f $(LIBRARY)
	-rm -f $(objects)

read_pidf : main.o 
	$(CC) $(CF) main.o $(LIBS) -o read_pidf$(EXT)
	-rm main.o
