#---------------------------------------------------------------------------
#  
#  (C) 2007 Zinoviy Dmytriv - Protein Structure Prediction Center 
#  http://predictioncenter.org
#  zdmytriv@gmail.com
#  
#---------------------------------------------------------------------------

#---------------------------------------------------------------------------
#
#  Directories
#
#---------------------------------------------------------------------------

# Better to have DEV_ROOT variable as environment variable

DEV_ROOT=/local/Projects/C/verificators_casp8

SOURCE_DIR        = $(DEV_ROOT)/src
TARGET_DIR        = $(DEV_ROOT)/obj
LIB_DIR           = $(DEV_ROOT)/lib
BIN_DIR           = $(DEV_ROOT)/bin
CURRENT_DIR       = $(CURDIR)

LIB_PATH = local/Projects/C/verificators_casp8/lib 


LIBDESC_LIB_PATH = 
LIBDESC_INC_PATH = 

INCLUDE_PATH = $(LIBDESC_INC_PATH)
LIBRARIES_PATH = $(LIBDESC_LIB_PATH)

#---------------------------------------------------------------------------
#
#  Classification of files
#
#---------------------------------------------------------------------------

# source files
AL_VER_SOURCES = $(SOURCE_DIR)/al_ver.c
DP_VER_SOURCES = $(SOURCE_DIR)/dp_ver.c
DR_VER_SOURCES = $(SOURCE_DIR)/dr_ver.c
RR_VER_SOURCES = $(SOURCE_DIR)/rr_ver.c
SS_VER_SOURCES = $(SOURCE_DIR)/ss_ver.c
TS_VER_SOURCES = $(SOURCE_DIR)/ts_ver.c
TS_VER_SERV_SOURCES = $(SOURCE_DIR)/ts_ver_serv.c

SOURCES = $(AL_VER_SOURCES) $(DP_VER_SOURCES) $(DR_VER_SOURCES) $(RR_VER_SOURCES) $(SS_VER_SOURCES) $(TS_VER_SOURCES) $(TS_VER_SERV_SOURCES)

#---------------------------------------------------------------------------
#
#  Tools & Options
#
#---------------------------------------------------------------------------

C_COMPILER       = gcc-3.3
FORTRAN_COMPILER = g77
LIBTOOL          = libtool

PRINT            = @echo
DELETE           = rm -fr

CFLAGS           = -Wall -std=gnu99 -mmmx -msse -D_GNU_SOURCE -g -DMPI
LDFLAGS          = -g
#LDFLAGS          = -L$(LIBRARIES_PATH) -g
LDLIBS           = -lpng -lm -lpng -lz
FFLAGS           = -Wall -mmmx -msse -D_GNU_SOURCE -O0 -ffast-math

#---------------------------------------------------------------------------
#
# Rules
#
#---------------------------------------------------------------------------

# al_ver.c -> al_ver.o
al_ver.o : $(AL_VER_SOURCES)
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Compile: $@
	$(C_COMPILER) $(CFLAGS) -c -o $(TARGET_DIR)/$@ $<

# dp_ver.c -> dp_ver.o
dp_ver.o : $(DP_VER_SOURCES)
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Compile: $@
	$(C_COMPILER) $(CFLAGS) -c -o $(TARGET_DIR)/$@ $<
	
# dr_ver.c -> dr_ver.o
dr_ver.o : $(DR_VER_SOURCES)
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Compile: $@
	$(C_COMPILER) $(CFLAGS) -c -o $(TARGET_DIR)/$@ $<

## ss_ver.c -> ss_ver.o
#ss_ver.o : $(SS_VER_SOURCES)
#	$(PRINT) ----------------------------------------------------------------------
#	$(PRINT) Compile: $@
#	$(C_COMPILER) $(CFLAGS) -c -o $(TARGET_DIR)/$@ $<

# rr_ver.c -> rr_ver.o
rr_ver.o : $(RR_VER_SOURCES)
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Compile: $@
	$(C_COMPILER) $(CFLAGS) -c -o $(TARGET_DIR)/$@ $<

# ts_ver.c -> ts_ver.o
ts_ver.o : $(TS_VER_SOURCES)
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Compile: $@
	$(C_COMPILER) $(CFLAGS) -c -o $(TARGET_DIR)/$@ $<

# ts_ver_serv.c -> ts_ver_serv.o
ts_ver_serv.o : $(TS_VER_SERV_SOURCES)
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Compile: $@
	$(C_COMPILER) $(CFLAGS) -c -o $(TARGET_DIR)/$@ $<

# al_ver.o -> bin/al_ver
al_ver: al_ver.o
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Build executable: $@
	$(C_COMPILER) $(LDFLAGS) -o $(BIN_DIR)/$@ $(TARGET_DIR)/al_ver.o $(LDLIBS)
	$(PRINT) $@ : Done build.

# dp_ver.o -> bin/dp_ver
dp_ver: dp_ver.o
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Build executable: $@
	$(C_COMPILER) $(LDFLAGS) -o $(BIN_DIR)/$@ $(TARGET_DIR)/dp_ver.o $(LDLIBS)
	$(PRINT) $@ : Done build.


# dr_ver.o -> bin/dr_ver
dr_ver: dr_ver.o
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Build executable: $@
	$(C_COMPILER) $(LDFLAGS) -o $(BIN_DIR)/$@ $(TARGET_DIR)/dr_ver.o $(LDLIBS)
	$(PRINT) $@ : Done build.

# rr_ver.o -> bin/rr_ver
rr_ver: rr_ver.o
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Build executable: $@
	$(C_COMPILER) $(LDFLAGS) -o $(BIN_DIR)/$@ $(TARGET_DIR)/rr_ver.o $(LDLIBS)
	$(PRINT) $@ : Done build.

## ss_ver.o -> bin/ss_ver
#ss_ver: ss_ver.o
#	$(PRINT) ----------------------------------------------------------------------
#	$(PRINT) Build executable: $@
#	$(C_COMPILER) $(LDFLAGS) -o $(BIN_DIR)/$@ $(TARGET_DIR)/ss_ver.o $(LDLIBS)
#	$(PRINT) $@ : Done build.

# ts_ver.o -> bin/ts_verProjects
ts_ver: ts_ver.o
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Build executable: $@
	$(C_COMPILER) $(LDFLAGS) -o $(BIN_DIR)/$@ $(TARGET_DIR)/ts_ver.o $(LDLIBS)
	$(PRINT) $@ : Done build.

# ts_ver_serv.o -> bin/ts_verProjects
ts_ver_serv: ts_ver_serv.o
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Build executable: $@
	$(C_COMPILER) $(LDFLAGS) -o $(BIN_DIR)/$@ $(TARGET_DIR)/ts_ver.o $(LDLIBS)
	$(PRINT) $@ : Done build.


all : al_ver dp_ver dr_ver rr_ver  ts_ver ts_ver_serv
#ss_ver
	$(PRINT) 
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Done.
	$(PRINT) ----------------------------------------------------------------------

clean:
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Clean obj/ and bin/ directories: $@
	$(DELETE) $(BIN_DIR)/* $(TARGET_DIR)/*
	$(PRINT) Done clean.
