Compare commits

..
4715 changed files with 543629 additions and 814050 deletions

No files matched your search

-182
View File
@@ -1,182 +0,0 @@
version: 2
references:
container_config: &container_config
docker:
- image: "debian:stretch"
working_directory: /root/build
restore_repo: &restore_repo
restore_cache:
keys:
- source-repo-{{ .Branch }}-{{ .Revision }}
- source-repo-{{ .Branch }}
- source-repo
cmake_configure: &cmake_configure
run:
name: Creating Build Files
command: |
mkdir build
cd build
CXXFLAGS="-m64 -mtune=generic -mfpmath=sse -msse -msse2 -pipe -Wno-unknown-pragmas"
CFLAGS="-m64 -mtune=generic -mfpmath=sse -msse -msse2 -pipe -Wno-unknown-pragmas"
if [[ "$CC" =~ ^clang.*$ ]]; then
CXXFLAGS="$CXXFLAGS -stdlib=libc++"
fi
eval $CC --version
export CXXFLAGS
export CFLAGS
CMAKE="cmake -G Ninja -DFSO_FATAL_WARNINGS=ON $CMAKE_OPTIONS"
eval $CMAKE -DCMAKE_BUILD_TYPE=$CONFIGURATION -DFSO_BUILD_TESTS=ON -DFSO_BUILD_INCLUDED_LIBS=ON ..
compile: &compile
run:
name: Compiling Source code
command: |
cd build
ninja -k 20 all
run_tests: &run_tests
run:
name: Run unit tests
command: |
./build/bin/unittests --gtest_shuffle
compile_steps: &compile_steps
steps:
- *restore_repo
- *cmake_configure
- *compile
- *run_tests
jobs:
checkout_code:
<<: *container_config
steps:
- run:
name: Installing Git
command: 'apt-get update && apt-get -yq install git'
- *restore_repo
- checkout
- run:
name: Updating submodules
command: 'git submodule update --init --recursive'
- save_cache:
key: source-repo-{{ .Branch }}-{{ .Revision }}
paths:
- .
build_gcc_lowest_debug:
docker:
- image: asarium/fso_compile:gcc-lowest
working_directory: /root/build
environment:
CC: gcc
CXX: g++
CONFIGURATION: Debug
<<: *compile_steps
build_gcc_lowest_release:
docker:
- image: asarium/fso_compile:gcc-lowest
working_directory: /root/build
environment:
CC: gcc
CXX: g++
CONFIGURATION: Release
<<: *compile_steps
build_gcc_latest_debug:
docker:
- image: asarium/fso_compile:gcc-latest
working_directory: /root/build
environment:
CC: gcc
CXX: g++
CONFIGURATION: Debug
<<: *compile_steps
build_gcc_latest_release:
docker:
- image: asarium/fso_compile:gcc-latest
working_directory: /root/build
environment:
CC: gcc
CXX: g++
CONFIGURATION: Release
<<: *compile_steps
build_clang_latest_debug:
docker:
- image: asarium/fso_compile:clang-latest
working_directory: /root/build
environment:
CC: clang-8
CXX: clang++-8
CONFIGURATION: Debug
<<: *compile_steps
build_clang_latest_release:
docker:
- image: asarium/fso_compile:clang-latest
working_directory: /root/build
environment:
CC: clang-8
CXX: clang++-8
CONFIGURATION: Release
<<: *compile_steps
build_clang_lowest_debug:
docker:
- image: asarium/fso_compile:clang-lowest
working_directory: /root/build
environment:
CC: clang
CXX: clang++
CONFIGURATION: Debug
<<: *compile_steps
build_clang_lowest_release:
docker:
- image: asarium/fso_compile:clang-lowest
working_directory: /root/build
environment:
CC: clang
CXX: clang++
CONFIGURATION: Release
<<: *compile_steps
workflows:
version: 2
build_test:
jobs:
- checkout_code
- build_gcc_lowest_debug:
requires:
- checkout_code
- build_gcc_lowest_release:
requires:
- checkout_code
- build_gcc_latest_debug:
requires:
- checkout_code
- build_gcc_latest_release:
requires:
- checkout_code
- build_clang_latest_debug:
requires:
- checkout_code
- build_clang_latest_release:
requires:
- checkout_code
- build_clang_lowest_debug:
requires:
- checkout_code
- build_clang_lowest_release:
requires:
- checkout_code
-104
View File
@@ -1,104 +0,0 @@
---
Language: Cpp
Standard: Cpp11
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowAllArgumentsOnNextLine: false
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 120
CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DisableFormat: false
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^(<.*\.(h|hh|hpp)>)$' # Includes of external libraries
Priority: 5
- Regex: '^(<.*>)$' # standard library includes (won't match deprecated C headers)
Priority: 6
- Regex: '^"globalincs\/.*\.h"$' # globalincs always come first
Priority: 1
- Regex: '^"[^/]*\.(h)"$' # Local includes
Priority: 2
- Regex: '^".*\.(h)"$' # standard engine includes
Priority: 3
- Regex: '.*' # Catch all in case something is unhandled above
Priority: 4
IncludeIsMainRegex: '$'
IndentCaseLabels: false
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
TabWidth: 4
UseTab: ForContinuationAndIndentation
...
-41
View File
@@ -1,41 +0,0 @@
---
Checks: "-*,\
modernize-*,\
-modernize-avoid-c-arrays,\
-modernize-make-unique,\
-modernize-raw-string-literal,\
-modernize-use-trailing-return-type,\
-modernize-use-using,\
performance-*,\
-performance-type-promotion-in-math-fn,\
misc-*,\
-misc-macro-parentheses,\
-misc-misplaced-widening-cast,\
-misc-non-private-member-variables-in-classes,\
-misc-static-assert,\
-misc-unused-parameters,\
readability-*,\
-readability-avoid-const-params-in-decls,\
-readability-else-after-return,\
-readability-function-size,\
-readability-identifier-naming,\
-readability-implicit-bool-conversion,\
-readability-inconsistent-declaration-parameter-name,\
-readability-isolate-declaration,\
-readability-magic-numbers,\
-readability-named-parameter,\
-readability-qualified-auto,\
-readability-uppercase-literal-suffix,\
"
WarningsAsErrors: ''
HeaderFilterRegex: 'code/.*$|freespace2/.*$|qtfred/.*$|test/src/.*$|build/.*$'
AnalyzeTemporaryDtors: false
CheckOptions:
- key: 'misc-assert-side-effect.AssertMacros'
value: 'assert,Assert,Assertion'
- key: 'modernize-use-emplace.ContainersWithPushBack'
value: 'std::vector;std::deque;std::list;SCP_vector;SCP_deque;SCP_list'
- key: 'readability-braces-around-statements.ShortStatementLines'
value: '4' # Avoid flagging simple if (...) return false; statements
...
-2
View File
@@ -1,2 +0,0 @@
/build
/.git
-21
View File
@@ -1,21 +0,0 @@
build:
image: teaci/msys$$arch
pull: true
shell: mingw$$arch
commands:
- git submodule update --init --recursive
- if [ $$arch = 32 ]; then target=i686; fi
- if [ $$arch = 64 ]; then target=x86_64; fi
- pacman -S --needed --noconfirm --noprogressbar mingw-w64-${target}-pkg-config mingw-w64-${target}-cmake
- mkdir build && cd build
- cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=$$CONFIGURATION -DFSO_USE_SPEECH=OFF -DFSO_USE_VOICEREC=OFF -DFSO_FATAL_WARNINGS=ON -DFSO_BUILD_FRED2=OFF ..
- make -j$(nproc) all
matrix:
arch:
- 64
- 32
CONFIGURATION:
- Debug
- Release
-15
View File
@@ -1,15 +0,0 @@
root = true
[*.{h,cpp}]
indent_style = tab
[*.sdr]
indent_style = tab
[*.{yml,yaml}]
indent_style = space
indent_size = 2
[*.sh]
indent_style = space
indent_size = 4
-7
View File
@@ -1,7 +0,0 @@
# Default for everything
# * text=auto
# For the test data and built-in files to make them consistent on all platforms
*.tbl text eol=lf
*.tbm text eol=lf
*.sdr text eol=lf
-6
View File
@@ -1,6 +0,0 @@
ci/ @asarium @z64555
code/controlconfig/ @z64555
code/model/modelanimation*.* @bmagnu
-336
View File
@@ -1,336 +0,0 @@
name: Build Nightly package
on:
push:
tags:
- 'nightly_*'
env:
QT_VERSION: 5.12.12
jobs:
build_linux:
strategy:
matrix:
configuration: [FastDebug, Release]
name: Linux
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/linux_build:sha-1ff82e8
steps:
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: gcc-9
ENABLE_QTFRED: OFF
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
run: |
LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Generate AppImage
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
run: $GITHUB_WORKSPACE/ci/linux/generate_appimage.sh $GITHUB_WORKSPACE/build/install
- name: Upload build result
uses: actions/upload-artifact@v3
with:
name: linux-${{ matrix.configuration }}
path: ${{ github.workspace }}/build/install/*.AppImage
linux_zip:
name: Build Linux distribution zip
needs: build_linux
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-748b19d
steps:
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
fetch-depth: '0'
- name: Download Release builds
uses: actions/download-artifact@v3
with:
name: linux-Release
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v3
with:
name: linux-FastDebug
path: builds
- name: Create Distribution package
working-directory: ./builds
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Linux
- name: Upload result package
working-directory: ./builds
env:
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
DATACORDER_USER: ${{ secrets.DATACORDER_USER }}
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }}
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh nightly
build_windows:
strategy:
matrix:
configuration: [FastDebug, Release]
arch: [Win32, x64]
simd: [SSE2]
name: Windows
runs-on: windows-2019
steps:
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
# - name: Cache Qt
# id: cache-qt-win
# uses: actions/cache@v1
# with:
# path: ${{ github.workspace }}/../Qt
# key: ${{ runner.os }}-${{ matrix.arch }}-QtCache-${{ env.QT_VERSION }}
# - name: Install Qt (32 bit)
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.arch == 'Win32' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win32_msvc2017
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
# - name: Install Qt (64 bit)
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.arch == 'x64' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win64_msvc2017_64
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCHITECTURE: ${{ matrix.arch }}
SIMD: ${{ matrix.simd }}
shell: bash
run: |
mkdir build
cd build
if [ "$ARCHITECTURE" = "Win32" ]; then
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH="ON" \
-DFSO_USE_VOICEREC="ON" -DMSVC_SIMD_INSTRUCTIONS="$SIMD" \
-DFSO_BUILD_QTFRED=OFF -DFSO_BUILD_TESTS=ON \
-DFSO_INSTALL_DEBUG_FILES="ON" -DFSO_BUILD_WITH_VULKAN="OFF" -A "$ARCHITECTURE" \
-G "Visual Studio 16 2019" -T "v142" ..
else
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH="ON" \
-DFSO_USE_VOICEREC="ON" -DMSVC_SIMD_INSTRUCTIONS="$SIMD" \
-DFSO_BUILD_QTFRED=OFF -DFSO_BUILD_TESTS=ON \
-DFSO_INSTALL_DEBUG_FILES="ON" -A "$ARCHITECTURE" \
-G "Visual Studio 16 2019" -T "v142" ..
fi
- name: Compile
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
shell: bash
run: |
cmake --build . --config "$CONFIGURATION" --target INSTALL -- /verbosity:minimal
ls -alR "$(pwd)/install"
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
shell: bash
run: ./bin/$CONFIGURATION/unittests --gtest_shuffle
- name: Upload build result
uses: actions/upload-artifact@v3
with:
name: windows-${{ matrix.configuration }}-${{ matrix.arch }}-${{ matrix.simd }}
path: ${{ github.workspace }}/build/install/*
windows_zip:
name: Build Windows distribution zip
needs: build_windows
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-748b19d
strategy:
matrix:
arch: [Win32, x64]
simd: [SSE2]
steps:
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
fetch-depth: '0'
- name: Download Release builds
uses: actions/download-artifact@v3
with:
name: windows-Release-${{ matrix.arch }}-${{ matrix.simd }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v3
with:
name: windows-FastDebug-${{ matrix.arch }}-${{ matrix.simd }}
path: builds
- name: Create Distribution package
working-directory: ./builds
shell: bash
env:
ARCH: ${{ matrix.arch }}
SIMD: ${{ matrix.simd }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Windows
- name: Upload result package
working-directory: ./builds
shell: bash
env:
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
DATACORDER_USER: ${{ secrets.DATACORDER_USER }}
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }}
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh nightly
build_mac:
strategy:
matrix:
configuration: [FastDebug, Release]
compiler: [clang]
arch: [x86_64, arm64]
name: Mac
runs-on: macos-latest
steps:
# - name: Cache Qt
# id: cache-qt-mac
# uses: actions/cache@v1
# with:
# path: ${{ github.workspace }}/../Qt
# key: ${{ runner.os }}-QtCache-${{ env.QT_VERSION }}
# - name: Install Qt
# uses: jurplel/install-qt-action@v2
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# cached: ${{ steps.cache-qt-mac.outputs.cache-hit }}
# setup-python: 'false'
# aqtversion: ==1.1.3
# py7zrversion: '==0.19.*'
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
fetch-depth: 0
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: Set up test version
shell: bash
run: |
[[ "${{ github.ref }}" =~ ^refs\/heads\/test\/(.*)$ ]]
# Override the revision string so that the builds are named correctly
echo "set(FSO_VERSION_REVISION_STR ${BASH_REMATCH[1]})" > "version_override.cmake"]
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
ARCHITECTURE: ${{ matrix.arch }}
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
ENABLE_QTFRED: OFF
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCH: ${{ matrix.arch }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Sign builds
working-directory: ./build/bin
run: |
# make sure OpenAL framework is signed
find . -name OpenAL -type f | while read xx; do codesign --force -s - $xx; done
find . -name OpenAL.framework -type d | while read xx; do codesign --force -s - $xx; done
# make sure dylibs are signed
find . -name \*.dylib -type f | while read xx; do codesign --force -s - $xx; done
# sign binaries
find . -perm +111 -type f | grep MacOS | while read xx; do codesign --force -s - $xx; done
# sign apps
find . -name \*.app -maxdepth 1 | while read xx; do codesign --force -s - $xx; done
- name: Package build result
working-directory: ./build/bin
# Use GNU tar here (part of runner image) to avoid weird corruption bug with bsdtar
# Ref: https://github.com/actions/runner-images/issues/2619
run: gtar -cvzf macos-build-${{ matrix.configuration }}-${{ matrix.arch }}.tgz *.app
- name: Upload build result
uses: actions/upload-artifact@v3
with:
name: mac-${{ matrix.configuration }}-${{ matrix.arch }}
path: ${{ github.workspace }}/build/bin/macos-build-${{ matrix.configuration }}-${{ matrix.arch }}.tgz
mac_zip:
name: Build Mac distribution zip
needs: build_mac
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-748b19d
strategy:
matrix:
arch: [x86_64, arm64]
steps:
- uses: actions/checkout@v2
name: Checkout
with:
submodules: true
fetch-depth: '0'
ref: '${{ github.ref }}'
- name: Download Release builds
uses: actions/download-artifact@v3
with:
name: mac-Release-${{ matrix.arch }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v3
with:
name: mac-FastDebug-${{ matrix.arch }}
path: builds
- name: Unpack builds
working-directory: ./builds
run: |
tar -xvzf macos-build-Release-${{ matrix.arch }}.tgz
tar -xvzf macos-build-FastDebug-${{ matrix.arch }}.tgz
- name: Create Distribution package
working-directory: ./builds
env:
ARCH: ${{ matrix.arch }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Mac
- name: Upload result package
working-directory: ./builds
env:
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
DATACORDER_USER: ${{ secrets.DATACORDER_USER }}
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }}
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh nightly
-421
View File
@@ -1,421 +0,0 @@
name: Build Release package
on:
push:
tags:
- 'release_*'
env:
QT_VERSION: 5.12.12
jobs:
create_release:
name: Create GitHub release
runs-on: ubuntu-latest
steps:
- name: Create Release
id: create_release
uses: actions/create-release@v1
# Creates a release package page on github
# create_release.inputs: (notable inputs)
# allowUpdates=false if true, update an existing release if it exists
# artifactErrorsFailBuild=false if true, fails the build should artifact read/write errors occur
# artifacts optional set of paths to artifacts to upload to the release. comma delimited.
# removeArtifacts=false if true, remove existing artifacts
# replaceArtifacts=false if true, replace/overwrite existing artifacts
# create_release.outputs:
# id id of the created release
# html_url HTML URL of the release
# upload_url FTP URL of the release where assets are uploaded
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
build_linux:
strategy:
matrix:
# Run this job for each configuration
# The current config running is accesible with `matrix.configuration`
configuration: [FastDebug, Release]
name: Linux
needs: create_release # Don't run this job until create_release is done and successful
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/linux_build:sha-1ff82e8
steps:
- uses: actions/checkout@v1
# checks-out your repository under $GITHUB_WORKSPACE, so your workflow can access it.
name: Checkout
with:
submodules: true # `true` to checkout submodules, `recursive` to recursively checkout submodules
ref: '${{ github.ref }}'
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: gcc-9
ENABLE_QTFRED: OFF
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
run: |
LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Generate AppImage
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
run: $GITHUB_WORKSPACE/ci/linux/generate_appimage.sh $GITHUB_WORKSPACE/build/install
- name: Upload build result
uses: actions/upload-artifact@v3
# Upload the url file for use with other runners
# upload-artifact.inputs:
# if-no-files-found=warn What to do if path fails to find any files.
# warn Display a warning but do not fail the action
# error Display an error and fail the action
# ignore No display, No fail
# retention-days=0 Days to keep the artifact.
# 0 Use default retention policy of the repo
# 1~90 Min 1, Max 90 days to keep the artifact unless changed by repo settings page
with:
name: linux-${{ matrix.configuration }}
path: ${{ github.workspace }}/build/install/*.AppImage
linux_zip:
name: Build Linux distribution zip
needs: build_linux
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-748b19d
steps:
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
fetch-depth: '0' # value 0 to fetch all history and tags for all branches
ref: '${{ github.ref }}'
- name: Download Release builds
# Grab the release builds
uses: actions/download-artifact@v3
with:
name: linux-Release
path: builds
- name: Download FastDebug builds
# Grab the debug builds
uses: actions/download-artifact@v3
with:
name: linux-FastDebug
path: builds
- name: Create Distribution package
# Zip both builds together
id: generate_package
working-directory: ./builds
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Linux
- name: Upload result package
# Stash the result to artifact filespace
uses: actions/upload-artifact@v3
with:
name: ${{ steps.generate_package.outputs.package_name }}
path: ${{ steps.generate_package.outputs.package_path }}
- name: Publish result package
# publish the zipped result
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: ${{ steps.generate_package.outputs.package_path }}
build_windows:
strategy:
matrix:
configuration: [FastDebug, Release]
arch: [Win32, x64]
simd: [SSE2, AVX]
needs: create_release
name: Windows
runs-on: windows-2019
steps:
- uses: actions/checkout@v1
# Checkout repo
name: Checkout
with:
submodules: true
ref: '${{ github.ref }}'
# - name: Cache Qt
# # Cache Qt
# id: cache-qt-win
# uses: actions/cache@v1
# with:
# path: ${{ github.workspace }}/../Qt
# key: ${{ runner.os }}-${{ matrix.arch }}-QtCache-${{ env.QT_VERSION }}
# - name: Install Qt (32 bit)
# # Install Qt 32bit if matrix.arch == Win32
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.arch == 'Win32' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win32_msvc2017
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
# - name: Install Qt (64 bit)
# # Install Qt 64bit if matrix.arch == x64
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.arch == 'x64' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win64_msvc2017_64
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCHITECTURE: ${{ matrix.arch }}
SIMD: ${{ matrix.simd }}
shell: bash
run: |
mkdir build
cd build
if [ "$ARCHITECTURE" = "Win32" ]; then
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH="ON" \
-DFSO_USE_VOICEREC="ON" -DMSVC_SIMD_INSTRUCTIONS="$SIMD" \
-DFSO_BUILD_QTFRED=OFF -DFSO_BUILD_TESTS=ON \
-DFSO_INSTALL_DEBUG_FILES="ON" -DFSO_BUILD_WITH_VULKAN="OFF" -A "$ARCHITECTURE" \
-G "Visual Studio 16 2019" -T "v142" ..
else
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH="ON" \
-DFSO_USE_VOICEREC="ON" -DMSVC_SIMD_INSTRUCTIONS="$SIMD" \
-DFSO_BUILD_QTFRED=OFF -DFSO_BUILD_TESTS=ON \
-DFSO_INSTALL_DEBUG_FILES="ON" -A "$ARCHITECTURE" \
-G "Visual Studio 16 2019" -T "v142" ..
fi
- name: Compile
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
shell: bash
run: |
cmake --build . --config "$CONFIGURATION" --target INSTALL -- /verbosity:minimal
ls -alR "$(pwd)/install"
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
shell: bash
run: ./bin/$CONFIGURATION/unittests --gtest_shuffle
- name: Upload build result
uses: actions/upload-artifact@v3
with:
name: windows-${{ matrix.configuration }}-${{ matrix.arch }}-${{ matrix.simd }}
path: ${{ github.workspace }}/build/install/*
windows_zip:
name: Build Windows distribution zip
needs: build_windows
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-748b19d
strategy:
fail-fast: false # Run the other jobs in the matrix instead of failing them
matrix:
arch: [Win32, x64]
simd: [SSE2, AVX]
steps:
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
fetch-depth: '0'
ref: '${{ github.ref }}'
- name: Download Release builds
uses: actions/download-artifact@v3
with:
name: windows-Release-${{ matrix.arch }}-${{ matrix.simd }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v3
with:
name: windows-FastDebug-${{ matrix.arch }}-${{ matrix.simd }}
path: builds
- name: Create Distribution package
id: generate_package
working-directory: ./builds
shell: bash
env:
ARCH: ${{ matrix.arch }}
SIMD: ${{ matrix.simd }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Windows
- name: Upload result package
uses: actions/upload-artifact@v3
with:
name: ${{ steps.generate_package.outputs.package_name }}
path: ${{ steps.generate_package.outputs.package_path }}
- name: Upload debug package
uses: actions/upload-artifact@v3
with:
name: ${{ steps.generate_package.outputs.debug_name }}
path: ${{ steps.generate_package.outputs.debug_path }}
- name: Publish packages
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
${{ steps.generate_package.outputs.package_path }}
${{ steps.generate_package.outputs.debug_path }}
build_mac:
strategy:
matrix:
configuration: [FastDebug, Release]
compiler: [clang]
arch: [x86_64, arm64]
name: Mac
needs: create_release
runs-on: macos-latest
steps:
# - name: Cache Qt
# id: cache-qt-mac
# uses: actions/cache@v1
# with:
# path: ${{ github.workspace }}/../Qt
# key: ${{ runner.os }}-QtCache-${{ env.QT_VERSION }}
# - name: Install Qt
# uses: jurplel/install-qt-action@v2
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# cached: ${{ steps.cache-qt-mac.outputs.cache-hit }}
# setup-python: 'false'
# aqtversion: ==1.1.3
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
fetch-depth: 0
ref: '${{ github.ref }}'
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
ARCHITECTURE: ${{ matrix.arch }}
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
ENABLE_QTFRED: OFF
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCH: ${{ matrix.arch }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Sign builds
working-directory: ./build/bin
run: |
# make sure OpenAL framework is signed
find . -name OpenAL -type f | while read xx; do codesign --force -s - $xx; done
find . -name OpenAL.framework -type d | while read xx; do codesign --force -s - $xx; done
# make sure dylibs are signed
find . -name \*.dylib -type f | while read xx; do codesign --force -s - $xx; done
# sign binaries
find . -perm +111 -type f | grep MacOS | while read xx; do codesign --force -s - $xx; done
# sign apps
find . -name \*.app -maxdepth 1 | while read xx; do codesign --force -s - $xx; done
- name: Package build result
working-directory: ./build/bin
# Use GNU tar here (part of runner image) to avoid weird corruption bug with bsdtar
# Ref: https://github.com/actions/runner-images/issues/2619
run: gtar -cvzf macos-build-${{ matrix.configuration }}-${{ matrix.arch }}.tgz *.app
- name: Upload build result
uses: actions/upload-artifact@v3
with:
name: mac-${{ matrix.configuration }}-${{ matrix.arch }}
path: ${{ github.workspace }}/build/bin/macos-build-${{ matrix.configuration }}-${{ matrix.arch }}.tgz
mac_zip:
name: Build Mac distribution zip
needs: build_mac
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-748b19d
strategy:
matrix:
arch: [x86_64, arm64]
steps:
- uses: actions/checkout@v2
name: Checkout
with:
submodules: true
fetch-depth: '0'
ref: '${{ github.ref }}'
- name: Download Release builds
uses: actions/download-artifact@v3
with:
name: mac-Release-${{ matrix.arch }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v3
with:
name: mac-FastDebug-${{ matrix.arch }}
path: builds
- name: Unpack builds
working-directory: ./builds
run: |
tar -xvzf macos-build-Release-${{ matrix.arch }}.tgz
tar -xvzf macos-build-FastDebug-${{ matrix.arch }}.tgz
- name: Create Distribution package
id: generate_package
working-directory: ./builds
env:
ARCH: ${{ matrix.arch }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Mac
- name: Upload result package
uses: actions/upload-artifact@v3
with:
name: ${{ steps.generate_package.outputs.package_name }}
path: ${{ steps.generate_package.outputs.package_path }}
- name: Publish result package
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: ${{ steps.generate_package.outputs.package_path }}
post_build:
name: Post builds to Nebula and Forum
needs: [linux_zip, windows_zip, mac_zip]
uses: ./.github/workflows/post-build-release.yaml
with:
linux_result: ${{ needs.linux_zip.result }}
windows_result: ${{ needs.windows_zip.result }}
mac_result: ${{ needs.mac_zip.result }}
releaseTag: ${{ github.ref_name }}
secrets: inherit
-349
View File
@@ -1,349 +0,0 @@
name: Build Test package
on:
push:
branches:
- 'test/*'
env:
QT_VERSION: 5.12.12
jobs:
build_linux:
strategy:
matrix:
configuration: [FastDebug, Release]
name: Linux
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/linux_build:sha-1ff82e8
steps:
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
- name: Set up test version
shell: bash
run: |
[[ "${{ github.ref }}" =~ ^refs\/heads\/test\/(.*)$ ]]
# Override the revision string so that the builds are named correctly
echo "set(FSO_VERSION_REVISION_STR ${BASH_REMATCH[1]})" > "version_override.cmake"
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: gcc-9
ENABLE_QTFRED: OFF
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
run: |
LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Generate AppImage
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
run: $GITHUB_WORKSPACE/ci/linux/generate_appimage.sh $GITHUB_WORKSPACE/build/install
- name: Upload build result
uses: actions/upload-artifact@v3
with:
name: linux-${{ matrix.configuration }}
path: ${{ github.workspace }}/build/install/*.AppImage
linux_zip:
name: Build Linux distribution zip
needs: build_linux
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-748b19d
steps:
- uses: actions/checkout@v2
name: Checkout
with:
submodules: true
fetch-depth: '0'
ref: '${{ github.ref }}'
- name: Download Release builds
uses: actions/download-artifact@v3
with:
name: linux-Release
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v3
with:
name: linux-FastDebug
path: builds
- name: Create Distribution package
working-directory: ./builds
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Linux
- name: Upload result package
working-directory: ./builds
env:
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
DATACORDER_USER: ${{ secrets.DATACORDER_USER }}
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }}
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh test
build_windows:
strategy:
matrix:
configuration: [FastDebug, Release]
arch: [Win32, x64]
simd: [SSE2]
name: Windows
runs-on: windows-2019
steps:
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
- name: Set up test version
shell: bash
run: |
[[ "${{ github.ref }}" =~ ^refs\/heads\/test\/(.*)$ ]]
# Override the revision string so that the builds are named correctly
echo "set(FSO_VERSION_REVISION_STR ${BASH_REMATCH[1]})" > "version_override.cmake"
# - name: Cache Qt
# id: cache-qt-win
# uses: actions/cache@v1
# with:
# path: ${{ github.workspace }}/../Qt
# key: ${{ runner.os }}-${{ matrix.arch }}-QtCache-${{ env.QT_VERSION }}
# - name: Install Qt (32 bit)
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.arch == 'Win32' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win32_msvc2017
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
# - name: Install Qt (64 bit)
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.arch == 'x64' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win64_msvc2017_64
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCHITECTURE: ${{ matrix.arch }}
SIMD: ${{ matrix.simd }}
shell: bash
run: |
mkdir build
cd build
if [ "$ARCHITECTURE" = "Win32" ]; then
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH="ON" \
-DFSO_USE_VOICEREC="ON" -DMSVC_SIMD_INSTRUCTIONS="$SIMD" \
-DFSO_BUILD_QTFRED=OFF -DFSO_BUILD_TESTS=ON \
-DFSO_INSTALL_DEBUG_FILES="ON" -DFSO_BUILD_WITH_VULKAN="OFF" -A "$ARCHITECTURE" \
-G "Visual Studio 16 2019" -T "v142" ..
else
cmake -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DFSO_USE_SPEECH="ON" \
-DFSO_USE_VOICEREC="ON" -DMSVC_SIMD_INSTRUCTIONS="$SIMD" \
-DFSO_BUILD_QTFRED=OFF -DFSO_BUILD_TESTS=ON \
-DFSO_INSTALL_DEBUG_FILES="ON" -A "$ARCHITECTURE" \
-G "Visual Studio 16 2019" -T "v142" ..
fi
- name: Compile
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
shell: bash
run: |
cmake --build . --config "$CONFIGURATION" --target INSTALL -- /verbosity:minimal
ls -alR "$(pwd)/install"
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
shell: bash
run: ./bin/$CONFIGURATION/unittests --gtest_shuffle
- name: Upload build result
uses: actions/upload-artifact@v3
with:
name: windows-${{ matrix.configuration }}-${{ matrix.arch }}-${{ matrix.simd }}
path: ${{ github.workspace }}/build/install/*
windows_zip:
name: Build Windows distribution zip
needs: build_windows
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-748b19d
strategy:
matrix:
arch: [Win32, x64]
simd: [SSE2]
steps:
- uses: actions/checkout@v2
name: Checkout
with:
submodules: true
fetch-depth: '0'
ref: '${{ github.ref }}'
- name: Download Release builds
uses: actions/download-artifact@v3
with:
name: windows-Release-${{ matrix.arch }}-${{ matrix.simd }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v3
with:
name: windows-FastDebug-${{ matrix.arch }}-${{ matrix.simd }}
path: builds
- name: Create Distribution package
working-directory: ./builds
shell: bash
env:
ARCH: ${{ matrix.arch }}
SIMD: ${{ matrix.simd }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Windows
- name: Upload result package
working-directory: ./builds
shell: bash
env:
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
DATACORDER_USER: ${{ secrets.DATACORDER_USER }}
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }}
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh test
build_mac:
strategy:
matrix:
configuration: [FastDebug, Release]
compiler: [clang]
arch: [x86_64, arm64]
name: Mac
runs-on: macos-latest
steps:
# - name: Cache Qt
# id: cache-qt-mac
# uses: actions/cache@v1
# with:
# path: ${{ github.workspace }}/../Qt
# key: ${{ runner.os }}-QtCache-${{ env.QT_VERSION }}
# - name: Install Qt
# uses: jurplel/install-qt-action@v2
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# cached: ${{ steps.cache-qt-mac.outputs.cache-hit }}
# setup-python: 'false'
# aqtversion: ==1.1.3
# py7zrversion: '==0.19.*'
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
fetch-depth: 0
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: Set up test version
shell: bash
run: |
[[ "${{ github.ref }}" =~ ^refs\/heads\/test\/(.*)$ ]]
# Override the revision string so that the builds are named correctly
echo "set(FSO_VERSION_REVISION_STR ${BASH_REMATCH[1]})" > "version_override.cmake"
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
ARCHITECTURE: ${{ matrix.arch }}
ENABLE_QTFRED: OFF
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCH: ${{ matrix.arch }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Sign builds
working-directory: ./build/bin
run: |
# make sure OpenAL framework is signed
find . -name OpenAL -type f | while read xx; do codesign --force -s - $xx; done
find . -name OpenAL.framework -type d | while read xx; do codesign --force -s - $xx; done
# make sure dylibs are signed
find . -name \*.dylib -type f | while read xx; do codesign --force -s - $xx; done
# sign binaries
find . -perm +111 -type f | grep MacOS | while read xx; do codesign --force -s - $xx; done
# sign apps
find . -name \*.app -maxdepth 1 | while read xx; do codesign --force -s - $xx; done
- name: Package build result
working-directory: ./build/bin
# Use GNU tar here (part of runner image) to avoid weird corruption bug with bsdtar
# Ref: https://github.com/actions/runner-images/issues/2619
run: gtar -cvzf macos-build-${{ matrix.configuration }}-${{ matrix.arch }}.tgz *.app
- name: Upload build result
uses: actions/upload-artifact@v3
with:
name: mac-${{ matrix.configuration }}-${{ matrix.arch }}
path: ${{ github.workspace }}/build/bin/macos-build-${{ matrix.configuration }}-${{ matrix.arch }}.tgz
mac_zip:
name: Build Mac distribution zip
needs: build_mac
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/sftp_upload:sha-748b19d
strategy:
matrix:
arch: [x86_64, arm64]
steps:
- uses: actions/checkout@v2
name: Checkout
with:
submodules: true
fetch-depth: '0'
ref: '${{ github.ref }}'
- name: Download Release builds
uses: actions/download-artifact@v3
with:
name: mac-Release-${{ matrix.arch }}
path: builds
- name: Download FastDebug builds
uses: actions/download-artifact@v3
with:
name: mac-FastDebug-${{ matrix.arch }}
path: builds
- name: Unpack builds
working-directory: ./builds
run: |
tar -xvzf macos-build-Release-${{ matrix.arch }}.tgz
tar -xvzf macos-build-FastDebug-${{ matrix.arch }}.tgz
- name: Create Distribution package
working-directory: ./builds
env:
ARCH: ${{ matrix.arch }}
run: $GITHUB_WORKSPACE/ci/linux/create_dist_pack.sh Mac
- name: Upload result package
working-directory: ./builds
env:
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
DATACORDER_USER: ${{ secrets.DATACORDER_USER }}
DATACORDER_SSHPASS: ${{ secrets.DATACORDER_PASSWORD }}
run: $GITHUB_WORKSPACE/ci/linux/upload_dist_package.sh test
-56
View File
@@ -1,56 +0,0 @@
name: Build caches for master
on:
push:
branches:
- master
env:
QT_VERSION: 5.12.12
jobs:
build_linux:
strategy:
matrix:
configuration: [Debug, Release]
compiler: [gcc-9, gcc-13, clang-16]
cmake_options: [""]
include:
# Also include configurations that check if the code compiles without the graphics backends
- configuration: Debug
compiler: gcc-13
cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=OFF
- configuration: Release
compiler: gcc-13
cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=OFF
name: Linux
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/linux_build:sha-1ff82e8
steps:
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
- name: ccache
uses: hendrikmuhs/ccache-action@v1
with:
key: ${{ runner.os }}-${{ matrix.configuration }}-${{ matrix.compiler }}
- name: Configure ccache
run: |
ccache --set-config=sloppiness=pch_defines,time_macros
ccache -p
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
CCACHE_PATH: /usr/local/bin/ccache
ENABLE_QTFRED: ON
Qt5_DIR: /qt/${{ env.QT_VERSION }}/gcc_64/lib/cmake/Qt5
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
- name: Show CCache statistics
run: ccache --show-stats
-82
View File
@@ -1,82 +0,0 @@
name: Post Release builds
on:
workflow_call:
# Trigger when called by other workflows
inputs:
linux_result: # job.result; either success, failure, canceled or skipped
required: true
type: string
windows_result: # job.result
required: true
type: string
mac_result: # job.result
required: true
type: string
releaseTag:
required: true
type: string
workflow_dispatch:
# Trigger manually from Github
inputs:
releaseTag:
description: Release Tag
required: true
type: string
env:
GITHUB_REPO: ${{ github.repository }} # repo this workflow was called from
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
NEBULA_USER: ${{ secrets.NEBULA_USER }}
NEBULA_PASSWORD: ${{ secrets.NEBULA_PASSWORD }}
HLP_API: ${{ secrets.HLP_API }}
HLP_KEY: ${{ secrets.HLP_KEY }}
RELEASE_TAG: ${{ inputs.releaseTag }}
jobs:
post_builds:
name: Post builds on Nebula and the forums
runs-on: ubuntu-latest
steps:
- name: Caller
# Name of what called this yaml. Used to debug auto/manual step being triggered
run: echo "github.event_name= ${{ github.event_name }}"
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: '0'
ref: ${{ env.RELEASE_TAG }}
- name: Install Python dependencies
run: pip install -r ci/post/requirements.txt
- name: Post Builds (Auto trigger)
if: ${{ (github.event_name == 'workflow_call') || (github.event_name == 'push') }}
env:
LINUX_RESULT: ${{ inputs.linux_result }}
WINDOWS_RESULT: ${{ inputs.windows_result }}
MAC_RESULT: ${{ inputs.mac_result }}
GITHUB_REPO: ${{ github.repository }} # repo this workflow was called from
INDIEGAMES_USER: ${{ secrets.INDIEGAMES_USER }}
INDIEGAMES_SSHPASS: ${{ secrets.INDIEGAMES_PASSWORD }}
NEBULA_USER: ${{ secrets.NEBULA_USER }}
NEBULA_PASSWORD: ${{ secrets.NEBULA_PASSWORD }}
HLP_API: ${{ secrets.HLP_API }}
HLP_KEY: ${{ secrets.HLP_KEY }}
RELEASE_TAG: ${{ inputs.releaseTag }}
run: python ci/post/main.py release
- name: Post Builds (Manual trigger)
if: ${{ github.event_name == 'workflow_dispatch' }}
# assume user knows what they're doing...
env:
LINUX_RESULT: success
WINDOWS_RESULT: success
MAC_RESULT: success
run: |
echo "releaseTag= ${{ env.RELEASE_TAG }}"
echo "repository= ${{ github.repository }}"
python ci/post/main.py release
-236
View File
@@ -1,236 +0,0 @@
name: Check a pull request
on: [pull_request]
env:
QT_VERSION: 5.12.12
jobs:
build_linux:
strategy:
matrix:
configuration: [Debug, Release]
compiler: [gcc-9, gcc-13, clang-16]
cmake_options: [""]
include:
# Also include configurations that check if the code compiles without the graphics backends
- configuration: Debug
compiler: gcc-13
cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=OFF
- configuration: Release
compiler: gcc-13
cmake_options: -DFSO_BUILD_WITH_OPENGL=OFF -DFSO_BUILD_WITH_VULKAN=OFF
name: Linux
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/linux_build:sha-1ff82e8
steps:
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
fetch-depth: 0
- name: ccache
uses: hendrikmuhs/ccache-action@v1
with:
key: ${{ runner.os }}-${{ matrix.configuration }}-${{ matrix.compiler }}
save: false # Caches are created by a separate job and only restored for PRs
verbose: 1
- name: Configure ccache
run: ccache --set-config=sloppiness=pch_defines,time_macros
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
CCACHE_PATH: /usr/local/bin/ccache
ENABLE_QTFRED: ON
Qt5_DIR: /qt/${{ env.QT_VERSION }}/gcc_64/lib/cmake/Qt5
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja -k 20 all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Show CCache statistics
run: ccache --show-stats
- name: Run Clang Tidy
# Clang-tidy reuses the precompiled headers so this only makes sense for the clang compilers
if: startsWith(matrix.compiler, 'clang-')
run: $GITHUB_WORKSPACE/ci/linux/clang_tidy.sh ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}
- name: Process clang-tidy warnings
if: startsWith(matrix.compiler, 'clang-')
uses: asarium/clang-tidy-action@v1
with:
fixesFile: clang-fixes.yaml
build_windows:
strategy:
matrix:
configuration: [Debug, Release]
compiler: [MSVC]
arch: [Win32, x64]
name: Windows
runs-on: windows-2019
steps:
- name: Prepare Environment
run: choco install ninja
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
# - name: Cache Qt
# id: cache-qt-win
# uses: actions/cache@v1
# with:
# path: ${{ github.workspace }}/../Qt
# key: ${{ runner.os }}-${{ matrix.arch }}-QtCache-${{ env.QT_VERSION }}
# - name: Install Qt (32 bit)
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.compiler == 'MSVC' && matrix.arch == 'Win32' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win32_msvc2017
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
# - name: Install Qt (64 bit)
# uses: jurplel/install-qt-action@v2
# if: ${{ matrix.compiler == 'MSVC' && matrix.arch == 'x64' }}
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# arch: win64_msvc2017_64
# cached: ${{ steps.cache-qt-win.outputs.cache-hit }}
# aqtversion: ==0.8
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
ARCHITECTURE: ${{ matrix.arch }}
shell: bash
run: |
mkdir build
cd build
if [ "$COMPILER" = "MinGW" ]; then
if [ "$ARCHITECTURE" = "Win32" ]; then
cmake -DFSO_USE_SPEECH="OFF" -DFSO_FATAL_WARNINGS="ON" -DFSO_USE_VOICEREC="OFF" -DFSO_BUILD_TESTS="ON" \
-DFSO_BUILD_FRED2="OFF" -DFSO_BUILD_WITH_VULKAN="OFF" -DCMAKE_BUILD_TYPE=$CONFIGURATION -G "Ninja" ..
else
cmake -DFSO_USE_SPEECH="OFF" -DFSO_FATAL_WARNINGS="ON" -DFSO_USE_VOICEREC="OFF" -DFSO_BUILD_TESTS="ON" \
-DFSO_BUILD_FRED2="OFF" -DCMAKE_BUILD_TYPE=$CONFIGURATION -G "Ninja" ..
fi
else
if [ "$ARCHITECTURE" = "Win32" ]; then
cmake -DFSO_USE_SPEECH="ON" -DFSO_FATAL_WARNINGS="ON" -DFSO_USE_VOICEREC="OFF" -DFSO_BUILD_TESTS="ON" \
-DMSVC_SIMD_INSTRUCTIONS=SSE2 -DFSO_BUILD_FRED2="ON" -DFSO_BUILD_WITH_VULKAN="OFF" -G "Visual Studio 16 2019" \
-DFSO_BUILD_QTFRED=OFF -T "v142" -A "$ARCHITECTURE" ..
else
cmake -DFSO_USE_SPEECH="ON" -DFSO_FATAL_WARNINGS="ON" -DFSO_USE_VOICEREC="OFF" -DFSO_BUILD_TESTS="ON" \
-DMSVC_SIMD_INSTRUCTIONS=SSE2 -DFSO_BUILD_FRED2="ON" -G "Visual Studio 16 2019" \
-DFSO_BUILD_QTFRED=OFF -T "v142" -A "$ARCHITECTURE" ..
fi
fi
- name: Compile
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
shell: bash
run: |
if [ "$COMPILER" = "MinGW" ]; then
cmake --build . --config "$CONFIGURATION"
else
cmake --build . --config "$CONFIGURATION" -- /verbosity:minimal
fi
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
shell: bash
run: |
if [ "$COMPILER" = "MinGW" ]; then
./bin/unittests --gtest_shuffle
else
"./bin/$CONFIGURATION/unittests" --gtest_shuffle
fi
build_mac:
strategy:
matrix:
configuration: [Debug, Release]
compiler: [clang]
arch: [x86_64, arm64]
cmake_options: [""]
name: Mac
runs-on: macos-latest
steps:
# - name: Cache Qt
# id: cache-qt-mac
# uses: actions/cache@v1
# with:
# path: ${{ github.workspace }}/../Qt
# key: ${{ runner.os }}-QtCache-${{ env.QT_VERSION }}
# - name: Install Qt
# uses: jurplel/install-qt-action@v2
# with:
# version: ${{ env.QT_VERSION }}
# dir: ${{ github.workspace }}/..
# cached: ${{ steps.cache-qt-mac.outputs.cache-hit }}
# setup-python: 'false'
# aqtversion: ==1.1.3
# py7zrversion: '==0.19.*'
- uses: actions/checkout@v1
name: Checkout
with:
submodules: true
fetch-depth: 0
- name: ccache
uses: hendrikmuhs/ccache-action@v1
with:
key: ${{ runner.os }}-${{ matrix.configuration }}-${{ matrix.compiler }}-${{ matrix.arch }}
save: false # Caches are created by a separate job and only restored for PRs
- name: Prepare Vulkan SDK
uses: humbletim/[email protected]
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers, Vulkan-Loader
vulkan-use-cache: true
- name: Configure CMake
env:
CONFIGURATION: ${{ matrix.configuration }}
COMPILER: ${{ matrix.compiler }}
ARCHITECTURE: ${{ matrix.arch }}
JOB_CMAKE_OPTIONS: ${{ matrix.cmake_options }}
ENABLE_QTFRED: OFF
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Compile
working-directory: ./build
run: LD_LIBRARY_PATH=$Qt5_DIR/lib:$LD_LIBRARY_PATH ninja all
- name: Run Tests
working-directory: ./build
env:
CONFIGURATION: ${{ matrix.configuration }}
ARCH: ${{ matrix.arch }}
XDG_RUNTIME_DIR: /root
run: $GITHUB_WORKSPACE/ci/linux/run_tests.sh
- name: Run Clang Tidy
# Clang-tidy reuses the precompiled headers so this only makes sense for the clang compilers
if: startsWith(matrix.compiler, 'clang-')
run: $GITHUB_WORKSPACE/ci/linux/clang_tidy.sh ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}
- name: Process clang-tidy warnings
if: startsWith(matrix.compiler, 'clang-')
uses: asarium/clang-tidy-action@v1
with:
fixesFile: clang-fixes.yaml
@@ -1,69 +0,0 @@
name: Weekly Coverity Scan for Freespace Open
# adapted from code by "albert-github" on the doxygen repository
# many thanks for figuring this out first so it could be less painful for us!
# keep this from running on everyone's fork
# if: github.ref == 'refs/heads/master'
#This mode is for testing
#on: [push, pull_request]
# In production, push on a specific schedule
on:
schedule:
- cron: "57 18 * * *" # Run once per a week on Friday morning (4 AM EST), to avoid Coverity's submission limits
env:
QT_VERSION: 5.12.12
coverity_email: [email protected]
coverity_token: ${{ secrets.COVERITY_TOKEN }}
jobs:
build:
name: Build FSO With Coverity Wrapper
runs-on: ubuntu-latest
container: ghcr.io/scp-fs2open/linux_build:sha-1ff82e8
strategy:
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v1
with:
submodules: true # `true` to checkout submodules, `recursive` to recursively checkout submodules
# pipe results of wget to a log file because it's very verbose and rarely fails
- name: Install Coverity
run: |
wget -o wgetlog.txt -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=${{ env.coverity_token }}&project=scp-fs2open/fs2open.github.com" -O coverity_tool.tgz
mkdir cov-scan
tar ax -f coverity_tool.tgz --strip-components=1 -C cov-scan
- name: Setup Environment
run: |
echo "$(pwd)/cov-scan/bin" >> $GITHUB_PATH
echo "NPROC=$(getconf _NPROCESSORS_ONLN)" >> $GITHUB_ENV
- name: Configure CMake for FSO
env:
CONFIGURATION: FastDebug
COMPILER: gcc-9
ENABLE_QTFRED: OFF
run: $GITHUB_WORKSPACE/ci/linux/configure_cmake.sh
- name: Build FSO with Coverity Wrapper
working-directory: ./build
env:
CONFIGURATION: Release
run: cov-build --dir cov-int ninja -k 20 all
- name: Compress Results
working-directory: ./build
run: tar zcf cov-scan.tgz cov-int
#Comment this out when testing to keep from running into upload limits
- name: Upload to Coverity
run: |
cd build
curl --form token=${{ env.coverity_token }} --form email=${{ env.coverity_email }} --form [email protected] --form version="$(git rev-parse HEAD)" --form description="Automatic GHA scan" 'https://scan.coverity.com/builds?project=scp-fs2open/fs2open.github.com'
+37 -30
View File
@@ -1,3 +1,34 @@
*.o
*.a
.dirstamp
libtool
ltmain.sh
m4/libtool.m4
m4/ltoptions.m4
m4/ltsugar.m4
m4/ltversion.m4
m4/lt~obsolete.m4
compile
.deps/
code/.deps/
Makefile
Makefile.in
aclocal.m4
autom4te.cache/
config.*
code/fs2_open_*
code/wxFRED2_*
configure
depcomp
install-sh
missing
.svn
*.layout
projects/Xcode4/Frameworks/
projects/Xcode/Frameworks/
#========
#OS junk files
[Tt]humbs.db
*.DS_Store
@@ -26,9 +57,10 @@
*.unsuccessfulbuild
ipch/
[Oo]bj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
*.VC.db
*.VC.VC.opendb
#MonoDevelop
*.pidb
@@ -105,7 +137,7 @@ packages/
*.swp
# *.lock - this is used and abused by many editors for many different things.
# For the main ones I use (e.g. Eclipse), it should be excluded
# For the main ones I use (e.g. Eclipse), it should be excluded
# from source-control, but YMMV
*.lock
@@ -117,7 +149,7 @@ packages/
####
# Xcode temporary files that should never be committed
#
#
# NB: NIB/XIB files still exist even on Storyboard projects, so we want this...
*~.nib
@@ -231,31 +263,6 @@ xcuserdata
# .xccheckout
#
# Per http://stackoverflow.com/questions/18340453/should-xccheckout-files-in-xcode5-be-ignored-under-vcs
#
#
*.xccheckout
####
# Visual Studio Code
.vscode
####
# Documentation
#
documentation/doxygen/*
!documentation/doxygen/.gitkeep
.idea/*
projects/*
/.vs
CMakeSettings.json
CMakePresets.json
# Weird files created by Linux
.fuse_hidden*
# This gets ignored by one of the rules above for some reason...
!/code/scripting/lua/LuaConvert.h
!/code/debugconsole/
!/docker/build
-7
View File
@@ -1,7 +0,0 @@
[submodule "cmake/external/rpavlik-cmake-modules"]
path = cmake/external/rpavlik-cmake-modules
url = https://github.com/asarium/cmake-modules.git
[submodule "lib/libRocket"]
path = lib/libRocket
url = https://github.com/asarium/libRocket.git
+29
View File
@@ -0,0 +1,29 @@
Original source (Freespace 2) by Volition, Inc.; see "credits.tbl"
Modifications by the FreeSpace Source Code Project (FSSCP)
http://fs2source.warpcore.org
FS2_OPEN STAFF:
Project leader:
Edward "Inquisitor" Gardner
Programmers:
"Bobboau"
Dennis "DTP" Pedersen
Ian "Goober5000" Warfield
Joe "Righteous1" Dowd
Mike "penguin" Harris
"Mysterial"
"PhReAk"
Thomas "Random Tiger" Whittaker
Will "Unknown PLayer" Rousnel
"WMCoolmon"
Web support:
Icefire and the staff at Volitionwatch.com
Alex "Thunder" Avery and the staff at Hard Light Productions
Special thanks to:
Volition for making FS2 such a great game
Dave Baranec for giving us the code and keeping us sanity checked
-41
View File
@@ -1,41 +0,0 @@
## FreeSpace
FreeSpace: The Great War (Released 1998) and FreeSpace 2 (1999) are mission-based space combat simulators, like X-Wing/TIE Fighter and Wing Commander. Among the greatest games of the genre, they were also effectively the last.
The FreeSpace series follows humanity and their Vasudan allies as they fight to withstand the xenocidal, enigmatic Shivans, a species of unknown origin, vast technological capability, and seemingly limitless malice.
## FreeSpace Open
Thanks to Volition's generosity, we've continued development of FreeSpace 2 as FreeSpace Open, building graphical enhancements to bring the original games up to modern standards, telling new stories set in the FreeSpace universe and original worlds, and creating spectacular total conversions that let players fly in the beloved universes of Babylon 5, Battlestar Galactica, Wing Commander, and Star Wars.
## Hard-Light Productions
HLP is a fan community built on love and open-source code. We're dedicated to bringing modders together and giving them a place to share their own hard work and draw inspiration from the work of others. Thanks to Volition's generosity, we've continued development of FreeSpace 2 as FreeSpace Open, building graphical enhancements to bring the original games up to modern standards, telling new stories set in the FreeSpace universe and original worlds, and creating spectacular total conversions that let players fly in the beloved universes of Babylon 5, Battlestar Galactica, Wing Commander, and Star Wars.
Find us at:
- Our [website](http://www.hard-light.net/) and [forums](http://www.hard-light.net/forums/)
- [Discord](https://discord.gg/YNVP3WR)
- [Facebook](https://www.facebook.com/groups/Hardlightproductions/)
- [Youtube](https://www.youtube.com/channel/UCxKkd609hDtY6yNetR1iT4w)
- [Reddit](https://www.reddit.com/r/freespace/)
- [Twitter](https://twitter.com/hardlightpro)
- [IRC](irc://irc.esper.net/hard-light)
## How to get the game
FreeSpace Open requires a retail installation of FreeSpace 2, which is available at the following stores:
- [GOG.com](https://www.gog.com/game/freespace_2)
- [Steam](https://store.steampowered.com/app/273620/Freespace_2/)
After installing retail FS2, use [Knossos](https://fsnebula.org/knossos/) to upgrade to the most recent release of FSO. Knossos is an advanced mod manager and launcher for FSO.
## Improvements
The new open source game engine has several distingushing features including:
- Linux and Mac OS X support
- OpenGL support
- OpenAL audio support
- Easy mod installation
- OGG support
- Hardware transform, clipping, and lighting
## The FreeSpace Upgrade Project
While the SCP improves the code of the game engine to enable new and exciting features, the FreeSpace Upgrade Project (FSU) creates material that takes advantage of the improved game engine.
The FSU improves the ships, effects, and background elements of FreeSpace 2. Every now and then these improvements are released as a pack called MediaVPs. These assorted improvements enhance the graphics of the game.
While the best way to experience the FSU is by playing the game with it, you can watch this [comparison video](https://www.youtube.com/watch?v=RM1YC_gK-qo) between 1999 and 2019 to have an idea of how much more beautiful FSU makes the game.
^(Much of this content was pulled from existing sources, such as InsaneBaron's "What Is Hard Light Productions" [thread](https://www.hard-light.net/forums/index.php?topic=86650.0), the Wiki's [Getting Started article](https://wiki.hard-light.net/index.php/Getting_started) and more.)
-8
View File
@@ -1,8 +0,0 @@
Original source (Freespace 2) by Volition, Inc.; see "`credits.tbl`"
Modifications by the FreeSpace 2 Source Code Project [(FSO SCP)](https://www.hard-light.net/forums/index.php?board=50.0)
[Project Contributors](https://github.com/scp-fs2open/fs2open.github.com/graphs/contributors)
Special thanks to:
Volition for making FS2 such a great game
Dave Baranec for giving us the code and keeping us sanity checked
-225
View File
@@ -1,225 +0,0 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.4)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# Make sure the source and binary directory are not the sample
if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
message(FATAL_ERROR "Binary and source directory can not be the same! Choose another build directory.")
endif()
include(cmake/util.cmake)
include(cmake/embed_file.cmake)
# Set a few policies
set_policy(CMP0051 NEW)
set_policy(CMP0053 NEW)
set_policy(CMP0054 NEW)
SET(FSO_PROJECT_DESCRIPTION "Open source project based on the original FreeSpace 2 source code.")
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Executable output path")
SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Library output path")
# CMAKE_INSTALL_PREFIX is defined but also overwritten by the PROJECT command so we need to set it later
IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
SET(RESET_INSTALL_PREFIX TRUE)
ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
# Reset this variable
SET(TARGET_COPY_FILES "" CACHE INTERNAL "" FORCE)
SET(TARGET_COPY_DIRS "" CACHE INTERNAL "" FORCE)
### Define options and editable variables in the section below:
# This is only needed for single configuration generators so don't annoy others
if(NOT CMAKE_BUILD_TYPE AND NOT DEFINED CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Default build configuration used." FORCE)
message(WARNING "CMAKE_BUILD_TYPE was not specified, defaulting to Release configuration.")
endif(NOT CMAKE_BUILD_TYPE AND NOT DEFINED CMAKE_CONFIGURATION_TYPES)
# Override standard CMake configurations
set(CMAKE_CONFIGURATION_TYPES Debug Release FastDebug CACHE STRING "Available configurations" FORCE)
set(FSO_LANGUAGES C CXX)
if(APPLE)
set(FSO_LANGUAGES ${FSO_LANGUAGES} OBJC OBJCXX)
endif()
PROJECT(FS2_Open LANGUAGES ${FSO_LANGUAGES})
IF(CMAKE_CROSSCOMPILING)
SET(IMPORT_EXE_DIR "IMPORT_EXE_DIR-NOTFOUND" CACHE FILEPATH "Required for a cross compiling build, point to binary directory of a cmake build for the real OS")
INCLUDE(${IMPORT_EXE_DIR}/ImportExecutables.cmake)
ENDIF(CMAKE_CROSSCOMPILING)
# Check if the external modules exists
IF(NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/cmake/external/rpavlik-cmake-modules/launcher-templates")
message(FATAL_ERROR "External submodules could not be found. Please make sure you have updated your submodules.")
endif()
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/finder")
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/external/rpavlik-cmake-modules")
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/external/cotire")
IF(RESET_INSTALL_PREFIX)
IF(NOT $ENV{FS2PATH} STREQUAL "")
IF(NOT IS_DIRECTORY $ENV{FS2PATH})
MESSAGE(WARNING "The path '$ENV{FS2PATH}' of the environment variable FS2PATH does not point to a directory! Install prefix wasn't set.")
ELSE(NOT IS_DIRECTORY $ENV{FS2PATH})
SET(CMAKE_INSTALL_PREFIX "$ENV{FS2PATH}" CACHE FILEPATH "Install path" FORCE)
FILE(TO_CMAKE_PATH ${CMAKE_INSTALL_PREFIX} CMAKE_INSTALL_PREFIX)
ENDIF(NOT IS_DIRECTORY $ENV{FS2PATH})
ELSE(NOT $ENV{FS2PATH} STREQUAL "")
MESSAGE(STATUS "NO FS2PATH environment variable found, you can define this to point to your freespace install but it is not required.")
ENDIF(NOT $ENV{FS2PATH} STREQUAL "")
ENDIF(RESET_INSTALL_PREFIX)
IF(WIN32 OR APPLE)
OPTION(FSO_USE_SPEECH "Use text-to-speach libraries" ON)
ENDIF(WIN32 OR APPLE)
IF (WIN32)
OPTION(FSO_USE_VOICEREC "Enable voice recognition support" ON)
OPTION(FSO_BUILD_FRED2 "Build FRED2 binary" ON)
elseif(UNIX)
option(FSO_BUILD_APPIMAGE "Build an AppImage package" OFF)
ENDIF(WIN32)
OPTION(FSO_BUILD_TOOLS "Build tools related to FSO" OFF)
OPTION(FSO_BUILD_TESTS "Build unit tests" OFF)
OPTION(FSO_DEVELOPMENT_MODE "Generate binaries in development mode, only use if you know what you're doing!" OFF)
OPTION(FSO_BUILD_QTFRED "Build qtFRED2 binary" OFF)
IF(WIN32 OR APPLE)
# On windows and mac the default should be to always build the included libraries
SET(FSO_BUILD_INCLUDED_LIBS_DEFAULT ON)
ELSE()
SET(FSO_BUILD_INCLUDED_LIBS_DEFAULT OFF)
ENDIF()
OPTION(FSO_BUILD_INCLUDED_LIBS "Build and use the included libraries istead of using the system headers and libraries" ${FSO_BUILD_INCLUDED_LIBS_DEFAULT})
OPTION(FSO_USE_LUAJIT "Use LuaJIT for Lua scripting, needs a working internet connection!" OFF)
OPTION(FSO_USE_OPENALSOFT "Download and build OpenAL Soft instead of using the system libraries" OFF)
OPTION(FSO_FATAL_WARNINGS "Determines if warnings in the build are considered fatal errors, primarily used for CI" OFF)
SET(FSO_FREESPACE_PATH "${CMAKE_INSTALL_PREFIX}" CACHE FILEPATH "The path of the FreeSpace directory you want to use. Please note that you will have to change CMAKE_INSTALL_PREFIX if you change this at some point.")
SET(FSO_RUN_ARGUMENTS "" CACHE STRING "Additional arguments passed to a generated executable when run with the generated build files.")
option(FSO_INSTALL_DEBUG_FILES "Install some debug files (currently only PDB files on windows)" OFF)
option(ENABLE_COTIRE "Enable cotire for faster compilation. Enabled by default." ON)
option(FSO_RELEASE_LOGGING "Enable logging output for release builds" OFF)
OPTION(FSO_BUILD_WITH_FFMPEG "Enable the usage of FFmpeg for sound and custscenes" ON)
OPTION(FSO_BUILD_WITH_OPENGL "Enable compilation of the OpenGL renderer" ON)
OPTION(FSO_BUILD_WITH_OPENGL_DEBUG "Enables debug option for OpenGL" OFF)
OPTION(FSO_BUILD_WITH_VULKAN "Enable compilation of the Vulkan renderer" OFF)
OPTION(FSO_BUILD_WITH_OPENXR_DEBUG "Enables debug option for OpenXR" OFF)
MARK_AS_ADVANCED(FORCE FSO_CMAKE_DEBUG)
MARK_AS_ADVANCED(FORCE FSO_BUILD_INCLUDED_LIBS)
MARK_AS_ADVANCED(FORCE FSO_USE_OPENALSOFT)
MARK_AS_ADVANCED(FORCE FSO_USE_LUAJIT)
MARK_AS_ADVANCED(FORCE FSO_DEVELOPMENT_MODE)
MARK_AS_ADVANCED(FORCE FSO_FATAL_WARNINGS)
mark_as_advanced(FORCE FSO_INSTALL_DEBUG_FILES)
mark_as_advanced(FORCE ENABLE_COTIRE)
mark_as_advanced(FORCE FSO_RELEASE_LOGGING)
mark_as_advanced(FORCE FSO_BUILD_WITH_FFMPEG)
mark_as_advanced(FORCE FSO_BUILD_WITH_OPENGL)
mark_as_advanced(FORCE FSO_BUILD_WITH_OPENGL_DEBUG)
mark_as_advanced(FORCE FSO_BUILD_WITH_VULKAN)
mark_as_advanced(FORCE FSO_BUILD_WITH_OPENXR_DEBUG)
# Include cotire file from https://github.com/sakra/cotire/
include(cotire)
INCLUDE(globals)
INCLUDE(toolchain)
INCLUDE(platforms)
include(version)
INCLUDE(headers)
SET(GENERATED_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated_source)
include(generateHeaders)
if(FSO_BUILD_APPIMAGE)
include(appimage)
endif()
include(clang-tidy)
# This includes source code for some tools, either used in the build or also for something else
ADD_SUBDIRECTORY(tools)
ADD_SUBDIRECTORY(lib)
ADD_SUBDIRECTORY(parsers)
ADD_SUBDIRECTORY(code)
ADD_SUBDIRECTORY(freespace2)
IF(FSO_BUILD_FRED2)
ADD_SUBDIRECTORY(fred2)
ENDIF(FSO_BUILD_FRED2)
IF(FSO_BUILD_QTFRED)
ADD_SUBDIRECTORY(qtfred)
ENDIF()
if(FSO_BUILD_TESTS)
add_subdirectory(test)
endif()
if ("${CMAKE_VERSION}" VERSION_GREATER "3.5")
# Default to using Freespace2 as startup project if CMake supports it.
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Freespace2)
endif()
IF(MSVC_USE_RUNTIME_DLL)
SET(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION "${BINARY_DESTINATION}")
IF(FSO_BUILD_FRED2)
SET(CMAKE_INSTALL_MFC_LIBRARIES ON)
ENDIF(FSO_BUILD_FRED2)
INCLUDE(InstallRequiredSystemLibraries)
ENDIF(MSVC_USE_RUNTIME_DLL)
include(package)
include(doxygen)
# Print used options to log
IF(WIN32 OR APPLE)
message(STATUS "Using text to speech: ${FSO_USE_SPEECH}")
ENDIF()
IF (WIN32)
message(STATUS "Using voice recogition: ${FSO_USE_VOICEREC}")
message(STATUS "Building FRED2: ${FSO_BUILD_FRED2}")
elseif(UNIX)
message(STATUS "Building AppImage: ${FSO_BUILD_APPIMAGE}")
ENDIF()
message(STATUS "Building FSO tools: ${FSO_BUILD_TOOLS}")
message(STATUS "Building qtFRED: ${FSO_BUILD_QTFRED}")
message(STATUS "Fatal warnings: ${FSO_FATAL_WARNINGS}")
message(STATUS "Release logging: ${FSO_RELEASE_LOGGING}")
message(STATUS "With FFmpeg: ${FSO_BUILD_WITH_FFMPEG}")
message(STATUS "With OpenGL: ${FSO_BUILD_WITH_OPENGL}")
message(STATUS "With Vulkan: ${FSO_BUILD_WITH_VULKAN}")
+14
View File
@@ -0,0 +1,14 @@
Volition Copyright (applies to original FreeSpace2 source code
developed and released by Volition):
"Copyright (C) Volition, Inc. 1999. All rights reserved.
All source code herein is the property of Volition, Inc. You may not
sell or otherwise commercially exploit the source or things you
created based on the source."
Modifications by members of the FreeSpace Source Code Project are
released under whatever terms the individual authors choose, but the
above notice continues to apply to all fs2_open code.
+1888
View File
File diff suppressed because it is too large. Load diff
-2614
View File
File diff suppressed because it is too large. Load diff
-22
View File
@@ -1,22 +0,0 @@
Volition Copyright (applies to original FreeSpace2 source code
developed and released by Volition):
>Copyright (C) Volition, Inc. 1999. All rights reserved.
>
>All source code herein is the property of Volition, Inc. You may not
sell or otherwise commercially exploit the source or things you
created based on the source.
Modifications by members of the FreeSpace Source Code Project are
released under whatever terms the individual authors choose, but the
above notice continues to apply to all fs2_open code.
All modifications made on or after November 1, 2020, shall be released under
the terms within [Unlicense](Unlicense.md). Modifications made before said date are released
under the previous terms with the exception of modifications made by members
of the FreeSpace Source Code Project that opt-in to the terms of Unlicense. Additionally,
a list of contributors who have opted in to the Unlicense terms can be found
in [**Licensing**](https://github.com/scp-fs2open/fs2open.github.com/wiki/Licensing).
See [**Licensing**](https://github.com/scp-fs2open/fs2open.github.com/wiki/Licensing) for more information.
Binary file not shown.
+29
View File
@@ -0,0 +1,29 @@
This is still in pretty rough form.
=== for people building fs2_open:
Win32-MSVC:
Use the Freespace2.dsw workspace and build within the IDE.
Win32-MinGW:
make
Linux and other unix variants (NOT YET COMPLETE)
./configure [options]
make
=== for the project maintainers (people who need to
=== keep the makefiles up to date) and those building
=== from CVS:
./autogen.sh (should only has to be done once)
./configure [options]
make
automake v1.6.1+ and
autoconf v2.54+ are required
+67
View File
@@ -0,0 +1,67 @@
# Makefile.am for fs2_open (top level)
#
# This file uses GNU Automake to generate makefiles
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = mongoose code
EXTRA_DIST = \
FS2OpenSCPReadMe.doc \
projects/MSVC_2005/Freespace2.sln \
projects/MSVC_2005/Freespace2.vcproj \
projects/MSVC_2005/code.vcproj \
projects/MSVC_6/Fred2.dsp \
projects/MSVC_6/Freespace2.dsp \
projects/MSVC_6/Freespace2.dsw \
projects/MSVC_6/code.dsp \
projects/MSVC_6/libjpeg.dsp \
projects/MSVC_6/liblua.dsp \
projects/MSVC_6/wxFRED2.dsp \
projects/Xcode/English.lproj/InfoPlist.strings \
projects/Xcode/FS2_Open.icns \
projects/Xcode/FS2_Open.xcodeproj/project.pbxproj \
projects/Xcode/Frameworks.tgz \
projects/Xcode/Info-debug.plist \
projects/Xcode/Info.plist \
projects/Xcode/README.Xcode \
projects/Xcode/SDLMain.h \
projects/Xcode/SDLMain.m
# D_ variants are defaults and should always be used
AM_CXXFLAGS = -I./code @D_CFLAGS@
AM_LDFLAGS = @D_LDFLAGS@
EXTRA_PROGRAMS = cfilearchiver cfileextractor
###############################################################################
##
## Begin utilitites
##
# cfilearchiver -- to create VPs
cfilearchiver_SOURCES = \
code/cfilearchiver/cfilearchiver.cpp
# cfileextractor -- to extract files from VPs
cfileextractor_SOURCES = \
code/cfileextractor/cfileextractor.cpp
# catch all to build utilitites
tools: cfilearchiver cfileextractor
# cleaning
clean-tools:
-test -z "$(EXTRA_PROGRAMS)" || rm -f $(EXTRA_PROGRAMS)
##
## End utilitites
##
###############################################################################
# make sure we get this stuff cleaned up
clean-generic: clean-tools
+11
View File
@@ -0,0 +1,11 @@
The "projects" directory contains ready projects for:
Microsoft Visual C++ 6
Microsoft Visual C++ 2005
Microsoft Visual C++ 2008
Micrsofot Visual C++ 2010
Apple Xcode
Code::Blocks
See the ChangeLog to see what's new.
See the INSTALL file for instructions on how to build fs2_open.
-9
View File
@@ -1,9 +0,0 @@
FreeSpace2 *S*ource *C*ode *P*roject
==
[![Coverity](https://img.shields.io/coverity/scan/870.svg)](https://scan.coverity.com/projects/870)
Building
--
Before you do anything, make sure you have updated your git submodules, either by running `git submodule update --init --recursive` or by cloning the repository with the `--recursive` flag.<br/>
The main instructions for building can be found at our github wiki, on the [Building](https://github.com/scp-fs2open/fs2open.github.com/wiki/Building) page.
+166
View File
@@ -0,0 +1,166 @@
**********************************************************************
* INSTALL file for STLport *
* *
**********************************************************************
STLport is a full ANSI C++ Standard library.
This distribution contains STLport sources only, no binaries.
To use STLport iostreams, locale and complex numbers, you have to build STLport
library from sources in "build/lib" directory and link your programs with it.
Starting with 5.0 the 'wrapper' mode is not supported anymore. You cannot use native
compiler iostreams implementation with STLport STL (see doc/FAQ for explanations).
Now you have to choose between STLport iostreams or no iostreams.
==== Unpacking and installing STLport ==========
1) Unpack STLport archive to a directory accessible during compilation.
NOTE: DO NOT overwrite header files coming with the compiler, even if you made
a backup - this won't work! Most probably, you've already unpacked the archive before
reading this file though ;)
2) Make sure "stlport" directory of this distribution comes before compiler's one
in your include paths when you compile the project.
Note: for SunPro CC 5.0 and higher, there used to be special directory "stlport/SC5"
this is now obsolete, please make sure you do not use it anymore.
3) Make sure you do not rename this "stlport" subdirectory -
that may result in compilation errors.
NOTE: Your compiler should be recognized by STLport source code with no configuring.
Please edit appropriate configuration header for your compiler
directly if you have to make compiler-specific configuration changes
(see stlport/stl/config).
4) Run:
configure --help
Depending on your environment, Windows command shell or Unix like shell,
configure.bat or configure script will be run respectively. For Windows users
running configure script is mandatory in order to declare the compiler you are
going to use.
5) Go to "build/lib" subdirectory. It contains various makefiles for different
compilers and 'make' utilities (GNU Make and Microsoft's nmake supported).
Verify you can do command line compiles. IDE users may have to do something
special, like add environment variables (for Microsoft) or install
additional compiler components (for Metrowerks), before they can use their
command line compilers (see doc/README.xxxx for additionnal information).
configure script should have already created a Makefile file so that you only
have to call 'make' or 'nmake' (for some platforms GNU make might be hidden
behind 'gmake').
IMPORTANT:
If you DO NOT plan to use STLport iostreams and/or locale implementation but just
the STL, you do not have to build the library.
If you have decided to disable STLport iostreams and locale using _STLP_NO_IOSTREAMS
configuration macro in stlport/stl/config/user_config.h, you may stop reading here.
==== Building STLport iostreams library ==========
Below are step-by-step instructions to build STLport streams library. This is a general
build process description, for a more detailed one check README files in the doc folder:
5) Using appropriate make command (make or nmake), do
make clean install
to build the STLport libraries. Make files are set up to build several different
flavors - debug/nondebug, static/dynamic versions. But not all flavors will be build
by default. See build/lib/README for other make targets.
Note: 'install' target work slightly different than usual - it installs libraries into
<STLport root dir>/lib and bin catalogs, NOT IN SYSTEM CATALOG. You can do the system
install by just copying stlport and lib folder to the destination of your choise. For
example on UNIX-like platforms this can be done with the following commands:
su
tar cf - stlport | (cd /usr/local/include; tar xf -)
chmod -R a+r /usr/local/include/stlport
chown -R root:root /usr/local/include/stlport
(cd lib; tar cf - --exclude=CVS --exclude=.cvsignore .) | (cd /usr/local/lib; tar xf -)
chown -R root:root /usr/local/lib/libstlport*
exit
Note: System install is optional, most of compilers/linkers support searching for includes
and libs throught out the whole filesystem, just check your documentation on how to achieve
this.
If you use cross-compiler, you can find libraries in the <STLport root dir>/lib/<target platform>
catalog.
6) If build fails, you may choose to :
- try fixing the build ;)
- wait until somebody else will submit corresponding changes to be incorporated in next STLport
release/snapshot.
In case you do patch STLport, please submit your patches to
https://sourceforge.net/tracker/?atid=766246&group_id=146814&func=browse
==== Linking your application with STLport library ==========
7) Check the build:
Example:
- under Linux and other Unixes:
cd build/test/unit
make install
../../../bin/stl_unit_test
../../../bin-g/stl_unit_test
- under Windows:
cd build\test\unit
nmake install
cd ..\..\..\bin
stl_unit_test
stl_unit_testd
stl_unit_teststld
8) Supply the "lib" subdirectory to the library search path and add desired
library to the list of libraries to link with.
Examples (imagine you have mytest.cpp in the same directory as this file is):
With GCC : g++ -pthread -I./stlport mytest.cpp -L./lib/ -lstlport
With DEC CC : cxx -I./stlport mytest.cpp -L./lib/ -lstlport
With SUN CC : CC -mt -I./stlport mytest.cpp -L./lib/ -lstlport
.....
For several compilers supporting auto linking feature (VC++, Borland, DMC),
you do not have to specify "stlport.M.m.lib" explicitly, as it is being choosen
and forced to link automatically by "#pragma"'s in compiler config files
Appropriate version is being selected based on compiler options and _STLP_DEBUG
setting. All you have to do is to set library search path for the linker.
Example :
cl.exe /I.\stlport mytest.cpp /link /libpath:.\lib /MD
9) If you linked your application with shared STLport library (.so or .dll), please
make suze that your .so or .dll can be found by the dynamic linker.
Under Windows, the paths searched depend on the particular flavor, see the MSDN
documentation for LoadLibrary at http://msdn.microsoft.com. The easiest ways are to
either modify the PATH environment variable or copy all .dll's next to the
executable like it is done per default when unit tests executable are put next
to dlls.
Under Linux, the environment variable LD_LIBRARY_PATH can be adjusted to point
to the dir containing .so. See the manpage for ld.so for more info.
10) STLport builds only multithreaded libraries, so your application should be compiled
as multithreaded, too. Use -pthread (or -pthreads on Solaris) option for GCC, -mt for SunPro,
/MT for VC, and so on. Sometimes you should define _REENTRANT or something else, depends
upon platform/compiler. See compiler's and linker's options on command line when you build
unit tests (build/test/unit) for reference. The last is useful for ANY platform.
11) Don't hesitate to read READMEs (doc/README*, build/lib/README*, build/test/unit/README*)
and doc/FAQ.
12) Have fun!
+120
View File
@@ -0,0 +1,120 @@
**********************************************************************
* INSTALL file for STLport 5.2 *
* *
**********************************************************************
STLport is a full ANSI C++ Standard library.
This distribution contains STLport sources only, no binaries.
To use STLport iostreams, locale and complex numbers, you have
to build STLport library from sources and link your programs with it.
Starting with 5.0 the 'wrapper' mode is not supported anymore.
You cannot use native compiler iostreams implementation with STLport STL
(see doc/FAQ for explanations).
==== Installing STLport ==========
0) DO NOT overwrite/move/rename header files coming with the compiler,
even if you made a backup---STLport need this headers and don't
override ones.
1) Run
./configure --help
read options description; if you use compiler
different from gcc, pay attention to --use-compiler-family= option.
2) Run
./configure <option>
Options here more-or-less traditional.
Note: ./configure give hints only for library build, it dosen't
create/edit any headers, check you system etc. This is simple way
to store custom options, not more. If you want to change default
behaviour of STLport, see stlport/stl/config/user_config.h and
stlport/stl/config/host.h; read the comments in this files!
Not all combinations of options healthy, you should understand
what you do. If not, keep all unchanged.
Note: you can find all recognised 'settings' in the file
build/Makefiles/gmake/config.mak
This is generated file, but only ./configure will rewrite one.
3) Run
make && make check
Only GNU Make supported! Preferred verion of GNU Make >= 3.81;
never use GNU Make before 3.79 --- build not work properly;
GNU makes >= 3.79 and < 3.81 may fail to build library/tests
properly, due to bugs; but the real results depends upon
platform.
4) If build fine, become superuser and run
make install
Note: you can use --prefix= to change installation path
(or macro DESTDIR, as usual), or even skip installation and use
STLport in-place.
==== Usage STLport ==========
1) The best way to understand how to use it, is to see on compilation,
linking, running unit tests, i.e. see on options when you do
(cd build/test/unit; make check)
2) Make sure "stlport" directory of this distribution comes before
compiler's one in your include paths (something like
-I<base install path>/stlport); never rename 'stlport' part of path!
Compilation:
c++ -pthread -fexceptions -O2 -I/usr/local/include/stlport -c -o test.o test.cc
In case of gcc, libstlport replace libstdc++ (not in all cases!)
Link, variant 1:
c++ -pthread -fexceptions -O2 -I/usr/local/include/stlport -nostdlib -o mytest \
/usr/lib/gcc/i686-pc-linux-gnu/4.2.4/../../../crt1.o \
/usr/lib/gcc/i686-pc-linux-gnu/4.2.4/../../../crti.o \
/usr/lib/gcc/i686-pc-linux-gnu/4.2.4/crtbegin.o \
test.o \
-lstlport \
-lgcc_s -lpthread -lc -lm \
/usr/lib/gcc/i686-pc-linux-gnu/4.2.4/crtend.o \
/usr/lib/gcc/i686-pc-linux-gnu/4.2.4/../../../crtn.o
Of cause, names of start/stop files not hardcoded, you can locate it with
c++ -print-file-name=crt1.o
Link, variant 2:
gcc -pthread -fexceptions -O2 -I/usr/local/include/stlport -o mytest \
test.o -lstlport
If you use gcc before 3.3, you must link with libstdc++, because
language-support library (libsupc++.a) don't contain necessary
functions.
3) STLport builds only multithreaded libraries (by default), so your
application should be compiled as multithreaded, too. Use -pthread
(or -pthreads on Solaris) option for GCC, -mt for SunPro and so on.
Sometimes you should define _REENTRANT or something else, depends
upon platform/compiler. See compiler's and linker's options
on command line when you build unit tests (build/test/unit)
for reference. The last is useful for ANY platform (special
attention for Windows users).
4) Don't hesitate to read READMEs (doc/README*, build/lib/README*,
build/test/unit/README*) and doc/FAQ.
5) Have fun!
+26
View File
@@ -0,0 +1,26 @@
# Time-stamp: <08/06/12 14:28:42 ptr>
#
# Copyright (c) 2004-2008
# Petr Ovtchenkov
#
# Licensed under the Academic Free License version 3.0
#
SRCROOT := build
SUBDIRS := build/lib
include ${SRCROOT}/Makefiles/gmake/subdirs.mak
all install depend clean clobber distclean check::
+$(call doinsubdirs,${SUBDIRS})
distclean clean depend clobber::
+$(call doinsubdirs,build/test/unit)
release-shared install-release-shared:
+$(call doinsubdirs,${SUBDIRS})
install::
${MAKE} -C build/lib install-headers
.PHONY: all install depend clean clobber distclean check release-shared install-release-shared
+64
View File
@@ -0,0 +1,64 @@
**********************************************************************
* README file for STLport 5.0 *
* *
**********************************************************************
This directory contains the STLport-5.0 release.
What's inside :
README - this file
INSTALL - installation instructions
bin - installation directory for STLport unit tests;
it may contain more subdirs, if you use
crosscompilation
build/lib - build directory for STLport library (if you use
STLport iostreams and/or locale only)
build/test/unit - build directory for regression (unit) tests
build/test/eh - build directory for exception handling tests
stlport - main STLport include directory
src - source for iostreams implementation and other parts
that aren't pure template code
lib - installation directory for STLport library (if you
use STLport iostreams and/or locale only);
it may contain more subdirs, if you use
crosscompilation
test/unit - unit (regression) tests
test/eh - exception handling test using STLport iostreams
etc - miscellanous files (ChangeLog, TODO, scripts, etc.)
GETTING STLPORT
To download the latest version of STLport, please be sure to visit
https://sourceforge.net/project/showfiles.php?group_id=146814
LEGALESE
This software is being distributed under the following terms:
*
*
* Copyright (c) 1994
* Hewlett-Packard Company
*
* Copyright (c) 1996-1999
* Silicon Graphics Computer Systems, Inc.
*
* Copyright (c) 1997
* Moscow Center for SPARC Technology
*
* Copyright (c) 1999-2003
* Boris Fomitchev
*
* This material is provided "as is", with absolutely no warranty expressed
* or implied. Any use is at your own risk.
*
* Permission to use or copy this software for any purpose is hereby granted
* without fee, provided the above notices are retained on all copies.
* Permission to modify the code and to distribute modified code is granted,
* provided the above notices are retained, and a notice that the code was
* modified is included with the above copyright notice.
*
**********************************************************************
@@ -0,0 +1,77 @@
# Time-stamp: <08/01/12 00:50:38 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2008
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
INCLUDES :=
ifndef _FORCE_CXX
CXX := CC
else
CXX := ${_FORCE_CXX}
endif
ifndef _FORCE_CC
CC := cc
else
CC := ${_FORCE_CC}
endif
CXX_VERSION := $(shell ${CXX} -V 2>&1 | grep ${CXX} | awk '{ print $$4; }')
CXX_VERSION_MAJOR := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$1; }')
CXX_VERSION_MINOR := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$2; }')
CXX_VERSION_PATCH := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { if (NF > 2) {print $$3;}else{print "0"} }')
DEFS ?=
OPT ?=
OUTPUT_OPTION = -o $@
LINK_OUTPUT_OPTION = ${OUTPUT_OPTION}
CPPFLAGS = $(DEFS) $(INCLUDES)
OPT += -mt +w2
CCFLAGS = -erroff=doubunder -qoption ccfe -expand=1000 -library=no%Cstd,no%iostream,no%rwtools7-xildoff $(OPT)
CFLAGS = $(OPT)
CXXFLAGS = -erroff=doubunder -qoption ccfe -expand=1000 -library=no%Cstd,no%iostream,no%rwtools7 -xildoff $(OPT)
CDEPFLAGS = -xM
CCDEPFLAGS = -xM
# STLport DEBUG mode specific defines
stldbg-static : DEFS += -D_STLP_DEBUG
stldbg-shared : DEFS += -D_STLP_DEBUG
stldbg-static-dep : DEFS += -D_STLP_DEBUG
stldbg-shared-dep : DEFS += -D_STLP_DEBUG
# optimization and debug compiler flags
release-static : OPT += -xO2
release-shared : OPT += -xO2
dbg-static : OPT += -g
dbg-shared : OPT += -g
#dbg-static-dep : OPT += -g
#dbg-shared-dep : OPT += -g
stldbg-static : OPT += -g
stldbg-shared : OPT += -g
#stldbg-static-dep : OPT += -g
#stldbg-shared-dep : OPT += -g
# dependency output parser (dependencies collector)
DP_OUTPUT_DIR = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_DBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_DBG)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_STLDBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_STLDBG)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
@@ -0,0 +1,79 @@
# Time-stamp: <08/01/12 00:51:07 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2008
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
ifndef _FORCE_CXX
CXX := aCC
else
CXX := ${_FORCE_CXX}
endif
ifndef _FORCE_CC
CC := aCC
else
CC := ${_FORCE_CC}
endif
CXX_VERSION := $(shell ${CXX} --version 2>&1 | grep ${CXX} | awk '{ print $$6; }')
ifeq ($(CXX_VERSION),)
CXX_VERSION := $(shell ${CXX} --version)
endif
CXX_VERSION_MAJOR := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$2; }')
CXX_VERSION_MINOR := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$3; }')
DEFS ?=
OPT ?=
ifndef WITHOUT_THREAD
DEFS += -D_REENTRANT
endif
OUTPUT_OPTION = -o $@
LINK_OUTPUT_OPTION = ${OUTPUT_OPTION}
CPPFLAGS = $(DEFS) $(INCLUDES)
CFLAGS = -Aa +z $(OPT)
CXXFLAGS = -Aa +z -mt $(OPT)
CDEPFLAGS = -E +Md
CCDEPFLAGS = -E +Md
# STLport DEBUG mode specific defines
stldbg-static : DEFS += -D_STLP_DEBUG
stldbg-shared : DEFS += -D_STLP_DEBUG
stldbg-static-dep : DEFS += -D_STLP_DEBUG
stldbg-shared-dep : DEFS += -D_STLP_DEBUG
# optimization and debug compiler flags
release-static : OPT += +O2
release-shared : OPT += +O2
dbg-static : OPT += -g
dbg-shared : OPT += -g
#dbg-static-dep : OPT += -g
#dbg-shared-dep : OPT += -g
stldbg-static : OPT += -g
stldbg-shared : OPT += -g
#stldbg-static-dep : OPT += -g
#stldbg-shared-dep : OPT += -g
OPT += +W495,749,2186,2191,2340,2430,2550
# dependency output parser (dependencies collector)
DP_OUTPUT_DIR = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_DBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_DBG)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_STLDBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_STLDBG)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
@@ -0,0 +1,10 @@
# -*- Makefile -*- Time-stamp: <07/03/08 21:53:08 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
@@ -0,0 +1,10 @@
# -*- Makefile -*- Time-stamp: <07/03/08 21:55:22 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
@@ -0,0 +1,98 @@
# -*- Makefile -*- Time-stamp: <07/05/31 01:05:40 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Copyright (c) 2006, 2007
# Francois Dumont
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
ifneq ($(OSNAME),linux)
OPT += -tWC -w-par
LDFLAGS += -Tpe -w -w-dup
START_OBJ = c0x32.obj
LDFLAGS += -L$(subst /,\\,$(STLPORT_DIR)/lib)
ifdef WITH_DYNAMIC_RTL
release-static: DEFS += -D_STLP_USE_STATIC_LIB
dbg-static: DEFS += -D_STLP_USE_STATIC_LIB
stldbg-static: DEFS += -D_STLP_USE_STATIC_LIB
endif
ifdef WITH_STATIC_RTL
release-shared: DEFS += -D_STLP_USE_DYNAMIC_LIB
dbg-shared: DEFS += -D_STLP_USE_DYNAMIC_LIB
stldbg-shared: DEFS += -D_STLP_USE_DYNAMIC_LIB
endif
else
OPT += -tC
LDFLAGS += -ap
START_OBJ = borinit.o crt1.o
endif
ifdef USE_BCC_DBG_OPTS
# optimization and debug compiler flags
dbg-static : OPT += -R -v -y
dbg-shared : OPT += -R -v -y
stldbg-static : OPT += -R -v -y
stldbg-shared : OPT += -R -v -y
dbg-shared : LDFLAGS += -v
dbg-static : LDFLAGS += -v
stldbg-shared : LDFLAGS += -v
stldbg-static : LDFLAGS += -v
install-dbg-shared: install-dbg-shared-tds
install-stldbg-shared: install-stldbg-shared-tds
install-dbg-static: install-dbg-static-tds
install-stldbg-static: install-stldbg-static-tds
install-dbg-shared-tds:
$(INSTALL_EXE) $(OUTPUT_DIR_DBG)/${PRGNAME}.tds $(INSTALL_BIN_DIR_DBG)/${PRGNAME}.tds
install-stldbg-shared-tds:
$(INSTALL_EXE) $(OUTPUT_DIR_STLDBG)/${PRGNAME}.tds $(INSTALL_BIN_DIR_STLDBG)/${PRGNAME}.tds
install-dbg-static-tds:
$(INSTALL_EXE) $(OUTPUT_DIR_DBG)/${PRGNAME}.tds $(INSTALL_BIN_DIR_DBG)/${PRGNAME}.tds
install-stldbg-static-tds:
$(INSTALL_EXE) $(OUTPUT_DIR_STLDBG)/${PRGNAME}.tds $(INSTALL_BIN_DIR_STLDBG)/${PRGNAME}.tds
else
dbg-shared : OPT += -vi-
dbg-static : OPT += -vi-
stldbg-shared : OPT += -vi-
stldbg-static : OPT += -vi-
endif
PRG_FILES := ${PRGNAME}${EXE} ${PRGNAME}.tds ${PRGNAME}.map
TMP_FILES := test.txt test_file.txt win32_file_format.tmp
clean::
$(foreach d, $(OUTPUT_DIRS), $(foreach f, $(PRG_FILES), @rm -f $(d)/$(f)))
uninstall::
$(foreach d, $(INSTALL_DIRS), $(foreach f, $(PRG_FILES), @rm -f $(d)/$(f)))
$(foreach d, $(INSTALL_DIRS), $(foreach f, $(TMP_FILES), @rm -f $(d)/$(f)))
$(foreach d, $(INSTALL_DIRS), @-rmdir -p $(d) 2>/dev/null)
@@ -0,0 +1,67 @@
# -*- Makefile -*- Time-stamp: <07/05/31 01:05:57 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Copyright (c) 2006, 2007
# Francois Dumont
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
CXXFLAGS += -w6 -w7 -w18
stldbg-shared : CXXFLAGS += -HP50
stldbg-static : CXXFLAGS += -HP50
OPT += -WA
release-shared : LDFLAGS += /DELEXECUTABLE
release-static : LDFLAGS += /DELEXECUTABLE
dbg-shared : LDFLAGS += /DELEXECUTABLE/CODEVIEW/NOCVPACK
dbg-static : LDFLAGS += /DELEXECUTABLE/CODEVIEW/NOCVPACK
stldbg-shared : LDFLAGS += /DELEXECUTABLE/CODEVIEW/NOCVPACK
stldbg-static : LDFLAGS += /DELEXECUTABLE/CODEVIEW/NOCVPACK
# workaround for stl/config/_auto_link.h
STL_LIBNAME = stlport
DBG_SUFFIX := d
STLDBG_SUFFIX := stld
ifdef LIB_MOTIF
LIB_SUFFIX := _$(LIB_MOTIF).${LIBMAJOR}.${LIBMINOR}
else
LIB_SUFFIX := .${LIBMAJOR}.${LIBMINOR}
endif
# Shared libraries:
ifdef WITH_STATIC_RTL
LIB_TYPE := _x
else
LIB_TYPE :=
endif
LIB_NAME := $(LIB_PREFIX)${STL_LIBNAME}${LIB_TYPE}${LIB_SUFFIX}.$(LIB)
LIB_NAME_DBG := $(LIB_PREFIX)${STL_LIBNAME}${DBG_SUFFIX}${LIB_TYPE}${LIB_SUFFIX}.$(LIB)
LIB_NAME_STLDBG := $(LIB_PREFIX)${STL_LIBNAME}${STLDBG_SUFFIX}${LIB_TYPE}${LIB_SUFFIX}.$(LIB)
# Static libraries:
ifdef WITH_DYNAMIC_RTL
A_LIB_TYPE := _statix
else
A_LIB_TYPE := _static
endif
A_NAME := $(LIB_PREFIX)${STL_LIBNAME}${A_LIB_TYPE}${LIB_SUFFIX}.$(ARCH)
A_NAME_DBG := $(LIB_PREFIX)${STL_LIBNAME}${DBG_SUFFIX}${A_LIB_TYPE}${LIB_SUFFIX}.${ARCH}
A_NAME_STLDBG := ${LIB_PREFIX}${STL_LIBNAME}${STLDBG_SUFFIX}${A_LIB_TYPE}${LIB_SUFFIX}.${ARCH}
release-shared : LDLIBS += $(STLPORT_DIR)/lib/$(LIB_NAME)
dbg-shared : LDLIBS += $(STLPORT_DIR)/lib/$(LIB_NAME_DBG)
stldbg-shared : LDLIBS += $(STLPORT_DIR)/lib/$(LIB_NAME_STLDBG)
release-static : LDLIBS += $(STLPORT_DIR)/lib/$(A_NAME)
dbg-static : LDLIBS += $(STLPORT_DIR)/lib/$(A_NAME_DBG)
stldbg-static : LDLIBS += $(STLPORT_DIR)/lib/$(A_NAME_STLDBG)
@@ -0,0 +1,230 @@
# -*- Makefile -*- Time-stamp: <08/06/12 16:03:31 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
ifndef NOT_USE_NOSTDLIB
ifeq ($(CXX_VERSION_MAJOR),2)
# i.e. gcc before 3.x.x: 2.95, etc.
# gcc before 3.x don't had libsupc++.a and libgcc_s.so
# exceptions and operators new are in libgcc.a
# Unfortunatly gcc before 3.x has a buggy C++ language support outside stdc++, so definition of STDLIB below is commented
NOT_USE_NOSTDLIB := 1
#STDLIBS := $(shell ${CXX} -print-file-name=libgcc.a) -lpthread -lc -lm
endif
ifeq ($(CXX_VERSION_MAJOR),3)
# gcc before 3.3 (i.e. 3.0.x, 3.1.x, 3.2.x) has buggy libsupc++, so we should link with libstdc++ to avoid one
ifeq ($(CXX_VERSION_MINOR),0)
NOT_USE_NOSTDLIB := 1
endif
ifeq ($(CXX_VERSION_MINOR),1)
NOT_USE_NOSTDLIB := 1
endif
ifeq ($(CXX_VERSION_MINOR),2)
NOT_USE_NOSTDLIB := 1
endif
endif
endif
ifndef NOT_USE_NOSTDLIB
ifeq ($(OSNAME),linux)
_USE_NOSTDLIB := 1
endif
ifeq ($(OSNAME),openbsd)
_USE_NOSTDLIB := 1
endif
ifeq ($(OSNAME),freebsd)
_USE_NOSTDLIB := 1
endif
ifeq ($(OSNAME),netbsd)
_USE_NOSTDLIB := 1
endif
ifeq ($(OSNAME),sunos)
_USE_NOSTDLIB := 1
endif
ifeq ($(OSNAME),darwin)
_USE_NOSTDLIB := 1
endif
ifeq ($(OSNAME),cygming)
_USE_NOSTDLIB := 1
endif
endif
ifndef WITHOUT_STLPORT
ifeq (${STLPORT_LIB_DIR},)
ifneq ($(OSNAME),cygming)
release-shared: STLPORT_LIB = -lstlport
release-static: STLPORT_LIB = -Wl,-Bstatic -lstlport -Wl,-Bdynamic
dbg-shared: STLPORT_LIB = -lstlportg
dbg-static: STLPORT_LIB = -Wl,-Bstatic -lstlportg -Wl,-Bdynamic
stldbg-shared: STLPORT_LIB = -lstlportstlg
stldbg-static: STLPORT_LIB = -Wl,-Bstatic -lstlportstlg -Wl,-Bdynamic
else
LIB_VERSION = ${LIBMAJOR}.${LIBMINOR}
release-shared : STLPORT_LIB = -lstlport.${LIB_VERSION}
dbg-shared : STLPORT_LIB = -lstlportg.${LIB_VERSION}
stldbg-shared : STLPORT_LIB = -lstlportstlg.${LIB_VERSION}
endif
else
# STLPORT_LIB_DIR not empty
ifneq ($(OSNAME),cygming)
release-shared: STLPORT_LIB = -L${STLPORT_LIB_DIR} -lstlport
release-static: STLPORT_LIB = -L${STLPORT_LIB_DIR} -Wl,-Bstatic -lstlport -Wl,-Bdynamic
dbg-shared: STLPORT_LIB = -L${STLPORT_LIB_DIR} -lstlportg
dbg-static: STLPORT_LIB = -L${STLPORT_LIB_DIR} -Wl,-Bstatic -lstlportg -Wl,-Bdynamic
stldbg-shared: STLPORT_LIB = -L${STLPORT_LIB_DIR} -lstlportstlg
stldbg-static: STLPORT_LIB = -L${STLPORT_LIB_DIR} -Wl,-Bstatic -lstlportstlg -Wl,-Bdynamic
else
LIB_VERSION = ${LIBMAJOR}.${LIBMINOR}
release-shared : STLPORT_LIB = -L${BASE_INSTALL_DIR}/lib -lstlport.${LIB_VERSION}
dbg-shared : STLPORT_LIB = -L${BASE_INSTALL_DIR}/lib -lstlportg.${LIB_VERSION}
stldbg-shared : STLPORT_LIB = -L${BASE_INSTALL_DIR}/lib -lstlportstlg.${LIB_VERSION}
endif
endif
endif
ifdef _USE_NOSTDLIB
# Check whether gcc builded with --disable-shared
ifeq ($(shell ${CXX} ${CXXFLAGS} -print-file-name=libgcc_eh.a),libgcc_eh.a)
# gcc builded with --disable-shared, (no library libgcc_eh.a); all exception support in libgcc.a
_LGCC_EH :=
_LGCC_S := -lgcc
else
# gcc builded with --enable-shared (default)
ifdef USE_STATIC_LIBGCC
# if force usage of static libgcc, then exceptions support should be taken from libgcc_eh
_LGCC_EH := -lgcc_eh
_LGCC_S := -lgcc
else
# otherwise, exceptions support is in libgcc_s.so
_LGCC_EH :=
ifneq ($(OSNAME),darwin)
_LGCC_S := -lgcc_s
else
ifdef GCC_APPLE_CC
ifeq ($(MACOSX_TEN_FIVE),true)
_LGCC_S := -lgcc_s.10.5
else
_LGCC_S := -lgcc_s.10.4
endif
else
_LGCC_S := -lgcc_s
# end of GCC_APPLE_CC
endif
# end of Darwin
endif
# end of !USE_STATIC_LIBGCC
endif
# end of present libgcc_eh.a
endif
# ifeq ($(CXX_VERSION_MAJOR),3)
ifeq ($(OSNAME),linux)
START_OBJ := $(shell for o in crt1.o crti.o crtbegin.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
END_OBJ := $(shell for o in crtend.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
STDLIBS = ${STLPORT_LIB} ${_LGCC_S} -lpthread -lc -lm
endif
ifeq ($(OSNAME),openbsd)
START_OBJ := $(shell for o in crt0.o crtbegin.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
END_OBJ := $(shell for o in crtend.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
STDLIBS = ${STLPORT_LIB} ${_LGCC_S} -lpthread -lc -lm
endif
ifeq ($(OSNAME),freebsd)
# FreeBSD < 5.3 should use -lc_r, while FreeBSD >= 5.3 use -lpthread
PTHR := $(shell if [ ${OSREL_MAJOR} -gt 5 ] ; then echo "pthread" ; else if [ ${OSREL_MAJOR} -lt 5 ] ; then echo "c_r" ; else if [ ${OSREL_MINOR} -lt 3 ] ; then echo "c_r" ; else echo "pthread"; fi ; fi ; fi)
START_OBJ := $(shell for o in crt1.o crti.o crtbegin.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
END_OBJ := $(shell for o in crtend.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
STDLIBS = ${STLPORT_LIB} ${_LGCC_S} -l${PTHR} -lc -lm
endif
ifeq ($(OSNAME),netbsd)
START_OBJ := $(shell for o in crt1.o crti.o crtbegin.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
END_OBJ := $(shell for o in crtend.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
STDLIBS = ${STLPORT_LIB} ${_LGCC_S} -lpthread -lc -lm
endif
ifeq ($(OSNAME),sunos)
START_OBJ := $(shell for o in crt1.o crti.o crtbegin.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
END_OBJ := $(shell for o in crtend.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
STDLIBS = ${STLPORT_LIB} ${_LGCC_S} -lpthread -lc -lm
endif
ifeq ($(OSNAME),darwin)
# sometimes crt3.o will required: it has __cxa_at_exit, but the same defined in libc.dyn
# at least in Mac OS X 10.4.10 (8R2218)
ifeq ($(CXX_VERSION_MAJOR),3)
# i.e. gcc 3.3
START_OBJ := $(shell for o in crt1.o crt2.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
else
START_OBJ := -lcrt1.o
endif
END_OBJ :=
STDLIBS = ${STLPORT_LIB} ${_LGCC_S} -lpthread -lc -lm -lsupc++ ${_LGCC_EH}
#LDFLAGS += -dynamic
endif
ifeq ($(OSNAME),cygming)
LDFLAGS += -nodefaultlibs
ifndef USE_STATIC_LIBGCC
ifeq ($(shell ${CXX} ${CXXFLAGS} -print-file-name=libgcc_s.a),libgcc_s.a)
_LGCC_S := -lgcc
else
_LGCC_S := -lgcc_s
endif
else
_LGCC_S := -lgcc
endif
ifeq ($(OSREALNAME),mingw)
STDLIBS = ${STLPORT_LIB} -lsupc++ ${_LGCC_S} -lmingw32 -lmingwex -lmsvcrt -lm -lmoldname -lcoldname -lkernel32
else
LDFLAGS += -Wl,-enable-auto-import
ifneq (,$(findstring no-cygwin,$(EXTRA_CXXFLAGS)))
STDLIBS = ${STLPORT_LIB} ${_LGCC_S} -lmingw32 -lmingwex -lmsvcrt -lm -lmoldname -lcoldname -lkernel32
else
STDLIBS = ${STLPORT_LIB} ${_LGCC_S} -lm -lc -lpthread -lkernel32
endif
endif
else
LDFLAGS += -nostdlib
endif
# endif
# _USE_NOSTDLIB
else
ifndef USE_STATIC_LIBGCC
release-shared : LDFLAGS += -shared-libgcc
dbg-shared : LDFLAGS += -shared-libgcc
stldbg-shared : LDFLAGS += -shared-libgcc
endif
ifndef WITHOUT_STLPORT
STDLIBS = ${STLPORT_LIB}
else
STDLIBS =
endif
endif
# workaround for gcc 2.95.x bug:
ifeq ($(CXX_VERSION_MAJOR),2)
ifneq ($(OSNAME),cygming)
OPT += -fPIC
endif
endif
@@ -0,0 +1,10 @@
# -*- Makefile -*- Time-stamp: <07/03/08 21:55:41 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
@@ -0,0 +1,66 @@
# -*- makefile -*- Time-stamp: <06/12/12 09:37:04 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005, 2006
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
ifndef WITHOUT_STLPORT
install: install-release-shared install-dbg-shared install-stldbg-shared
else
install: install-release-shared install-dbg-shared
endif
INSTALL_PRGNAME_CMD =
INSTALL_PRGNAME_CMD_DBG =
INSTALL_PRGNAME_CMD_STLDBG =
define prog_install
INSTALL_$(1)_PRGNAME := $(1)${EXE}
INSTALL_PRGNAME_CMD += $$(INSTALL_EXE) $${$(1)_PRG} $$(INSTALL_BIN_DIR)/$${INSTALL_$(1)_PRGNAME}; \
INSTALL_$(1)_PRGNAME_DBG := $${INSTALL_$(1)_PRGNAME}
INSTALL_PRGNAME_CMD_DBG += $$(INSTALL_EXE) $${$(1)_PRG_DBG} $$(INSTALL_BIN_DIR_DBG)/$${INSTALL_$(1)_PRGNAME_DBG}; \
ifndef WITHOUT_STLPORT
INSTALL_$(1)_PRGNAME_STLDBG := $${INSTALL_$(1)_PRGNAME}
INSTALL_PRGNAME_CMD_STLDBG += $$(INSTALL_EXE) $${$(1)_PRG_STLDBG} $$(INSTALL_BIN_DIR_STLDBG)/$${INSTALL_$(1)_PRGNAME_STLDBG}; \
endif
endef
INSTALL_PRGNAME := ${PRGNAME}${EXE}
$(foreach prg,$(PRGNAMES),$(eval $(call prog_install,$(prg))))
INSTALL_PRGNAME_DBG := ${INSTALL_PRGNAME}
ifndef WITHOUT_STLPORT
INSTALL_PRGNAME_STLDBG := ${INSTALL_PRGNAME}
endif
install-release-shared: release-shared $(INSTALL_BIN_DIR)
ifdef PRGNAME
$(INSTALL_EXE) ${PRG} $(INSTALL_BIN_DIR)/${INSTALL_PRGNAME}
endif
$(INSTALL_PRGNAME_CMD)
$(POST_INSTALL)
install-dbg-shared: dbg-shared $(INSTALL_BIN_DIR_DBG)
ifdef PRGNAME
$(INSTALL_EXE) ${PRG_DBG} $(INSTALL_BIN_DIR_DBG)/${INSTALL_PRGNAME_DBG}
endif
$(INSTALL_PRGNAME_CMD_DBG)
$(POST_INSTALL_DBG)
ifndef WITHOUT_STLPORT
install-stldbg-shared: stldbg-shared $(INSTALL_BIN_DIR_STLDBG)
ifdef PRGNAME
$(INSTALL_EXE) ${PRG_STLDBG} $(INSTALL_BIN_DIR_STLDBG)/${INSTALL_PRGNAME_STLDBG}
endif
$(INSTALL_PRGNAME_CMD_STLDBG)
$(POST_INSTALL_STLDBG)
endif
@@ -0,0 +1,92 @@
# -*- makefile -*- Time-stamp: <06/11/17 10:34:26 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
dbg-shared: $(EXTRA_PRE_DBG) $(OUTPUT_DIR_DBG) ${PRG_DBG} ${ALLPRGS_DBG} $(EXTRA_POST_DBG)
dbg-static: $(EXTRA_PRE_DBG) $(OUTPUT_DIR_DBG) ${PRG_DBG} ${ALLPRGS_DBG} $(EXTRA_POST_DBG)
release-shared: $(EXTRA_PRE) $(OUTPUT_DIR) ${PRG} ${ALLPRGS} $(EXTRA_POST)
release-static: $(EXTRA_PRE) $(OUTPUT_DIR) ${PRG} ${ALLPRGS} $(EXTRA_POST)
ifndef WITHOUT_STLPORT
stldbg-shared: $(EXTRA_PRE_STLDBG) $(OUTPUT_DIR_STLDBG) ${PRG_STLDBG} ${ALLPRGS_STLDBG} $(EXTRA_POST_STLDBG)
stldbg-static: $(EXTRA_PRE_STLDBG) $(OUTPUT_DIR_STLDBG) ${PRG_STLDBG} ${ALLPRGS_STLDBG} $(EXTRA_POST_STLDBG)
endif
ifeq ("$(findstring $(COMPILER_NAME),bcc dmc)","")
define cpplnk_str
$(LINK.cc) $(LINK_OUTPUT_OPTION) ${START_OBJ} $(1) $(LDLIBS) ${STDLIBS} ${END_OBJ}
endef
else
ifneq ($(OSNAME),linux)
define cpplnk_str
$(LINK.cc) $(subst /,\\,${START_OBJ} $(1) ${END_OBJ}, $(LINK_OUTPUT_OPTION), $(MAP_OUTPUT_OPTION), $(LDLIBS) ${STDLIBS},,)
endef
else
define cpplnk_str
$(LINK.cc) ${START_OBJ} $(1) ${END_OBJ}, $(LINK_OUTPUT_OPTION), $(MAP_OUTPUT_OPTION), $(LDLIBS) ${STDLIBS},,
endef
endif
endif
define prog_lnk
ifeq ($${_$(1)_C_SOURCES_ONLY},)
$${$(1)_PRG}: $$($(1)_OBJ) $$(LIBSDEP)
$$(call cpplnk_str,$$($(1)_OBJ))
$${$(1)_PRG_DBG}: $$($(1)_OBJ_DBG) $$(LIBSDEP)
$$(call cpplnk_str,$$($(1)_OBJ_DBG))
ifndef WITHOUT_STLPORT
$${$(1)_PRG_STLDBG}: $$($(1)_OBJ_STLDBG) $$(LIBSDEP)
$$(call cpplnk_str,$$($(1)_OBJ_STLDBG))
endif
else
$${$(1)_PRG}: $$($(1)_OBJ) $$(LIBSDEP)
$$(LINK.c) $$(LINK_OUTPUT_OPTION) $$($(1)_OBJ) $$(LDLIBS)
$${$(1)_PRG_DBG}: $$(OBJ_DBG) $$(LIBSDEP)
$$(LINK.c) $$(LINK_OUTPUT_OPTION) $$($(1)_OBJ_DBG) $$(LDLIBS)
ifndef WITHOUT_STLPORT
$${$(1)_PRG_STLDBG}: $$($(1)_OBJ_STLDBG) $$(LIBSDEP)
$$(LINK.c) $$(LINK_OUTPUT_OPTION) $$($(1)_OBJ_STLDBG) $$(LDLIBS)
endif
endif
endef
$(foreach prg,$(PRGNAMES),$(eval $(call prog_lnk,$(prg))))
ifeq ("${_C_SOURCES_ONLY}","")
${PRG}: $(OBJ) $(LIBSDEP)
$(call cpplnk_str,$(OBJ))
${PRG_DBG}: $(OBJ_DBG) $(LIBSDEP)
$(call cpplnk_str,$(OBJ_DBG))
ifndef WITHOUT_STLPORT
${PRG_STLDBG}: $(OBJ_STLDBG) $(LIBSDEP)
$(call cpplnk_str,$(OBJ_STLDBG))
endif
else
${PRG}: $(OBJ) $(LIBSDEP)
$(LINK.c) $(LINK_OUTPUT_OPTION) $(OBJ) $(LDLIBS)
${PRG_DBG}: $(OBJ_DBG) $(LIBSDEP)
$(LINK.c) $(LINK_OUTPUT_OPTION) $(OBJ_DBG) $(LDLIBS)
ifndef WITHOUT_STLPORT
${PRG_STLDBG}: $(OBJ_STLDBG) $(LIBSDEP)
$(LINK.c) $(LINK_OUTPUT_OPTION) $(OBJ_STLDBG) $(LDLIBS)
endif
endif
@@ -0,0 +1,61 @@
# -*- makefile -*- Time-stamp: <08/06/12 15:54:12 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2008
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
ifdef PRGNAME
PRG := $(OUTPUT_DIR)/${PRGNAME}${EXE}
PRG_DBG := $(OUTPUT_DIR_DBG)/${PRGNAME}${EXE}
PRG_STLDBG := $(OUTPUT_DIR_STLDBG)/${PRGNAME}${EXE}
endif
ALLPRGS = ${PRG}
ALLPRGS_DBG = ${PRG_DBG}
ALLPRGS_STLDBG = ${PRG_STLDBG}
define prog_prog
$(1)_PRG := $(OUTPUT_DIR)/$(1)${EXE}
$(1)_PRG_DBG := $(OUTPUT_DIR_DBG)/$(1)${EXE}
$(1)_PRG_STLDBG := $(OUTPUT_DIR_STLDBG)/$(1)${EXE}
ALLPRGS += $${$(1)_PRG}
ALLPRGS_DBG += $${$(1)_PRG_DBG}
ALLPRGS_STLDBG += $${$(1)_PRG_STLDBG}
endef
$(foreach prg,$(PRGNAMES),$(eval $(call prog_prog,$(prg))))
include ${RULESBASE}/gmake/app/${COMPILER_NAME}.mak
include ${RULESBASE}/gmake/app/rules.mak
include ${RULESBASE}/gmake/app/rules-install.mak
define prog_clean
clean::
@rm -f $${$(1)_PRG} $${$(1)_PRG_DBG} $${$(1)_PRG_STLDBG}
uninstall::
@rm -f $$(INSTALL_BIN_DIR)/$$($(1)_PRG) $$(INSTALL_BIN_DIR_DBG)/$$($(1)_PRG_DBG) $$(INSTALL_BIN_DIR_STLDBG)/$$($(1)_PRG_STLDBG)
endef
clean::
ifdef PRGNAME
@-rm -f ${PRG} ${PRG_DBG} ${PRG_STLDBG}
endif
$(foreach prg,$(PRGNAMES),$(eval $(call prog_clean,$(prg))))
distclean::
@-rm -f $(DEPENDS_COLLECTION)
@-rmdir -p ${OUTPUT_DIR} ${OUTPUT_DIR_DBG} ${OUTPUT_DIR_STLDBG} 2>/dev/null
uninstall::
ifdef PRGNAME
@-rm -f $(INSTALL_BIN_DIR)/${PRGNAME}${EXE} $(INSTALL_BIN_DIR_DBG)/${PRGNAME}${EXE} $(INSTALL_BIN_DIR_STLDBG)/${PRGNAME}${EXE}
endif
@-rmdir -p $(INSTALL_BIN_DIR) $(INSTALL_BIN_DIR_DBG) $(INSTALL_BIN_DIR_STLDBG) 2>/dev/null
+258
View File
@@ -0,0 +1,258 @@
# Time-stamp: <07/05/31 01:03:15 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Copyright (c) 2006, 2007
# Francois Dumont
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
ALL_TAGS = all-static all-shared
ifdef LIBNAME
INSTALL_TAGS = install-static install-shared
else
INSTALL_TAGS = install-shared
endif
ifneq ($(OSNAME),linux)
# For Borland Cygwin/MSys are only build environment, they do not represent
# the targetted OS so per default we keep all generated files in STLport
# folder.
BASE_INSTALL_DIR ?= ${STLPORT_DIR}
CXX := bcc32
CC := bcc32
RC := brcc32
DEFS ?=
OPT ?=
CFLAGS = -q -ff
CXXFLAGS = -q -ff
OPT += -w-ccc -w-rch -w-ngu -w-inl -w-eff
# release-shared : OPT += -w-inl
ifdef WITH_DYNAMIC_RTL
release-static : OPT += -tWR
dbg-static : OPT += -tWR
stldbg-static : OPT += -tWR
endif
ifndef WITH_STATIC_RTL
release-shared : OPT += -tWR
dbg-shared : OPT += -tWR
stldbg-shared : OPT += -tWR
endif
ifdef WITHOUT_RTTI
OPT += -RT-
endif
ifndef WITHOUT_THREAD
OPT += -tWM
endif
WINVER ?= 0x0501
DEFS += -DWINVER=$(WINVER)
OUTPUT_OPTION = -o$@
LINK_OUTPUT_OPTION = $@
CPPFLAGS = $(DEFS) $(OPT) $(INCLUDES)
CDEPFLAGS = -E -M
CCDEPFLAGS = -E -M
RCFLAGS = -32 -r -i${STLPORT_INCLUDE_DIR} -dCOMP=bcc
release-shared : RCFLAGS += -dBUILD_INFOS="-O2 -vi-"
dbg-shared : RCFLAGS += -dBUILD=d -dBUILD_INFOS="-R -v -y -D_DEBUG"
stldbg-shared : RCFLAGS += -dBUILD=stld -dBUILD_INFOS="-R -v -y -D_DEBUG -D_STLP_DEBUG"
RC_OUTPUT_OPTION = -fo$@
COMPILE.rc = ${RC} ${RCFLAGS}
LINK.cc = ilink32 $(subst /,\\,$(LDFLAGS))
LDFLAGS += -ap -D -Gn
dbg-static : DEFS += -D_DEBUG
dbg-shared : DEFS += -D_DEBUG
stldbg-static : DEFS += -D_DEBUG
stldbg-shared : DEFS += -D_DEBUG
# STLport DEBUG mode specific defines
stldbg-static : DEFS += -D_STLP_DEBUG
stldbg-shared : DEFS += -D_STLP_DEBUG
stldbg-static-dep : DEFS += -D_STLP_DEBUG
stldbg-shared-dep : DEFS += -D_STLP_DEBUG
# optimization and debug compiler flags
release-static : OPT += -O2 -vi-
release-shared : OPT += -O2 -vi-
LDLIBS += import32.lib kernel32.lib
ifndef WITHOUT_THREAD
ifndef WITH_STATIC_RTL
release-shared : LDLIBS += cw32mti.lib
dbg-shared : LDLIBS += cw32mti.lib
stldbg-shared : LDLIBS += cw32mti.lib
else
release-shared : LDLIBS += cw32mt.lib
dbg-shared : LDLIBS += cw32mt.lib
stldbg-shared : LDLIBS += cw32mt.lib
endif
ifndef WITH_DYNAMIC_RTL
release-static : LDLIBS += cw32mt.lib
dbg-static : LDLIBS += cw32mt.lib
stldbg-static : LDLIBS += cw32mt.lib
else
release-static : LDLIBS += cw32mti.lib
dbg-static : LDLIBS += cw32mti.lib
stldbg-static : LDLIBS += cw32mti.lib
endif
else
ifndef WITH_STATIC_RTL
release-shared : LDLIBS += cw32i.lib
dbg-shared : LDLIBS += cw32i.lib
stldbg-shared : LDLIBS += cw32i.lib
else
release-shared : LDLIBS += cw32.lib
dbg-shared : LDLIBS += cw32.lib
stldbg-shared : LDLIBS += cw32.lib
endif
ifndef WITH_DYNAMIC_RTL
release-static : LDLIBS += cw32.lib
dbg-static : LDLIBS += cw32.lib
stldbg-static : LDLIBS += cw32.lib
else
release-static : LDLIBS += cw32i.lib
dbg-static : LDLIBS += cw32i.lib
stldbg-static : LDLIBS += cw32i.lib
endif
endif
# map output option (see build/Makefiles/gmake/dmc.mak)
MAP_OUTPUT_OPTION =
else # linux
CXX := bc++
CC := bc++
DEFS ?=
OPT ?=
CFLAGS = -q -ff -xp -w-par
CXXFLAGS = -q -ff -xp -w-aus
DEFS += -D_NO_VCL
release-shared: DEFS += -D_RTLDLL
dbg-shared: DEFS += -D_RTLDLL
stldbg-shared: DEFS += -D_RTLDLL
OPT += -w-ccc -w-rch -w-ngu -w-inl -w-eff
ifdef WITHOUT_RTTI
OPT += -RT-
endif
ifndef WITHOUT_THREAD
DEFS += -D__MT__
endif
OUTPUT_OPTION = -o$@
LINK_OUTPUT_OPTION = $@
CPPFLAGS = $(DEFS) $(OPT) $(INCLUDES)
LINK.cc = ilink $(LDFLAGS)
LDFLAGS += -Gn
dbg-static : DEFS += -D_DEBUG
dbg-shared : DEFS += -D_DEBUG
stldbg-static : DEFS += -D_DEBUG
stldbg-shared : DEFS += -D_DEBUG
# STLport DEBUG mode specific defines
stldbg-static : DEFS += -D_STLP_DEBUG
stldbg-shared : DEFS += -D_STLP_DEBUG
stldbg-static-dep : DEFS += -D_STLP_DEBUG
stldbg-shared-dep : DEFS += -D_STLP_DEBUG
# optimization and debug compiler flags
release-static : OPT += -O2 -vi-
release-shared : OPT += -O2 -vi-
dbg-static : OPT += -R -v -y
dbg-shared : OPT += -R -v -y
stldbg-static : OPT += -R -v -y
stldbg-shared : OPT += -R -v -y
ifndef WITHOUT_THREAD
ifdef LIBNAME
release-shared : LDLIBS += libborcrtl.so libborunwind.so libpthread.so.0 libc.so.6 libm.so libdl.so libc_nonshared.a
dbg-shared : LDLIBS += libborcrtl.so libborunwind.so libpthread.so.0 libc.so.6 libm.so libdl.so libc_nonshared.a
stldbg-shared : LDLIBS += libborcrtl.so libborunwind.so libpthread.so.0 libc.so.6 libm.so libdl.so libc_nonshared.a
endif
ifdef PRGNAME
release-shared : LDLIBS += libborcrtl.so libborunwind.so libpthread.so.0 libc.so.6 libm.so libdl.so ../../../lib/libstlport.so
dbg-shared : LDLIBS += libborcrtl.so libborunwind.so libpthread.so.0 libc.so.6 libm.so libdl.so ../../../lib/libstlportg.so
stldbg-shared : LDLIBS += libborcrtl.so libborunwind.so libpthread.so.0 libc.so.6 libm.so libdl.so ../../../lib/libstlportstlg.so
release-static : LDLIBS += libborcrtl.a libborunwind.a libpthread.so.0 libc.so.6 libm.so libdl.so libc_nonshared.a ../../../lib/libstlport.a
dbg-static : LDLIBS += libborcrtl.a libborunwind.a libpthread.so.0 libc.so.6 libm.so libdl.so libc_nonshared.a ../../../lib/libstlportg.a
stldbg-static : LDLIBS += libborcrtl.a libborunwind.a libpthread.so.0 libc.so.6 libm.so libdl.so libc_nonshared.a ../../../lib/libstlportstlg.a
endif
else # single-threaded
ifdef LIBNAME
release-shared : LDLIBS += libborcrtl.so libborunwind.so libc.so.6 libm.so libdl.so libc_nonshared.a
dbg-shared : LDLIBS += libborcrtl.so libborunwind.so libc.so.6 libm.so libdl.so libc_nonshared.a
stldbg-shared : LDLIBS += libborcrtl.so libborunwind.so libc.so.6 libm.so libdl.so libc_nonshared.a
endif
ifdef PRGNAME
release-shared : LDLIBS += libborcrtl.so libborunwind.so libc.so.6 libm.so libdl.so ../../../lib/libstlport.so
dbg-shared : LDLIBS += libborcrtl.so libborunwind.so libc.so.6 libm.so libdl.so ../../../lib/libstlportg.so
stldbg-shared : LDLIBS += libborcrtl.so libborunwind.so libc.so.6 libm.so libdl.so ../../../lib/libstlportstlg.so
release-static : LDLIBS += libborcrtl.a libborunwind.a libc.so.6 libm.so libdl.so libc_nonshared.a ../../../lib/libstlport.a
dbg-static : LDLIBS += libborcrtl.a libborunwind.a libc.so.6 libm.so libdl.so libc_nonshared.a ../../../lib/libstlportg.a
stldbg-static : LDLIBS += libborcrtl.a libborunwind.a libc.so.6 libm.so libdl.so libc_nonshared.a ../../../lib/libstlportst$
endif
endif
# install dir defaults to /usr/local unless defined
BASE_INSTALL_DIR ?= ${SRCROOT}/..
endif # linux
ifdef EXTRA_CXXFLAGS
CXXFLAGS += $(EXTRA_CXXFLAGS)
endif
ifdef EXTRA_CFLAGS
CFLAGS += $(EXTRA_CFLAGS)
endif
# dependency output parser (dependencies collector)
DP_OUTPUT_DIR = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_DBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_DBG)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_STLDBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_STLDBG)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
@@ -0,0 +1,48 @@
# -*- Makefile -*- Time-stamp: <07/05/31 22:18:20 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005, 2006
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
PHONY += clean distclean mostlyclean maintainer-clean uninstall
define obj_clean
clean::
@-rm -f $$($(1)_OBJ) $$($(1)_DEP)
@-rm -f $$($(1)_OBJ_DBG) $$($(1)_DEP_DBG)
@-rm -f $$($(1)_OBJ_STLDBG) $$($(1)_DEP_STLDBG)
endef
clean::
@-rm -f core core.*
ifdef PRGNAME
@-rm -f $(OBJ) $(DEP)
@-rm -f $(OBJ_DBG) $(DEP_DBG)
@-rm -f $(OBJ_STLDBG) $(DEP_STLDBG)
endif
ifdef LIBNAME
@-rm -f $(OBJ) $(DEP) $(_LSUPCPP_AUX_OBJ) $(_LSUPCPP_AUX_TSMP)
@-rm -f $(OBJ_DBG) $(DEP_DBG)
@-rm -f $(OBJ_STLDBG) $(DEP_STLDBG)
endif
$(foreach prg,$(PRGNAMES),$(eval $(call obj_clean,$(prg))))
$(foreach prg,$(LIBNAMES),$(eval $(call obj_clean,$(prg))))
distclean:: clean
# $(DEPENDS_COLLECTION) removed before directory,
# see app/clean.mak and lib/clean.mak
mostlyclean:: clean
@-rm -f $(DEPENDS_COLLECTION)
@-rm -f TAGS tags
maintainer-clean:: distclean
@rm -f ${RULESBASE}/gmake/config.mak
@-rm -f TAGS tags
@@ -0,0 +1,63 @@
# Time-stamp: <03/07/31 14:20:16 ptr>
# $Id: extern.mak 1459 2005-04-18 21:25:32Z ptr $
# This is Complement project (really not extern):
CoMT_LIB_DIR ?= ${INSTALL_LIB_DIR}
CoMT_LIB_DIR_DBG ?= ${INSTALL_LIB_DIR_DBG}
CoMT_LIB_DIR_STLDBG ?= ${INSTALL_LIB_DIR_STLDBG}
CoMT_BIN_DIR ?= ${INSTALL_BIN_DIR}
CoMT_BIN_DIR_DBG ?= ${INSTALL_BIN_DIR}
CoMT_BIN_DIR_STLDBG ?= ${INSTALL_BIN_DIR}
CoMT_INCLUDE_DIR ?= ${CoMT_DIR}/include
# This file reflect versions of third-party libraries that
# used in projects
# STLport library
#STLPORT_LIB_DIR ?= /usr/local/lib
#STLPORT_INCLUDE_DIR ?= /usr/local/include/stlport
#STLPORT_VER ?= 4.5
STLPORT_LIB_DIR ?= $(STLPORT_DIR)/lib
STLPORT_INCLUDE_DIR ?= $(STLPORT_DIR)/stlport
STLPORT_VER ?= 4.5.5
# PostgreSQL library version:
PG_INCLUDE ?= $(PG_DIR)/include
PG_LIB ?= $(PG_DIR)/lib
PG_LIB_VER_MAJOR = 2
PG_LIB_VER_MINOR = 1
# Readline libraries version:
RL_INCLUDE ?= /usr/local/include/readline
RL_LIB ?= /usr/local/lib
RL_LIB_VER_MAJOR = 4
RL_LIB_VER_MINOR = 2
# gSOAP (http://gsoap2.sourceforge.net)
gSOAP_INCLUDE_DIR ?= ${gSOAP_DIR}/include
gSOAP_LIB_DIR ?= ${gSOAP_DIR}/lib
gSOAP_BIN_DIR ?= ${gSOAP_DIR}/bin
# boost (http://www.boost.org, http://boost.sourceforge.net)
BOOST_INCLUDE_DIR ?= ${BOOST_DIR}
# This file reflect versions of third-party libraries that
# used in projects, with make-depend style
ifeq ($(OSNAME),sunos)
PG_DIR ?= /opt/PGpgsql
endif
ifeq ($(OSNAME),linux)
PG_DIR ?= /usr/local/pgsql
endif
gSOAP_DIR ?= /opt/gSOAP-2.2.3
BOOST_DIR ?= ${SRCROOT}/../extern/boost
STLPORT_DIR ?= e:/STLlab/STLport
CoMT_DIR ?= ${SRCROOT}
@@ -0,0 +1,82 @@
# -*- makefile -*- Time-stamp: <03/07/15 18:23:04 ptr>
# $Id: lib.mak 3023 2007-05-16 20:01:32Z dums $
LIB_PREFIX ?=
ifeq (gcc, $(COMPILER_NAME))
LIB_PREFIX := lib
endif
ifeq (gcc, $(COMPILER_NAME))
DBG_SUFFIX := g
else
DBG_SUFFIX := d
endif
STLDBG_SUFFIX := stl${DBG_SUFFIX}
ifdef WITH_STATIC_RTL
LIB_TYPE := _x
else
LIB_TYPE :=
endif
ifdef LIB_MOTIF
LIB_SUFFIX := _$(LIB_MOTIF).${MAJOR}.${MINOR}
else
LIB_SUFFIX := .${MAJOR}.${MINOR}
endif
# Shared libraries:
SO_NAME_BASE := $(LIB_PREFIX)${LIBNAME}${LIB_TYPE}${LIB_SUFFIX}
SO_NAME := ${SO_NAME_BASE}.$(SO)
LIB_NAME := ${SO_NAME_BASE}.$(LIB)
#EXP_NAME := ${SO_NAME_BASE}.$(EXP)
SO_NAME_OUT := $(OUTPUT_DIR)/${SO_NAME}
LIB_NAME_OUT := $(OUTPUT_DIR)/${LIB_NAME}
#EXP_NAME_OUT := $(OUTPUT_DIR)/${EXP_NAME}
SO_NAME_DBG_BASE := $(LIB_PREFIX)${LIBNAME}${DBG_SUFFIX}${LIB_TYPE}${LIB_SUFFIX}
SO_NAME_DBG := ${SO_NAME_DBG_BASE}.$(SO)
LIB_NAME_DBG := ${SO_NAME_DBG_BASE}.$(LIB)
#EXP_NAME_DBG := ${SO_NAME_DBG_BASE}.$(EXP)
SO_NAME_OUT_DBG := $(OUTPUT_DIR_DBG)/${SO_NAME_DBG}
LIB_NAME_OUT_DBG := $(OUTPUT_DIR_DBG)/${LIB_NAME_DBG}
#EXP_NAME_OUT_DBG := $(OUTPUT_DIR_DBG)/${EXP_NAME_DBG}
SO_NAME_STLDBG_BASE := $(LIB_PREFIX)${LIBNAME}${STLDBG_SUFFIX}${LIB_TYPE}${LIB_SUFFIX}
SO_NAME_STLDBG := ${SO_NAME_STLDBG_BASE}.$(SO)
LIB_NAME_STLDBG := ${SO_NAME_STLDBG_BASE}.$(LIB)
#EXP_NAME_STLDBG := ${SO_NAME_STLDBG_BASE}.$(EXP)
SO_NAME_OUT_STLDBG := $(OUTPUT_DIR_STLDBG)/${SO_NAME_STLDBG}
LIB_NAME_OUT_STLDBG := $(OUTPUT_DIR_STLDBG)/${LIB_NAME_STLDBG}
#EXP_NAME_OUT_STLDBG := $(OUTPUT_DIR_STLDBG)/${EXP_NAME_STLDBG}
# Static libraries:
ifeq (gcc, $(COMPILER_NAME))
A_LIB_TYPE :=
else
ifdef WITH_DYNAMIC_RTL
A_LIB_TYPE := _statix
else
A_LIB_TYPE := _static
endif
endif
ifdef LIB_MOTIF
LIB_A_SUFFIX := _$(LIB_MOTIF)
else
LIB_A_SUFFIX :=
endif
A_NAME := $(LIB_PREFIX)${LIBNAME}${A_LIB_TYPE}${LIB_A_SUFFIX}.$(ARCH)
A_NAME_OUT := $(OUTPUT_DIR_A)/$(A_NAME)
A_NAME_DBG := $(LIB_PREFIX)${LIBNAME}${DBG_SUFFIX}${A_LIB_TYPE}${LIB_A_SUFFIX}.${ARCH}
A_NAME_OUT_DBG := $(OUTPUT_DIR_A_DBG)/$(A_NAME_DBG)
A_NAME_STLDBG := ${LIB_PREFIX}${LIBNAME}${STLDBG_SUFFIX}${A_LIB_TYPE}${LIB_A_SUFFIX}.${ARCH}
A_NAME_OUT_STLDBG := $(OUTPUT_DIR_A_STLDBG)/$(A_NAME_STLDBG)
@@ -0,0 +1,23 @@
# -*- makefile -*- Time-stamp: <05/12/09 01:46:01 ptr>
INSTALL_TAGS ?= install-shared
PHONY += install $(INSTALL_TAGS)
install: $(INSTALL_TAGS)
install-release-shared: release-shared $(INSTALL_BIN_DIR) $(INSTALL_LIB_DIR)
$(INSTALL_SO) ${SO_NAME_OUT} $(INSTALL_BIN_DIR)/
$(INSTALL_SO) ${LIB_NAME_OUT} $(INSTALL_LIB_DIR)/
# $(INSTALL_SO) ${EXP_NAME_OUT} $(INSTALL_LIB_DIR)/
install-dbg-shared: dbg-shared $(INSTALL_BIN_DIR) $(INSTALL_LIB_DIR_DBG)
$(INSTALL_SO) ${SO_NAME_OUT_DBG} $(INSTALL_BIN_DIR)/
$(INSTALL_SO) ${LIB_NAME_OUT_DBG} $(INSTALL_LIB_DIR_DBG)/
# $(INSTALL_SO) ${EXP_NAME_OUT_DBG} $(INSTALL_LIB_DIR_DBG)/
install-stldbg-shared: stldbg-shared $(INSTALL_BIN_DIR) $(INSTALL_LIB_DIR_DBG)
$(INSTALL_SO) ${SO_NAME_OUT_STLDBG} $(INSTALL_BIN_DIR)/
$(INSTALL_SO) ${LIB_NAME_OUT_STLDBG} $(INSTALL_LIB_DIR_STLDBG)/
# $(INSTALL_SO) ${EXP_NAME_OUT_STLDBG} $(INSTALL_LIB_DIR_STLDBG)/
@@ -0,0 +1,91 @@
# -*- makefile -*- Time-stamp: <03/10/27 18:15:05 ptr>
# $Id: rules-so.mak 3113 2007-08-08 19:05:21Z dums $
# Shared libraries tags
PHONY += release-shared dbg-shared stldbg-shared
release-shared: $(OUTPUT_DIR) ${SO_NAME_OUT}
dbg-shared: $(OUTPUT_DIR_DBG) ${SO_NAME_OUT_DBG}
stldbg-shared: $(OUTPUT_DIR_STLDBG) ${SO_NAME_OUT_STLDBG}
ifeq (bcc, $(COMPILER_NAME))
# Borland linker
${SO_NAME_OUT}: $(OBJ) $(RES) $(LIBSDEP)
$(LINK.cc) $(subst /,\\,$(START_OBJ) $(OBJ) $(END_OBJ), $(LINK_OUTPUT_OPTION), , $(LDLIBS), , $(RES))
${SO_NAME_OUT_DBG}: $(OBJ_DBG) $(RES_DBG) $(LIBSDEP)
$(LINK.cc) $(subst /,\\,$(START_OBJ) $(OBJ_DBG) $(END_OBJ), $(LINK_OUTPUT_OPTION), , $(LDLIBS), , $(RES_DBG))
${SO_NAME_OUT_STLDBG}: $(OBJ_STLDBG) $(RES_STLDBG) $(LIBSDEP)
$(LINK.cc) $(subst /,\\,$(START_OBJ) $(OBJ_STLDBG) $(END_OBJ), $(LINK_OUTPUT_OPTION), , $(LDLIBS), , $(RES_STLDBG))
else
ifeq (dmc, $(COMPILER_NAME))
# Digital Mars linker
$(SO_NAME_OUT): $(OBJ) $(RES) $(LIBSDEP)
@echo LIBRARY "$(SO_NAME_BASE).dll" > $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo DESCRIPTION \'STLport DLL for Digital Mars C/C++\'>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo EXETYPE NT>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo SUBSYSTEM WINDOWS>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo CODE SHARED EXECUTE>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo DATA READWRITE>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo >> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo EXPORTS>> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo '?cin@std@@3V?$$basic_istream@std@DV?$$char_traits@std@D@1@@1@A' >> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo '?cout@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A' >> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo '?cerr@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A' >> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo '?clog@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A' >> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo '?wcin@std@@3V?$$basic_istream@std@_YV?$$char_traits@std@_Y@1@@1@A' >> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo '?wcout@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A' >> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo '?wcerr@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A' >> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
@echo '?wclog@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A' >> $(OUTPUT_DIR)/$(SO_NAME_BASE).def
$(LINK.cc) $(subst /,\\,$(OBJ),$(LINK_OUTPUT_OPTION),$(MAP_OUTPUT_OPTION),$(LDLIBS),$(DEF_OPTION),$(RES))
$(SO_NAME_OUT_DBG): $(OBJ_DBG) $(RES_DBG) $(LIBSDEP)
@echo LIBRARY "$(SO_NAME_DBG_BASE).dll" > $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo DESCRIPTION \'STLport DLL for Digital Mars C/C++\'>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo EXETYPE NT>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo SUBSYSTEM WINDOWS>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo CODE SHARED EXECUTE>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo DATA READWRITE>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo >> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo EXPORTS>> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo '?cin@std@@3V?$$basic_istream@std@DV?$$char_traits@std@D@1@@1@A' >> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo '?cout@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A' >> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo '?cerr@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A' >> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo '?clog@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A' >> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo '?wcin@std@@3V?$$basic_istream@std@_YV?$$char_traits@std@_Y@1@@1@A' >> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo '?wcout@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A' >> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo '?wcerr@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A' >> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
@echo '?wclog@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A' >> $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
$(LINK.cc) $(subst /,\\,$(OBJ_DBG),$(LINK_OUTPUT_OPTION),$(MAP_OUTPUT_OPTION),$(LDLIBS),$(DEF_OPTION_DBG),$(RES_DBG))
$(SO_NAME_OUT_STLDBG): $(OBJ_STLDBG) $(RES_STLDBG) $(LIBSDEP)
@echo LIBRARY "$(SO_NAME_STLDBG_BASE).dll" > $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo DESCRIPTION \'STLport DLL for Digital Mars C/C++\'>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo EXETYPE NT>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo SUBSYSTEM WINDOWS>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo CODE SHARED EXECUTE>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo DATA READWRITE>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo >> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo EXPORTS>> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo '?cin@std@@3V?$$basic_istream@std@DV?$$char_traits@std@D@1@@1@A' >> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo '?cout@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A' >> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo '?cerr@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A' >> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo '?clog@std@@3V?$$basic_ostream@std@DV?$$char_traits@std@D@1@@1@A' >> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo '?wcin@std@@3V?$$basic_istream@std@_YV?$$char_traits@std@_Y@1@@1@A' >> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo '?wcout@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A' >> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo '?wcerr@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A' >> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@echo '?wclog@std@@3V?$$basic_ostream@std@_YV?$$char_traits@std@_Y@1@@1@A' >> $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
$(LINK.cc) $(subst /,\\,$(OBJ_STLDBG), $(LINK_OUTPUT_OPTION), $(MAP_OUTPUT_OPTION), $(LDLIBS), $(DEF_OPTION_STLDBG), $(RES_STLDBG))
else
# GNU linker
${SO_NAME_OUT}: $(OBJ) $(RES) $(LIBSDEP) $(LSUPC++DEF)
$(LINK.cc) $(LINK_OUTPUT_OPTION) $(OBJ) $(RES) $(LSUPC++DEF) $(LDLIBS) $(STDLIBS)
${SO_NAME_OUT_DBG}: $(OBJ_DBG) $(RES_DBG) $(LIBSDEP) $(LSUPC++DEF)
$(LINK.cc) $(LINK_OUTPUT_OPTION) $(OBJ_DBG) $(RES_DBG) $(LSUPC++DEF) $(LDLIBS) $(STDLIBS)
${SO_NAME_OUT_STLDBG}: $(OBJ_STLDBG) $(RES_STLDBG) $(LIBSDEP) $(LSUPC++DEF)
$(LINK.cc) $(LINK_OUTPUT_OPTION) $(OBJ_STLDBG) $(RES_STLDBG) $(LSUPC++DEF) $(LDLIBS) $(STDLIBS)
endif
endif
@@ -0,0 +1,11 @@
# Time-stamp: <05/09/09 21:12:38 ptr>
# $Id: sys.mak 1802 2005-11-01 08:25:57Z complement $
RC := windres
INSTALL := install
INSTALL_SO := ${INSTALL} -m 0755
INSTALL_A := ${INSTALL} -m 0644
INSTALL_EXE := ${INSTALL} -m 0755
EXT_TEST := test
@@ -0,0 +1,40 @@
# Time-stamp: <05/09/09 21:03:45 ptr>
# $Id: targetsys.mak 2109 2006-01-22 14:15:51Z dums $
CC ?= gcc
CXX ?= g++
# shared library:
SO := dll
ifeq (gcc,$(COMPILER_NAME))
LIB := dll.a
else
LIB := lib
endif
EXP := exp
# executable:
EXE := .exe
# static library extention:
ifeq (dmc,$(COMPILER_NAME))
ARCH := lib
AR := dm_lib -n
AR_INS_R := -c
AR_EXTR := -x
AR_OUT = $(subst /,\,$@)
else
ifeq (bcc,$(COMPILER_NAME))
ARCH := lib
AR := tlib
AR_INS_R := +
AR_EXTR := *
AR_OUT = $(subst /,\,$@)
else
ARCH := a
AR := ar
AR_INS_R := -rs
AR_EXTR := -x
AR_OUT = $@
endif
endif
@@ -0,0 +1,61 @@
# -*- makefile -*- Time-stamp: <06/11/02 10:37:02 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005, 2006
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
DBG_SUFFIX ?= g
STLDBG_SUFFIX ?= stl${DBG_SUFFIX}
# Shared libraries:
SO_NAME := lib${LIBNAME}.$(SO)
SO_NAMEx := lib${LIBNAME}.${MAJOR}.$(SO)
SO_NAMExx := lib${LIBNAME}.${MAJOR}.${MINOR}.$(SO)
SO_NAMExxx := lib${LIBNAME}.${MAJOR}.${MINOR}.${PATCH}.$(SO)
SO_NAME_OUT := $(OUTPUT_DIR)/${SO_NAME}
SO_NAME_OUTx := $(OUTPUT_DIR)/${SO_NAMEx}
SO_NAME_OUTxx := $(OUTPUT_DIR)/${SO_NAMExx}
SO_NAME_OUTxxx := $(OUTPUT_DIR)/${SO_NAMExxx}
SO_NAME_DBG := lib${LIBNAME}${DBG_SUFFIX}.$(SO)
SO_NAME_DBGx := lib${LIBNAME}${DBG_SUFFIX}.${MAJOR}.$(SO)
SO_NAME_DBGxx := lib${LIBNAME}${DBG_SUFFIX}.${MAJOR}.${MINOR}.$(SO)
SO_NAME_DBGxxx := lib${LIBNAME}${DBG_SUFFIX}.${MAJOR}.${MINOR}.${PATCH}.$(SO)
SO_NAME_OUT_DBG := $(OUTPUT_DIR_DBG)/${SO_NAME_DBG}
SO_NAME_OUT_DBGx := $(OUTPUT_DIR_DBG)/${SO_NAME_DBGx}
SO_NAME_OUT_DBGxx := $(OUTPUT_DIR_DBG)/${SO_NAME_DBGxx}
SO_NAME_OUT_DBGxxx := $(OUTPUT_DIR_DBG)/${SO_NAME_DBGxxx}
ifndef WITHOUT_STLPORT
SO_NAME_STLDBG := lib${LIBNAME}${STLDBG_SUFFIX}.$(SO)
SO_NAME_STLDBGx := lib${LIBNAME}${STLDBG_SUFFIX}.${MAJOR}.$(SO)
SO_NAME_STLDBGxx := lib${LIBNAME}${STLDBG_SUFFIX}.${MAJOR}.${MINOR}.$(SO)
SO_NAME_STLDBGxxx := lib${LIBNAME}${STLDBG_SUFFIX}.${MAJOR}.${MINOR}.${PATCH}.$(SO)
SO_NAME_OUT_STLDBG := $(OUTPUT_DIR_STLDBG)/${SO_NAME_STLDBG}
SO_NAME_OUT_STLDBGx := $(OUTPUT_DIR_STLDBG)/${SO_NAME_STLDBGx}
SO_NAME_OUT_STLDBGxx := $(OUTPUT_DIR_STLDBG)/${SO_NAME_STLDBGxx}
SO_NAME_OUT_STLDBGxxx := $(OUTPUT_DIR_STLDBG)/${SO_NAME_STLDBGxxx}
# WITHOUT_STLPORT
endif
# Static libraries:
A_NAME := lib${LIBNAME}.$(ARCH)
A_NAME_OUT := $(OUTPUT_DIR_A)/$(A_NAME)
A_NAME_DBG := lib${LIBNAME}${DBG_SUFFIX}.$(ARCH)
A_NAME_OUT_DBG := $(OUTPUT_DIR_A_DBG)/$(A_NAME_DBG)
ifndef WITHOUT_STLPORT
A_NAME_STLDBG := lib${LIBNAME}${STLDBG_SUFFIX}.$(ARCH)
A_NAME_OUT_STLDBG := $(OUTPUT_DIR_A_STLDBG)/$(A_NAME_STLDBG)
endif
@@ -0,0 +1,18 @@
# Time-stamp: <07/03/08 21:46:12 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
INSTALL := /usr/bin/install
INSTALL_SO := ${INSTALL} -c -m 0755
INSTALL_A := ${INSTALL} -c -m 0644
INSTALL_EXE := ${INSTALL} -c -m 0755
EXT_TEST := test
@@ -0,0 +1,18 @@
# Time-stamp: <07/03/08 21:46:37 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
SO := dylib
ARCH := a
AR := ar
AR_INS_R := -r -s
AR_EXTR := -x
AR_OUT = $@
@@ -0,0 +1,45 @@
# Time-stamp: <07/02/05 12:57:11 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005, 2006
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
PHONY += release-static-dep release-shared-dep dbg-static-dep dbg-shared-dep \
depend
ifndef WITHOUT_STLPORT
PHONY += stldbg-static-dep stldbg-shared-dep
endif
release-static-dep release-shared-dep: $(DEP)
dbg-static-dep dbg-shared-dep: $(DEP_DBG)
ifndef WITHOUT_STLPORT
stldbg-static-dep stldbg-shared-dep: $(DEP_STLDBG)
_ALL_DEP := $(DEP) $(DEP_DBG) $(DEP_STLDBG)
_DASH_DEP := release-shared-dep dbg-shared-dep stldbg-shared-dep
else
_ALL_DEP := $(DEP) $(DEP_DBG)
_DASH_DEP := release-shared-dep dbg-shared-dep
endif
depend:: $(OUTPUT_DIRS) ${_DASH_DEP}
@cat -s $(_ALL_DEP) /dev/null > $(DEPENDS_COLLECTION)
TAGS: $(OUTPUT_DIRS) ${_DASH_DEP}
@cat -s $(_ALL_DEP) /dev/null | sed -e 's/^.*://;s/^ *//;s/\\$$//;s/ $$//;s/ /\n/g' | sort | uniq | xargs etags -I --declarations
ifneq ($(OSREALNAME),mingw)
tags: $(OUTPUT_DIRS) ${_DASH_DEP}
@cat -s $(_ALL_DEP) /dev/null | sed -e 's/^.*://;s/^ *//;s/\\$$//;s/ $$//;s/ /\n/g' | sort | uniq | xargs ctags -d --globals --declarations -t -T
endif
-include $(DEPENDS_COLLECTION)
+153
View File
@@ -0,0 +1,153 @@
# Time-stamp: <07/05/31 01:03:50 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Copyright (c) 2006, 2007
# Francois Dumont
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
# For DMC Cygwin/MSys are only build environment, they do not represent
# the targetted OS so per default we keep all generated files in STLport
# folder.
BASE_INSTALL_DIR ?= ${STLPORT_DIR}
ALL_TAGS = all-static all-shared
ifdef LIBNAME
INSTALL_TAGS = install-static install-shared
endif
CXX := dmc
CC := dmc
DEFS ?=
OPT ?=
CFLAGS = -Ae -C -p -3 -w6 -w12
CXXFLAGS = -Ae -C -p -3 -w12
DEFS += -DSTRICT
ifdef WITH_DYNAMIC_RTL
release-static : OPT += -ND
dbg-static : OPT += -ND
stldbg-static : OPT += -ND
endif
ifndef WITH_STATIC_RTL
release-shared : OPT += -ND
dbg-shared : OPT += -ND
stldbg-shared : OPT += -ND
endif
ifdef WITHOUT_THREAD
DEFS += -D_STLP_NO_THREADS
endif
ifndef WITHOUT_RTTI
OPT += -Ar
endif
WINVER ?= 0x0501
DEFS += -DWINVER=$(WINVER)
OUTPUT_OPTION = -o$@
LINK_OUTPUT_OPTION = $@
CPPFLAGS = $(DEFS) $(OPT) $(INCLUDES)
ifdef EXTRA_CXXFLAGS
CXXFLAGS += $(EXTRA_CXXFLAGS)
endif
ifdef EXTRA_CFLAGS
CFLAGS += $(EXTRA_CFLAGS)
endif
CDEPFLAGS = -E -M
CCDEPFLAGS = -E -M
RCFLAGS = --include-dir=${STLPORT_INCLUDE_DIR} -DCOMP=dmc
release-shared : RCFLAGS += -DBUILD=r -DBUILD_INFOS="-o"
dbg-shared : RCFLAGS += -DBUILD=g -DBUILD_INFOS="-gl -D_DEBUG"
stldbg-shared : RCFLAGS += -DBUILD=stlg -DBUILD_INFOS="-gl -D_STLP_DEBUG"
RC_OUTPUT_OPTION = $(OUTPUT_OPTION)
COMPILE.rc = ${RC} ${RCFLAGS}
LINK.cc = link $(LDFLAGS)
LDLIBS += user32.lib kernel32.lib snn.lib
# STLport DEBUG mode specific defines
dbg-static : DEFS += -D_DEBUG
dbg-shared : DEFS += -D_DEBUG
stldbg-static : DEFS += -D_DEBUG
stldbg-shared : DEFS += -D_DEBUG
dbg-static-dep : DEFS += -D_DEBUG
dbg-shared-dep : DEFS += -D_DEBUG
stldbg-static : DEFS += -D_STLP_DEBUG
stldbg-shared : DEFS += -D_STLP_DEBUG
stldbg-static-dep : DEFS += -D_STLP_DEBUG
stldbg-shared-dep : DEFS += -D_STLP_DEBUG
# optimization and debug compiler flags
release-static : OPT += -o
release-shared : OPT += -o
dbg-static : OPT += -gl
dbg-shared : OPT += -gl
stldbg-static : OPT += -gl
stldbg-shared : OPT += -gl
ifndef WITHOUT_THREAD
release-static : OPT += -D_MT
dbg-static : OPT += -D_MT
stldbg-static : OPT += -D_MT
endif
release-static : AR += -p128
dbg-static : AR += -p512
stldbg-static : AR += -p512
ifndef LIBNAME
ifdef WITH_DYNAMIC_RTL
release-static: DEFS += -D_STLP_USE_STATIC_LIB
dbg-static: DEFS += -D_STLP_USE_STATIC_LIB
stldbg-static: DEFS += -D_STLP_USE_STATIC_LIB
endif
ifdef WITH_STATIC_RTL
release-shared: DEFS += -D_STLP_USE_DYNAMIC_LIB
dbg-shared: DEFS += -D_STLP_USE_DYNAMIC_LIB
stldbg-shared: DEFS += -D_STLP_USE_DYNAMIC_LIB
endif
endif
# map output option (move map files to output dir)
ifdef LIBNAME
release-shared: MAP_OUTPUT_OPTION = $(OUTPUT_DIR)/$(SO_NAME_BASE).map
dbg-shared: MAP_OUTPUT_OPTION = $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).map
stldbg-shared: MAP_OUTPUT_OPTION = $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).map
else
release-shared: MAP_OUTPUT_OPTION = $(OUTPUT_DIR)/$(PRGNAME).map
release-static: MAP_OUTPUT_OPTION = $(OUTPUT_DIR)/$(PRGNAME).map
dbg-shared: MAP_OUTPUT_OPTION = $(OUTPUT_DIR_DBG)/$(PRGNAME).map
dbg-static: MAP_OUTPUT_OPTION = $(OUTPUT_DIR_DBG)/$(PRGNAME).map
stldbg-shared: MAP_OUTPUT_OPTION = $(OUTPUT_DIR_STLDBG)/$(PRGNAME).map
stldbg-static: MAP_OUTPUT_OPTION = $(OUTPUT_DIR_STLDBG)/$(PRGNAME).map
endif
# dependency output parser (dependencies collector)
DP_OUTPUT_DIR = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_DBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_DBG)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_STLDBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_STLDBG)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
@@ -0,0 +1,31 @@
# Time-stamp: <07/05/31 10:14:29 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005, 2006
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
# boost (http://www.boost.org, http://boost.sourceforge.net)
# ifdef BOOST_DIR
# BOOST_INCLUDE_DIR ?= ${BOOST_DIR}
# endif
ifdef STLP_BUILD_BOOST_PATH
BOOST_INCLUDE_DIR ?= ${STLP_BUILD_BOOST_PATH}
endif
# STLport library
ifndef WITHOUT_STLPORT
STLPORT_DIR ?= ${SRCROOT}/..
endif
ifdef STLPORT_DIR
STLPORT_LIB_DIR ?= $(STLPORT_DIR)/${TARGET_NAME}lib
STLPORT_INCLUDE_DIR ?= $(STLPORT_DIR)/stlport
endif
@@ -0,0 +1,18 @@
# Time-stamp: <07/03/08 21:50:00 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
INSTALL := /usr/bin/install
INSTALL_SO := ${INSTALL} -c -m 0755
INSTALL_A := ${INSTALL} -c -m 0644
INSTALL_EXE := ${INSTALL} -c -m 0755
EXT_TEST := test
@@ -0,0 +1,18 @@
# Time-stamp: <07/03/08 21:50:23 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
SO := so
ARCH := a
AR := ar
AR_INS_R := -r
AR_EXTR := -x
AR_OUT = $@
+271
View File
@@ -0,0 +1,271 @@
# Time-stamp: <08/02/28 10:25:46 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2008
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
ifndef _FORCE_CXX
CXX := c++
else
CXX := ${_FORCE_CXX}
endif
ifndef _FORCE_CC
CC := gcc
else
CC := ${_FORCE_CC}
endif
ifeq ($(OSNAME), cygming)
RC := windres
endif
ifdef TARGET_OS
CXX := ${TARGET_OS}-${CXX}
CC := ${TARGET_OS}-${CC}
AS := ${TARGET_OS}-${AS}
endif
CXX_VERSION := $(shell ${CXX} -dumpversion)
CXX_VERSION_MAJOR := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$1; }')
CXX_VERSION_MINOR := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$2; }')
CXX_VERSION_PATCH := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$3; }')
# Check that we need option -fuse-cxa-atexit for compiler
_CXA_ATEXIT := $(shell ${CXX} -v 2>&1 | grep -q -e "--enable-__cxa_atexit" || echo "-fuse-cxa-atexit")
ifeq ($(OSNAME), darwin)
# This is to differentiate Apple-builded compiler from original
# GNU compiler (it has different behaviour)
ifneq ("$(shell ${CXX} -v 2>&1 | grep Apple)", "")
GCC_APPLE_CC := 1
endif
endif
DEFS ?=
OPT ?=
ifdef WITHOUT_STLPORT
INCLUDES =
else
INCLUDES = -I${STLPORT_INCLUDE_DIR}
endif
ifdef BOOST_INCLUDE_DIR
INCLUDES += -I${BOOST_INCLUDE_DIR}
endif
ifeq ($(OSNAME), cygming)
ifeq ($(OSREALNAME), mingw)
# MinGW has problem with /usr/local reference in gcc or linker command line so
# we use a local install for this platform.
BASE_INSTALL_DIR ?= ${STLPORT_DIR}
endif
endif
OUTPUT_OPTION = -o $@
LINK_OUTPUT_OPTION = ${OUTPUT_OPTION}
CPPFLAGS = $(DEFS) $(INCLUDES)
ifdef WITHOUT_RTTI
# -fno-rtti shouldn't be pass to the C compiler, we cannot use OPT so we add it
# directly to the compiler command name.
CXX += -fno-rtti
ifdef STLP_BUILD
# gcc do not define any macro to signal that there is no rtti support:
DEFS += -D_STLP_NO_RTTI
endif
endif
ifeq ($(OSNAME), cygming)
WINVER ?= 0x0501
RCFLAGS = --include-dir=${STLPORT_INCLUDE_DIR} --output-format coff -DCOMP=gcc
release-shared : RCFLAGS += -DBUILD_INFOS=-O2
dbg-shared : RCFLAGS += -DBUILD=g -DBUILD_INFOS=-g
stldbg-shared : RCFLAGS += -DBUILD=stlg -DBUILD_INFOS="-g -D_STLP_DEBUG"
RC_OUTPUT_OPTION = -o $@
CXXFLAGS = -Wall -Wsign-promo -Wcast-qual -fexceptions
ifndef WITHOUT_THREAD
ifeq ($(OSREALNAME), mingw)
CCFLAGS += -mthreads
CFLAGS += -mthreads
CXXFLAGS += -mthreads
ifeq ($(CXX_VERSION_MAJOR),2)
CCFLAGS += -fvtable-thunks
CFLAGS += -fvtable-thunks
CXXFLAGS += -fvtable-thunks
endif
else
ifneq (,$(findstring no-cygwin,$(EXTRA_CXXFLAGS)))
CCFLAGS += -mthreads
CFLAGS += -mthreads
CXXFLAGS += -mthreads
else
DEFS += -D_REENTRANT
endif
endif
endif
CCFLAGS += $(OPT)
CFLAGS += $(OPT)
CXXFLAGS += $(OPT)
COMPILE.rc = $(RC) $(RCFLAGS)
release-static : DEFS += -D_STLP_USE_STATIC_LIB
dbg-static : DEFS += -D_STLP_USE_STATIC_LIB
stldbg-static : DEFS += -D_STLP_USE_STATIC_LIB
ifeq ($(OSREALNAME), mingw)
dbg-shared : DEFS += -D_DEBUG
stldbg-shared : DEFS += -D_DEBUG
dbg-static : DEFS += -D_DEBUG
stldbg-static : DEFS += -D_DEBUG
DEFS += -DWINVER=${WINVER}
else
# When using the -mno-cygwin option we need to take into account WINVER.
# As there is no DEFS for C compiler and an other for C++ we use CFLAGS
# and CXXFLAGS
ifdef EXTRA_CXXFLAGS
ifneq (,$(findstring no-cygwin,$(EXTRA_CXXFLAGS)))
CXXFLAGS += -DWINVER=${WINVER}
endif
endif
ifdef EXTRA_CFLAGS
ifneq (,$(findstring no-cygwin,$(EXTRA_CFLAGS)))
CFLAGS += -DWINVER=${WINVER}
endif
endif
endif
endif
ifndef WITHOUT_THREAD
PTHREAD := -pthread
else
PTHREAD :=
endif
ifeq ($(OSNAME),sunos)
ifndef WITHOUT_THREAD
PTHREADS := -pthreads
else
PTHREADS :=
endif
CCFLAGS = $(PTHREADS) $(OPT)
CFLAGS = $(PTHREADS) $(OPT)
# CXXFLAGS = $(PTHREADS) -nostdinc++ -fexceptions $(OPT)
CXXFLAGS = $(PTHREADS) -fexceptions $(OPT)
endif
ifeq ($(OSNAME),linux)
CCFLAGS = $(PTHREAD) $(OPT)
CFLAGS = $(PTHREAD) $(OPT)
# CXXFLAGS = $(PTHREAD) -nostdinc++ -fexceptions $(OPT)
CXXFLAGS = $(PTHREAD) -fexceptions $(OPT)
endif
ifeq ($(OSNAME),openbsd)
CCFLAGS = $(PTHREAD) $(OPT)
CFLAGS = $(PTHREAD) $(OPT)
# CXXFLAGS = $(PTHREAD) -nostdinc++ -fexceptions $(OPT)
CXXFLAGS = $(PTHREAD) -fexceptions $(OPT)
endif
ifeq ($(OSNAME),freebsd)
CCFLAGS = $(PTHREAD) $(OPT)
CFLAGS = $(PTHREAD) $(OPT)
ifndef WITHOUT_THREAD
DEFS += -D_REENTRANT
endif
# CXXFLAGS = $(PTHREAD) -nostdinc++ -fexceptions $(OPT)
CXXFLAGS = $(PTHREAD) -fexceptions $(OPT)
endif
ifeq ($(OSNAME),darwin)
CCFLAGS = $(OPT)
CFLAGS = $(OPT)
ifndef WITHOUT_THREAD
DEFS += -D_REENTRANT
endif
CXXFLAGS = -fexceptions $(OPT)
release-shared : CXXFLAGS += -dynamic
dbg-shared : CXXFLAGS += -dynamic
stldbg-shared : CXXFLAGS += -dynamic
endif
ifeq ($(OSNAME),hp-ux)
ifneq ($(M_ARCH),ia64)
release-static : OPT += -fno-reorder-blocks
release-shared : OPT += -fno-reorder-blocks
endif
CCFLAGS = $(PTHREAD) $(OPT)
CFLAGS = $(PTHREAD) $(OPT)
# CXXFLAGS = $(PTHREAD) -nostdinc++ -fexceptions $(OPT)
CXXFLAGS = $(PTHREAD) -fexceptions $(OPT)
endif
ifeq ($(CXX_VERSION_MAJOR),2)
CXXFLAGS += -ftemplate-depth-32
endif
# Required for correct order of static objects dtors calls:
ifeq ("$(findstring $(OSNAME),darwin cygming)","")
ifneq ($(CXX_VERSION_MAJOR),2)
CXXFLAGS += $(_CXA_ATEXIT)
endif
endif
# Code should be ready for this option
ifneq ($(OSNAME),cygming)
ifneq ($(CXX_VERSION_MAJOR),2)
ifneq ($(CXX_VERSION_MAJOR),3)
CXXFLAGS += -fvisibility=hidden
CFLAGS += -fvisibility=hidden
endif
endif
endif
ifdef EXTRA_CXXFLAGS
CXXFLAGS += ${EXTRA_CXXFLAGS}
endif
ifdef EXTRA_CFLAGS
CFLAGS += ${EXTRA_CFLAGS}
endif
CDEPFLAGS = -E -M
CCDEPFLAGS = -E -M
# STLport DEBUG mode specific defines
stldbg-static : DEFS += -D_STLP_DEBUG
stldbg-shared : DEFS += -D_STLP_DEBUG
stldbg-static-dep : DEFS += -D_STLP_DEBUG
stldbg-shared-dep : DEFS += -D_STLP_DEBUG
# optimization and debug compiler flags
release-static : OPT += -O2
release-shared : OPT += -O2
dbg-static : OPT += -g
dbg-shared : OPT += -g
#dbg-static-dep : OPT += -g
#dbg-shared-dep : OPT += -g
stldbg-static : OPT += -g
stldbg-shared : OPT += -g
#stldbg-static-dep : OPT += -g
#stldbg-shared-dep : OPT += -g
# dependency output parser (dependencies collector)
DP_OUTPUT_DIR = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_DBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_DBG)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_STLDBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_STLDBG)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
@@ -0,0 +1,21 @@
# Time-stamp: <07/05/31 00:47:11 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Copyright (c) 2006, 2007
# Francois Dumont
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
INSTALL := cp
INSTALL_SO := ${INSTALL}
INSTALL_A := ${INSTALL}
INSTALL_EXE := ${INSTALL}
EXT_TEST := /usr/bin/test
@@ -0,0 +1,22 @@
# Time-stamp: <08/01/29 09:40:35 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
ifeq ($(M_ARCH),ia64)
SO := so
else
SO := sl
endif
ARCH := a
AR := ar
AR_INS_R := -rs
AR_EXTR := -x
AR_OUT = $@
@@ -0,0 +1,85 @@
# Time-stamp: <07/03/08 21:41:21 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
#INCLUDES :=
CXX := icpc
CC := icc
ifdef TARGET_OS
# CXX := ${TARGET_OS}-c++
# CC := ${TARGET_OS}-gcc
endif
CXX_VERSION := $(shell ${CXX} --version | awk 'NR == 1 {print $$3; }')
# if we didn't get anything from that, use the old style for versions < 9
ifeq (${CXX_VERSION},)
CXX_VERSION := $(shell ${CXX} --version)
endif
CXX_VERSION_MAJOR := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$1; }')
CXX_VERSION_MINOR := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$2; }')
# CXX_VERSION_PATCH := $(shell echo ${CXX_VERSION} | awk 'BEGIN { FS = "."; } { print $$3; }')
SYSINCLUDES := -I$(shell which icpc | xargs dirname | xargs dirname)/include/c++
DEFS ?=
OPT ?=
ifndef WITHOUT_THREAD
DEFS += -D_REENTRANT
endif
OUTPUT_OPTION = -o $@
LINK_OUTPUT_OPTION = ${OUTPUT_OPTION}
CPPFLAGS = $(DEFS) $(INCLUDES) $(SYSINCLUDES)
ifeq ($(OSNAME),linux)
CCFLAGS = $(OPT)
CFLAGS = $(OPT)
# CXXFLAGS = -pthread -nostdinc++ -fexceptions -fident $(OPT)
CXXFLAGS = $(OPT)
endif
CDEPFLAGS = -E -M
CCDEPFLAGS = -E -M
# STLport DEBUG mode specific defines
stldbg-static : DEFS += -D_STLP_DEBUG
stldbg-shared : DEFS += -D_STLP_DEBUG
stldbg-static-dep : DEFS += -D_STLP_DEBUG
stldbg-shared-dep : DEFS += -D_STLP_DEBUG
# optimization and debug compiler flags
release-static : OPT += -O2
release-shared : OPT += -O2
dbg-static : OPT += -g
dbg-shared : OPT += -g
#dbg-static-dep : OPT += -g
#dbg-shared-dep : OPT += -g
stldbg-static : OPT += -g
stldbg-shared : OPT += -g
#stldbg-static-dep : OPT += -g
#stldbg-shared-dep : OPT += -g
# dependency output parser (dependencies collector)
DP_OUTPUT_DIR = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_DBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_DBG)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_STLDBG = | sed 's|\($*\)\.o[ :]*|$(OUTPUT_DIR_STLDBG)/\1.o $@ : |g' > $@; \
[ -s $@ ] || rm -f $@
@@ -0,0 +1,35 @@
# -*- makefile -*- Time-stamp: <08/06/12 14:58:49 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2008
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
OPT += -xcode=pic32
dbg-shared: LDFLAGS += -G -Qoption ld -z,initfirst -h$(SO_NAME_DBGxx) ${NOSTDLIB}
stldbg-shared: LDFLAGS += -G -Qoption ld -z,initfirst -h$(SO_NAME_STLDBGxx) ${NOSTDLIB}
release-shared: LDFLAGS += -G -Qoption ld -z,initfirst -h$(SO_NAMExx) ${NOSTDLIB}
DEPENDS_COLLECTION_SUNPRO := $(DEPENDS_COLLECTION).sunpro
compiler-dep :: $(DEPENDS_COLLECTION_SUNPRO)
STD_HEADER_LISTS = $(STLPORT_ETC_DIR)/std_headers.txt \
$(STLPORT_ETC_DIR)/std_headers_cpp_runtime_h.txt \
$(STLPORT_ETC_DIR)/std_headers_c.txt \
$(STLPORT_ETC_DIR)/std_headers_c_h.txt \
$(STLPORT_ETC_DIR)/std_headers_classic_iostreams.txt \
$(STLPORT_ETC_DIR)/std_headers_cpp_runtime.txt
$(DEPENDS_COLLECTION_SUNPRO) : $(STD_HEADER_LISTS)
@echo "Linking header files required for SunPro compiler"
@for file in `cat $(STD_HEADER_LISTS)`; do \
echo "." | awk '{printf("%s", $$0)}' ; \
(cd $(STLPORT_INCLUDE_DIR) ; rm -f $$file.SUNWCCh; ln -s ./$$file $$file.SUNWCCh) ; \
done; echo ""
@cat $(STD_HEADER_LISTS) | awk '{print "$(STLPORT_INCLUDE_DIR)/" $$0 ".SUNWCCh : $(STLPORT_INCLUDE_DIR)/" $$0 }' > $@
@@ -0,0 +1,14 @@
# -*- makefile -*- Time-stamp: <08/06/12 14:59:23 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2008
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
dbg-shared: LDFLAGS += -b +nostl -Wl,+h$(SO_NAME_DBGxx)
stldbg-shared: LDFLAGS += -b +nostl -Wl,+h$(SO_NAME_STLDBGxx)
release-shared: LDFLAGS += -b +nostl -Wl,+h$(SO_NAMExx)
@@ -0,0 +1,83 @@
# -*- makefile -*- Time-stamp: <07/05/31 01:29:22 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Copyright (c) 2006, 2007
# Francois Dumont
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
release-shared : LDFLAGS += -Tpd -w -w-dup
dbg-shared : LDFLAGS += -Tpd -w -w-dup
stldbg-shared : LDFLAGS += -Tpd -w -w-dup
ifneq ($(OSNAME),linux)
release-shared : LDFLAGS += -V4.0 -Gi
dbg-shared : LDFLAGS += -V4.0 -Gi
stldbg-shared : LDFLAGS += -V4.0 -Gi
release-shared : OPT += -tWD
dbg-shared : OPT += -tWD
stldbg-shared : OPT += -tWD
START_OBJ := c0d32.obj
else
release-shared : OPT += -tD -VP
dbg-shared : OPT += -tD -VP
stldbg-shared : OPT += -tD -VP
release-shared: DEFS += -D_DLL
dbg-shared: DEFS += -D_DLL
stldbg-shared: DEFS += -D_DLL
START_OBJ := borinitso.o
endif
# optimization and debug compiler flags
dbg-static : OPT += -R -v -y
dbg-shared : OPT += -R -v -y
stldbg-static : OPT += -R -v -y
stldbg-shared : OPT += -R -v -y
dbg-shared : LDFLAGS += -v
dbg-static : LDFLAGS += -v
stldbg-shared : LDFLAGS += -v
stldbg-static : LDFLAGS += -v
install-shared: install-release-shared install-dbg-shared install-stldbg-shared
install: install-shared
ifneq ($(OSNAME),linux)
install-dbg-shared: install-dbg-shared-tds
install-stldbg-shared: install-stldbg-shared-tds
endif
BASE_LIBNAME := $(LIB_PREFIX)${LIBNAME}${LIB_TYPE}${LIB_SUFFIX}
BASE_LIBNAME_DBG := $(LIB_PREFIX)${LIBNAME}${DBG_SUFFIX}${LIB_TYPE}${LIB_SUFFIX}
BASE_LIBNAME_STLDBG := $(LIB_PREFIX)${LIBNAME}${STLDBG_SUFFIX}${LIB_TYPE}${LIB_SUFFIX}
BASE_LIBNAMES = ${BASE_LIBNAME} ${BASE_LIBNAME_DBG} ${BASE_LIBNAME_STLDBG}
BASE_LIB_EXTS = lib dll tds map res
LIB_FILES := $(foreach n,$(BASE_LIBNAMES),$(foreach e,$(BASE_LIB_EXTS),$(n).$(e)))
install-dbg-shared-tds:
$(INSTALL_SO) $(OUTPUT_DIR_DBG)/${BASE_LIBNAME_DBG}.tds $(INSTALL_BIN_DIR)/
install-stldbg-shared-tds:
$(INSTALL_SO) $(OUTPUT_DIR_STLDBG)/${BASE_LIBNAME_STLDBG}.tds $(INSTALL_BIN_DIR)/
clean::
$(foreach d,$(OUTPUT_DIRS),$(foreach f,$(LIB_FILES),@rm -f $(d)/$(f)))
uninstall::
$(foreach d,$(INSTALL_DIRS),$(foreach f,$(LIB_FILES),@rm -f $(d)/$(f)))
$(foreach d,$(INSTALL_DIRS),@-rmdir -p $(d) 2>/dev/null)
@@ -0,0 +1,115 @@
# -*- makefile -*- Time-stamp: <07/05/31 22:15:12 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
define lib_clean
clean::
@-rm -f $${$(1)_SO_NAME_OUT}
@-rm -f $${$(1)_SO_NAME_OUTx}
@-rm -f $${$(1)_SO_NAME_OUTxx}
@-rm -f $${$(1)_SO_NAME_OUTxxx}
@-rm -f $${$(1)_SO_NAME_OUT_DBG}
@-rm -f $${$(1)_SO_NAME_OUT_DBGx}
@-rm -f $${$(1)_SO_NAME_OUT_DBGxx}
@-rm -f $${$(1)_SO_NAME_OUT_DBGxxx}
@-rm -f $${$(1)_SO_NAME_OUT_STLDBG}
@-rm -f $${$(1)_SO_NAME_OUT_STLDBGx}
@-rm -f $${$(1)_SO_NAME_OUT_STLDBGxx}
@-rm -f $${$(1)_SO_NAME_OUT_STLDBGxxx}
@-rm -f $${$(1)_A_NAME_OUT}
@-rm -f $${$(1)_A_NAME_OUT_DBG}
@-rm -f $${$(1)_A_NAME_OUT_STLDBG}
ifeq ($(OSNAME), cygming)
@-rm -f $${$(1)_LIB_NAME_OUT}
@-rm -f $${$(1)_LIB_NAME_OUT_DBG}
@-rm -f $${$(1)_LIB_NAME_OUT_STLDBG}
@-rm -f $${$(1)_RES}
@-rm -f $${$(1)_RES_DBG}
@-rm -f $${$(1)_RES_STLDBG}
ifneq ($(OSREALNAME), mingw)
@-rm -f ${LSUPC++DEF}
endif
endif
uninstall::
@-rm -f $$(INSTALL_LIB_DIR)/$$($(1)_SO_NAME)
@-rm -f $$(INSTALL_LIB_DIR)/$$($(1)_SO_NAMEx)
@-rm -f $$(INSTALL_LIB_DIR)/$$($(1)_SO_NAMExx)
@-rm -f $$(INSTALL_LIB_DIR)/$$($(1)_SO_NAMExxx)
@-rm -f $$(INSTALL_LIB_DIR_DBG)/$$($(1)_SO_NAME_DBG)
@-rm -f $$(INSTALL_LIB_DIR_DBG)/$$($(1)_SO_NAME_DBGx)
@-rm -f $$(INSTALL_LIB_DIR_DBG)/$$($(1)_SO_NAME_DBGxx)
@-rm -f $$(INSTALL_LIB_DIR_DBG)/$$($(1)_SO_NAME_DBGxxx)
@-rm -f $$(INSTALL_LIB_DIR_STLDBG)/$$($(1)_SO_NAME_STLDBG)
@-rm -f $$(INSTALL_LIB_DIR_STLDBG)/$$($(1)_SO_NAME_STLDBGx)
@-rm -f $$(INSTALL_LIB_DIR_STLDBG)/$$($(1)_SO_NAME_STLDBGxx)
@-rm -f $$(INSTALL_LIB_DIR_STLDBG)/$$($(1)_SO_NAME_STLDBGxxx)
@-rm -f $$(INSTALL_LIB_DIR)/$${$(1)_A_NAME_OUT}
@-rm -f $$(INSTALL_LIB_DIR_DBG)/$${$(1)_A_NAME_OUT_DBG}
@-rm -f $$(INSTALL_LIB_DIR_STLDBG)/$${$(1)_A_NAME_OUT_STLDBG}
@-rmdir -p $$(INSTALL_LIB_DIR) $$(INSTALL_LIB_DIR_DBG) $$(INSTALL_LIB_DIR_STLDBG) 2>/dev/null
endef
$(foreach nm,$(LIBNAMES),$(eval $(call lib_clean,$(nm))))
clean::
ifdef LIBNAME
@-rm -f ${SO_NAME_OUT}
@-rm -f ${SO_NAME_OUTx}
@-rm -f ${SO_NAME_OUTxx}
@-rm -f ${SO_NAME_OUTxxx}
@-rm -f ${SO_NAME_OUT_DBG}
@-rm -f ${SO_NAME_OUT_DBGx}
@-rm -f ${SO_NAME_OUT_DBGxx}
@-rm -f ${SO_NAME_OUT_DBGxxx}
@-rm -f ${SO_NAME_OUT_STLDBG}
@-rm -f ${SO_NAME_OUT_STLDBGx}
@-rm -f ${SO_NAME_OUT_STLDBGxx}
@-rm -f ${SO_NAME_OUT_STLDBGxxx}
@-rm -f ${A_NAME_OUT}
@-rm -f ${A_NAME_OUT_DBG}
@-rm -f ${A_NAME_OUT_STLDBG}
ifeq ($(OSNAME), cygming)
@-rm -f ${LIB_NAME_OUT}
@-rm -f ${LIB_NAME_OUT_DBG}
@-rm -f ${LIB_NAME_OUT_STLDBG}
@-rm -f ${RES}
@-rm -f ${RES_DBG}
@-rm -f ${RES_STLDBG}
ifneq ($(OSREALNAME), mingw)
@-rm -f ${LSUPC++DEF}
endif
endif
endif
distclean::
@-rm -f $(DEPENDS_COLLECTION)
@-rmdir -p $(AUX_DIR) ${OUTPUT_DIR} ${OUTPUT_DIR_DBG} ${OUTPUT_DIR_STLDBG} 2>/dev/null
uninstall::
ifdef LIBNAME
@-rm -f $(INSTALL_LIB_DIR)/$(SO_NAME)
@-rm -f $(INSTALL_LIB_DIR)/$(SO_NAMEx)
@-rm -f $(INSTALL_LIB_DIR)/$(SO_NAMExx)
@-rm -f $(INSTALL_LIB_DIR)/$(SO_NAMExxx)
@-rm -f $(INSTALL_LIB_DIR_DBG)/$(SO_NAME_DBG)
@-rm -f $(INSTALL_LIB_DIR_DBG)/$(SO_NAME_DBGx)
@-rm -f $(INSTALL_LIB_DIR_DBG)/$(SO_NAME_DBGxx)
@-rm -f $(INSTALL_LIB_DIR_DBG)/$(SO_NAME_DBGxxx)
@-rm -f $(INSTALL_LIB_DIR_STLDBG)/$(SO_NAME_STLDBG)
@-rm -f $(INSTALL_LIB_DIR_STLDBG)/$(SO_NAME_STLDBGx)
@-rm -f $(INSTALL_LIB_DIR_STLDBG)/$(SO_NAME_STLDBGxx)
@-rm -f $(INSTALL_LIB_DIR_STLDBG)/$(SO_NAME_STLDBGxxx)
@-rm -f $(INSTALL_LIB_DIR)/${A_NAME_OUT}
@-rm -f $(INSTALL_LIB_DIR_DBG)/${A_NAME_OUT_DBG}
@-rm -f $(INSTALL_LIB_DIR_STLDBG)/${A_NAME_OUT_STLDBG}
endif
@-rmdir -p $(INSTALL_LIB_DIR) $(INSTALL_LIB_DIR_DBG) $(INSTALL_LIB_DIR_STLDBG) 2>/dev/null
@@ -0,0 +1,25 @@
# -*- makefile -*- Time-stamp: <07/05/31 01:29:36 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Copyright (c) 2006, 2007
# Francois Dumont
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
release-shared: OPT += -WD
dbg-shared: OPT += -WD
stldbg-shared: OPT += -WD
release-shared: LDFLAGS += /DELEXECUTABLE/IMPLIB:$(subst /,\\,$(OUTPUT_DIR)/$(SO_NAME_BASE).lib)
dbg-shared: LDFLAGS += /CODEVIEW/DELEXECUTABLE/IMPLIB:$(subst /,\\,$(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).lib)
stldbg-shared: LDFLAGS += /CODEVIEW/DELEXECUTABLE/IMPLIB:$(subst /,\\,$(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).lib)
DEF_OPTION = $(OUTPUT_DIR)/$(SO_NAME_BASE).def
DEF_OPTION_DBG = $(OUTPUT_DIR_DBG)/$(SO_NAME_DBG_BASE).def
DEF_OPTION_STLDBG = $(OUTPUT_DIR_STLDBG)/$(SO_NAME_STLDBG_BASE).def
@@ -0,0 +1,311 @@
# -*- makefile -*- Time-stamp: <08/06/12 15:48:58 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2008
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
# Oh, the commented below work for gmake 3.78.1 and above,
# but phrase without tag not work for it. Since gmake 3.79
# tag with assignment fail, but work assignment for all tags
# (really that more correct).
ifneq ($(OSNAME), cygming)
OPT += -fPIC
endif
ifndef NOT_USE_NOSTDLIB
ifeq ($(CXX_VERSION_MAJOR),2)
# i.e. gcc before 3.x.x: 2.95, etc.
# gcc before 3.x don't had libsupc++.a and libgcc_s.so
# exceptions and operators new are in libgcc.a
# Unfortunatly gcc before 3.x has a buggy C++ language support outside stdc++, so definition of STDLIBS below is commented
NOT_USE_NOSTDLIB := 1
#STDLIBS := $(shell ${CXX} -print-file-name=libgcc.a) -lpthread -lc -lm
endif
ifeq ($(CXX_VERSION_MAJOR),3)
# gcc before 3.3 (i.e. 3.0.x, 3.1.x, 3.2.x) has buggy libsupc++, so we should link with libstdc++ to avoid one
ifeq ($(CXX_VERSION_MINOR),0)
NOT_USE_NOSTDLIB := 1
endif
ifeq ($(CXX_VERSION_MINOR),1)
NOT_USE_NOSTDLIB := 1
endif
ifeq ($(CXX_VERSION_MINOR),2)
NOT_USE_NOSTDLIB := 1
endif
endif
endif
ifndef NOT_USE_NOSTDLIB
ifeq ($(OSNAME),linux)
_USE_NOSTDLIB := 1
endif
ifeq ($(OSNAME),openbsd)
_USE_NOSTDLIB := 1
endif
ifeq ($(OSNAME),freebsd)
_USE_NOSTDLIB := 1
endif
ifeq ($(OSNAME),netbsd)
_USE_NOSTDLIB := 1
endif
ifeq ($(OSNAME),sunos)
_USE_NOSTDLIB := 1
endif
ifeq ($(OSNAME),darwin)
_USE_NOSTDLIB := 1
endif
ifeq ($(OSNAME),cygming)
_USE_NOSTDLIB := 1
endif
endif
ifndef WITHOUT_STLPORT
ifeq (${STLPORT_LIB_DIR},)
ifneq ($(OSNAME),cygming)
release-shared: STLPORT_LIB = -lstlport
dbg-shared: STLPORT_LIB = -lstlportg
stldbg-shared: STLPORT_LIB = -lstlportstlg
else
LIB_VERSION = ${LIBMAJOR}.${LIBMINOR}
release-shared: STLPORT_LIB = -lstlport.${LIB_VERSION}
dbg-shared: STLPORT_LIB = -lstlportg.${LIB_VERSION}
stldbg-shared: STLPORT_LIB = -lstlportstlg.${LIB_VERSION}
endif
else
# STLPORT_LIB_DIR not empty
ifneq ($(OSNAME),cygming)
release-shared: STLPORT_LIB = -L${STLPORT_LIB_DIR} -lstlport
dbg-shared: STLPORT_LIB = -L${STLPORT_LIB_DIR} -lstlportg
stldbg-shared: STLPORT_LIB = -L${STLPORT_LIB_DIR} -lstlportstlg
else
LIB_VERSION = ${LIBMAJOR}.${LIBMINOR}
release-shared: STLPORT_LIB = -L${STLPORT_LIB_DIR} -lstlport.${LIB_VERSION}
dbg-shared: STLPORT_LIB = -L${STLPORT_LIB_DIR} -lstlportg.${LIB_VERSION}
stldbg-shared: STLPORT_LIB = -L${STLPORT_LIB_DIR} -lstlportstlg.${LIB_VERSION}
endif
endif
endif
ifdef _USE_NOSTDLIB
NOSTDLIB :=
# Check whether gcc builded with --disable-shared
ifeq ($(shell ${CXX} ${CXXFLAGS} -print-file-name=libgcc_eh.a),libgcc_eh.a)
# gcc builded with --disable-shared, (no library libgcc_eh.a); all exception support in libgcc.a
_LGCC_EH :=
_LGCC_S := -lgcc
else
# gcc builded with --enable-shared (default)
ifdef USE_STATIC_LIBGCC
# if force usage of static libgcc, then exceptions support should be taken from libgcc_eh
_LGCC_EH := -lgcc_eh
_LGCC_S := -lgcc
else
#ifneq ($(OSNAME),darwin)
# otherwise, exceptions support is in libgcc_s.so
_LGCC_EH :=
ifneq ($(OSNAME),darwin)
_LGCC_S := -lgcc_s
else
ifeq ($(MACOSX_TEN_FIVE),true)
_LGCC_S := -lgcc_s.10.5
else
_LGCC_S := -lgcc_s.10.4
endif
# end of Darwin
endif
# end of !USE_STATIC_LIBGCC
endif
# end of present libgcc_eh.a
endif
_LSUPCPP := $(shell ${CXX} ${CXXFLAGS} -print-file-name=libsupc++.a)
ifeq (${OSNAME},darwin)
ifdef GCC_APPLE_CC
_LSUPCPP := $(shell mkdir -p $(PRE_OUTPUT_DIR) && lipo ${_LSUPCPP} -thin ${M_ARCH} -output $(PRE_OUTPUT_DIR)/libsupc++.a && echo $(PRE_OUTPUT_DIR)/libsupc++.a)
endif
endif
ifneq (${_LSUPCPP},libsupc++.a)
_LSUPCPP_OBJ := $(shell $(AR) t ${_LSUPCPP})
_LSUPCPP_AUX_OBJ := $(addprefix $(AUX_DIR)/,${_LSUPCPP_OBJ})
_LSUPCPP_TSMP := .supc++
_LSUPCPP_AUX_TSMP:= $(AUX_DIR)/$(_LSUPCPP_TSMP)
endif
# ifeq ($(CXX_VERSION_MAJOR),3)
# Include whole language support archive (libsupc++.a) into libstlport:
# all C++ issues are in libstlport now.
ifeq ($(OSNAME),linux)
START_OBJ := $(shell for o in crti.o crtbeginS.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
#START_A_OBJ := $(shell for o in crti.o crtbeginT.o; do ${CXX} -print-file-name=$$o; done)
END_OBJ := $(shell for o in crtendS.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
STDLIBS = -Wl,--whole-archive -lsupc++ ${_LGCC_EH} -Wl,--no-whole-archive ${_LGCC_S} -lpthread -lc -lm
endif
ifeq ($(OSNAME),openbsd)
START_OBJ := $(shell for o in crtbeginS.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
END_OBJ := $(shell for o in crtendS.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
STDLIBS = -Wl,--whole-archive -lsupc++ ${_LGCC_EH} -Wl,--no-whole-archive ${_LGCC_S} -lpthread -lc -lm
endif
ifeq ($(OSNAME),freebsd)
# FreeBSD < 5.3 should use -lc_r, while FreeBSD >= 5.3 use -lpthread
PTHR := $(shell if [ ${OSREL_MAJOR} -gt 5 ] ; then echo "pthread" ; else if [ ${OSREL_MAJOR} -lt 5 ] ; then echo "c_r" ; else if [ ${OSREL_MINOR} -lt 3 ] ; then echo "c_r" ; else echo "pthread"; fi ; fi ; fi)
START_OBJ := $(shell for o in crti.o crtbeginS.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
END_OBJ := $(shell for o in crtendS.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
STDLIBS := -Wl,--whole-archive -lsupc++ ${_LGCC_EH} -Wl,--no-whole-archive ${_LGCC_S} -l${PTHR} -lc -lm
endif
ifeq ($(OSNAME),netbsd)
START_OBJ := $(shell for o in crti.o crtbeginS.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
END_OBJ := $(shell for o in crtendS.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
STDLIBS = -Wl,--whole-archive -lsupc++ ${_LGCC_EH} -Wl,--no-whole-archive ${_LGCC_S} -lpthread -lc -lm
endif
ifeq ($(OSNAME),sunos)
START_OBJ := $(shell for o in crti.o crtbegin.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
END_OBJ := $(shell for o in crtend.o crtn.o; do ${CXX} ${CXXFLAGS} -print-file-name=$$o; done)
STDLIBS := -Wl,-zallextract -lsupc++ ${_LGCC_EH} -Wl,-zdefaultextract ${_LGCC_S} -lpthread -lc -lm
endif
ifeq ($(OSNAME),darwin)
ifndef USE_STATIC_LIBGCC
# MacOS X, shared-libgcc
ifeq ($(MACOSX_TEN_FIVE),true)
# MacOS X >= 10.5
START_OBJ :=
else
# MacOS X < 10.5
START_OBJ :=
endif
else
# MacOS X, not shared-libgcc
START_OBJ :=
endif
END_OBJ :=
# -all_load don't demonstrate any visible effect, looks like
# this is dummy option; but nevertheless, with _LSUPCPP_AUX_OBJ
# trick (as in static library) we can resolve problem, in potential
ifdef GCC_APPLE_CC
STDLIBS := ${_LGCC_S} -lc -lm -all_load ${_LSUPCPP} ${_LGCC_EH}
else
LDFLAGS += -single_module
STDLIBS := ${_LGCC_S} -lc -lm -all_load -lsupc++ ${_LGCC_EH}
endif
endif
#END_A_OBJ := $(shell for o in crtn.o; do ${CXX} -print-file-name=$$o; done)
# endif
ifneq ($(OSNAME),cygming)
NOSTDLIB := -nostdlib
else
NOSTDLIB := -nodefaultlibs
ifndef USE_STATIC_LIBGCC
ifeq ($(shell ${CXX} ${CXXFLAGS} -print-file-name=libgcc_s.a),libgcc_s.a)
_LGCC_S := -lgcc
else
_LGCC_S := -lgcc_s
endif
else
_LGCC_S := -lgcc
endif
ifeq ($(OSREALNAME),mingw)
STDLIBS = -lsupc++ ${_LGCC_S} -lm -lmoldname -lmingw32 -lmingwex -lmsvcrt -lkernel32
else
LIBSUPC++ := $(shell ${CXX} ${CXXFLAGS} -print-file-name=libsupc++.a)
LSUPC++DEF := $(PRE_OUTPUT_DIR)/libsupc++.def
$(LSUPC++DEF) : $(LIBSUPC++)
dlltool --export-all-symbols --output-def=$(LSUPC++DEF) $(LIBSUPC++)
ifneq (,$(findstring no-cygwin,$(EXTRA_CXXFLAGS)))
STDLIBS = -Wl,-whole-archive -lsupc++ -Wl,-no-whole-archive ${_LGCC_S} -lm -lmoldname -lmingw32 -lmingwex -lmsvcrt -lkernel32
else
STDLIBS = -Wl,-whole-archive -lsupc++ -Wl,--no-whole-archive ${_LGCC_S} -lpthread -lm -lc -lkernel32
endif
endif
endif
else
ifndef WITHOUT_STLPORT
ifndef STLP_BUILD
STDLIBS = ${STLPORT_LIB}
else
STDLIBS =
endif
else
STDLIBS =
endif
endif
ifneq ($(OSNAME),darwin)
dbg-shared: LDFLAGS += -shared
stldbg-shared: LDFLAGS += -shared
release-shared: LDFLAGS += -shared
endif
ifeq ($(OSNAME),hp-ux)
dbg-shared: LDFLAGS += -Wl,-dynamic -Wl,+h$(SO_NAME_DBGxx)
stldbg-shared: LDFLAGS += -Wl,-dynamic -Wl,+h$(SO_NAME_STLDBGxx)
release-shared: LDFLAGS += -Wl,-dynamic -Wl,+h$(SO_NAMExx)
endif
ifeq ($(OSNAME),sunos)
dbg-shared: LDFLAGS += -Wl,-h$(SO_NAME_DBGxx) ${NOSTDLIB}
stldbg-shared: LDFLAGS += -Wl,-h$(SO_NAME_STLDBGxx) ${NOSTDLIB}
release-shared: LDFLAGS += -Wl,-h$(SO_NAMExx) ${NOSTDLIB}
endif
ifeq ($(OSNAME),linux)
dbg-shared: LDFLAGS += -Wl,-h$(SO_NAME_DBGxx) ${NOSTDLIB}
stldbg-shared: LDFLAGS += -Wl,-h$(SO_NAME_STLDBGxx) ${NOSTDLIB}
release-shared: LDFLAGS += -Wl,-h$(SO_NAMExx) ${NOSTDLIB}
endif
ifeq ($(OSNAME),cygming)
ifndef USE_STATIC_LIBGCC
dbg-shared: LDFLAGS += -shared-libgcc
stldbg-shared: LDFLAGS += -shared-libgcc
release-shared: LDFLAGS += -shared-libgcc
endif
dbg-shared: LDFLAGS += -Wl,--out-implib=${LIB_NAME_OUT_DBG},--enable-auto-image-base ${NOSTDLIB}
stldbg-shared: LDFLAGS += -Wl,--out-implib=${LIB_NAME_OUT_STLDBG},--enable-auto-image-base ${NOSTDLIB}
release-shared: LDFLAGS += -Wl,--out-implib=${LIB_NAME_OUT},--enable-auto-image-base ${NOSTDLIB}
dbg-static: LDFLAGS += -static
stldbg-static: LDFLAGS += -static
release-static: LDFLAGS += -static
endif
ifeq ($(OSNAME),freebsd)
dbg-shared: LDFLAGS += -Wl,-h$(SO_NAME_DBGxx) ${NOSTDLIB}
stldbg-shared: LDFLAGS += -Wl,-h$(SO_NAME_STLDBGxx) ${NOSTDLIB}
release-shared: LDFLAGS += -Wl,-h$(SO_NAMExx) ${NOSTDLIB}
endif
ifeq ($(OSNAME),darwin)
CURRENT_VERSION := ${MAJOR}.${MINOR}.${PATCH}
COMPATIBILITY_VERSION := $(CURRENT_VERSION)
dbg-shared: LDFLAGS += -dynamic -dynamiclib -compatibility_version $(COMPATIBILITY_VERSION) -current_version $(CURRENT_VERSION) -install_name $(SO_NAME_DBGxx) ${NOSTDLIB}
stldbg-shared: LDFLAGS += -dynamic -dynamiclib -compatibility_version $(COMPATIBILITY_VERSION) -current_version $(CURRENT_VERSION) -install_name $(SO_NAME_STLDBGxx) ${NOSTDLIB}
release-shared: LDFLAGS += -dynamic -dynamiclib -compatibility_version $(COMPATIBILITY_VERSION) -current_version $(CURRENT_VERSION) -install_name $(SO_NAMExx) ${NOSTDLIB}
dbg-static: LDFLAGS += -staticlib
stldbg-static: LDFLAGS += -staticlib
release-static: LDFLAGS += -staticlib
endif
ifeq ($(OSNAME),openbsd)
dbg-shared: LDFLAGS += -Wl,-soname -Wl,$(SO_NAME_DBGxx) ${NOSTDLIB}
stldbg-shared: LDFLAGS += -Wl,-soname -Wl,$(SO_NAME_STLDBGxx) ${NOSTDLIB}
release-shared: LDFLAGS += -Wl,-soname -Wl,$(SO_NAMExx) ${NOSTDLIB}
endif
@@ -0,0 +1,19 @@
# -*- makefile -*- Time-stamp: <08/06/12 15:00:07 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2008
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
OPT += -KPIC
ifeq ($(OSNAME),linux)
dbg-shared: LDFLAGS += -shared -Wl,-h$(SO_NAME_DBGxx)
stldbg-shared: LDFLAGS += -shared -Wl,-h$(SO_NAME_STLDBGxx)
release-shared: LDFLAGS += -shared -Wl,-h$(SO_NAMExx)
endif
@@ -0,0 +1,38 @@
# -*- makefile -*- Time-stamp: <07/05/31 22:11:48 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
# Static libraries tags
PHONY += release-static dbg-static stldbg-static
ifneq ($(_LSUPCPP_OBJ),"")
$(_LSUPCPP_AUX_TSMP): $(_LSUPCPP)
if [ ! -d $(AUX_DIR) ]; then mkdir -p $(AUX_DIR); fi
cd $(AUX_DIR); $(AR) xo $(_LSUPCPP) && touch -r $(_LSUPCPP) $(_LSUPCPP_TSMP)
endif
release-static: $(OUTPUT_DIR_A) ${A_NAME_OUT}
dbg-static: $(OUTPUT_DIR_A_DBG) ${A_NAME_OUT_DBG}
stldbg-static: $(OUTPUT_DIR_A_STLDBG) ${A_NAME_OUT_STLDBG}
${A_NAME_OUT}: $(OBJ_A) $(_LSUPCPP_AUX_TSMP)
rm -f $@
$(AR) $(AR_INS_R) $(AR_OUT) $(OBJ_A) $(_LSUPCPP_AUX_OBJ)
${A_NAME_OUT_DBG}: $(OBJ_A_DBG) $(_LSUPCPP_AUX_TSMP)
rm -f $@
$(AR) $(AR_INS_R) $(AR_OUT) $(OBJ_A_DBG) $(_LSUPCPP_AUX_OBJ)
${A_NAME_OUT_STLDBG}: $(OBJ_A_STLDBG) $(_LSUPCPP_AUX_TSMP)
rm -f $@
$(AR) $(AR_INS_R) $(AR_OUT) $(OBJ_A_STLDBG) $(_LSUPCPP_AUX_OBJ)
@@ -0,0 +1,34 @@
# -*- makefile -*- Time-stamp: <06/11/02 10:34:43 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005, 2006
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
PHONY += install-release-static install-dbg-static install-stldbg-static
install-release-static: release-static
@if [ ! -d $(INSTALL_LIB_DIR) ] ; then \
mkdir -p $(INSTALL_LIB_DIR) ; \
fi
$(INSTALL_A) ${A_NAME_OUT} $(INSTALL_LIB_DIR)
install-dbg-static: dbg-static
@if [ ! -d $(INSTALL_LIB_DIR_DBG) ] ; then \
mkdir -p $(INSTALL_LIB_DIR_DBG) ; \
fi
$(INSTALL_A) ${A_NAME_OUT_DBG} $(INSTALL_LIB_DIR_DBG)
ifndef WITHOUT_STLPORT
install-stldbg-static: stldbg-static
@if [ ! -d $(INSTALL_LIB_DIR_STLDBG) ] ; then \
mkdir -p $(INSTALL_LIB_DIR_STLDBG) ; \
fi
$(INSTALL_A) ${A_NAME_OUT_STLDBG} $(INSTALL_LIB_DIR_STLDBG)
endif
@@ -0,0 +1,37 @@
# -*- makefile -*- Time-stamp: <07/06/08 23:34:51 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
LDFLAGS ?=
ifneq ("$(findstring $(OSNAME),darwin cygming)","")
include ${RULESBASE}/gmake/${OSNAME}/lib.mak
else
include ${RULESBASE}/gmake/unix/lib.mak
endif
include ${RULESBASE}/gmake/lib/${COMPILER_NAME}.mak
ifneq ("$(findstring $(OSNAME),cygming)","")
include ${RULESBASE}/gmake/${OSNAME}/rules-so.mak
else
include ${RULESBASE}/gmake/unix/rules-so.mak
endif
include ${RULESBASE}/gmake/lib/rules-a.mak
ifneq ("$(findstring $(OSNAME),cygming)","")
include ${RULESBASE}/gmake/${OSNAME}/rules-install-so.mak
else
include ${RULESBASE}/gmake/unix/rules-install-so.mak
endif
include ${RULESBASE}/gmake/lib/rules-install-a.mak
include ${RULESBASE}/gmake/lib/clean.mak
@@ -0,0 +1,40 @@
# -*- makefile -*- Time-stamp: <07/03/08 21:35:57 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
# Oh, the commented below work for gmake 3.78.1 and above,
# but phrase without tag not work for it. Since gmake 3.79
# tag with assignment fail, but work assignment for all tags
# (really that more correct).
LDLIBS ?=
LDSEARCH += /LIBPATH:"$(MSVC_LIB_DIR)"
dbg-shared: OPT += /MDd
stldbg-shared: OPT += /MDd
release-shared: OPT += /MD
release-shared-dep: OPT += /MD
dbg-static: OPT += /MTd
stldbg-static: OPT += /MTd
release-static: OPT += /MT
release-static: DEFS += /D_LIB
dbg-static: DEFS += /D_LIB
stldbg-static: DEFS += /D_LIB
dbg-shared: LDFLAGS += /DLL ${LDSEARCH}
stldbg-shared: LDFLAGS += /DLL ${LDSEARCH}
release-shared: LDFLAGS += /DLL ${LDSEARCH}
dbg-static: LDFLAGS += ${LDSEARCH}
stldbg-static: LDFLAGS += ${LDSEARCH}
release-static: LDFLAGS += ${LDSEARCH}
LDFLAGS += /VERSION:$(MAJOR).$(MINOR)
@@ -0,0 +1,28 @@
# Time-stamp: <06/11/10 23:43:27 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
INSTALL := /usr/bin/install
STRIP := /usr/bin/strip
install-strip: _INSTALL_STRIP_OPTION = -s
install-strip: _SO_STRIP_OPTION = -S
INSTALL_SO := ${INSTALL} -c -m 0755 ${_INSTALL_STRIP_OPTION}
INSTALL_A := ${INSTALL} -c -m 0644
INSTALL_EXE := ${INSTALL} -c -m 0755
INSTALL_D := ${INSTALL} -d -m 0755
INSTALL_F := ${INSTALL} -c -p -m 0644
# bash's built-in test is like extern
# EXT_TEST := /usr/bin/test
EXT_TEST := test
@@ -0,0 +1,22 @@
# Time-stamp: <07/03/08 21:52:04 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
SO := so
ARCH := a
ifdef TARGET_OS
AR := ${TARGET_OS}-ar
else
AR := ar
endif
AR_INS_R := -rs
AR_EXTR := -x
AR_OUT = $@
@@ -0,0 +1,10 @@
# Time-stamp: <05/09/09 21:10:45 ptr>
# $Id$
INSTALL := /usr/bin/install
INSTALL_SO := ${INSTALL} -c -m 0755
INSTALL_A := ${INSTALL} -c -m 0644
INSTALL_EXE := ${INSTALL} -c -m 0755
EXT_TEST := /usr/bin/test
@@ -0,0 +1,10 @@
# Time-stamp: <05/09/09 21:07:53 ptr>
# $Id$
SO := so
ARCH := a
AR := ar
AR_INS_R := -r
AR_EXTR := -x
AR_OUT = $@
@@ -0,0 +1,12 @@
# Time-stamp: <06/11/01 22:55:23 ptr>
#
# Copyright (c) 2006, 2007
# Petr Ovtchenkov
#
# Licensed under the Academic Free License version 3.0
#
# Do the same target in all catalogs as arg
define doinsubdirs
$(foreach d,$(1),${MAKE} -C ${d} $@;)
endef
@@ -0,0 +1,18 @@
# Time-stamp: <07/03/08 21:48:24 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
INSTALL := /usr/ucb/install
INSTALL_SO := ${INSTALL} -c -m 0755
INSTALL_A := ${INSTALL} -c -m 0644
INSTALL_EXE := ${INSTALL} -c -m 0755
EXT_TEST := /usr/bin/test
@@ -0,0 +1,18 @@
# Time-stamp: <07/03/08 21:48:37 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
SO := so
ARCH := a
AR := ar
AR_INS_R := -rs
AR_EXTR := -x
AR_OUT = $@
@@ -0,0 +1,98 @@
# Time-stamp: <07/08/16 09:13:19 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
ifndef BUILD_DATE
ifndef TARGET_OS
OSNAME := $(shell uname -s | tr '[A-Z]' '[a-z]' | tr ', /\\()"' ',//////' | tr ',/' ',-')
ifeq ($(OSNAME),darwin)
OSREALNAME := $(shell sw_vers -productName | tr '[A-Z]' '[a-z]' | tr -d ', /\\()"')
endif
# RedHat use nonstandard options for uname at least in cygwin,
# macro should be overwritten:
ifeq (cygwin,$(findstring cygwin,$(OSNAME)))
OSNAME := cygming
OSREALNAME := $(shell uname -o | tr '[A-Z]' '[a-z]' | tr ', /\\()"' ',//////' | tr ',/' ',-')
endif
ifeq (mingw,$(findstring mingw,$(OSNAME)))
OSNAME := cygming
OSREALNAME := mingw
endif
OSREL := $(shell uname -r | tr '[A-Z]' '[a-z]' | tr ', /\\()"' ',//////' | tr ',/' ',-')
ifeq ($(OSNAME),darwin)
OSREL := $(shell sw_vers -productVersion | tr '[A-Z]' '[a-z]' | tr ', /\\()"' ',//////' | tr ',/' ',-')
endif
M_ARCH := $(shell uname -m | tr '[A-Z]' '[a-z]' | tr ', /\\()"' ',//////' | tr ',/' ',-')
ifeq ($(M_ARCH),power-macintosh)
M_ARCH := ppc
endif
ifeq ($(OSNAME),hp-ux)
P_ARCH := unknown
else
P_ARCH := $(shell uname -p | tr '[A-Z]' '[a-z]' | tr ', /\\()"' ',//////' | tr ',/' ',-')
endif
else
OSNAME := $(shell echo ${TARGET_OS} | sed 's/^[a-z0-9_]\+-[a-z0-9]\+-\([a-z]\+\).*/\1/' | sed 's/^[a-z0-9_]\+-\([a-z]\+\).*/\1/' )
OSREL := $(shell echo ${TARGET_OS} | sed 's/^[[:alnum:]_]\+-[a-z0-9]\+-[a-z]\+\([a-zA-Z.0-9]*\).*/\1/' | sed 's/^[a-z0-9_]\+-[a-z]\+\([a-zA-Z.0-9]*\).*/\1/' )
M_ARCH := $(shell echo ${TARGET_OS} | sed 's/^\([a-z0-9_]\+\)-.*/\1/' )
P_ARCH := unknown
# TARGET_OS
endif
NODENAME := $(shell uname -n | tr '[A-Z]' '[a-z]' )
SYSVER := $(shell uname -v )
USER := $(shell echo $$USER )
ifeq ($(OSNAME),freebsd)
OSREL_MAJOR := $(shell echo ${OSREL} | tr '.-' ' ' | awk '{print $$1;}')
OSREL_MINOR := $(shell echo ${OSREL} | tr '.-' ' ' | awk '{print $$2;}')
endif
ifeq ($(OSNAME),darwin)
OSREL_MAJOR := $(shell echo ${OSREL} | tr '.-' ' ' | awk '{print $$1;}')
OSREL_MINOR := $(shell echo ${OSREL} | tr '.-' ' ' | awk '{print $$2;}')
MACOSX_TEN_FIVE := $(shell if [ ${OSREL_MAJOR} -lt 10 ]; then echo false; else if [ ${OSREL_MAJOR} -gt 10 ] ; then echo true; else if [ ${OSREL_MINOR} -lt 5 ]; then echo false; else echo true; fi; fi; fi)
endif
# OS_VER := $(shell uname -s | tr '[A-Z]' '[a-z]' | tr ', /\\()"' ',//////' | tr ',/' ',_')
BUILD_SYSTEM := $(shell echo `uname -n` `uname -s` `uname -r` `uname -v` `uname -m` $$USER)
BUILD_DATE := $(shell date +'%Y/%m/%d %T %Z')
BUILD_OSNAME := $(shell uname -s | tr '[A-Z]' '[a-z]' | tr ', /\\()"' ',//////' | tr ',/' ',-')
# RedHat use nonstandard options for uname at least in cygwin,
# macro should be overwritten:
ifeq (cygwin,$(findstring cygwin,$(BUILD_OSNAME)))
BUILD_OSNAME := cygming
BUILD_OSREALNAME := $(shell uname -o | tr '[A-Z]' '[a-z]' | tr ', /\\()"' ',//////' | tr ',/' ',-')
endif
ifeq (mingw,$(findstring mingw,$(BUILD_OSNAME)))
BUILD_OSNAME := cygming
BUILD_OSREALNAME := mingw
endif
BUILD_OSREL := $(shell uname -r | tr '[A-Z]' '[a-z]' | tr ', /\\()"' ',//////' | tr ',/' ',-')
BUILD_M_ARCH := $(shell uname -m | tr '[A-Z]' '[a-z]' | tr ', /\\()"' ',//////' | tr ',/' ',-')
ifeq ($(OSNAME),hp-ux)
BUILD_P_ARCH := unknown
else
BUILD_P_ARCH := $(shell uname -p | tr '[A-Z]' '[a-z]' | tr ', /\\()"' ',//////' | tr ',/' ',-')
endif
# end of BUILD_DATE not defined
endif
@@ -0,0 +1,99 @@
# Time-stamp: <08/02/28 10:30:06 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2008
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
ifdef TARGET_OS
TARGET_NAME := ${TARGET_OS}-
else
TARGET_NAME :=
endif
BASE_OUTPUT_DIR := obj
PRE_OUTPUT_DIR := $(BASE_OUTPUT_DIR)/$(TARGET_NAME)$(COMPILER_NAME)
OUTPUT_DIR := $(PRE_OUTPUT_DIR)/so$(EXTRA_DIRS)
OUTPUT_DIR_DBG := $(PRE_OUTPUT_DIR)/so_g$(EXTRA_DIRS)
ifndef WITHOUT_STLPORT
OUTPUT_DIR_STLDBG := $(PRE_OUTPUT_DIR)/so_stlg$(EXTRA_DIRS)
endif
# file to store generated dependencies for make:
DEPENDS_COLLECTION := $(PRE_OUTPUT_DIR)/.make.depend
# catalog for auxilary files, if any
AUX_DIR := $(PRE_OUTPUT_DIR)/.auxdir
# I use the same catalog, as for shared:
OUTPUT_DIR_A := $(OUTPUT_DIR)
OUTPUT_DIR_A_DBG := $(OUTPUT_DIR_DBG)
ifndef WITHOUT_STLPORT
OUTPUT_DIR_A_STLDBG := $(OUTPUT_DIR_STLDBG)
endif
BASE_INSTALL_DIR ?= /usr/local
BASE_INSTALL_LIB_DIR ?= $(DESTDIR)${BASE_INSTALL_DIR}
BASE_INSTALL_BIN_DIR ?= $(DESTDIR)${BASE_INSTALL_DIR}
BASE_INSTALL_HDR_DIR ?= $(DESTDIR)${BASE_INSTALL_DIR}
INSTALL_LIB_DIR ?= ${BASE_INSTALL_LIB_DIR}/${TARGET_NAME}lib
INSTALL_LIB_DIR_DBG ?= ${BASE_INSTALL_LIB_DIR}/${TARGET_NAME}lib
ifndef WITHOUT_STLPORT
INSTALL_LIB_DIR_STLDBG ?= ${BASE_INSTALL_LIB_DIR}/${TARGET_NAME}lib
endif
INSTALL_BIN_DIR ?= ${BASE_INSTALL_BIN_DIR}/${TARGET_NAME}bin
INSTALL_BIN_DIR_DBG ?= ${INSTALL_BIN_DIR}_g
ifndef WITHOUT_STLPORT
INSTALL_BIN_DIR_STLDBG ?= ${INSTALL_BIN_DIR}_stlg
endif
INSTALL_HDR_DIR ?= ${BASE_INSTALL_DIR}/include
ifndef WITHOUT_STLPORT
OUTPUT_DIRS := $(OUTPUT_DIR) $(OUTPUT_DIR_DBG) $(OUTPUT_DIR_STLDBG) \
$(OUTPUT_DIR_A) $(OUTPUT_DIR_A_DBG) $(OUTPUT_DIR_A_STLDBG)
else
OUTPUT_DIRS := $(OUTPUT_DIR) $(OUTPUT_DIR_DBG) \
$(OUTPUT_DIR_A) $(OUTPUT_DIR_A_DBG)
endif
ifndef WITHOUT_STLPORT
INSTALL_LIB_DIRS := $(INSTALL_LIB_DIR) $(INSTALL_LIB_DIR_DBG) $(INSTALL_LIB_DIR_STLDBG)
INSTALL_BIN_DIRS := $(INSTALL_BIN_DIR) $(INSTALL_BIN_DIR_DBG) $(INSTALL_BIN_DIR_STLDBG)
else
INSTALL_LIB_DIRS := $(INSTALL_LIB_DIR) $(INSTALL_LIB_DIR_DBG)
INSTALL_BIN_DIRS := $(INSTALL_BIN_DIR) $(INSTALL_BIN_DIR_DBG)
endif
# sort will remove duplicates:
OUTPUT_DIRS := $(sort $(OUTPUT_DIRS))
INSTALL_LIB_DIRS := $(sort $(INSTALL_LIB_DIRS))
INSTALL_BIN_DIRS := $(sort $(INSTALL_BIN_DIRS))
INSTALL_DIRS := $(sort $(INSTALL_LIB_DIRS) $(INSTALL_BIN_DIRS))
PHONY += $(OUTPUT_DIRS) $(INSTALL_DIRS) $(AUX_DIR)
define createdirs
@for d in $@ ; do \
if [ -e $$d -a -f $$d ] ; then \
echo "ERROR: Regular file $$d present, directory instead expected" ; \
exit 1; \
elif [ ! -d $$d ] ; then \
mkdir -p $$d ; \
fi ; \
done
endef
$(OUTPUT_DIRS):
$(createdirs)
$(INSTALL_DIRS):
$(createdirs)
$(AUX_DIR):
$(createdirs)
@@ -0,0 +1,169 @@
# Time-stamp: <07/05/30 23:59:42 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005, 2006
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
PRGS_DIR_SRC =
define prog_
PRGS_DIR_SRC += $$(dir $${$(1)_SRC_CPP} $${$(1)_SRC_CC} $${$(1)_SRC_CXX} $${$(1)_SRC_C} $${$(1)_SRC_S} )
$(1)_ALLBASE := $$(basename $$(notdir $${$(1)_SRC_CC} $${$(1)_SRC_CPP} $${$(1)_SRC_CXX} $${$(1)_SRC_C} $${$(1)_SRC_S} ) )
$(1)_ALLOBJS := $$(addsuffix .o,$${$(1)_ALLBASE})
$(1)_ALLDEPS := $$(addsuffix .d,$${$(1)_ALLBASE})
$(1)_OBJ := $$(addprefix $$(OUTPUT_DIR)/,$${$(1)_ALLOBJS})
$(1)_OBJ_DBG := $$(addprefix $$(OUTPUT_DIR_DBG)/,$${$(1)_ALLOBJS})
$(1)_OBJ_STLDBG := $$(addprefix $$(OUTPUT_DIR_STLDBG)/,$${$(1)_ALLOBJS})
$(1)_DEP := $$(addprefix $$(OUTPUT_DIR)/,$${$(1)_ALLDEPS})
$(1)_DEP_DBG := $$(addprefix $$(OUTPUT_DIR_DBG)/,$${$(1)_ALLDEPS})
$(1)_DEP_STLDBG := $$(addprefix $$(OUTPUT_DIR_STLDBG)/,$${$(1)_ALLDEPS})
$(1)_RES := $$(addprefix $$(OUTPUT_DIR)/,$${$(1)_ALLRESS})
$(1)_RES_DBG := $$(addprefix $$(OUTPUT_DIR_DBG)/,$${$(1)_ALLRESS})
$(1)_RES_STLDBG := $$(addprefix $$(OUTPUT_DIR_STLDBG)/,$${$(1)_ALLRESS})
ifeq ("$$(sort $${$(1)_SRC_CC} $${$(1)_SRC_CPP} $${$(1)_SRC_CXX})","")
$(1)_NOT_USE_NOSTDLIB := 1
_$(1)_C_SOURCES_ONLY := true
endif
endef
$(foreach prg,$(PRGNAMES),$(eval $(call prog_,$(prg))))
# If we have no C++ sources, let's use C compiler for linkage instead of C++.
ifeq ("$(sort ${SRC_CC} ${SRC_CPP} ${SRC_CXX})","")
NOT_USE_NOSTDLIB := 1
_C_SOURCES_ONLY := true
endif
# if sources disposed in several dirs, calculate appropriate rules
DIRS_UNIQUE_SRC := $(dir $(SRC_CPP) $(SRC_CC) $(SRC_CXX) $(SRC_C) $(SRC_S) )
ifeq (${OSNAME},cygming)
DIRS_UNIQUE_SRC := ${DIRS_UNIQUE_SRC} $(dir $(SRC_RC) )
endif
DIRS_UNIQUE_SRC := $(sort $(DIRS_UNIQUE_SRC) $(PRGS_DIR_SRC))
# The rules below may be even simpler (i.e. define macro that generate
# rules for COMPILE.xx), but this GNU make 3.80 unhappy with it;
# GNU make 3.81 work fine, but 3.81 is new...
# The code below verbose, but this is price for compatibility with 3.80
define rule_o
$$(OUTPUT_DIR$(1))/%.o: $(2)%.cc
$$(COMPILE.cc) $$(OUTPUT_OPTION) $$<
$$(OUTPUT_DIR$(1))/%.d: $(2)%.cc
@$$(COMPILE.cc) $$(CCDEPFLAGS) $$< $$(DP_OUTPUT_DIR$(1))
$$(OUTPUT_DIR$(1))/%.o: $(2)%.cpp
$$(COMPILE.cc) $$(OUTPUT_OPTION) $$<
$$(OUTPUT_DIR$(1))/%.d: $(2)%.cpp
@$$(COMPILE.cc) $$(CCDEPFLAGS) $$< $$(DP_OUTPUT_DIR$(1))
$$(OUTPUT_DIR$(1))/%.o: $(2)%.cxx
$$(COMPILE.cc) $$(OUTPUT_OPTION) $$<
$$(OUTPUT_DIR$(1))/%.d: $(2)%.cxx
@$$(COMPILE.cc) $$(CCDEPFLAGS) $$< $$(DP_OUTPUT_DIR$(1))
$$(OUTPUT_DIR$(1))/%.o: $(2)%.c
$$(COMPILE.c) $$(OUTPUT_OPTION) $$<
$$(OUTPUT_DIR$(1))/%.d: $(2)%.c
@$$(COMPILE.c) $$(CCDEPFLAGS) $$< $$(DP_OUTPUT_DIR$(1))
$$(OUTPUT_DIR$(1))/%.o: $(2)%.s
$$(COMPILE.s) $$(OUTPUT_OPTION) $$<
$$(OUTPUT_DIR$(1))/%.o: $(2)%.S
$$(COMPILE.S) $$(OUTPUT_OPTION) $$<
$$(OUTPUT_DIR$(1))/%.d: $(2)%.S
@$$(COMPILE.S) $$(SDEPFLAGS) $$< $$(DP_OUTPUT_DIR$(1))
endef
define rule_rc
$$(OUTPUT_DIR$(1))/%.res: $(2)%.rc
$$(COMPILE.rc) $$(RC_OUTPUT_OPTION) $$<
endef
define rules_
$(call rule_o,,$(1))
ifneq ($(OUTPUT_DIR),$(OUTPUT_DIR_A))
$(call rule_o,_A,$(1))
endif
$(call rule_o,_DBG,$(1))
ifneq ($(OUTPUT_DIR_DBG),$(OUTPUT_DIR_A_DBG))
$(call rule_o,_A_DBG,$(1))
endif
ifndef WITHOUT_STLPORT
$(call rule_o,_STLDBG,$(1))
ifneq ($(OUTPUT_DIR_STLDBG),$(OUTPUT_DIR_A_STLDBG))
$(call rule_o,_A_STLDBG,$(1))
endif
endif
ifeq ($(OSNAME),cygming)
$(call rule_rc,,$(1))
$(call rule_rc,_DBG,$(1))
ifndef WITHOUT_STLPORT
$(call rule_rc,_STLDBG,$(1))
endif
endif
endef
$(foreach dir,$(DIRS_UNIQUE_SRC),$(eval $(call rules_,$(dir))))
ALLBASE := $(basename $(notdir $(SRC_CC) $(SRC_CPP) $(SRC_CXX) $(SRC_C) $(SRC_S)))
ifeq (${OSNAME},cygming)
RCBASE += $(basename $(notdir $(SRC_RC)))
endif
ALLOBJS := $(addsuffix .o,$(ALLBASE))
ALLDEPS := $(addsuffix .d,$(ALLBASE))
ALLRESS := $(addsuffix .res,$(RCBASE))
OBJ := $(addprefix $(OUTPUT_DIR)/,$(ALLOBJS))
OBJ_DBG := $(addprefix $(OUTPUT_DIR_DBG)/,$(ALLOBJS))
OBJ_STLDBG := $(addprefix $(OUTPUT_DIR_STLDBG)/,$(ALLOBJS))
DEP := $(addprefix $(OUTPUT_DIR)/,$(ALLDEPS))
DEP_DBG := $(addprefix $(OUTPUT_DIR_DBG)/,$(ALLDEPS))
DEP_STLDBG := $(addprefix $(OUTPUT_DIR_STLDBG)/,$(ALLDEPS))
RES := $(addprefix $(OUTPUT_DIR)/,$(ALLRESS))
RES_DBG := $(addprefix $(OUTPUT_DIR_DBG)/,$(ALLRESS))
RES_STLDBG := $(addprefix $(OUTPUT_DIR_STLDBG)/,$(ALLRESS))
ifeq ($(OUTPUT_DIR),$(OUTPUT_DIR_A))
OBJ_A := $(OBJ)
DEP_A := $(DEP)
else
OBJ_A := $(addprefix $(OUTPUT_DIR_A)/,$(ALLOBJS))
DEP_A := $(addprefix $(OUTPUT_DIR_A)/,$(ALLDEPS))
endif
ifeq ($(OUTPUT_DIR_DBG),$(OUTPUT_DIR_A_DBG))
OBJ_A_DBG := $(OBJ_DBG)
DEP_A_DBG := $(DEP_DBG)
else
OBJ_A_DBG := $(addprefix $(OUTPUT_DIR_A_DBG)/,$(ALLOBJS))
DEP_A_DBG := $(addprefix $(OUTPUT_DIR_A_DBG)/,$(ALLDEPS))
endif
ifeq ($(OUTPUT_DIR_STLDBG),$(OUTPUT_DIR_A_STLDBG))
OBJ_A_STLDBG := $(OBJ_STLDBG)
DEP_A_STLDBG := $(DEP_STLDBG)
else
OBJ_A_STLDBG := $(addprefix $(OUTPUT_DIR_A_STLDBG)/,$(ALLOBJS))
DEP_A_STLDBG := $(addprefix $(OUTPUT_DIR_A_STLDBG)/,$(ALLDEPS))
endif
+123
View File
@@ -0,0 +1,123 @@
# Time-stamp: <08/06/06 17:34:38 yeti>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2008
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
.SUFFIXES:
.SCCS_GET:
.RCS_GET:
PHONY ?=
RULESBASE ?= $(SRCROOT)/Makefiles
# include file, generated by configure, if available
-include ${RULESBASE}/gmake/config.mak
ifndef COMPILER_NAME
# gcc is default compiler, others specify explicitly;
COMPILER_NAME := gcc
endif
ifndef LDFLAGS
LDFLAGS :=
endif
ifndef ALL_TAGS
ifndef _NO_SHARED_BUILD
ALL_TAGS := release-shared
else
ALL_TAGS :=
endif
ifdef _STATIC_BUILD
ALL_TAGS += release-static
endif
ifndef _NO_DBG_BUILD
ifndef _NO_SHARED_BUILD
ALL_TAGS += dbg-shared
endif
ifdef _STATIC_BUILD
ALL_TAGS += dbg-static
endif
endif
ifndef _NO_STLDBG_BUILD
ifndef WITHOUT_STLPORT
ifndef _NO_SHARED_BUILD
ALL_TAGS += stldbg-shared
endif
ifdef _STATIC_BUILD
ALL_TAGS += stldbg-static
endif
endif
endif
endif
all: $(OUTPUT_DIRS) $(ALL_TAGS)
ifndef WITHOUT_STLPORT
all-static: release-static dbg-static stldbg-static
all-shared: release-shared dbg-shared stldbg-shared
else
all-static: release-static dbg-static
all-shared: release-shared dbg-shared
endif
ifdef WITHOUT_STLPORT
NOT_USE_NOSTDLIB := 1
endif
ifndef OSNAME
# identify OS and build date
include ${RULESBASE}/gmake/sysid.mak
endif
# OS-specific definitions, like ln, install, etc. (guest host)
include ${RULESBASE}/gmake/$(BUILD_OSNAME)/sys.mak
# target OS-specific definitions, like ar, etc.
include ${RULESBASE}/gmake/$(OSNAME)/targetsys.mak
# Extern projects for everyday usage and settings for ones
include ${RULESBASE}/gmake/extern.mak
# compiler, compiler options
include ${RULESBASE}/gmake/$(COMPILER_NAME).mak
# rules to make dirs for targets
include ${RULESBASE}/gmake/targetdirs.mak
# os-specific local rules (or other project-specific definitions)
-include specific.mak
LDFLAGS += ${EXTRA_LDFLAGS}
# derive common targets (*.o, *.d),
# build rules (including output catalogs)
include ${RULESBASE}/gmake/targets.mak
# dependency
include ${RULESBASE}/gmake/depend.mak
# general clean
include ${RULESBASE}/gmake/clean.mak
# if target is library, rules for library
ifdef LIBNAME
include ${RULESBASE}/gmake/lib/top.mak
endif
# if target is program, rules for executable
ifdef PRGNAME
include ${RULESBASE}/gmake/app/top.mak
else
ifdef PRGNAMES
include ${RULESBASE}/gmake/app/top.mak
endif
endif
.PHONY: $(PHONY)
@@ -0,0 +1,85 @@
# -*- makefile -*- Time-stamp: <06/11/02 10:37:02 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005, 2006
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
DBG_SUFFIX ?= g
STLDBG_SUFFIX ?= stl${DBG_SUFFIX}
# Shared libraries:
ifndef LIB_MOTIF
SO_NAME := lib${LIBNAME}.$(SO)
else
SO_NAME := lib${LIBNAME}_${LIB_MOTIF}.${SO}
endif
SO_NAMEx := ${SO_NAME}.${MAJOR}
SO_NAMExx := ${SO_NAMEx}.${MINOR}
SO_NAMExxx := ${SO_NAMExx}.${PATCH}
SO_NAME_OUT := $(OUTPUT_DIR)/${SO_NAME}
SO_NAME_OUTx := $(OUTPUT_DIR)/${SO_NAMEx}
SO_NAME_OUTxx := $(OUTPUT_DIR)/${SO_NAMExx}
SO_NAME_OUTxxx := $(OUTPUT_DIR)/${SO_NAMExxx}
ifndef LIB_MOTIF
SO_NAME_DBG := lib${LIBNAME}${DBG_SUFFIX}.$(SO)
else
SO_NAME_DBG := lib${LIBNAME}${DBG_SUFFIX}_${LIB_MOTIF}.$(SO)
endif
SO_NAME_DBGx := ${SO_NAME_DBG}.${MAJOR}
SO_NAME_DBGxx := ${SO_NAME_DBGx}.${MINOR}
SO_NAME_DBGxxx := ${SO_NAME_DBGxx}.${PATCH}
SO_NAME_OUT_DBG := $(OUTPUT_DIR_DBG)/${SO_NAME_DBG}
SO_NAME_OUT_DBGx := $(OUTPUT_DIR_DBG)/${SO_NAME_DBGx}
SO_NAME_OUT_DBGxx := $(OUTPUT_DIR_DBG)/${SO_NAME_DBGxx}
SO_NAME_OUT_DBGxxx := $(OUTPUT_DIR_DBG)/${SO_NAME_DBGxxx}
ifndef WITHOUT_STLPORT
ifndef LIB_MOTIF
SO_NAME_STLDBG := lib${LIBNAME}${STLDBG_SUFFIX}.$(SO)
else
SO_NAME_STLDBG := lib${LIBNAME}${STLDBG_SUFFIX}_${LIB_MOTIF}.$(SO)
endif
SO_NAME_STLDBGx := ${SO_NAME_STLDBG}.${MAJOR}
SO_NAME_STLDBGxx := ${SO_NAME_STLDBGx}.${MINOR}
SO_NAME_STLDBGxxx := ${SO_NAME_STLDBGxx}.${PATCH}
SO_NAME_OUT_STLDBG := $(OUTPUT_DIR_STLDBG)/${SO_NAME_STLDBG}
SO_NAME_OUT_STLDBGx := $(OUTPUT_DIR_STLDBG)/${SO_NAME_STLDBGx}
SO_NAME_OUT_STLDBGxx := $(OUTPUT_DIR_STLDBG)/${SO_NAME_STLDBGxx}
SO_NAME_OUT_STLDBGxxx := $(OUTPUT_DIR_STLDBG)/${SO_NAME_STLDBGxxx}
# WITHOUT_STLPORT
endif
# Static libraries:
ifndef LIB_MOTIF
A_NAME := lib${LIBNAME}.$(ARCH)
else
A_NAME := lib${LIBNAME}_${LIB_MOTIF}.$(ARCH)
endif
A_NAME_OUT := $(OUTPUT_DIR_A)/$(A_NAME)
ifndef LIB_MOTIF
A_NAME_DBG := lib${LIBNAME}${DBG_SUFFIX}.$(ARCH)
else
A_NAME_DBG := lib${LIBNAME}${DBG_SUFFIX}_${LIB_MOTIF}.$(ARCH)
endif
A_NAME_OUT_DBG := $(OUTPUT_DIR_A_DBG)/$(A_NAME_DBG)
ifndef WITHOUT_STLPORT
ifndef LIB_MOTIF
A_NAME_STLDBG := lib${LIBNAME}${STLDBG_SUFFIX}.$(ARCH)
else
A_NAME_STLDBG := lib${LIBNAME}${STLDBG_SUFFIX}_${LIB_MOTIF}.$(ARCH)
endif
A_NAME_OUT_STLDBG := $(OUTPUT_DIR_A_STLDBG)/$(A_NAME_STLDBG)
endif
@@ -0,0 +1,173 @@
# -*- makefile -*- Time-stamp: <07/12/12 01:52:19 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
ifndef INSTALL_TAGS
ifndef _NO_SHARED_BUILD
INSTALL_TAGS := install-release-shared
else
INSTALL_TAGS :=
endif
ifdef _STATIC_BUILD
INSTALL_TAGS += install-release-static
endif
ifndef _NO_DBG_BUILD
ifndef _NO_SHARED_BUILD
INSTALL_TAGS += install-dbg-shared
endif
ifdef _STATIC_BUILD
INSTALL_TAGS += install-dbg-static
endif
endif
ifndef _NO_STLDBG_BUILD
ifndef WITHOUT_STLPORT
ifndef _NO_SHARED_BUILD
INSTALL_TAGS += install-stldbg-shared
endif
ifdef _STATIC_BUILD
INSTALL_TAGS += install-stldbg-static
endif
endif
endif
endif
ifndef INSTALL_STRIP_TAGS
ifndef _NO_SHARED_BUILD
INSTALL_STRIP_TAGS := install-strip-shared
else
INSTALL_STRIP_TAGS :=
endif
ifdef _STATIC_BUILD
INSTALL_STRIP_TAGS += install-release-static
endif
ifndef _NO_DBG_BUILD
ifndef _NO_SHARED_BUILD
INSTALL_STRIP_TAGS += install-dbg-shared
endif
ifdef _STATIC_BUILD
INSTALL_STRIP_TAGS += install-dbg-static
endif
endif
ifndef _NO_STLDBG_BUILD
ifndef WITHOUT_STLPORT
ifndef _NO_SHARED_BUILD
INSTALL_STRIP_TAGS += install-stldbg-shared
endif
ifdef _STATIC_BUILD
INSTALL_STRIP_TAGS += install-stldbg-static
endif
endif
endif
endif
PHONY += install install-strip install-headers $(INSTALL_TAGS) $(INSTALL_STRIP_TAGS)
install: $(INSTALL_TAGS) install-headers
install-strip: $(INSTALL_STRIP_TAGS) install-headers
# Workaround for GNU make 3.80; see comments in rules-so.mak
define do_install_so_links
$${INSTALL_LIB_DIR$(1)}/$${SO_NAME$(1)xxx}: $${SO_NAME_OUT$(1)xxx}
$$(INSTALL_SO) $${SO_NAME_OUT$(1)xxx} $$(INSTALL_LIB_DIR$(1))
@$(call do_so_links_1,$$(INSTALL_LIB_DIR$(1)),$${SO_NAME$(1)xx},$${SO_NAME$(1)xxx})
@$(call do_so_links_1,$$(INSTALL_LIB_DIR$(1)),$${SO_NAME$(1)x},$${SO_NAME$(1)xx})
@$(call do_so_links_1,$$(INSTALL_LIB_DIR$(1)),$${SO_NAME$(1)},$${SO_NAME$(1)x})
endef
# Workaround for GNU make 3.80; see comments in rules-so.mak
define do_install_so_links_wk
# expand to nothing, if equal
ifneq (${INSTALL_LIB_DIR}/${SO_NAMExxx},${INSTALL_LIB_DIR_STLDBG}/${SO_NAME_STLDBGxxx})
# expand to nothing, if WITHOUT_STLPORT
ifndef WITHOUT_STLPORT
$(call do_install_so_links,$(1))
endif
endif
endef
# Workaround for GNU make 3.80; see comments in rules-so.mak
define do_install_so_links_wk2
# expand to nothing, if equal
ifneq (${INSTALL_LIB_DIR}/${SO_NAMExxx},${INSTALL_LIB_DIR_DBG}/${SO_NAME_DBGxxx})
$(call do_install_so_links,$(1))
endif
endef
$(eval $(call do_install_so_links,))
# ifneq (${INSTALL_LIB_DIR}/${SO_NAMExxx},${INSTALL_LIB_DIR_DBG}/${SO_NAME_DBGxxx})
# $(eval $(call do_install_so_links,_DBG))
$(eval $(call do_install_so_links_wk2,_DBG))
# endif
# ifneq (${INSTALL_LIB_DIR}/${SO_NAMExxx},${INSTALL_LIB_DIR_STLDBG}/${SO_NAME_STLDBGxxx})
# ifndef WITHOUT_STLPORT
$(eval $(call do_install_so_links_wk,_STLDBG))
# endif
# endif
install-release-shared: release-shared $(INSTALL_LIB_DIR) $(INSTALL_LIB_DIR)/${SO_NAMExxx} install-headers
${POST_INSTALL}
install-strip-shared: release-shared $(INSTALL_LIB_DIR) $(INSTALL_LIB_DIR)/${SO_NAMExxx} install-headers
${STRIP} ${_SO_STRIP_OPTION} $(INSTALL_LIB_DIR)/${SO_NAMExxx}
${POST_INSTALL}
install-dbg-shared: dbg-shared $(INSTALL_LIB_DIR_DBG) $(INSTALL_LIB_DIR_DBG)/${SO_NAME_DBGxxx}
${POST_INSTALL_DBG}
ifndef WITHOUT_STLPORT
install-stldbg-shared: stldbg-shared $(INSTALL_LIB_DIR_STLDBG) $(INSTALL_LIB_DIR_STLDBG)/${SO_NAME_STLDBGxxx}
${POST_INSTALL_STLDBG}
endif
define do_install_headers
if [ ! -d $(INSTALL_HDR_DIR) ]; then \
$(INSTALL_D) $(INSTALL_HDR_DIR) || { echo "Can't create $(INSTALL_HDR_DIR)"; exit 1; }; \
fi; \
for dd in $(HEADERS_BASE); do \
d=`dirname $$dd`; \
h=`basename $$dd`; \
f=`cd $$d; find $$h \( -wholename "*/.svn" -prune \) -o \( -type d -print \)`; \
for ddd in $$f; do \
if [ ! -d $(INSTALL_HDR_DIR)/$$ddd ]; then \
$(INSTALL_D) $(INSTALL_HDR_DIR)/$$ddd || { echo "Can't create $(INSTALL_HDR_DIR)/$$ddd"; exit 1; }; \
fi; \
done; \
f=`find $$dd \( -wholename "*/.svn*" -o -name "*~" -o -name "*.bak" \) -prune -o \( -type f -print \)`; \
for ff in $$f; do \
h=`echo $$ff | sed -e "s|$$d|$(INSTALL_HDR_DIR)|"`; \
$(INSTALL_F) $$ff $$h; \
done; \
done; \
for f in $(HEADERS); do \
h=`basename $$f`; \
$(INSTALL_F) $$f $(INSTALL_HDR_DIR)/$$h || { echo "Can't install $(INSTALL_HDR_DIR)/$$h"; exit 1; }; \
done
endef
# find $$dd \( -type f \( \! \( -wholename "*/.svn*" -o -name "*~" -o -name "*.bak" \) \) \) -print
# _HEADERS_FROM = $(shell for dd in $(HEADERS_BASE); do find $$dd \( -type f \( \! \( -wholename "*/.svn/*" -o -name "*~" -o -name "*.bak" \) \) \) -print ; done )
# _HEADERS_TO = $(foreach d,$(HEADERS_BASE),$(patsubst $(d)/%,$(BASE_INSTALL_DIR)include/%,$(_HEADERS_FROM)))
install-headers:
@$(do_install_headers)
@@ -0,0 +1,76 @@
# -*- makefile -*- Time-stamp: <06/12/12 09:43:02 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005, 2006
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
# Shared libraries tags
PHONY += release-shared dbg-shared stldbg-shared
release-shared: $(EXTRA_PRE) $(OUTPUT_DIR) ${SO_NAME_OUTxxx} $(EXTRA_POST)
dbg-shared: $(EXTRA_PRE_DBG) $(OUTPUT_DIR_DBG) ${SO_NAME_OUT_DBGxxx} $(EXTRA_POST_DBG)
ifndef WITHOUT_STLPORT
stldbg-shared: $(EXTRA_PRE_STLDBG) $(OUTPUT_DIR_STLDBG) ${SO_NAME_OUT_STLDBGxxx} $(EXTRA_POST_STLDBG)
endif
define do_so_links_1
if [ -h $(1)/$(2) ]; then \
if [ `readlink $(1)/$(2)` != "$(3)" ]; then \
rm $(1)/$(2); \
ln -s $(3) $(1)/$(2); \
fi; \
else \
ln -s $(3) $(1)/$(2); \
fi;
endef
# Workaround for GNU make 3.80: it fail on 'eval' within 'if'
# directive after some level of complexity, i.e. after complex
# rules it fails on code:
#
# $(eval $(call do_so_links,cc,))
# $(eval $(call do_so_links,cc,_DBG))
# ifndef WITHOUT_STLPORT
# $(eval $(call do_so_links,cc,_STLDBG))
# endif
#
# Put 'if' logic into defined macro looks as workaround.
#
# The GNU make 3.81 free from this problem, but it new...
define do_so_links
$${SO_NAME_OUT$(1)xxx}: $$(OBJ$(1)) $$(LIBSDEP)
ifeq ("${_C_SOURCES_ONLY}","")
ifneq ($(COMPILER_NAME),bcc)
$$(LINK.cc) $$(LINK_OUTPUT_OPTION) $${START_OBJ} $$(OBJ$(1)) $$(LDLIBS) $${STDLIBS} $${END_OBJ}
else
$$(LINK.cc) $${START_OBJ} $$(OBJ$(1)) $${END_OBJ}, $$(LINK_OUTPUT_OPTION), , $$(LDLIBS) $${STDLIBS}
endif
else
$$(LINK.c) $$(LINK_OUTPUT_OPTION) $$(OBJ$(1)) $$(LDLIBS)
endif
@$(call do_so_links_1,$$(OUTPUT_DIR$(1)),$${SO_NAME$(1)xx},$${SO_NAME$(1)xxx})
@$(call do_so_links_1,$$(OUTPUT_DIR$(1)),$${SO_NAME$(1)x},$${SO_NAME$(1)xx})
@$(call do_so_links_1,$$(OUTPUT_DIR$(1)),$${SO_NAME$(1)},$${SO_NAME$(1)x})
endef
define do_so_links_wk
# expand to nothing, if WITHOUT_STLPORT
ifndef WITHOUT_STLPORT
$(call do_so_links,$(1))
endif
endef
$(eval $(call do_so_links,))
$(eval $(call do_so_links,_DBG))
# ifndef WITHOUT_STLPORT
$(eval $(call do_so_links_wk,_STLDBG))
# endif
+100
View File
@@ -0,0 +1,100 @@
# Time-stamp: <07/03/08 21:41:52 ptr>
#
# Copyright (c) 1997-1999, 2002, 2003, 2005-2007
# Petr Ovtchenkov
#
# Portion Copyright (c) 1999-2001
# Parallel Graphics Ltd.
#
# Licensed under the Academic Free License version 3.0
#
#INCLUDES = -I$(SRCROOT)/include
#INCLUDES :=
CXX := cl.exe
CC := cl.exe
LINK := link.exe
RC := rc.exe
DEFS ?=
OPT ?=
# OUTPUT_OPTION = /Fo$@
release-shared: OUTPUT_OPTION = /Fo$@
release-static: OUTPUT_OPTION = /Fo$@
dbg-shared : OUTPUT_OPTION = /Fo$@ /Fd"${OUTPUT_DIR_DBG}"
stldbg-shared : OUTPUT_OPTION = /Fo$@ /Fd"${OUTPUT_DIR_STLDBG}"
dbg-static : OUTPUT_OPTION = /Fo$@ /Fd"${OUTPUT_DIR_A_DBG}"
stldbg-static : OUTPUT_OPTION = /Fo$@ /Fd"${OUTPUT_DIR_A_STLDBG}"
LINK_OUTPUT_OPTION = /OUT:$@
RC_OUTPUT_OPTION = /fo $@
DEFS += /D "WIN32" /D "_WINDOWS"
CPPFLAGS = $(DEFS) $(INCLUDES)
CFLAGS = /nologo /TC /W3 /GR /GX /Zm800 $(OPT)
CXXFLAGS = /nologo /TP /W3 /GR /GX /Zm800 $(OPT)
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) /c
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) /c
LINK.cc = $(LINK) /nologo $(LDFLAGS) $(TARGET_ARCH)
COMPILE.rc = $(RC) $(RCFLAGS)
CDEPFLAGS = /FD /E
CCDEPFLAGS = /FD /E
# STLport DEBUG mode specific defines
stldbg-static : DEFS += /D_DEBUG /D "_STLP_DEBUG"
stldbg-shared : DEFS += /D_DEBUG /D "_STLP_DEBUG"
stldbg-static-dep : DEFS += /D_DEBUG /D "_STLP_DEBUG"
stldbg-shared-dep : DEFS += /D_DEBUG /D "_STLP_DEBUG"
dbg-static : DEFS += /D_DEBUG
dbg-shared : DEFS += /D_DEBUG
dbg-static-dep : DEFS += /D_DEBUG
dbg-shared-dep : DEFS += /D_DEBUG
release-static : DEFS += /DNDEBUG
release-shared : DEFS += /DNDEBUG
release-static-dep : DEFS += /DNDEBUG
release-shared-dep : DEFS += /DNDEBUG
# optimization and debug compiler flags
release-static : OPT += /O2 /Og
release-shared : OPT += /O2 /Og
dbg-static : OPT += /Zi
dbg-shared : OPT += /Zi
#dbg-static-dep : OPT += -g
#dbg-shared-dep : OPT += -g
stldbg-static : OPT += /Zi
stldbg-shared : OPT += /Zi
#stldbg-static-dep : OPT += -g
#stldbg-shared-dep : OPT += -g
# dependency output parser (dependencies collector)
# oh, there VC is no mode has no options to print dependencies
# in more-or-less acceptable format. I use VC as preprocessor
# and see first line (here VC print file name).
# bug here: if no dependencies:
# ---------------------------------
# int main() { return 0; }
# ---------------------------------
# this sed script produce wrong output
# ---------------------------------
# obj/vc6/shared/xx.o obj/vc6/shared/xx.d : obj/vc6/shared/xx.cpp \
# ---------------------------------
# (wrong backslash at eol)
DP_OUTPUT_DIR = | grep "^\#line 1 " | (echo -e 's|\([a-zA-Z]\):|/cygdrive/\1|g\nt next\n: next\n1s|^\#line 1 \(.*\)|$(OUTPUT_DIR)/$*.o $@ : $< \\\\|\nt\n$$s|^\#line 1 "\(.*\)"|\1|g\nt space\ns|^\#line 1 "\(.*\)"|\1\\\\|g\nt space\nd\n: space\ns| |\\\\ |g\ns|^| |\ns|\\\\\\\\|/|g\n' > $(OUTPUT_DIR)/tmp.sed; sed -f $(OUTPUT_DIR)/tmp.sed; rm -f $(OUTPUT_DIR)/tmp.sed ) > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_DBG = | grep "^\#line 1 " | (echo -e 's|\([a-zA-Z]\):|/cygdrive/\1|g\nt next\n: next\n1s|^\#line 1 \(.*\)|$(OUTPUT_DIR_DBG)/$*.o $@ : $< \\\\|\nt\n$$s|^\#line 1 "\(.*\)"|\1|g\nt space\ns|^\#line 1 "\(.*\)"|\1\\\\|g\nt space\nd\n: space\ns| |\\\\ |g\ns|^| |\ns|\\\\\\\\|/|g\n' > $(OUTPUT_DIR_DBG)/tmp.sed; sed -f $(OUTPUT_DIR_DBG)/tmp.sed; rm -f $(OUTPUT_DIR_DBG)/tmp.sed ) > $@; \
[ -s $@ ] || rm -f $@
DP_OUTPUT_DIR_STLDBG = | grep "^\#line 1 " | (echo -e 's|\([a-zA-Z]\):|/cygdrive/\1|g\nt next\n: next\n1s|^\#line 1 \(.*\)|$(OUTPUT_DIR_STLDBG)/$*.o $@ : $< \\\\|\nt\n$$s|^\#line 1 "\(.*\)"|\1|g\nt space\ns|^\#line 1 "\(.*\)"|\1\\\\|g\nt space\nd\n: space\ns| |\\\\ |g\ns|^| |\ns|\\\\\\\\|/|g\n' > $(OUTPUT_DIR_STLDBG)/tmp.sed; sed -f $(OUTPUT_DIR_STLDBG)/tmp.sed; rm -f $(OUTPUT_DIR_STLDBG)/tmp.sed ) > $@; \
[ -s $@ ] || rm -f $@
@@ -0,0 +1,50 @@
# -*- makefile -*- Time-stamp: <03/10/26 16:17:03 ptr>
# $Id$
clobber: clean
@if exist $(PRG) del /F /Q $(PRG)
@if exist $(PRG_DBG) del /F /Q $(PRG_DBG)
@if exist $(PRG_STLDBG) del /F /Q $(PRG_STLDBG)
@if exist $(PRG_A) del /F /Q $(PRG_A)
@if exist $(PRG_A_DBG) del /F /Q $(PRG_A_DBG)
@if exist $(PRG_A_STLDBG) del /F /Q $(PRG_A_STLDBG)
@if exist $(PDB_NAME_OUT) del /F /Q $(PDB_NAME_OUT)
@if exist $(PDB_NAME_OUT_DBG) del /F /Q $(PDB_NAME_OUT_DBG)
@if exist $(PDB_NAME_OUT_STLDBG) del /F /Q $(PDB_NAME_OUT_STLDBG)
@if exist $(MANIFEST_NAME_OUT) del /F /Q $(MANIFEST_NAME_OUT)
@if exist $(MANIFEST_NAME_OUT_DBG) del /F /Q $(MANIFEST_NAME_OUT_DBG)
@if exist $(MANIFEST_NAME_OUT_STLDBG) del /F /Q $(MANIFEST_NAME_OUT_STLDBG)
@if exist $(A_PDB_NAME_OUT) del /F /Q $(A_PDB_NAME_OUT)
@if exist $(A_PDB_NAME_OUT_DBG) del /F /Q $(A_PDB_NAME_OUT_DBG)
@if exist $(A_PDB_NAME_OUT_STLDBG) del /F /Q $(A_PDB_NAME_OUT_STLDBG)
@-if exist $(OUTPUT_DIR) rd $(OUTPUT_DIR)
@-if exist $(OUTPUT_DIR_DBG) rd $(OUTPUT_DIR_DBG)
@-if exist $(OUTPUT_DIR_STLDBG) rd $(OUTPUT_DIR_STLDBG)
@-if exist $(OUTPUT_DIR_A) rd $(OUTPUT_DIR_A)
@-if exist $(OUTPUT_DIR_A_DBG) rd $(OUTPUT_DIR_A_DBG)
@-if exist $(OUTPUT_DIR_A_STLDBG) rd $(OUTPUT_DIR_A_STLDBG)
@-if exist $(OUTPUT_TARGET_DIR) rd $(OUTPUT_TARGET_DIR)
@-if exist $(OUTPUT_ROOT_DIR) rd $(OUTPUT_ROOT_DIR)
distclean: clobber
@if exist $(INSTALL_BIN_DIR)\$(PRG_NAME_BASE)$(EXE) del /F /Q $(INSTALL_BIN_DIR)\$(PRG_NAME_BASE)$(EXE)
@if exist $(INSTALL_BIN_DIR_DBG)\$(PRG_NAME_DBG_BASE)$(EXE) del /F /Q $(INSTALL_BIN_DIR_DBG)\$(PRG_NAME_DBG_BASE)$(EXE)
@if exist $(INSTALL_BIN_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE)$(EXE) del /F /Q $(INSTALL_BIN_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE)$(EXE)
@if exist $(INSTALL_STATIC_BIN_DIR)\$(PRG_NAME_A_BASE)$(EXE) del /F /Q $(INSTALL_STATIC_BIN_DIR)\$(PRG_NAME_A_BASE)$(EXE)
@if exist $(INSTALL_STATIC_BIN_DIR_DBG)\$(PRG_NAME_A_DBG_BASE)$(EXE) del /F /Q $(INSTALL_STATIC_BIN_DIR_DBG)\$(PRG_NAME_A_DBG_BASE)$(EXE)
@if exist $(INSTALL_STATIC_BIN_DIR_STLDBG)\$(PRG_NAME_A_STLDBG_BASE)$(EXE) del /F /Q $(INSTALL_STATIC_BIN_DIR_STLDBG)\$(PRG_NAME_A_STLDBG_BASE)$(EXE)
@if exist $(INSTALL_BIN_DIR)\$(PRG_NAME_BASE).pdb del /F /Q $(INSTALL_BIN_DIR)\$(PRG_NAME_BASE).pdb
@if exist $(INSTALL_BIN_DIR_DBG)\$(PRG_NAME_DBG_BASE).pdb del /F /Q $(INSTALL_BIN_DIR_DBG)\$(PRG_NAME_DBG_BASE).pdb
@if exist $(INSTALL_BIN_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE).pdb del /F /Q $(INSTALL_BIN_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE).pdb
@if exist $(INSTALL_STATIC_BIN_DIR)\$(PRG_NAME_A_BASE).pdb del /F /Q $(INSTALL_STATIC_BIN_DIR)\$(PRG_NAME_A_BASE).pdb
@if exist $(INSTALL_STATIC_BIN_DIR_DBG)\$(PRG_NAME_A_DBG_BASE).pdb del /F /Q $(INSTALL_STATIC_BIN_DIR_DBG)\$(PRG_NAME_A_DBG_BASE).pdb
@if exist $(INSTALL_STATIC_BIN_DIR_STLDBG)\$(PRG_NAME_A_STLDBG_BASE).pdb del /F /Q $(INSTALL_STATIC_BIN_DIR_STLDBG)\$(PRG_NAME_A_STLDBG_BASE).pdb
@if exist $(INSTALL_BIN_DIR)\$(PRG_NAME_BASE)$(EXE).manifest del /F /Q $(INSTALL_BIN_DIR)\$(PRG_NAME_BASE)$(EXE).manifest
@if exist $(INSTALL_BIN_DIR_DBG)\$(PRG_NAME_DBG_BASE)$(EXE).manifest del /F /Q $(INSTALL_BIN_DIR_DBG)\$(PRG_NAME_DBG_BASE)$(EXE).manifest
@if exist $(INSTALL_BIN_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE)$(EXE).manifest del /F /Q $(INSTALL_BIN_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE)$(EXE).manifest
@-if exist $(INSTALL_BIN_DIR) rd $(INSTALL_BIN_DIR)
@-if exist $(INSTALL_BIN_DIR_DBG) rd $(INSTALL_BIN_DIR_DBG)
@-if exist $(INSTALL_BIN_DIR_STLDBG) rd $(INSTALL_BIN_DIR_STLDBG)
@-if exist $(INSTALL_STATIC_BIN_DIR) rd $(INSTALL_STATIC_BIN_DIR)
@-if exist $(INSTALL_STATIC_BIN_DIR_DBG) rd $(INSTALL_STATIC_BIN_DIR_DBG)
@-if exist $(INSTALL_STATIC_BIN_DIR_STLDBG) rd $(INSTALL_STATIC_BIN_DIR_STLDBG)
@@ -0,0 +1,15 @@
# -*- makefile -*- Time-stamp: <04/05/01 00:46:25 ptr>
# $Id$
# missing defines in this file: LDFLAGS_COMMON
# For CE, the linker by default uses WinMain() as entry point, using this we make it use the standard main()
LDFLAGS_COMMON = $(LDFLAGS_COMMON) /entry:"mainACRTStartup"
!ifndef LDLIBS
LDLIBS =
!endif
LDFLAGS_REL = $(LDFLAGS_REL) $(LDFLAGS_COMMON) $(LDSEARCH)
LDFLAGS_DBG = $(LDFLAGS_DBG) $(LDFLAGS_COMMON) $(LDSEARCH)
LDFLAGS_STLDBG = $(LDFLAGS_STLDBG) $(LDFLAGS_COMMON) $(LDSEARCH)
@@ -0,0 +1,7 @@
# -*- makefile -*- Time-stamp: <04/05/01 00:46:25 ptr>
# $Id$
LDFLAGS_COMMON = $(LDFLAGS_COMMON) /base:"0x00010000"
!include evc-common.mak
@@ -0,0 +1,6 @@
# -*- makefile -*- Time-stamp: <04/03/31 08:08:12 ptr>
# $Id$
LDFLAGS_COMMON = $(LDFLAGS_COMMON) /base:"0x00010000"
!include evc-common.mak
@@ -0,0 +1,5 @@
# build/Makefiles/nmake/app/evc8.mak
LDFLAGS_COMMON = $(LDFLAGS_COMMON)
!include evc-common.mak
@@ -0,0 +1,5 @@
# build/Makefiles/nmake/app/evc9.mak
LDFLAGS_COMMON = $(LDFLAGS_COMMON)
!include evc-common.mak
@@ -0,0 +1,2 @@
!include vc-common.mak
@@ -0,0 +1,29 @@
# -*- makefile -*- Time-stamp: <03/09/28 17:22:37 ptr>
# $Id$
DBG_SUFFIX = d
STLDBG_SUFFIX = stl$(DBG_SUFFIX)
PRG_NAME_BASE = $(PRGNAME)
PRG_NAME_DBG_BASE = $(PRGNAME)$(DBG_SUFFIX)
PRG_NAME_STLDBG_BASE = $(PRGNAME)$(STLDBG_SUFFIX)
PRG_NAME_A_BASE = $(PRGNAME)_static
PRG_NAME_A_DBG_BASE = $(PRGNAME)$(DBG_SUFFIX)_static
PRG_NAME_A_STLDBG_BASE = $(PRGNAME)$(STLDBG_SUFFIX)_static
PRG = $(OUTPUT_DIR)\$(PRG_NAME_BASE)$(EXE)
PRG_DBG = $(OUTPUT_DIR_DBG)\$(PRG_NAME_DBG_BASE)$(EXE)
PRG_STLDBG = $(OUTPUT_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE)$(EXE)
PRG_A = $(OUTPUT_DIR_A)\$(PRG_NAME_A_BASE)$(EXE)
PRG_A_DBG = $(OUTPUT_DIR_A_DBG)\$(PRG_NAME_A_DBG_BASE)$(EXE)
PRG_A_STLDBG = $(OUTPUT_DIR_A_STLDBG)\$(PRG_NAME_A_STLDBG_BASE)$(EXE)
PDB_NAME_OUT = $(OUTPUT_DIR)\$(PRG_NAME_BASE).pdb
PDB_NAME_OUT_DBG = $(OUTPUT_DIR_DBG)\$(PRG_NAME_DBG_BASE).pdb
PDB_NAME_OUT_STLDBG = $(OUTPUT_DIR_STLDBG)\$(PRG_NAME_STLDBG_BASE).pdb
MANIFEST_NAME_OUT = $(PRG).manifest
MANIFEST_NAME_OUT_DBG = $(PRG_DBG).manifest
MANIFEST_NAME_OUT_STLDBG = $(PRG_STLDBG).manifest
A_PDB_NAME_OUT = $(OUTPUT_DIR_A)\$(PRG_NAME_A_BASE).pdb
A_PDB_NAME_OUT_DBG = $(OUTPUT_DIR_A_DBG)\$(PRG_NAME_A_DBG_BASE).pdb
A_PDB_NAME_OUT_STLDBG = $(OUTPUT_DIR_A_STLDBG)\$(PRG_NAME_A_STLDBG_BASE).pdb
@@ -0,0 +1,29 @@
# -*- makefile -*- Time-stamp: <03/10/26 23:11:03 ptr>
# $Id$
release-shared: $(OUTPUT_DIR) $(PRG)
release-static: $(OUTPUT_DIR_A) $(PRG_A)
dbg-shared: $(OUTPUT_DIR_DBG) $(PRG_DBG)
dbg-static: $(OUTPUT_DIR_A_DBG) $(PRG_A_DBG)
stldbg-shared: $(OUTPUT_DIR_STLDBG) $(PRG_STLDBG)
stldbg-static: $(OUTPUT_DIR_A_STLDBG) $(PRG_A_STLDBG)
$(PRG): $(OBJ) $(LIBSDEP)
$(LINK_cc_REL) $(LINK_OUTPUT_OPTION) $(OBJ) $(LDLIBS_REL) $(LDLIBS)
$(PRG_A): $(OBJ_A) $(LIBSDEP)
$(LINK_cc_A_REL) $(LINK_OUTPUT_OPTION) $(OBJ_A) $(LDLIBS_A_REL) $(LDLIBS)
$(PRG_DBG): $(OBJ_DBG) $(LIBSDEP)
$(LINK_cc_DBG) $(LINK_OUTPUT_OPTION) $(OBJ_DBG) $(LDLIBS_DBG) $(LDLIBS)
$(PRG_A_DBG): $(OBJ_A_DBG) $(LIBSDEP)
$(LINK_cc_A_DBG) $(LINK_OUTPUT_OPTION) $(OBJ_A_DBG) $(LDLIBS_A_DBG) $(LDLIBS)
$(PRG_STLDBG): $(OBJ_STLDBG) $(LIBSDEP)
$(LINK_cc_STLDBG) $(LINK_OUTPUT_OPTION) $(OBJ_STLDBG) $(LDLIBS_STLDBG) $(LDLIBS)
$(PRG_A_STLDBG): $(OBJ_A_STLDBG) $(LIBSDEP)
$(LINK_cc_A_STLDBG) $(LINK_OUTPUT_OPTION) $(OBJ_A_STLDBG) $(LDLIBS_A_STLDBG) $(LDLIBS)
Loaded 100 of 4715 files, more files were not shown because too many files have changed in this diff. Show more