Porting to OS/2: First port #3 make DLLs

When building FLAC, you can see the following message.

1
2
3
4
5
6
7
8
9
10
11
12
  CCLD   libFLAC.la

*** Warning: inter-library dependencies are not known to be supported.
*** All declared inter-library dependencies are being dropped.
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.

*** Since this library must not contain undefined symbols,
*** because either the platform does not support them or
*** it was explicitly requested with -no-undefined,
*** libtool will only create a static version of it.


This is because official libtool lacks OS/2 support in order to make dlls. Of course, it is possible to modify Makefiles manually. But it is not recommended. Because your changes to those Makefiles lose if you configure again.

Then which way is there ? We installed autotools before. We need to re-generate build systems with our own autotools.

In general, most projects provide their own bootstrap scripts such as autogen[.sh] or bootstrap for this. If possible, respect them.

In the case of FLAC, it has autogen.sh. So do like this.

  • sh ./autogen.sh

However, sometimes some bootstrap scripts generate files with symlink not copy. Unfortunately, symlink is not supported by OS/2. In this case or bootstrap scripts missing cases, you should run autoreconf manually like this.

  • sh autoreconf -fvi

Or, modify those bootstrap scripts like this.

  • remove [s] option from autoreconf and add [f] and [i] option to autoreconf if autoreconf is used
  • add [f] option to libtoolize if libtoolize is used
  • add [f] and [c] option to automake if automake is used

Symlink should be fixed in later version. And for later usage of autoreconf, it would be better to create a forwarder batch file, reconf.cmd, like this.

1
2
3
4
5
extproc sh

export COMSPEC=/bin/sh

autoreconf -fvi "$@"


Then, configure and make again.

Now, you can get FLAC.dll and FLAC++.dll.

댓글

이 블로그의 인기 게시물

토렌트: < 왕좌의 게임 > 시즌 1 ~ 시즌 8 완결편 마그넷

토렌트: < 스타워즈 > Ep.1 ~ Ep.6 마그넷

토렌트: NGC < 코스모스 > 우리말 더빙 전편(1편~13편) 마그넷