Mercurial > hgrepos > Python2 > PyMuPDF
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 # Makefile for building MuJS libraries, shell, and pretty-printer. | |
| 2 # | |
| 3 # Useful targets are: release, install, uninstall. | |
| 4 | |
| 5 default: build/debug/mujs build/debug/mujs-pp | |
| 6 | |
| 7 CFLAGS = -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter | |
| 8 | |
| 9 OPTIM = -O3 | |
| 10 | |
| 11 prefix = /usr/local | |
| 12 bindir = $(prefix)/bin | |
| 13 incdir = $(prefix)/include | |
| 14 libdir = $(prefix)/lib | |
| 15 | |
| 16 ifeq ($(wildcard .git),.git) | |
| 17 VERSION = $(shell git describe --tags --always) | |
| 18 else | |
| 19 VERSION = $(patsubst mujs-%,%,$(notdir $(CURDIR))) | |
| 20 endif | |
| 21 | |
| 22 ifeq ($(shell uname),Darwin) | |
| 23 SO = dylib | |
| 24 else | |
| 25 SO = so | |
| 26 endif | |
| 27 | |
| 28 ifeq ($(shell uname),FreeBSD) | |
| 29 CFLAGS += -I/usr/local/include -L/usr/local/lib | |
| 30 endif | |
| 31 | |
| 32 HDRS = mujs.h jsi.h regexp.h utf.h astnames.h opnames.h | |
| 33 | |
| 34 ifneq ($(HAVE_READLINE),no) | |
| 35 READLINE_CFLAGS = -DHAVE_READLINE | |
| 36 READLINE_LIBS = -lreadline | |
| 37 endif | |
| 38 | |
| 39 SRCS = \ | |
| 40 jsarray.c \ | |
| 41 jsboolean.c \ | |
| 42 jsbuiltin.c \ | |
| 43 jscompile.c \ | |
| 44 jsdate.c \ | |
| 45 jsdtoa.c \ | |
| 46 jserror.c \ | |
| 47 jsfunction.c \ | |
| 48 jsgc.c \ | |
| 49 jsintern.c \ | |
| 50 jslex.c \ | |
| 51 jsmath.c \ | |
| 52 jsnumber.c \ | |
| 53 jsobject.c \ | |
| 54 json.c \ | |
| 55 jsparse.c \ | |
| 56 jsproperty.c \ | |
| 57 jsregexp.c \ | |
| 58 jsrepr.c \ | |
| 59 jsrun.c \ | |
| 60 jsstate.c \ | |
| 61 jsstring.c \ | |
| 62 jsvalue.c \ | |
| 63 regexp.c \ | |
| 64 utf.c | |
| 65 | |
| 66 one.c: | |
| 67 for F in $(SRCS); do echo "#include \"$$F\""; done > $@ | |
| 68 | |
| 69 astnames.h: jsi.h | |
| 70 grep -E '\<(AST|EXP|STM)_' jsi.h | sed 's/^[^A-Z]*\(AST_\)*/"/;s/,.*/",/' | tr A-Z a-z > $@ | |
| 71 | |
| 72 opnames.h: jsi.h | |
| 73 grep -E '\<OP_' jsi.h | sed 's/^[^A-Z]*OP_/"/;s/,.*/",/' | tr A-Z a-z > $@ | |
| 74 | |
| 75 UnicodeData.txt: | |
| 76 curl -s -o $@ https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt | |
| 77 | |
| 78 utfdata.h: genucd.py UnicodeData.txt | |
| 79 python3 genucd.py UnicodeData.txt >$@ | |
| 80 | |
| 81 build/sanitize/mujs: main.c one.c $(SRCS) $(HDRS) | |
| 82 @mkdir -p $(@D) | |
| 83 $(CC) $(CFLAGS) -g -fsanitize=address -fno-omit-frame-pointer -o $@ main.c one.c -lm $(READLINE_CFLAGS) $(READLINE_LIBS) | |
| 84 | |
| 85 build/debug/libmujs.$(SO): one.c $(SRCS) $(HDRS) | |
| 86 @mkdir -p $(@D) | |
| 87 $(CC) $(CFLAGS) -g -fPIC -shared -o $@ one.c -lm | |
| 88 build/debug/libmujs.o: one.c $(SRCS) $(HDRS) | |
| 89 @mkdir -p $(@D) | |
| 90 $(CC) $(CFLAGS) -g -c -o $@ one.c | |
| 91 build/debug/libmujs.a: build/debug/libmujs.o | |
| 92 $(AR) cr $@ $^ | |
| 93 build/debug/mujs: main.c build/debug/libmujs.o | |
| 94 $(CC) $(CFLAGS) -g -o $@ $^ -lm $(READLINE_CFLAGS) $(READLINE_LIBS) | |
| 95 build/debug/mujs-pp: pp.c build/debug/libmujs.o | |
| 96 $(CC) $(CFLAGS) -g -o $@ $^ -lm | |
| 97 | |
| 98 build/release/libmujs.$(SO): one.c $(SRCS) $(HDRS) | |
| 99 @mkdir -p $(@D) | |
| 100 $(CC) $(CFLAGS) $(OPTIM) -fPIC -shared -o $@ one.c -lm | |
| 101 build/release/libmujs.o: one.c $(SRCS) $(HDRS) | |
| 102 @mkdir -p $(@D) | |
| 103 $(CC) $(CFLAGS) $(OPTIM) -c -o $@ one.c | |
| 104 build/release/libmujs.a: build/release/libmujs.o | |
| 105 $(AR) cr $@ $^ | |
| 106 build/release/mujs: main.c build/release/libmujs.o | |
| 107 $(CC) $(CFLAGS) $(OPTIM) -o $@ $^ -lm $(READLINE_CFLAGS) $(READLINE_LIBS) | |
| 108 build/release/mujs-pp: pp.c build/release/libmujs.o | |
| 109 $(CC) $(CFLAGS) $(OPTIM) -o $@ $^ -lm | |
| 110 | |
| 111 build/release/mujs.pc: | |
| 112 @mkdir -p $(@D) | |
| 113 echo > $@ Name: mujs | |
| 114 echo >> $@ Description: MuJS embeddable Javascript interpreter | |
| 115 echo >> $@ Version: $(VERSION) | |
| 116 echo >> $@ Cflags: -I$(incdir) | |
| 117 echo >> $@ Libs: -L$(libdir) -lmujs | |
| 118 echo >> $@ Libs.private: -lm | |
| 119 | |
| 120 install-common: build/release/mujs build/release/mujs-pp build/release/mujs.pc | |
| 121 install -d $(DESTDIR)$(incdir) | |
| 122 install -d $(DESTDIR)$(libdir) | |
| 123 install -d $(DESTDIR)$(libdir)/pkgconfig | |
| 124 install -d $(DESTDIR)$(bindir) | |
| 125 install -m 644 mujs.h $(DESTDIR)$(incdir) | |
| 126 install -m 644 build/release/mujs.pc $(DESTDIR)$(libdir)/pkgconfig | |
| 127 install -m 755 build/release/mujs $(DESTDIR)$(bindir) | |
| 128 install -m 755 build/release/mujs-pp $(DESTDIR)$(bindir) | |
| 129 | |
| 130 install-static: install-common build/release/libmujs.a | |
| 131 install -m 644 build/release/libmujs.a $(DESTDIR)$(libdir) | |
| 132 | |
| 133 install-shared: install-common build/release/libmujs.$(SO) | |
| 134 install -m 755 build/release/libmujs.$(SO) $(DESTDIR)$(libdir) | |
| 135 | |
| 136 install: install-static | |
| 137 | |
| 138 uninstall: | |
| 139 rm -f $(DESTDIR)$(bindir)/mujs | |
| 140 rm -f $(DESTDIR)$(bindir)/mujs-pp | |
| 141 rm -f $(DESTDIR)$(incdir)/mujs.h | |
| 142 rm -f $(DESTDIR)$(libdir)/pkgconfig/mujs.pc | |
| 143 rm -f $(DESTDIR)$(libdir)/libmujs.a | |
| 144 rm -f $(DESTDIR)$(libdir)/libmujs.$(SO) | |
| 145 | |
| 146 tarball: | |
| 147 git archive --format=zip --prefix=mujs-$(VERSION)/ HEAD > mujs-$(VERSION).zip | |
| 148 git archive --format=tar --prefix=mujs-$(VERSION)/ HEAD | gzip > mujs-$(VERSION).tar.gz | |
| 149 | |
| 150 tags: $(SRCS) $(HDRS) main.c pp.c | |
| 151 ctags $^ | |
| 152 | |
| 153 clean: | |
| 154 rm -rf build | |
| 155 | |
| 156 nuke: clean | |
| 157 rm -f one.c astnames.h opnames.h | |
| 158 | |
| 159 sanitize: build/sanitize/mujs | |
| 160 | |
| 161 debug: build/debug/libmujs.a | |
| 162 debug: build/debug/libmujs.$(SO) | |
| 163 debug: build/debug/mujs | |
| 164 debug: build/debug/mujs-pp | |
| 165 | |
| 166 release: build/release/mujs.pc | |
| 167 release: build/release/libmujs.a | |
| 168 release: build/release/libmujs.$(SO) | |
| 169 release: build/release/mujs | |
| 170 release: build/release/mujs-pp |
