Blame


1 6f212e04 2022-11-04 op # See LICENSE file for copyright and license details
2 6f212e04 2022-11-04 op # libgrapheme - unicode string library
3 6f212e04 2022-11-04 op .POSIX:
4 6f212e04 2022-11-04 op .SUFFIXES:
5 6f212e04 2022-11-04 op
6 6f212e04 2022-11-04 op VERSION_MAJOR = 2
7 6f212e04 2022-11-04 op VERSION_MINOR = 0
8 6f212e04 2022-11-04 op VERSION_PATCH = 2
9 6f212e04 2022-11-04 op UNICODE_VERSION = 15.0.0
10 6f212e04 2022-11-04 op MAN_DATE = 2022-10-06
11 6f212e04 2022-11-04 op
12 6f212e04 2022-11-04 op include config.mk
13 6f212e04 2022-11-04 op
14 6f212e04 2022-11-04 op VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH)
15 6f212e04 2022-11-04 op
16 6f212e04 2022-11-04 op BENCHMARK =\
17 6f212e04 2022-11-04 op benchmark/case\
18 6f212e04 2022-11-04 op benchmark/character\
19 6f212e04 2022-11-04 op benchmark/sentence\
20 6f212e04 2022-11-04 op benchmark/line\
21 6f212e04 2022-11-04 op benchmark/utf8-decode\
22 6f212e04 2022-11-04 op benchmark/word\
23 6f212e04 2022-11-04 op
24 6f212e04 2022-11-04 op DATA =\
25 6f212e04 2022-11-04 op data/DerivedCoreProperties.txt\
26 6f212e04 2022-11-04 op data/EastAsianWidth.txt\
27 6f212e04 2022-11-04 op data/emoji-data.txt\
28 6f212e04 2022-11-04 op data/GraphemeBreakProperty.txt\
29 6f212e04 2022-11-04 op data/GraphemeBreakTest.txt\
30 6f212e04 2022-11-04 op data/LICENSE\
31 6f212e04 2022-11-04 op data/LineBreak.txt\
32 6f212e04 2022-11-04 op data/LineBreakTest.txt\
33 6f212e04 2022-11-04 op data/SentenceBreakProperty.txt\
34 6f212e04 2022-11-04 op data/SentenceBreakTest.txt\
35 6f212e04 2022-11-04 op data/SpecialCasing.txt\
36 6f212e04 2022-11-04 op data/UnicodeData.txt\
37 6f212e04 2022-11-04 op data/WordBreakProperty.txt\
38 6f212e04 2022-11-04 op data/WordBreakTest.txt\
39 6f212e04 2022-11-04 op
40 6f212e04 2022-11-04 op GEN =\
41 6f212e04 2022-11-04 op gen/case\
42 6f212e04 2022-11-04 op gen/character\
43 6f212e04 2022-11-04 op gen/character-test\
44 6f212e04 2022-11-04 op gen/line\
45 6f212e04 2022-11-04 op gen/line-test\
46 6f212e04 2022-11-04 op gen/sentence\
47 6f212e04 2022-11-04 op gen/sentence-test\
48 6f212e04 2022-11-04 op gen/word\
49 6f212e04 2022-11-04 op gen/word-test\
50 6f212e04 2022-11-04 op
51 6f212e04 2022-11-04 op SRC =\
52 6f212e04 2022-11-04 op src/case\
53 6f212e04 2022-11-04 op src/character\
54 6f212e04 2022-11-04 op src/line\
55 6f212e04 2022-11-04 op src/sentence\
56 6f212e04 2022-11-04 op src/utf8\
57 6f212e04 2022-11-04 op src/util\
58 6f212e04 2022-11-04 op src/word\
59 6f212e04 2022-11-04 op
60 6f212e04 2022-11-04 op TEST =\
61 6f212e04 2022-11-04 op test/case\
62 6f212e04 2022-11-04 op test/character\
63 6f212e04 2022-11-04 op test/line\
64 6f212e04 2022-11-04 op test/sentence\
65 6f212e04 2022-11-04 op test/utf8-decode\
66 6f212e04 2022-11-04 op test/utf8-encode\
67 6f212e04 2022-11-04 op test/word\
68 6f212e04 2022-11-04 op
69 6f212e04 2022-11-04 op MAN_TEMPLATE =\
70 6f212e04 2022-11-04 op man/template/is_case.sh\
71 6f212e04 2022-11-04 op man/template/next_break.sh\
72 6f212e04 2022-11-04 op man/template/to_case.sh\
73 6f212e04 2022-11-04 op
74 6f212e04 2022-11-04 op MAN3 =\
75 6f212e04 2022-11-04 op man/grapheme_decode_utf8\
76 6f212e04 2022-11-04 op man/grapheme_encode_utf8\
77 6f212e04 2022-11-04 op man/grapheme_is_character_break\
78 6f212e04 2022-11-04 op man/grapheme_is_uppercase\
79 6f212e04 2022-11-04 op man/grapheme_is_uppercase_utf8\
80 6f212e04 2022-11-04 op man/grapheme_is_lowercase\
81 6f212e04 2022-11-04 op man/grapheme_is_lowercase_utf8\
82 6f212e04 2022-11-04 op man/grapheme_is_titlecase\
83 6f212e04 2022-11-04 op man/grapheme_is_titlecase_utf8\
84 6f212e04 2022-11-04 op man/grapheme_next_character_break\
85 6f212e04 2022-11-04 op man/grapheme_next_line_break\
86 6f212e04 2022-11-04 op man/grapheme_next_sentence_break\
87 6f212e04 2022-11-04 op man/grapheme_next_word_break\
88 6f212e04 2022-11-04 op man/grapheme_next_character_break_utf8\
89 6f212e04 2022-11-04 op man/grapheme_next_line_break_utf8\
90 6f212e04 2022-11-04 op man/grapheme_next_sentence_break_utf8\
91 6f212e04 2022-11-04 op man/grapheme_next_word_break_utf8\
92 6f212e04 2022-11-04 op man/grapheme_to_uppercase\
93 6f212e04 2022-11-04 op man/grapheme_to_uppercase_utf8\
94 6f212e04 2022-11-04 op man/grapheme_to_lowercase\
95 6f212e04 2022-11-04 op man/grapheme_to_lowercase_utf8\
96 6f212e04 2022-11-04 op man/grapheme_to_titlecase\
97 6f212e04 2022-11-04 op man/grapheme_to_titlecase_utf8\
98 6f212e04 2022-11-04 op
99 6f212e04 2022-11-04 op MAN7 =\
100 6f212e04 2022-11-04 op man/libgrapheme\
101 6f212e04 2022-11-04 op
102 6f212e04 2022-11-04 op all: data/LICENSE $(MAN3:=.3) $(MAN7:=.7) libgrapheme.a $(SONAME)
103 6f212e04 2022-11-04 op
104 6f212e04 2022-11-04 op data/DerivedCoreProperties.txt:
105 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/DerivedCoreProperties.txt
106 6f212e04 2022-11-04 op
107 6f212e04 2022-11-04 op data/EastAsianWidth.txt:
108 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/EastAsianWidth.txt
109 6f212e04 2022-11-04 op
110 6f212e04 2022-11-04 op data/emoji-data.txt:
111 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/emoji/emoji-data.txt
112 6f212e04 2022-11-04 op
113 6f212e04 2022-11-04 op data/GraphemeBreakProperty.txt:
114 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/auxiliary/GraphemeBreakProperty.txt
115 6f212e04 2022-11-04 op
116 6f212e04 2022-11-04 op data/GraphemeBreakTest.txt:
117 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/auxiliary/GraphemeBreakTest.txt
118 6f212e04 2022-11-04 op
119 6f212e04 2022-11-04 op data/LICENSE:
120 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/license.txt
121 6f212e04 2022-11-04 op
122 6f212e04 2022-11-04 op data/LineBreak.txt:
123 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/LineBreak.txt
124 6f212e04 2022-11-04 op
125 6f212e04 2022-11-04 op data/LineBreakTest.txt:
126 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/auxiliary/LineBreakTest.txt
127 6f212e04 2022-11-04 op
128 6f212e04 2022-11-04 op data/SentenceBreakProperty.txt:
129 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/auxiliary/SentenceBreakProperty.txt
130 6f212e04 2022-11-04 op
131 6f212e04 2022-11-04 op data/SentenceBreakTest.txt:
132 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/auxiliary/SentenceBreakTest.txt
133 6f212e04 2022-11-04 op
134 6f212e04 2022-11-04 op data/SpecialCasing.txt:
135 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/SpecialCasing.txt
136 6f212e04 2022-11-04 op
137 6f212e04 2022-11-04 op data/UnicodeData.txt:
138 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/UnicodeData.txt
139 6f212e04 2022-11-04 op
140 6f212e04 2022-11-04 op data/WordBreakProperty.txt:
141 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/auxiliary/WordBreakProperty.txt
142 6f212e04 2022-11-04 op
143 6f212e04 2022-11-04 op data/WordBreakTest.txt:
144 6f212e04 2022-11-04 op wget -O $@ https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/auxiliary/WordBreakTest.txt
145 6f212e04 2022-11-04 op
146 6f212e04 2022-11-04 op benchmark/case.o: benchmark/case.c Makefile config.mk gen/word-test.h grapheme.h benchmark/util.h
147 6f212e04 2022-11-04 op benchmark/character.o: benchmark/character.c Makefile config.mk gen/character-test.h grapheme.h benchmark/util.h
148 6f212e04 2022-11-04 op benchmark/line.o: benchmark/line.c Makefile config.mk gen/line-test.h grapheme.h benchmark/util.h
149 6f212e04 2022-11-04 op benchmark/utf8-decode.o: benchmark/utf8-decode.c Makefile config.mk gen/character-test.h grapheme.h benchmark/util.h
150 6f212e04 2022-11-04 op benchmark/sentence.o: benchmark/sentence.c Makefile config.mk gen/sentence-test.h grapheme.h benchmark/util.h
151 6f212e04 2022-11-04 op benchmark/util.o: benchmark/util.c Makefile config.mk benchmark/util.h
152 6f212e04 2022-11-04 op benchmark/word.o: benchmark/word.c Makefile config.mk gen/word-test.h grapheme.h benchmark/util.h
153 6f212e04 2022-11-04 op gen/case.o: gen/case.c Makefile config.mk gen/util.h
154 6f212e04 2022-11-04 op gen/character.o: gen/character.c Makefile config.mk gen/util.h
155 6f212e04 2022-11-04 op gen/character-test.o: gen/character-test.c Makefile config.mk gen/util.h
156 6f212e04 2022-11-04 op gen/line.o: gen/line.c Makefile config.mk gen/util.h
157 6f212e04 2022-11-04 op gen/line-test.o: gen/line-test.c Makefile config.mk gen/util.h
158 6f212e04 2022-11-04 op gen/sentence.o: gen/sentence.c Makefile config.mk gen/util.h
159 6f212e04 2022-11-04 op gen/sentence-test.o: gen/sentence-test.c Makefile config.mk gen/util.h
160 6f212e04 2022-11-04 op gen/word.o: gen/word.c Makefile config.mk gen/util.h
161 6f212e04 2022-11-04 op gen/word-test.o: gen/word-test.c Makefile config.mk gen/util.h
162 6f212e04 2022-11-04 op gen/util.o: gen/util.c Makefile config.mk gen/util.h
163 6f212e04 2022-11-04 op src/case.o: src/case.c Makefile config.mk gen/case.h grapheme.h src/util.h
164 6f212e04 2022-11-04 op src/character.o: src/character.c Makefile config.mk gen/character.h grapheme.h src/util.h
165 6f212e04 2022-11-04 op src/line.o: src/line.c Makefile config.mk gen/line.h grapheme.h src/util.h
166 6f212e04 2022-11-04 op src/sentence.o: src/sentence.c Makefile config.mk gen/sentence.h grapheme.h src/util.h
167 6f212e04 2022-11-04 op src/utf8.o: src/utf8.c Makefile config.mk grapheme.h
168 6f212e04 2022-11-04 op src/util.o: src/util.c Makefile config.mk gen/types.h grapheme.h src/util.h
169 6f212e04 2022-11-04 op src/word.o: src/word.c Makefile config.mk gen/word.h grapheme.h src/util.h
170 6f212e04 2022-11-04 op test/case.o: test/case.c Makefile config.mk grapheme.h test/util.h
171 6f212e04 2022-11-04 op test/character.o: test/character.c Makefile config.mk gen/character-test.h grapheme.h test/util.h
172 6f212e04 2022-11-04 op test/line.o: test/line.c Makefile config.mk gen/line-test.h grapheme.h test/util.h
173 6f212e04 2022-11-04 op test/sentence.o: test/sentence.c Makefile config.mk gen/sentence-test.h grapheme.h test/util.h
174 6f212e04 2022-11-04 op test/utf8-encode.o: test/utf8-encode.c Makefile config.mk grapheme.h test/util.h
175 6f212e04 2022-11-04 op test/utf8-decode.o: test/utf8-decode.c Makefile config.mk grapheme.h test/util.h
176 6f212e04 2022-11-04 op test/util.o: test/util.c Makefile config.mk test/util.h
177 6f212e04 2022-11-04 op test/word.o: test/word.c Makefile config.mk gen/word-test.h grapheme.h test/util.h
178 6f212e04 2022-11-04 op
179 6f212e04 2022-11-04 op benchmark/case: benchmark/case.o benchmark/util.o libgrapheme.a
180 6f212e04 2022-11-04 op benchmark/character: benchmark/character.o benchmark/util.o libgrapheme.a
181 6f212e04 2022-11-04 op benchmark/line: benchmark/line.o benchmark/util.o libgrapheme.a
182 6f212e04 2022-11-04 op benchmark/sentence: benchmark/sentence.o benchmark/util.o libgrapheme.a
183 6f212e04 2022-11-04 op benchmark/utf8-decode: benchmark/utf8-decode.o benchmark/util.o libgrapheme.a
184 6f212e04 2022-11-04 op benchmark/word: benchmark/word.o benchmark/util.o libgrapheme.a
185 6f212e04 2022-11-04 op gen/case: gen/case.o gen/util.o
186 6f212e04 2022-11-04 op gen/character: gen/character.o gen/util.o
187 6f212e04 2022-11-04 op gen/character-test: gen/character-test.o gen/util.o
188 6f212e04 2022-11-04 op gen/line: gen/line.o gen/util.o
189 6f212e04 2022-11-04 op gen/line-test: gen/line-test.o gen/util.o
190 6f212e04 2022-11-04 op gen/sentence: gen/sentence.o gen/util.o
191 6f212e04 2022-11-04 op gen/sentence-test: gen/sentence-test.o gen/util.o
192 6f212e04 2022-11-04 op gen/word: gen/word.o gen/util.o
193 6f212e04 2022-11-04 op gen/word-test: gen/word-test.o gen/util.o
194 6f212e04 2022-11-04 op test/case: test/case.o test/util.o libgrapheme.a
195 6f212e04 2022-11-04 op test/character: test/character.o test/util.o libgrapheme.a
196 6f212e04 2022-11-04 op test/line: test/line.o test/util.o libgrapheme.a
197 6f212e04 2022-11-04 op test/sentence: test/sentence.o test/util.o libgrapheme.a
198 6f212e04 2022-11-04 op test/utf8-encode: test/utf8-encode.o test/util.o libgrapheme.a
199 6f212e04 2022-11-04 op test/utf8-decode: test/utf8-decode.o test/util.o libgrapheme.a
200 6f212e04 2022-11-04 op test/word: test/word.o test/util.o libgrapheme.a
201 6f212e04 2022-11-04 op
202 6f212e04 2022-11-04 op gen/case.h: data/DerivedCoreProperties.txt data/UnicodeData.txt data/SpecialCasing.txt gen/case
203 6f212e04 2022-11-04 op gen/character.h: data/emoji-data.txt data/GraphemeBreakProperty.txt gen/character
204 6f212e04 2022-11-04 op gen/character-test.h: data/GraphemeBreakTest.txt gen/character-test
205 6f212e04 2022-11-04 op gen/line.h: data/emoji-data.txt data/EastAsianWidth.txt data/LineBreak.txt gen/line
206 6f212e04 2022-11-04 op gen/line-test.h: data/LineBreakTest.txt gen/line-test
207 6f212e04 2022-11-04 op gen/sentence.h: data/SentenceBreakProperty.txt gen/sentence
208 6f212e04 2022-11-04 op gen/sentence-test.h: data/SentenceBreakTest.txt gen/sentence-test
209 6f212e04 2022-11-04 op gen/word.h: data/WordBreakProperty.txt gen/word
210 6f212e04 2022-11-04 op gen/word-test.h: data/WordBreakTest.txt gen/word-test
211 6f212e04 2022-11-04 op
212 6f212e04 2022-11-04 op man/grapheme_is_character_break.3: man/grapheme_is_character_break.sh Makefile config.mk
213 6f212e04 2022-11-04 op man/grapheme_is_uppercase.3: man/grapheme_is_uppercase.sh man/template/is_case.sh Makefile config.mk
214 6f212e04 2022-11-04 op man/grapheme_is_uppercase_utf8.3: man/grapheme_is_uppercase_utf8.sh man/template/is_case.sh Makefile config.mk
215 6f212e04 2022-11-04 op man/grapheme_is_lowercase.3: man/grapheme_is_lowercase.sh man/template/is_case.sh Makefile config.mk
216 6f212e04 2022-11-04 op man/grapheme_is_lowercase_utf8.3: man/grapheme_is_lowercase_utf8.sh man/template/is_case.sh Makefile config.mk
217 6f212e04 2022-11-04 op man/grapheme_is_titlecase.3: man/grapheme_is_titlecase.sh man/template/is_case.sh Makefile config.mk
218 6f212e04 2022-11-04 op man/grapheme_is_titlecase_utf8.3: man/grapheme_is_titlecase_utf8.sh man/template/is_case.sh Makefile config.mk
219 6f212e04 2022-11-04 op man/grapheme_next_character_break.3: man/grapheme_next_character_break.sh man/template/next_break.sh Makefile config.mk
220 6f212e04 2022-11-04 op man/grapheme_next_line_break.3: man/grapheme_next_line_break.sh man/template/next_break.sh Makefile config.mk
221 6f212e04 2022-11-04 op man/grapheme_next_sentence_break.3: man/grapheme_next_sentence_break.sh man/template/next_break.sh Makefile config.mk
222 6f212e04 2022-11-04 op man/grapheme_next_word_break.3: man/grapheme_next_word_break.sh man/template/next_break.sh Makefile config.mk
223 6f212e04 2022-11-04 op man/grapheme_next_character_break_utf8.3: man/grapheme_next_character_break_utf8.sh man/template/next_break.sh Makefile config.mk
224 6f212e04 2022-11-04 op man/grapheme_next_line_break_utf8.3: man/grapheme_next_line_break_utf8.sh man/template/next_break.sh Makefile config.mk
225 6f212e04 2022-11-04 op man/grapheme_next_sentence_break_utf8.3: man/grapheme_next_sentence_break_utf8.sh man/template/next_break.sh Makefile config.mk
226 6f212e04 2022-11-04 op man/grapheme_next_word_break_utf8.3: man/grapheme_next_word_break_utf8.sh man/template/next_break.sh Makefile config.mk
227 6f212e04 2022-11-04 op man/grapheme_to_uppercase.3: man/grapheme_to_uppercase.sh man/template/to_case.sh Makefile config.mk
228 6f212e04 2022-11-04 op man/grapheme_to_lowercase.3: man/grapheme_to_lowercase.sh man/template/to_case.sh Makefile config.mk
229 6f212e04 2022-11-04 op man/grapheme_to_titlecase.3: man/grapheme_to_titlecase.sh man/template/to_case.sh Makefile config.mk
230 6f212e04 2022-11-04 op man/grapheme_to_uppercase_utf8.3: man/grapheme_to_uppercase_utf8.sh man/template/to_case.sh Makefile config.mk
231 6f212e04 2022-11-04 op man/grapheme_to_lowercase_utf8.3: man/grapheme_to_lowercase_utf8.sh man/template/to_case.sh Makefile config.mk
232 6f212e04 2022-11-04 op man/grapheme_to_titlecase_utf8.3: man/grapheme_to_titlecase_utf8.sh man/template/to_case.sh Makefile config.mk
233 6f212e04 2022-11-04 op man/grapheme_decode_utf8.3: man/grapheme_decode_utf8.sh Makefile config.mk
234 6f212e04 2022-11-04 op man/grapheme_encode_utf8.3: man/grapheme_encode_utf8.sh Makefile config.mk
235 6f212e04 2022-11-04 op
236 6f212e04 2022-11-04 op man/libgrapheme.7: man/libgrapheme.sh Makefile config.mk
237 6f212e04 2022-11-04 op
238 6f212e04 2022-11-04 op $(GEN:=.o) gen/util.o:
239 6f212e04 2022-11-04 op $(BUILD_CC) -c -o $@ $(BUILD_CPPFLAGS) $(BUILD_CFLAGS) $(@:.o=.c)
240 6f212e04 2022-11-04 op
241 6f212e04 2022-11-04 op $(BENCHMARK:=.o) benchmark/util.o $(TEST:=.o) test/util.o:
242 6f212e04 2022-11-04 op $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(@:.o=.c)
243 6f212e04 2022-11-04 op
244 6f212e04 2022-11-04 op $(SRC:=.o):
245 6f212e04 2022-11-04 op $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(SHFLAGS) $(@:.o=.c)
246 6f212e04 2022-11-04 op
247 6f212e04 2022-11-04 op $(BENCHMARK):
248 6f212e04 2022-11-04 op $(CC) -o $@ $(LDFLAGS) $@.o benchmark/util.o libgrapheme.a -lutf8proc
249 6f212e04 2022-11-04 op
250 6f212e04 2022-11-04 op $(GEN):
251 6f212e04 2022-11-04 op $(BUILD_CC) -o $@ $(BUILD_LDFLAGS) $@.o gen/util.o
252 6f212e04 2022-11-04 op
253 6f212e04 2022-11-04 op $(TEST):
254 6f212e04 2022-11-04 op $(CC) -o $@ $(LDFLAGS) $@.o test/util.o libgrapheme.a
255 6f212e04 2022-11-04 op
256 6f212e04 2022-11-04 op $(GEN:=.h):
257 6f212e04 2022-11-04 op $(@:.h=) > $@
258 6f212e04 2022-11-04 op
259 6f212e04 2022-11-04 op libgrapheme.a: $(SRC:=.o)
260 6f212e04 2022-11-04 op $(AR) -rc $@ $?
261 6f212e04 2022-11-04 op $(RANLIB) $@
262 6f212e04 2022-11-04 op
263 6f212e04 2022-11-04 op $(SONAME): $(SRC:=.o)
264 6f212e04 2022-11-04 op $(CC) -o $@ $(SOFLAGS) $(LDFLAGS) $(SRC:=.o)
265 6f212e04 2022-11-04 op
266 6f212e04 2022-11-04 op $(MAN3:=.3):
267 6f212e04 2022-11-04 op SH="$(SH)" MAN_DATE="$(MAN_DATE)" UNICODE_VERSION="$(UNICODE_VERSION)" $(SH) $(@:.3=.sh) > $@
268 6f212e04 2022-11-04 op
269 6f212e04 2022-11-04 op $(MAN7:=.7):
270 6f212e04 2022-11-04 op SH="$(SH)" MAN_DATE="$(MAN_DATE)" UNICODE_VERSION="$(UNICODE_VERSION)" $(SH) $(@:.7=.sh) > $@
271 6f212e04 2022-11-04 op
272 6f212e04 2022-11-04 op benchmark: $(BENCHMARK)
273 6f212e04 2022-11-04 op for m in $(BENCHMARK); do ./$$m; done
274 6f212e04 2022-11-04 op
275 6f212e04 2022-11-04 op test: $(TEST)
276 6f212e04 2022-11-04 op for m in $(TEST); do ./$$m; done
277 6f212e04 2022-11-04 op
278 6f212e04 2022-11-04 op install: all
279 6f212e04 2022-11-04 op mkdir -p "$(DESTDIR)$(LIBPREFIX)"
280 6f212e04 2022-11-04 op mkdir -p "$(DESTDIR)$(INCPREFIX)"
281 6f212e04 2022-11-04 op mkdir -p "$(DESTDIR)$(MANPREFIX)/man3"
282 6f212e04 2022-11-04 op mkdir -p "$(DESTDIR)$(MANPREFIX)/man7"
283 6f212e04 2022-11-04 op cp -f $(MAN3:=.3) "$(DESTDIR)$(MANPREFIX)/man3"
284 6f212e04 2022-11-04 op cp -f $(MAN7:=.7) "$(DESTDIR)$(MANPREFIX)/man7"
285 6f212e04 2022-11-04 op cp -f libgrapheme.a "$(DESTDIR)$(LIBPREFIX)"
286 6f212e04 2022-11-04 op cp -f $(SONAME) "$(DESTDIR)$(LIBPREFIX)/$(SONAME)"
287 6f212e04 2022-11-04 op if [ "$(SOSYMLINK)" = "true" ]; then i=0; while [ "$$i" -le $(VERSION_MINOR) ]; do ln -sf "$(SONAME)" "$(DESTDIR)$(LIBPREFIX)/libgrapheme.so.$(VERSION_MAJOR).$$i"; i=$$((i+1)); done; fi
288 6f212e04 2022-11-04 op if [ "$(SOSYMLINK)" = "true" ]; then ln -sf "$(SONAME)" "$(DESTDIR)$(LIBPREFIX)/libgrapheme.so.$(VERSION_MAJOR)"; fi
289 6f212e04 2022-11-04 op if [ "$(SOSYMLINK)" = "true" ]; then ln -sf "$(SONAME)" "$(DESTDIR)$(LIBPREFIX)/libgrapheme.so"; fi
290 6f212e04 2022-11-04 op cp -f grapheme.h "$(DESTDIR)$(INCPREFIX)"
291 6f212e04 2022-11-04 op if ! [ -z "$(LDCONFIG)" ]; then $(SHELL) -c "$(LDCONFIG)"; fi
292 6f212e04 2022-11-04 op if ! [ -z "$(PCPREFIX)" ]; then mkdir -p "$(DESTDIR)$(PCPREFIX)"; printf "Name: libgrapheme\nDescription: Unicode string library\nURL: https://libs.suckless.org/libgrapheme/\nVersion: $(VERSION)\nCflags: -I$(INCPREFIX)\nLibs: -L$(LIBPREFIX) -lgrapheme\n" > "$(DESTDIR)$(PCPREFIX)/libgrapheme.pc"; fi
293 6f212e04 2022-11-04 op
294 6f212e04 2022-11-04 op uninstall:
295 6f212e04 2022-11-04 op for m in $(MAN3:=.3); do rm -f "$(DESTDIR)$(MANPREFIX)/man3/`basename $$m`"; done
296 6f212e04 2022-11-04 op for m in $(MAN7:=.7); do rm -f "$(DESTDIR)$(MANPREFIX)/man7/`basename $$m`"; done
297 6f212e04 2022-11-04 op rm -f "$(DESTDIR)$(LIBPREFIX)/libgrapheme.a"
298 6f212e04 2022-11-04 op rm -f "$(DESTDIR)$(LIBPREFIX)/$(SONAME)"
299 6f212e04 2022-11-04 op if [ "$(SOSYMLINK)" = "true" ]; then i=0; while [ "$$i" -le $(VERSION_MINOR) ]; do rm -f "$(DESTDIR)$(LIBPREFIX)/libgrapheme.so.$(VERSION_MAJOR).$$i"; i=$$((i+1)); done; fi
300 6f212e04 2022-11-04 op if [ "$(SOSYMLINK)" = "true" ]; then rm -f "$(DESTDIR)$(LIBPREFIX)/libgrapheme.so.$(VERSION_MAJOR)"; fi
301 6f212e04 2022-11-04 op if [ "$(SOSYMLINK)" = "true" ]; then rm -f "$(DESTDIR)$(LIBPREFIX)/libgrapheme.so"; fi
302 6f212e04 2022-11-04 op rm -f "$(DESTDIR)$(INCPREFIX)/grapheme.h"
303 6f212e04 2022-11-04 op if ! [ -z "$(LDCONFIG)" ]; then $(SHELL) -c "$(LDCONFIG)"; fi
304 6f212e04 2022-11-04 op if ! [ -z "$(PCPREFIX)" ]; then rm -f "$(DESTDIR)$(PCPREFIX)/libgrapheme.pc"; fi
305 6f212e04 2022-11-04 op
306 6f212e04 2022-11-04 op clean:
307 6f212e04 2022-11-04 op rm -f $(BENCHMARK:=.o) benchmark/util.o $(BENCHMARK) $(GEN:=.h) $(GEN:=.o) gen/util.o $(GEN) $(SRC:=.o) src/util.o $(TEST:=.o) test/util.o $(TEST) libgrapheme.a $(SONAME) $(MAN3:=.3) $(MAN7:=.7)
308 6f212e04 2022-11-04 op
309 6f212e04 2022-11-04 op clean-data:
310 6f212e04 2022-11-04 op rm -f $(DATA)
311 6f212e04 2022-11-04 op
312 6f212e04 2022-11-04 op dist:
313 6f212e04 2022-11-04 op rm -rf "libgrapheme-$(VERSION)"
314 6f212e04 2022-11-04 op mkdir "libgrapheme-$(VERSION)"
315 6f212e04 2022-11-04 op for m in benchmark data gen man man/template src test; do mkdir "libgrapheme-$(VERSION)/$$m"; done
316 6f212e04 2022-11-04 op cp config.mk configure grapheme.h LICENSE Makefile README "libgrapheme-$(VERSION)"
317 6f212e04 2022-11-04 op cp $(BENCHMARK:=.c) benchmark/util.c benchmark/util.h "libgrapheme-$(VERSION)/benchmark"
318 6f212e04 2022-11-04 op cp $(DATA) "libgrapheme-$(VERSION)/data"
319 6f212e04 2022-11-04 op cp $(GEN:=.c) gen/util.c gen/types.h gen/util.h "libgrapheme-$(VERSION)/gen"
320 6f212e04 2022-11-04 op cp $(MAN3:=.sh) $(MAN7:=.sh) "libgrapheme-$(VERSION)/man"
321 6f212e04 2022-11-04 op cp $(MAN_TEMPLATE) "libgrapheme-$(VERSION)/man/template"
322 6f212e04 2022-11-04 op cp $(SRC:=.c) src/util.h "libgrapheme-$(VERSION)/src"
323 6f212e04 2022-11-04 op cp $(TEST:=.c) test/util.c test/util.h "libgrapheme-$(VERSION)/test"
324 6f212e04 2022-11-04 op tar -cf - "libgrapheme-$(VERSION)" | gzip -c > "libgrapheme-$(VERSION).tar.gz"
325 6f212e04 2022-11-04 op rm -rf "libgrapheme-$(VERSION)"
326 6f212e04 2022-11-04 op
327 6f212e04 2022-11-04 op .PHONY: all benchmark test install uninstall clean clean-data dist