-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
131 lines (106 loc) · 5.21 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2023 Masanori Ogino
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
.PHONY: all clean depend distclean install
include Makefile.configure
VMAJOR = 2
VMINOR = 0
VPATCH = 99
VERSION := $(VMAJOR).$(VMINOR).$(VPATCH)
LIBVER = 1
CFLAGS += -fPIC
CPPFLAGS += -I.
LDFLAGS += -L.
# Public API library
PUBLIC_LIBS = libsj3lib.a libsj3lib.so.$(LIBVER)
SJ3LIB_OBJS = level1.o sj3lib.o string.o
# Private libraries
PRIVATE_LIBS = libkanakan.a libsj3rkcv.a
KANAKAN_OBJS = adddic.o addelcmn.o alloc.o charsize.o chrtbl.o cl2knj.o \
clstudy.o cmpstr.o conjunc.o connect.o cvtclknj.o cvtdict.o \
cvtkanji.o deldic.o depend.o dict.o functbl.o fuzoku.o \
fzkyomi.o getkanji.o getrank.o global2.o hzstrlen.o init.o \
istrcmp.o memory2.o mk2claus.o mkbunset.o mkjiritu.o mkkouho.o \
mknumber.o mvmemd.o mvmemi.o peepdic.o ph2knj.o ph_khtbl.o \
priority.o prtytbl.o s2ctbl.o selclrec.o selsuuji.o setconj.o \
setjrec.o setkouho.o setubi.o sj2code.o skiphblk.o skipkstr.o \
srchdict.o srchhead.o srchidx.o srchnum.o stbtbl.o stttbl.o \
study.o suujitbl.o terminat.o termtbl.o wakachi.o
SJ3RKCV_OBJS = rk_conv.o sj3_rkcv.o wc16_str.o
# Client applications
CLIENT_APPS = sj3dic sj3mkdic sj3stat
SJ3_OBJS = code.o common.o conv.o display.o douon.o edit.o etc.o \
eucmessage.o funckey.o henkan.o kigou.o libif.o nmttyslot.o \
romaji.o screen.o sj3.o sj3ver.o sjgetchar.o sjrc2.o \
stat_conv.o term.o toroku.o version2.o
SJ3DIC_OBJS = codecnv.o dictdisp.o dictmake.o hinsi.o sj3dic.o sj3err.o \
sjrc.o
SJ3MKDIC_OBJS = char.o cnvhinsi.o file.o global.o hindo.o knjcvt.o makedict.o \
makelist.o makeseg.o memory.o offset.o readline.o string2.o
SJ3STAT_OBJS = sj3stat.o
# Server daemon
SJ3SERV_OBJS = comuni.o error.o execute.o main.o setup.o
ALL_OBJS = $(SJ3LIB_OBJS) $(KANAKAN_OBJS) $(SJ3RKCV_OBJS) $(SJ3_OBJS) \
$(SJ3DIC_OBJS) $(SJ3MKDIC_OBJS) $(SJ3STAT_OBJS) $(SJ3SERV_OBJS)
all: $(PUBLIC_LIBS) $(PRIVATE_LIBS) $(CLIENT_APPS) sj3serv
install: all
mkdir -p $(DESTDIR)$(BINDIR)
mkdir -p $(DESTDIR)$(INCLUDEDIR)
mkdir -p $(DESTDIR)$(LIBDIR)
mkdir -p $(DESTDIR)/etc/sj3
mkdir -p $(DESTDIR)$(SHAREDIR)/sj3/dict
$(INSTALL_PROGRAM) sj3dic $(DESTDIR)$(BINDIR)
$(INSTALL_PROGRAM) sj3mkdic $(DESTDIR)$(BINDIR)
$(INSTALL_PROGRAM) sj3serv $(DESTDIR)$(BINDIR)
$(INSTALL_PROGRAM) sj3stat $(DESTDIR)$(BINDIR)
$(INSTALL_LIB) libsj3lib.a $(DESTDIR)$(LIBDIR)
$(INSTALL_LIB) libsj3lib.so.$(LIBVER) $(DESTDIR)$(LIBDIR)
ln -sf libsj3lib.so.$(LIBVER) $(DESTDIR)$(LIBDIR)/libsj3lib.so
$(INSTALL_DATA) sj3lib.h $(DESTDIR)$(INCLUDEDIR)
$(INSTALL_DATA) serverrc $(DESTDIR)/etc/sj3
./sj3mkdic dict/visual.eucjp $(DESTDIR)$(SHAREDIR)/sj3/dict/sj3main.dic > /dev/null
clean:
rm -f $(PUBLIC_LIBS) $(PRIVATE_LIBS) $(ALL_OBJS) compats.o $(CLIENT_APPS) sj3serv
distclean: clean
rm -f Makefile.configure Paths.h config.h config.log
libsj3lib.a: $(SJ3LIB_OBJS) compats.o
$(AR) crs $@ $(SJ3LIB_OBJS) compats.o
libsj3lib.so.$(LIBVER): $(SJ3LIB_OBJS) compats.o
$(CC) -shared -o $@ $(SJ3LIB_OBJS) compats.o $(LDFLAGS) -Wl,${LINKER_SONAME},$@ $(LDLIBS)
libkanakan.a: $(KANAKAN_OBJS) compats.o
$(AR) crs $@ $(KANAKAN_OBJS) compats.o
libsj3rkcv.a: $(SJ3RKCV_OBJS) compats.o
$(AR) crs $@ $(SJ3RKCV_OBJS) compats.o
sj3: $(SJ3_OBJS) libsj3lib.a libsj3rkcv.a compats.o
$(CC) -static -o $@ $(SJ3_OBJS) compats.o $(LDFLAGS) $(LDLIBS) -ltermcap -lsj3lib -lsj3rkcv
sj3dic: $(SJ3DIC_OBJS) libsj3lib.a compats.o
$(CC) -static -o $@ $(SJ3DIC_OBJS) compats.o $(LDFLAGS) $(LDLIBS) -lsj3lib
sj3mkdic: $(SJ3MKDIC_OBJS) libsj3lib.a compats.o
$(CC) -static -o $@ $(SJ3MKDIC_OBJS) compats.o $(LDFLAGS) $(LDLIBS) -lsj3lib
sj3serv: $(SJ3SERV_OBJS) libsj3lib.a libkanakan.a compats.o
$(CC) -static -o $@ $(SJ3SERV_OBJS) compats.o $(LDFLAGS) $(LDLIBS) -lsj3lib -lkanakan
sj3stat: $(SJ3STAT_OBJS) libsj3lib.a compats.o
$(CC) -static -o $@ $(SJ3STAT_OBJS) compats.o $(LDFLAGS) $(LDLIBS) -lsj3lib
Paths.h: Paths.h.in
sed -e "s|@SJ3CONFDIR@|/etc/sj3|" -e "s|@SJ3DICTDIR@|$(SHAREDIR)/sj3/dict|" Paths.h.in > $@
depend:
cc -E -MM -w *.c > Makefile.depend
include Makefile.depend