01-Makefile.patch, changes: * on x86_64 systems, install libraries in /usr/lib64 * added shared library target * added CFLAGS_EXTRA to pass $SLKCFLAGS (can be improved) * avoid building examples * disabled debug information --- quickjs-2021-03-27/Makefile 2021-03-27 07:00:32.000000000 -0300 +++ quickjs-2021-03-27-modified/Makefile 2022-08-02 21:52:01.476250120 -0300 @@ -36,12 +36,14 @@ ifdef CONFIG_DARWIN # use clang instead of gcc -CONFIG_CLANG=y +#CONFIG_CLANG=y CONFIG_DEFAULT_AR=y endif # installation directory prefix=/usr/local +libdir=$(prefix)/lib +CFLAGS_EXTRA= # use the gprof profiler #CONFIG_PROFILE=y @@ -66,7 +68,7 @@ ifdef CONFIG_CLANG HOST_CC=clang CC=$(CROSS_PREFIX)clang - CFLAGS=-g -Wall -MMD -MF $(OBJDIR)/$(@F).d + CFLAGS= -Wall -MMD -MF $(OBJDIR)/$(@F).d CFLAGS += -Wextra CFLAGS += -Wno-sign-compare CFLAGS += -Wno-missing-field-initializers @@ -87,7 +89,7 @@ else HOST_CC=gcc CC=$(CROSS_PREFIX)gcc - CFLAGS=-g -Wall -MMD -MF $(OBJDIR)/$(@F).d + CFLAGS= -Wall -MMD -MF $(OBJDIR)/$(@F).d CFLAGS += -Wno-array-bounds -Wno-format-truncation ifdef CONFIG_LTO AR=$(CROSS_PREFIX)gcc-ar @@ -107,12 +109,15 @@ DEFINES+=-D__USE_MINGW_ANSI_STDIO # for standard snprintf behavior endif +DEFINES += -DCONFIG_LIBDIR=\"$(libdir)\" + +CFLAGS+=$(CFLAGS_EXTRA) CFLAGS+=$(DEFINES) CFLAGS_DEBUG=$(CFLAGS) -O0 CFLAGS_SMALL=$(CFLAGS) -Os CFLAGS_OPT=$(CFLAGS) -O2 CFLAGS_NOLTO:=$(CFLAGS_OPT) -LDFLAGS=-g +#LDFLAGS=-g ifdef CONFIG_LTO CFLAGS_SMALL+=-flto CFLAGS_OPT+=-flto @@ -157,14 +162,14 @@ ifdef CONFIG_ASAN PROGS+= else -PROGS+=examples/hello examples/hello_module examples/test_fib +#PROGS+=examples/hello examples/hello_module examples/test_fib ifndef CONFIG_DARWIN -PROGS+=examples/fib.so examples/point.so +#PROGS+=examples/fib.so examples/point.so endif endif endif -all: $(OBJDIR) $(OBJDIR)/quickjs.check.o $(OBJDIR)/qjs.check.o $(PROGS) +all: $(OBJDIR) $(OBJDIR)/quickjs.check.o $(OBJDIR)/qjs.check.o $(PROGS) libquickjs.so QJS_LIB_OBJS=$(OBJDIR)/quickjs.o $(OBJDIR)/libregexp.o $(OBJDIR)/libunicode.o $(OBJDIR)/cutils.o $(OBJDIR)/quickjs-libc.o @@ -187,6 +192,9 @@ qjs$(EXE): $(QJS_OBJS) $(CC) $(LDFLAGS) $(LDEXPORT) -o $@ $^ $(LIBS) +libquickjs.so: $(QJS_LIB_OBJS) + $(CC) -shared $(LDFLAGS) -fPIC $(LDEXPORT) -o $@ $^ $(LIBS) + qjs-debug$(EXE): $(patsubst %.o, %.debug.o, $(QJS_OBJS)) $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) @@ -299,13 +307,15 @@ install: all mkdir -p "$(DESTDIR)$(prefix)/bin" - $(STRIP) qjs qjsc + $(STRIP) qjs qjsc libquickjs.so install -m755 qjs qjsc "$(DESTDIR)$(prefix)/bin" ln -sf qjs "$(DESTDIR)$(prefix)/bin/qjscalc" - mkdir -p "$(DESTDIR)$(prefix)/lib/quickjs" - install -m644 libquickjs.a "$(DESTDIR)$(prefix)/lib/quickjs" + mkdir -p "$(DESTDIR)/$(libdir)/quickjs" + install -m644 libquickjs.a "$(DESTDIR)/$(libdir)/quickjs" + install -m644 libquickjs.so "$(DESTDIR)/$(libdir)/quickjs" + ln -s quickjs/libquickjs.so "$(DESTDIR)/$(libdir)/libquickjs.so" ifdef CONFIG_LTO - install -m644 libquickjs.lto.a "$(DESTDIR)$(prefix)/lib/quickjs" + install -m644 libquickjs.lto.a "$(DESTDIR)/$(libdir)/quickjs" endif mkdir -p "$(DESTDIR)$(prefix)/include/quickjs" install -m644 quickjs.h quickjs-libc.h "$(DESTDIR)$(prefix)/include/quickjs"