Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/thirdparty/mujs/Makefile @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mupdf-source/thirdparty/mujs/Makefile Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,170 @@ +# Makefile for building MuJS libraries, shell, and pretty-printer. +# +# Useful targets are: release, install, uninstall. + +default: build/debug/mujs build/debug/mujs-pp + +CFLAGS = -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter + +OPTIM = -O3 + +prefix = /usr/local +bindir = $(prefix)/bin +incdir = $(prefix)/include +libdir = $(prefix)/lib + +ifeq ($(wildcard .git),.git) + VERSION = $(shell git describe --tags --always) +else + VERSION = $(patsubst mujs-%,%,$(notdir $(CURDIR))) +endif + +ifeq ($(shell uname),Darwin) + SO = dylib +else + SO = so +endif + +ifeq ($(shell uname),FreeBSD) + CFLAGS += -I/usr/local/include -L/usr/local/lib +endif + +HDRS = mujs.h jsi.h regexp.h utf.h astnames.h opnames.h + +ifneq ($(HAVE_READLINE),no) + READLINE_CFLAGS = -DHAVE_READLINE + READLINE_LIBS = -lreadline +endif + +SRCS = \ + jsarray.c \ + jsboolean.c \ + jsbuiltin.c \ + jscompile.c \ + jsdate.c \ + jsdtoa.c \ + jserror.c \ + jsfunction.c \ + jsgc.c \ + jsintern.c \ + jslex.c \ + jsmath.c \ + jsnumber.c \ + jsobject.c \ + json.c \ + jsparse.c \ + jsproperty.c \ + jsregexp.c \ + jsrepr.c \ + jsrun.c \ + jsstate.c \ + jsstring.c \ + jsvalue.c \ + regexp.c \ + utf.c + +one.c: + for F in $(SRCS); do echo "#include \"$$F\""; done > $@ + +astnames.h: jsi.h + grep -E '\<(AST|EXP|STM)_' jsi.h | sed 's/^[^A-Z]*\(AST_\)*/"/;s/,.*/",/' | tr A-Z a-z > $@ + +opnames.h: jsi.h + grep -E '\<OP_' jsi.h | sed 's/^[^A-Z]*OP_/"/;s/,.*/",/' | tr A-Z a-z > $@ + +UnicodeData.txt: + curl -s -o $@ https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt + +utfdata.h: genucd.py UnicodeData.txt + python3 genucd.py UnicodeData.txt >$@ + +build/sanitize/mujs: main.c one.c $(SRCS) $(HDRS) + @mkdir -p $(@D) + $(CC) $(CFLAGS) -g -fsanitize=address -fno-omit-frame-pointer -o $@ main.c one.c -lm $(READLINE_CFLAGS) $(READLINE_LIBS) + +build/debug/libmujs.$(SO): one.c $(SRCS) $(HDRS) + @mkdir -p $(@D) + $(CC) $(CFLAGS) -g -fPIC -shared -o $@ one.c -lm +build/debug/libmujs.o: one.c $(SRCS) $(HDRS) + @mkdir -p $(@D) + $(CC) $(CFLAGS) -g -c -o $@ one.c +build/debug/libmujs.a: build/debug/libmujs.o + $(AR) cr $@ $^ +build/debug/mujs: main.c build/debug/libmujs.o + $(CC) $(CFLAGS) -g -o $@ $^ -lm $(READLINE_CFLAGS) $(READLINE_LIBS) +build/debug/mujs-pp: pp.c build/debug/libmujs.o + $(CC) $(CFLAGS) -g -o $@ $^ -lm + +build/release/libmujs.$(SO): one.c $(SRCS) $(HDRS) + @mkdir -p $(@D) + $(CC) $(CFLAGS) $(OPTIM) -fPIC -shared -o $@ one.c -lm +build/release/libmujs.o: one.c $(SRCS) $(HDRS) + @mkdir -p $(@D) + $(CC) $(CFLAGS) $(OPTIM) -c -o $@ one.c +build/release/libmujs.a: build/release/libmujs.o + $(AR) cr $@ $^ +build/release/mujs: main.c build/release/libmujs.o + $(CC) $(CFLAGS) $(OPTIM) -o $@ $^ -lm $(READLINE_CFLAGS) $(READLINE_LIBS) +build/release/mujs-pp: pp.c build/release/libmujs.o + $(CC) $(CFLAGS) $(OPTIM) -o $@ $^ -lm + +build/release/mujs.pc: + @mkdir -p $(@D) + echo > $@ Name: mujs + echo >> $@ Description: MuJS embeddable Javascript interpreter + echo >> $@ Version: $(VERSION) + echo >> $@ Cflags: -I$(incdir) + echo >> $@ Libs: -L$(libdir) -lmujs + echo >> $@ Libs.private: -lm + +install-common: build/release/mujs build/release/mujs-pp build/release/mujs.pc + install -d $(DESTDIR)$(incdir) + install -d $(DESTDIR)$(libdir) + install -d $(DESTDIR)$(libdir)/pkgconfig + install -d $(DESTDIR)$(bindir) + install -m 644 mujs.h $(DESTDIR)$(incdir) + install -m 644 build/release/mujs.pc $(DESTDIR)$(libdir)/pkgconfig + install -m 755 build/release/mujs $(DESTDIR)$(bindir) + install -m 755 build/release/mujs-pp $(DESTDIR)$(bindir) + +install-static: install-common build/release/libmujs.a + install -m 644 build/release/libmujs.a $(DESTDIR)$(libdir) + +install-shared: install-common build/release/libmujs.$(SO) + install -m 755 build/release/libmujs.$(SO) $(DESTDIR)$(libdir) + +install: install-static + +uninstall: + rm -f $(DESTDIR)$(bindir)/mujs + rm -f $(DESTDIR)$(bindir)/mujs-pp + rm -f $(DESTDIR)$(incdir)/mujs.h + rm -f $(DESTDIR)$(libdir)/pkgconfig/mujs.pc + rm -f $(DESTDIR)$(libdir)/libmujs.a + rm -f $(DESTDIR)$(libdir)/libmujs.$(SO) + +tarball: + git archive --format=zip --prefix=mujs-$(VERSION)/ HEAD > mujs-$(VERSION).zip + git archive --format=tar --prefix=mujs-$(VERSION)/ HEAD | gzip > mujs-$(VERSION).tar.gz + +tags: $(SRCS) $(HDRS) main.c pp.c + ctags $^ + +clean: + rm -rf build + +nuke: clean + rm -f one.c astnames.h opnames.h + +sanitize: build/sanitize/mujs + +debug: build/debug/libmujs.a +debug: build/debug/libmujs.$(SO) +debug: build/debug/mujs +debug: build/debug/mujs-pp + +release: build/release/mujs.pc +release: build/release/libmujs.a +release: build/release/libmujs.$(SO) +release: build/release/mujs +release: build/release/mujs-pp
