distributable: url: https://github.com/xiph/opus/archive/refs/tags/v{{ version.raw }}.tar.gz strip-components: 1 # if there’s a github then we can parse the versions versions: github: xiph/opus/tags # reads github tags from github strip: /^v/ build: dependencies: tea.xyz/gx/cc: c99 tea.xyz/gx/make: '*' gnu.org/autoconf: 2 gnu.org/automake: 1.16 gnu.org/libtool: 2.4 script: | ./autogen.sh ./configure $ARGS make --jobs {{ hw.concurrency }} make install mv {{ prefix}}/include/opus/* {{prefix}}/include rmdir {{ prefix}}/include/opus ln -s . {{ prefix }}/include/opus # it’s extremely common for packages to require the above env: ARGS: - --prefix={{ prefix }} - --disable-dependency-tracking - --disable-doc test: dependencies: tea.xyz/gx/cc: c99 fixture: | #include int main(int argc, char **argv) { int err = 0; opus_int32 rate = 48000; int channels = 2; int app = OPUS_APPLICATION_AUDIO; OpusEncoder *enc; int ret; enc = opus_encoder_create(rate, channels, app, &err); if (!(err < 0)) { err = opus_encoder_ctl(enc, OPUS_SET_BITRATE(OPUS_AUTO)); if (!(err < 0)) { opus_encoder_destroy(enc); return 0; } } return err; } script: | mv $FIXTURE fixture.cpp cc fixture.cpp -lopus ./a.out