#---------------------------------------------------------------------------
#  
#  (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=.

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

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

# source files
TS_VER_SOURCES = $(SOURCE_DIR)/ts_ver.c
QS_VER_SOURCES = $(SOURCE_DIR)/qs_ver.c

SOURCES = $(TS_VER_SOURCES) $(QS_VER_SOURCES)

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

C_COMPILER       = gcc
FORTRAN_COMPILER = g77
LIBTOOL          = libtool

PRINT            = @echo
DELETE           = rm -fr

CFLAGS           = -Wall -std=gnu99 -mmmx -msse -D_GNU_SOURCE -g -DMPI
LDFLAGS          = -g
LDLIBS           = -lpng -lm -lpng -lz
FFLAGS           = -Wall -mmmx -msse -D_GNU_SOURCE -O0 -ffast-math

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

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

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

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

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

all : ts_ver qs_ver
	$(PRINT) 
	$(PRINT) ----------------------------------------------------------------------
	$(PRINT) Done.
	$(PRINT) ----------------------------------------------------------------------

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