include $(NCBI)/ncbi.mk
# These directories should be defined for this Makefile to work
# NCBI_INCDIR - Directory with NCBI include files
# NCBI_ALTLIB - Directory with NCBI debug libraries
# NCBI_LIBDIR - Directory with NCBI optimized libraries

#
CC=cc 

# For standalone model
ALL_LIBS = -lncbidesk -lvibgif -lncbitool -lncbiobj -lncbi -lm -lpthread 

# For NCBI Client-server model
ALL_LIBS_CS = -lncbitxc2 -lncbiid1 -lnetblast -lnetcli -lncbidesk -lvibgif -lncbitool -lncbiobj -lncbi -lm -lpthread -lsocket -lnsl -lresolv

# For Blast 2 sequences client/server
BL2_LIBS_CS = -lncbiid1 -lnetcli -lncbidesk -lncbitool -lncbiobj -lncbi -lm -lsocket -lnsl -lresolv

#DEBUG compilation
#LIBS = $(NCBI_ALTLIB)
#DEBUG_FLAG = -g

#OPTIMIZED compilation
LIBS = $(NCBI_LIBDIR)
DEBUG_FLAG = -O

OBJ_FILES = wwwbutl.c $(LIBS)/ncbithr.o blastool.o

#  Defines: 
#  NCBI_CLIENT_SERVER - full NCBI Client/server including BLAST search
#  NCBI_ENTREZ_CLIENT - Client server for gi/accession lookups

# For standalone model
CFLAGS=  $(DEBUG_FLAG) -I. -I$(NCBI_INCDIR)

# Use client/server for gi/accession lookups
CFLAGS_CS = $(DEBUG_FLAG) -I. -I$(NCBI_INCDIR) -DNCBI_ENTREZ_CLIENT

# For full NCBI Client-server model
#CFLAGS_FCS= -c $(DEBUG_FLAG) -I. -I$(NCBI_INCDIR) -DNCBI_CLIENT_SERVER

PURIFY = #purify

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

all: psiblast.REAL psiblast_cs.REAL  blast.REAL blast_cs.REAL nph-viewgif.cgi formatdb makemat copymat wblast2.REAL wblast2_cs.REAL bl2bag.cgi

blast.REAL: wwwblast.c $(OBJ_FILES) Makefile
	$(PURIFY) $(CC)  $(CFLAGS) wwwblast.c $(OBJ_FILES) \
	-L$(LIBS) $(ALL_LIBS) -o ./blast.REAL
	mv ./blast.REAL ..
blast_cs.REAL: wwwblast.c $(OBJ_FILES) Makefile
	$(PURIFY) $(CC) $(CFLAGS_CS) wwwblast.c $(OBJ_FILES) \
	-L$(LIBS) $(ALL_LIBS_CS) -o ./blast_cs.REAL
	mv ./blast_cs.REAL ..
psiblast.REAL: psiblast.o $(OBJ_FILES) Makefile
	$(PURIFY) $(CC) $(CFLAGS) psiblast.o $(OBJ_FILES) \
	-L$(LIBS) $(ALL_LIBS) -o ./psiblast.REAL
	mv ./psiblast.REAL ../psiblast.REAL
psiblast_cs.REAL: psiblast.o $(OBJ_FILES) Makefile
	$(PURIFY) $(CC) $(CFLAGS_CS) psiblast.o $(OBJ_FILES) \
	-L$(LIBS) $(ALL_LIBS_CS) -o ./psiblast_cs.REAL
	mv ./psiblast_cs.REAL ../psiblast_cs.REAL
nph-viewgif.cgi: viewgif.o
	$(CC) viewgif.o -o nph-viewgif.cgi
	mv nph-viewgif.cgi ..
formatdb: formatdb.o Makefile
	$(CC) formatdb.o -L$(LIBS) -lncbitool -lncbiobj -lncbi -lm -o formatdb
	mv formatdb ../db
makemat: makemat.o Makefile
	$(CC) makemat.o -L$(LIBS) -lncbitool -lncbiobj -lncbi -lm -o makemat
	mv makemat ../db
copymat: copymat.o Makefile
	$(CC) copymat.o -L$(LIBS) -lncbitool -lncbiobj -lncbi -lm -o copymat
	mv copymat ../db
wblast2.REAL : wblast2.c 
	$(PURIFY) $(CC) $(CFLAGS) -D BL2SEQ_STANDALONE wblast2.c \
	-L$(LIBS) -lncbitool -lncbiobj -lncbi -lm -o ./wblast2.REAL
	mv wblast2.REAL ..
wblast2_cs.REAL : wblast2.c
	$(PURIFY) $(CC) $(CFLAGS_CS) -D BL2SEQ_STANDALONE wblast2.c \
	-L$(LIBS) $(BL2_LIBS_CS) -o ./wblast2_cs.REAL
	mv wblast2_cs.REAL ..
bl2bag.cgi : bl2bag.o
	$(CC) bl2bag.o -L$(LIBS) -lncbi -lm -o bl2bag.cgi
	mv bl2bag.cgi ..


clean: 
	rm *.o


