jbe@0: # libutf8proc Makefile jbe@0: Jiahao@15: CURL=curl Jiahao@15: RUBY=ruby Jiahao@15: MAKE=make jbe@0: jbe@0: # settings jbe@0: Jiahao@15: cflags = -O2 -std=c99 -pedantic -Wall -fpic -DUTF8PROC_EXPORTS $(CFLAGS) jbe@9: cc = $(CC) $(cflags) Jiahao@15: AR = ar jbe@0: Jiahao@15: OS := $(shell uname) Jiahao@15: ifeq ($(OS),Darwin) Jiahao@15: SHLIB_EXT = dylib Jiahao@15: else #TODO Windows Jiahao@15: SHLIB_EXT = so Jiahao@15: endif jbe@0: jbe@0: # meta targets jbe@0: jbe@0: c-library: libutf8proc.a libutf8proc.so jbe@0: jbe@0: ruby-library: ruby/utf8proc_native.so jbe@0: jbe@0: pgsql-library: pgsql/utf8proc_pgsql.so jbe@0: jbe@10: all: c-library ruby-library ruby-gem pgsql-library jbe@0: jbe@0: clean:: Jiahao@15: rm -f utf8proc.o libutf8proc.a libutf8proc.$(SHLIB_EXT) normtest UnicodeData.txt DerivedCoreProperties.txt CompositionExclusions.txt CaseFolding.txt NormalizationTest.txt jbe@0: cd ruby/ && test -e Makefile && (make clean && rm -f Makefile) || true jbe@10: rm -Rf ruby/gem/lib ruby/gem/ext jbe@10: rm -f ruby/gem/utf8proc-*.gem jbe@0: cd pgsql/ && make clean jbe@0: Jiahao@15: update: utf8proc_data.c.new Jiahao@15: jbe@0: # real targets jbe@0: Jiahao@15: utf8proc_data.c.new: UnicodeData.txt DerivedCoreProperties.txt CompositionExclusions.txt CaseFolding.txt Jiahao@15: $(RUBY) data_generator.rb < UnicodeData.txt > utf8proc_data.c.new Jiahao@15: Jiahao@15: UnicodeData.txt: Jiahao@15: Jiahao@15: $(CURL) -O http://www.unicode.org/Public/UNIDATA/UnicodeData.txt Jiahao@15: Jiahao@15: DerivedCoreProperties.txt: Jiahao@15: $(CURL) -O http://www.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt Jiahao@15: Jiahao@15: CompositionExclusions.txt: Jiahao@15: $(CURL) -O http://www.unicode.org/Public/UNIDATA/CompositionExclusions.txt Jiahao@15: Jiahao@15: CaseFolding.txt: Jiahao@15: $(CURL) -O http://www.unicode.org/Public/UNIDATA/CaseFolding.txt Jiahao@15: jbe@0: utf8proc.o: utf8proc.h utf8proc.c utf8proc_data.c jbe@0: $(cc) -c -o utf8proc.o utf8proc.c jbe@0: jbe@0: libutf8proc.a: utf8proc.o jbe@0: rm -f libutf8proc.a Jiahao@15: $(AR) rs libutf8proc.a utf8proc.o jbe@0: jbe@0: libutf8proc.so: utf8proc.o Jiahao@15: $(cc) -shared -o libutf8proc.$(SHLIB_EXT) utf8proc.o Jiahao@15: chmod a-x libutf8proc.$(SHLIB_EXT) jbe@0: jbe@9: libutf8proc.dylib: utf8proc.o jbe@9: $(cc) -dynamiclib -o $@ $^ -install_name $(libdir)/$@ jbe@9: jbe@0: ruby/Makefile: ruby/extconf.rb jbe@0: cd ruby && ruby extconf.rb jbe@0: jbe@0: ruby/utf8proc_native.so: utf8proc.h utf8proc.c utf8proc_data.c \ jbe@0: ruby/utf8proc_native.c ruby/Makefile jbe@0: cd ruby && make jbe@0: jbe@10: ruby/gem/lib/utf8proc.rb: ruby/utf8proc.rb jbe@10: test -e ruby/gem/lib || mkdir ruby/gem/lib jbe@10: cp ruby/utf8proc.rb ruby/gem/lib/ jbe@10: jbe@10: ruby/gem/ext/extconf.rb: ruby/extconf.rb jbe@10: test -e ruby/gem/ext || mkdir ruby/gem/ext jbe@10: cp ruby/extconf.rb ruby/gem/ext/ jbe@10: jbe@10: ruby/gem/ext/utf8proc_native.c: utf8proc.h utf8proc_data.c utf8proc.c ruby/utf8proc_native.c jbe@10: test -e ruby/gem/ext || mkdir ruby/gem/ext jbe@10: 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: jbe@10: ruby-gem:: ruby/gem/lib/utf8proc.rb ruby/gem/ext/extconf.rb ruby/gem/ext/utf8proc_native.c jbe@10: cd ruby/gem && gem build utf8proc.gemspec jbe@10: jbe@0: pgsql/utf8proc_pgsql.so: utf8proc.h utf8proc.c utf8proc_data.c \ jbe@0: pgsql/utf8proc_pgsql.c jbe@0: cd pgsql && make jbe@0: Jiahao@15: Jiahao@15: # Test programs Jiahao@15: Jiahao@15: NormalizationTest.txt: Jiahao@15: $(CURL) -O http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt Jiahao@15: Jiahao@15: normtest: normtest.c utf8proc.o utf8proc.h Jiahao@15: $(cc) normtest.c utf8proc.o -o normtest Jiahao@15: Jiahao@15: check: normtest NormalizationTest.txt Jiahao@15: ./normtest