diff options
-rw-r--r-- | .gitattributes | 2 | ||||
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile | 185 | ||||
-rw-r--r-- | README | 15 | ||||
-rw-r--r-- | bench/Makefile.orig (renamed from bench/Makefile) | 0 | ||||
-rw-r--r-- | data/Makefile.orig (renamed from data/Makefile) | 0 | ||||
-rw-r--r-- | include/libutf8proc/utf8proc.h (renamed from utf8proc.h) | 0 | ||||
-rw-r--r-- | libutf8proc.pc.in | 10 | ||||
-rw-r--r-- | src/Makefile | 3 | ||||
-rw-r--r-- | src/utf8proc.c (renamed from utf8proc.c) | 0 | ||||
-rw-r--r-- | src/utf8proc_data.c (renamed from utf8proc_data.c) | 0 |
11 files changed, 77 insertions, 140 deletions
diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..de2f316 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +.gitignore export-ignore +.gitattributes export-ignore @@ -25,3 +25,5 @@ valid iterate case /tmp/ +build-* +Makefile.config.override @@ -1,145 +1,50 @@ -# libutf8proc Makefile - -# programs -MAKE=make -AR?=ar -CC?=gcc -INSTALL=install -FIND=find - -# compiler settings -CFLAGS ?= -O2 -PICFLAG = -fPIC -C99FLAG = -std=c99 -WCFLAGS = -Wall -Wmissing-prototypes -pedantic -UCFLAGS = $(CFLAGS) $(PICFLAG) $(C99FLAG) $(WCFLAGS) -DUTF8PROC_EXPORTS - -# shared-library version MAJOR.MINOR.PATCH ... this may be *different* -# from the utf8proc version number because it indicates ABI compatibility, -# not API compatibility: MAJOR should be incremented whenever *binary* -# compatibility is broken, even if the API is backward-compatible -# Be sure to also update these in MANIFEST and CMakeLists.txt! -MAJOR=1 -MINOR=3 -PATCH=1 - -OS := $(shell uname) -ifeq ($(OS),Darwin) # MacOS X - SHLIB_EXT = dylib - SHLIB_VERS_EXT = $(MAJOR).dylib -else # GNU/Linux, at least (Windows should probably use cmake) - SHLIB_EXT = so - SHLIB_VERS_EXT = so.$(MAJOR).$(MINOR).$(PATCH) -endif - -# installation directories (for 'make install') -prefix=/usr/local -libdir=$(prefix)/lib -includedir=$(prefix)/include - -# meta targets - -.PHONY: all clean data update manifest install - -all: libutf8proc.a libutf8proc.$(SHLIB_EXT) - -clean: - rm -f utf8proc.o libutf8proc.a libutf8proc.$(SHLIB_VERS_EXT) libutf8proc.$(SHLIB_EXT) -ifneq ($(OS),Darwin) - rm -f libutf8proc.so.$(MAJOR) +#!/bin/make +# +# Makefile for libutf8proc +# +# Copyright 2009-2015 John-Mark Bell <jmb@netsurf-browser.org> + +# Component settings +COMPONENT := utf8proc +COMPONENT_VERSION := 1.3.1 +# Default to a static library +COMPONENT_TYPE ?= lib-static + +# Setup the tooling +PREFIX ?= /opt/netsurf +NSSHARED ?= $(PREFIX)/share/netsurf-buildsystem +include $(NSSHARED)/makefiles/Makefile.tools + +# Reevaluate when used, as BUILDDIR won't be defined yet +TESTRUNNER = $(BUILDDIR)/test_testrunner$(EXEEXT) + +# Toolchain flags +WARNFLAGS := -Wall -W -Wundef -Wpointer-arith -Wcast-align \ + -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \ + -Wmissing-declarations -Wnested-externs + +CFLAGS := -I$(CURDIR)/include/libutf8proc/ -I$(CURDIR)/src \ + $(WARNFLAGS) $(CFLAGS) +ifneq ($(GCCVER),2) + CFLAGS := $(CFLAGS) -std=c99 +else + # __inline__ is a GCCism + CFLAGS := $(CFLAGS) -Dinline="__inline__" endif - rm -f test/tests.o test/normtest test/graphemetest test/printproperty test/charwidth test/valid test/iterate test/case - rm -rf MANIFEST.new tmp - $(MAKE) -C bench clean - $(MAKE) -C data clean - -data: data/utf8proc_data.c.new - -update: data/utf8proc_data.c.new - cp -f data/utf8proc_data.c.new utf8proc_data.c - -manifest: MANIFEST.new - -# real targets - -data/utf8proc_data.c.new: libutf8proc.$(SHLIB_EXT) data/data_generator.rb data/charwidths.jl - $(MAKE) -C data utf8proc_data.c.new - -utf8proc.o: utf8proc.h utf8proc.c utf8proc_data.c - $(CC) $(UCFLAGS) -c -o utf8proc.o utf8proc.c -libutf8proc.a: utf8proc.o - rm -f libutf8proc.a - $(AR) rs libutf8proc.a utf8proc.o +include $(NSBUILD)/Makefile.top -libutf8proc.so.$(MAJOR).$(MINOR).$(PATCH): utf8proc.o - $(CC) $(LDFLAGS) -shared -o $@ -Wl,-soname -Wl,libutf8proc.so.$(MAJOR) utf8proc.o - chmod a-x $@ - -libutf8proc.so: libutf8proc.so.$(MAJOR).$(MINOR).$(PATCH) - ln -f -s libutf8proc.so.$(MAJOR).$(MINOR).$(PATCH) $@ - ln -f -s libutf8proc.so.$(MAJOR).$(MINOR).$(PATCH) $@.$(MAJOR) - -libutf8proc.$(MAJOR).dylib: utf8proc.o - $(CC) -dynamiclib -o $@ $^ -install_name $(libdir)/$@ -Wl,-compatibility_version -Wl,$(MAJOR) -Wl,-current_version -Wl,$(MAJOR).$(MINOR).$(PATCH) - -libutf8proc.dylib: libutf8proc.$(MAJOR).dylib - ln -f -s libutf8proc.$(MAJOR).dylib $@ - -install: libutf8proc.a libutf8proc.$(SHLIB_EXT) libutf8proc.$(SHLIB_VERS_EXT) - mkdir -m 755 -p $(DESTDIR)$(includedir) - $(INSTALL) -m 644 utf8proc.h $(DESTDIR)$(includedir) - mkdir -m 755 -p $(DESTDIR)$(libdir) - $(INSTALL) -m 644 libutf8proc.a $(DESTDIR)$(libdir) - $(INSTALL) -m 755 libutf8proc.$(SHLIB_VERS_EXT) $(DESTDIR)$(libdir) - ln -f -s libutf8proc.$(SHLIB_VERS_EXT) $(DESTDIR)$(libdir)/libutf8proc.$(SHLIB_EXT) -ifneq ($(OS),Darwin) - ln -f -s libutf8proc.$(SHLIB_VERS_EXT) $(DESTDIR)$(libdir)/libutf8proc.so.$(MAJOR) +ifeq ($(WANT_TEST),yes) + ifneq ($(PKGCONFIG),) + TESTCFLAGS := $(TESTCFLAGS) $(shell $(PKGCONFIG) --cflags check) + TESTLDFLAGS := $(TESTLDFLAGS) $(shell $(PKGCONFIG) --libs check) + else + TESTLDFLAGS := $(TESTLDFLAGS) -lcheck + endif endif -MANIFEST.new: - rm -rf tmp - $(MAKE) install prefix=/usr DESTDIR=$(PWD)/tmp - $(FIND) tmp/usr -mindepth 1 -type l -printf "%P -> %l\n" -or -type f -printf "%P\n" -or -type d -printf "%P/\n" | LC_ALL=C sort > $@ - rm -rf tmp - -# Test programs - -data/NormalizationTest.txt: - $(MAKE) -C data NormalizationTest.txt - -data/GraphemeBreakTest.txt: - $(MAKE) -C data GraphemeBreakTest.txt - -test/tests.o: test/tests.c test/tests.h utf8proc.h - $(CC) $(UCFLAGS) -c -o test/tests.o test/tests.c - -test/normtest: test/normtest.c test/tests.o utf8proc.o utf8proc.h test/tests.h - $(CC) $(UCFLAGS) test/normtest.c test/tests.o utf8proc.o -o $@ - -test/graphemetest: test/graphemetest.c test/tests.o utf8proc.o utf8proc.h test/tests.h - $(CC) $(UCFLAGS) test/graphemetest.c test/tests.o utf8proc.o -o $@ - -test/printproperty: test/printproperty.c test/tests.o utf8proc.o utf8proc.h test/tests.h - $(CC) $(UCFLAGS) test/printproperty.c test/tests.o utf8proc.o -o $@ - -test/charwidth: test/charwidth.c test/tests.o utf8proc.o utf8proc.h test/tests.h - $(CC) $(UCFLAGS) test/charwidth.c test/tests.o utf8proc.o -o $@ - -test/valid: test/valid.c test/tests.o utf8proc.o utf8proc.h test/tests.h - $(CC) $(UCFLAGS) test/valid.c test/tests.o utf8proc.o -o $@ - -test/iterate: test/iterate.c test/tests.o utf8proc.o utf8proc.h test/tests.h - $(CC) $(UCFLAGS) test/iterate.c test/tests.o utf8proc.o -o $@ - -test/case: test/case.c test/tests.o utf8proc.o utf8proc.h test/tests.h - $(CC) $(UCFLAGS) test/case.c test/tests.o utf8proc.o -o $@ - -check: test/normtest data/NormalizationTest.txt test/graphemetest data/GraphemeBreakTest.txt test/printproperty test/case test/charwidth test/valid test/iterate bench/bench.c bench/util.c bench/util.h utf8proc.o - $(MAKE) -C bench - test/normtest data/NormalizationTest.txt - test/graphemetest data/GraphemeBreakTest.txt - test/charwidth - test/valid - test/iterate - test/case +# Extra installation rules +I := /$(INCLUDEDIR)/libutf8proc +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):include/libutf8proc/utf8proc.h +INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR)/pkgconfig:lib$(COMPONENT).pc.in +INSTALL_ITEMS := $(INSTALL_ITEMS) /$(LIBDIR):$(OUTPUT) @@ -0,0 +1,15 @@ +libutf8proc +=========== + +This is the Public software group utf8proc library [1] repackaged as a +conveniance library for NetSurf. Previously this library was simply +copied into the NetSurf sources. + +This takes the unicode 5 capable version 1.3.1 of the library and +converts it to the NetSurf build system there are no data changes from +upstream. + +All the Makefiles and changes are licenced as per the utf8proc +source using the MIT "expat" licence. + +[1] http://www.public-software-group.org/utf8proc diff --git a/bench/Makefile b/bench/Makefile.orig index ea12dcb..ea12dcb 100644 --- a/bench/Makefile +++ b/bench/Makefile.orig diff --git a/data/Makefile b/data/Makefile.orig index 3e2f493..3e2f493 100644 --- a/data/Makefile +++ b/data/Makefile.orig diff --git a/utf8proc.h b/include/libutf8proc/utf8proc.h index 00f10c8..00f10c8 100644 --- a/utf8proc.h +++ b/include/libutf8proc/utf8proc.h diff --git a/libutf8proc.pc.in b/libutf8proc.pc.in new file mode 100644 index 0000000..f4645c0 --- /dev/null +++ b/libutf8proc.pc.in @@ -0,0 +1,10 @@ +prefix=PREFIX +exec_prefix=${prefix} +libdir=${exec_prefix}/LIBDIR +includedir=${prefix}/INCLUDEDIR + +Name: libutf8proc +Description: UTF8 processing +Version: VERSION +Libs: -L${libdir} -lutf8proc +Cflags: -I${includedir} diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..5e80c79 --- /dev/null +++ b/src/Makefile @@ -0,0 +1,3 @@ +DIR_SOURCES := utf8proc.c + +include $(NSBUILD)/Makefile.subdir diff --git a/utf8proc.c b/src/utf8proc.c index c302b79..c302b79 100644 --- a/utf8proc.c +++ b/src/utf8proc.c diff --git a/utf8proc_data.c b/src/utf8proc_data.c index f07cc83..f07cc83 100644 --- a/utf8proc_data.c +++ b/src/utf8proc_data.c |