Skip to content

Commit

Permalink
fix Watchman build on FreeBSD
Browse files Browse the repository at this point in the history
Summary:
Watchman advertises support for FreeBSD but it's regressed a couple
ways. Ensure it builds on FreeBSD again with a Vagrantfile.

Reviewed By: ahornby

Differential Revision: D33989289

fbshipit-source-id: ff906bc219974bafbc349740ce6bddfe5bd2908f
  • Loading branch information
chadaustin authored and facebook-github-bot committed Feb 9, 2022
1 parent b291710 commit 390ef19
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 5 deletions.
23 changes: 18 additions & 5 deletions build/fbcode_builder/getdeps/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,19 +173,28 @@ def __init__(
self.install_args = install_args or []
self.test_args = test_args

@property
def _make_binary(self):
return self.manifest.get("build", "make_binary", "make", ctx=self.ctx)

def _get_prefix(self):
return ["PREFIX=" + self.inst_dir, "prefix=" + self.inst_dir]

def _build(self, install_dirs, reconfigure):

env = self._compute_env(install_dirs)

# Need to ensure that PREFIX is set prior to install because
# libbpf uses it when generating its pkg-config file.
# The lowercase prefix is used by some projects.
cmd = ["make", "-j%s" % self.num_jobs] + self.build_args + self._get_prefix()
cmd = (
[self._make_binary, "-j%s" % self.num_jobs]
+ self.build_args
+ self._get_prefix()
)
self._run_cmd(cmd, env=env)

install_cmd = ["make"] + self.install_args + self._get_prefix()
install_cmd = [self._make_binary] + self.install_args + self._get_prefix()
self._run_cmd(install_cmd, env=env)

def run_tests(
Expand All @@ -196,7 +205,7 @@ def run_tests(

env = self._compute_env(install_dirs)

cmd = ["make"] + self.test_args + self._get_prefix()
cmd = [self._make_binary] + self.test_args + self._get_prefix()
self._run_cmd(cmd, env=env)


Expand Down Expand Up @@ -230,6 +239,10 @@ def __init__(
self.args = args or []
self.conf_env_args = conf_env_args or {}

@property
def _make_binary(self):
return self.manifest.get("build", "make_binary", "make", ctx=self.ctx)

def _build(self, install_dirs, reconfigure):
configure_path = os.path.join(self.src_dir, "configure")
autogen_path = os.path.join(self.src_dir, "autogen.sh")
Expand Down Expand Up @@ -264,8 +277,8 @@ def _build(self, install_dirs, reconfigure):
self._run_cmd(["autoreconf", "-ivf"], cwd=self.src_dir, env=env)
configure_cmd = [configure_path, "--prefix=" + self.inst_dir] + self.args
self._run_cmd(configure_cmd, env=env)
self._run_cmd(["make", "-j%s" % self.num_jobs], env=env)
self._run_cmd(["make", "install"], env=env)
self._run_cmd([self._make_binary, "-j%s" % self.num_jobs], env=env)
self._run_cmd([self._make_binary, "install"], env=env)


class Iproute2Builder(BuilderBase):
Expand Down
1 change: 1 addition & 0 deletions build/fbcode_builder/getdeps/manifest.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
"fields": {
"builder": REQUIRED,
"subdir": OPTIONAL,
"make_binary": OPTIONAL,
"build_in_src_dir": OPTIONAL,
"job_weight_mib": OPTIONAL,
},
Expand Down
4 changes: 4 additions & 0 deletions build/fbcode_builder/manifests/flex
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ sha256 = 3dc27a16c21b717bcc5de8590b564d4392a0b8577170c058729d067d95ded825
builder = autoconf
subdir = flex-2.6.4

[build.os=freebsd]
builder = autoconf
make_binary = gmake

[build.os=windows]
builder = nop

Expand Down

0 comments on commit 390ef19

Please sign in to comment.