aboutsummaryrefslogtreecommitdiff
path: root/FEAST/FSToolbox/Makefile
blob: b8baade791c8eb979b533bf16b9e6fae99f93d0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# makefile for FEAST
# Author: Adam Pocock, apocock@cs.man.ac.uk
# Created: 29/06/2011
#
# Part of the Feature Selection Toolbox, please reference
# "Conditional Likelihood Maximisation: A Unifying Framework for Mutual
# Information Feature Selection"
# G. Brown, A. Pocock, M.-J. Zhao, M. Lujan
# Journal of Machine Learning Research (JMLR), 2012
#
# Please check www.cs.manchester.ac.uk/~gbrown/fstoolbox for updates.
# 
# Copyright (c) 2010-2011, A. Pocock, G. Brown, The University of Manchester
# All rights reserved.
# 
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
# 
#   - Redistributions of source code must retain the above copyright notice, this 
#     list of conditions and the following disclaimer.
#   - Redistributions in binary form must reproduce the above copyright notice, 
#     this list of conditions and the following disclaimer in the documentation 
#     and/or other materials provided with the distribution.
#   - Neither the name of The University of Manchester nor the names of its 
#     contributors may be used to endorse or promote products derived from this 
#     software without specific prior written permission.
# 
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

PREFIX = /usr
CXXFLAGS = -O3 -fPIC
COMPILER = gcc
LINKER = ld
MITOOLBOXPATH = ../MIToolbox/
objects = mRMR_D.o CMIM.o JMI.o DISR.o CondMI.o ICAP.o BetaGamma.o

libFSToolbox.so : $(objects)
	$(LINKER) -lMIToolbox -lm -shared -o libFSToolbox.so $(objects)

mRMR_D.o: mRMR_D.c  
	$(COMPILER) $(CXXFLAGS) -DCOMPILE_C -c mRMR_D.c -I$(MITOOLBOXPATH)

CMIM.o: CMIM.c 
	$(COMPILER) $(CXXFLAGS) -DCOMPILE_C -c CMIM.c -I$(MITOOLBOXPATH)

JMI.o: JMI.c 
	$(COMPILER) $(CXXFLAGS) -DCOMPILE_C -c JMI.c -I$(MITOOLBOXPATH)

DISR.o: DISR.c 
	$(COMPILER) $(CXXFLAGS) -DCOMPILE_C -c DISR.c -I$(MITOOLBOXPATH)

CondMI.o: CondMI.c 
	$(COMPILER) $(CXXFLAGS) -DCOMPILE_C -c CondMI.c -I$(MITOOLBOXPATH)

ICAP.o: ICAP.c 
	$(COMPILER) $(CXXFLAGS) -DCOMPILE_C -c ICAP.c -I$(MITOOLBOXPATH)

BetaGamma.o: BetaGamma.c 
	$(COMPILER) $(CXXFLAGS) -DCOMPILE_C -c BetaGamma.c -I$(MITOOLBOXPATH)
	
.PHONY : debug
debug:
	$(MAKE) libFSToolbox.so "CXXFLAGS = -g -DDEBUG -fPIC"
	
.PHONY : x86
x86:
	$(MAKE) libFSToolbox.so "CXXFLAGS = -O3 -fPIC -m32"
	
.PHONY : x64
x64:
	$(MAKE) libFSToolbox.so "CXXFLAGS = -O3 -fPIC -m64"
	
.PHONY : matlab
matlab:
	mex -I$(MITOOLBOXPATH) FSToolboxMex.c BetaGamma.c CMIM.c CondMI.c DISR.c ICAP.c JMI.c mRMR_D.c $(MITOOLBOXPATH)MutualInformation.c $(MITOOLBOXPATH)Entropy.c $(MITOOLBOXPATH)CalculateProbability.c $(MITOOLBOXPATH)ArrayOperations.c
  
.PHONY : matlab-debug
matlab-debug:
	mex -g -I$(MITOOLBOXPATH) FSToolboxMex.c BetaGamma.c CMIM.c CondMI.c DISR.c ICAP.c JMI.c mRMR_D.c $(MITOOLBOXPATH)MutualInformation.c $(MITOOLBOXPATH)Entropy.c $(MITOOLBOXPATH)CalculateProbability.c $(MITOOLBOXPATH)ArrayOperations.c

.PHONY : intel
intel:
	$(MAKE) libFSToolbox.so "COMPILER = icc" "CXXFLAGS = -O2 -fPIC -xHost"

.PHONY : clean
clean:
	rm *.o 
	rm libFSToolbox.so

.PHONY : install
install:
	$(MAKE)
	@echo "installing libFSToolbox.so to $(PREFIX)/lib"
	cp -v libFSToolbox.so $(PREFIX)/lib