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"
|