#
# Copyright 2007 Peter Mills. All rights reserved.
#
#---------------------------------------------------------------------#
# The user should modify the following macros #
# to suit his or her system: #
#---------------------------------------------------------------------#
OPT_VER=-g
EXE_EXT=.exe
CC = g++
BASE_PATH = /home/lenovo
#BASE_PATH=/mnt/sda1/home2/pete
LIB_PATH = $(BASE_PATH)/lib
BIN_PATH = $(BASE_PATH)/bin
INCLUDE_PATH = $(BASE_PATH)/include
#GSL_LIB = $(LIB_PATH)
#GSL_INCLUDE = $(INCLUDE_PATH)
GSL_LIB = /usr/local/lib
GSL_INCLUDE = /usr/local/include
LD_OPTIONS = -L$(GSL_LIB) -L$(LIB_PATH) -L. \
-lpetey$(OPT_VER) -lgsl -lgslcblas #-L/usr/lib/ncurses -lcurses
CFLAGS = $(OPT_VER) -I$(GSL_INCLUDE) -I$(INCLUDE_PATH) -Wno-deprecated #-O2
#---------------------------------------------------------------------#
# End modifiable macros #
# #
#---------------------------------------------------------------------#
LIBNAME = libagf$(OPT_VER).a
LIBPETEY = libpetey$(OPT_VER).a
VPATH = $(GSL_LIB):$(GSL_INCLUDE):$(LIB_PATH)
EXECUTABLES = class_borders \
classify_b \
classify_m \
cls_comp_stats \
pdf_knn \
pdf_agf \
pdf_sim \
pdf_agf_opt \
nfold \
cluster_knn \
agf_precondition \
agf_preprocess \
agf_correlate \
float_to_class \
class_to_float \
roc_curve \
browse_cluster_tree \
multi_borders \
C2R \
lvq2agf \
agf2ascii \
svmout2agf \
svm2agf \
agf \
knn \
svm_1shot_binary
OLD = classify_a \
classify_knn \
int_agf \
int_knn \
test_classify \
test_classify_b \
test_knn
OBJECT_FILES = agf_metric2$(OPT_VER).o \
agf_engine$(OPT_VER).o \
agf_calc_pdf$(OPT_VER).o \
agf_calc_pdf_opt$(OPT_VER).o \
agf_classify$(OPT_VER).o \
adgaf$(OPT_VER).o \
sample_class_borders$(OPT_VER).o \
find_class_borders$(OPT_VER).o \
agf_two_class$(OPT_VER).o \
agf_util$(OPT_VER).o \
agf_eval$(OPT_VER).o \
agf_io$(OPT_VER).o \
knn_lib$(OPT_VER).o \
cluster_lib$(OPT_VER).o \
multi_parse$(OPT_VER).o \
multiclass_hier$(OPT_VER).o \
multiclass$(OPT_VER).o \
classifier_obj$(OPT_VER).o \
batch_borders$(OPT_VER).o
INCLUDE_FILES = agf_util.h \
agf_eval.h \
agf_metric2.h \
agf_engine.h \
knn_lib.h \
cluster_lib.h \
agf_io.h \
agf_defs.h \
agf_two_class.h \
sample_class_borders.h \
find_class_borders.h \
agf_calc_pdf.h \
adgaf.h \
multi_parse.h \
multi_class.h \
agf_classify.h
LIBRARY_INCLUDE = agf_lib.h
EXECUTABLES2=$(addsuffix $(OPT_VER)$(EXE_EXT), $(EXECUTABLES))
EXECUTABLES3=$(addprefix $(BIN_PATH)/, $(addsuffix $(EXE_EXT), $(EXECUTABLES)))
INCLUDE_FILES2=$(addprefix $(INCLUDE_PATH)/, $(INCLUDE_FILES))
all: $(LIBNAME) $(EXECUTABLES2)
install: $(EXECUTABLES3)
make install_include
make install_lib
install validate_pdf.sh $(BIN_PATH)
install_lib: $(LIBNAME)
install $(LIBNAME) $(LIB_PATH)
install_include: $(INCLUDE_PATH)/$(LIBRARY_INCLUDE)
$(INCLUDE_PATH)/$(LIBRARY_INCLUDE): $(LIBRARY_INCLUDE)
install $(INCLUDE_FILES) $(INCLUDE_PATH)
install $(LIBRARY_INCLUDE) $(INCLUDE_PATH)
test:
make -C validation test
make -C validation test_pdf
#old code that still might be useful:
OLD2=$(addsuffix $(OPT_VER)$(EXE_EXT), $(OLD))
OLD3=$(addprefix $(BIN_PATH)/, $(addsuffix $(EXE_EXT), $(OLD)))
old: $(OLD2)
install_old: $(OLD3)
$(EXECUTABLES3) $(OLD3): $(BIN_PATH)/%$(EXE_EXT): %$(OPT_VER)$(EXE_EXT)
install $< $@
clean:
rm -f $(OBJECT_FILES)
rm -f $(EXECUTABLES2)
rm -f $(LIBNAME)
rm -f $(OLD2)
$(EXECUTABLES2) $(OLD2): %$(OPT_VER)$(EXE_EXT): %.cc $(LIBNAME) $(LIBPETEY) $(LIBRARY_INCLUDE)
$(CC) $(CFLAGS) -o $@ $< $(LIBNAME) $(LD_OPTIONS)
$(LIBNAME): $(OBJECT_FILES) makefile
ar -rs $(LIBNAME) $(OBJECT_FILES)
$(OBJECT_FILES): %$(OPT_VER).o: %.cc $(LIBRARY_INCLUDE)
$(CC) $(CFLAGS) -c $< -o $@
$(LIBRARY_INCLUDE): $(INCLUDE_FILES)
touch $(LIBRARY_INCLUDE)
#$(LIBPETEY):
# make -C $(DATASET_PATH)