Porting to OS/2: First port #3 make DLLs
When building FLAC, you can see the following message.
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.
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.
Or, modify those bootstrap scripts like this.
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.
Then, configure and make again.
Now, you can get FLAC.dll and FLAC++.dll.
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.
댓글
댓글 쓰기