add missing original makefile
This commit is contained in:
parent
5d17c9c909
commit
88a69ac7f2
301
src/templating/Makefile.orig
Normal file
301
src/templating/Makefile.orig
Normal file
@ -0,0 +1,301 @@
|
|||||||
|
# version
|
||||||
|
MAJOR := 1
|
||||||
|
MINOR := 2
|
||||||
|
REVIS := 4
|
||||||
|
|
||||||
|
# installation settings
|
||||||
|
DESTDIR ?=
|
||||||
|
PREFIX ?= /usr/local
|
||||||
|
BINDIR ?= $(PREFIX)/bin
|
||||||
|
LIBDIR ?= $(PREFIX)/lib
|
||||||
|
INCLUDEDIR ?= $(PREFIX)/include
|
||||||
|
MANDIR ?= $(PREFIX)/share/man
|
||||||
|
PKGDIR ?= $(LIBDIR)/pkgconfig
|
||||||
|
|
||||||
|
# Tools (sed must be GNU sed)
|
||||||
|
SED ?= sed
|
||||||
|
INSTALL ?= install
|
||||||
|
|
||||||
|
# initial settings
|
||||||
|
VERSION := $(MAJOR).$(MINOR).$(REVIS)
|
||||||
|
SOVER := .$(MAJOR)
|
||||||
|
SOVEREV := .$(MAJOR).$(MINOR)
|
||||||
|
|
||||||
|
HEADERS := mustach.h mustach-wrap.h
|
||||||
|
SPLITLIB := libmustach-core.so$(SOVEREV)
|
||||||
|
SPLITPC := libmustach-core.pc
|
||||||
|
COREOBJS := mustach.o mustach-wrap.o
|
||||||
|
SINGLEOBJS := $(COREOBJS)
|
||||||
|
SINGLEFLAGS :=
|
||||||
|
SINGLELIBS :=
|
||||||
|
TESTSPECS :=
|
||||||
|
ALL := manuals
|
||||||
|
|
||||||
|
# availability of CJSON
|
||||||
|
ifneq ($(cjson),no)
|
||||||
|
cjson_cflags := $(shell pkg-config --silence-errors --cflags libcjson)
|
||||||
|
cjson_libs := $(shell pkg-config --silence-errors --libs libcjson)
|
||||||
|
ifdef cjson_libs
|
||||||
|
cjson := yes
|
||||||
|
tool ?= cjson
|
||||||
|
HEADERS += mustach-cjson.h
|
||||||
|
SPLITLIB += libmustach-cjson.so$(SOVEREV)
|
||||||
|
SPLITPC += libmustach-cjson.pc
|
||||||
|
SINGLEOBJS += mustach-cjson.o
|
||||||
|
SINGLEFLAGS += ${cjson_cflags}
|
||||||
|
SINGLELIBS += ${cjson_libs}
|
||||||
|
TESTSPECS += test-specs/test-specs-cjson
|
||||||
|
else
|
||||||
|
ifeq ($(cjson),yes)
|
||||||
|
$(error Can't find required library cjson)
|
||||||
|
endif
|
||||||
|
cjson := no
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# availability of JSON-C
|
||||||
|
ifneq ($(jsonc),no)
|
||||||
|
jsonc_cflags := $(shell pkg-config --silence-errors --cflags json-c)
|
||||||
|
jsonc_libs := $(shell pkg-config --silence-errors --libs json-c)
|
||||||
|
ifdef jsonc_libs
|
||||||
|
jsonc := yes
|
||||||
|
tool ?= jsonc
|
||||||
|
HEADERS += mustach-json-c.h
|
||||||
|
SPLITLIB += libmustach-json-c.so$(SOVEREV)
|
||||||
|
SPLITPC += libmustach-json-c.pc
|
||||||
|
SINGLEOBJS += mustach-json-c.o
|
||||||
|
SINGLEFLAGS += ${jsonc_cflags}
|
||||||
|
SINGLELIBS += ${jsonc_libs}
|
||||||
|
TESTSPECS += test-specs/test-specs-json-c
|
||||||
|
else
|
||||||
|
ifeq ($(jsonc),yes)
|
||||||
|
$(error Can't find required library json-c)
|
||||||
|
endif
|
||||||
|
jsonc := no
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# availability of JANSSON
|
||||||
|
ifneq ($(jansson),no)
|
||||||
|
jansson_cflags := $(shell pkg-config --silence-errors --cflags jansson)
|
||||||
|
jansson_libs := $(shell pkg-config --silence-errors --libs jansson)
|
||||||
|
ifdef jansson_libs
|
||||||
|
jansson := yes
|
||||||
|
tool ?= jansson
|
||||||
|
HEADERS += mustach-jansson.h
|
||||||
|
SPLITLIB += libmustach-jansson.so$(SOVEREV)
|
||||||
|
SPLITPC += libmustach-jansson.pc
|
||||||
|
SINGLEOBJS += mustach-jansson.o
|
||||||
|
SINGLEFLAGS += ${jansson_cflags}
|
||||||
|
SINGLELIBS += ${jansson_libs}
|
||||||
|
TESTSPECS += test-specs/test-specs-jansson
|
||||||
|
else
|
||||||
|
ifeq ($(jansson),yes)
|
||||||
|
$(error Can't find required library jansson)
|
||||||
|
endif
|
||||||
|
jansson := no
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# tool
|
||||||
|
TOOLOBJS = mustach-tool.o $(COREOBJS)
|
||||||
|
tool ?= none
|
||||||
|
ifneq ($(tool),none)
|
||||||
|
ifeq ($(tool),cjson)
|
||||||
|
TOOLOBJS += mustach-cjson.o
|
||||||
|
TOOLFLAGS := ${cjson_cflags} -DTOOL=MUSTACH_TOOL_CJSON
|
||||||
|
TOOLLIBS := ${cjson_libs}
|
||||||
|
TOOLDEP := mustach-cjson.h
|
||||||
|
else ifeq ($(tool),jsonc)
|
||||||
|
TOOLOBJS += mustach-json-c.o
|
||||||
|
TOOLFLAGS := ${jsonc_cflags} -DTOOL=MUSTACH_TOOL_JSON_C
|
||||||
|
TOOLLIBS := ${jsonc_libs}
|
||||||
|
TOOLDEP := mustach-json-c.h
|
||||||
|
else ifeq ($(tool),jansson)
|
||||||
|
TOOLOBJS += mustach-jansson.o
|
||||||
|
TOOLFLAGS := ${jansson_cflags} -DTOOL=MUSTACH_TOOL_JANSSON
|
||||||
|
TOOLLIBS := ${jansson_libs}
|
||||||
|
TOOLDEP := mustach-jansson.h
|
||||||
|
else
|
||||||
|
$(error Unknown library $(tool) for tool)
|
||||||
|
endif
|
||||||
|
ifneq ($($(tool)),yes)
|
||||||
|
$(error No library found for tool $(tool))
|
||||||
|
endif
|
||||||
|
ALL += mustach
|
||||||
|
endif
|
||||||
|
|
||||||
|
# compute targets
|
||||||
|
libs ?= all
|
||||||
|
ifeq (${libs},split)
|
||||||
|
ALL += ${SPLITLIB} ${SPLITPC}
|
||||||
|
else ifeq (${libs},single)
|
||||||
|
ALL += libmustach.so$(SOVEREV) libmustach.pc
|
||||||
|
else ifeq (${libs},all)
|
||||||
|
ALL += libmustach.so$(SOVEREV) libmustach.pc ${SPLITLIB} ${SPLITPC}
|
||||||
|
else ifneq (${libs},none)
|
||||||
|
$(error Unknown libs $(libs))
|
||||||
|
endif
|
||||||
|
|
||||||
|
# display target
|
||||||
|
$(info tool = ${tool})
|
||||||
|
$(info libs = ${libs})
|
||||||
|
$(info jsonc = ${jsonc})
|
||||||
|
$(info jansson = ${jansson})
|
||||||
|
$(info cjson = ${cjson})
|
||||||
|
|
||||||
|
# settings
|
||||||
|
|
||||||
|
EFLAGS = -fPIC -Wall -Wextra -DVERSION=${VERSION}
|
||||||
|
|
||||||
|
ifeq ($(shell uname),Darwin)
|
||||||
|
LDFLAGS_single += -install_name $(LIBDIR)/libmustach.so$(SOVEREV)
|
||||||
|
LDFLAGS_core += -install_name $(LIBDIR)/libmustach-core.so$(SOVEREV)
|
||||||
|
LDFLAGS_cjson += -install_name $(LIBDIR)/libmustach-cjson.so$(SOVEREV)
|
||||||
|
LDFLAGS_jsonc += -install_name $(LIBDIR)/libmustach-json-c.so$(SOVEREV)
|
||||||
|
LDFLAGS_jansson += -install_name $(LIBDIR)/libmustach-jansson.so$(SOVEREV)
|
||||||
|
else
|
||||||
|
LDFLAGS_single += -Wl,-soname,libmustach.so$(SOVER)
|
||||||
|
LDFLAGS_core += -Wl,-soname,libmustach-core.so$(SOVER)
|
||||||
|
LDFLAGS_cjson += -Wl,-soname,libmustach-cjson.so$(SOVER)
|
||||||
|
LDFLAGS_jsonc += -Wl,-soname,libmustach-json-c.so$(SOVER)
|
||||||
|
LDFLAGS_jansson += -Wl,-soname,libmustach-jansson.so$(SOVER)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# targets
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
all: ${ALL}
|
||||||
|
|
||||||
|
mustach: $(TOOLOBJS)
|
||||||
|
$(CC) $(LDFLAGS) $(TOOLFLAGS) -o mustach $(TOOLOBJS) $(TOOLLIBS)
|
||||||
|
|
||||||
|
libmustach.so$(SOVEREV): $(SINGLEOBJS)
|
||||||
|
$(CC) -shared $(LDFLAGS) $(LDFLAGS_single) -o $@ $^ $(SINGLELIBS)
|
||||||
|
|
||||||
|
libmustach-core.so$(SOVEREV): $(COREOBJS)
|
||||||
|
$(CC) -shared $(LDFLAGS) $(LDFLAGS_core) -o $@ $(COREOBJS) $(lib_OBJ)
|
||||||
|
|
||||||
|
libmustach-cjson.so$(SOVEREV): $(COREOBJS) mustach-cjson.o
|
||||||
|
$(CC) -shared $(LDFLAGS) $(LDFLAGS_cjson) -o $@ $^ $(cjson_libs)
|
||||||
|
|
||||||
|
libmustach-json-c.so$(SOVEREV): $(COREOBJS) mustach-json-c.o
|
||||||
|
$(CC) -shared $(LDFLAGS) $(LDFLAGS_jsonc) -o $@ $^ $(jsonc_libs)
|
||||||
|
|
||||||
|
libmustach-jansson.so$(SOVEREV): $(COREOBJS) mustach-jansson.o
|
||||||
|
$(CC) -shared $(LDFLAGS) $(LDFLAGS_jansson) -o $@ $^ $(jansson_libs)
|
||||||
|
|
||||||
|
# pkgconfigs
|
||||||
|
|
||||||
|
%.pc: pkgcfgs
|
||||||
|
$(SED) -E '/^==.*==$$/{h;d};x;/==$@==/{x;s/VERSION/$(VERSION)/;p;d};x;d' $< > $@
|
||||||
|
|
||||||
|
# objects
|
||||||
|
|
||||||
|
mustach.o: mustach.c mustach.h
|
||||||
|
$(CC) -c $(EFLAGS) $(CFLAGS) -o $@ $<
|
||||||
|
|
||||||
|
mustach-wrap.o: mustach-wrap.c mustach.h mustach-wrap.h
|
||||||
|
$(CC) -c $(EFLAGS) $(CFLAGS) -o $@ $<
|
||||||
|
|
||||||
|
mustach-tool.o: mustach-tool.c mustach.h mustach-json-c.h $(TOOLDEP)
|
||||||
|
$(CC) -c $(EFLAGS) $(CFLAGS) $(TOOLFLAGS) -o $@ $<
|
||||||
|
|
||||||
|
mustach-cjson.o: mustach-cjson.c mustach.h mustach-wrap.h mustach-cjson.h
|
||||||
|
$(CC) -c $(EFLAGS) $(CFLAGS) $(cjson_cflags) -o $@ $<
|
||||||
|
|
||||||
|
mustach-json-c.o: mustach-json-c.c mustach.h mustach-wrap.h mustach-json-c.h
|
||||||
|
$(CC) -c $(EFLAGS) $(CFLAGS) $(jsonc_cflags) -o $@ $<
|
||||||
|
|
||||||
|
mustach-jansson.o: mustach-jansson.c mustach.h mustach-wrap.h mustach-jansson.h
|
||||||
|
$(CC) -c $(EFLAGS) $(CFLAGS) $(jansson_cflags) -o $@ $<
|
||||||
|
|
||||||
|
# installing
|
||||||
|
.PHONY: install
|
||||||
|
install: all
|
||||||
|
$(INSTALL) -d $(DESTDIR)$(BINDIR)
|
||||||
|
$(INSTALL) -m0755 mustach $(DESTDIR)$(BINDIR)/
|
||||||
|
$(INSTALL) -d $(DESTDIR)$(INCLUDEDIR)/mustach
|
||||||
|
$(INSTALL) -m0644 $(HEADERS) $(DESTDIR)$(INCLUDEDIR)/mustach
|
||||||
|
$(INSTALL) -d $(DESTDIR)$(LIBDIR)
|
||||||
|
for x in libmustach*.so$(SOVEREV); do \
|
||||||
|
$(INSTALL) -m0755 $$x $(DESTDIR)$(LIBDIR)/ ;\
|
||||||
|
ln -sf $$x $(DESTDIR)$(LIBDIR)/$${x%.so.*}.so$(SOVER) ;\
|
||||||
|
ln -sf $$x $(DESTDIR)$(LIBDIR)/$${x%.so.*}.so ;\
|
||||||
|
done
|
||||||
|
$(INSTALL) -d $(DESTDIR)/$(PKGDIR)
|
||||||
|
$(INSTALL) -m0644 libmustach*.pc $(DESTDIR)/$(PKGDIR)
|
||||||
|
$(INSTALL) -d $(DESTDIR)/$(MANDIR)/man1
|
||||||
|
$(INSTALL) -m0644 mustach.1.gz $(DESTDIR)/$(MANDIR)/man1
|
||||||
|
|
||||||
|
# deinstalling
|
||||||
|
.PHONY: uninstall
|
||||||
|
uninstall:
|
||||||
|
rm -f $(DESTDIR)$(BINDIR)/mustach
|
||||||
|
rm -f $(DESTDIR)$(LIBDIR)/libmustach*.so*
|
||||||
|
rm -rf $(DESTDIR)$(INCLUDEDIR)/mustach
|
||||||
|
|
||||||
|
# testing
|
||||||
|
.PHONY: test test-basic test-specs
|
||||||
|
test: basic-tests spec-tests
|
||||||
|
|
||||||
|
basic-tests: mustach
|
||||||
|
@$(MAKE) -C test1 test
|
||||||
|
@$(MAKE) -C test2 test
|
||||||
|
@$(MAKE) -C test3 test
|
||||||
|
@$(MAKE) -C test4 test
|
||||||
|
@$(MAKE) -C test5 test
|
||||||
|
@$(MAKE) -C test6 test
|
||||||
|
|
||||||
|
spec-tests: $(TESTSPECS)
|
||||||
|
|
||||||
|
test-specs/test-specs-%: test-specs/%-test-specs test-specs/specs
|
||||||
|
./$< test-specs/spec/specs/[a-z]*.json > $@.last || true
|
||||||
|
diff $@.ref $@.last
|
||||||
|
|
||||||
|
test-specs/cjson-test-specs.o: test-specs/test-specs.c mustach.h mustach-wrap.h mustach-cjson.h
|
||||||
|
$(CC) -I. -c $(EFLAGS) $(CFLAGS) $(cjson_cflags) -DTEST=TEST_CJSON -o $@ $<
|
||||||
|
|
||||||
|
test-specs/cjson-test-specs: test-specs/cjson-test-specs.o mustach-cjson.o $(COREOBJS)
|
||||||
|
$(CC) $(LDFLAGS) -o $@ $^ $(cjson_libs)
|
||||||
|
|
||||||
|
test-specs/json-c-test-specs.o: test-specs/test-specs.c mustach.h mustach-wrap.h mustach-json-c.h
|
||||||
|
$(CC) -I. -c $(EFLAGS) $(CFLAGS) $(jsonc_cflags) -DTEST=TEST_JSON_C -o $@ $<
|
||||||
|
|
||||||
|
test-specs/json-c-test-specs: test-specs/json-c-test-specs.o mustach-json-c.o $(COREOBJS)
|
||||||
|
$(CC) $(LDFLAGS) -o $@ $^ $(jsonc_libs)
|
||||||
|
|
||||||
|
test-specs/jansson-test-specs.o: test-specs/test-specs.c mustach.h mustach-wrap.h mustach-jansson.h
|
||||||
|
$(CC) -I. -c $(EFLAGS) $(CFLAGS) $(jansson_cflags) -DTEST=TEST_JANSSON -o $@ $<
|
||||||
|
|
||||||
|
test-specs/jansson-test-specs: test-specs/jansson-test-specs.o mustach-jansson.o $(COREOBJS)
|
||||||
|
$(CC) $(LDFLAGS) -o $@ $^ $(jansson_libs)
|
||||||
|
|
||||||
|
.PHONY: test-specs/specs
|
||||||
|
test-specs/specs:
|
||||||
|
if test -d test-specs/spec; then \
|
||||||
|
git -C test-specs/spec pull; \
|
||||||
|
else \
|
||||||
|
git -C test-specs clone https://github.com/mustache/spec.git; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
#cleaning
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -f mustach libmustach*.so* *.o *.pc
|
||||||
|
rm -f test-specs/*-test-specs test-specs/test-specs-*.last
|
||||||
|
rm -rf *.gcno *.gcda coverage.info gcov-latest
|
||||||
|
@$(MAKE) -C test1 clean
|
||||||
|
@$(MAKE) -C test2 clean
|
||||||
|
@$(MAKE) -C test3 clean
|
||||||
|
@$(MAKE) -C test4 clean
|
||||||
|
@$(MAKE) -C test5 clean
|
||||||
|
@$(MAKE) -C test6 clean
|
||||||
|
|
||||||
|
# manpage
|
||||||
|
.PHONY: manuals
|
||||||
|
manuals: mustach.1.gz
|
||||||
|
|
||||||
|
mustach.1.gz: mustach.1.scd
|
||||||
|
if which scdoc >/dev/null 2>&1; then scdoc < mustach.1.scd | gzip > mustach.1.gz; fi
|
||||||
|
|
Loading…
Reference in New Issue
Block a user