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