summaryrefslogtreecommitdiffstats
path: root/development/quickjs/patches/01-Makefile.patch
blob: 10eb343fb3b1c6e34a1769ef46744170daf0c769 (plain)
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"