Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
sapi4_headers/*.h text eol=crlf
sapi4_headers/*.rc text eol=crlf
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
out/
30 changes: 30 additions & 0 deletions build_docker.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash
# build_sapi4_docker.sh - One-shot SAPI4 build using Docker
set -euo pipefail

echo "Building SAPI4 applications with Docker..."

# Run the build in the container and exit
docker run --rm -it -v $(pwd):/work dockcross/windows-static-x86 bash -euo pipefail -c '

mkdir -p out

CXX="/usr/src/mxe/usr/bin/i686-w64-mingw32.static-g++"

CFLAGS="-O2 -D_WIN32_WINNT=0x0501 -static-libgcc -static-libstdc++ -I./sapi4_headers"
LIBS="-lole32 -luser32 -luuid -loleaut32"

echo "Building sapi4.dll..."
$CXX $CFLAGS -shared sapi4.cpp $LIBS -Wl,--out-implib,out/libsapi4.a -o out/sapi4.dll

echo "Building sapi4out.exe..."
$CXX $CFLAGS sapi4out.cpp $LIBS -L./out -lsapi4 -o out/sapi4out.exe

echo "Building sapi4limits.exe..."
$CXX $CFLAGS sapi4limits.cpp $LIBS -L./out -lsapi4 -o out/sapi4limits.exe

rm out/libsapi4.a
'

echo "Done. Output:"
ls -la out/*.{dll,exe} 2>/dev/null || exit 1
63 changes: 63 additions & 0 deletions sapi4_headers/buildnum.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/* buildnum.h*/


#ifndef BUILDNUM_H
#define BUILDNUM_H
/* NOTE: To change build number, change the definitions
* of both BN_BN and BUILD_NUMBER. The rest will use
* the BN_BN definition.
*
* Change log:
*/
#define BN_BN 2512
#define BN_MAJOR 4
#define BN_STR "2512"
#ifndef BUILD_NUMBER
#define BUILD_NUMBER "4.0.4." BN_STR "\0"
#endif

#ifndef JUSTDEFINES
char gszBuildNumber[] = "@(#) Microsoft Speech Build " BUILD_NUMBER;
#endif

#ifndef BN_PRODUCT_VERSION
#define BN_PRODUCT_VERSION 4,0,4,BN_BN
#endif

#ifndef BN_FILE_VER
#define BN_FILE_VERSION BN_PRODUCT_VERSION
#else
#define BN_FILE_VERSION BN_FILE_VER,BN_BN
#endif//BN_FILE_VER

#ifndef BN_FILE_STR
#define BN_FILE_VERSION_STR BUILD_NUMBER
#else
#define BN_FILE_VERSION_STR BN_FILE_STR " " BN_STR "\0"
#endif

#ifndef BN_FLAGS
#ifdef _DEBUG
#define BN_FLAGS VS_FF_DEBUG
#else
#ifdef TEST
#define BN_FLAGS VS_FF_PRERELEASE
#else
#define BN_FLAGS 0
#endif
#endif
#endif

#ifndef BN_FLAGSMASK
#define BN_FLAGSMASK VS_FF_PRERELEASE | VS_FF_DEBUG
#endif//BN_FLAGSMASK

#ifndef BN_PRODUCTNAME
#define BN_PRODUCTNAME "Microsoft Speech\0"
#endif//BN_PRODUCTNAME

#ifndef BN_COPYRIGHT
#define BN_COPYRIGHT "Copyright � 1991-1998 Microsoft Corporation\0"
#endif//BN_COPYRIGHT

#endif // BUILDNUM_H
69 changes: 69 additions & 0 deletions sapi4_headers/buildnum.rc
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/* Each RC file that includes this file for version
* stamping, must define the following items:
*
* #define VER_FILE_TYPE VFT_ // VFT_APP, VFT_DLL, VFT_DRV, VFT_VXD
* #define VER_FILE_DESC "Your app name\0" // don't forget the explicit null.
* #define VER_FILE_SUBTYPE 0 // All but driver should be 0
* #define VER_FILE_INTNAME "<module-name>\0" //don't forget the null.
*
* Change Log:
* 8/31/93 - benm - Tweaked to handle internal name correctly.
*/
#ifndef BUILDNUM_RC
#define BUILDNUM_RC

#include <buildnum.h>
#ifndef VS_FF_DEBUG
#include <ver.h>
#endif

// Default internal name to be same as file desc.
#ifndef VER_INTERNAL_NAME
#define VER_INTERNAL_NAME VER_FILE_DESC
#endif

VS_VERSION_INFO VERSIONINFO
FILEVERSION BN_FILE_VERSION
PRODUCTVERSION BN_PRODUCT_VERSION
FILEFLAGSMASK BN_FLAGSMASK
FILEFLAGS BN_FLAGS
FILEOS VOS_NT_WINDOWS32

FILETYPE VER_FILE_TYPE
FILESUBTYPE VER_FILE_SUBTYPE

BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", "Microsoft Corporation\0"
VALUE "FileDescription", VER_FILE_DESC
VALUE "FileVersion", BN_FILE_VERSION_STR
VALUE "InternalName", VER_INTERNAL_NAME
VALUE "LegalCopyright", BN_COPYRIGHT
VALUE "ProductName", BN_PRODUCTNAME
VALUE "ProductVersion", BUILD_NUMBER
VALUE "OriginalFilename", VER_ORIGINAL_FILENAME
END

BLOCK "040904B0"
BEGIN
VALUE "CompanyName", "Microsoft Corporation\0"
VALUE "FileDescription", VER_FILE_DESC
VALUE "FileVersion", BN_FILE_VERSION_STR
VALUE "InternalName", VER_INTERNAL_NAME
VALUE "LegalCopyright", BN_COPYRIGHT
VALUE "ProductName", BN_PRODUCTNAME
VALUE "ProductVersion", BUILD_NUMBER
VALUE "OriginalFilename", VER_ORIGINAL_FILENAME
END
END

BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END

#endif // BUILDNUM_RC
Loading