utf8proc
annotate Makefile @ 17:47b467f4c128
Contribution from libmojibake fork (missing file "normtest.c")
author | Jiahao Chen, Steven G. Johnson, Anthony David Kelman |
---|---|
date | Mon Dec 01 14:32:19 2014 -0500 (2014-12-01) |
parents | 15450ff3d454 |
children |
rev | line source |
---|---|
jbe@0 | 1 # libutf8proc Makefile |
jbe@0 | 2 |
Jiahao@15 | 3 CURL=curl |
Jiahao@15 | 4 RUBY=ruby |
Jiahao@15 | 5 MAKE=make |
jbe@0 | 6 |
jbe@0 | 7 # settings |
jbe@0 | 8 |
Jiahao@15 | 9 cflags = -O2 -std=c99 -pedantic -Wall -fpic -DUTF8PROC_EXPORTS $(CFLAGS) |
jbe@9 | 10 cc = $(CC) $(cflags) |
Jiahao@15 | 11 AR = ar |
jbe@0 | 12 |
Jiahao@15 | 13 OS := $(shell uname) |
Jiahao@15 | 14 ifeq ($(OS),Darwin) |
Jiahao@15 | 15 SHLIB_EXT = dylib |
Jiahao@15 | 16 else #TODO Windows |
Jiahao@15 | 17 SHLIB_EXT = so |
Jiahao@15 | 18 endif |
jbe@0 | 19 |
jbe@0 | 20 # meta targets |
jbe@0 | 21 |
jbe@0 | 22 c-library: libutf8proc.a libutf8proc.so |
jbe@0 | 23 |
jbe@0 | 24 ruby-library: ruby/utf8proc_native.so |
jbe@0 | 25 |
jbe@0 | 26 pgsql-library: pgsql/utf8proc_pgsql.so |
jbe@0 | 27 |
jbe@10 | 28 all: c-library ruby-library ruby-gem pgsql-library |
jbe@0 | 29 |
jbe@0 | 30 clean:: |
Jiahao@15 | 31 rm -f utf8proc.o libutf8proc.a libutf8proc.$(SHLIB_EXT) normtest UnicodeData.txt DerivedCoreProperties.txt CompositionExclusions.txt CaseFolding.txt NormalizationTest.txt |
jbe@0 | 32 cd ruby/ && test -e Makefile && (make clean && rm -f Makefile) || true |
jbe@10 | 33 rm -Rf ruby/gem/lib ruby/gem/ext |
jbe@10 | 34 rm -f ruby/gem/utf8proc-*.gem |
jbe@0 | 35 cd pgsql/ && make clean |
jbe@0 | 36 |
Jiahao@15 | 37 update: utf8proc_data.c.new |
Jiahao@15 | 38 |
jbe@0 | 39 # real targets |
jbe@0 | 40 |
Jiahao@15 | 41 utf8proc_data.c.new: UnicodeData.txt DerivedCoreProperties.txt CompositionExclusions.txt CaseFolding.txt |
Jiahao@15 | 42 $(RUBY) data_generator.rb < UnicodeData.txt > utf8proc_data.c.new |
Jiahao@15 | 43 |
Jiahao@15 | 44 UnicodeData.txt: |
Jiahao@15 | 45 |
Jiahao@15 | 46 $(CURL) -O http://www.unicode.org/Public/UNIDATA/UnicodeData.txt |
Jiahao@15 | 47 |
Jiahao@15 | 48 DerivedCoreProperties.txt: |
Jiahao@15 | 49 $(CURL) -O http://www.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt |
Jiahao@15 | 50 |
Jiahao@15 | 51 CompositionExclusions.txt: |
Jiahao@15 | 52 $(CURL) -O http://www.unicode.org/Public/UNIDATA/CompositionExclusions.txt |
Jiahao@15 | 53 |
Jiahao@15 | 54 CaseFolding.txt: |
Jiahao@15 | 55 $(CURL) -O http://www.unicode.org/Public/UNIDATA/CaseFolding.txt |
Jiahao@15 | 56 |
jbe@0 | 57 utf8proc.o: utf8proc.h utf8proc.c utf8proc_data.c |
jbe@0 | 58 $(cc) -c -o utf8proc.o utf8proc.c |
jbe@0 | 59 |
jbe@0 | 60 libutf8proc.a: utf8proc.o |
jbe@0 | 61 rm -f libutf8proc.a |
Jiahao@15 | 62 $(AR) rs libutf8proc.a utf8proc.o |
jbe@0 | 63 |
jbe@0 | 64 libutf8proc.so: utf8proc.o |
Jiahao@15 | 65 $(cc) -shared -o libutf8proc.$(SHLIB_EXT) utf8proc.o |
Jiahao@15 | 66 chmod a-x libutf8proc.$(SHLIB_EXT) |
jbe@0 | 67 |
jbe@9 | 68 libutf8proc.dylib: utf8proc.o |
jbe@9 | 69 $(cc) -dynamiclib -o $@ $^ -install_name $(libdir)/$@ |
jbe@9 | 70 |
jbe@0 | 71 ruby/Makefile: ruby/extconf.rb |
jbe@0 | 72 cd ruby && ruby extconf.rb |
jbe@0 | 73 |
jbe@0 | 74 ruby/utf8proc_native.so: utf8proc.h utf8proc.c utf8proc_data.c \ |
jbe@0 | 75 ruby/utf8proc_native.c ruby/Makefile |
jbe@0 | 76 cd ruby && make |
jbe@0 | 77 |
jbe@10 | 78 ruby/gem/lib/utf8proc.rb: ruby/utf8proc.rb |
jbe@10 | 79 test -e ruby/gem/lib || mkdir ruby/gem/lib |
jbe@10 | 80 cp ruby/utf8proc.rb ruby/gem/lib/ |
jbe@10 | 81 |
jbe@10 | 82 ruby/gem/ext/extconf.rb: ruby/extconf.rb |
jbe@10 | 83 test -e ruby/gem/ext || mkdir ruby/gem/ext |
jbe@10 | 84 cp ruby/extconf.rb ruby/gem/ext/ |
jbe@10 | 85 |
jbe@10 | 86 ruby/gem/ext/utf8proc_native.c: utf8proc.h utf8proc_data.c utf8proc.c ruby/utf8proc_native.c |
jbe@10 | 87 test -e ruby/gem/ext || mkdir ruby/gem/ext |
jbe@10 | 88 cat utf8proc.h utf8proc_data.c utf8proc.c ruby/utf8proc_native.c | grep -v '#include "utf8proc.h"' | grep -v '#include "utf8proc_data.c"' | grep -v '#include "../utf8proc.c"' > ruby/gem/ext/utf8proc_native.c |
jbe@10 | 89 |
jbe@10 | 90 ruby-gem:: ruby/gem/lib/utf8proc.rb ruby/gem/ext/extconf.rb ruby/gem/ext/utf8proc_native.c |
jbe@10 | 91 cd ruby/gem && gem build utf8proc.gemspec |
jbe@10 | 92 |
jbe@0 | 93 pgsql/utf8proc_pgsql.so: utf8proc.h utf8proc.c utf8proc_data.c \ |
jbe@0 | 94 pgsql/utf8proc_pgsql.c |
jbe@0 | 95 cd pgsql && make |
jbe@0 | 96 |
Jiahao@15 | 97 |
Jiahao@15 | 98 # Test programs |
Jiahao@15 | 99 |
Jiahao@15 | 100 NormalizationTest.txt: |
Jiahao@15 | 101 $(CURL) -O http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt |
Jiahao@15 | 102 |
Jiahao@15 | 103 normtest: normtest.c utf8proc.o utf8proc.h |
Jiahao@15 | 104 $(cc) normtest.c utf8proc.o -o normtest |
Jiahao@15 | 105 |
Jiahao@15 | 106 check: normtest NormalizationTest.txt |
Jiahao@15 | 107 ./normtest |