diff --git a/lang/mujs/Makefile b/lang/mujs/Makefile index df024e4ab89b..14c8973a093d 100644 --- a/lang/mujs/Makefile +++ b/lang/mujs/Makefile @@ -1,71 +1,74 @@ PORTNAME= mujs DISTVERSION= 1.3.3 +PORTREVISION= 1 CATEGORIES= lang devel MAINTAINER= yuri@FreeBSD.org COMMENT= Embeddable Javascript interpreter in C WWW= https://mujs.com/ LICENSE= ISCL LICENSE_FILE= ${WRKSRC}/COPYING TEST_DEPENDS= git:devel/git USES= compiler:c11 cpe gmake readline # c11 is induced by the FreeBSD headers via isnan(3), etc, otherwise the project is all c99 code CPE_VENDOR= artifex USE_LDCONFIG= yes USE_GITHUB= yes GH_ACCOUNT= ccxvii +LDFLAGS= -Wl,-soname=libmujs.so + ALL_TARGET= build/release/mujs \ build/release/libmujs.so \ build/release/libmujs.a INSTALL_TARGET= install-shared install-static .if defined(WITH_DEBUG) # this project manages its build options itself MAKE_ARGS= build=debug .endif PLIST_FILES= bin/mujs \ bin/mujs-pp \ include/mujs.h \ lib/libmujs.so \ lib/libmujs.a \ libdata/pkgconfig/mujs.pc OPTIONS_DEFINE= 32BIT SANITIZED OPTIONS_DEFAULT= 32BIT 32BIT_DESC= 32-bit address space to allow for larger programs 32BIT_MAKE_ARGS= XCFLAGS="-DJS_INSTRUCTION=int" SANITIZED_DESC= Sanitized build (only for debugging) SANITIZED_MAKE_ARGS= build=sanitize post-install: @${STRIP_CMD} \ ${STAGEDIR}${PREFIX}/bin/mujs \ ${STAGEDIR}${PREFIX}/bin/mujs-pp \ ${STAGEDIR}${PREFIX}/lib/libmujs.so do-test: # Test-262 JavaScript testsuite is downloaded and run. # Something is off with the test harness so too many tests fail: https://github.com/ccxvii/mujs/issues/147 ${RM} -r ${WRKDIR}/testing && \ ${MKDIR} -p ${WRKDIR}/testing && \ cd ${WRKDIR}/testing && \ git clone https://github.com/tc39/test262.git && \ fetch https://github.com/ccxvii/mujs/files/2332077/mujs-test262-harness-and-output.zip && \ unzip mujs-test262-harness-and-output.zip && \ (${TAIL} -3 mujs-harness-out.txt > mujs-harness-out-3.txt) && \ cd test262 && \ git checkout es5-tests && \ ${ECHO} "Running MuJS tests ..." && \ (${FIND} test/suite -name '*.js' | ${STAGEDIR}${PREFIX}/bin/mujs ../mujs-harness.js > mujs-harness-out-our.txt) && \ ${ECHO} "MuJS tests finished: " && \ (${TAIL} -3 mujs-harness-out-our.txt | tee mujs-harness-out-our-3.txt) && \ ${ECHO} "" && \ ${ECHO} "Compare with reference results:" && \ ${DIFF} ../mujs-harness-out-3.txt mujs-harness-out-our-3.txt .include diff --git a/lang/mujs/files/patch-Makefile b/lang/mujs/files/patch-Makefile index 4a93632fa784..91d877f0829a 100644 --- a/lang/mujs/files/patch-Makefile +++ b/lang/mujs/files/patch-Makefile @@ -1,16 +1,34 @@ Patch contains 2 changes: - enable readline on FreeBSD (upstream never accepted this PR) - use -O3 on FreeBSD --- Makefile.orig 2023-01-10 11:11:11 UTC +++ Makefile @@ -4,7 +4,8 @@ default: build/debug/mujs build/debug/mujs-pp -CFLAGS = -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter +# change to c11 on FreeBSD because FreeBSD headers induce c11 through isnan(3), etc. +CFLAGS = -std=c11 -pedantic -Wall -Wextra -Wno-unused-parameter OPTIM = -O3 +@@ -79,7 +80,7 @@ build/sanitize/mujs: main.c one.c $(SRCS) $(HDRS) + + build/debug/libmujs.$(SO): one.c $(SRCS) $(HDRS) + @mkdir -p $(@D) +- $(CC) $(CFLAGS) -g -fPIC -shared -o $@ one.c -lm ++ $(CC) $(CFLAGS) -g -fPIC -shared $(LDFLAGS) -o $@ one.c -lm + build/debug/libmujs.o: one.c $(SRCS) $(HDRS) + @mkdir -p $(@D) + $(CC) $(CFLAGS) -g -c -o $@ one.c +@@ -92,7 +93,7 @@ build/debug/mujs-pp: pp.c build/debug/libmujs.o + + build/release/libmujs.$(SO): one.c $(SRCS) $(HDRS) + @mkdir -p $(@D) +- $(CC) $(CFLAGS) $(OPTIM) -fPIC -shared -o $@ one.c -lm ++ $(CC) $(CFLAGS) $(OPTIM) -fPIC -shared $(LDFLAGS) -o $@ one.c -lm + build/release/libmujs.o: one.c $(SRCS) $(HDRS) + @mkdir -p $(@D) + $(CC) $(CFLAGS) $(OPTIM) -c -o $@ one.c