mirror of
https://github.com/bellard/quickjs.git
synced 2024-11-22 13:48:11 +08:00
Makefile: Allow building libquickjs as a shared library
Adapted from https://git.alpinelinux.org/aports/tree/community/quickjs/01-sharedlib.patch?id=27a8f649949c36bfc3e45854e08c48a8eb06e07c Co-authored-by: Celeste <20312-Celeste@users.gitlab.alpinelinux.org>
This commit is contained in:
parent
3b45d155c7
commit
c57e930e95
15
Makefile
15
Makefile
@ -32,6 +32,8 @@ endif
|
|||||||
#CONFIG_WIN32=y
|
#CONFIG_WIN32=y
|
||||||
# use link time optimization (smaller and faster executables but slower build)
|
# use link time optimization (smaller and faster executables but slower build)
|
||||||
#CONFIG_LTO=y
|
#CONFIG_LTO=y
|
||||||
|
# also build libquickjs as a shared library
|
||||||
|
#CONFIG_SHARED=y
|
||||||
# consider warnings as errors (for development)
|
# consider warnings as errors (for development)
|
||||||
#CONFIG_WERROR=y
|
#CONFIG_WERROR=y
|
||||||
# force 32 bit build for some utilities
|
# force 32 bit build for some utilities
|
||||||
@ -205,6 +207,10 @@ PROGS+=libquickjs.a
|
|||||||
ifdef CONFIG_LTO
|
ifdef CONFIG_LTO
|
||||||
PROGS+=libquickjs.lto.a
|
PROGS+=libquickjs.lto.a
|
||||||
endif
|
endif
|
||||||
|
ifdef CONFIG_SHARED
|
||||||
|
SO_VERSION=$(shell sed 's/-/./g' VERSION)
|
||||||
|
PROGS+=libquickjs.so.$(SO_VERSION)
|
||||||
|
endif
|
||||||
|
|
||||||
# examples
|
# examples
|
||||||
ifeq ($(CROSS_PREFIX),)
|
ifeq ($(CROSS_PREFIX),)
|
||||||
@ -289,6 +295,11 @@ libquickjs.a: $(patsubst %.o, %.nolto.o, $(QJS_LIB_OBJS))
|
|||||||
$(AR) rcs $@ $^
|
$(AR) rcs $@ $^
|
||||||
endif # CONFIG_LTO
|
endif # CONFIG_LTO
|
||||||
|
|
||||||
|
ifdef CONFIG_SHARED
|
||||||
|
libquickjs.so.$(SO_VERSION): $(patsubst %.o, %.pic.o, $(QJS_LIB_OBJS))
|
||||||
|
$(CC) -shared -Wl,-soname,$@ $(LDFLAGS) -o $@ $^
|
||||||
|
endif # CONFIG_SHARED
|
||||||
|
|
||||||
repl.c: $(QJSC) repl.js
|
repl.c: $(QJSC) repl.js
|
||||||
$(QJSC) -c -o $@ -m repl.js
|
$(QJSC) -c -o $@ -m repl.js
|
||||||
|
|
||||||
@ -362,6 +373,10 @@ install: all
|
|||||||
install -m644 libquickjs.a "$(DESTDIR)$(PREFIX)/lib/quickjs"
|
install -m644 libquickjs.a "$(DESTDIR)$(PREFIX)/lib/quickjs"
|
||||||
ifdef CONFIG_LTO
|
ifdef CONFIG_LTO
|
||||||
install -m644 libquickjs.lto.a "$(DESTDIR)$(PREFIX)/lib/quickjs"
|
install -m644 libquickjs.lto.a "$(DESTDIR)$(PREFIX)/lib/quickjs"
|
||||||
|
endif
|
||||||
|
ifdef CONFIG_SHARED
|
||||||
|
install -Dm755 libquickjs.so.$(SO_VERSION) "$(DESTDIR)$(PREFIX)/lib"
|
||||||
|
ln -s libquickjs.so.$(SO_VERSION) "$(DESTDIR)$(PREFIX)/lib/libquickjs.so"
|
||||||
endif
|
endif
|
||||||
mkdir -p "$(DESTDIR)$(PREFIX)/include/quickjs"
|
mkdir -p "$(DESTDIR)$(PREFIX)/include/quickjs"
|
||||||
install -m644 quickjs.h quickjs-libc.h "$(DESTDIR)$(PREFIX)/include/quickjs"
|
install -m644 quickjs.h quickjs-libc.h "$(DESTDIR)$(PREFIX)/include/quickjs"
|
||||||
|
Loading…
Reference in New Issue
Block a user