-
Notifications
You must be signed in to change notification settings - Fork 2
/
Makefile
114 lines (90 loc) · 3.27 KB
/
Makefile
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
104
105
106
107
108
109
110
111
112
113
##################################################
# Makefile for sf1v 4.5
##################################################
# Author : Dohyun Yun
# Date : 2010.10.12
##################################################
# Description : This is for building static
# library.
# Prerequisite
# - Environmental variables
# SF1_SRC
##################################################
##################################################
# include c-compiler environment makefile
##################################################
ifeq ($(origin SF1_SRC), undefined)
include ./Makefile.defs
else
include $(SF1_SRC)/build_system/common-defs.mak
endif
SRC_HOME = $(CURDIR)/source
LIB_OUT = lib/libcmac.a
##################################################
# include paths
##################################################
INC_DIRS = -I./include \
-I$(SRC_HOME) \
-I$(SRC_HOME)/include \
-I$(SRC_HOME)/corpus \
-I$(SRC_HOME)/maxent \
-I$(SRC_HOME)/vsynonym
##################################################
# objects
##################################################
OBJS = $(OBJ_SRC) $(OBJ_TIXML) $(OBJ_CORPUS) $(OBJ_MAXENT)
OBJ_SRC = $(patsubst %.cpp, %.o, $(wildcard $(SRC_HOME)/src/*.cpp)) \
$(patsubst %.cc, %.o, $(wildcard $(SRC_HOME)/src/*.cc)) \
$(OBJ_SRC_DICTB) \
$(OBJ_SRC_FMINCOVER) \
$(OBJ_SRC_ME) \
$(OBJ_SRC_TYPE) \
$(OBJ_SRC_UTIL)
OBJ_SRC_DICTB = $(patsubst %.cpp, %.o, $(wildcard $(SRC_HOME)/src/dictb/*.cpp))
OBJ_SRC_FMINCOVER = $(patsubst %.cpp, %.o, $(wildcard $(SRC_HOME)/src/fmincover/*.cpp))
OBJ_SRC_ME = $(patsubst %.cc, %.o, $(wildcard $(SRC_HOME)/src/me/*.cc))
OBJ_SRC_TYPE = $(patsubst %.cpp, %.o, $(wildcard $(SRC_HOME)/src/type/*.cpp))
OBJ_SRC_UTIL = $(patsubst %.cpp, %.o, $(wildcard $(SRC_HOME)/src/util/*.cpp)) \
$(patsubst %.cc, %.o, $(wildcard $(SRC_HOME)/src/util/*.cc))
OBJ_TIXML = $(patsubst %.cpp, %.o, $(wildcard $(SRC_HOME)/tixml/*.cpp))
OBJ_CORPUS = $(patsubst %.cpp, %.o, $(wildcard $(SRC_HOME)/corpus/*.cpp))
OBJ_MAXENT = $(SRC_HOME)/maxent/display.o \
$(SRC_HOME)/maxent/gistrainer.o \
$(SRC_HOME)/maxent/maxentmodel.o \
$(SRC_HOME)/maxent/trainer.o \
$(SRC_HOME)/maxent/mmapfile.o \
$(SRC_HOME)/maxent/modelfile.o \
$(SRC_HOME)/maxent/maxent_cmdline.o
##################################################
# suffixes rules
##################################################
.SUFFIXES: .cpp .cc .c .o .d
##################################################
# all
##################################################
all: $(LIB_OUT)
##################################################
# install
##################################################
#install:
##################################################
# compile
##################################################
%.o: %.cpp
$(CC_PROG) $(CC_FLAGS) $(INC_DIRS) -o $@ $<
%.o: %.cc
$(CC_PROG) $(CC_FLAGS) $(INC_DIRS) -o $@ $<
%.o: %.c
$(CC_PROG) $(CC_FLAGS) $(INC_DIRS) -o $@ $<
##################################################
# library output
##################################################
$(LIB_OUT): $(OBJS)
$(LIB_PROG) $(LIB_FLAGS) $@ $?
##################################################
# clean
##################################################
clean: clean-lib
$(DEL_PROG) $(OBJS) $(OBJS:.o=.d)
clean-lib:
$(DEL_PROG) $(LIB_OUT)