summaryrefslogtreecommitdiff
path: root/lang/p5-JavaScript-QuickJS/files/patch-Makefile.PL
diff options
context:
space:
mode:
authorPo-Chuan Hsieh <sunpoet@FreeBSD.org>2024-09-09 02:17:58 +0800
committerPo-Chuan Hsieh <sunpoet@FreeBSD.org>2024-09-09 02:37:12 +0800
commit107c6a92bfe92bb68c55e95c32643db6f510dd2c (patch)
treef84a50b6a6d62ab8af104e76f70f719eff2e3780 /lang/p5-JavaScript-QuickJS/files/patch-Makefile.PL
parentdns/p5-Net-DNS: Update to 1.46 (diff)
lang/p5-JavaScript-QuickJS: Use lang/quickjs
- Bump PORTREVISION for dependency and package change
Diffstat (limited to 'lang/p5-JavaScript-QuickJS/files/patch-Makefile.PL')
-rw-r--r--lang/p5-JavaScript-QuickJS/files/patch-Makefile.PL88
1 files changed, 88 insertions, 0 deletions
diff --git a/lang/p5-JavaScript-QuickJS/files/patch-Makefile.PL b/lang/p5-JavaScript-QuickJS/files/patch-Makefile.PL
new file mode 100644
index 000000000000..99174c1a1b57
--- /dev/null
+++ b/lang/p5-JavaScript-QuickJS/files/patch-Makefile.PL
@@ -0,0 +1,88 @@
+--- Makefile.PL.orig 2024-02-12 06:16:14 UTC
++++ Makefile.PL
+@@ -13,24 +13,11 @@ use Cwd;
+ use File::Which;
+ use Cwd;
+
+-my $GMAKE_PATH = _find_gmake();
+-
+-if (!$GMAKE_PATH) {
+- die "GNU Make ($Config{'gmake'}) is required.\n";
+-}
+-elsif (!-x $GMAKE_PATH) {
+- if ($!) {
+- die "Failed to detect if GNU Make ($GMAKE_PATH) is executable: $!\n";
+- }
+-
+- die "GNU Make ($GMAKE_PATH) is not executable.\n";
+-}
+-
+ my $ATOMIC_ENV_KEY = 'JS_QUICKJS_LINK_LIBATOMIC';
+
+ my $PERL_QJS_MAKEFILE_PATH = File::Spec->catfile( Cwd::getcwd(), 'Makefile.quickjs');
+
+-my $libpath = File::Spec->catfile('quickjs', 'libquickjs.a');
++my $libpath = File::Spec->catfile('%%LOCALBASE%%/lib', 'libquickjs.so');
+
+ # quickjs needs these; pre-5.20 perls didn’t include libpthread.
+ # Note that MSWin32, if given these, will try to compile them statically
+@@ -42,8 +29,6 @@ if (_need_librt()) {
+ push @libs, '-lrt';
+ }
+
+-_tweak_for_os();
+-
+ if (!_stdatomic_h_exists()) {
+ _avoid_stdatomic_h();
+ }
+@@ -54,13 +39,6 @@ mkdir( File::Spec->catdir( qw(quickjs .obj) ) );
+ #
+ mkdir( File::Spec->catdir( qw(quickjs .obj) ) );
+
+-make_libquickjs_makefile();
+-
+-# RaspiOS needs this; others may, too:
+-if (_should_link_libatomic()) {
+- push @libs, '-latomic';
+-}
+-
+ WriteMakefile(
+ NAME => 'JavaScript::QuickJS',
+ VERSION_FROM => 'lib/JavaScript/QuickJS.pm', # finds $VERSION
+@@ -71,7 +49,7 @@ WriteMakefile(
+ ],
+ ) : ()
+ ),
+- INC => '-Wall --std=c99 -I.',
++ INC => '-Wall --std=c99 -I. -I%%LOCALBASE%%/include',
+ LICENSE => "perl_5",
+
+ PMLIBDIRS => ['lib'],
+@@ -224,8 +202,6 @@ sub _should_link_libatomic {
+ my $needs_libatomic;
+
+ eval {
+- system $GMAKE_PATH, '-C', 'quickjs', '-f', $PERL_QJS_MAKEFILE_PATH, $rel_objpath;
+- die if $?;
+ my $objbin = File::Slurper::read_binary($objpath);
+
+ $needs_libatomic = -1 != index($objbin, '__atomic_fetch_sub_');
+@@ -315,18 +291,5 @@ use Config;
+ package MY;
+
+ use Config;
+-
+-sub postamble {
+-
+- # QuickJS requires GNU make.
+- my $make = ($^O =~ m<bsd>i) ? $GMAKE_PATH : '$(MAKE)';
+-
+- # The leading “+” is to ensure that parallel builds work properly.
+- return <<"MAKE_FRAG"
+-
+-$libpath:
+-\t+$make -C quickjs -f '$PERL_QJS_MAKEFILE_PATH' libquickjs.a
+-MAKE_FRAG
+-}
+
+ 1;