#	makefile for demo programs and entrez
#	Sun with unbundled ANSI compiler [ make CC=acc ]
#	Sun with Gnu C [ make CC=gcc ]
#   Sun with Solaris 2.x OS [ make CC="cc -Xa" OTHERLIBS="-lthread -lm" ]
#	Silicon Graphics [ make OTHERLIBS="-lm -lPW -lsun" ]
#	IBM 3090 with AIX [ make  ]
#	ULTRIX [ make ]
#	Apple AUX [ make SHELL=\usr\bin ]
#	NeXt [ make CFLAGS1="-c -ansi"  ]
#   DEC Alpha under OSF/1  [ make CC=cc ]
#	
#	Subsequent makes should make ... nocopy instead of make ... all
#	to avoid recopying the include files
#
#	To Make the Motif version of demos and to make entrez add:
#      VIBLIBS="-lXm -lXmu -lXt -lX11" LIB4=-lvibrant VIBFLAG="-I/am/Motif/include -DWIN_MOTIF" VIB=entrez
#   to the argument list.  Substitute the path to your Motif includes for
#    /am/Motif/include.
#
#   Motif versions on Solaris 2.x are more complicated because of changes to
#   the socket I/O. You have explicitly include them. Try:
#
# make -f makedemo.unx CC="cc -Xa"
# VIBLIBS="-L/netopt/X11R5/lib -L/netopt/Motif1.2.2/lib -R/netopt/X11R5/lib:/netopt/Motif1.2.2.lib -lXm -lXmu -lXt -lX11 -lsocket -lnsl -lgen"
# LIB4=-lvibrant
# VIBFLAG="-I/netopt/X11R5/include -I/netopt/Motif1.2.2/include -DWIN_MOTIF"
# VIB=entrez
#
#  (lines wrapped for readability)	
#	
#   NOTE: It is now possible to build using shared libraries, which 
#     consumes significantly less disk space.  To date, this has only
#     been tested using Solaris.  To use shared libraries, try:
#       make ... NCBI_LINKINGLIBDIR=../shlib
#            NCBI_OTHERLINKOPTIONS=-R`pwd`/../shlib
#


# default flags for compiling and loading

SUFFIXLCL = $(LCL)
CFLAGS1 = -c -O
LDFLAGS1 = -O
CC = cc
RAN = ls
OTHERLIBS = -lm
VIBLIBS = 
VIBFLAG =
VIB =
LIBCOPY = cp
SRCCOPY = cp
BINCOPY = cp

SUFFIXENV = unx
ASNDIR = asnstat
LIB1 = -lncbi
LIB2 = -lncbiobj
LIB3 = -lncbicdr
LIB4 = -lvibrant
LIB4 =
LIB5 = -lncbiacc
LIB20 = -lncbidesk
LIB20 =
LIB22 = -lncbimmdb
LIB23 = -lncbitool
NCBI_INCDIR = ../include
NCBI_LIBDIR = ../lib
NCBI_LINKINGLIBDIR = $(NCBI_LIBDIR)
# A kludge which tells the linker not to try to use shared libraries
# when linking programs which use main() instead of Nlm_Main()
USES_MAIN_KLUDGE = -L$(NCBI_LIBDIR)
NCBI_OTHERLINKOPTIONS =
CFLAGS = $(CFLAGS1) -I$(NCBI_INCDIR) $(VIBFLAG)
LDFLAGS = $(LDFLAGS1) -I$(NCBI_INCDIR) $(NCBI_OTHERLINKOPTIONS) -L$(NCBI_LINKINGLIBDIR) $(VIBFLAG)
ENTREZLIBS = $(LIB5) $(LIB3)

##
## some things to make
##

# sources needed for versions of demo programs

EXE1 = testcore makeset \
    getmesh indexpub getpub testobj seqtest \
	dosimple asn2ff asn2rpt getseq getfeat checksub asndhuff \
		entrcmd asncode asn2fast errhdr cdscan findspl srebase

SRC1 = testcore.c makeset.c \
    getmesh.c indexpub.c getpub.c testobj.c seqtest.c dosimple.c asn2ff.c \
    asn2rpt.c getseq.c getfeat.c checksub.c asndhuff.c entrezcf.c \
    entrcmd.c asncode.c asn2fast.c errhdr.c cdscan.c findspl.c srebase.c

OBJENT =	avail.o browser.o chosen.o fetch.o report.o

SRCENT =	avail.c browser.c chosen.c fetch.c report.c

INTERNAL = testgen

## All things to make
##
all : copy nocopy

nocopy : sources $(EXE1) $(VIB)

sources : $(SRC1) $(SRCENT)

internal: $(INTERNAL)

## To clean out the directory without removing make
##
clean :
	- rm -f *.[acho]

## Implicit actions
##

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

## get all the source files
##

copy :
	$(SRCCOPY) ../browser/*.* .
	$(SRCCOPY) ../demo/*.* .
	-$(SRCCOPY) ../internal/*.* .
	chmod +w *
	chmod g+w *

## make applications
##


# testcore

testcore : testcore.c
	$(CC) -o testcore $(LDFLAGS) testcore.c $(LIB4) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# getmesh

getmesh : getmesh.c
	$(CC) -o getmesh $(LDFLAGS) getmesh.c $(LIB4) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# indexpub

indexpub : indexpub.c
	$(CC) -o indexpub $(LDFLAGS) indexpub.c $(LIB4) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# makeset

makeset : makeset.c
	$(CC) -o makeset $(LDFLAGS) makeset.c $(LIB4) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# getpub

getpub : getpub.c
	$(CC) -o getpub $(LDFLAGS) getpub.c $(LIB4) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# testobj

testobj : testobj.c
	$(CC) -o testobj $(LDFLAGS) testobj.c $(LIB4) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# dosimple

dosimple : dosimple.c
	$(CC) -o dosimple $(LDFLAGS) dosimple.c $(LIB4) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# seqtest

seqtest : seqtest.c
	$(CC) -o seqtest $(LDFLAGS) seqtest.c $(LIB4) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)


# checksub

checksub : checksub.c
	$(CC) -o checksub $(LDFLAGS) checksub.c $(LIB4) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# asn2rpt

asn2rpt : asn2rpt.c
	$(CC) -o asn2rpt $(LDFLAGS) asn2rpt.c $(LIB4) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# asn2ff

asn2ff : asn2ff.c
	$(CC) -o asn2ff $(LDFLAGS) asn2ff.c $(LIB4) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# asn2fast

asn2fast : asn2fast.c
	$(CC) -o asn2fast $(LDFLAGS) asn2fast.c $(LIB4) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# getseq

getseq : getseq.c
	$(CC) -o getseq $(LDFLAGS) getseq.c $(LIB4) $(ENTREZLIBS) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# cdscan

cdscan : cdscan.c
	$(CC) -o cdscan $(LDFLAGS) cdscan.c $(LIB4) $(ENTREZLIBS) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# findspl

findspl : findspl.c
	$(CC) -o findspl $(LDFLAGS) findspl.c $(ENTREZLIBS) $(LIB2) $(LIB1) $(OTHERLIBS)

# srebase

srebase : srebase.c
	$(CC) -o srebase $(LDFLAGS) srebase.c $(LIB23) $(ENTREZLIBS) $(LIB2) $(LIB1) $(OTHERLIBS)

# getfeat

getfeat : getfeat.c
	$(CC) -o getfeat $(LDFLAGS) getfeat.c $(LIB4) $(ENTREZLIBS) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# errhdr

errhdr : errhdr.c
	$(CC) -o errhdr $(LDFLAGS) errhdr.c $(LIB4) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)



# entrez

entrez : $(OBJENT) entrezcf
	$(CC) -o entrez $(LDFLAGS) $(OBJENT) $(LIB20) $(LIB4) $(ENTREZLIBS) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)

# asndhuff

asndhuff : asndhuff.c
	$(CC) -o asndhuff $(LDFLAGS) asndhuff.c $(LIB4) $(ENTREZLIBS) $(LIB2) $(LIB1) $(VIBLIBS) $(OTHERLIBS)
 
# entrezcf

entrezcf : entrezcf.c
	$(CC) -o entrezcf $(LDFLAGS) entrezcf.c $(LIB4) $(LIB3) $(LIB1) $(VIBLIBS) $(OTHERLIBS)
 
# entrcmd

entrcmd : entrcmd.c
	$(CC) -o entrcmd $(LDFLAGS) entrcmd.c $(ENTREZLIBS) $(LIB2) $(LIB1) $(OTHERLIBS)
 
# asncode

asncode : asncode.c
	$(CC) -o asncode $(LDFLAGS) asncode.c $(LIB1) $(OTHERLIBS)

# testgen

testgen : testgen.c
	$(CC) -o testgen $(LDFLAGS) testgen.c $(LIB1) $(OTHERLIBS)
