build-pspp: New option --no-perl.
authorBen Pfaff <blp@cs.stanford.edu>
Sun, 13 Mar 2022 21:12:17 +0000 (14:12 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sun, 13 Mar 2022 21:12:17 +0000 (14:12 -0700)
build-pspp

index 83f5d1aa71f2af6e54e8ceef37add31efd1578a8..d6ffcceb18c8a30b943987ed99121c806e13dcef 100755 (executable)
@@ -28,7 +28,8 @@ where TARBALL is the name of a tarball produced by "make dist"
 Options:
   --help            Print this usage message and exit
   --no-binary       Build source tarballs but no binaries.
-  --batch           Do not print progress to stdout."""
+  --batch           Do not print progress to stdout.
+  --no-perl         Do not build Perl module."""
           % (sys.argv[0], sys.argv[0]))
     sys.exit(0)
 
@@ -168,6 +169,7 @@ try:
                                    ["help",
                                     "binary", "no-binary",
                                     "batch", "no-batch",
+                                    "no-perl",
                                     "output=",
                                     "builder=", "build-number="])
 except getopt.GetoptError as err:
@@ -180,6 +182,7 @@ batch = not os.isatty(1)
 builddir = None
 build_number = None
 builder = None
+build_perl = True
 for o, a in opts:
     if o in ("-h", "--help"):
         print_usage()
@@ -197,6 +200,8 @@ for o, a in opts:
         builder = a
     elif o == "--build-number":
         build_number = a
+    elif o == "--no-perl":
+        build_perl = False
     else:
         assert False, "unhandled option"
 if builder is None:
@@ -422,7 +427,7 @@ Changes from %(repo_version)s to %(version)s:
 
     # Distribute.
     start_step("Make source tarball")
-    run("cd pspp/_build && make -j$(nproc) dist", "dist")
+    run("cd pspp/_build && make -j128 dist", "dist")
     tarname = "pspp-%s.tar.gz" % version
     tarball = save_result("source distribution", "pspp/_build/%s" % tarname, 1)
 
@@ -482,18 +487,20 @@ if build_binary:
     start_step("Configuring")
     run("chmod -R a-w %s/%s" % (builddir, tarball_dir))
     run("chmod u+w %s/%s" % (builddir, tarball_dir))
-    run("chmod -R u+w %s/%s/perl-module" % (builddir, tarball_dir))
+    if build_perl:
+        run("chmod -R u+w %s/%s/perl-module" % (builddir, tarball_dir))
     run("mkdir %s/%s/_build" % (builddir, tarball_dir))
     run("chmod a-w %s/%s" % (builddir, tarball_dir))
     ok = try_run(
         "cd %(builddir)s/%(tarball_dir)s/_build && ../configure "
-        "--with-perl-module --enable-relocatable --prefix='' "
+        "--%(perl)s-perl-module --enable-relocatable --prefix='' "
         "PKG_CONFIG_PATH=$PWD/../../../source/%(ssw_dir)s/inst/lib/pkgconfig "
         "CPPFLAGS=\"-I$PWD/../../../source/%(ssw_dir)s/inst/include\" "
-        "LDFLAGS=\"-L$PWD/../../../source/%(ssw_dir)s/inst/lib\""
+        "LDFLAGS=\"-L$PWD/../../../source/%(ssw_dir)s/inst/lib\" "
         % {"builddir": builddir,
            "tarball_dir": tarball_dir,
-           "ssw_dir": ssw_dir},
+           "ssw_dir": ssw_dir,
+           "perl": "with" if build_perl else "without"},
         "bin-configure")
     for basename in ("config.h", "config.log"):
         save_result_if_exists("build configuration",
@@ -504,21 +511,23 @@ if build_binary:
 
     start_step("Build")
     run("cd %s/%s/_build && make -j$(nproc)" % (builddir, tarball_dir), "build")
-    run("cd %s/%s/_build/perl-module && perl Makefile.PL && make -j$(nproc)"
-        % (builddir, tarball_dir), "build Perl module")
+    if build_perl:
+        run("cd %s/%s/_build/perl-module && perl Makefile.PL && make -j$(nproc)"
+            % (builddir, tarball_dir), "build Perl module")
 
     start_step("Install")
     run("cd %s/%s/_build && make -j$(nproc) install DESTDIR=$PWD/pspp-%s"
         % (builddir, tarball_dir, binary_version), "install")
     run("cd ../source/%s && make -j$(nproc) install DESTDIR=%s/%s/_build/pspp-%s"
         % (ssw_dir, builddir, tarball_dir, binary_version))
-    run("cd %s/%s/_build/perl-module && "
-        "make -j$(nproc)  install DESTDIR=%s/%s/_build/pspp-%s"
-        % (builddir, tarball_dir, builddir, tarball_dir, binary_version),
-        "install Perl module")
-    run("cd %s/%s/_build/perl-module && "
-        "make -j$(nproc) install DESTDIR=$PWD/inst"
-        % (builddir, tarball_dir))
+    if build_perl:
+        run("cd %s/%s/_build/perl-module && "
+            "make -j$(nproc)  install DESTDIR=%s/%s/_build/pspp-%s"
+            % (builddir, tarball_dir, builddir, tarball_dir, binary_version),
+            "install Perl module")
+        run("cd %s/%s/_build/perl-module && "
+            "make -j$(nproc) install DESTDIR=$PWD/inst"
+            % (builddir, tarball_dir))
 
     start_step("Make binary distribution")
     run("cd %s/%s/_build && tar cfz pspp-%s.tar.gz pspp-%s"
@@ -542,10 +551,11 @@ if build_binary:
         % (builddir, tarball_dir, binary_version), "uninstall")
 
     start_step("Check uninstall")
-    run("(cd %s/%s/_build/perl-module/inst && find -type f -print) | "
-        "(cd %s/%s/_build/pspp-%s && xargs rm)"
-        % (builddir, tarball_dir,
-           builddir, tarball_dir, binary_version), "uninstall Perl module")
+    if build_perl:
+        run("(cd %s/%s/_build/perl-module/inst && find -type f -print) | "
+            "(cd %s/%s/_build/pspp-%s && xargs rm)"
+            % (builddir, tarball_dir,
+               builddir, tarball_dir, binary_version), "uninstall Perl module")
     run("cd %s/%s/_build && "
         "make -j$(nproc) distuninstallcheck distuninstallcheck_dir=$PWD/pspp-%s"
         % (builddir, tarball_dir, binary_version),