CC              = gcc -pipe -O2
#CC              = cc -O3 -pca list -mips4
#CC              = cc -O3
#CC              = cc -O3 \
#                -SWP:memory_pairs=off:backtracks_max=10000:ii_inc_max=1 \
#                -SWP:speculative_loads=TRUE \
#                -GCM:aggressive_speculation=ON:array_speculation=ON \
#                -mips4

RM              = rm -f

CDEBUGFLAGS     = -g
#CDEBUGFLAGS     = 

CFLAGS          = $(CDEBUGFLAGS) $(INCLUDES) $(STD_DEFINES) $(DEFINES)
LDFLAGS         = $(CDEBUGFLAGS)

LIBS =

SYSLIBS         = -lm 

INCLUDES        = -I.
#DEFINES         = -DOPENWARE -DDEBUG -DBSD
DEFINES         = -DOPENWARE -DBSD
#DEFINES         = -DOPENWARE -DSYS5
#DEFINES         = -DOPENWARE -DSYS5 -DPOWERC
STD_DEFINES     = -D_NO_PROTO -DNO_REGEX

OBJS1=  hmm-gene.o hmm-gene_misc.o \
	ga.o ga_fitness.o ga_scaling.o ga_selection.o ga_recombination.o \
	ga_pmutation.o ga_imutation.o ga_dmutation.o ga_misc.o \
	utils.o xutils.o timer.o

OBJS2=  sp2mp.o hmm_train.o hmm-gene_misc.o \
	hmm_baum.o hmm_forward.o hmm_backward.o hmm_misc.o \
	utils.o xutils.o timer.o

OBJS3=  hmm_recog.o hmm-gene_misc.o \
	hmm_baum.o hmm_forward.o hmm_backward.o \
	hmm_viterbi.o hmm_misc.o \
	utils.o xutils.o timer.o

DEPS = $(LIBS)

all: HMMGene sp2mp HMMRecog

HMMGene: $(OBJS1) $(DEPS)
	$(CC) -o $@ $(OBJS1) $(LIBS) $(LDFLAGS) $(SYSLIBS)

sp2mp: $(OBJS2) $(DEPS)
	$(CC) -o $@ $(OBJS2) $(LIBS) $(LDFLAGS) $(SYSLIBS)

HMMRecog: $(OBJS3) $(DEPS)
	$(CC) -o $@ $(OBJS3) $(LIBS) $(LDFLAGS) $(SYSLIBS)

clean:
	rm -f $(OBJS1) $(OBJS2) $(OBJS3)

