diff --git a/emulators/tic-80/Makefile b/emulators/tic-80/Makefile index 9bf65216ab11..a16e780407f1 100644 --- a/emulators/tic-80/Makefile +++ b/emulators/tic-80/Makefile @@ -1,78 +1,77 @@ PORTNAME= TIC-80 DISTVERSIONPREFIX= v DISTVERSION= 1.1.2736 +PORTREVISION= 1 CATEGORIES= emulators games MAINTAINER= fuz@FreeBSD.org COMMENT= Fantasy game console WWW= https://tic80.com LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE -# only available as a static library -# bump TIC-80 when quickjs is updated! -BUILD_DEPENDS= quickjs>0:lang/quickjs LIB_DEPENDS= libasound.so:audio/alsa-lib \ libcurl.so:ftp/curl \ libdbus-1.so:devel/dbus \ libgif.so:graphics/giflib \ libinotify.so:devel/libinotify \ libjanet.so:lang/janet \ libpng16.so:graphics/png \ + libquickjs.so:lang/quickjs \ libsquirrel.so:lang/squirrel \ libunwind.so:devel/libunwind # for moonscript RUN_DEPENDS= ${LUA_REFMODLIBDIR}/lpeg.so:devel/lua-lpeg@${LUA_FLAVOR} USES= cmake desktop-file-utils gl localbase:ldflags lua:53 pkgconfig sdl USE_GITHUB= yes GH_ACCOUNT= nesbox GH_TUPLE= nesbox:blip-buf:330226d9b55ecbeea644e17b5e0f096a165ca07e:blip_buf/vendor/blip-buf \ tronkko:dirent:c885633e126a3a949ec0497273ec13e2c03e862c:dirent/vendor/dirent \ wren-lang:wren:4a18fc489f9ea3d253b20dd40f4cdad0d6bb40eb:wren/vendor/wren \ kuba--:zip:d7df626f3aa457e01669f65e61bf8f484e352941:zip/vendor/zip \ nesbox:moonscript:17179283012b392bff972ad66231d73bfeec6e90:moonscript/vendor/moonscript \ cofyc:argparse:0d5f5d0745df14a3f373f7eed85bf524714f4524:argparse/vendor/argparse \ wasm3:wasm3:a3abb3f2d320994be59dfbe2cdafa8d0b6a8253e:wasm3/vendor/wasm3 \ blueloveTH:pocketpy:v1.0.0:pocketpy/vendor/pocketpy \ erkkah:naett:v0.3.1:naett/vendor/naett \ notnullnotvoid:msf_gif:v2.2:msfgif/vendor/msf_gif USE_GL= gl glu glut USE_SDL= sdl2 CFLAGS+= -I${LOCALBASE}/include/quickjs -pthread LDFLAGS+= -L${LOCALBASE}/lib/quickjs LDLIBS+= -lpthread # unbundled succesfully # albertodemichelis:squirrel:9dcf74f99097898dd5a111c4a55b89d1c4d606c0:squirrel/vendor/squirrel # lua:lua:75ea9ccbea7c4886f30da147fb67b693b2624c26:lua/vendor/lua # madler:zlib:cacf7f1d4e3d44d871b605da3b647f07d718623f:zlib/vendor/zlib # nesbox:giflib:1aa11b06d0025eda77b56aec8254130654d4397b:giflib/vendor/giflib # libuv:libuv:9c3d692b3941a2a4171629fb52af2e1029c415e8:libuv/vendor/libuv # nodejs:http-parser:ec8b5ee63f0e51191ea43bb0c6eac7bfbff3141d:http_parser/vendor/http-parser # glennrp:libpng:dbe3e0c43e549a1602286144d94b0666549b18e6:libpng/vendor/libpng # libsdl-org:SDL:b424665e0899769b200231ba943353a5fee1b6b6:sdl2/vendor/sdl2 # grimfang4:sdl-gpu:e3d350b325a0e0d0b3007f69ede62313df46c6ef:sdl_gpu/vendor/sdl-gpu # nesbox:lpeg:73d8614a8dea404cf7bfe25a6e4cea7183dc9fb7:lpeg/vendor/lpeg # janet-lang:janet:v1.29.1:janet/vendor/janet # not actually needed # floooh:sokol:487822d82ca79dba7b67718d962e1ba6beef01b2:sokol/vendor/sokol # mruby:mruby:0f45836b5954accf508f333f932741b925214471:mruby/vendor/mruby # the demo carts are built, but don't seem to end up being installed # mruby: to be decided later; not essential CMAKE_OFF= BUILD_DEMO_CARTS BUILD_WITH_MRUBY BUILD_LIBRETRO OPTIONS_DEFINE= PRO SDLGPU OPTIONS_DEFAULT= SDLGPU PRO_DESC= Build PRO Version SDLGPU_DESC= Support sdl-gpu through graphics/sdl2_gpu PRO_CMAKE_BOOL= BUILD_PRO SDLGPU_LIB_DEPENDS= libSDL2_gpu.so:graphics/sdl2_gpu SDLGPU_CMAKE_BOOL= BUILD_SDLGPU .include diff --git a/lang/quickjs/Makefile b/lang/quickjs/Makefile index 19a6a9630c59..1fbef10941d2 100644 --- a/lang/quickjs/Makefile +++ b/lang/quickjs/Makefile @@ -1,28 +1,32 @@ PORTNAME= quickjs DISTVERSION= 2021.03.27 +PORTREVISION= 1 CATEGORIES= lang devel MASTER_SITES= https://bellard.org/${PORTNAME}/ DISTNAME= ${PORTNAME}-${DISTVERSION:S/./-/g} MAINTAINER= yuri@FreeBSD.org COMMENT= Embeddable Javascript interpreter in C WWW= https://bellard.org/quickjs/ LICENSE= MIT USES= compiler:c11 cpe gmake tar:xz CPE_VENDOR= ${PORTNAME}_project EXTRA_PATCHES= ${FILESDIR}/extra-${CHOSEN_COMPILER_TYPE}-patch-Makefile TEST_TARGET= test .include .if ${CHOSEN_COMPILER_TYPE} == gcc post-patch: @${REINPLACE_CMD} -e 's/%%GCC_DEFAULT%%/${GCC_DEFAULT}/' \ ${WRKSRC}/Makefile .endif +post-install: + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libquickjs.so + .include diff --git a/lang/quickjs/files/patch-Makefile b/lang/quickjs/files/patch-Makefile new file mode 100644 index 000000000000..f7bd7b4b90a4 --- /dev/null +++ b/lang/quickjs/files/patch-Makefile @@ -0,0 +1,71 @@ +--- Makefile.orig 2023-10-23 23:26:12 UTC ++++ Makefile +@@ -76,6 +76,7 @@ ifdef CONFIG_CLANG + HOST_CC=clang + CC=$(CROSS_PREFIX)clang + CFLAGS=-g -Wall -MMD -MF $(OBJDIR)/$(@F).d ++ CFLAGS += -fPIC + CFLAGS += -Wextra + CFLAGS += -Wno-sign-compare + CFLAGS += -Wno-missing-field-initializers +@@ -156,9 +157,9 @@ endif + ifdef CONFIG_M32 + PROGS+=qjs32 qjs32_s + endif +-PROGS+=libquickjs.a ++PROGS+=libquickjs.so + ifdef CONFIG_LTO +-PROGS+=libquickjs.lto.a ++PROGS+=libquickjs.lto.so + endif + + # examples +@@ -235,12 +236,12 @@ else + LTOEXT= + endif + +-libquickjs$(LTOEXT).a: $(QJS_LIB_OBJS) +- $(AR) rcs $@ $^ ++libquickjs$(LTOEXT).so: $(QJS_LIB_OBJS) ++ $(CC) -shared $(LDFLAGS) -o $@ $^ + + ifdef CONFIG_LTO +-libquickjs.a: $(patsubst %.o, %.nolto.o, $(QJS_LIB_OBJS)) +- $(AR) rcs $@ $^ ++libquickjs.so: $(patsubst %.o, %.nolto.o, $(QJS_LIB_OBJS)) ++ $(CC) -shared $(LDFLAGS) -o $@ $^ + endif # CONFIG_LTO + + repl.c: $(QJSC) repl.js +@@ -311,10 +312,10 @@ install: all + $(STRIP) qjs qjsc + 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)$(prefix)/lib" ++ install -m644 libquickjs.so "$(DESTDIR)$(prefix)/lib" + ifdef CONFIG_LTO +- install -m644 libquickjs.lto.a "$(DESTDIR)$(prefix)/lib/quickjs" ++ install -m644 libquickjs.lto.so "$(DESTDIR)$(prefix)/lib" + endif + mkdir -p "$(DESTDIR)$(prefix)/include/quickjs" + install -m644 quickjs.h quickjs-libc.h "$(DESTDIR)$(prefix)/include/quickjs" +@@ -347,7 +348,7 @@ HELLO_MODULE_SRCS=examples/hello_module.js + HELLO_MODULE_OPTS=-fno-string-normalize -fno-map -fno-promise -fno-typedarray \ + -fno-typedarray -fno-regexp -fno-json -fno-eval -fno-proxy \ + -fno-date -m +-examples/hello_module: $(QJSC) libquickjs$(LTOEXT).a $(HELLO_MODULE_SRCS) ++examples/hello_module: $(QJSC) libquickjs$(LTOEXT).so $(HELLO_MODULE_SRCS) + $(QJSC) $(HELLO_MODULE_OPTS) -o $@ $(HELLO_MODULE_SRCS) + + # use of an external C module (static compilation) +@@ -355,7 +356,7 @@ examples/hello_module: $(QJSC) libquickjs$(LTOEXT).a $ + test_fib.c: $(QJSC) examples/test_fib.js + $(QJSC) -e -M examples/fib.so,fib -m -o $@ examples/test_fib.js + +-examples/test_fib: $(OBJDIR)/test_fib.o $(OBJDIR)/examples/fib.o libquickjs$(LTOEXT).a ++examples/test_fib: $(OBJDIR)/test_fib.o $(OBJDIR)/examples/fib.o libquickjs$(LTOEXT).so + $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) + + examples/fib.so: $(OBJDIR)/examples/fib.pic.o diff --git a/lang/quickjs/files/patch-qjsc.c b/lang/quickjs/files/patch-qjsc.c new file mode 100644 index 000000000000..292f0af889fd --- /dev/null +++ b/lang/quickjs/files/patch-qjsc.c @@ -0,0 +1,11 @@ +--- qjsc.c.orig 2023-10-23 23:25:39 UTC ++++ qjsc.c +@@ -446,7 +446,7 @@ static int output_executable(const char *out_filename, + if (dynamic_export) + *arg++ = "-rdynamic"; + *arg++ = cfilename; +- snprintf(libjsname, sizeof(libjsname), "%s/libquickjs%s%s.a", ++ snprintf(libjsname, sizeof(libjsname), "%s/libquickjs%s%s.so", + lib_dir, bn_suffix, lto_suffix); + *arg++ = libjsname; + *arg++ = "-lm"; diff --git a/lang/quickjs/pkg-plist b/lang/quickjs/pkg-plist index 1a1306ba137d..5a70bf083b2b 100644 --- a/lang/quickjs/pkg-plist +++ b/lang/quickjs/pkg-plist @@ -1,6 +1,6 @@ bin/qjs bin/qjsc bin/qjscalc include/quickjs/quickjs-libc.h include/quickjs/quickjs.h -lib/quickjs/libquickjs.a +lib/libquickjs.so diff --git a/www/edbrowse/Makefile b/www/edbrowse/Makefile index 78300980d355..c8274684bdb0 100644 --- a/www/edbrowse/Makefile +++ b/www/edbrowse/Makefile @@ -1,46 +1,46 @@ PORTNAME= edbrowse DISTVERSIONPREFIX= v DISTVERSION= 3.8.7 +PORTREVISION= 1 CATEGORIES= www editors MAINTAINER= alfix86@gmail.com COMMENT= Line-oriented web browser and text editor WWW= https://edbrowse.org/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING -BUILD_DEPENDS= ${LOCALBASE}/include/quickjs/quickjs.h:lang/quickjs \ - ${LOCALBASE}/lib/quickjs/libquickjs.a:lang/quickjs LIB_DEPENDS= libcurl.so:ftp/curl \ + libquickjs.so:lang/quickjs \ libodbc.so:databases/unixODBC \ libpcre2-8.so:devel/pcre2 USES= compiler:c11 gmake perl5 pkgconfig readline ssl USE_PERL5= build USE_GITHUB= yes MAKEFILE= makefile GH_ACCOUNT= CMB PLIST_FILES= bin/${PORTNAME} \ man/man1/${PORTNAME}.1.gz PORTDOCS= * OPTIONS_DEFINE= DOCS do-install: ${INSTALL_MAN} ${WRKSRC}/doc/man-edbrowse-freebsd.1 ${STAGEDIR}${MAN1PREFIX}/man/man1/${PORTNAME}.1 ${INSTALL_PROGRAM} ${WRKSRC}/src/edbrowse ${STAGEDIR}${PREFIX}/bin post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/CHANGES ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/README ${STAGEDIR}${DOCSDIR} cd ${WRKSRC}/doc && \ ${FIND} . \( -name article.wikipedia -or -name "man-edbrowse*" \) -delete && \ ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} .include diff --git a/www/edbrowse/files/patch-src_makefile b/www/edbrowse/files/patch-src_makefile index d891514900c6..1d08660a15dd 100644 --- a/www/edbrowse/files/patch-src_makefile +++ b/www/edbrowse/files/patch-src_makefile @@ -1,20 +1,20 @@ --- src/makefile.orig 2022-10-03 21:56:00 UTC +++ src/makefile @@ -1,7 +1,7 @@ PERL ?= perl # compiler and flags CC ?= cc PERL ?= perl -QUICKJS_DIR ?= ../../quickjs +QUICKJS_DIR ?= /usr/local/include/quickjs CFLAGS += -Wall -Wno-unused -D_FILE_OFFSET_BITS=64 ifeq ($(shell uname),Linux) PLATFORM_CFLAGS = -DEDBROWSE_ON_LINUX @@ -34,7 +34,7 @@ LDFLAGS = $(STRIP) $(LINKER_LIBS) -lpthread -lm LDFLAGS = $(STRIP) $(LINKER_LIBS) -lpthread -lm # LDFLAGS for quickjs loading. -QUICKJS_LDFLAGS = $(QUICKJS_DIR)/libquickjs.a -ldl -+QUICKJS_LDFLAGS = /usr/local/lib/quickjs/libquickjs.a -ldl ++QUICKJS_LDFLAGS = -lquickjs ifeq ($(shell uname),Linux) QUICKJS_LDFLAGS += -latomic endif