|
1 | 1 | CXX ?= g++
|
2 |
| -CFLAGS = -Wall -Wconversion -O3 -fPIC -fopenmp |
| 2 | +CFLAGS_normal = -Wall -Wconversion -O3 -fPIC -DENABLEOPENMP -fopenmp |
| 3 | +CFLAGS_fallback = -Wall -Wconversion -O3 -DDISABLEOPENMP -fPIC |
3 | 4 | SHVER = 2
|
4 | 5 | OS = $(shell uname)
|
5 | 6 |
|
6 | 7 | all: svm-train svm-predict svm-scale
|
7 | 8 |
|
8 |
| -lib: svm.o |
| 9 | +lib: |
| 10 | + $(MAKE) lib_normal || $(MAKE) lib_fallback |
| 11 | + |
| 12 | +lib_normal: svm.o |
| 13 | + if [ "$(OS)" = "Darwin" ]; then \ |
| 14 | + SHARED_LIB_FLAG="-dynamiclib -Wl,-install_name,libsvm.so.$(SHVER)"; \ |
| 15 | + else \ |
| 16 | + SHARED_LIB_FLAG="-shared -Wl,-soname,libsvm.so.$(SHVER)"; \ |
| 17 | + fi; \ |
| 18 | + $(CXX) $${SHARED_LIB_FLAG} -DENABLEOPENMP -fopenmp svm.o -o libsvm.so.$(SHVER) |
| 19 | + |
| 20 | +lib_fallback: svm.o |
9 | 21 | if [ "$(OS)" = "Darwin" ]; then \
|
10 | 22 | SHARED_LIB_FLAG="-dynamiclib -Wl,-install_name,libsvm.so.$(SHVER)"; \
|
11 | 23 | else \
|
12 | 24 | SHARED_LIB_FLAG="-shared -Wl,-soname,libsvm.so.$(SHVER)"; \
|
13 | 25 | fi; \
|
14 |
| - $(CXX) $${SHARED_LIB_FLAG} -fopenmp svm.o -o libsvm.so.$(SHVER) |
| 26 | + $(CXX) $${SHARED_LIB_FLAG} -DDISABLEOPENMP svm.o -o libsvm.so.$(SHVER) |
15 | 27 |
|
16 | 28 | svm-predict: svm-predict.c svm.o
|
17 | 29 | $(CXX) $(CFLAGS) svm-predict.c svm.o -o svm-predict -lm
|
| 30 | + |
18 | 31 | svm-train: svm-train.c svm.o
|
19 | 32 | $(CXX) $(CFLAGS) svm-train.c svm.o -o svm-train -lm
|
| 33 | + |
20 | 34 | svm-scale: svm-scale.c
|
21 | 35 | $(CXX) $(CFLAGS) svm-scale.c -o svm-scale
|
22 |
| -svm.o: svm.cpp svm.h |
23 |
| - $(CXX) $(CFLAGS) -c svm.cpp |
| 36 | + |
| 37 | +svm.o: |
| 38 | + $(MAKE) svm.o_normal || $(MAKE) svm.o_fallback |
| 39 | + |
| 40 | +svm.o_normal: svm.cpp svm.h |
| 41 | + $(CXX) $(CFLAGS_normal) -c svm.cpp |
| 42 | + |
| 43 | +svm.o_fallback: svm.cpp svm.h |
| 44 | + $(CXX) $(CFLAGS_fallblack) -c svm.cpp |
| 45 | + |
24 | 46 | clean:
|
25 | 47 | rm -f *~ svm.o svm-train svm-predict svm-scale libsvm.so.$(SHVER)
|
0 commit comments