Build instructions outdated or incorrect? (original) (raw)

Hi -

The outlined local build process provides the following steps:

sudo apt-get install -y autoconf fig2dev mingw-w64 mingw-w64-tools mingw-w64-i686-dev gcc make m4 pkg-config gettext
git clone https://github.com/KnugiHK/libaacs-libbdplus-windows && cd libaacs-libbdplus-windows
make

On WSL2 running Ubuntu (uname -a returns Linux XXXXXX 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux), make fails because libgpg_error will not build:

[...]
libtool: compile:  x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -DLOCALEDIR=\"/home/XXXXXX/libaacs-libbdplus-windows/build-libaacs/install/share/locale\" -g -O2 -Wall -Wpointer-arith -Wno-psabi -MT libgpg_error_la-init.lo -MD -MP -MF .deps/libgpg_error_la-init.Tpo -c init.c -o libgpg_error_la-init.o
spawn-w32.c: In function 'spawn_detached':
spawn-w32.c:479:3: error: unknown type name 'STARTUPINFOEXW'; did you mean 'STARTUPINFOW'?
  479 |   STARTUPINFOEXW si;
      |   ^~~~~~~~~~~~~~
      |   STARTUPINFOW
[...]

libgpg_error 1.56 seems to build without issue in this environment - is it worth updating the build scripts?

Following on, the build process then hangs up on the absence of flex/yacc. After installing flex and bison or byacc, the libaacs build process fails due to what looks like an issue with header generation?

  CC       src/file/parser_test-keydbcfg-parser.o
src/file/keydbcfg-parser.c:144:48: error: unknown type name ‘config_file’
  144 | # define YYPARSE_DECL() yyparse(void *scanner, config_file *cf, parser_state *ps)
      |                                                ^~~~~~~~~~~
src/file/keydbcfg-parser.c:168:12: note: in expansion of macro ‘YYPARSE_DECL’
  168 | extern int YYPARSE_DECL();
      |            ^~~~~~~~~~~~
src/file/keydbcfg-parser.c:144:65: error: unknown type name ‘parser_state’
  144 | # define YYPARSE_DECL() yyparse(void *scanner, config_file *cf, parser_state *ps)
      |                                                                 ^~~~~~~~~~~~

This appears to be because the header file that includes this definition, file/keydbcfg.h, is not included until line 515. This might be a bison version issue - in this case, it might be worth specifying working versions in the instructions.

I appreciate what you've built here and I'm sorry I can't provide more insight on this - I unfortunately don't know a lot about C programming.