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-2024-01-13/Makefile 2024-01-13 07:20:39.000000000 -0300 +++ quickjs-2024-01-13m/Makefile 2024-02-04 02:01:09.732016372 -0300 @@ -39,6 +39,8 @@ # installation directory PREFIX?=/usr/local +CFLAGS+=$(CFLAGS_EXTRA) + # use the gprof profiler #CONFIG_PROFILE=y # use address sanitizer @@ -69,7 +71,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 @@ -92,13 +94,13 @@ HOST_CC=gcc CC=cosmocc # cosmocc does not correct support -MF - CFLAGS=-g -Wall #-MMD -MF $(OBJDIR)/$(@F).d + CFLAGS= -Wall #-MMD -MF $(OBJDIR)/$(@F).d CFLAGS += -Wno-array-bounds -Wno-format-truncation AR=cosmoar 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 @@ -127,7 +129,7 @@ ifdef CONFIG_COSMO LDFLAGS+=-s # better to strip by default else -LDFLAGS+=-g +LDFLAGS+= endif ifdef CONFIG_LTO CFLAGS_SMALL+=-flto @@ -176,16 +178,16 @@ # examples ifeq ($(CROSS_PREFIX),) -PROGS+=examples/hello +#PROGS+=examples/hello ifndef CONFIG_ASAN -PROGS+=examples/hello_module +#PROGS+=examples/hello_module endif ifdef CONFIG_SHARED_LIBS -PROGS+=examples/test_fib examples/fib.so examples/point.so +#PROGS+=examples/test_fib examples/fib.so examples/point.so 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 $(OBJDIR)/libbf.o @@ -213,6 +215,9 @@ qjsc$(EXE): $(OBJDIR)/qjsc.o $(QJS_LIB_OBJS) $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) +libquickjs.so: $(QJS_LIB_OBJS) + $(CC) -shared -fPIC $(LDFLAGS) -o $@ $^ $(LIBS) + ifneq ($(CROSS_PREFIX),) $(QJSC): $(OBJDIR)/qjsc.host.o \ @@ -221,11 +226,11 @@ endif #CROSS_PREFIX -QJSC_DEFINES:=-DCONFIG_CC=\"$(QJSC_CC)\" -DCONFIG_PREFIX=\"$(PREFIX)\" +QJSC_DEFINES:=-DCONFIG_CC=\"$(QJSC_CC)\" -DCONFIG_PREFIX=\"$(PREFIX)\" -DCONFIG_LIBDIR=\"$(LIBDIR)\" ifdef CONFIG_LTO QJSC_DEFINES+=-DCONFIG_LTO endif -QJSC_HOST_DEFINES:=-DCONFIG_CC=\"$(HOST_CC)\" -DCONFIG_PREFIX=\"$(PREFIX)\" +QJSC_HOST_DEFINES:=-DCONFIG_CC=\"$(HOST_CC)\" -DCONFIG_PREFIX=\"$(PREFIX)\" -DCONFIG_LIBDIR=\"$(LIBDIR)\" $(OBJDIR)/qjsc.o: CFLAGS+=$(QJSC_DEFINES) $(OBJDIR)/qjsc.host.o: CFLAGS+=$(QJSC_HOST_DEFINES) @@ -319,14 +324,12 @@ 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" -ifdef CONFIG_LTO - install -m644 libquickjs.lto.a "$(DESTDIR)$(PREFIX)/lib/quickjs" -endif + mkdir -p "$(DESTDIR)$(LIBDIR)/quickjs" + install -m644 libquickjs.a "$(DESTDIR)$(LIBDIR)/quickjs" + install -m755 libquickjs.so "$(DESTDIR)$(LIBDIR)" mkdir -p "$(DESTDIR)$(PREFIX)/include/quickjs" install -m644 quickjs.h quickjs-libc.h "$(DESTDIR)$(PREFIX)/include/quickjs"