Compare commits

..

19 Commits

Author SHA1 Message Date
Chris Laurel 47a792e83c Integrated change #5189 to sensor-dev branch: Initialized cullingRadius member of Body class. Leaving it uninitialized meant that it could end up set to NaN, resulting in odd behavior. 2012-02-25 02:21:11 +00:00
Chris Laurel 07f2c2bf30 Fixed resource name generation for sensor geometry to ensure that the
name is always unique for a body.
2012-02-25 01:52:46 +00:00
Chris Laurel 7653e220ce Propagated leap second change to sensor-dev branch. 2012-02-11 17:05:16 +00:00
Chris Laurel 3d3e3372bc Improvements for sensor frusta:
- Disable back face culling
- Draw adjacent faces of rectangular frusta with different opacities
2011-05-04 07:24:31 +00:00
Chris Laurel 0cc013f1e8 sensor-dev branch: Fixed bug with model animations in non-GL2 path. Solves problem with sensor frustum geometry being drawn incorrectly. 2011-04-09 02:18:10 +00:00
Chris Laurel 4b0350b9e3 Added script command to set and query visibility of named geometry components.
Currently, just the sensor geometry exposes components.
2010-12-22 01:11:30 +00:00
Chris Laurel 7512d65311 Updated SensorGeometry so that frustum base color may be set separately in
in an SSC file.
2010-12-21 23:54:45 +00:00
Chris Laurel 3617dd6e94 Integrated change 5091 to sensor-dev branch: fix for crash on systems with
Intel GPUs.
2010-12-21 18:19:44 +00:00
Chris Laurel d2d7ab8181 Fixed calculation of sensor frustum angles. 2010-12-13 22:41:05 +00:00
Chris Laurel edbcec6ff8 Fixed clipping of large multidraw geometry at very close range. 2010-12-07 22:55:42 +00:00
Chris Laurel 0dabce8884 Fixed clipping bug with multidraw geometry. 2010-12-06 23:39:32 +00:00
Chris Laurel 6139ea9b4d Fixed occasional crash when viewing sensors at close range. 2010-12-03 19:40:35 +00:00
Chris Laurel b286ad7274 Introduced 'multidraw' geometry that can extend across multiple depth
intervals. This is currently used to prevent clipping of sensor geometry, but
is a more generally useful feature.
2010-12-03 02:07:08 +00:00
Chris Laurel bff08a31dc Added Shape parameter for Sensor geometry--options are elliptical and
rectangular. Switched to exponential arrangement of slices in sensor
frustum.
2010-12-02 08:24:07 +00:00
Chris Laurel 9d8a301551 Fixed rendering of sensor geometry:
- Account for geometry orientation in intersection calculation
- Draw sensor out to its range when it doesn't intersect the target body
2010-11-30 20:54:22 +00:00
Chris Laurel 9840a67473 Enabled grid and appearance attributes for sensor frusta. 2010-11-30 00:04:02 +00:00
Chris Laurel 9d35943b50 Improved rendering of sensor frusta. 2010-11-29 23:07:07 +00:00
Chris Laurel 3616bdf92d Implemented horizontal and vertical FOV properties for sensor frustum geometry. 2010-11-26 19:04:53 +00:00
Chris Laurel 56d3466bc1 Skeleton implementation of sensor geometry. Parsing of Sensor geometry in
ssc files, but code currently currently just draws a line.
2010-11-24 04:27:28 +00:00
1931 changed files with 762286 additions and 275069 deletions

View File

@ -1,108 +0,0 @@
version: 1.7.0-dev-{build}
only_commits:
files:
- src/
- .appveyor.yml
- CMakeLists.txt
pull_requests:
do_not_increment_build_number: true
# Start builds on tags only (GitHub and BitBucket)
skip_non_tags: false
# Do not build feature branch with open Pull Requests
skip_branch_with_pr: true
# Even with `skip_branch_with_pr: true` appveyor builds that branch
# for the first time.
branches:
only:
- master
artifacts:
- path: '**/celestia-*.7z'
name: win
# Build worker image (VM template)
image: "Visual Studio 2015"
# clone directory
clone_folder: c:\projects\celestia
# set clone depth
clone_depth: 1
# build platform, i.e. x86, x64, Any CPU. This setting is optional.
platform:
- x86
environment:
Qt5_DIR: 'C:\Qt\5.10\msvc2015'
PATH: '%Qt5_DIR%\bin;%PATH%'
# scripts that run after cloning repository
init:
- call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %platform%
install:
- cd c:\tools\vcpkg
- vcpkg install libpng:x86-windows
- vcpkg install gettext:x86-windows
- vcpkg install libjpeg-turbo:x86-windows
- vcpkg remove lua:x86-windows
- vcpkg install luajit:x86-windows
- vcpkg install fmt:x86-windows
- vcpkg install libepoxy:x86-windows
- vcpkg install eigen3:x86-windows
- vcpkg install freetype:x86-windows
- vcpkg install sdl2:x86-windows
- git pull
- git checkout 99cfc38036f330a035b57aa67f661526153e31c7
- .\bootstrap-vcpkg.bat
- vcpkg install cspice:x86-windows
- vcpkg integrate install
- cd %APPVEYOR_BUILD_FOLDER%
build_script:
- cmd: >-
git submodule update --init
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=%Qt5_DIR% -DCMAKE_TOOLCHAIN_FILE=c:/tools/vcpkg/scripts/buildsystems/vcpkg.cmake -DENABLE_SPICE=ON -DENABLE_TOOLS=ON -DENABLE_TESTS=ON -DENABLE_SDL=OFF ..
cmake --build . --config RelWithDebInfo -- /maxcpucount:4 /nologo
set CTEST_OUTPUT_ON_FAILURE=1
copy src\celestia\RelWithDebInfo\*.dll test\unit\RelWithDebInfo\
ctest -C RelWithDebInfo
after_build:
- cmd: >-
cd c:\projects\celestia\build\src\celestia
7z a celestia-dep.x86.7z RelWithDebInfo\*
7z a celestia-win.x86.7z win32\RelWithDebInfo\*
windeployqt --no-angle --no-opengl-sw --no-translations --no-system-d3d-compiler qt\RelWithDebInfo\
7z a celestia-qt.x86.7z qt\RelWithDebInfo\*
cd ..\tools
7z a celestia-tools.x86.7z xyzv2bin\RelWithDebInfo\*.exe spice2xyzv\RelWithDebInfo\*.exe
#on_failure:
#- type "c:\projects\celestia\build\CMakeFiles\CMakeOutput.log"
#- type "c:\projects\celestia\build\CMakeFiles\CMakeError.log"
#- type "c:\projects\celestia\build\CMakeCache.txt"
# build cache to preserve files/folders between builds
cache: c:\tools\vcpkg\installed\

View File

@ -1,63 +0,0 @@
---
AccessModifierOffset: '-4'
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveMacros: 'true'
AlignConsecutiveAssignments: 'true'
AlignConsecutiveDeclarations: 'true'
AlignEscapedNewlines: Left
AlignOperands: 'true'
AlignTrailingComments: 'true'
AllowAllArgumentsOnNextLine: 'false'
AllowAllConstructorInitializersOnNextLine: 'false'
AllowAllParametersOfDeclarationOnNextLine: 'false'
AllowShortBlocksOnASingleLine: 'false'
AllowShortCaseLabelsOnASingleLine: 'false'
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: 'false'
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: 'true'
AlwaysBreakAfterReturnType: TopLevelDefinitions
AlwaysBreakBeforeMultilineStrings: 'false'
AlwaysBreakTemplateDeclarations: 'Yes'
BinPackArguments: 'false'
BinPackParameters: 'false'
BreakBeforeBinaryOperators: All
BreakBeforeBraces: Allman
BreakBeforeTernaryOperators: 'false'
BreakConstructorInitializers: AfterColon
BreakInheritanceList: AfterColon
BreakStringLiterals: 'true'
ColumnLimit: '100'
CompactNamespaces: 'false'
ConstructorInitializerAllOnOneLineOrOnePerLine: 'false'
Cpp11BracedListStyle: 'false'
FixNamespaceComments: 'true'
IncludeBlocks: Regroup
IndentCaseLabels: 'false'
IndentPPDirectives: None
IndentWidth: '4'
IndentWrappedFunctionNames: 'false'
KeepEmptyLinesAtTheStartOfBlocks: 'false'
Language: Cpp
MaxEmptyLinesToKeep: '1'
NamespaceIndentation: None
PointerAlignment: Right
ReflowComments: 'true'
SortIncludes: 'true'
SortUsingDeclarations: 'true'
SpaceAfterLogicalNot: 'false'
SpaceAfterTemplateKeyword: 'false'
SpaceBeforeAssignmentOperators: 'true'
SpaceBeforeCtorInitializerColon: 'true'
SpaceBeforeInheritanceColon: 'true'
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: 'true'
SpaceInEmptyParentheses: 'false'
SpacesBeforeTrailingComments: '1'
SpacesInAngles: 'false'
SpacesInParentheses: 'false'
SpacesInSquareBrackets: 'false'
Standard: c++17
TabWidth: '4'
UseTab: Never
UseCRLF: 'false'

View File

@ -1,32 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. GNU/Linux, Windows, macOS]
- Frontend: [e.g. Qt, native Win, native Mac]
- Version: [e.g. 1.7.0]
**Additional context**
Add any other context about the problem here.

View File

@ -1,20 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@ -1,8 +0,0 @@
Closes #[issue number]
## Description
-
### Screenshots

View File

@ -1,248 +0,0 @@
name: Celestia
on:
push:
branches: [ master ]
paths: [ src/**, test/**, .github/workflows/ci.yml, CMakeLists.txt ]
pull_request:
branches: [ master ]
paths: [ src/**, test/**, .github/workflows/ci.yml, CMakeLists.txt ]
env:
BUILD_TYPE: RelWithDebInfo
CTEST_OUTPUT_ON_FAILURE: 1
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'
jobs:
build-windows:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
platform: [x64, x86]
generator_platform: [x64, Win32]
include:
- platform: x64
generator_platform: x64
- platform: x86
generator_platform: Win32
exclude:
- platform: x64
generator_platform: Win32
- platform: x86
generator_platform: x64
steps:
- name: 'Setup NuGet Credentials'
shell: 'bash'
run: >
$(c:/vcpkg/vcpkg fetch nuget | tail -n 1)
sources add
-source "https://nuget.pkg.github.com/CelestiaProject/index.json"
-storepasswordincleartext
-name "GitHub"
-username "CelestiaProject"
-password "${{ secrets.GITHUB_TOKEN }}"
- name: 'Install dependencies'
run: vcpkg --triplet=${{matrix.platform}}-windows install --recurse libpng libjpeg-turbo gettext luajit fmt libepoxy eigen3 freetype cspice qt5-base
- name: 'Checkout source code'
uses: actions/checkout@v2
with:
submodules: true
- name: 'Configure CMake'
run: cmake -B ${{github.workspace}}/build -DCMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=${{matrix.platform}}-windows -DCMAKE_GENERATOR_PLATFORM=${{matrix.generator_platform}} -DENABLE_SPICE=ON -DENABLE_TOOLS=ON -DENABLE_TESTS=ON -DENABLE_SDL=OFF -DENABLE_QT=ON
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -- /maxcpucount:2 /nologo
- name: 'Copy DLL for tests'
working-directory: ${{github.workspace}}/build
run: |
copy src\celestia\${{env.BUILD_TYPE}}\*.dll test\unit\${{env.BUILD_TYPE}}\
copy src\celestia\${{env.BUILD_TYPE}}\*.dll test\integration\${{env.BUILD_TYPE}}\
- name: Test
working-directory: ${{github.workspace}}/build
run: ctest -C ${{env.BUILD_TYPE}}
- name: Package artifacts
working-directory: ${{github.workspace}}/build/src/celestia
run: |
7z a celestia-dep.${{matrix.platform}}.7z ${{env.BUILD_TYPE}}\*
7z a celestia-win.${{matrix.platform}}.7z win32\${{env.BUILD_TYPE}}\* win32\res\${{env.BUILD_TYPE}}\res_*.dll
c:\vcpkg\ports\qt5-base\qtdeploy.ps1 qt\${{env.BUILD_TYPE}}\
7z a celestia-qt.${{matrix.platform}}.7z qt\${{env.BUILD_TYPE}}\*
cd ..\tools
7z a celestia-tools.${{matrix.platform}}.7z xyzv2bin\${{env.BUILD_TYPE}}\*.exe spice2xyzv\${{env.BUILD_TYPE}}\*.exe
- name: Upload artifacts
uses: actions/upload-artifact@v2
if: success()
with:
name: celestia-${{matrix.platform}}
path: ${{github.workspace}}/build/src/*/*.7z
build-ubuntu-old:
strategy:
fail-fast: false
matrix:
platform: [ ubuntu-18.04 ]
runs-on: ${{matrix.platform}}
steps:
- name: 'Install dependencies'
run: |
sudo apt update
sudo apt install -y libeigen3-dev \
libepoxy-dev \
libavcodec-dev \
libavformat-dev \
libavutil-dev \
libswscale-dev \
libjpeg-dev \
libpng-dev \
libglu1-mesa-dev \
qtbase5-dev \
qtbase5-dev-tools \
libqt5opengl5-dev \
libgtk-3-dev \
libfreetype6-dev \
libsdl2-dev \
libluajit-5.1-dev \
libfmt-dev \
ninja-build
- name: 'Checkout source code'
uses: actions/checkout@v2
with:
submodules: true
- name: 'Configure CMake'
run: |
cmake -B ${{github.workspace}}/build \
-G Ninja \
-DENABLE_GLES=ON \
-DENABLE_SPICE=ON \
-DENABLE_TOOLS=OFF \
-DENABLE_TESTS=ON \
-DENABLE_SDL=ON \
-DENABLE_GTK=ON \
-DUSE_GTK3=ON \
-DENABLE_FFMPEG=ON
- name: Build
working-directory: ${{github.workspace}}/build
run: ninja
- name: Test
working-directory: ${{github.workspace}}/build
run: ctest
gnulinux-arm64:
runs-on: self-hosted
steps:
- name: 'Install dependencies'
run: |
#sudo dnf config-manager --set-enabled ol8_codeready_builder
sudo yum install -y eigen3-devel \
libepoxy-devel \
libpng-devel \
libjpeg-turbo-devel \
freetype-devel \
SDL2-devel \
lua-devel \
gtk3-devel \
gettext-devel \
cmake \
ninja-build \
gcc-toolset-11-gcc-c++
- name: 'Checkout source code'
uses: actions/checkout@v2
with:
submodules: true
- name: 'Configure CMake'
run: |
cmake -B ${{github.workspace}}/build \
-G Ninja \
-DENABLE_GLES=ON \
-DENABLE_SPICE=ON \
-DENABLE_TOOLS=ON \
-DENABLE_TESTS=ON \
-DENABLE_SDL=ON \
-DENABLE_GTK=ON \
-DUSE_GTK3=ON \
-DENABLE_QT=OFF \
-DENABLE_FFMPEG=OFF
env:
CC: /opt/rh/gcc-toolset-11/root/usr/bin/gcc
CXX: /opt/rh/gcc-toolset-11/root/usr/bin/g++
- name: Build
working-directory: ${{github.workspace}}/build
run: ninja
- name: Test
working-directory: ${{github.workspace}}/build
run: ctest
sonarscanner:
runs-on: sonarscanner
steps:
- name: 'Install dependencies'
run: |
sudo apt update
sudo apt install -y libeigen3-dev \
libepoxy-dev \
libavcodec-dev \
libavformat-dev \
libavutil-dev \
libswscale-dev \
libjpeg-dev \
libpng-dev \
libglu1-mesa-dev \
qtbase5-dev \
qtbase5-dev-tools \
libqt5opengl5-dev \
libfreetype6-dev \
libsdl2-dev \
libluajit-5.1-dev \
cmake
- name: 'Checkout source code'
uses: actions/checkout@v2
with:
submodules: true
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: 'Configure CMake'
run: |
cmake -B ${{github.workspace}}/build \
-G Ninja \
-DENABLE_GLES=ON \
-DENABLE_SPICE=OFF \
-DENABLE_TOOLS=OFF \
-DENABLE_TESTS=OFF \
-DENABLE_SDL=ON \
-DENABLE_GTK=OFF \
-DENABLE_QT=ON \
-DENABLE_FFMPEG=ON \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
- name: Analyze
run: |
sonar-scanner \
-Dsonar.cfamily.compile-commands=build/compile_commands.json \
-Dsonar.organization=celestiaproject \
-Dsonar.projectKey=CelestiaProject_Celestia \
-Dsonar.sources=src/ \
-Dsonar.exclusions=src/celestia/win32/**,src/celestia/win32/gtk/**,src/celestia/glut/** \
-Dsonar.test.exclusions=test/** \
-Dsonar.tests=test/
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,29 +0,0 @@
name: Celestia
on:
push:
branches: [ master ]
paths: [ po/**, .github/workflows/translations.yml ]
pull_request:
branches: [ master ]
paths: [ po/**, .github/workflows/translations.yml ]
jobs:
gettext:
strategy:
fail-fast: true
matrix:
platform: [ ubuntu-latest ]
runs-on: ubuntu-latest
steps:
- name: 'Install dependencies'
run: |
sudo apt update
sudo apt install -y gettext
- name: 'Checkout source code'
uses: actions/checkout@v2
- name: 'Validate translations'
working-directory: ${{github.workspace}}/po
run: for i in *.po; do msgfmt --statistics --verbose $i; done

27
.gitignore vendored
View File

@ -1,27 +0,0 @@
*.user
Debug/
Release/
.vs/
.vscode/
*~
*.o
*.a
*.la
*.exe
*.dll
*.swp
.DS_Store
po*/*.gmo
po*/POTFILES
build*/
src/celestia/win32/res/resource_strings.cpp
src/celestia/qt/rc.cpp
locale/*/LC_MESSAGES/
data/
extras/
extras-standard/
models/
textures/
mingw/
content/
CMakeSettings.json

9
.gitmodules vendored
View File

@ -1,9 +0,0 @@
[submodule "thirdparty/Spice"]
path = thirdparty/Spice
url = https://github.com/OpenSpace/Spice.git
[submodule "thirdparty/fmt"]
path = thirdparty/fmt
url = https://github.com/fmtlib/fmt.git
[submodule "src/tools/celestia-gaia-stardb"]
path = src/tools/celestia-gaia-stardb
url = https://github.com/ajtribick/celestia-gaia-stardb.git

View File

@ -1,68 +0,0 @@
dist: xenial
osx_image: xcode12.2
language: cpp
sudo: true
git:
depth: 1
quiet: true
notifications:
email: false
os:
- linux
- osx
env:
- LUA=jit-5.1
- LUA=5.2
- LUA=5.3
matrix:
exclude:
- os: osx
env: LUA=jit-5.1
- os: osx
env: LUA=5.2
- os: linux
env: LUA=5.2
before_script:
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt install -y liblua${LUA}-dev; fi
- if [ "$TRAVIS_OS_NAME" == "osx" ] ; then brew link gettext --force; fi
- mkdir build
- cd build
script:
- cmake -DENABLE_SPICE=ON -DENABLE_TOOLS=ON -DENABLE_TESTS=ON -DENABLE_SDL=ON ..
- make -j $(nproc || echo 4)
- CTEST_OUTPUT_ON_FAILURE=1 ctest
addons:
apt:
packages:
- libeigen3-dev
- libepoxy-dev
- libtheora-dev
- libjpeg-dev
- libpng-dev
- libglu1-mesa-dev
- qtbase5-dev
- qtbase5-dev-tools
- libqt5opengl5-dev
- libfreetype6-dev
- libsdl2-dev
homebrew:
packages:
- eigen
- cspice
- fmt
- jpeg
- gettext
- libpng
- lua
- qt5
- freetype
- libepoxy
- sdl2

768
ABOUT-NLS 100644
View File

@ -0,0 +1,768 @@
Notes on the Free Translation Project
*************************************
Free software is going international! The Free Translation Project is
a way to get maintainers of free software, translators, and users all
together, so that will gradually become able to speak many languages.
A few packages already provide translations for their messages.
If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
itself available at your nearest GNU archive site. But you do _not_
need to install GNU `gettext' prior to configuring, installing or using
this package with messages translated.
Installers will find here some useful hints. These notes also
explain how users should proceed for getting the programs to use the
available translations. They tell how people wanting to contribute and
work at translations should contact the appropriate team.
When reporting bugs in the `intl/' directory or bugs which may be
related to internationalization, you should tell about the version of
`gettext' which is used. The information can be found in the
`intl/VERSION' file, in internationalized packages.
Quick configuration advice
==========================
If you want to exploit the full power of internationalization, you
should configure it using
./configure --with-included-gettext
to force usage of internationalizing routines provided within this
package, despite the existence of internationalizing capabilities in the
operating system where this package is being installed. So far, only
the `gettext' implementation in the GNU C library version 2 provides as
many features (such as locale alias, message inheritance, automatic
charset conversion or plural form handling) as the implementation here.
It is also not possible to offer this additional functionality on top
of a `catgets' implementation. Future versions of GNU `gettext' will
very likely convey even more functionality. So it might be a good idea
to change to GNU `gettext' as soon as possible.
So you need _not_ provide this option if you are using GNU libc 2 or
you have installed a recent copy of the GNU gettext package with the
included `libintl'.
INSTALL Matters
===============
Some packages are "localizable" when properly installed; the programs
they contain can be made to speak your own native language. Most such
packages use GNU `gettext'. Other packages have their own ways to
internationalization, predating GNU `gettext'.
By default, this package will be installed to allow translation of
messages. It will automatically detect whether the system already
provides the GNU `gettext' functions. If not, the GNU `gettext' own
library will be used. This library is wholly contained within this
package, usually in the `intl/' subdirectory, so prior installation of
the GNU `gettext' package is _not_ required. Installers may use
special options at configuration time for changing the default
behaviour. The commands:
./configure --with-included-gettext
./configure --disable-nls
will respectively bypass any pre-existing `gettext' to use the
internationalizing routines provided within this package, or else,
_totally_ disable translation of messages.
When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
probably detect the previously built and installed `libintl.a' file and
will decide to use this. This might be not what is desirable. You
should use the more recent version of the GNU `gettext' library. I.e.
if the file `intl/VERSION' shows that the library which comes with this
package is more recent, you should use
./configure --with-included-gettext
to prevent auto-detection.
The configuration process will not test for the `catgets' function
and therefore it will not be used. The reason is that even an
emulation of `gettext' on top of `catgets' could not provide all the
extensions of the GNU `gettext' library.
Internationalized packages have usually many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language. Unless
translations have been forbidden at `configure' time by using the
`--disable-nls' switch, all available translations are installed
together with the package. However, the environment variable `LINGUAS'
may be set, prior to configuration, to limit the installed set.
`LINGUAS' should then contain a space separated list of two-letter
codes, stating which languages are allowed.
Using This Package
==================
As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
and `CC' is an ISO 3166 two-letter country code. For example, let's
suppose that you speak German and live in Germany. At the shell
prompt, merely execute `setenv LANG de_DE' (in `csh'),
`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
This can be done from your `.login' or `.profile' file, once and for
all.
You might think that the country code specification is redundant.
But in fact, some languages have dialects in different countries. For
example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
country code serves to distinguish the dialects.
The locale naming convention of `LL_CC', with `LL' denoting the
language and `CC' denoting the country, is the one use on systems based
on GNU libc. On other systems, some variations of this scheme are
used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
locales supported by your system for your country by running the command
`locale -a | grep '^LL''.
Not all programs have translations for all languages. By default, an
English message is shown in place of a nonexistent translation. If you
understand other languages, you can set up a priority list of languages.
This is done through a different environment variable, called
`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
for the purpose of message handling, but you still need to have `LANG'
set to the primary language; this is required by other parts of the
system libraries. For example, some Swedish users who would rather
read translations in German than English for when Swedish is not
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
Special advice for Norwegian users: The language code for Norwegian
bokma*l changed from `no' to `nb' recently (in 2003). During the
transition period, while some message catalogs for this language are
installed under `nb' and some older ones under `no', it's recommended
for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
older translations are used.
In the `LANGUAGE' environment variable, but not in the `LANG'
environment variable, `LL_CC' combinations can be abbreviated as `LL'
to denote the language's main dialect. For example, `de' is equivalent
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
(Portuguese as spoken in Portugal) in this context.
Translating Teams
=================
For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list. The up-to-date list of
teams can be found at the Free Translation Project's homepage,
`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
area.
If you'd like to volunteer to _work_ at translating messages, you
should become a member of the translating team for your own language.
The subscribing address is _not_ the same as the list itself, it has
`-request' appended. For example, speakers of Swedish can send a
message to `sv-request@li.org', having this message body:
subscribe
Keep in mind that team members are expected to participate
_actively_ in translations, or at solving translational difficulties,
rather than merely lurking around. If your team does not exist yet and
you want to start one, or if you are unsure about what to do or how to
get started, please write to `translation@iro.umontreal.ca' to reach the
coordinator for all translator teams.
The English team is special. It works at improving and uniformizing
the terminology in use. Proven linguistic skill are praised more than
programming skill, here.
Available Packages
==================
Languages are not equally supported in all packages. The following
matrix shows the current state of internationalization, as of January
2004. The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination, with a
translation percentage of at least 50%.
Ready PO files af am ar az be bg bs ca cs da de el en en_GB eo es
+----------------------------------------------------+
a2ps | [] [] [] [] |
aegis | () |
ant-phone | () |
anubis | |
ap-utils | |
aspell | [] |
bash | [] [] [] [] |
batchelor | |
bfd | [] [] |
binutils | [] [] |
bison | [] [] [] |
bluez-pin | [] [] [] |
clisp | |
clisp | [] [] [] |
console-tools | [] [] |
coreutils | [] [] [] [] |
cpio | [] [] [] |
darkstat | [] () [] |
diffutils | [] [] [] [] [] [] [] |
e2fsprogs | [] [] [] |
enscript | [] [] [] [] |
error | [] [] [] [] [] |
fetchmail | [] () [] [] [] [] |
fileutils | [] [] [] |
findutils | [] [] [] [] [] [] [] |
flex | [] [] [] [] |
fslint | |
gas | [] |
gawk | [] [] [] [] |
gbiff | [] |
gcal | [] |
gcc | [] [] |
gettext | [] [] [] [] [] |
gettext-examples | [] [] [] [] |
gettext-runtime | [] [] [] [] [] |
gettext-tools | [] [] [] |
gimp-print | [] [] [] [] [] |
gliv | |
glunarclock | [] [] |
gnubiff | [] |
gnucash | [] () [] [] |
gnucash-glossary | [] () [] |
gnupg | [] () [] [] [] [] |
gpe-aerial | [] |
gpe-beam | [] [] |
gpe-calendar | [] [] |
gpe-clock | [] [] |
gpe-conf | [] [] |
gpe-contacts | [] [] |
gpe-edit | [] |
gpe-go | [] |
gpe-login | [] [] |
gpe-ownerinfo | [] [] |
gpe-sketchbook | [] [] |
gpe-su | [] [] |
gpe-taskmanager | [] [] |
gpe-timesheet | [] |
gpe-today | [] [] |
gpe-todo | [] [] |
gphoto2 | [] [] [] [] |
gprof | [] [] [] |
gpsdrive | () () () |
gramadoir | [] |
grep | [] [] [] [] [] [] |
gretl | [] |
gtick | [] () |
hello | [] [] [] [] [] [] |
id-utils | [] [] |
indent | [] [] [] [] |
iso_3166 | [] [] [] [] [] [] [] [] [] [] |
iso_3166_1 | [] [] [] [] [] [] |
iso_3166_2 | |
iso_3166_3 | [] |
iso_4217 | [] [] [] [] |
iso_639 | |
jpilot | [] [] [] |
jtag | |
jwhois | [] |
kbd | [] [] [] [] [] |
latrine | () |
ld | [] [] |
libc | [] [] [] [] [] [] |
libgpewidget | [] [] |
libiconv | [] [] [] [] [] |
lifelines | [] () |
lilypond | [] |
lingoteach | |
lingoteach_lessons | () () |
lynx | [] [] [] [] |
m4 | [] [] [] [] |
mailutils | [] [] |
make | [] [] [] |
man-db | [] () [] [] () |
minicom | [] [] [] |
mysecretdiary | [] [] [] |
nano | [] () [] [] [] |
nano_1_0 | [] () [] [] [] |
opcodes | [] |
parted | [] [] [] [] [] |
ptx | [] [] [] [] [] |
python | |
radius | [] |
recode | [] [] [] [] [] [] [] |
rpm | [] [] |
screem | |
scrollkeeper | [] [] [] [] [] [] |
sed | [] [] [] [] [] [] |
sh-utils | [] [] [] |
shared-mime-info | |
sharutils | [] [] [] [] [] [] |
silky | () |
skencil | [] () [] |
sketch | [] () [] |
soundtracker | [] [] [] |
sp | [] |
tar | [] [] [] [] |
texinfo | [] [] [] |
textutils | [] [] [] [] |
tin | () () |
tp-robot | |
tuxpaint | [] [] [] [] [] [] [] |
unicode-han-tra... | |
unicode-transla... | |
util-linux | [] [] [] [] [] |
vorbis-tools | [] [] [] [] |
wastesedge | () |
wdiff | [] [] [] [] |
wget | [] [] [] [] [] [] |
xchat | [] [] [] [] |
xfree86_xkb_xml | [] [] |
xpad | [] |
+----------------------------------------------------+
af am ar az be bg bs ca cs da de el en en_GB eo es
4 0 0 1 9 4 1 40 41 60 78 17 1 5 13 68
et eu fa fi fr ga gl he hr hu id is it ja ko lg
+-------------------------------------------------+
a2ps | [] [] [] () () |
aegis | |
ant-phone | [] |
anubis | [] |
ap-utils | [] |
aspell | [] [] |
bash | [] [] |
batchelor | [] [] |
bfd | [] |
binutils | [] [] |
bison | [] [] [] [] |
bluez-pin | [] [] [] [] [] |
clisp | |
clisp | [] |
console-tools | |
coreutils | [] [] [] [] [] [] |
cpio | [] [] [] [] |
darkstat | () [] [] [] |
diffutils | [] [] [] [] [] [] [] |
e2fsprogs | |
enscript | [] [] |
error | [] [] [] [] |
fetchmail | [] |
fileutils | [] [] [] [] [] [] |
findutils | [] [] [] [] [] [] [] [] [] [] [] |
flex | [] [] [] |
fslint | [] |
gas | [] |
gawk | [] [] [] |
gbiff | [] |
gcal | [] |
gcc | [] |
gettext | [] [] [] |
gettext-examples | [] [] |
gettext-runtime | [] [] [] [] [] |
gettext-tools | [] [] [] |
gimp-print | [] [] |
gliv | () |
glunarclock | [] [] [] [] |
gnubiff | [] |
gnucash | () [] |
gnucash-glossary | [] |
gnupg | [] [] [] [] [] [] [] |
gpe-aerial | [] |
gpe-beam | [] |
gpe-calendar | [] [] [] |
gpe-clock | [] |
gpe-conf | [] |
gpe-contacts | [] [] |
gpe-edit | [] [] |
gpe-go | [] |
gpe-login | [] [] |
gpe-ownerinfo | [] [] [] |
gpe-sketchbook | [] |
gpe-su | [] |
gpe-taskmanager | [] |
gpe-timesheet | [] [] [] |
gpe-today | [] [] |
gpe-todo | [] [] |
gphoto2 | [] [] [] |
gprof | [] [] |
gpsdrive | () () () |
gramadoir | [] [] |
grep | [] [] [] [] [] [] [] [] [] [] [] |
gretl | [] [] |
gtick | [] [] [] |
hello | [] [] [] [] [] [] [] [] [] [] [] [] [] |
id-utils | [] [] [] [] |
indent | [] [] [] [] [] [] [] [] [] |
iso_3166 | [] [] [] [] [] [] [] |
iso_3166_1 | [] [] [] [] [] |
iso_3166_2 | |
iso_3166_3 | |
iso_4217 | [] [] [] [] [] [] |
iso_639 | |
jpilot | [] () |
jtag | [] |
jwhois | [] [] [] [] |
kbd | [] |
latrine | [] |
ld | [] |
libc | [] [] [] [] [] [] |
libgpewidget | [] [] [] [] |
libiconv | [] [] [] [] [] [] [] [] [] |
lifelines | () |
lilypond | [] |
lingoteach | [] [] |
lingoteach_lessons | |
lynx | [] [] [] [] |
m4 | [] [] [] [] |
mailutils | |
make | [] [] [] [] [] [] |
man-db | () () |
minicom | [] [] [] [] |
mysecretdiary | [] [] |
nano | [] [] [] [] |
nano_1_0 | [] [] [] [] |
opcodes | [] |
parted | [] [] [] |
ptx | [] [] [] [] [] [] [] |
python | |
radius | [] |
recode | [] [] [] [] [] [] |
rpm | [] [] |
screem | |
scrollkeeper | [] |
sed | [] [] [] [] [] [] [] [] [] |
sh-utils | [] [] [] [] [] [] [] |
shared-mime-info | [] [] [] |
sharutils | [] [] [] [] [] |
silky | () [] () () |
skencil | [] |
sketch | [] |
soundtracker | [] [] |
sp | [] () |
tar | [] [] [] [] [] [] [] [] [] |
texinfo | [] [] [] [] |
textutils | [] [] [] [] [] [] |
tin | [] () |
tp-robot | [] |
tuxpaint | [] [] [] [] [] [] [] [] [] |
unicode-han-tra... | |
unicode-transla... | [] [] |
util-linux | [] [] [] [] () [] |
vorbis-tools | [] |
wastesedge | () |
wdiff | [] [] [] [] [] [] |
wget | [] [] [] [] [] [] [] |
xchat | [] [] [] |
xfree86_xkb_xml | [] [] |
xpad | [] [] |
+-------------------------------------------------+
et eu fa fi fr ga gl he hr hu id is it ja ko lg
22 2 1 26 106 28 24 8 10 41 33 1 26 33 12 0
lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
+-----------------------------------------------------+
a2ps | [] [] () () [] [] [] |
aegis | () () () |
ant-phone | [] [] |
anubis | [] [] [] [] [] [] |
ap-utils | [] () [] |
aspell | [] |
bash | [] [] [] |
batchelor | [] |
bfd | [] |
binutils | [] |
bison | [] [] [] [] [] |
bluez-pin | [] [] [] |
clisp | |
clisp | [] |
console-tools | [] |
coreutils | [] [] |
cpio | [] [] [] [] [] |
darkstat | [] [] [] [] |
diffutils | [] [] [] [] [] [] |
e2fsprogs | [] |
enscript | [] [] [] [] |
error | [] [] [] |
fetchmail | [] [] () [] |
fileutils | [] [] [] |
findutils | [] [] [] [] [] |
flex | [] [] [] [] |
fslint | [] [] |
gas | |
gawk | [] [] [] |
gbiff | [] [] |
gcal | |
gcc | |
gettext | [] [] [] |
gettext-examples | [] [] [] |
gettext-runtime | [] [] [] [] |
gettext-tools | [] [] |
gimp-print | [] |
gliv | [] [] [] |
glunarclock | [] [] [] [] |
gnubiff | [] |
gnucash | [] [] () [] |
gnucash-glossary | [] [] |
gnupg | [] |
gpe-aerial | [] [] [] [] |
gpe-beam | [] [] [] [] |
gpe-calendar | [] [] [] [] |
gpe-clock | [] [] [] [] |
gpe-conf | [] [] [] [] |
gpe-contacts | [] [] [] [] |
gpe-edit | [] [] [] [] |
gpe-go | [] [] [] |
gpe-login | [] [] [] [] |
gpe-ownerinfo | [] [] [] [] |
gpe-sketchbook | [] [] [] [] |
gpe-su | [] [] [] [] |
gpe-taskmanager | [] [] [] [] |
gpe-timesheet | [] [] [] [] |
gpe-today | [] [] [] [] |
gpe-todo | [] [] [] [] |
gphoto2 | [] |
gprof | [] [] |
gpsdrive | () () [] |
gramadoir | () [] |
grep | [] [] [] [] [] |
gretl | |
gtick | [] [] [] |
hello | [] [] [] [] [] [] [] [] [] [] |
id-utils | [] [] [] [] |
indent | [] [] [] [] |
iso_3166 | [] [] [] |
iso_3166_1 | [] [] |
iso_3166_2 | |
iso_3166_3 | [] |
iso_4217 | [] [] [] [] [] [] [] [] |
iso_639 | [] |
jpilot | () () |
jtag | |
jwhois | [] [] [] [] () |
kbd | [] [] [] |
latrine | [] |
ld | |
libc | [] [] [] [] |
libgpewidget | [] [] [] |
libiconv | [] [] [] [] [] |
lifelines | |
lilypond | |
lingoteach | |
lingoteach_lessons | |
lynx | [] [] [] |
m4 | [] [] [] [] [] |
mailutils | [] [] [] |
make | [] [] [] [] |
man-db | [] |
minicom | [] [] [] [] |
mysecretdiary | [] [] [] |
nano | [] [] [] [] [] |
nano_1_0 | [] [] [] [] [] [] |
opcodes | [] [] |
parted | [] [] [] [] |
ptx | [] [] [] [] [] [] [] [] |
python | |
radius | [] [] |
recode | [] [] [] [] |
rpm | [] [] [] |
screem | |
scrollkeeper | [] [] [] [] [] |
sed | [] [] [] |
sh-utils | [] [] |
shared-mime-info | [] [] |
sharutils | [] [] |
silky | () |
skencil | [] [] |
sketch | [] [] |
soundtracker | |
sp | |
tar | [] [] [] [] [] [] |
texinfo | [] [] [] [] |
textutils | [] [] |
tin | |
tp-robot | [] |
tuxpaint | [] [] [] [] [] [] [] [] |
unicode-han-tra... | |
unicode-transla... | |
util-linux | [] [] [] |
vorbis-tools | [] [] [] |
wastesedge | |
wdiff | [] [] [] [] [] |
wget | [] [] [] |
xchat | [] [] [] |
xfree86_xkb_xml | [] [] |
xpad | [] [] |
+-----------------------------------------------------+
lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
1 2 0 3 12 0 10 69 6 7 1 40 26 36 76 63
sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
+-----------------------------------------------------+
a2ps | [] [] [] [] | 16
aegis | | 0
ant-phone | | 3
anubis | [] [] | 9
ap-utils | () | 3
aspell | | 4
bash | | 9
batchelor | | 3
bfd | [] [] | 6
binutils | [] [] [] | 8
bison | [] [] | 14
bluez-pin | [] [] [] | 14
clisp | | 0
clisp | | 5
console-tools | | 3
coreutils | [] [] [] [] | 16
cpio | [] [] | 14
darkstat | [] [] [] () () | 12
diffutils | [] [] [] | 23
e2fsprogs | [] [] | 6
enscript | [] [] | 12
error | [] [] [] | 15
fetchmail | [] [] | 11
fileutils | [] [] [] [] [] | 17
findutils | [] [] [] [] [] [] | 29
flex | [] [] | 13
fslint | | 3
gas | [] | 3
gawk | [] [] | 12
gbiff | | 4
gcal | [] [] | 4
gcc | [] | 4
gettext | [] [] [] [] [] | 16
gettext-examples | [] [] [] [] [] | 14
gettext-runtime | [] [] [] [] [] [] [] [] | 22
gettext-tools | [] [] [] [] [] [] | 14
gimp-print | [] [] | 10
gliv | | 3
glunarclock | [] [] [] | 13
gnubiff | | 3
gnucash | [] [] | 9
gnucash-glossary | [] [] [] | 8
gnupg | [] [] [] [] | 17
gpe-aerial | [] | 7
gpe-beam | [] | 8
gpe-calendar | [] [] [] [] | 13
gpe-clock | [] [] [] | 10
gpe-conf | [] [] | 9
gpe-contacts | [] [] [] | 11
gpe-edit | [] [] [] [] [] | 12
gpe-go | | 5
gpe-login | [] [] [] [] [] | 13
gpe-ownerinfo | [] [] [] [] | 13
gpe-sketchbook | [] [] | 9
gpe-su | [] [] [] | 10
gpe-taskmanager | [] [] [] | 10
gpe-timesheet | [] [] [] [] | 12
gpe-today | [] [] [] [] [] | 13
gpe-todo | [] [] [] [] | 12
gphoto2 | [] [] [] | 11
gprof | [] [] | 9
gpsdrive | [] [] | 3
gramadoir | [] | 5
grep | [] [] [] [] | 26
gretl | | 3
gtick | | 7
hello | [] [] [] [] [] | 34
id-utils | [] [] | 12
indent | [] [] [] [] | 21
iso_3166 | [] [] [] [] [] [] [] | 27
iso_3166_1 | [] [] [] | 16
iso_3166_2 | | 0
iso_3166_3 | | 2
iso_4217 | [] [] [] [] [] [] | 24
iso_639 | | 1
jpilot | [] [] [] [] [] | 9
jtag | [] | 2
jwhois | () [] [] | 11
kbd | [] [] | 11
latrine | | 2
ld | [] [] | 5
libc | [] [] [] [] | 20
libgpewidget | [] [] [] [] | 13
libiconv | [] [] [] [] [] [] [] [] | 27
lifelines | [] | 2
lilypond | [] | 3
lingoteach | | 2
lingoteach_lessons | () | 0
lynx | [] [] [] | 14
m4 | [] [] | 15
mailutils | | 5
make | [] [] [] | 16
man-db | [] | 5
minicom | | 11
mysecretdiary | [] [] | 10
nano | [] [] [] [] | 17
nano_1_0 | [] [] [] | 17
opcodes | [] [] | 6
parted | [] [] [] | 15
ptx | [] [] | 22
python | | 0
radius | | 4
recode | [] [] [] | 20
rpm | [] [] | 9
screem | [] [] | 2
scrollkeeper | [] [] [] | 15
sed | [] [] [] [] [] [] | 24
sh-utils | [] [] | 14
shared-mime-info | [] [] | 7
sharutils | [] [] [] [] | 17
silky | () | 3
skencil | [] | 6
sketch | [] | 6
soundtracker | [] [] | 7
sp | [] | 3
tar | [] [] [] [] [] | 24
texinfo | [] [] [] | 14
textutils | [] [] [] [] | 16
tin | | 1
tp-robot | | 2
tuxpaint | [] [] [] [] [] | 29
unicode-han-tra... | | 0
unicode-transla... | | 2
util-linux | [] [] | 15
vorbis-tools | | 8
wastesedge | | 0
wdiff | [] [] [] | 18
wget | [] [] [] [] [] [] [] [] | 24
xchat | [] [] [] [] [] | 15
xfree86_xkb_xml | [] [] [] [] [] | 11
xpad | | 5
+-----------------------------------------------------+
63 teams sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
131 domains 47 19 28 83 0 0 59 13 1 1 11 0 22 22 0 1373
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
used for implementing regional variants of languages, or language
dialects.
For a PO file in the matrix above to be effective, the package to
which it applies should also have been internationalized and
distributed as such by its maintainer. There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.
If January 2004 seems to be old, you may fetch a more recent copy of
this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
matrix with full percentage details can be found at
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
Using `gettext' in new packages
===============================
If you are writing a freely available program and want to
internationalize it you are welcome to use GNU `gettext' in your
package. Of course you have to respect the GNU Library General Public
License which covers the use of the GNU `gettext' library. This means
in particular that even non-free programs can use `libintl' as a shared
library, whereas only free software can use `libintl' as a static
library or use modified versions of `libintl'.
Once the sources are changed appropriately and the setup can handle
the use of `gettext' the only thing missing are the translations. The
Free Translation Project is also available for packages which are not
developed inside the GNU project. Therefore the information given above
applies also for every other Free Software Project. Contact
`translation@iro.umontreal.ca' to make the `.pot' files available to
the translation teams.

View File

@ -10,7 +10,3 @@ Toti <>
Da Woon Jung <dirkpitt2050@users.sf.net>
Vincent Giangiulio <vince.gian@free.fr>
Andrew Tribick
Hleb Valoshka
Levin Li
Dmitry Brant
Łukasz Buczyński

View File

@ -1,421 +0,0 @@
cmake_minimum_required(VERSION 3.8)
option(LEGACY_OPENGL_LIBS "Use legacy OpenGL libraries instead of glvnd library (Default: off)" OFF)
# Plain and keyword target_link_libraries() signatures cannot be mixed
if (POLICY CMP0023)
cmake_policy(SET CMP0023 NEW)
endif()
# Honor link flags in try_compile()
if (POLICY CMP0056)
cmake_policy(SET CMP0056 NEW)
endif()
# only use the additional link flags when linking executables if the
# ENABLE_EXPORTS target property is set to True
if(POLICY CMP0065)
cmake_policy(SET CMP0065 NEW)
endif()
# Honor language standard (CMAKE_CXX_STANDARD) in try_compile()
if(POLICY CMP0067)
cmake_policy(SET CMP0067 NEW)
endif()
# Ignore generated source files in AUTOMOC and AUTOUIC
if(POLICY CMP0071)
cmake_policy(SET CMP0071 OLD)
endif()
# Prefer GLVND or "legacy" OpenGL library (libOpenGL.so vs libGL.so)
if(POLICY CMP0072)
if(LEGACY_OPENGL_LIBS)
cmake_policy(SET CMP0072 OLD)
else()
cmake_policy(SET CMP0072 NEW)
endif()
endif()
# Remove leading and trailing whitespace from libraries linked
if(POLICY CMP0004)
cmake_policy(SET CMP0004 NEW)
endif()
project(celestia VERSION 1.7.0 LANGUAGES C CXX)
set(DISPLAY_NAME "Celestia")
#
#
#
option(ENABLE_CELX "Enable celx scripting, requires Lua library? (Default: on)" ON)
option(ENABLE_SPICE "Use spice library? (Default: off)" OFF)
option(ENABLE_NLS "Enable interface translation? (Default: on)" ON)
option(ENABLE_GLUT "Build simple Glut frontend? (Default: off)" OFF)
option(ENABLE_GTK "Build GTK2 frontend (Unix only)? (Default: off)" OFF)
option(ENABLE_QT "Build Qt frontend? (Default: on)" ON)
option(ENABLE_SDL "Build SDL frontend? (Default: off)" OFF)
option(ENABLE_WIN "Build Windows native frontend? (Default: on)" ON)
option(ENABLE_FFMPEG "Support video capture using FFMPEG (Default: off)" OFF)
option(ENABLE_TOOLS "Build different tools? (Default: off)" OFF)
option(NATIVE_OSX_APP "Support native OSX paths read data from (Default: off)" OFF)
option(FAST_MATH "Build with unsafe fast-math compiller option (Default: off)" OFF)
option(ENABLE_TESTS "Enable unit tests? (Default: off)" OFF)
option(ENABLE_GLES "Build for OpenGL ES 2.0 instead of OpenGL 2.1 (Default: off)" OFF)
option(USE_GTKGLEXT "Use libgtkglext1 for GTK2 frontend (Default: on)" ON)
option(USE_QT6 "Use Qt6 in Qt frontend (Default: off)" OFF)
option(USE_GTK3 "Use Gtk3 in GTK2 frontend (Default: off)" OFF)
if(ENABLE_GLES)
add_definitions(-DGL_ES)
# Disable USE_GTKGLEXT if using OpenGL ES
set(USE_GTKGLEXT OFF)
endif()
if(USE_GTK3)
# Disable USE_GTKGLEXT if using Gtk+3
set(USE_GTKGLEXT OFF)
endif()
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type." FORCE)
endif()
set(CMAKE_INCLUDE_CURRENT_DIR ON)
if(UNIX AND (NOT CYGWIN))
set(_UNIX true)
endif()
# _USE_MATH_DEFINES enables use of math constants like M_PI,
# which are by default disabled in standard C++ mode (like std=c++11 instead of std=gnu11)
add_definitions(-D_USE_MATH_DEFINES)
# Let CMake handle setting C++11 (since 3.1)
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 17)
endif()
set(CMAKE_C_STANDARD 11)
# Use our cmake files
list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
if((NOT WIN32) AND (NOT NATIVE_OSX_APP))
include(GNUInstallDirs)
include(rpath)
endif()
include(CheckIncludeFiles)
include(CheckIncludeFileCXX)
include(FastMath)
#
# Compile options
#
if(MSVC)
# CMake 3.14 and below set warning flags by default, remove them to prevent conflicts
string(REGEX REPLACE "/W[3|4]" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
string(REGEX REPLACE "/W[3|4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
# Disabled warnings
# C4244, C4267, C4503: implicit type conversion to a smaller type
# C4786: long names in templates
# C4800: forcing value to bool
# C4455: reserved literals (no undescore at the beginning)
# C5030: not recognized attribute
# C5105: macro expansion producing 'defined' has undefined behavior
# Additional options
# bigobj: generate more object sections than allowed by default
# Promoted to errors
# C4316: object allocated on the heap may not be aligned 16
add_compile_options("/wd4244" "/wd4267" "/wd4503" "/wd4800" "/wd4455" "/wd5030" "/wd5105" "/bigobj" "/we4316")
if(MSVC_VERSION GREATER_EQUAL 1914)
# /Zc:__cplusplus: correctly set __cplusplus macro value
add_compile_options("/Zc:__cplusplus")
endif()
endif()
if(NOT WIN32)
# Qt requires -fPIC, so build all code with it
# It's always set on windows
add_compile_options(-fPIC)
endif()
if(MINGW)
# MinGW has a bug which causes too many false-positive warnings
# for 'operator!='
add_compile_options(-Wno-attributes)
endif()
EnableFastMath(${FAST_MATH})
#
# NLS (Gettext) support
#
if(ENABLE_NLS)
find_package(Gettext)
if(NOT GETTEXT_FOUND)
message(WARNING "Gettext is not found, traslations won't be created.")
endif()
include(FixGettext)
find_package(Intl REQUIRED)
include_directories(${Intl_INCLUDE_DIRS})
link_libraries(${Intl_LIBRARIES})
add_definitions(-DENABLE_NLS)
else()
message(STATUS "NLS is disabled. Not looking for gettext and libintl.")
endif()
if(ENABLE_SPICE)
find_package(CSPICE)
if(NOT CSPICE_FOUND)
message(STATUS "Using cspice submodule")
add_subdirectory("${CMAKE_SOURCE_DIR}/thirdparty/Spice")
get_target_property(SPICE_INCLUDE_DIR spice INCLUDE_DIRECTORIES)
include_directories(${SPICE_INCLUDE_DIR})
message(STATUS "Spice include directories: ${SPICE_INCLUDE_DIR}")
add_library(CSPICE::CSPICE ALIAS spice)
else()
include_directories(${CSPICE_INCLUDE_DIR})
endif()
add_definitions(-DUSE_SPICE)
else()
message(STATUS "NAIF SPICE is disabled. Not looking for cspice library.")
endif()
if(ENABLE_FFMPEG)
include(FindFFMPEG)
find_package(FFMPEG REQUIRED COMPONENTS avcodec avutil avformat swscale)
include_directories(${FFMPEG_INCLUDE_DIRS})
add_definitions(-DUSE_FFMPEG)
endif()
if(ENABLE_LIBAVIF)
find_package(Libavif REQUIRED)
link_libraries(libavif::libavif)
include_directories(${LIBAVIF_INCLUDE_DIR})
add_definitions(-DUSE_LIBAVIF)
endif()
if(_UNIX)
find_package(PkgConfig)
endif()
if(WIN32)
link_libraries("vfw32" "comctl32" "winmm")
endif()
if(NOT ENABLE_GLES)
find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIRS})
link_libraries(${OPENGL_LIBRARIES})
endif()
find_package(Libepoxy REQUIRED)
link_libraries(libepoxy::libepoxy)
include_directories(${LIBEPOXY_INCLUDE_DIR})
find_package(Eigen3 3.3 REQUIRED NO_MODULE) # -DEigen3_DIR=...
message(STATUS "Found Eigen3 ${EIGEN3_VERSION_STRING}")
link_libraries(Eigen3::Eigen)
find_package(fmt 6.1.0 CONFIG QUIET)
if(NOT fmt_FOUND)
message(STATUS "Using fmt submodule")
add_subdirectory("${CMAKE_SOURCE_DIR}/thirdparty/fmt")
endif()
link_libraries(fmt::fmt)
find_package(PNG REQUIRED)
add_definitions(${PNG_DEFINITIONS})
link_libraries(PNG::PNG)
find_package(JPEG REQUIRED) # -DJPEG_LIBRARY=...
include_directories(${JPEG_INCLUDE_DIRS})
link_libraries(${JPEG_LIBRARIES})
if(ENABLE_CELX)
add_definitions(-DCELX)
find_package(LuaJIT)
if(NOT LUAJIT_FOUND)
find_package(Lua REQUIRED)
endif()
include_directories(${LUA_INCLUDE_DIR})
link_libraries(${LUA_LIBRARIES})
else()
message(STATUS "CELX is disabled. Not looking for LUA libraries.")
endif()
find_package(Freetype REQUIRED)
link_libraries(Freetype::Freetype)
find_package(meshoptimizer CONFIG QUIET)
if(meshoptimizer_FOUND)
message(STATUS "Found meshoptimizer library")
set(HAVE_MESHOPTIMIZER 1)
else()
message(STATUS "meshoptimizer library is missing")
endif()
#[[
get_cmake_property(_variableNames VARIABLES)
list (SORT _variableNames)
foreach (_variableName ${_variableNames})
message(STATUS "${_variableName}=${${_variableName}}")
endforeach()
]]#
# macOS Bundling
if(NATIVE_OSX_APP)
message(STATUS "Generating Info.plist for macOS Bundle")
configure_file(${CMAKE_SOURCE_DIR}/Info.plist.in ${CMAKE_BINARY_DIR}/Info.plist @ONLY)
endif()
if(NATIVE_OSX_APP)
set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.app/Contents")
set(CMAKE_INSTALL_FULL_LOCALEDIR "${CMAKE_INSTALL_PREFIX}/Resources/locale")
set(CMAKE_INSTALL_BINDIR "MacOS")
set(DATADIR "${CMAKE_INSTALL_PREFIX}/Resources")
set(FULL_DATADIR "${CMAKE_INSTALL_PREFIX}/Resources")
elseif(WIN32)
set(CMAKE_INSTALL_BINDIR ".")
set(CMAKE_INSTALL_DATAROOTDIR ".")
set(CMAKE_INSTALL_DATADIR ".")
set(CMAKE_INSTALL_FULL_LOCALEDIR "locale")
set(DATADIR "${CMAKE_INSTALL_DATADIR}")
set(FULL_DATADIR ".")
else()
set(DATADIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}")
set(FULL_DATADIR "${CMAKE_INSTALL_FULL_DATADIR}/${PROJECT_NAME}")
endif()
if(NOT GIT_COMMIT)
find_program(GIT_FOUND git)
if(GIT_FOUND)
execute_process(
COMMAND git log --pretty=format:%h -1
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
OUTPUT_VARIABLE GIT_COMMIT
)
if("${GIT_COMMIT}" STREQUAL "")
set(GIT_COMMIT "unknown")
endif()
else()
set(GIT_COMMIT "unknown")
endif()
endif()
#
# Compile definitions
#
add_definitions(
-DVERSION="${PROJECT_VERSION}"
-DPACKAGE="celestia"
-DGIT_COMMIT="${GIT_COMMIT}"
)
if(NOT NATIVE_OSX_APP)
add_definitions(
-DLOCALEDIR="${CMAKE_INSTALL_FULL_LOCALEDIR}"
-DCONFIG_DATA_DIR="${FULL_DATADIR}"
-DHIP_DATA_DIR="${FULL_DATADIR}"
-DSPLASH_DIR="${FULL_DATADIR}/splash"
)
endif()
if(WIN32)
add_definitions(
-D_CRT_SECURE_NO_WARNINGS
-D_SCL_SECURE_NO_WARNINGS
-DNOMINMAX
-DWIN32_LEAN_AND_MEAN
-DWINVER=0x0601
-D_WIN32_WINNT=0x0601
)
# Fix the issue: https://github.com/CelestiaProject/Celestia/issues/364
add_definitions(-D_ENABLE_EXTENDED_ALIGNED_STORAGE)
endif()
if(APPLE)
if(NATIVE_OSX_APP)
add_definitions(-DNATIVE_OSX_APP)
endif()
add_definitions(-DGL_SILENCE_DEPRECATION)
endif()
string(TOLOWER "${CMAKE_BUILD_TYPE}" build_type_lc)
if("${build_type_lc}" STREQUAL "debug")
add_definitions(-D_DEBUG -DDEBUG)
else()
add_definitions(-DNO_DEBUG -DEIGEN_NO_DEBUG)
if(NOT MSVC)
add_compile_options(
$<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>
$<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
)
endif()
endif()
# Turning all debug on dramatically decreases performance
if(OCTREE_DEBUG)
add_definitions(-DOCTREE_DEBUG)
endif()
include_directories("${CMAKE_SOURCE_DIR}/src" ${CMAKE_BINARY_DIR})
# configure a header file to pass some of the CMake settings
# to the source code
include(CheckSymbolExists)
check_symbol_exists(wordexp wordexp.h HAVE_WORDEXP)
check_include_files(byteswap.h HAVE_BYTESWAP_H)
find_package(Filesystem REQUIRED COMPONENTS Final Experimental)
if(CXX_FILESYSTEM_IS_EXPERIMENTAL)
message(WARNING "C++ lacks header <filesystem>, using <experimental/filesystem> instead.")
else()
set(HAVE_STD_FILESYSTEM ON)
endif()
link_libraries(std::filesystem)
try_compile(HAVE_CHARCONV ${CMAKE_BINARY_DIR} "${CMAKE_SOURCE_DIR}/checks/cxxccint.cpp")
if(HAVE_CHARCONV)
try_compile(HAVE_FLOAT_CHARCONV ${CMAKE_BINARY_DIR} "${CMAKE_SOURCE_DIR}/checks/cxxccfloat.cpp")
if(NOT HAVE_FLOAT_CHARCONV)
message(WARNING "C++ charconv lacks floating point support!\nWill use own implementation.")
endif()
else()
message(WARNING "C++ charconv is unusable!\nWill use own implementation.")
endif()
include(TestBigEndian)
test_big_endian(WORDS_BIGENDIAN)
configure_file("config.h.in" "config.h")
set(BASE_DATA_SOURCES
demo.cel
guide.cel
start.cel
celestia.cfg
controls.txt
)
install(FILES ${BASE_DATA_SOURCES} DESTINATION ${DATADIR})
install(FILES "splash.png" DESTINATION "${DATADIR}/splash")
if(NATIVE_OSX_APP)
install(FILES ${CMAKE_BINARY_DIR}/Info.plist DESTINATION .)
endif()
add_subdirectory(src)
add_subdirectory(po)
add_subdirectory(fonts)
add_subdirectory(images)
add_subdirectory(locale)
add_subdirectory(scripts)
add_subdirectory(shaders)
if(ENABLE_TESTS)
enable_testing()
add_subdirectory(test)
endif()

View File

@ -1,9 +0,0 @@
### Contributing
**We welcome feedback, bug reports, and pull requests!**
For pull requests, please stick to the following guidelines:
* Be sure to test your code changes.
* Follow the existing code style (e.g., indents).
* Put a lot of comments into the code, if necessary.
* Separate unrelated changes into multiple pull requests.

185
ChangeLog
View File

@ -246,7 +246,7 @@ Code:
* Windows version: InstallShield setup
* Windows version: added controls help dialog
* UNIX version: implemented find object and about dialogs (Gnome/Gtk only)
Code:
* Moved star browser and solar system browser code into separate modules
* Fixed DPRINTF macro so it's not broken in g++
@ -276,7 +276,7 @@ Code:
textures added to OpenGL Info dialog.
* New objects: Comet Borrelly, the giant Kuiper Belt object 2001 KX76,
and the Hubble Space Telescope
Code:
* Rewrote texture and model managers
* Cleaned up simulation.cpp to use frames of reference and eliminated a lot
@ -393,7 +393,7 @@ Code:
a single modeless dialog.
* Fixed period and rotation of Phoebe
1.2.1
* Unix: configure.in changes to better find OpenGL libraries by Bruckner.
* Added accurate orbital calculations for Galilean satellites.
@ -404,7 +404,7 @@ Code:
* Windows: Fixed crash that occurred when recalling a location with
no selection
1.2.2
* Improved find algorithm for starnames, and combined names from hdnames.dat
into starnames.dat. Also added several additional names and variant spellings
@ -557,7 +557,7 @@ Code:
* New colors for celestial grid and constellation figures
* Tuning of Gnome GUI: underlined key accelerators, enabled operation of all
dialogs and menus with ALT <key>, arrow keys, and Tab
* Linux: GUI now synced with current state of pixel/vertex shaders
* Linux: GUI now synced with current state of pixel/vertex shaders
* New keyboard bindings:
Ctrl+Y : automag toggle
Ctrl+T : toggle display of comet tails
@ -572,16 +572,16 @@ Code:
when building with VS.NET
* Cleaned up OpenGL extension initialization
* Significantly improved the reliability of object selection via mouse
click, notably for small fields of view in the arcsec range.
click, notably for small fields of view in the arcsec range.
* Fixed the 'move' script command
* New script commands: setfaintestautomag45deg {magnitude float},
lookback {}
* [,] keys now adjust the limiting magnitude at 45 degrees
field of view, if automag is ON. Values displayed via flash messages
* New script commands: setfaintestautomag45deg {magnitude float},
lookback {}
* [,] keys now adjust the limiting magnitude at 45 degrees
field of view, if automag is ON. Values displayed via flash messages
* Associated the 'looking back' operation with the '*' key shortcut
* Fixed bug in orbits of Galilean moons
* Corrected equatorial planes and rotation offsets for the major planets
* Linux: Added KDE interface, all features of the GTK interface are
* Linux: Added KDE interface, all features of the GTK interface are
available (except for the Tour Guide), new features include:
- Bookmarks / URLs;
- History navigation;* Improved drag and drop of cel:// URLs on Windows
@ -632,8 +632,8 @@ Code:
- Markers may also be set on objects using the right-click context menu
- Added mark/unmark commands for scripts
- Bound Ctrl+K to toggle display of markers
- Added flash messages indicating on|off status of markers
- Implemented markers into KDE interface
- Added flash messages indicating on|off status of markers
- Implemented markers into KDE interface
* Added triangle-accurate picking of mesh objects
* Multiview
- Ctrl+R : split view vertically
@ -664,7 +664,7 @@ Code:
* Updated configuration files for new versions of autoconf
1.3.1
* Improved inclusion of light travel delay, also in KDE time setting dialog
* Improved inclusion of light travel delay, also in KDE time setting dialog
* Fixed lookback command for subsequent changes of target speed
* Allow wildcard character * inplace of extension for texture filenames
* Fix bump mapping (again)
@ -706,7 +706,7 @@ Code:
* Made cancel script command stop motion, tracking, and any object-relative
coordinate system.
* Adjusted estimates for radii and rotation periods of extrasolar planets;
rotation rates account (somewhat) for the effects of tidal despinning.
rotation rates account (somewhat) for the effects of tidal despinning.
* Fixed a bug that was causing precision loss in orientation values; this fixes
some of the jerkiness apparent at very low fields of view.
* Corrected radii of Uranus's rings
@ -739,7 +739,7 @@ Code:
* Eliminated obscuring of location labels that occurred low view aspect ratios
* Added models of comet Halley and the small moons Pandora and Larissa
* Added limit of knowledge masks for the Galilean moons
* Changed spectral class of carbon stars to C, which supersedes and combines
* Changed spectral class of carbon stars to C, which supercedes and combines
R and N
* Lua scripting additions
* View management commands
@ -760,7 +760,7 @@ Code:
* Implemented an algorithm for importance weights to avoid overlapping or
too crowded location labels for Mars, Venus and the Moon
* Added new textures for Titan based on recent imaging from the Cassini
mission
mission
* Improved depth sorting so that hidden surface removal works properly for
overlapping objects
* Added theoretical estimates of oblateness and rotation rate for extrasolar
@ -805,16 +805,16 @@ Code:
* Implemented new GLSL render path; NVIDIA combiners and GeForceFX paths
deprecated.
* Display UTF-8 superscript digits in some star names
* Updated the Titan texture. It accomodates all published high resolution
imaging from the Cassini mission until and including the flyby of 03/31/05.
* Updated the Titan texture. It accomodates all published high resolution
imaging from the Cassini mission until and including the flyby of 03/31/05.
* Updated the Iapetus texture. It accomodates all published high resolution
imaging from the Cassini mission, including also a unique hires photo taken
in "Saturn shine".
imaging from the Cassini mission, including also a unique hires photo taken
in "Saturn shine".
* Added catalogs of 163 visual and 39 spectroscopic binary orbits,
respectively, (S<>erhjelm 1999, Pourbaix 2000) with known primary/secondary
mass ratios.
* Added an extended and precise data base of 942 galaxies
(Steinicke's rev. NGC/IC, 2005) with a magnitude cutoff Bmag < 12.
* Added an extended and precise data base of 942 galaxies
(Steinicke's rev. NGC/IC, 2005) with a magnitude cutoff Bmag < 12.
* Included the commented PERL scripts used to extract and adapt the binary
orbit and galaxy data from published professional catalogs.
* Added --extrasdir command line option for specifying additional directories
@ -843,13 +843,13 @@ Code:
- fixed automake bug where GConf schema would always install
- removed linking against glut for no reason
* Implemented complete precision catalog (Steinicke's revised NGC/IC, 2005) of
10610 galaxies with
- distance information from four catalogs ( 6 methods ),
- <= 4 alternate names,
- info-URLs,
- absolute magnitudes and
10610 galaxies with
- distance information from four catalogs ( 6 methods ),
- <= 4 alternate names,
- info-URLs,
- absolute magnitudes and
- correct sizes & orientations in space, as calculated from catalog
parameters.
parameters.
* Included well commented Perl script (deepsky.pl) as documentation. The used distance determination method is indicated in catalog for each galaxy.
* Updated binary star data base (visualbins.stc, spectbins.dsc) and respective
PERL catalog extraction scripts (visualbins.pl, spectbins.pl), such as to eliminate double occurences wrto nearstars.stc (, which remained unaffected).
@ -890,7 +890,7 @@ Code:
template from S0 disk template via rescaling by (1.0f, 3.8f, 1.0f);
- fixed wrong x,y alignment of elliptical rescaling.
* Added code to ease compilation with newer Xcode versions (Macintosh).
* Updated src/celengine/Makefile.am for Linux building.
* Updated src/celengine/Makefile.am for Linux building.
* Introduced a new cel function => renderflags {set "nebulae"}.
* Reduced the default value of 'faintestAutoMag45deg' from 8.5 to 7.0.
* Fixed the visibility of the Milky Way during day-time and the abrupt
@ -904,10 +904,10 @@ Code:
* Deleted various source code files that became superfluous.
* Improved comet display. Introduced a neat scheme implementing comet tail
fading (between 4 and 6 AU for Sol). Systems with several suns and
luminosities different from the solar one are accounted for.
* Implemented a new, simple scheme avoiding overcrowded galaxy labels.
luminosities different from the solar one are accounted for.
* Implemented a new, simple scheme avoiding overcrowded galaxy labels.
Their "importance" is sorted according to apparent magnitude! Thus the
labels of the brightest galaxies pop up first upon zooming in...
labels of the brightest galaxies pop up first upon zooming in...
* Fixes/workarounds for OpenGL 2.0 render paths on both nVidia and ATI cards.
@ -932,7 +932,7 @@ Code:
located inside the galaxy (Milky Way...).
* Eliminated various incorrect Hubble type acronyms in deepsky.dsc that had
penetrated the PERL filter.
* Add the corrected PERL script deepsky.pl.
* Add the corrected PERL script deepsky.pl.
* Mac: Universal binary - runs natively on Intel and PPC
* Mac: OpenGL 2.0 render path should now work on many configurations
(requires OS X 10.4.3 or later)
@ -948,7 +948,7 @@ Code:
* Mac: Fixed crash when LANG or LC environment variables are set
* Mac: Added bona fide English and French help menu
* Mac: Cleaned up README in general
* Added Phoebe textures in medres and lores directories from recent published
* Added Phoebe textures in medres and lores directories from recent published
Ciclops cylindrical maps
* Updated Titan and Iapetus textures in lores directory
* Windows: save and restore the last used GL render path
@ -959,10 +959,10 @@ Code:
* KDE: Reverted mouse wheel action to be compatible with the other interfaces.
* KDE: New configurable splash screen
(http://celestia.teyssier.org/splash_spec.html)
* Updated/added Tethys textures in lores, medres and hires directories.
* Updated/added Tethys textures in lores, medres and hires directories.
* Added locations on Phoebe in satmoons2.ssc, as extracted from USGS/IAU
official data.
* Added Mesh for Phoebe texture.
* Added Mesh for Phoebe texture.
* Updated Iapetus texture.
* Moved locations files from extras into data directory for inclusion in
standard package.
@ -1002,7 +1002,7 @@ Code:
- HIP 14810 c, HD 185269 b, Gliese 849 b
- Mu Ara e
- Gliese 581 c & d, HD 175541 b, HD 210702 b, HD192699 b
- HD 47536 c, XO-2 b, HD 147506 (HAT-P-2), HD 17092 b
- HD 47536 c, XO-2 b, HD 147506 (HAT-P-2), HD 17092 b
* Revised orbits of many extrasolar planets to reflect new data
* Added stars for new extrasolar planets: GSC 92941-01657
* Mac: Show menu bar when moving mouse to top of screen in full screen
@ -1067,7 +1067,7 @@ Code:
* Added cmodsphere, a utility for producing cmod meshes from height samples
regularly spaced in longitude and latitude.
* COPYING, controls.txt, start script, and guide can all be localized
* cel and celx scripting:
* cel and celx scripting:
- added openclusters and cloudshadows render flags
- added location, nebulae, openclusers, and i18nconsteallations label flags
* Established Barycentric Dynamical Time (TDB) as the time scale used
@ -1090,12 +1090,12 @@ Code:
spectra
* Made star orbit paths visible
* galaxies:
-changed galaxy template format to standard (grayscale) PNG
-changed galaxy template format to standard (grayscale) PNG
-allow a custom template for each galaxy in deepsky.dsc
-new approach to thickness of galaxy (arms): assumed proportional to read-in
brightness values
brightness values
-emulate dust lanes around galactic plane (y=0)
-considerable improvement of Milky Way appearance as seen from Earth
-considerable improvement of Milky Way appearance as seen from Earth
-implement galaxy labels of transparency increasing with distance, thus
providing a neat 3d effect
* galaxy templates:
@ -1114,10 +1114,10 @@ Code:
- Guarded against crash when the JPL ephemeris file can't be found
* Generalized rotations
- Clear syntax for ssc files
- UniformRotation
- UniformRotation
- PrecessingOrientation
- SampledOrientation - interpolated sequence of quaternion key frames
* Scripting improvements
* Scripting improvements
- New celx scripting commands:
- utctotdb and tdbtoutc
- gl commands
@ -1125,7 +1125,7 @@ Code:
- iterators: celestia:stars and celestia:dsos
- get/setaltazimuthmode
- Lua hooks for script extensions to Celestia
- Script interfaces for orbits and rotation models (ScriptedOrbit and
- Script interfaces for orbits and rotation models (ScriptedOrbit and
ScriptedRotation)
- Support Lua 5.1 (5.0 compatibility retained)
- Made celestia:loadtexture use relative file names
@ -1148,7 +1148,7 @@ Code:
* Corrected kilometers per light year constant
* Added various improvements to the MilkyWay & other galaxy template display.
* Added E0.png galaxy template that allows for better En, n=1..7 elliptical
shapes.
shapes.
* Fixed sizes of irregular galaxies (factor of 2!).
* Prevented galaxy code from crashing if a template is missing.
* Improved selection of galaxies by taking into account their 3d shape
@ -1163,11 +1163,11 @@ Code:
* Windows: Fixed crash that occurred when star browser was closed
* Fixed bug that made moons disappear as a planet approached stellar transit
* Added a major update of the galaxy database such that close to 100% of the
galaxies now involve distance measurements
* Included the complete local group of galaxies
galaxies now involve distance measurements
* Included the complete local group of galaxies
* Added varying label transparency also for stars
* Added the PERL scripts used for extraction of galaxy and binary orbit data
from scientific sources. They both are useful tools and a concise
from scientific sources. They both are useful tools and a concise
documentation of Celestia's data
* updated binary orbit data (visualbins.stc and spectbins.stc) along with
respective PERL scripts (visualbins.pl and spectbins.pl)
@ -1220,7 +1220,7 @@ Code:
HD 167042 b, HD 74156 d, HD 285968 b, V391 Peg b,
HD 132406 b, HD 43691 b, NGC 2423 3 b, Gliese 317 b & c,
TrES-3, HD 155358 b&c, HD 5319 b, HD 75898 b, OGLE-TR-182 b, WASP-3 b,
55 Cnc f, Lupus-TR-3 b, OGLE-TR-211 b, HD 156846 b, HD 4113 b, Kap CrB b,
55 Cnc f, Lupus-TR-3 b, OGLE-TR-211 b, HD 156846 b, HD 4113 b, Kap CrB b,
GD 66 b, XO-3 b, WASP-4 b TW Hya b
removed HD 33636 b
* Set up transit of Gliese 436
@ -1383,7 +1383,7 @@ Bug fixes
* Fixed search path for Lua scripts
* Fixed numerous bugs that occurred when an object's orbit center was different
* Fixed a bug in the celx function celestia:getscreendimension
* Fixed bug with returning Hubble type for galaxies
* Fixed bug with returning Hubble type for galaxies
* Eliminated error-prone min/max macros; use STL functions instead
* Fixed discrepancy between apparent magnitudes shown in the 3D view and
the star browser.
@ -1424,9 +1424,9 @@ Data file updates
* Changed class of small outer planet moons to minormoon
* Included new and updated solar system body features from the IAU
* Added provisional rotation period for Eris
Tools
* Added Perl script globulars.pl used to extract the globular data from scientific publications and as documentation
* Added Perl script globulars.pl used to extract the globular data from scientific publications and as documentation
* Added spice2xyzv tool for extracting xyzv files from a pool of SPICE kernels
* Added Perl script to build cross-indices
* Added Perl script to generate CHARM2 catalog
@ -1557,7 +1557,7 @@ Scripting
- windowbordersvisible, setwindowbordersvisible
* Split celx scripting support into several modules
* Cel scripting
- splitview, deleteview, singleview, setactiveview
- splitview, deleteview, singleview, setactiveview
- setgalaxylightgain
- setradius
- setlinecolor
@ -1584,80 +1584,3 @@ Cleanup:
information application to 1.6.0
* Purged out of date controls documentation
* Reorganized spacecraft add-ons in standard package
1.6.1
Bug fixes
* Removed extraneous colons from nearstars.stc
* Fixed truncation of long label strings in East Asian locales
* Increased size of Goto Object dialog to prevent translated strings from being
truncated
* Fixed i18n bug with scripting message
* Removed duplicate install of stars.dat.
* Fix code taking address of a temporary result.
* Fixed compile warnings in 1.6.1 caused by redefinition of UINT64_MAX
* Corrected encoding of cel URLs with non-ASCII characters
* Added check to prevent a crash when string decoding fails
* Added Nils Larsson's patch for libpng-1.4
Data file updates:
* Updated extrasolar planets data files.
* Updated solar system locations files.
* Updated numberedmoons.ssc file.
* Updated Galileo add-on.
* Updated starnames.dat file.
Platform-specific changes:
* Linux: Add missing files from extras-standard to Makefiles.
* Linux: fix for Unicode URLs in KDE bookmarks menu.
* Windows: Fixed i18n bug [2753461]
* Windows: Save FoV value in bookmarks
* Windows: Added ecliptic line setting to View Options dialog box
* Windows: Fixed i18n bug in Windows Script menu
* Windows: Added link to new HTML help files to Help menu
* Windows: Fixed invisible context menu in fullscreen mode (ATI cards)
* Windows: Fixed menu bar overlapping top of 3D view (ATI cards)
* Windows: Save and restore locations to/from registry
* Windows: Fixed startup crash when using fullwidth utf-8 characters
* Windows: Increased Inno Setup compression settings
* Windows: Allow installer to be run without administrator privileges.
Internationalization:
* Additional string translations
- Globular clusters
- "Nebula" and "Open cluster"
- World capitals
* Removed r and R commands from localized help files
* Updated translations
* Additional languages
- Added Chinese Traditional translation
- Added Slovak translation
- Added Galician translation by Xabier Cancela
- Added Belarusian translation from <375gnu@gmail.com>
- Added Norwegian translation from FreewareTips
- Added Turkish translation
* Fonts
- Lighter weight Japanese fonts
- Updated simplified Chinese fonts
- Added Belarusian fonts
Features
* Changed the name of 'Celestial' grid to 'Equatorial'
* Added Runar and Christian's HTML help files
* Added Solstice Mission extension for Cassini in 1.6.1 branch.
Scripting
* Celx scripting functions:
- Added seturl / geturl commands
- Added synchronizetime / istimesynchronized commands
- Added settextcolor / gettextcolor commands
- Added observer:orbit method
- Added celestia:runscript method
- Made orbitPeriod field available for stars via object:getinfo
* Cel scripting:
- Added boolean occludable parameter to mark command
- Added settextcolor command
* Added mousemove Lua hook
Code optimization and reorganization
* Fixes for gcc-4.5, and include -ldl for systems that need it.
* More granular setting of CFLAGS.

88
INSTALL 100644
View File

@ -0,0 +1,88 @@
Celestia Install instructions for UNIX
--------------------------------------
You need to have the following components installed before Celestia
will build: OpenGL (tested with Mesa 3.4), glu, libjpeg, and libpng.
Should you have a package based installation (most Linux distributions these
days are), you will also need to install the devel packages for your OpenGL,
glu and glibc packages.
OK, assuming you've collected all the necessary libraries, here's
what you need to do to build and run Celestia:
./configure --with-INTERFACE [*]
make
make install
[*] INTERFACE must be replaced with one of "kde", "gtk", "gnome", or "glut".
Four interfaces are available for Celestia:
- glut: minimal interface, barebone Celestia core with no toolbar or menu...
- GTK: A full interface with minimal dependencies, adds a menu, a configuration
dialog some other utilities.
- Gnome: The full GTK interface plus a few Gnome integration goodies, such as
preference saving in GConf. This looks and works very much like the
Windows interface.
- KDE3: brings contextual menus, toolbars, KDE integration,
internationalization, bookmarks...
To build the KDE interface (requires various kde-devel packages):
configure --with-kde
To build the Gnome interface (requires gnome-devel and all GTK requirements):
configure --with-gnome
To build the GTK interface (requires gtkglext and gtkglext-devel):
configure --with-gtk
To build the GLUT interface (requires glut and glut-devel):
configure --with-glut
At the end of the configure output shows which interface has been selected, you
should check it is correct before running make.
Starting with version 1.3.1, Lua is the new scripting engine for Celestia,
the old homegrown scripting engine is still available. By default Lua support
will NOT be compiled in, to enable it you need to download the Lua library
from:
http://www.lua.org/
Version 5.0 or newer is required.
Once Lua has been installed on your system, you need to run:
configure --with-lua=/path/to/lua
To check wether your Celestia has been compiled with Lua support, go to File
-> Open. If you have '*.cel *.celx' in the filter box, then Lua is available
otherwise the filter will contain only '*.cel'.
The GtkGLExt widget that is required in order to build Celestia with Gtk+ may
be downloaded from http://gtkglext.sf.net. Note that depending in your
distribution you may also need other packages containing various files needed
by the build process. For instance, to build under SUSE Linux, you will also
need to have the gtk-devel package installed.
Celestia will be installed into /usr/local by default, with data files landing
in /usr/local/share/celestia , but you may specify a new location with the
--prefix option to configure:
configure --prefix=/home/my_directory
All the other usual configure parameters apply; you may see which options
are available using 'configure --help'
If while running configure you see an error reporting that gl.h,
is missing, you either don't have OpenGL installed on your system,
or you don't have the corresponding devel package installed. If for
instance you have Mesa installed, you will also have to install the
mesa-devel package (or something named similarly). Missing glu.h or glut.h
means that you don't have GLU, GLUT, or their devel pacakges installed.
Chris Laurel & Deon Ramsey
claurel@.shatters.net dramsey@users.sourceforge.net
Updated 2003-06-10 by
Christophe Teyssier
chris@teyssier.org
Updated 2004-04-28 by pat@suwalski.net

View File

@ -1,389 +0,0 @@
# Basic installation instructions
Stable version installation on Unix-like systems (e.g. GNU/Linux or *BSD):
* Check your OS repository for already built packages.
* Check https://celestia.space/download.html.
Stable version installation on Windows and OSX:
* Check https://celestia.space/download.html.
Development snapshots installation on Unix-like systems:
### On Debian 10 (buster) and derived systems:
```
curl -fsSL -o celestia.gpg https://download.opensuse.org/repositories/home:/munix9:/unstable/Debian_10/Release.key
gpg --keyid-format long celestia.gpg
gpg: WARNING: no command supplied. Trying to guess what you mean ...
pub rsa2048/BDF3F6ACD4D81407 2014-06-09 [SC] [expires: 2023-02-14]
3FE0C0AC1FD6F1034B818A14BDF3F6ACD4D81407
uid home:munix9 OBS Project <home:munix9@build.opensuse.org>
sudo mv celestia.gpg /usr/share/keyrings/celestia.asc
echo "deb [signed-by=/usr/share/keyrings/celestia.asc] https://download.opensuse.org/repositories/home:/munix9:/unstable/Debian_10/ ./" | sudo tee /etc/apt/sources.list.d/celestia-obs.list
sudo apt update && sudo apt install celestia
```
### On Ubuntu 18.04/20.04 and derived systems:
```
curl https://download.opensuse.org/repositories/home:/munix9:/unstable/Ubuntu_${VERSION}/Release.key | sudo apt-key add -
echo "deb https://download.opensuse.org/repositories/home:/munix9:/unstable/Ubuntu_${VERSION}/ ./" | sudo tee /etc/apt/sources.list.d/celestia-obs.list
sudo apt update && sudo apt install celestia
```
Where VERSION is 18.04 or 20.04.
### On openSUSE Leap/Tumbleweed:
```
sudo zypper addrepo https://download.opensuse.org/repositories/home:munix9:unstable/openSUSE_${VERSION}/home:munix9:unstable.repo
sudo zypper refresh
sudo zypper install celestia
```
Where VERSION is 'Leap_15.2', 'Leap_15.3' or 'Tumbleweed'.
See also the download package sites on OBS for [celestia](https://software.opensuse.org/download.html?project=home:munix9:unstable&package=celestia) and [celestia-data](https://software.opensuse.org/download.html?project=home:munix9:unstable&package=celestia-data).
### On other GNU/Linux distributions:
Try experimental portable AppImage (see https://github.com/CelestiaProject/Celestia/issues/333):
```
wget https://download.opensuse.org/repositories/home:/munix9:/unstable/AppImage/celestia-1.7.0-git-x86_64.AppImage
chmod 755 celestia-1.7.0-git-x86_64.AppImage
```
Optionally create a portable, main version-independent `$HOME` directory in the same folder as the AppImage file:
```
mkdir celestia-1.7.home
```
To build from sources please follow instructions below.
## Common building instructions
We recommend using a copy of our git repository to build your own installation
as it contains some dependencies required for building.
To create the copy install git from your OS distribution repository or from
https://git-scm.com/ and then execute the following commands:
```
git clone https://github.com/CelestiaProject/Celestia
cd Celestia
git submodule update --init
```
## Celestia Install instructions for UNIX
First you need a C++ compiler able to compile C++11 code (GCC 4.8.1 or later,
Clang 3.3 or later), CMake, GNU Make or Ninja.
Then you need to have the following devel components installed before Celestia
will build: OpenGL, libepoxy, fmtlib, Eigen3, freetype, libjpeg, and libpng.
Optional packages are gettext, Qt5, Gtk2 or Gtk3, sdl2, ffmpeg, libavif, glu and glut.
For example on modern Debian-derived system you need to install the following
packages: libepoxy-dev, libjpeg-dev, libpng-dev, libgl1-mesa-dev,
libeigen3-dev, libfmt-dev, libfreetype6-dev. Then you may want to install
libglu1-mesa-dev, required by some tools; qtbase5-dev, qtbase5-dev-tools and
libqt5opengl5-dev if you want to build with Qt5 interface; libgtk2.0-dev and
libgtkglext1-dev to build with legacy Gtk2 interface; libgtk3.0-dev to build
Gtk3 interface, libsdl2-dev to build SDL interface or freeglut3-dev to build
with glut interface. libavcodec-dev, libavformat-dev, libavutil-dev and
libswscale-dev are required to build with video capture support. libavif-dev
is required to build to AVIF texture support.
OK, assuming you've collected all the necessary libraries, here's
what you need to do to build and run Celestia:
```
mkdir build
cd build
cmake .. -DENABLE_DATA=ON -DENABLE_INTERFACE=ON [*]
make
sudo make install
```
[*] `INTERFACE` must be replaced with one of "`QT`", "`GTK`", "`SDL`" or
"`GLUT`".
Four interfaces are available for Celestia on Unix-like systems:
- GLUT: minimal interface, barebone Celestia core with no toolbar or menu...
Disabled by default.
- SDL: minimal interface, barebone Celestia core with no toolbar or menu...
Disabled by default.
- GTK: A full interface with minimal dependencies, adds a menu, a configuration
dialog some other utilities. Legacy interface, may lack some new
features. Disabled by default.
- QT: A full interface with minimal dependencies, adds a menu, a configuration
dialog some other utilities, bookmarks... A preferred option. Enabled by
default, No need to pass -DENABLE_QT=ON.
Starting with version 1.3.1, Lua is the new scripting engine for Celestia,
the old homegrown scripting engine is still available. By default Lua support
is enabled, it can be disabled passing -DENABLE_CELX=OFF to cmake. Supported
Lua versions are 5.1 - 5.4. On Debian-based systems install liblua5.x-dev
package (replace `x` with 1, 2, 3 or 4) or libluajit-5.1-dev. The latter is
preferred.
To check wether your Celestia has been compiled with Lua support, go to File
-> Open. If you have '*.cel *.celx' in the filter box, then Lua is available
otherwise the filter will contain only '*.cel'.
The GtkGLExt widget that is required in order to build Celestia with Gtk+ may
be downloaded from http://gtkglext.sf.net. Note that depending in your
distribution you may also need other packages containing various files needed
by the build process. For instance, to build under SUSE Linux, you will also
need to have the gtk-devel package installed. GtkGLExt widget support is
optional and own EGL-based implementation of GL widget can be used instead.
It also required only if Gtk2 used, with Gtk3 own implementation used always.
Celestia will be installed into /usr/local by default, with data files landing
in /usr/local/share/celestia, but you may specify a new location with the
following option to cmake: -DCMAKE_INSTALL_PREFIX=/another/path.
## Celestia Install instructions for Windows (MSVC)
Currently to build on Windows you need Visual Studio 2015 or later, CMake
and vcpkg (*).
Install required packages:
```
vcpkg --triplet=TRIPLET install --recurse libpng libjpeg-turbo gettext luajit fmt libepoxy eigen3 freetype
```
Install optional packages:
```
vcpkg --triplet=TRIPLET install --recurse qt5-base ffmpeg cspice libavif
```
Replace TRIPLET with `x86-windows` to build 32-bit versions or `x64-windows`
for 64-bit versions.
Instead of `luajit` `lua` can be used.
Use `vcpkg list` to ensure that all packages have actually been installed.
If not, try installing them one at a time.
Configure and build 32-bit version:
```
md build32
cd build32
cmake -DCMAKE_GENERATOR_PLATFORM=Win32 -DCMAKE_TOOLCHAIN_FILE=c:/tools/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x86-windows ..
cmake --build . -- /maxcpucount:N /nologo
```
Configure and build 64-bit version:
```
md build64
cd build64
cmake -DCMAKE_GENERATOR_PLATFORM=x64 -DCMAKE_TOOLCHAIN_FILE=c:/tools/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows ..
cmake --build . -- /maxcpucount:N /nologo
```
Instead of N in /maxcpucount pass the number of CPU cores you want to use during
the build.
This example assumes that `vcpkg` is installed into `c:/tools/vcpkg`. Update
the path to `vcpkg.cmake` according to your installation.
If you have Qt5 installed using official Qt installer, then pass parameter
CMAKE_PREFIX_PATH to cmake call used to configure Celestia, e.g.
```
cmake -DCMAKE_PREFIX_PATH=C:\Qt\5.10.1\msvc2015 ..
```
Not supported yet:
- automatic installation using cmake
- using Ninja instead of MSBuild
Notes:
* vcpkg installation instructions are located on
https://github.com/Microsoft/vcpkg
## Celestia Install instructions for Windows (MINGW64), qt-only
NOTE: this part is not up to date!
It is recommended to build the source with MSYS2
https://www.msys2.org/ .
Do the following in the MINGW64 shell (mingw64.exe).
Install required packages:
```
pacman -S mingw-w64-x86_64-toolchain
pacman -S base-devel
pacman -S git
pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-x86_64-qt5
pacman -S mingw-w64-x86_64-freeglut mingw-w64-x86_64-libepoxy mingw-w64-x86_64-lua
pacman -S mingw-w64-x86_64-mesa
```
Install optional packages:
```
pacman -S mingw-w64-x86_64-fmt mingw-w64-x86_64-eigen3 mingw-w64-x86_64-luajit
pacman -S mingw-w64-x86_64-sdl2
```
Clone the source and go to the source directory.
Configure and build:
```
mkdir build
cd build
cmake .. -G"MSYS Makefiles" -DENABLE_WIN=OFF
mingw32-make.exe -jN
```
Instead of N, pass a number of CPU cores you want to use during a build.
To build in debug configuration, you have to use lld linker instead of the
default linker in gcc.
```
pacman -S mingw-w64-x86_64-lld mingw-w64-x86_64-lldb
```
Follow by:
```
cmake .. -G "MSYS Makefiles" -DENABLE_WIN=OFF -DCMAKE_CXX_FLAGS='-fuse-ld=lld' -DCMAKE_BUILD_TYPE=Debug
```
Then do `mingw32-make.exe`.
## Celestia Install instructions for macOS, qt-only
Currently Qt frontend is the only available option for macOS users building
Celestia from source.
Install the latest Xcode:
You should be able to get Xcode from the Mac App Store.
Install Homebrew
Follow the instructions on https://brew.sh/
Install required packages:
```
brew install pkg-config cmake fmt gettext libepoxy libpng lua qt5 jpeg eigen freetype
```
Install optional packages:
```
brew install cspice ffmpeg libavif
```
Follow common building instructions to fetch the source.
Configure and build:
```
mkdir build
cd build
cmake ..
make -jN
```
Instead of N, pass a number of CPU cores you want to use during a build.
Install:
```
make install
```
Celestia will be installed into /usr/local by default, with data files landing
in /usr/local/share/celestia, but you may want to specify a new location with
the following option to cmake: `-DCMAKE_INSTALL_PREFIX=/another/path`.
To build the application bundle, pass -DNATIVE_OSX_APP=ON to the cmake command,
the application bundle will be located in the "build" folder that you previously
created.
## Supported CMake parameters
List of supported parameters (passed as `-DPARAMETER=VALUE`):
Parameter | TYPE | Default | Description
----------------------| ------|---------|--------------------------------------
| CMAKE_INSTALL_PREFIX | path | \* | Prefix where to install Celestia
| CMAKE_PREFIX_PATH | path | | Additional path to look for libraries
| LEGACY_OPENGL_LIBS | bool | \*\*OFF | Use OpenGL libraries not GLvnd
| ENABLE_CELX | bool | ON | Enable Lua scripting support
| ENABLE_SPICE | bool | OFF | Enable NAIF kernels support
| ENABLE_NLS | bool | ON | Enable interface translation
| ENABLE_GLUT | bool | OFF | Build simple Glut frontend
| ENABLE_GTK | bool | \*\*OFF | Build legacy GTK2 frontend
| ENABLE_QT | bool | ON | Build Qt frontend
| ENABLE_SDL | bool | OFF | Build SQL frontend
| ENABLE_WIN | bool | \*\*\*ON | Build Windows native frontend
| ENABLE_FFMPEG | bool | \*\*ON | Support video capture using ffmpeg
| ENABLE_LIBAVIF | bool | OFF | Support AVIF texture using libavif
| ENABLE_TOOLS | bool | OFF | Build tools for Celestia data files
| ENABLE_DATA | bool | OFF | Use CelestiaContent submodule for data
| ENABLE_GLES | bool | OFF | Use OpenGL ES 2.0 in rendering code
| NATIVE_OSX_APP | bool | OFF | Support native OSX data paths
| USE_GTKGLEXT | bool | ON | Use libgtkglext1 in GTK2 frontend
| USE_GTK3 | bool | OFF | Use Gtk3 instead of Gtk2 in GTK2 frontend
Notes:
\* /usr/local on Unix-like systems, c:\Program Files or c:\Program Files (x86)
on Windows depending on OS type (32 or 64 bit) and build configuration.
This option effect is overriden by NATIVE_OSX_APP.
\*\* Ignored on Windows systems.
\*\*\* Ignored on Unix-like systems.
`USE_GTK3` requires `ENABLE_GTK`
Parameters of type "bool" accept ON or OFF value. Parameters of type "path"
accept any directory.
On Windows systems two additonal options are supported:
- `CMAKE_GENERATOR_PLATFORM` - can be set to `x64` on 64-bit Windows to build
64-bit Celestia. To build 32-bit Celestia it should be `Win32`.
- `CMAKE_TOOLCHAIN_FILE` - location of vcpkg.cmake if vcpkg is used.
Please note that not all options are compatible:
- `USE_GTKGLEXT` is not compatible with `ENABLE_GLES` and `USE_GTK3` and will
be disabled if any of this is set.
- `ENABLE_GLES` is not compatible with `ENABLE_GLUT` and with `ENABLE_QT` if
your `glut` or Qt5 installation don't support OpenGL ES.
Executable files
----------------
As said prevously Celestia provides several user interfaces, accordingly with
interfaces it's built with it has different executable files installed to
${CMAKE_INSTALL_PREFIX}/bin (e.g. with default CMAKE_INSTALL_PREFIX on
Unix-like systems they are installed into `/usr/local/bin`).
Here's the table which provides executable file names accordingly to interface:
Interface | Executable name
|-----------|----------------|
| Qt5 | celestia-qt
| GTK | celestia-gtk
| GLUT | celestia-glut
| SDL | celestia-sdl
| WIN | celestia-win

View File

@ -1,36 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>celestia-qt</string>
<key>CFBundleIconFile</key>
<string>celestia</string>
<key>CFBundleIdentifier</key>
<string>org.celestia.Celestia</string>
<key>CFBundleName</key>
<string>Celestia</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>@VERSION@</string>
<key>CFBundleShortVersionString</key>
<string>@VERSION@</string>
<key>LSMinimumSystemVersion</key>
<string>@CMAKE_OSX_DEPLOYMENT_TARGET@</string>
<key>CFBundleDisplayName</key>
<string>@DISPLAY_NAME@</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
<string>true</string>
<key>Application Category</key>
<string>Education</string>
</dict>
</plist>

80
Makefile.am 100644
View File

@ -0,0 +1,80 @@
ACLOCAL_AMFLAGS = -I macros
pkgdatadir = @datadir@/@PACKAGE@
dosstuff = \
celestia.mak \
celestia.iss \
celestia.sln \
celestia.vcproj \
$(wildcard *.bat)
noinst_DATA = \
coding-standards.html \
devguide.txt \
$(dosstuff)
pkgdata_DATA = \
celestia.cfg \
controls.txt \
COPYING \
$(wildcard *.cel)
EXTRA_DIST = \
$(pkgdata_DATA) \
$(noinst_DATA) \
splash.png \
po/extract_resource_strings.pl \
po/translate_resources.pl \
TRANSLATORS
splashdir = $(pkgdatadir)/splash
splash_DATA = splash.png
SUBDIRS = src data extras extras-standard textures models shaders fonts po po2 locale scripts
# Non-automake directories
NONAUTO = admin macosx windows
# From KDE app template
# We already have a configure.in file, we don't build it from configure.in.in
#$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs
# cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in ;
$(top_srcdir)/subdirs:
cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs
# This is just silly
#$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in
# @cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4
MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4
package-messages:
$(MAKE) -f admin/Makefile.common package-messages
$(MAKE) -C po merge
dist-hook:
( \
cd $(srcdir) && \
( \
for dir in $(NONAUTO) ; do \
find $$dir -depth -print | egrep -v '(~$$)|(/CVS)|(/\.svn)|(/\.#)|(/\.deps)' \
| cpio -pdum $(distdir) 2>/dev/null ; \
done \
) \
)
cd $(top_distdir) && perl admin/am_edit -padmin
cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs
install-data-hook:
if [ "$(kde_datadir)" -a -d $(DESTDIR)/$(kde_datadir)/@PACKAGE@ -a ! -h $(DESTDIR)/$(kde_datadir)/@PACKAGE@ ] ; then \
mv -f -b $(DESTDIR)/$(kde_datadir)/@PACKAGE@/* $(DESTDIR)/$(datadir)/@PACKAGE@/ ; \
rmdir $(DESTDIR)/$(kde_datadir)/@PACKAGE@ ; \
fi
if [ "$(kde_datadir)" -a ! -h $(DESTDIR)/$(kde_datadir)/@PACKAGE@ ] ; then \
ln -s $(datadir)/@PACKAGE@ $(DESTDIR)/$(kde_datadir)/@PACKAGE@ ; \
fi

10
Makefile.cvs 100644
View File

@ -0,0 +1,10 @@
all:
@echo "This Makefile is only for the CVS repository"
@echo "This will be deleted before making the distribution"
@echo ""
$(MAKE) -f admin/Makefile.common cvs
dist:
$(MAKE) -f admin/Makefile.common dist
.SILENT:

0
NEWS 100644
View File

View File

@ -1,309 +1,490 @@
***************************************************************************
* Celestia *
* *
* A real-time space simulation that lets you experience our universe in *
* three dimensions. *
* *
* Copyright (c) 2001-2021, Celestia Development Team *
* *
*-------------------------------------------------------------------------*
* Celestia web site: https://celestia.space/ *
* *
* Celestia documentation: *
* https://celestia.space/guides.html *
* Celestia WikiBook: https://en.wikibooks.org/wiki/Celestia *
* *
* Celestia forums: https://celestia.space/forum/ *
* *
***************************************************************************
CONTENTS
--------
License
Getting Started
Mouse, Keyboard & Joystick Controls
Star & Solar System Browser
Selecting Objects by Name
Known Issues
User Modifiable Elements
Celestia Resources
Building From Sources
Contributions
Acknowledgements
LICENSE
-------
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details, which you should have received along with this program (filename:
COPYING). If not, request a copy from:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307
USA
GETTING STARTED
---------------
Celestia will start up in a window, and if everything is working correctly,
you'll see Earth in front of a field of stars. Displayed on-screen, is some
information about your target (Earth), your speed, and the current time
(Universal Time, so it'll probably be a few hours off from your computer's
clock).
Right drag the mouse to orbit Earth and you might see the Moon and some
familiar constellations. Left dragging the mouse changes your orientation
also, but the camera rotates about its center instead of rotating around
Earth. Rolling the mouse wheel will change your distance to Earth--you can
move light years away, then roll the wheel in the opposite direction to get
back to your starting location. If your mouse lacks a wheel, you can use the
Home and End keys instead.
When running Celestia, you will usually have some object selected. Currently,
it's Earth, but it could also be a star, moon, spacecraft, galaxy, or some
other object. The simplest way to select an object is to click on it. Try
clicking on a star to select it. The information about Earth is replaced with
some details about the star. Press G (or use the Navigation menu), and you'll
zoom through space toward the selected star. If you press G again, you'll
approach the star even closer.
Press H to select our Sun, and then G to go back to our Sun. Right click on
the sun to bring up a menu of planets and other objects in the solar system.
After selecting a planet from the menu, hit G again to travel toward it. Once
there, hold down the right mouse button and drag to orbit the planet.
The Tour Guide is a list of some of the more interesting objects you can visit
in Celestia. Select the Tour Guide option in the Navigation menu to display
the Tour Guide window. Choose a destination from the list, click the Goto
button, and you're off.
That covers the very basics. For a more in-depth look at Celestia and the
controls available to you, download the "Celestia User's Guide" (written by
Frank Gregorio), available in several languages, from:
https://celestia.space/guides.html
This web page also includes links to the Celestia README file translated into
Japanese.
MOUSE, KEYBOARD & JOYSTICK CONTROLS
-----------------------------------
See the included file: controls.txt OR use the Help menu to display the Controls
list.
STAR & SOLAR SYSTEM BROWSER
-------------------------------------------
The Navigation menu contains 'Solar System Browser' and 'Star Browser'
options.
STAR BROWSER
By default, the Star Browser window displays a table of the 100 nearest stars,
along with their Distance, Apparent and Absolute Magnitude, and Type. Clicking
on the column headers will sort the stars. The table is not continuously
updated, so if you travel to another star, you should press the Refresh button
to update the table for your current position. The radio buttons beneath the
table let you switch between viewing a list of Nearest, Brightest, or 'With
planets' stars. As with the solar system browser, clicking on any star name
in the table will select it. Use this feature along with the Center and Go
To buttons to tour the stars visible from any night sky in the galaxy.
SOLAR SYSTEM BROWSER
The Solar System Browser displays a window with a tree view of all the objects
in the nearest solar system (if there is one within a light year of your current
position.) Clicking on the name of any object in the window will select it.
You can then use the Center or Go To buttons to display that object in the main
Celestia window.
SELECTING OBJECTS BY NAME
-------------------------
Celestia provides several ways to select an object by name...
1. Choose 'Select Object' from the Navigation menu, type in the object
name, and click OK.
2. Press Enter, type in the entire object name, and press Enter again.
3. Press Enter, type in the first few characters of the object name,
press the Tab key to move through the displayed listing until the
object is highlighted, then press Enter again.
You can use common names, Bayer designations or catalog numbers for stars.
Celestia currently supports the HIP, HD and SAO catalogs. Catalog numbers must
be entered with a space between the prefix and the catalog number.
KNOWN ISSUES
------------
For up-to-the-minute answers to some common problems encountered when running
Celestia, please view either the FAQ in the Help menu or take a look at the
"Celestia User's FAQ" located on the Celestia User's Forum:
https://celestia.space/forum/
USER MODIFIABLE ELEMENTS
------------------------
You can modify how Celestia starts up each time you run it, by defining your
own start-up settings. Simply open the file "start.cel" in a plain text
editor and follow the in-file instructions. Also, view the celestia.cfg file
in a plain text editor to see additional settings.
Celestia allows you to easily add real, hypothetical, or fictional objects
by creating new catalog files. It is *not* recommended that you alter the
built-in data files; nearly all desired modifications and additions can be
made by placing new catalog files in Celestia's extras folders. There are three
types of catalog files:
- ssc (solar system catalog: planets, moons, spacecraft, etc.)
- stc (star catalog)
- dsc (deep sky catalog: galaxies, star clusters, and nebulae)
All three types of catalog file are text files that can be updated with your
favorite text editing program.
CELESTIA RESOURCES
------------------
Celestia Web Site:
https://celestia.space/
Celestia User Forums:
https://celestia.space/forum/
Selden's List of Resources for Celestia:
https://www.classe.cornell.edu/~seb/celestia/
Celestia Wikibook:
https://en.wikibooks.org/wiki/Celestia
Celestial Matters Website and Forums:
http://www.celestialmatters.org/
http://forum.celestialmatters.org/
Celestia Motherlode:
http://www.celestiamotherlode.net/
Celestia Source Repository:
https://github.com/CelestiaProject/Celestia
Celestia Bug Tracking:
https://github.com/CelestiaProject/Celestia/issues
Celestia Feature Requests:
https://github.com/CelestiaProject/Celestia/issues
Celestia Discord Server:
https://discordapp.com/invite/WEWDcJh
Celestia Subreddit:
https://www.reddit.com/r/Celestiasoftware/
Celestia Archive Repository:
https://github.com/Anthony-B-Russo10/Celestia-Archive
BUILDING FROM SOURCES
---------------------
See file INSTALL for building instructions.
CONTRIBUTIONS
-------------
Authors
-------
Chris Laurel <claurel@gmail.com>
Clint Weisbrod <cweisbrod@cogeco.ca>
Fridger Schrempp <t00fri@mail.desy.de>
Bob Ippolito <bob@redivi.com>
Christophe Teyssier <chris@teyssier.org>
Hank Ramsey <hramsey@users.sourceforge.net>
Grant Hutchison <grant.celestia@xemaps.com>
Pat Suwalski <pat@suwalski.net>
Toti
Da Woon Jung <dirkpitt2050@users.sf.net>
Vincent Giangiulio <vince.gian@free.fr>
Andrew Tribick
Hleb Valoshka
Li Linfeng
Contributors
------------
Deon Ramsey ........... Original GTK1 interface
Christopher Andre ..... Eclipse Finder
Colin Walters ......... Endianness fixes
Peter Chapman ......... Orbit path rendering changes
James Holmes ..........
Harald Schmidt ........ Lua scripting enhancements, bug fixes
Nils Larsson .......... Qt enhancements
Documentation
-------------
Frank Gregorio ........ Celestia User's Guide
Hitoshi Suzuki ........ Japanese README translation
Christophe Teyssier ... DocBook and HTML conversion of User's Guide
Diego Rodriguez ....... Acrobat conversion of User's Guide
Don Goyette ........... CEL Scripting Guide
Harald Schmidt ........ Celx/Lua Scripting Guide
Content
-------
Please see the README file in the CelestiaContent repository.
Libraries
---------
# This software is based in part on the work of the Independent JPEG Group.
# Some versions of Celestia may use the SPICE system for spacecraft and
planetary information, developed by Caltech/JPL under contract to NASA.
# Many cylindrical projections of photographs were performed by Fridger
Schrempp with Matthew Arcus 'mmps' software,
http://www.users.globalnet.co.uk/~arcus/mmps/
# The lower resolution textures were all converted from their higher resolution
versions using Gimp.
# The star database (stars.dat) was derived from the ESA's HIPPARCOS data set.
# Constellation boundaries are drawn from Davenhall & Leggett's "Catalogue of
Constellation Boundary Data":
http://cdsweb.u-strasbg.fr/viz-bin/ftp-index?/ftp/cats/VI/49
Other work
----------
# Selden Ball deserves a special mention for suffering more prerelease versions
finding more bugs, and giving more feedback than anyone else.
# Christophe Campos aka ElChristou created the splash screen for Celestia.
# The MacOS X icon was designed by Chris Alford: http://www.chrisalford.com/
# The txf font format used by Celestia was devised by Mark Kilgard.
ACKNOWLEDGEMENTS
----------------
A very big thank you for creating Celestia goes to Chris Laurel who started this
program in the year 2001.
<claurel@gmail.com>
https://celestia.space/
Special thanks go to all Celestia users who submit bug reports, suggestions, and
fixes. Celestia wouldn't be the program it is today, without their help.
The Celestia Development Team
***************************************************************************
* Celestia *
* *
* A real-time space simulation that lets you experience our universe in *
* three dimensions. *
* *
* Copyright (c) 2001-2009, Celestia Development Team *
* *
*-------------------------------------------------------------------------*
* Celestia web site: http://www.shatters.net/celestia/ *
* *
* Celestia documentation: *
* http://www.shatters.net/celestia/documentation.html *
* Celestia WikiBook: http://en.wikibooks.org/wiki/Celestia *
* *
* Celestia forums: http://www.shatters.net/forum/ *
* *
***************************************************************************
CONTENTS
--------
License
Installing in Unix and Linux
Getting Started
Mouse, Keyboard & Joystick Controls
Star & Solar System Browser
Selecting Objects by Name
Known Issues
User Modifiable Elements
Celestia Resources
Contributions
Acknowledgements
LICENSE
-------
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details, which you should have received along with this program (filename:
COPYING). If not, request a copy from:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307
USA
INSTALLING IN UNIX AND LINUX
----------------------------
Type "./configure --help" for a list of options. The basic commands are shown
below. For more detailed information, refer to the INSTALL file.
The GTK version is built with...
./configure --with-gtk
make
make install
The KDE3 version is built with...
./configure --with-kde
make
make install
Note: some systems may require configure to be executed with
--with-qt-includes=/usr/include/qt3
The Gnome version is built with...
./configure --with-gnome
make
make install
If all else fails, try the gui-less version with...
./configure --with-glut
make
make install
GETTING STARTED
---------------
Celestia will start up in a window, and if everything is working correctly,
you'll see Earth in front of a field of stars. Displayed on-screen, is some
information about your target (Earth), your speed, and the current time
(Universal Time, so it'll probably be a few hours off from your computer's
clock).
Right drag the mouse to orbit Earth and you might see the Moon and some
familiar constellations. Left dragging the mouse changes your orientation
also, but the camera rotates about its center instead of rotating around
Earth. Rolling the mouse wheel will change your distance to Earth--you can
move light years away, then roll the wheel in the opposite direction to get
back to your starting location. If your mouse lacks a wheel, you can use the
Home and End keys instead.
When running Celestia, you will usually have some object selected. Currently,
it's Earth, but it could also be a star, moon, spacecraft, galaxy, or some
other object. The simplest way to select an object is to click on it. Try
clicking on a star to select it. The information about Earth is replaced with
some details about the star. Press G (or use the Navigation menu), and you'll
zoom through space toward the selected star. If you press G again, you'll
approach the star even closer.
Press H to select our Sun, and then G to go back to our Sun. Right click on
the sun to bring up a menu of planets and other objects in the solar system.
After selecting a planet from the menu, hit G again to travel toward it. Once
there, hold down the right mouse button and drag to orbit the planet.
The Tour Guide is a list of some of the more interesting objects you can visit
in Celestia. Select the Tour Guide option in the Navigation menu to display
the Tour Guide window. Choose a destination from the list, click the Goto
button, and you're off.
That covers the very basics. For a more in-depth look at Celestia and the
controls available to you, download the "Celestia User's Guide" (written by
Frank Gregorio), available in several languages, from:
http://www.shatters.net/celestia/documentation.html
This web page also includes links to the Celestia README file translated into
Japanese.
MOUSE, KEYBOARD & JOYSTICK CONTROLS
-----------------------------------
See the included file: controls.txt OR use the Help menu to display the Controls
list.
STAR & SOLAR SYSTEM BROWSER
-------------------------------------------
The Navigation menu contains 'Solar System Browser' and 'Star Browser'
options.
STAR BROWSER
By default, the Star Browser window displays a table of the 100 nearest stars,
along with their Distance, Apparent and Absolute Magnitude, and Type. Clicking
on the column headers will sort the stars. The table is not continuously
updated, so if you travel to another star, you should press the Refresh button
to update the table for your current position. The radio buttons beneath the
table let you switch between viewing a list of Nearest, Brightest, or 'With
planets' stars. As with the solar system browser, clicking on any star name
in the table will select it. Use this feature along with the Center and Go
To buttons to tour the stars visible from any night sky in the galaxy.
SOLAR SYSTEM BROWSER
The Solar System Browser displays a window with a tree view of all the objects
in the nearest solar system (if there is one within a light year of your current
position.) Clicking on the name of any object in the window will select it.
You can then use the Center or Go To buttons to display that object in the main
Celestia window.
SELECTING OBJECTS BY NAME
-------------------------
Celestia provides several ways to select an object by name...
1. Choose 'Select Object' from the Navigation menu, type in the object
name, and click OK.
2. Press Enter, type in the entire object name, and press Enter again.
3. Press Enter, type in the first few characters of the object name,
press the Tab key to move through the displayed listing until the
object is highlighted, then press Enter again.
You can use common names, Bayer designations or catalog numbers for stars.
Celestia currently supports the HIP, HD and SAO catalogs. Catalog numbers must
be entered with a space between the prefix and the catalog number.
KNOWN ISSUES
------------
For up-to-the-minute answers to some common problems encountered when running
Celestia, please view either the FAQ in the Help menu or take a look at the
"Celestia User's FAQ" located on the Celestia User's Forum:
http://www.shatters.net/forum/
USER MODIFIABLE ELEMENTS
------------------------
You can modify how Celestia starts up each time you run it, by defining your
own start-up settings. Simply open the file "start.cel" in a plain text
editor and follow the in-file instructions. Also, view the celestia.cfg file
in a plain text editor to see additional settings.
Celestia allows you to easily add real, hypothetical, or fictional objects
by creating new catalog files. It is *not* recommended that you alter the
built-in data files; nearly all desired modifications and additions can be
made by placing new catalog files in Celestia's extras folders. There are three
types of catalog files:
- ssc (solar system catalog: planets, moons, spacecraft, etc.)
- stc (star catalog)
- dsc (deep sky catalog: galaxies, star clusters, and nebulae)
All three types of catalog file are text files that can be updated with your
favorite text editing program.
CELESTIA RESOURCES
------------------
Celestia Web Site:
http://www.shatters.net/celestia/
Celestia User Forums:
http://www.shatters.net/forum/
Selden's List of Resources for Celestia :
http://www.lepp.cornell.edu/~seb/celestia/
Celestia WikiBook:
http://en.wikibooks.org/wiki/Celestia
Celestial Matters Website and Forums:
http://www.celestialmatters.org/
http://forum.celestialmatters.org/
Celestia Motherlode:
http://www.celestiamotherlode.net/
Celestia Source Code (SourceForge.net):
http://sourceforge.net/projects/celestia/
Celestia Bug Tracking (SourceForge.net):
http://sourceforge.net/tracker/?atid=121302&group_id=21302&func=browse
Celestia Feature Requests (SourceForge.net):
http://sourceforge.net/tracker/?atid=371302&group_id=21302&func=browse
CONTRIBUTIONS
-------------
Authors
-------
Chris Laurel <claurel@gmail.com>
Clint Weisbrod <cweisbrod@cogeco.ca>
Fridger Schrempp <t00fri@mail.desy.de>
Bob Ippolito <bob@redivi.com>
Christophe Teyssier <chris@teyssier.org>
Hank Ramsey <hramsey@users.sourceforge.net>
Grant Hutchison <grant.celestia@xemaps.com>
Pat Suwalski <pat@suwalski.net>
Toti
Da Woon Jung <dirkpitt2050@users.sf.net>
Vincent Giangiulio <vince.gian@free.fr>
Andrew Tribick
Contributors
------------
Deon Ramsey ........... original GTK1 interface
Christopher ANDRE ..... Eclipse Finder
Colin Walters ......... Endianness fixes
Peter Chapman ......... Orbit path rendering changes
James Holmes ..........
Harald Schmidt ........ Lua scripting enhancements, bug fixes
Documentation
-------------
Frank Gregorio ........ Celestia User's Guide
Hitoshi Suzuki ........ Japanese README translation
Christophe Teyssier ... DocBook and HTML conversion of User's Guide
Diego Rodriguez ....... Acrobat conversion of User's Guide
Don Goyette ........... CEL Scripting Guide
Harald Schmidt ........ Celx/Lua Scripting Guide
Scientific Data Base
--------------------
# Grant Hutchison
Supplied the correct orientations for the major planets, their moons, and a
number of asteroids and also worked on these data files:
Solarsys.ssc, nearstars.stc, extrasolar.ssc, extrasolar.stc, earth_locs.ssc
# Fridger Schrempp
Complete NGC/IC galaxy database + local group galaxies (galaxies.dsc)
Data base on globular clusters (globulars.dsc)
Data base on visual and spectroscopic binaries (visualbins.stc,
spectbins.stc)
World-capitals.ssc
Asterisms.dat
# Andrew Tribick
Significant update of the star.dat base based on new HIP Reduction of the
Raw data, Floor van Leeuwen, 2007.
CHARM2 stellar radii (charm2.stc)
Texture maps
------------
# Most of the planet maps are from David Seal's site:
http://maps.jpl.nasa.gov/.
A few of these maps were modified by me, with fictional terrain added to fill
in gaps. The model of the Galileo spacecraft is also from David Seal's site
(though it was converted from Inventor to 3DS format.)
# The Mars, Neptune, and Uranus textures and Mars bump maps are all from James
Hastings-Trew's collection. His maps may be found here:
http://gw.marketingden.com/planets/planets.html
# Grant Hutchison
Saturn's rings were built by Grant Hutchison from Cassini imaging, with
transparency information derived from stellar transit data obtained from:
http://pds-rings.arc.nasa.gov/ringocc/ringocc.html
The Eros map is a shaded relief generated from the NEAR laser rangefinder
shape model at:
http://pdssbn.astro.umd.edu/NEARdb/nlr/#shape
# Jens Meyer
Dione and Rhea are USGS maps colored and modified by Jens Meyer.
The Moon map is based on data from PDS Map-A-Planet at
http://pdsmaps.wr.usgs.gov/maps.html with colors from Mark Robinson at
http://www.earth.northwestern.edu/research/robinson/MOON/clem_color.html.
# Fridger Schrempp
'Available data' Pluto and Charon textures using maps created by Marc Buie
at Lowell Observatory. Buie's maps were generated from photometric data
gathered during six years of mutual occultations of Pluto and Charon.
Titan's cloud texture in natural colors and its surface map at near-infrared
wavelength. They are based on resources available from the imaging site
(Ciclops) of the Cassini mission
(http://ciclops.lpl.arizona.edu/index.php)
The Phoebe base texture was created from the cylindrical map published by
the Cassini imaging team
(http://photojournal.jpl.nasa.gov/catalog/PIA07775)
The Tethys textures are based on the Oct 2008 Ciclops map
(http://photojournal.jpl.nasa.gov/catalog/PIA11116)
The Iapetus texture was created from the Oct 2008 Ciclops map
(http://photojournal.jpl.nasa.gov/catalog/PIA11116)
The Lunar topography and bump maps, using Clementine laser altimeter data,
merged in the polar regions with topographic data from Clementine 750 nm
oblique and nadir images
(ftp://ftpflag.wr.usgs.gov/dist/pigpen/moon/usgs/topo/global/)
The Mercury map was created from a combination of Mariner 10 imaging
with recent MESSENGER WAC images from the first two flybys, as collected
and reprojected by Steve Albers:
See http://laps.noaa.gov/albers/sos/sos.html.
# Phil Stooke
Proteus, Janus, Prometheus and Epimetheus maps are from Phil Stooke.
The Ida and Gaspra photomosaic maps are by Phil Stooke.
# Venus's clouds and the textures for Ganymede, Callisto and Saturn are from
Bj<42>rn J<>nsson. His site at http://www.mmedia.is/~bjj/ is an excellent
resource for solar system rendering.
# Venus's surface is a copyright-free NASA image, prepared from Magellan radar
data. The original is available at
http://www.solarviews.com/cap/venus/venmap.htm
# The Earth texture was created by NASA using data from the MODIS instrument
aboard the Terra satellite. Further information is available from:
http://earthobservatory.nasa.gov/Newsroom/BlueMarble/
# Steve Albers
The Io and Europa maps are by Steve Albers. His planetary maps are at:
http://laps.noaa.gov/albers/sos/sos.html
# The textures for the Uranian satellites were created by Ivan Rivera from JPL
data. His Celestia page is: http://bruckner.homelinux.net/celestia.html
# The Hyperion map is a photomosaic assembled by Phil Stooke and
colored by Jens Meyer.
# Amalthea is a shaded relief map by Phil Stooke, colored by Wm. Robert Johnston
(http://www.johnstonsarchive.net/spaceart/cylmaps.html), and further modified
by Jens Meyer and Grant Hutchison.
# The asteroid.jpg texture was created by Paul Roberts.
# The textures for the five classes of extrasolar giant planet were created by
Andrew Tribick.
# CICLOPS
The map of Enceladus is derived from the December 2008 CICLOPS map:
http://ciclops.org/view/5447/Map_of_Enceladus_December_2008
3D Models
---------
# Models of Mars Global Surveyor and Mars Odyssey were created by Shrox:
http://www.shrox.com/
# The Cassini and Huygens models are by Jack Higgins:
http://homepage.eircom.net/~jackcelestia/
# The 3D model of ISS is a deconstruction of Andrew Farnaby's
complete ISS model with textures by Bob Hundley. The model
represents the ISS as of June 2008 and is a modification of
the model that can be found here:
http://www.celestiamotherlode.net/catalog/show_addon_details.php?addon_id=1199
ISS model of June 2008 (with Kibo) by krisci3 (modified and
converted in order to work with JPG by Ulrich Dickmann, a.k.a.
Adirondack)
# 3D asteroid models of Toutatis, Kleopatra, Geographos, 1998 KY26, Bacchus,
Castalia and Golevka are courtesy of Scott Hudson, Washington State
University. His site is:
http://www.eecs.wsu.edu/~hudson/Research/Asteroids/models.html
# 3D models of Phobos, Deimos, Amalthea, Janus, Epimetheus, Prometheus, Pandora,
Hyperion, Larissa, Proteus, Vesta, Ida, Gaspra and Halley are derived from
Phil Stooke's Cartography of Non-Spherical Worlds at:
http://publish.uwo.ca/~pjstooke/plancart.htm
and optical shape model dataset at:
http://pdssbn.astro.umd.edu/SBNast/holdings/EAR-A-5-DDR-STOOKE-SHAPE-MODELS-
V1.0.html
# The 3D model of Eros was prepared from the NEAR laser rangefinder shape model
at: http://pdssbn.astro.umd.edu/NEARdb/nlr/#shape
# The Phoebe mesh was designed by Jerry Gardner aka Jestr, jestr@ntlworld.com,
based on Phoebe's bumpy topography display from Cassini,
http://photojournal.jpl.nasa.gov/catalog/PIA06070
Libraries
---------
# This software is based in part on the work of the Independent JPEG Group.
# Some versions of Celestia may use the SPICE system for spacecraft and
planetary information, developed by Caltech/JPL under contract to NASA.
# Many cylindrical projections of photographs were performed by Fridger
Schrempp with Matthew Arcus 'mmps' software,
http://www.users.globalnet.co.uk/~arcus/mmps/
# The lower resolution textures were all converted from their higher resolution
versions using Gimp.
# The star database (stars.dat) was derived from the ESA's HIPPARCOS data set.
# Constellation boundaries are drawn from Davenhall & Leggett's "Catalogue of
Constellation Boundary Data":
http://cdsweb.u-strasbg.fr/viz-bin/ftp-index?/ftp/cats/VI/49
Other work
----------
# Selden Ball deserves a special mention for suffering more prerelease versions
finding more bugs, and giving more feedback than anyone else.
# Christophe Campos aka ElChristou created the splash screen for Celestia.
# The MacOS X icon was designed by Chris Alford: http://www.chrisalford.com/
# The txf font format used by Celestia was devised by Mark Kilgard.
ACKNOWLEDGEMENTS
----------------
A very big thank you for creating Celestia goes to Chris Laurel who started this
program in the year 2001.
<claurel@gmail.com>
http://www.shatters.net/~claurel/
http://www.shatters.net/celestia/
Special thanks go to all Celestia users who submit bug reports, suggestions, and
fixes. Celestia wouldn't be the program it is today, without their help.
The Celestia Development Team

View File

@ -1,142 +0,0 @@
| **`Release`** | **`Localized`** | **`License`** | **`Contribute`** |
|-------------------|---------------|---------------|---------------|
|[![GitHub release](https://img.shields.io/github/v/release/CelestiaProject/Celestia?label=Release)](https://celestia.space/download.html) | [![Localization](https://img.shields.io/badge/Localized-85%25-green.svg)](#) | [![License](https://img.shields.io/github/license/CelestiaProject/Celestia?label=License)](https://github.com/CelestiaProject/Celestia/blob/master/COPYING) | [![Contribute](https://img.shields.io/badge/PRs-Welcome-brightgreen.svg)](#contributing) |
# Celestia
![Celestia](celestia-logo.png)<br>
**A real-time space simulation that lets you experience our universe in three dimensions.**
**Copyright © 2001-2021, Celestia Development Team**<br>
**Celestia website: https://celestia.space**<br>
**Celestia Wikibook: https://en.wikibooks.org/wiki/Celestia**<br>
**Celestia forums: https://celestia.space/forum/**<br>
**Celestia Subreddit: https://www.reddit.com/r/Celestiasoftware/**<br>
**Celestia Archive Repository: https://github.com/Anthony-B-Russo10/Celestia-Archive**
## License
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details,
which you should have received along with this program (filename: COPYING).
If not, request a copy from:<br>
Free Software Foundation, Inc.<br>
59 Temple Place - Suite 330<br>
Boston, MA 02111-1307<br>
USA
## Getting started
Celestia will start up in a window, and if everything is working correctly,
you'll see Earth in front of a field of stars. Displayed on-screen, is some
information about your target (Earth), your speed, and the current time
(Universal Time, so it'll probably be a few hours off from your computer's
clock).
Right drag the mouse to orbit Earth and you might see the Moon and some
familiar constellations. Left dragging the mouse changes your orientation
also, but the camera rotates about its center instead of rotating around
Earth. Rolling the mouse wheel will change your distance to Earth--you can
move light years away, then roll the wheel in the opposite direction to get
back to your starting location. If your mouse lacks a wheel, you can use the
Home and End keys instead.
When running Celestia, you will usually have some object selected. Currently,
it's Earth, but it could also be a star, moon, spacecraft, galaxy, or some
other object. The simplest way to select an object is to click on it. Try
clicking on a star to select it. The information about Earth is replaced with
some details about the star. Press G (or use the Navigation menu), and you'll
zoom through space toward the selected star. If you press G again, you'll
approach the star even closer.
Press H to select our Sun, and then G to go back to our Sun. Right click on
the sun to bring up a menu of planets and other objects in the solar system.
After selecting a planet from the menu, hit G again to travel toward it. Once
there, hold down the right mouse button and drag to orbit the planet.
The Tour Guide is a list of some of the more interesting objects you can visit
in Celestia. Select the Tour Guide option in the Navigation menu to display
the Tour Guide window. Choose a destination from the list, click the Goto
button, and you're off.
That covers the very basics. For a more in-depth look at Celestia and the
controls available to you, download the "Celestia User's Guide" (written by
Frank Gregorio), available in several languages, from:<br>
https://celestia.space/guides.html<br>
This web page also includes links to the Celestia README file translated into
Japanese.
### Star browser
By default, the Star Browser window displays a table of the 100 nearest stars,
along with their Distance, Apparent and Absolute Magnitude, and Type. Clicking
on the column headers will sort the stars. The table is not continuously
updated, so if you travel to another star, you should press the Refresh button
to update the table for your current position. The radio buttons beneath the
table let you switch between viewing a list of Nearest, Brightest, or 'With
planets' stars. As with the solar system browser, clicking on any star name
in the table will select it. Use this feature along with the Center and Go
To buttons to tour the stars visible from any night sky in the galaxy.
### Solar system browser
The Solar System Browser displays a window with a tree view of all the objects
in the nearest solar system (if there is one within a light year of your current
position.) Clicking on the name of any object in the window will select it.
You can then use the Center or Go To buttons to display that object in the main
Celestia window.
### Selecting objects by name
Celestia provides several ways to select an object by name...
1. Choose 'Select Object' from the Navigation menu, type in the object name, and click OK.
2. Press Enter, type in the entire object name, and press Enter again.
3. Press Enter, type in the first few characters of the object name,
press the Tab key to move through the displayed listing until the object is highlighted,
then press Enter again.
You can use common names, Bayer designations or catalog numbers for stars.
Celestia currently supports the HIP, HD and SAO catalogs. Catalog numbers must
be entered with a space between the prefix and the catalog number.
### Known issues
For up-to-the-minute answers to some common problems encountered when running
Celestia, please view either the FAQ in the Help menu or take a look at the
"Celestia User's FAQ" located on the Celestia User's Forum:
https://celestia.space/forum/
### User modifiable elements
You can modify how Celestia starts up each time you run it, by defining your
own start-up settings. Simply open the file "start.cel" in a plain text
editor and follow the in-file instructions. Also, view the celestia.cfg file
in a plain text editor to see additional settings.
Celestia allows you to easily add real, hypothetical, or fictional objects
by creating new catalog files. It is *not* recommended that you alter the
built-in data files; nearly all desired modifications and additions can be
made by placing new catalog files in Celestia's extras folders. There are three
types of catalog files:
* ssc (solar system catalog: planets, moons, spacecraft, etc.)
* stc (star catalog)
* dsc (deep sky catalog: galaxies, star clusters, and nebulae)
All three types of catalog file are text files that can be updated with your
favorite text editing program.
### Building from sources
See instructions in file [INSTALL.md](INSTALL.md).
## Contributions
| **`Authors`** | **`Contributors`** | **`Documentation`** | **`Other`** |
|-----------------|---------------------|------------------|-------------------|
| Chris Laurel, Clint Weisbrod, Fridger Schrempp, Bob Ippolito, Christophe Teyssier, Hank Ramsey, Grant Hutchison, Pat Suwalski, Toti, Da Woon Jung, Vincent Giangiulio, Andrew Tribick, Hleb Valoshka, Łukasz Buczyński, Li Linfeng | Deon Ramsey, Christopher Andre, Colin Walters, Peter Chapman, James Holmes, Harald Schmidt, Nils Larsson, Sergey Leonov, Alexell, Dmitry Brant, Janus | Selden Ball, Frank Gregorio, Hitoshi Suzuki, Christophe Teyssier, Diego Rodriguez, Don Goyette, Harald Schmidt | Creators of scientific database, texture maps, 3D models and used libraries, you can see in full README.|
### Contributing
**We welcome feedback, bug reports, and pull requests!**
For pull requests, please stick to the following guidelines:
* Be sure to test your code changes.
* Follow the existing code style (e.g., indents).
* Put a lot of comments into the code, if necessary.
* Separate unrelated changes into multiple pull requests.

110
README.md
View File

@ -1,110 +0,0 @@
# Celestia
Celestia is a "real-time space simulation that lets you experience
our universe in three dimensions".
![celestia-screenshot](pics/celestia-screenshot.png)
# Upstream
This repo is a lesser fork of the upstream project,
which has been revived.
* https://celestia.space/
* https://github.com/CelestiaProject/Celestia
See also: `README-upstream`, `README-upstream.md`.
## License/Copyright
GPLv2+
Copyright © 2001-2021, Celestia Development Team
# Debian
Package was removed from Debian in the ancient days due to bitrot.
The upstream code has a new team and active development, using
recent libraries. The package can be built under Debian Ok, except
for the `data/` files.
Debian upstream bug:
* https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809916
```
Upstream has not produced any new releases in the last 4 years. In the
mean time, the package is accumulating bugs due to bitrot. It already
wasn't a trouble-free package, due to some quite important resources not
being DFSG compliant.
```
I do see some of the resources now are CC-by-SA 4.0, a license which
didn't exist when the Debian bug was created. So it may be that it
can be built happily without DFSG issues using new data files.
Celestia depending on NASA's Spice/NAIF may be afoul of Debian's
DFSG because the terms are unique. It isn't really a standard license.
Debian tracker link:
* https://tracker.debian.org/pkg/celestia
# Build
Mini Debian package build howto.
```
# Install deps
sudo apt update
sudo apt install build-essential ccache devscripts \
debhelper chrpath cmake freeglut3-dev libeigen3-dev libfmt-dev \
libfreetype6-dev libepoxy-dev libglu1-mesa-dev libgtk2.0-dev \
libgtkglext1-dev libjpeg62-turbo-dev libluajit-5.1-dev libpng-dev \
libqt5opengl5-dev libtheora-dev qtbase5-dev qtbase5-dev-tools
# Add ccache to PATH in ~/.bashrc, and log back in
PATH=/usr/lib/ccache:$PATH
# Make dirs to put it all, as it writes packages to the *parent* dir.
mkdir celestia-deb
cd celestia-deb
git clone https://spacecruft.org/spacecruft/CelestiaContent
cd CelestiaContent
# Build the source package, writes to parent dir
dpkg-buildpackage -rfakeroot -S -uc -us -sa
# Build Debian Packages
dpkg-buildpackage -rfakeroot -b -uc
cd ..
# Install the data package
sudo dpkg -i celestia-data_1.7.0~git20211202+668347e9+0_all.deb
# Make sure apt is happy
sudo apt -f install
git clone --recursive https://spacecruft.org/spacecruft/celestia
cd celestia
# Build the source package, writes to parent dir
dpkg-buildpackage -rfakeroot -S -uc -us -sa
# Build Debian Packages
dpkg-buildpackage -rfakeroot -b -uc
cd ..
# Install
sudo dpkg -i celestia_1.7.0~git20220520+1_all.deb \
celestia-common_1.7.0~git20220520+1_all.deb \
celestia-qt_1.7.0~git20220520+1_amd64.deb \
celestia-tools_1.7.0~git20220520+1_amd64.deb \
libcelestia1.7_1.7.0~git20220520+1_amd64.deb
# Make sure apt is happy
sudo apt -f install
```

View File

@ -1,37 +1,37 @@
AR: Ali Al-Khudair <saudilink@lycos.com>
BG: Atanas Kumbarov <kumbarov@gmail.com>
Georgi Georgiev <georgiev_1994@abv.bg>
DE: German Translator Team <celestia-deutsch@gmx.net>
U. Dickmann / C. Lenz / S. Schreiber / A. Wagner
U. Dickmann / C. Lenz / S. Schreiber / A. Wagner
EL: Charis Kouzinopoulos <ckouz@uom.gr>
ES: Guillermo Abramson <abramson@cab.cnea.gov.ar>
FR: Christophe Teyssier <chris@teyssier.org>
Vincent Giangiulio <gvince@sfr.fr>
Vincent Giangiulio <gvince@sfr.fr>
GL: Xabier Cancela <xabiercs@terra.es>
HU: Székely Zoltán <zoltanszekely@hotmail.com>
IT: Paolo Angeli <pangeli70@virgilio.it>
Mauro Santandrea <mausan66@tiscali.it>
Andrea Pelloni <mc3657@mclink.it>
Vincent Giangiulio <gvince@sfr.fr>
Mauro Santandrea <mausan66@tiscali.it>
Andrea Pelloni <mc3657@mclink.it>
Vincent Giangiulio <gvince@sfr.fr>
JA: Sui Ota <aqua@aqsp.net>
KO: Jacob Lee <jaeuck@gmail.com>
Seung-Bum Lee <blcktgr73@gmail.com>
Seung-Bum Lee <blcktgr73@gmail.com>
LT: Marius Mikalainis <neoromancer@gmail.com>
LV: Jānis Jātnieks <sg30022@lanet.lv>
NL: Myckel Habets <myckel@sdf.lonestar.org>
PL: Michał Trzebiatowski <hippie_1968@hotmail.com>
PT: José Raeiro <zeraeiro@gmail.com>
PT_BR: Luis Gabriel <lgabriel@brazilmail.com>
Igor Borgo <igorborgo@gmail.com>
Igor Borgo <igorborgo@gmail.com>
RO: Oana Radu <oanaradu32@queeq.com>
RU: Sergey Leonov <leserg@ua.fm>
SV: Daniel Nylander <po@danielnylander.se>
Anders Pamdal <anders@pamdal.se>
Anders Pamdal <anders@pamdal.se>
UK: Serhij Dubyk <dubyk@library.lviv.ua>
Yuri Chornoivan <yurchor@ukr.net>
Yuri Chornoivan <yurchor@ukr.net>
ZH_CN: Markerz Li <markerzli@gmail.com>
ZH_TW: An-Li Chen<alchen@tam.gov.tw>
I-Yuan Chiang <iychiangg1809@gmail.com>
Lung-Chin Hsieh<lungchin@gmail.com>
Frank Weng<franklin@goodhorse.idv.tw>
Shan-wun Yang<oiseaumer@gmail.com>
I-Yuan Chiang <iychiangg1809@gmail.com>
Lung-Chin Hsieh<lungchin@gmail.com>
Frank Weng<franklin@goodhorse.idv.tw>
Shan-wun Yang<oiseaumer@gmail.com>

5996
acinclude.m4 100644

File diff suppressed because it is too large Load Diff

102
admin/Doxyfile.am 100644
View File

@ -0,0 +1,102 @@
## generate API documentation with doxygen
apidox-am-yes:
@if test \! -d "$(top_srcdir)/doc/common/" && test -z "$$DOXDATA" ; then \
export DOXDATA=$(kde_libs_htmldir)/en/common ; \
fi ; \
abs_top_srcdir=`cd $(top_srcdir) && pwd` ;\
test -d $(top_builddir)/apidocs || \
( cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
--no-modulename --installdir=$(kde_libs_htmldir)/en \
--no-recurse $(abs_top_srcdir) . ) ; \
cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
--recurse --no-modulename --installdir=$(kde_libs_htmldir)/en \
$$abs_top_srcdir $(subdir)
apidox-am-toplevel-yes:
@if test \! -d "$(top_srcdir)/doc/common/" && test -z "$$ADMIN" ; then \
export DOXDATA=$(kde_libs_htmldir)/en/common ; \
fi ; \
abs_top_srcdir=`cd $(top_srcdir) && pwd` ;\
cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
--no-modulename --installdir=$(kde_libs_htmldir)/en \
$$abs_top_srcdir
## Don't generate API documentation without doxygen
apidox-am-no:
apidox-am-toplevel-no:
apidox:
@if test "$(subdir)" != "."; then \
$(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\
else \
$(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\
fi
install-data-local: install-apidox
## install API documentation
install-apidox:
@if test "$(subdir)" != "."; then \
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html ; \
if test -f $(top_builddir)/apidocs/$(subdir)/$(subdir).tag; then \
echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
fi; \
if test -d $(top_builddir)/apidocs/$(subdir)/html; then \
list=`ls $(top_builddir)/apidocs/$(subdir)/html`; \
echo "installing $(top_builddir)/apidocs/$(subdir)/html" ;\
for file in $$list; do \
$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \
done; \
fi; \
else\
if test -d $(top_builddir)/apidocs; then \
$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs ;\
list=`cd $(top_builddir)/apidocs && ls -1`; \
echo "installing $(top_builddir)/apidocs/$$file" ;\
echo "target directory $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs" ; \
for file in $$list; do \
if test -f $(top_builddir)/apidocs/$$file; then \
$(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
fi; \
done ; fi; \
fi
uninstall-local: uninstall-apidox
## uninstall API documentation
uninstall-apidox:
@if test "$(subdir)" != "."; then \
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); then \
rm -rf $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
fi \
else \
if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; then \
rm -rf $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
fi \
fi
install-apidox-recurse: install-apidox
@set fnord $(MAKEFLAGS); amf=$$2; if test -n '$(SUBDIRS)'; then \
list='$(SUBDIRS)'; \
for subdir in $$list; do \
if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am > /dev/null ; then \
echo "Installing apidox from $$subdir"; \
if test "$$subdir" != "."; then \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no install-apidox-recurse) || exit 1; \
fi ; fi ;\
done; \
fi
.PHONY: apidox-am-yes apidox-am-no install-data-local install-apidox install-apidox uninstall-local uninstall-apidox uninstall-apidox apidox apidox-am-toplevel-no apidox-am-toplevel-yes
# Local Variables:
# mode: makefile
# End:

View File

@ -0,0 +1,192 @@
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = NO
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = YES
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 4
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
SUBGROUPING = YES
EXTRACT_ALL = NO
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = YES
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TESTLIST = NO
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
QUIET = YES
WARNINGS = NO
WARN_IF_UNDOCUMENTED = NO
WARN_IF_DOC_ERROR = YES
WARN_FORMAT =
WARN_LOGFILE =
INPUT =
FILE_PATTERNS = *.h \
*.cpp \
*.cc \
*.hpp \
*.dox \
*.c++ \
*.cxx \
*.h++ \
*.hh
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = *.moc.* \
moc* \
*.all_cpp.* \
*unload.* \
*/test/* \
*/tests/* \
*_p.h
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_SOURCE_FILES = NO
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
VERBATIM_HEADERS = YES
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 3
HTML_OUTPUT =
HTML_FILE_EXTENSION = .html
HTML_HEADER = ../apidocs/common/header.html
HTML_FOOTER = ../apidocs/common/footer.html
HTML_STYLESHEET = ../apidocs/common/doxygen.css
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = YES
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
GENERATE_LATEX = NO
LATEX_OUTPUT =
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
GENERATE_RTF = NO
RTF_OUTPUT =
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
GENERATE_MAN = NO
MAN_OUTPUT =
MAN_EXTENSION = .kde3
MAN_LINKS = YES
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = NO
GENERATE_AUTOGEN_DEF = NO
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
ENABLE_PREPROCESSING = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = QT_VERSION=320 \
__cplusplus \
Q_WS_X11
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = NO
PERL_PATH =
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = NO
UML_LOOK = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 800
MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 0
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
SEARCHENGINE = NO
### KDE Settings
ALIASES = \
"intern=\par<b>Internal use only.</b>" \
"reimp=\par<b>Reimplemented from superclass.</b>" \
"obsolete=@deprecated" \
"feature=\xrefitem features \"Feature(s)\" \"Features\"" \
"maintainer=\xrefitem maintainers \"Maintainer(s)\" \"Maintainers\"" \
"unmaintained=\xrefitem unmaintained \"Unmaintained\" \"Unmaintained\"" \
"requirement=\xrefitem requirements \"Requirement(s)\" \"Requirements\"" \
"faq=\xrefitem FAQ \"F.A.Q.\" \"F.A.Q.\"" \
"authors=\xrefitem authors \"Author(s)\" \"Authors\"" \
"FIXME=\xrefitem fixme \"Fixme\" \"Fixme\""
HTML_ALIGN_MEMBERS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
VERBATIM_HEADERS = NO
GENERATE_HTML = YES
SOURCE_BROWSER = YES
GENERATE_AUTOGEN_DEF = NO
DETAILS_AT_TOP = YES
SORT_MEMBER_DOCS = YES
GENERATE_TODOLIST = YES
IGNORE_PREFIX = K
GENERATE_HTML = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES

12
admin/Makefile.am 100644
View File

@ -0,0 +1,12 @@
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kapptemplate/admin
for file in $(srcdir)/*; do \
if [ -f $$file -a $$file != 'Makefile' -a $$file != 'Makefile.in' -a $$file != 'Makefile.am' ]; then \
destfile=`basename $$file` \
$(INSTALL_DATA) $$file \
$(DESTDIR)$(kde_datadir)/kapptemplate/admin/$$destfile; \
fi \
done
uninstall-local:
-/bin/rm -rf $(DESTDIR)$(kde_datadir)/kapptemplate/admin

View File

@ -0,0 +1,37 @@
### Makefile.common
###
### Copyright (C) 2002 by the KDE developers
### All the real work is done by the shellscript cvs.sh
SHELL=/bin/sh
cvs dist configure configure.in configure.files subdirs package-messages package-merge Makefile.am acinclude.m4 extract-messages:
@admindir=$(admindir); \
if test "x$$admindir" = x; then \
admindir=.; until test -f $$admindir/admin/cvs.sh; do \
admindir=$$admindir/..; \
if test `cd $$admindir && pwd` = / ; then break; fi; \
done; \
admindir=$$admindir/admin; \
if test -f $$admindir/cvs.sh; then :; else \
echo "Can't find the admin/ directory in any parent of the"; \
echo "current directory. Please set it with admindir=..."; \
exit 1; \
fi; \
fi; \
if test "$@" = "package-merge"; then \
MAKE="$(MAKE)" POFILES="$(POFILES)" PACKAGE="$(PACKAGE)" \
$(SHELL) $$admindir/cvs.sh package-merge ;\
else \
MAKE="$(MAKE)" $(SHELL) $$admindir/cvs.sh $@ ;\
fi
configure.in: configure.files subdirs
configure.files: subdirs
svn: cvs
.SILENT:
.PHONY: svn cvs dist package-merge package-messages

5996
admin/acinclude.m4.in 100644

File diff suppressed because it is too large Load Diff

2445
admin/am_edit 100644

File diff suppressed because it is too large Load Diff

157
admin/bcheck.pl 100644
View File

@ -0,0 +1,157 @@
#!/usr/bin/perl -w
use DB_File;
use Fcntl ':flock';
if (!defined($ARGV[0])) {
print "usage: requires .class dump as parameter!\n";
exit;
}
sub bailout
{
untie %bcheckdb if(defined(%bcheckdb));
if(defined(MYLOCK)) {
flock MYLOCK, LOCK_UN;
close(MYLOCK);
}
print @_;
exit 5;
}
sub ask_user
{
my ($dbkey, $dbchunk) = @_;
if (defined($ENV{"BCHECK_UPDATE"})) {
$bcheckdb{$dbkey} = $dbchunk;
return;
}
&bailout("BC problem detected") if (! -t STDIN);
print "(I)gnore / (Q)uit / (U)pdate: ";
my $key;
while(defined(read STDIN, $key, 1)) {
$key = lc($key);
print "got: >$key<\n";
return if ($key eq 'i');
&bailout("BC problem. aborted") if ($key eq 'q');
if ($key eq 'u') {
$bcheckdb{$dbkey} = $dbchunk;
return;
}
print "\n(I)gnore / (Q)uit / (U)pdate: ";
}
}
sub diff_chunk($$)
{
my ($oldl, $newl) = @_;
my @old = split /^/m, $oldl;
my @new = split /^/m, $newl;
my $haschanges = 0;
my $max = $#old > $#new ? $#old : $#new;
die "whoops. key different" if ($old[0] ne $new[0]);
if ($#old != $#new) {
warn ("Structural difference.\n");
print @old;
print "-----------------------------------------------\n";
print @new;
$haschanges = 1;
return $haschanges;
}
print $old[0];
my ($class) = ($old[0] =~ /^(?:Class |Vtable for )(\S+)/);
my $c = 1;
while ($c < $max) {
my ($o, $n) = ($old[$c], $new[$c]);
chomp $o;
chomp $n;
$c++;
next if ($o eq $n);
if(defined($class) and $n =~ /^(\d+\s+)\w+(::\S+\s*.*)$/) {
next if ($n eq "$1$class$2");
}
$haschanges = 1;
print "-$o\n+$n\n\n";
}
return $haschanges;
}
local $dblock = $ENV{"HOME"} . "/bcheck.lock";
my $dbfile = $ENV{"HOME"} . "/bcheck.db";
my $cdump = $ARGV[0];
die "file $cdump is not readable: $!" if (! -f $cdump);
# make sure the advisory lock exists
open(MYLOCK, ">$dblock");
print MYLOCK "";
flock MYLOCK, LOCK_EX;
tie %bcheckdb, 'DB_File', $dbfile;
my $chunk = "";
open (IN, "<$cdump") or die "cannot open $cdump: $!";
while (<IN>) {
chop;
s/0x[0-9a-fA-F]+/0x......../g;
s/base size=/size=/g;
s/\(\)\s*$//g;
s/base align=/align=/g;
$chunk .= $_ . "\n";
if(/^\s*$/) {
my @lines = split /^/m, $chunk;
my $key = $lines[0];
chomp $key;
if($key !~ /<anonymous struct>/ &&
$key !~ /<anonymous union>/) {
if(defined($bcheckdb{$key})) {
my $dbversion = $bcheckdb{$key};
if($dbversion ne $chunk) {
&ask_user($key, $chunk) if(&diff_chunk($dbversion, $chunk));
}
}
else {
$bcheckdb{$key} = $chunk;
print "NEW: $key\n";
}
}
$chunk = "";
next;
}
}
close(IN);
untie %bcheckdb;
flock MYLOCK, LOCK_UN;
close(MYLOCK);
exit 0;

142
admin/compile 100644
View File

@ -0,0 +1,142 @@
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.
scriptversion=2005-05-14.22
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand `-c -o'.
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
right script to run: please start by reading the file `INSTALL'.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
esac
ofile=
cfile=
eat=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as `compile cc -o foo foo.c'.
# So we strip `-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no `-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# `.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
# Name of file we expect compiler to create.
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
# Create the lock directory.
# Note: use `[/.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
"$@"
ret=$?
if test -f "$cofile"; then
mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

View File

@ -0,0 +1,191 @@
#!/usr/bin/env perl
# this script patches a config.status file, to use our own perl script
# in the main loop
# we do it this way to circumvent hacking (and thereby including)
# autoconf function (which are GPL) into our LGPL acinclude.m4.in
# written by Michael Matz <matz@kde.org>
# adapted by Dirk Mueller <mueller@kde.org>
#
# This file is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public License
# along with this library; see the file COPYING.LIB. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
# we have to change two places
# 1. the splitting of the substitutions into chunks of 90 (or even 48 in
# later autoconf's
# 2. the big main loop which patches all Makefile.in's
use strict;
use File::Basename;
my $ac_aux_dir = dirname($0);
my ($flag);
my $ac_version = 0;
my $vpath_seen = 0;
$flag = 0;
while (<>) {
# usage of $flag: 0 -- we have seen nothing yet
# 1 -- we are in (1)
# 2 -- we have ended (1)
# 3 -- we are in (2)
# 4 -- we ended (2)
if ($flag == 4) {
print;
} elsif ($flag == 0) {
# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..."
# ends with (excluding) "CONFIG_FILE=..."
# in later autoconf (2.14.1) there is no CONFIG_FILES= line,
# but instead the (2) directly follow (1)
if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) {
$flag = 1;
if ($1 eq 'lines') {
# lets hope its different with 2141,
# wasn't able to verify that
if ($2 eq '48') {
$ac_version = 250;
}
else {
$ac_version = 2141;
}
} elsif ($1 eq 'cmds') {
$ac_version = 213;
}
# hmm, we don't know the autoconf version, but we try anyway
} else {
print;
}
} elsif ($flag == 1) {
if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) {
print;
$flag = 2;
} elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
$flag = 3;
}
} elsif ($flag == 2) {
# 2. begins with: "for ac_file in.*CONFIG_FILES" (the next 'for' after (1))
# end with: "rm -f conftest.s\*"
# on autoconf 250, it ends with '# CONFIG_HEADER section'
#
# gg: if a post-processing commands section is found first,
# stop there and insert a new loop to honor the case/esac.
# (pattern: /^\s+#\sRun the commands associated with the file./)
if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
$flag = 3;
} else {
print;
}
} elsif ($flag == 3) {
if (/^\s*rm\s+-f\s+conftest/ ) {
$flag = 4;
&insert_main_loop();
} elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) {
$flag = 4;
&insert_main_loop();
#die "hhhhhhh";
if ($ac_version != 2141) {
print STDERR "hmm, don't know autoconf version\n";
}
} elsif (/^\#\s*CONFIG_(HEADER|COMMANDS) section.*|^\s+#\s(Run) the commands associated/) {
$flag = 4;
my $commands = defined $2;
&insert_main_loop();
$commands && insert_command_loop();
if($ac_version != 250) {
print STDERR "hmm, something went wrong :-(\n";
}
} elsif (/VPATH/ ) {
$vpath_seen = 1;
}
}
}
die "wrong input (flag != 4)" unless $flag == 4;
print STDERR "hmm, don't know autoconf version\n" unless $ac_version;
sub insert_main_loop {
if ($ac_version == 250) {
&insert_main_loop_250();
}
else {
&insert_main_loop_213();
}
}
sub insert_main_loop_250 {
print <<EOF;
#echo Doing the fast build of Makefiles -- autoconf $ac_version
EOF
if ($vpath_seen) {
print <<EOF;
# VPATH subst was seen in original config.status main loop
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >>\$tmp/subs.sed
EOF
}
print <<EOF;
rm -f \$tmp/subs.files
for ac_file in .. \$CONFIG_FILES ; do
if test "x\$ac_file" != x..; then
echo \$ac_file >> \$tmp/subs.files
fi
done
if test -f \$tmp/subs.files ; then
perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL"
fi
rm -f \$tmp/subs.files
fi
EOF
return;
}
sub insert_main_loop_213 {
print <<EOF;
#echo Doing the fast build of Makefiles -- autoconf $ac_version
if test "x\$ac_cs_root" = "x" ; then
ac_cs_root=conftest
fi
EOF
if ($vpath_seen) {
print <<EOF;
# VPATH subst was seen in original config.status main loop
echo '/^[ ]*VPATH[ ]*=[^:]*\$/d' >> \$ac_cs_root.subs
EOF
}
print <<EOF;
rm -f \$ac_cs_root.sacfiles
for ac_file in .. \$CONFIG_FILES ; do
if test "x\$ac_file" != x..; then
echo \$ac_file >> \$ac_cs_root.sacfiles
fi
done
if test -f \$ac_cs_root.sacfiles ; then
perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL"
fi
rm -f \$ac_cs_root.s*
EOF
return;
}
sub insert_command_loop {
print <<EOF;
for ac_file in .. \$CONFIG_FILES ; do
EOF
}

1464
admin/config.guess vendored 100644

File diff suppressed because it is too large Load Diff

238
admin/config.pl 100644
View File

@ -0,0 +1,238 @@
#!/usr/bin/env perl
# a script for use by autoconf to make the Makefiles
# from the Makefile.in's
#
# the original autoconf mechanism first splits all substitutions into groups
# of ca. 90, and than invokes sed for _every_ Makefile.in and every group
# (so around 2-3 times per Makefile.in). So this takes forever, as sed
# has to recompile the regexps every time.
#
# this script does better. It changes all Makefile.ins in one process.
# in kdelibs the time for building Makefile went down from 2:59 min to 13 sec!
#
# written by Michael Matz <matz@kde.org>
# adapted by Dirk Mueller <mueller@kde.org>
# This file is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public License
# along with this library; see the file COPYING.LIB. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
use strict;
use File::Path;
my $ac_subs=$ARGV[0];
my $ac_sacfiles = $ARGV[1];
my $ac_given_srcdir=$ARGV[2];
my $ac_given_INSTALL=$ARGV[3];
my @comp_match;
my @comp_subs;
#print "ac_subs=$ac_subs\n";
#print "ac_sacfiles=$ac_sacfiles\n";
#print "ac_given_srcdir=$ac_given_srcdir\n";
#print "ac_given_INSTALL=$ac_given_INSTALL\n";
my $configure_input;
my ($srcdir, $top_srcdir);
my $INSTALL;
my $bad_perl = ($] < 5.005);
my $created_file_count = 0;
open(CF, "< $ac_subs") || die "can't open $ac_subs: $!";
my @subs = <CF>;
my $pat;
close(CF);
chomp @subs;
@comp_match=();
@comp_subs=();
if ($bad_perl) {
print "Using perl older than version 5.005\n";
foreach $pat (@subs) {
if ( ($pat =~ m/s%([^%]*)%([^%]*)%g/ )
|| ($pat =~ m/s%([^%]*)%([^%]*)%;t/ )
|| ($pat =~ m/s,([^,]*),(.*),;t/)
|| ($pat =~ m%s/([^/]*)/([^/]*)/g% )
|| ($pat =~ m%s/([^/]*)/([^/]*)/;t% )
) {
# form : s%bla%blubb%g
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
# or s,bla,blubb,;t t (autoconf 2.52)
my $srch = $1;
my $repl = $2;
$repl =~ s/\\(.)/$1/g;
push @comp_subs, make_closure($srch, $repl);
} elsif ( ($pat =~ /%([^%]*)%d/ )
|| ($pat =~ m%/([^/]*)/d% )
) {
push @comp_subs, make_closure($1, "");
} else {
die "Uhh. Malformed pattern in $ac_subs ($pat)"
unless ( $pat =~ /^\s*$/ ); # ignore white lines
}
}
} else {
foreach $pat (@subs) {
if ( ($pat =~ /s%([^%]*)%([^%]*)%g/ ) ||
($pat =~ /s%([^%]*)%([^%]*)%;t/ ) ||
($pat =~ /s,([^,]*),(.*),;t/) ) {
# form : s%bla%blubb%g
# or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?)
# or s,bla,blubb,;t t (autoconf 2.52)
my $srch = $1;
my $repl = $2;
push @comp_match, eval "qr/\Q$srch\E/"; # compile match pattern
$repl =~ s/\\(.)/$1/g;
push @comp_subs, $repl;
} elsif ( ($pat =~ /%([^%]*)%d/ )
|| ($pat =~ m%/([^/]*)/d% )
) {
push @comp_match, eval "qr/\Q$1\E/";
push @comp_subs, "";
} else {
die "Uhh. Malformed pattern in $ac_subs ($pat)"
unless ( $pat =~ /^\s*$/ ); # ignore white lines
}
}
}
undef @subs;
# read the list of files to be patched, form:
# ./Makefile arts/Makefile arts/examples/Makefile arts/flow/Makefile
open(CF, "< $ac_sacfiles") || die "can't open $ac_sacfiles: $!";
my @ac_files = <CF>;
close(CF);
chomp @ac_files;
my $ac_file;
foreach $ac_file (@ac_files) {
next if $ac_file =~ /\.\./;
next if $ac_file =~ /^\s*$/;
my $ac_file_in;
my ($ac_dir, $ac_dots, $ac_dir_suffix);
if ($ac_file =~ /.*:.*/ ) {
($ac_file_in = $ac_file) =~ s%[^:]*:%%;
$ac_file =~ s%:.*%%;
} else {
$ac_file_in = $ac_file.".in";
}
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
# Remove last slash and all that follows it. Not all systems have dirname.
($ac_dir = $ac_file) =~ s%/[^/][^/]*$%%;
if ( ($ac_dir ne $ac_file) && ($ac_dir ne ".")) {
# The file is in a subdirectory.
if (! -d "$ac_dir") { mkpath "$ac_dir", 0, 0777; }
($ac_dir_suffix = $ac_dir) =~ s%^./%%;
$ac_dir_suffix="/".$ac_dir_suffix;
# A "../" for each directory in $ac_dir_suffix.
($ac_dots = $ac_dir_suffix) =~ s%/[^/]*%../%g;
} else {
$ac_dir_suffix="";
$ac_dots="";
}
if ($ac_given_srcdir eq ".") {
$srcdir=".";
if ($ac_dots) {
( $top_srcdir = $ac_dots) =~ s%/$%%;
} else { $top_srcdir="."; }
} elsif ($ac_given_srcdir =~ m%^/%) {
$srcdir=$ac_given_srcdir.$ac_dir_suffix;
$top_srcdir = $ac_given_srcdir;
} else {
$srcdir = $ac_dots.$ac_given_srcdir.$ac_dir_suffix;
$top_srcdir = $ac_dots.$ac_given_srcdir;
}
if ($ac_given_INSTALL) {
if ($ac_given_INSTALL =~ m%^/% ) {
$INSTALL = $ac_given_INSTALL;
} else {
$INSTALL = $ac_dots.$ac_given_INSTALL;
}
}
print "fast creating $ac_file\n";
unlink $ac_file;
my $ac_comsub="";
my $fname=$ac_file_in;
$fname =~ s%.*/%%;
$configure_input="$ac_file. Generated from $fname by config.pl.";
my $ac_file_inputs;
($ac_file_inputs = $ac_file_in) =~ s%^%$ac_given_srcdir/%;
$ac_file_inputs =~ s%:% $ac_given_srcdir/%g;
patch_file($ac_file, $ac_file_inputs);
++$created_file_count;
}
print "config.pl: fast created $created_file_count file(s).\n";
sub patch_file {
my ($outf, $infiles) = @_;
my $filedata;
my @infiles=split(' ', $infiles);
my $i=0;
my $name;
foreach $name (@infiles) {
if (open(CF, "< $name")) {
while (<CF>) {
$filedata .= $_;
}
close(CF);
} else {
print STDERR "can't open $name: $!"."\n";
}
}
$filedata =~ s%\@configure_input\@%$configure_input%g;
$filedata =~ s%\@srcdir\@%$srcdir%g;
$filedata =~ s%\@top_srcdir\@%$top_srcdir%g;
$filedata =~ s%\@INSTALL\@%$INSTALL%g;
if ($bad_perl) {
while ($i <= $#comp_subs) {
my $ref = $comp_subs[$i];
&$ref(\$filedata);
$i++;
}
} else {
while ($i <= $#comp_match) {
$filedata =~ s/$comp_match[$i]/$comp_subs[$i]/g;
$i++;
}
}
open(CF, "> $outf") || die "can't create $outf: $!";
print CF $filedata;
close(CF);
}
sub make_closure {
my ($pat, $sub) = @_;
my $ret = eval "return sub { my \$ref=shift; \$\$ref =~ s%\Q$pat\E%\Q$sub\E%g; }";
if ($@) {
print "can't create CODE: $@\n";
}
return $ret;
}

666
admin/config.rpath 100755
View File

@ -0,0 +1,666 @@
#! /bin/sh
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
# Copyright 1996-2007 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# The first argument passed to this file is the canonical host specification,
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
# should be set by the caller.
#
# The set of defined variables is at the end of this script.
# Known limitations:
# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
# than 256 bytes, otherwise the compiler driver will dump core. The only
# known workaround is to choose shorter directory names for the build
# directory and/or the installation directory.
# All known linkers require a `.a' archive for static linking (except MSVC,
# which needs '.lib').
libext=a
shrext=.so
host="$1"
host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
# Code taken from libtool.m4's _LT_CC_BASENAME.
for cc_temp in $CC""; do
case $cc_temp in
compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
\-*) ;;
*) break;;
esac
done
cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
wl=
if test "$GCC" = yes; then
wl='-Wl,'
else
case "$host_os" in
aix*)
wl='-Wl,'
;;
darwin*)
case $cc_basename in
xlc*)
wl='-Wl,'
;;
esac
;;
mingw* | cygwin* | pw32* | os2*)
;;
hpux9* | hpux10* | hpux11*)
wl='-Wl,'
;;
irix5* | irix6* | nonstopux*)
wl='-Wl,'
;;
newsos6)
;;
linux* | k*bsd*-gnu)
case $cc_basename in
icc* | ecc*)
wl='-Wl,'
;;
pgcc | pgf77 | pgf90)
wl='-Wl,'
;;
ccc*)
wl='-Wl,'
;;
como)
wl='-lopt='
;;
*)
case `$CC -V 2>&1 | sed 5q` in
*Sun\ C*)
wl='-Wl,'
;;
esac
;;
esac
;;
osf3* | osf4* | osf5*)
wl='-Wl,'
;;
rdos*)
;;
solaris*)
wl='-Wl,'
;;
sunos4*)
wl='-Qoption ld '
;;
sysv4 | sysv4.2uw2* | sysv4.3*)
wl='-Wl,'
;;
sysv4*MP*)
;;
sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
wl='-Wl,'
;;
unicos*)
wl='-Wl,'
;;
uts4*)
;;
esac
fi
# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_direct=no
hardcode_minus_L=no
case "$host_os" in
cygwin* | mingw* | pw32*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
if test "$GCC" != yes; then
with_gnu_ld=no
fi
;;
interix*)
# we just hope/assume this is gcc and not c89 (= MSVC++)
with_gnu_ld=yes
;;
openbsd*)
with_gnu_ld=no
;;
esac
ld_shlibs=yes
if test "$with_gnu_ld" = yes; then
# Set some defaults for GNU ld with shared library support. These
# are reset later if shared libraries are not supported. Putting them
# here allows them to be overridden if necessary.
# Unlike libtool, we use -rpath here, not --rpath, since the documented
# option of GNU ld is called -rpath, not --rpath.
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
case "$host_os" in
aix3* | aix4* | aix5*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
ld_shlibs=no
fi
;;
amigaos*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
# Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
# that the semantics of dynamic libraries on AmigaOS, at least up
# to version 4, is to share data among multiple programs linked
# with the same dynamic library. Since this doesn't match the
# behavior of shared libraries on other platforms, we cannot use
# them.
ld_shlibs=no
;;
beos*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
cygwin* | mingw* | pw32*)
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec='-L$libdir'
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
interix[3-9]*)
hardcode_direct=no
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
;;
gnu* | linux* | k*bsd*-gnu)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
netbsd*)
;;
solaris*)
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
case `$LD -v 2>&1` in
*\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
ld_shlibs=no
;;
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
else
ld_shlibs=no
fi
;;
esac
;;
sunos4*)
hardcode_direct=yes
;;
*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
ld_shlibs=no
fi
;;
esac
if test "$ld_shlibs" = no; then
hardcode_libdir_flag_spec=
fi
else
case "$host_os" in
aix3*)
# Note: this linker hardcodes the directories in LIBPATH if there
# are no directories specified by -L.
hardcode_minus_L=yes
if test "$GCC" = yes; then
# Neither direct hardcoding nor static linking is supported with a
# broken collect2.
hardcode_direct=unsupported
fi
;;
aix4* | aix5*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
aix_use_runtimelinking=no
else
aix_use_runtimelinking=no
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
case $host_os in aix4.[23]|aix4.[23].*|aix5*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
break
fi
done
;;
esac
fi
hardcode_direct=yes
hardcode_libdir_separator=':'
if test "$GCC" = yes; then
case $host_os in aix4.[012]|aix4.[012].*)
collect2name=`${CC} -print-prog-name=collect2`
if test -f "$collect2name" && \
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
:
else
# We have old collect2
hardcode_direct=unsupported
hardcode_minus_L=yes
hardcode_libdir_flag_spec='-L$libdir'
hardcode_libdir_separator=
fi
;;
esac
fi
# Begin _LT_AC_SYS_LIBPATH_AIX.
echo 'int main () { return 0; }' > conftest.c
${CC} ${LDFLAGS} conftest.c -o conftest
aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
}'`
if test -z "$aix_libpath"; then
aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
}'`
fi
if test -z "$aix_libpath"; then
aix_libpath="/usr/lib:/lib"
fi
rm -f conftest.c conftest
# End _LT_AC_SYS_LIBPATH_AIX.
if test "$aix_use_runtimelinking" = yes; then
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
else
if test "$host_cpu" = ia64; then
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
else
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
fi
fi
;;
amigaos*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
# see comment about different semantics on the GNU ld section
ld_shlibs=no
;;
bsdi[45]*)
;;
cygwin* | mingw* | pw32*)
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec=' '
libext=lib
;;
darwin* | rhapsody*)
hardcode_direct=no
if test "$GCC" = yes ; then
:
else
case $cc_basename in
xlc*)
;;
*)
ld_shlibs=no
;;
esac
fi
;;
dgux*)
hardcode_libdir_flag_spec='-L$libdir'
;;
freebsd1*)
ld_shlibs=no
;;
freebsd2.2*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
freebsd2*)
hardcode_direct=yes
hardcode_minus_L=yes
;;
freebsd* | dragonfly*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
hpux9*)
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
;;
hpux10*)
if test "$with_gnu_ld" = no; then
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
fi
;;
hpux11*)
if test "$with_gnu_ld" = no; then
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
hardcode_libdir_separator=:
case $host_cpu in
hppa*64*|ia64*)
hardcode_direct=no
;;
*)
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
;;
esac
fi
;;
irix5* | irix6* | nonstopux*)
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
netbsd*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
newsos6)
hardcode_direct=yes
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
openbsd*)
if test -f /usr/libexec/ld.so; then
hardcode_direct=yes
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
else
case "$host_os" in
openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
hardcode_libdir_flag_spec='-R$libdir'
;;
*)
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
;;
esac
fi
else
ld_shlibs=no
fi
;;
os2*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
;;
osf3*)
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
osf4* | osf5*)
if test "$GCC" = yes; then
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
# Both cc and cxx compiler support -rpath directly
hardcode_libdir_flag_spec='-rpath $libdir'
fi
hardcode_libdir_separator=:
;;
solaris*)
hardcode_libdir_flag_spec='-R$libdir'
;;
sunos4*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=yes
hardcode_minus_L=yes
;;
sysv4)
case $host_vendor in
sni)
hardcode_direct=yes # is this really true???
;;
siemens)
hardcode_direct=no
;;
motorola)
hardcode_direct=no #Motorola manual says yes, but my tests say they lie
;;
esac
;;
sysv4.3*)
;;
sysv4*MP*)
if test -d /usr/nec; then
ld_shlibs=yes
fi
;;
sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
;;
sysv5* | sco3.2v5* | sco5v6*)
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
hardcode_libdir_separator=':'
;;
uts4*)
hardcode_libdir_flag_spec='-L$libdir'
;;
*)
ld_shlibs=no
;;
esac
fi
# Check dynamic linker characteristics
# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
# Unlike libtool.m4, here we don't care about _all_ names of the library, but
# only about the one the linker finds when passed -lNAME. This is the last
# element of library_names_spec in libtool.m4, or possibly two of them if the
# linker has special search rules.
library_names_spec= # the last element of library_names_spec in libtool.m4
libname_spec='lib$name'
case "$host_os" in
aix3*)
library_names_spec='$libname.a'
;;
aix4* | aix5*)
library_names_spec='$libname$shrext'
;;
amigaos*)
library_names_spec='$libname.a'
;;
beos*)
library_names_spec='$libname$shrext'
;;
bsdi[45]*)
library_names_spec='$libname$shrext'
;;
cygwin* | mingw* | pw32*)
shrext=.dll
library_names_spec='$libname.dll.a $libname.lib'
;;
darwin* | rhapsody*)
shrext=.dylib
library_names_spec='$libname$shrext'
;;
dgux*)
library_names_spec='$libname$shrext'
;;
freebsd1*)
;;
freebsd* | dragonfly*)
case "$host_os" in
freebsd[123]*)
library_names_spec='$libname$shrext$versuffix' ;;
*)
library_names_spec='$libname$shrext' ;;
esac
;;
gnu*)
library_names_spec='$libname$shrext'
;;
hpux9* | hpux10* | hpux11*)
case $host_cpu in
ia64*)
shrext=.so
;;
hppa*64*)
shrext=.sl
;;
*)
shrext=.sl
;;
esac
library_names_spec='$libname$shrext'
;;
interix[3-9]*)
library_names_spec='$libname$shrext'
;;
irix5* | irix6* | nonstopux*)
library_names_spec='$libname$shrext'
case "$host_os" in
irix5* | nonstopux*)
libsuff= shlibsuff=
;;
*)
case $LD in
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
*) libsuff= shlibsuff= ;;
esac
;;
esac
;;
linux*oldld* | linux*aout* | linux*coff*)
;;
linux* | k*bsd*-gnu)
library_names_spec='$libname$shrext'
;;
knetbsd*-gnu)
library_names_spec='$libname$shrext'
;;
netbsd*)
library_names_spec='$libname$shrext'
;;
newsos6)
library_names_spec='$libname$shrext'
;;
nto-qnx*)
library_names_spec='$libname$shrext'
;;
openbsd*)
library_names_spec='$libname$shrext$versuffix'
;;
os2*)
libname_spec='$name'
shrext=.dll
library_names_spec='$libname.a'
;;
osf3* | osf4* | osf5*)
library_names_spec='$libname$shrext'
;;
rdos*)
;;
solaris*)
library_names_spec='$libname$shrext'
;;
sunos4*)
library_names_spec='$libname$shrext$versuffix'
;;
sysv4 | sysv4.3*)
library_names_spec='$libname$shrext'
;;
sysv4*MP*)
library_names_spec='$libname$shrext'
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
library_names_spec='$libname$shrext'
;;
uts4*)
library_names_spec='$libname$shrext'
;;
esac
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
# How to pass a linker flag through the compiler.
wl="$escaped_wl"
# Static library suffix (normally "a").
libext="$libext"
# Shared library suffix (normally "so").
shlibext="$shlibext"
# Format of library name prefix.
libname_spec="$escaped_libname_spec"
# Library names that the linker finds when passed -lNAME.
library_names_spec="$escaped_library_names_spec"
# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist.
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
# Whether we need a single -rpath flag with a separated argument.
hardcode_libdir_separator="$hardcode_libdir_separator"
# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
# resulting binary.
hardcode_direct="$hardcode_direct"
# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
# resulting binary.
hardcode_minus_L="$hardcode_minus_L"
EOF

1575
admin/config.sub vendored 100644

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,45 @@
# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
# And if so, warn when they don't match
if test "$kde_libs_prefix" != "$given_prefix"; then
# And if kde doesn't know about the prefix yet
echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
if test $? -ne 0; then
echo ""
echo "Warning: you chose to install this package in $given_prefix,"
echo "but KDE was found in $kde_libs_prefix."
echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
echo "Then restart KDE."
echo ""
fi
fi
fi
if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then
echo ""
echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility"
echo "was not included. Therefore, GCC symbol visibility support remains disabled."
echo ""
echo "For better performance, consider including the Qt visibility supporting patch"
echo "located at:"
echo ""
echo "http://bugs.kde.org/show_bug.cgi?id=109386"
echo ""
echo "and recompile all of Qt and KDE. Note, this is entirely optional and"
echo "everything will continue to work just fine without it."
echo ""
fi
if test "$all_tests" = "bad"; then
if test ! "$cache_file" = "/dev/null"; then
echo ""
echo "Please remove the file $cache_file after changing your setup"
echo "so that configure will find the changes next time."
echo ""
fi
else
echo ""
echo "Good - your configure finished. Start make now"
echo ""
fi

View File

@ -0,0 +1,57 @@
dnl This file is part of the KDE libraries/packages
dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
dnl This file is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Library General Public
dnl License as published by the Free Software Foundation; either
dnl version 2 of the License, or (at your option) any later version.
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Library General Public License for more details.
dnl You should have received a copy of the GNU Library General Public License
dnl along with this library; see the file COPYING.LIB. If not, write to
dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
dnl Boston, MA 02110-1301, USA.
# Original Author was Kalle@kde.org
# I lifted it in some mater. (Stephan Kulow)
# I used much code from Janos Farkas
dnl Process this file with autoconf to produce a configure script.
AC_INIT(acinclude.m4) dnl a source file from your sub dir
dnl This is so we can use kde-common
AC_CONFIG_AUX_DIR(admin)
dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
unset CDPATH
dnl Checking host/target/build systems, for make, install etc.
AC_CANONICAL_SYSTEM
dnl Perform program name transformation
AC_ARG_PROGRAM
dnl Automake doc recommends to do this only here. (Janos)
AM_INIT_AUTOMAKE(@MODULENAME@, @VERSION@) dnl searches for some needed programs
KDE_SET_PREFIX
dnl generate the config header
AM_CONFIG_HEADER(config.h) dnl at the distribution this done
dnl Checks for programs.
AC_CHECK_COMPILERS
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
KDE_PROG_LIBTOOL
dnl for NLS support. Call them in this order!
dnl WITH_NLS is for the po files
AM_KDE_WITH_NLS
dnl KDE_USE_QT
AC_PATH_KDE

661
admin/cvs.sh 100644
View File

@ -0,0 +1,661 @@
#! /bin/sh
#
# cvs.sh
#
# This file contains support code from Makefile.common
# It defines a shell function for each known target
# and then does a case to call the correct function.
unset MAKEFLAGS
call_and_fix_autoconf()
{
$AUTOCONF || exit 1
if test -r configure.in.in ; then
perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\
\\n perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\
\\\\\\n || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\
\\n rm -f \\\$CONFIG_STATUS.bak\\nfi\
\\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure
fi
}
strip_makefile()
{
if test ! -f $makefile_wo; then
perl -e '$in=0; while ( <> ) { $in = 1 if ($_ =~ m/^if / ); print $_ unless ($in || $_ =~ m/^include /); $in = 0 if ($_ =~ m/^endif/); }' < $makefile_am > $makefile_wo
fi
}
check_autotool_versions()
{
required_autoconf_version="2.53 or newer"
AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1`
case $AUTOCONF_VERSION in
Autoconf*2.5* | autoconf*2.5* | autoconf*2.6* ) : ;;
"" )
echo "*** AUTOCONF NOT FOUND!."
echo "*** KDE requires autoconf $required_autoconf_version"
exit 1
;;
* )
echo "*** YOU'RE USING $AUTOCONF_VERSION."
echo "*** KDE requires autoconf $required_autoconf_version"
exit 1
;;
esac
AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1`
case $AUTOHEADER_VERSION in
Autoconf*2.5* | autoheader*2.5* | autoheader*2.6* ) : ;;
"" )
echo "*** AUTOHEADER NOT FOUND!."
echo "*** KDE requires autoheader $required_autoconf_version"
exit 1
;;
* )
echo "*** YOU'RE USING $AUTOHEADER_VERSION."
echo "*** KDE requires autoheader $required_autoconf_version"
exit 1
;;
esac
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
required_automake_version="1.6.1 or newer"
case $AUTOMAKE_STRING in
automake*1.5d* | automake*1.5* | automake*1.5-* )
echo "*** YOU'RE USING $AUTOMAKE_STRING."
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9* | automake*1.10*)
echo "*** $AUTOMAKE_STRING found."
UNSERMAKE=no
;;
"" )
echo "*** AUTOMAKE NOT FOUND!."
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
*unsermake* ) :
echo "*** YOU'RE USING UNSERMAKE."
echo "*** GOOD LUCK!! :)"
UNSERMAKE=unsermake
;;
* )
echo "*** YOU'RE USING $AUTOMAKE_STRING."
echo "*** KDE requires automake $required_automake_version"
exit 1
;;
esac
unset required_automake_version
}
cvs()
{
check_autotool_versions
acinclude_m4
### Make new subdirs and configure.in.
### The make calls could be optimized away here,
### with a little thought.
if test -r configure.in.in; then
rm -f configure.in
echo "*** Creating list of subdirectories"
create_subdirs
if test -r Makefile.am.in; then
echo "*** Creating Makefile.am"
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
else
Makefile_am
fi
fi
configure_files
echo "*** Creating configure.in"
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
else
configure_in
fi
fi
echo "*** Creating aclocal.m4"
$ACLOCAL $ACLOCALFLAGS || exit 1
echo "*** Creating configure"
call_and_fix_autoconf
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
echo "*** Creating config.h template"
$AUTOHEADER || exit 1
touch config.h.in
fi
echo "*** Creating Makefile templates"
$AUTOMAKE || exit 1
if test "$UNSERMAKE" = no; then
echo "*** Postprocessing Makefile templates"
perl -w admin/am_edit || exit 1
fi
if egrep "^cvs-local:" $makefile_am >/dev/null; then \
strip_makefile
$MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1
fi
echo "*** Creating date/time stamp"
touch stamp-h.in
echo "*** Finished"
echo " Don't forget to run ./configure"
echo " If you haven't done so in a while, run ./configure --help"
}
dist()
{
check_autotool_versions
###
### First build all of the files necessary to do just "make"
###
acinclude_m4
if test -r configure.in.in; then
rm -f configure.in
create_subdirs
if test -r Makefile.am.in; then
if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
else
Makefile_am
fi
fi
configure_files
if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
else
configure_in
fi
fi
$ACLOCAL $ACLOCALFLAGS
if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
echo "*** Creating config.h template"
$AUTOHEADER || exit 1
touch config.h.in
fi
$AUTOMAKE --foreign || exit 1
if test "$UNSERMAKE" = no; then
echo "*** Postprocessing Makefile templates"
perl -w admin/am_edit || exit 1
fi
call_and_fix_autoconf
touch stamp-h.in
if grep "^cvs-local:" $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo cvs-local top_srcdir=.
fi
###
### Then make messages
###
if test -d po; then
LIST=`find ./po -name "*.po"`
for i in $LIST; do
file2=`echo $i | sed -e "s#\.po#\.gmo#"`
msgfmt -o $file2 $i || touch $file2
done
fi
if grep "^cvs-dist-local:" $makefile_am >/dev/null; then
strip_makefile
$MAKE -f $makefile_wo cvs-dist-local top_srcdir=.
fi
}
subdir_dist()
{
$ACLOCAL $ACLOCALFLAGS
$AUTOHEADER
touch config.h.in
$AUTOMAKE
AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
case $AUTOMAKE_STRING in
*unsermake* ) :
;;
*)
perl -w ../admin/am_edit --path=../admin
esac
call_and_fix_autoconf
touch stamp-h.in
}
configure_in()
{
rm -f configure.in configure.in.new
kde_use_qt_param=
test -f configure.files || { echo "need configure.files for configure.in"; exit 1; }
list=`fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"`
: > configure.in.new
for file in $list; do
echo "dnl =======================================================" >> configure.in.new
echo "dnl FILE: $file" >> configure.in.new
echo "dnl =======================================================" >> configure.in.new
echo "" >> configure.in.new
cat $file >> configure.in.new
done
echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new
if test -f Makefile.am.in; then
subdirs=`cat subdirs`
for dir in $subdirs; do
vdir=`echo $dir | sed -e 's,[-+.@],_,g'`
echo "AM_CONDITIONAL($vdir""_SUBDIR_included, test \"x\$$vdir""_SUBDIR_included\" = xyes)" >> configure.in.new
if test -f "$dir/configure.in"; then
echo "if test \"x\$$vdir""_SUBDIR_included\" = xyes; then " >> configure.in.new
echo " AC_CONFIG_SUBDIRS($dir)" >> configure.in.new
echo "fi" >> configure.in.new
fi
done
fi
echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new
if test -f inst-apps; then
topleveldirs=`cat inst-apps`
else
topleveldirs=
for dir in `ls -1d * | sort`; do
if test "$dir" != "debian" && test -d $dir; then
topleveldirs="$topleveldirs $dir"
fi
done
fi
for topleveldir in $topleveldirs; do
if test -f $topleveldir/configure.in; then
continue
fi
if test -f $topleveldir/Makefile.am; then :; else
continue
fi
mfs=`find $topleveldir -follow -name Makefile.am -print | fgrep -v "/." | \
sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'`
for i in $mfs; do
echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new
done
done
files=`cat configure.files`
list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
for file in $list; do
echo "AC_CONFIG_FILES([ $file ])" >> configure.in.new
done
midfiles=`cat configure.files | fgrep "configure.in.mid"`
test -n "$midfiles" && cat $midfiles >> configure.in.new
echo "AC_OUTPUT" >> configure.in.new
modulename=
if test -f configure.in.in; then
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then
kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
fi
if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then
line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
if test -n "$line"; then
modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
fi
sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
configure.in.new > configure.in && mv configure.in configure.in.new
fi
fi
if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then
VERSION="\"3.5.10\""
fi
if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then
modulename=`pwd`;
modulename=`basename $modulename`
esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"`
fi
if test -n "$kde_use_qt_param"; then
sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
configure.in.new > configure.in && mv configure.in configure.in.new
fi
sed -e "s#@MODULENAME@#$modulename#" configure.in.new |
sed -e "s#@VERSION@#$VERSION#" > configure.in
botfiles=`cat configure.files | egrep "configure.in.bot"`
test -n "$botfiles" && cat $botfiles >> configure.in
cat $admindir/configure.in.bot.end >> configure.in
rm -f configure.in.new
}
configure_files()
{
echo "*** Creating configure.files"
admindir=NO
for i in . .. ../.. ../../..; do
if test -x $i/admin; then admindir=$i/admin; break; fi
done
rm -f configure.files
touch configure.files
if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then
echo $admindir/configure.in.min >> configure.files
fi
test -f configure.in.in && echo configure.in.in >> configure.files
# we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs
if test -f inst-apps; then
inst=`cat inst-apps`
list=""
for i in $inst; do
list="$list `find $i/ -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`"
done
else
list=`find . -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
fi
for i in $list; do if test -f $i && test `dirname $i` != "." ; then
echo $i >> configure.files
fi; done
test -f configure.in.mid && echo configure.in.mid >> configure.files
test -f configure.in.bot && echo configure.in.bot >> configure.files
if test ! -s configure.files; then
echo "There are no files to build a configure. Please check your checkout."
exit 1
fi
}
create_subdirs()
{
if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then
# as many modules contain rules to create subdirs without any
# dependencies make won't create it unless there is no file.
# so we check if that's a dummy rule or one that works
rm -f subdirs.cvs.sh.$$
if test -f subdirs; then
mv subdirs subdirs.cvs.sh.$$
fi
strip_makefile
$MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1
if test -f subdirs.cvs.sh.$$; then
if test -s subdirs; then
rm subdirs.cvs.sh.$$
else
mv subdirs.cvs.sh.$$ subdirs
fi
fi
else
subdirs
fi
}
subdirs()
{
dirs=
idirs=
if test -f inst-apps; then
idirs=`cat inst-apps`
else
idirs=`ls -1 | sort`
fi
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
for i in $idirs; do
if test -f $i/Makefile.am; then
case " $compilefirst $compilelast " in
*" $i "*) ;;
*) dirs="$dirs $i"
esac
fi
done
: > ./_SUBDIRS
for d in $compilefirst; do
echo $d >> ./_SUBDIRS
done
(for d in $dirs; do
list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
for s in $list; do
echo $s $d
done
list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
for s in $list; do
echo $d $s
done
echo $d $d
done ) | tsort >> ./_SUBDIRS
for d in $compilelast; do
echo $d >> ./_SUBDIRS
done
if test -r subdirs && cmp -s subdirs _SUBDIRS; then
rm -f _SUBDIRS
fi
test -r _SUBDIRS && mv _SUBDIRS subdirs || true
}
Makefile_am()
{
if test -f Makefile.am.in; then
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
idirs=
dirs=
if test -f inst-apps; then
idirs=`cat inst-apps`
else
idirs=`cat subdirs`
fi
for i in $idirs; do
case " $compilefirst $compilelast " in
*" $i "*) ;;
*) dirs="$dirs $i"
esac
done
adds=`fgrep '$(top_srcdir)/acinclude.m4:' Makefile.am.in | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir)/,,g'`
if echo "$adds" | fgrep "*" >/dev/null ; then
adds=`ls -d -1 $adds 2>/dev/null`
fgrep -v '$(top_srcdir)/acinclude.m4:' Makefile.am.in > Makefile.am.in.adds
str='$(top_srcdir)/acinclude.m4:'
for add in $adds; do
str="$str \$(top_srcdir)/$add"
done
echo $str >> Makefile.am.in.adds
else
cat Makefile.am.in > Makefile.am.in.adds
fi
cat Makefile.am.in.adds | \
sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \
sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am
echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
rm Makefile.am.in.adds
fi
}
acinclude_m4()
{
echo "*** Creating acinclude.m4"
adds=
if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then
strip_makefile
rm -f acinclude.m4
adds=`grep '\$(top_srcdir)/acinclude.m4:' $makefile_wo | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir),.,g'`
if echo $adds | fgrep "*" >/dev/null ; then
adds=`ls -d -1 $adds 2>/dev/null`
else
$MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 || exit 1
fi
else
rm -f acinclude.m4
fi
# if it wasn't created up to now, then we do it better
if test ! -f acinclude.m4; then
cat admin/acinclude.m4.in $adds > acinclude.m4
fi
}
package_merge()
{
catalogs=$POFILES
for cat in $catalogs; do
msgmerge -o $cat.new $cat $PACKAGE.pot
if test -s $cat.new; then
grep -v "\"POT-Creation" $cat.new > $cat.new.2
grep -v "\"POT-Creation" $cat >> $cat.new.1
if diff $cat.new.1 $cat.new.2; then
rm $cat.new
else
mv $cat.new $cat
fi
rm -f $cat.new.1 $cat.new.2
fi
done
}
extract_messages()
{
podir=${podir:-$PWD/po}
files=`find . -name Makefile.am | xargs egrep -l '^messages:' `
dirs=`for i in $files; do echo \`dirname $i\`; done`
tmpname="$PWD/messages.log"
if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
export EXTRACTRC PREPARETIPS
for subdir in $dirs; do
test -z "$VERBOSE" || echo "Making messages in $subdir"
(cd $subdir
if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
$EXTRACTRC *.rc *.ui *.kcfg > rc.cpp
else
candidates=`ls -1 *.rc *.ui *.kcfg 2>/dev/null`
if test -n "$candidates"; then
echo "$subdir has *.rc, *.ui or *.kcfg files, but not correct messages line"
fi
fi
if find . -name \*.c\* -o -name \*.h\* | fgrep -v ".svn" | xargs fgrep -s -q KAboutData ; then
echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
else echo " " > _translatorinfo.cpp
fi
perl -e '$mes=0; while (<STDIN>) { next if (/^(if\s|else\s|endif)/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile
kdepotpath=${includedir:-`kde-config --expandvars --install include`}/kde.pot
if ! test -f $kdepotpath; then
kdepotpath=`kde-config --expandvars --prefix`/include/kde.pot
fi
$MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" srcdir=. \
XGETTEXT="${XGETTEXT:-xgettext} --foreign-user -C -ci18n -ki18n -ktr2i18n -kI18N_NOOP -kI18N_NOOP2 -kaliasLocale -x $kdepotpath" messages
exit_code=$?
if test "$exit_code" != 0; then
echo "make exit code: $exit_code"
fi
) 2>&1 | grep -v '^make\[1\]' > $tmpname
test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
rm -f $subdir/_translatorinfo.cpp
rm -f $subdir/_transMakefile
done
rm -f $tmpname
}
package_messages()
{
rm -rf po.backup
mkdir po.backup
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
cat po/$i > po.backup/backup_$i
touch -r po/$i po.backup/backup_$i
rm po/$i
done
extract_messages
for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
test -f po/$i || echo "disappeared: $i"
done
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po/$i > po/$i.new && mv po/$i.new po/$i
#msgmerge -q -o po/$i po/$i po/$i
egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
if test -f po.backup/$i && ! cmp -s temp.pot po.backup/$i; then
echo "will update $i"
else
if test -f po.backup/backup_$i; then
test -z "$VERBOSE" || echo "I'm restoring $i"
mv po.backup/backup_$i po/$i
rm po.backup/$i
else
echo "will add $i"
fi
fi
done
rm -f temp.pot
rm -rf po.backup
}
# Make sure that sorting is always done the same way
LC_ALL=C
export LC_ALL
unset LANG || :
unset LC_CTYPE || :
unset LANGUAGE || :
unset CDPATH || :
admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
test "x$admindir" = "x$0" && admindir=.
test "x$MAKE" = x && MAKE=make
makefile_am=Makefile.am
makefile_wo=Makefile.am.wo
if test -f Makefile.am.in; then
makefile_am=Makefile.am.in
makefile_wo=Makefile.am.in.wo
rm -f $makefile_wo
fi
# Call script to find autoconf and friends. Uses eval since the script outputs
# sh-compatible code.
eval `$admindir/detect-autoconf.pl`
###
### Main
###
arg=`echo $1 | tr .- __`
case $arg in
cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
cvs_clean | package_merge | package_messages | Makefile_am | acinclude_m4 | extract_messages ) $arg ;;
configure ) call_and_fix_autoconf ;;
* ) echo "Usage: cvs.sh <target>"
echo "Target can be one of:"
echo " cvs svn dist"
echo " configure.in configure.files"
echo " package-merge package-messages"
echo ""
echo "Usage: anything but $1"
exit 1 ;;
esac
if test -f $makefile_wo; then
rm $makefile_wo
fi
exit 0

43
admin/debianrules 100755
View File

@ -0,0 +1,43 @@
#!/usr/bin/perl -w
use Shell qw(mv cp mkdir rm) ;
use File::Find;
use Cwd;
$origPwd = `pwd`;
chomp $origPwd;
$kde_prefix = "/usr";
$sysconfdir = "/etc";
$kde_includedir = "$kde_prefix/include/kde";
$infodir = "$kde_prefix/share/info";
$mandir = "$kde_prefix/share/man";
$qtdir = "/usr/share/qt3";
$kde_cgidir = "$kde_prefix/lib/cgi-bin";
$kde_confdir = "$sysconfdir/kde3";
$kde_htmldir = "$kde_prefix/share/doc/kde/HTML";
if (defined $ENV{DEB_BUILD_OPTIONS} &&
$ENV{DEB_BUILD_OPTIONS} =~ /\bnostrip\b/) {
$enable_debug="--enable-debug=full";
} else {
$enable_debug="--disable-debug";
}
if (@ARGV && $ARGV[0] eq 'echodirs') {
print STDOUT "export kde_prefix=$kde_prefix\n";
print STDOUT "export sysconfdir=$sysconfdir\n";
print STDOUT "export kde_includedir=$kde_includedir\n";
print STDOUT "export infodir=$infodir\n";
print STDOUT "export mandir=$mandir\n";
print STDOUT "export qtdir=$qtdir\n";
print STDOUT "export kde_cgidir=$kde_cgidir\n";
print STDOUT "export kde_confdir=$kde_confdir\n";
print STDOUT "export kde_htmldir=$kde_htmldir\n";
print STDOUT "configkde=$enable_debug --disable-rpath --prefix=\$(kde_prefix) --sysconfdir=\$(sysconfdir) --includedir=\$(kde_includedir) --infodir=\$(infodir) --mandir=\$(mandir) --with-qt-dir=\$(qtdir)\n";
exit
}

530
admin/depcomp 100755
View File

@ -0,0 +1,530 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2005-07-09.11
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by `PROGRAMS ARGS'.
object Object file output by `PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputing dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> $depfile
echo >> $depfile
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> $depfile
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
stat=$?
if test -f "$tmpdepfile"; then :
else
stripped=`echo "$stripped" | sed 's,^.*/,,'`
tmpdepfile="$stripped.u"
fi
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then
outname="$stripped.o"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a
# static library. This mecanism is used in libtool 1.4 series to
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# generates 2 separate objects for the 2 libraries. These two
# compilations output dependencies in in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
tmpdepfile2=$dir$base.o.d # libtool 1.5
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.o.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for `:'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
"$@" $dashmflag |
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no
for arg in "$@"; do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix="`echo $object | sed 's/^.*\././'`"
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E |
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
"$@" || exit $?
IFS=" "
for arg
do
case "$arg" in
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

19
admin/deps.am 100644
View File

@ -0,0 +1,19 @@
$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in $(top_srcdir)/admin/cvs.sh $(top_srcdir)/admin/pkg.m4.in
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh acinclude_m4
$(top_srcdir)/configure.in: $(top_srcdir)/subdirs $(top_srcdir)/configure.files $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure_in
$(top_srcdir)/configure.files: $(top_srcdir)/subdirs $(CONF_FILES)
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure.files $(top_srcdir)/admin/cvs.sh
$(top_srcdir)/Makefile.am: $(top_srcdir)/Makefile.am.in $(top_srcdir)/subdirs $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh Makefile_am
$(top_srcdir)/subdirs: $(top_srcdir)/Makefile.am.in $(top_srcdir)/admin/cvs.sh
@cd $(top_srcdir) && $(SHELL) admin/cvs.sh subdirs
# defining default rules for files that may not be present
$(top_srcdir)/Makefile.am.in:
$(CONF_FILES):

883
admin/doxygen.sh 100644
View File

@ -0,0 +1,883 @@
#! /bin/sh
#
# doxygen.sh Copyright (C) 2005 by Adriaan de Groot
# Based on some code from Doxyfile.am, among other things.
# License: GPL version 2.
# See file COPYING in kdelibs for details.
echo "*** doxygen.sh"
# Recurse handling is a little complicated, since normally
# subdir (given on the command-line) processing doesn't recurse
# but you can force it to do so.
recurse=1
recurse_given=NO
use_modulename=1
cleanup=YES
while test -n "$1" ; do
case "x$1" in
"x--no-cleanup" )
cleanup=NO
;;
"x--no-recurse" )
recurse=0
recurse_given=YES
;;
"x--recurse" )
recurse=1
recurse_given=YES
;;
"x--no-modulename" )
use_modulename=0
;;
"x--modulename" )
use_modulename=1
;;
"x--help" )
echo "doxygen.sh usage:"
echo "doxygen.sh [--no-recurse] [--no-modulename] <srcdir> [<subdir>]"
exit 2
;;
x--doxdatadir=* )
DOXDATA=`echo $1 | sed -e 's+--doxdatadir=++'`
;;
x--installdir=*)
PREFIX=`echo $1 | sed -e 's+--installdir=++'`
;;
x--* )
echo "Unknown option: $1"
exit 1
;;
* )
top_srcdir="$1"
break
;;
esac
shift
done
### Sanity check the mandatory "top srcdir" argument.
if test -z "$top_srcdir" ; then
echo "Usage: doxygen.sh <top_srcdir>"
exit 1
fi
if test ! -d "$top_srcdir" ; then
echo "top_srcdir ($top_srcdir) is not a directory."
exit 1
fi
### Normalize top_srcdir so it is an absolute path.
if expr "x$top_srcdir" : "x/" > /dev/null ; then
# top_srcdir is absolute already
:
else
top_srcdir=`cd "$top_srcdir" 2> /dev/null && pwd`
if test ! -d "$top_srcdir" ; then
echo "top_srcdir ($top_srcdir) is not a directory."
exit 1
fi
fi
### Sanity check and guess QTDOCDIR.
if test -z "$QTDOCDIR" ; then
if test -z "$QTDIR" ; then
for i in /usr/X11R6/share/doc/qt/html
do
QTDOCDIR="$i"
test -d "$QTDOCDIR" && break
done
else
for i in share/doc/qt/html doc/html
do
QTDOCDIR="$QTDIR/$i"
test -d "$QTDOCDIR" && break
done
fi
fi
if test -z "$QTDOCDIR" || test ! -d "$QTDOCDIR" ; then
if test -z "$QTDOCDIR" ; then
echo "* QTDOCDIR could not be guessed."
else
echo "* QTDOCDIR does not name a directory."
fi
if test -z "$QTDOCTAG" ; then
echo "* QTDOCDIR set to \"\""
QTDOCDIR=""
else
echo "* But I'll use $QTDOCDIR anyway because of QTDOCTAG."
fi
fi
### Get the "top srcdir", also its name, and handle the case that subdir "."
### is given (which would be top_srcdir then, so it's equal to none-given
### but no recursion either).
###
# top_srcdir="$1" # Already set by options processing
module_name=`basename "$top_srcdir"`
subdir="$2"
if test "x." = "x$subdir" ; then
subdir=""
if test "x$recurse_given" = "xNO" ; then
recurse=0
fi
fi
if test "x" != "x$subdir" ; then
# If no recurse option given explicitly, default to
# no recurse when processing subdirs given on the command-line.
if test "x$recurse_given" = "xNO" ; then
recurse=0
fi
fi
if test -z "$DOXDATA" || test ! -d "$DOXDATA" ; then
if test -n "$DOXDATA" ; then
echo "* \$DOXDATA is '$DOXDATA' which does not name a directory"
fi
DOXDATA="$top_srcdir/doc/common"
fi
if test ! -d "$DOXDATA" ; then
echo "* \$DOXDATA does not name a directory ( or is unset ), tried \"$DOXDATA\""
exit 1
fi
if test -n "$PREFIX" && test ! -d "$PREFIX" ; then
echo "* \$PREFIX does not name a directory, tried \"$PREFIX\""
echo "* \$PREFIX is disabled."
PREFIX=""
fi
### We need some values from top-level files, which
### are not preserved between invocations of this
### script, so factor it out for easy use.
create_doxyfile_in()
{
eval `grep 'VERSION="' "$top_srcdir/admin/cvs.sh"`
echo "PROJECT_NUMBER = $VERSION" > Doxyfile.in
grep '^KDE_INIT_DOXYGEN' "$top_srcdir/configure.in.in" | \
sed -e 's+[^[]*\[\([^]]*\)+PROJECT_NAME = "\1"+' \
-e 's+].*++' >> Doxyfile.in
}
apidoxdir="$module_name"-apidocs
test "x$use_modulename" = "x0" && apidoxdir="apidocs"
### If we're making the top subdir, create the structure
### for the apidox and initialize it. Otherwise, just use the
### structure assumed to be there.
if test -z "$subdir" ; then
if test ! -d "$apidoxdir" ; then
mkdir "$apidoxdir" > /dev/null 2>&1
fi
cd "$apidoxdir" > /dev/null 2>&1 || {
echo "Cannot create and cd into $apidoxdir"
exit 1
}
test -f "Doxyfile.in" || create_doxyfile_in
# Copy in logos and the like
for i in "favicon.ico" "kde_gear_64.png"
do
cp "$DOXDATA/$i" . > /dev/null 2> /dev/null
done
for i in "$top_srcdir/doc/api/Dox-"*.png
do
T=`basename "$i" | sed -e 's+Dox-++'`
test -f "$i" && cp "$i" "./$T" > /dev/null 2> /dev/null
done
top_builddir="."
srcdir="$1"
subdir="."
else
cd "$apidoxdir" > /dev/null 2>&1 || {
echo "Cannot cd into $apidoxdir -- maybe you need to"
echo "build the top-level dox first."
exit 1
}
if test "x1" = "x$recurse" ; then
# OK, so --recurse was requested
if test ! -f "subdirs.top" ; then
echo "* No subdirs.top available in the $apidoxdir."
echo "* The --recurse option will be ignored."
recurse=0
fi
fi
fi
### Read a single line (TODO: support \ continuations) from the Makefile.am.
### Used to extract variable assignments from it.
extract_line()
{
file="$2" ; test -z "$file" && file="$srcdir/Makefile.am"
pattern=`echo "$1" | tr + .`
grep "^$1" "$file" | \
sed -e "s+$pattern.*=\s*++"
}
### Handle the COMPILE_{FIRST,LAST,BEFORE,AFTER} part of Makefile.am
### in the toplevel. Copied from admin/cvs.sh. Licence presumed LGPL).
create_subdirs()
{
echo "* Sorting top-level subdirs"
dirs=
idirs=
if test -f "$top_srcdir/inst-apps"; then
idirs=`cat "$top_srcdir/"inst-apps`
else
idirs=`cd "$top_srcdir" && ls -1 | sort`
fi
compilefirst=""
compilelast=""
if test -f "$top_srcdir/"Makefile.am.in ; then
compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' "$top_srcdir/"Makefile.am.in | head -n 1`
compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' "$top_srcdir/"Makefile.am.in | head -n 1`
fi
for i in $idirs; do
if test -f "$top_srcdir/$i"/Makefile.am; then
case " $compilefirst $compilelast " in
*" $i "*) ;;
*) dirs="$dirs $i"
esac
fi
done
: > ./_SUBDIRS
for d in $compilefirst; do
echo $d >> ./_SUBDIRS
done
(for d in $dirs; do
list=""
if test -f "$top_srcdir/"Makefile.am.in ; then
list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" "$top_srcdir/"Makefile.am.in | head -n 1`
fi
for s in $list; do
echo $s $d
done
list=""
if test -f "$top_srcdir/"Makefile.am.in ; then
list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" "$top_srcdir/"Makefile.am.in | head -n 1`
fi
for s in $list; do
echo $d $s
done
echo $d $d
done ) | tsort >> ./_SUBDIRS
for d in $compilelast; do
echo $d >> ./_SUBDIRS
done
test -r _SUBDIRS && mv _SUBDIRS subdirs.top || true
}
### Add HTML header, footer, CSS tags to Doxyfile.
### Assumes $subdir is set. Argument is a string
### to stick in front of the file if needed.
apidox_htmlfiles()
{
dox_header="$top_srcdir/doc/api/$1header.html"
dox_footer="$top_srcdir/doc/api/$1footer.html"
dox_css="$top_srcdir/doc/api/doxygen.css"
test -f "$dox_header" || dox_header="$DOXDATA/$1header.html"
test -f "$dox_footer" || dox_footer="$DOXDATA/$1footer.html"
test -f "$dox_css" || dox_css="$DOXDATA/doxygen.css"
echo "HTML_HEADER = $dox_header" >> "$subdir/Doxyfile" ; \
echo "HTML_FOOTER = $dox_footer" >> "$subdir/Doxyfile" ; \
echo "HTML_STYLESHEET = $dox_css" >> "$subdir/Doxyfile"
}
apidox_specials()
{
line=`extract_line DOXYGEN_PROJECTNAME "$1"`
test -n "$line" && echo "PROJECT_NAME = \"$line\"" >> "$2"
}
apidox_local()
{
for i in "$top_srcdir/doc/api/Doxyfile.local"
do
if test -f "$i" ; then
cat "$i" >> "$subdir/Doxyfile"
break
fi
done
}
### Post-process HTML files by substituting in the menu files
#
# In non-top directories, both <!-- menu --> and <!-- gmenu -->
# are calculated and replaced. Top directories get an empty <!-- menu -->
# if any.
doxyndex()
{
# Special case top-level to have an empty MENU.
if test "x$subdir" = "x." ; then
MENU=""
htmldir="."
htmltop="$top_builddir" # Just ., presumably
echo "* Post-processing top-level files"
else
MENU="<ul>"
htmldir="$subdir/html"
htmltop="$top_builddir.." # top_builddir ends with /
echo "* Post-processing files in $htmldir"
# Build a little PHP file that maps class names to file
# names, for the quick-class-picker functionality.
# (The quick-class-picker is disabled due to styling
# problems in IE & FF).
(
echo "<?php \$map = array("; \
for htmlfile in `find $htmldir/ -type f -name "class[A-Z]*.html" | grep -v "\-members.html$"`; do
classname=`echo $htmlfile | sed -e "s,.*/class\\(.*\\).html,\1," -e "s,_1_1,::,g" -e "s,_01, ,g" -e "s,_4,>,g" -e "s+_00+,+g" -e "s+_3+<+g" | tr "[A-Z]" "[a-z]"`
echo " \"$classname\" => \"$htmlfile\","
done | sort ; \
echo ") ?>"
) > "$subdir/classmap.inc"
# This is a list of pairs, with / separators so we can use
# basename and dirname (a crude shell hack) to split them
# into parts. For each, if the file part exists (as a html
# file) tack it onto the MENU variable as a <li> with link.
for i in "Main Page/index" \
"Modules/modules" \
"Namespace List/namespaces" \
"Class Hierarchy/hierarchy" \
"Alphabetical List/classes" \
"Class List/annotated" \
"File List/files" \
"Directories/dirs" \
"Namespace Members/namespacemembers" \
"Class Members/functions" \
"Related Pages/pages"
do
NAME=`dirname "$i"`
FILE=`basename "$i"`
test -f "$htmldir/$FILE.html" && MENU="$MENU<li><a href=\"$FILE.html\">$NAME</a></li>"
done
MENU="$MENU</ul>"
fi
# Get the list of global Menu entries.
GMENU=`cat subdirs | tr -d '\n'`
PMENU=`grep '<!-- pmenu' "$htmldir/index.html" | sed -e 's+.*pmenu *++' -e 's+ *-->++' | awk '{ c=split($0,a,"/"); for (j=1; j<=c; j++) { printf " / <a href=\""; if (j==c) { printf("."); } for (k=j; k<c; k++) { printf "../"; } if (j<c) { printf("../html/index.html"); } printf "\">%s</a>\n" , a[j]; } }' | tr -d '\n'`
# Map the PHP file into HTML options so that
# it can be substituted in for the quick-class-picker.
CMENU=""
# For now, leave the CMENU disabled
CMENUBEGIN="<!--"
CMENUEND="-->"
if test "x$subdir" = "x." ; then
# Disable CMENU on toplevel anyway
CMENUBEGIN="<!--"
CMENUEND="-->"
else
test -f "$subdir/classmap.inc" && \
CMENU=`grep '=>' "$subdir/classmap.inc" | sed -e 's+"\([^"]*\)" => "'"$subdir/html/"'\([^"]*\)"+<option value="\2">\1<\/option>+' | tr -d '\n'`
if test -f "$subdir/classmap.inc" && grep "=>" "$subdir/classmap.inc" > /dev/null 2>&1 ; then
# Keep the menu, it's useful
:
else
CMENUBEGIN="<!--"
CMENUEND="-->"
fi
fi
# Now substitute in the MENU in every file. This depends
# on HTML_HEADER (ie. header.html) containing the
# <!-- menu --> comment.
for i in "$htmldir"/*.html
do
if test -f "$i" ; then
sed -e "s+<!-- menu -->+$MENU+" \
-e "s+<!-- gmenu -->+$GMENU+" \
-e "s+<!-- pmenu.*-->+$PMENU+" \
-e "s+<!-- cmenu.begin -->+$CMENUBEGIN+" \
-e "s+<!-- cmenu.end -->+$CMENUEND+" \
< "$i" | sed -e "s+@topdir@+$htmltop+g" > "$i.new" && mv "$i.new" "$i"
sed -e "s+<!-- cmenu -->+$CMENU+" < "$i" > "$i.new"
test -s "$i.new" && mv "$i.new" "$i"
fi
done
}
### Handle the Doxygen processing of a toplevel directory.
apidox_toplevel()
{
echo ""
echo "*** Creating API documentation main page for $module_name"
echo "*"
rm -f "Doxyfile"
for i in "$top_srcdir/doc/api/Doxyfile.global" \
"$top_srcdir/admin/Doxyfile.global" \
"$DOXDATA/Doxyfile.global"
do
if test -f "$i" ; then
cp "$i" Doxyfile
break
fi
done
if test ! -f "Doxyfile" ; then
echo "* Cannot create Doxyfile."
exit 1
fi
cat "$top_builddir/Doxyfile.in" >> Doxyfile
echo "INPUT = $top_srcdir" >> Doxyfile
echo "OUTPUT_DIRECTORY = $top_builddir" >> Doxyfile ; \
echo "FILE_PATTERNS = *.dox" >> Doxyfile ; \
echo "RECURSIVE = NO" >> Doxyfile ; \
echo "ALPHABETICAL_INDEX = NO" >> Doxyfile ; \
echo "HTML_OUTPUT = ." >> Doxyfile ; \
apidox_htmlfiles "main"
# KDevelop has a top-level Makefile.am with settings.
for i in "$top_srcdir/Makefile.am.in" "$top_srcdir/Makefile.am"
do
if test -f "$i" ; then
grep '^DOXYGEN_SET_' "$i" | \
sed -e 's+DOXYGEN_SET_++' -e "s+@topdir@+$top_srcdir+" >> Doxyfile
apidox_specials "$srcdir/Makefile.am" "$subdir/Doxyfile"
break
fi
done
apidox_local
doxygen Doxyfile
( cd "$top_srcdir" && grep -l '^include.*Doxyfile.am' `find . -name Makefile.am` ) | sed -e 's+/Makefile.am$++' -e 's+^\./++' | sort > subdirs.in
for i in `cat subdirs.in`
do
test "x." = "x$i" && continue;
dir=`dirname "$i"`
file=`basename "$i"`
if test "x." = "x$dir" ; then
dir=""
else
dir="$dir/"
fi
indent=`echo "$dir" | sed -e 's+[^/]*/+\&nbsp;\&nbsp;+g' | sed -e 's+&+\\\&+g'`
entryname=`extract_line DOXYGEN_SET_PROJECT_NAME "$top_srcdir/$dir/$file/Makefile.am"`
test -z "$entryname" && entryname="$file"
if grep DOXYGEN_EMPTY "$top_srcdir/$dir/$file/Makefile.am" > /dev/null 2>&1 ; then
echo "<li>$indent$file</li>"
else
echo "<li>$indent<a href=\"@topdir@/$dir$file/html/index.html\">$entryname</a></li>"
fi
done > subdirs
doxyndex
}
### Handle the Doxygen processing of a non-toplevel directory.
apidox_subdir()
{
echo ""
echo "*** Creating apidox in $subdir"
echo "*"
rm -f "$subdir/Doxyfile"
if test ! -d "$top_srcdir/$subdir" ; then
echo "* No source (sub)directory $subdir"
return
fi
for i in "$top_srcdir/doc/api/Doxyfile.global" \
"$top_srcdir/admin/Doxyfile.global" \
"$DOXDATA/Doxyfile.global"
do
if test -f "$i" ; then
cp "$i" "$subdir/Doxyfile"
break
fi
done
test -f "Doxyfile.in" || create_doxyfile_in
cat "Doxyfile.in" >> "$subdir/Doxyfile"
echo "PROJECT_NAME = \"$subdir\"" >> "$subdir/Doxyfile"
echo "INPUT = $srcdir" >> "$subdir/Doxyfile"
echo "OUTPUT_DIRECTORY = ." >> "$subdir/Doxyfile"
if grep -l "$subdir/" subdirs.in > /dev/null 2>&1 ; then
echo "RECURSIVE = NO" >> "$subdir/Doxyfile"
fi
echo "HTML_OUTPUT = $subdir/html" >> "$subdir/Doxyfile"
echo "GENERATE_TAGFILE = $subdir/$subdirname.tag" >> "$subdir/Doxyfile"
test -d "$top_srcdir/doc/api" && \
echo "IMAGE_PATH = $top_srcdir/doc/api" >> "$subdir/Doxyfile"
apidox_htmlfiles ""
# Makefile.ams may contain overrides to our settings,
# so copy them in.
grep '^DOXYGEN_SET_' "$srcdir/Makefile.am" | \
sed -e 's+DOXYGEN_SET_++' >> "$subdir/Doxyfile"
apidox_specials "$srcdir/Makefile.am" "$subdir/Doxyfile"
excludes=`extract_line DOXYGEN_EXCLUDE`
if test -n "$excludes"; then
patterns=""
dirs=""
for item in `echo "$excludes"`; do
if test -d "$top_srcdir/$subdir/$item"; then
dirs="$dirs $top_srcdir/$subdir/$item/"
else
patterns="$patterns $item"
fi
done
echo "EXCLUDE_PATTERNS += $patterns" >> "$subdir/Doxyfile"
echo "EXCLUDE += $dirs" >> "$subdir/Doxyfile"
fi
echo "TAGFILES = \\" >> "$subdir/Doxyfile"
## For now, don't support \ continued references lines
tags=`extract_line DOXYGEN_REFERENCES`
for i in $tags qt ; do
tagsubdir=`dirname $i` ; tag=`basename $i`
tagpath=""
not_found=""
if test "x$tagsubdir" = "x." ; then
tagsubdir=""
else
tagsubdir="$tagsubdir/"
fi
# Find location of tag file
if test -f "$tagsubdir$tag/$tag.tag" ; then
file="$tagsubdir$tag/$tag.tag"
loc="$tagsubdir$tag/html"
else
# This checks for dox built with_out_ --no-modulename
# in the same build dir as this dox run was started in.
file=`ls -1 ../*-apidocs/"$tagsubdir$tag/$tag.tag" 2> /dev/null`
if test -n "$file" ; then
loc=`echo "$file" | sed -e "s/$tag.tag\$/html/"`
else
# If the tag file doesn't exist yet, but should
# because we have the right dirs here, queue
# this directory for re-processing later.
if test -d "$top_srcdir/$tagsubdir$tag" ; then
echo "* Need to re-process $subdir for tag $i"
echo "$subdir" >> "subdirs.later"
else
# Re-check in $PREFIX if needed.
test -n "$PREFIX" && \
file=`cd "$PREFIX" && \
ls -1 *-apidocs/"$tagsubdir$tag/$tag.tag" 2> /dev/null`
# If something is found, patch it up. The location must be
# relative to the installed location of the dox and the
# file must be absolute.
if test -n "$file" ; then
loc=`echo "../$file" | sed -e "s/$tag.tag\$/html/"`
file="$PREFIX/$file"
echo "* Tags for $tagsubdir$tag will only work when installed."
not_found="YES"
fi
fi
fi
fi
if test "$tag" = "qt" ; then
if test -z "$QTDOCDIR" ; then
echo " $file" >> "$subdir/Doxyfile"
else
if test -z "$file" ; then
# Really no Qt tags
echo "" >> "$subdir/Doxyfile"
else
echo " $file=$QTDOCDIR" >> "$subdir/Doxyfile"
fi
fi
else
if test -n "$file" ; then
test -z "$not_found" && echo "* Found tag $file"
echo " $file=../$top_builddir$loc \\" >> "$subdir/Doxyfile"
fi
fi
done
apidox_local
if grep '^DOXYGEN_EMPTY' "$srcdir/Makefile.am" > /dev/null 2>&1 ; then
# This directory is empty, so don't process it, but
# *do* handle subdirs that might have dox.
:
else
# Regular processing
doxygen "$subdir/Doxyfile"
doxyndex
fi
}
### Run a given subdir by setting up global variables first.
do_subdir()
{
subdir=`echo "$1" | sed -e 's+/$++'`
srcdir="$top_srcdir/$subdir"
subdirname=`basename "$subdir"`
mkdir -p "$subdir" 2> /dev/null
if test ! -d "$subdir" ; then
echo "Can't create dox subdirectory $subdir"
return
fi
top_builddir=`echo "/$subdir" | sed -e 's+/[^/]*+../+g'`
apidox_subdir
}
### Create installdox-slow in the toplevel
create_installdox()
{
# Fix up the installdox script so it accepts empty args
#
# This code is copied from the installdox generated by Doxygen,
# copyright by Dimitri van Heesch and released under the GPL.
# This does a _slow_ update of the dox, because it loops
# over the given substitutions instead of assuming all the
# needed ones are given.
#
cat <<\EOF
#! /usr/bin/env perl
%subst = () ;
$quiet = 0;
if (open(F,"search.cfg"))
{
$_=<F> ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_;
$_=<F> ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_;
}
while ( @ARGV ) {
$_ = shift @ARGV;
if ( s/^-// ) {
if ( /^l(.*)/ ) {
$v = ($1 eq "") ? shift @ARGV : $1;
($v =~ /\/$/) || ($v .= "/");
$_ = $v;
if ( /(.+)\@(.+)/ ) {
$subst{$1} = $2;
} else {
print STDERR "Argument $_ is invalid for option -l\n";
&usage();
}
}
elsif ( /^q/ ) {
$quiet = 1;
}
elsif ( /^\?|^h/ ) {
&usage();
}
else {
print STDERR "Illegal option -$_\n";
&usage();
}
}
else {
push (@files, $_ );
}
}
if ( ! @files ) {
if (opendir(D,".")) {
foreach $file ( readdir(D) ) {
$match = ".html";
next if ( $file =~ /^\.\.?$/ );
($file =~ /$match/) && (push @files, $file);
($file =~ "tree.js") && (push @files, $file);
}
closedir(D);
}
}
if ( ! @files ) {
print STDERR "Warning: No input files given and none found!\n";
}
foreach $f (@files)
{
if ( ! $quiet ) {
print "Editing: $f...\n";
}
$oldf = $f;
$f .= ".bak";
unless (rename $oldf,$f) {
print STDERR "Error: cannot rename file $oldf\n";
exit 1;
}
if (open(F,"<$f")) {
unless (open(G,">$oldf")) {
print STDERR "Error: opening file $oldf for writing\n";
exit 1;
}
if ($oldf ne "tree.js") {
while (<F>) {
foreach $sub (keys %subst) {
s/doxygen\=\"$sub\:([^ \"\t\>\<]*)\" (href|src)=\"\1/doxygen\=\"$sub:$subst{$sub}\" \2=\"$subst{$sub}/g;
print G "$_";
}
}
}
else {
while (<F>) {
foreach $sub (keys %subst) {
s/\"$sub\:([^ \"\t\>\<]*)\", \"\1/\"$sub:$subst{$sub}\" ,\"$subst{$sub}/g;
print G "$_";
}
}
}
}
else {
print STDERR "Warning file $f does not exist\n";
}
unlink $f;
}
sub usage {
print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
print STDERR "Options:\n";
print STDERR " -l tagfile\@linkName tag file + URL or directory \n";
print STDERR " -q Quiet mode\n\n";
exit 1;
}
EOF
}
# Do only the subdirs that match the RE passed in as $1
do_subdirs_re()
{
RE=`echo "$1" | sed -e 's+/$++'`
# Here's a queue of dirs to re-process later when
# all the rest have been done already.
> subdirs.later
# subdirs.top lists _all_ subdirs of top in the order they
# should be handled; subdirs.in lists those dirs that contain
# dox. So the intersection of the two is the ordered list
# of top-level subdirs that contain dox.
#
# subdirs.top also doesn't contain ".", so that special
# case can be ignored in the loop.
(
for i in `grep "^$RE" subdirs.top`
do
if test "x$i" = "x." ; then
continue
fi
# Calculate intersection of this element and the
# set of dox dirs.
if grep "^$i\$" subdirs.in > /dev/null 2>&1 ; then
echo "$i"
mkdir -p "$i" 2> /dev/null
# Handle the subdirs of this one
for j in `grep "$i/" subdirs.in`
do
echo "$j"
mkdir -p "$j" 2> /dev/null
done
fi
done
# Now we still need to handle whatever is left
for i in `cat subdirs.in`
do
test -d "$i" || echo "$i"
mkdir -p "$i" 2> /dev/null
done
) > subdirs.sort
for i in `cat subdirs.sort`
do
do_subdir "$i"
done
if test -s "subdirs.later" ; then
sort subdirs.later | uniq > subdirs.sort
for i in `cat subdirs.sort`
do
: > subdirs.later
echo "*** Reprocessing $i"
do_subdir "$i"
test -s "subdirs.later" && echo "* Some tag files were still not found."
done
fi
}
if test "x." = "x$top_builddir" ; then
apidox_toplevel
create_subdirs
create_installdox > installdox-slow
if test "x$recurse" = "x1" ; then
if test "x$module_name" = "xkdelibs" ; then
if test -z "$QTDOCTAG" && test -d "$QTDOCDIR" && \
test ! -f "qt/qt.tag" ; then
# Special case: create a qt tag file.
echo "*** Creating a tag file for the Qt library:"
mkdir qt
doxytag -t qt/qt.tag "$QTDOCDIR" > /dev/null 2>&1
fi
fi
if test -n "$QTDOCTAG" && test -r "$QTDOCTAG" ; then
echo "*** Copying tag file for the Qt library:"
mkdir qt
cp "$QTDOCTAG" qt/qt.tag
fi
do_subdirs_re "."
fi
else
if test "x$recurse" = "x1" ; then
do_subdirs_re "$subdir"
else
do_subdir "$subdir"
fi
fi
# At the end of a run, clean up stuff.
if test "YES" = "$cleanup" ; then
rm -f subdirs.in subdirs.later subdirs.sort subdirs.top Doxyfile.in
rm -f `find . -name Doxyfile`
rm -f qt/qt.tag
rmdir qt > /dev/null 2>&1
fi
exit 0

401
admin/install-sh 100755
View File

@ -0,0 +1,401 @@
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2005-11-07.23
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
posix_glob=
posix_mkdir=
# Symbolic mode for testing mkdir with directories.
# It is the same as 755, but also tests that "u+" works.
test_mode=u=rwx,g=rx,o=rx,u+wx
# Desired mode of installed file.
mode=0755
# Desired mode of newly created intermediate directories.
# It is empty if not known yet.
intermediate_mode=
chmodcmd=$chmodprog
chowncmd=
chgrpcmd=
stripcmd=
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=
dst=
dir_arg=
dstarg=
no_target_directory=
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
-c (ignored)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
--help display this help and exit.
--version display version info and exit.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
"
while test -n "$1"; do
case $1 in
-c) shift
continue;;
-d) dir_arg=true
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t) dstarg=$2
shift
shift
continue;;
-T) no_target_directory=true
shift
continue;;
--version) echo "$0 $scriptversion"; exit $?;;
*) # When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
test -n "$dir_arg$dstarg" && break
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dstarg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dstarg"
shift # fnord
fi
shift # arg
dstarg=$arg
done
break;;
esac
done
if test -z "$1"; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
test -n "$dir_arg" || trap '(exit $?); exit' 1 2 13 15
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src ;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dstarg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dstarg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst ;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dstarg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
# Prefer dirname, but fall back on a substitute if dirname fails.
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| \
. : '\(.\)' 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
/^X\(\/\/\)$/{ s//\1/; q; }
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'
`
test -d "$dstdir"
dstdir_status=$?
fi
fi
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
posix_mkdir=false
if $mkdirprog -m $test_mode -p -- / >/dev/null 2>&1; then
posix_mkdir=true
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./-m "$test_mode" ./-p ./-- 2>/dev/null
fi ;;
esac
if
$posix_mkdir && {
# With -d, create the new directory with the user-specified mode.
# Otherwise, create it using the same intermediate mode that
# mkdir -p would use when creating intermediate directories.
# POSIX says that this mode is "$(umask -S),u+wx", so use that
# if umask -S works.
if test -n "$dir_arg"; then
mkdir_mode=$mode
else
case $intermediate_mode in
'')
if umask_S=`(umask -S) 2>/dev/null`; then
intermediate_mode=$umask_S,u+wx
else
intermediate_mode=$test_mode
fi ;;
esac
mkdir_mode=$intermediate_mode
fi
$mkdirprog -m "$mkdir_mode" -p -- "$dstdir"
}
then :
else
# mkdir does not conform to POSIX, or it failed possibly due to
# a race condition. Create the directory the slow way, step by
# step, checking for races as we go.
case $dstdir in
/*) pathcomp=/ ;;
-*) pathcomp=./ ;;
*) pathcomp= ;;
esac
case $posix_glob in
'')
if (set -f) 2>/dev/null; then
posix_glob=true
else
posix_glob=false
fi ;;
esac
oIFS=$IFS
IFS=/
$posix_glob && set -f
set fnord $dstdir
shift
$posix_glob && set +f
IFS=$oIFS
for d
do
test "x$d" = x && continue
pathcomp=$pathcomp$d
if test ! -d "$pathcomp"; then
$mkdirprog "$pathcomp"
# Don't fail if two instances are running concurrently.
test -d "$pathcomp" || exit 1
fi
pathcomp=$pathcomp/
done
obsolete_mkdir_used=true
fi
fi
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dst"; } || exit 1
else
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
$doit $cpprog "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dsttmp"; } &&
# Now rename the file to the real destination.
{ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
|| {
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
if test -f "$dst"; then
$doit $rmcmd -f "$dst" 2>/dev/null \
|| { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
&& { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
|| {
echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
} || exit 1
trap '' 0
fi
done
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

5891
admin/libtool.m4.in vendored 100644

File diff suppressed because it is too large Load Diff

353
admin/missing 100755
View File

@ -0,0 +1,353 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
scriptversion=2004-09-07.08
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004
# Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
msg="missing on your system"
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
# Exit code 63 means version mismatch. This often happens
# when the user try to use an ancient version of a tool on
# a file that requires a minimum version. In this case we
# we should proceed has if the program had been absent, or
# if --run hadn't been passed.
if test $? = 63; then
run=:
msg="probably too old"
fi
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
Send bug reports to <bug-automake@gnu.org>."
exit 0
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit 0
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
esac
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
# the program).
case "$1" in
lex|yacc)
# Not GNU programs, they don't have --version.
;;
tar)
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
exit 1
fi
;;
*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
# Could not run --version or --help. This is probably someone
# running `$TOOL --version' or `$TOOL --help' to check whether
# $TOOL exists and not knowing $TOOL uses missing.
exit 1
fi
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case "$1" in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te)
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
proper tools for further handling them.
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi
if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit 1
fi
;;
makeinfo)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
fi
touch $file
;;
tar)
shift
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and is $msg.
You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

158
admin/mkinstalldirs 100755
View File

@ -0,0 +1,158 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
scriptversion=2005-06-29.22
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain.
#
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
errstatus=0
dirmode=
usage="\
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
Create each directory DIR (with mode MODE, if specified), including all
leading file name components.
Report bugs to <bug-automake@gnu.org>."
# process command line arguments
while test $# -gt 0 ; do
case $1 in
-h | --help | --h*) # -h for help
echo "$usage"
exit $?
;;
-m) # -m PERM arg
shift
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
dirmode=$1
shift
;;
--version)
echo "$0 $scriptversion"
exit $?
;;
--) # stop option processing
shift
break
;;
-*) # unknown option
echo "$usage" 1>&2
exit 1
;;
*) # first non-opt arg
break
;;
esac
done
for file
do
if test -d "$file"; then
shift
else
break
fi
done
case $# in
0) exit 0 ;;
esac
# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
# mkdir -p a/c at the same time, both will detect that a is missing,
# one will create a, then the other will try to create a and die with
# a "File exists" error. This is a problem when calling mkinstalldirs
# from a parallel make. We use --version in the probe to restrict
# ourselves to GNU mkdir, which is thread-safe.
case $dirmode in
'')
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
echo "mkdir -p -- $*"
exec mkdir -p -- "$@"
else
# On NextStep and OpenStep, the `mkdir' command does not
# recognize any option. It will interpret all options as
# directories to create, and then abort because `.' already
# exists.
test -d ./-p && rmdir ./-p
test -d ./--version && rmdir ./--version
fi
;;
*)
if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
test ! -d ./--version; then
echo "mkdir -m $dirmode -p -- $*"
exec mkdir -m "$dirmode" -p -- "$@"
else
# Clean up after NextStep and OpenStep mkdir.
for d in ./-m ./-p ./--version "./$dirmode";
do
test -d $d && rmdir $d
done
fi
;;
esac
for file
do
case $file in
/*) pathcomp=/ ;;
*) pathcomp= ;;
esac
oIFS=$IFS
IFS=/
set fnord $file
shift
IFS=$oIFS
for d
do
test "x$d" = x && continue
pathcomp=$pathcomp$d
case $pathcomp in
-*) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
else
if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
lasterr=
chmod "$dirmode" "$pathcomp" || lasterr=$?
if test ! -z "$lasterr"; then
errstatus=$lasterr
fi
fi
fi
fi
pathcomp=$pathcomp/
done
done
exit $errstatus
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

371
admin/nmcheck 100755
View File

@ -0,0 +1,371 @@
#!/usr/bin/perl -w
# Check namespace cleanness of a library.
# Allowed symbols are passed as arguments.
# They may have trailing * = wildcard.
# Wildcards may be also specified as *::* (e.g. K*::* for all KDE classes)
# Symbols are listed as full function unmangled names without arguments,
# e.g. 'foo bar* nspace::*' allows foo(), foo(int), bar(), barbar()
# and all symbols in namespace/class nspace.
# If an argument has comma in it, it's a filename of a file containing
# allowed symbols, one per line.
$thisProg = "$0"; # This programs name
$library = "";
$allowed_symbols = "";
$debug = 0;
$allowed_weak = "";
$weak_specified = 0;
while( defined( $ARGV[ 0 ] ))
{
$_ = shift;
if( /^--verbose$|^-v$/ )
{
$debug = 1;
}
elsif( /^--help$|^-h$/ )
{
print STDOUT "Usage $thisProg [OPTION] ... library [allowed symbols] ...\n",
"\n",
"Check if the given library has only allowed public symbols.\n",
"\n",
" --allowweak=[symbol] allow only these weak symbols\n",
" -v, --verbose verbosely list files processed\n",
" -h, --help print this help, then exit\n";
exit 0;
}
elsif( /^--allowweak=(.*)$/ )
{
$allowed_weak .= " " . $1;
$weak_specified = 1;
}
elsif( /^--allowweak$/ ) # simply list all weak
{
$allowed_weak .= " ";
$weak_specified = 1;
}
elsif( /^--*/ )
{
die "Invalid argument!\n";
}
else
{
if( ! $library )
{
$library = $_;
}
else
{
$allowed_symbols .= " " . $_;
}
}
}
if( ! $weak_specified )
{
$allowed_weak = "*";
# allow all weak symbols by default
# instances of templates and similar stuff - unfortunately includes also things from other libraries,
# so it cannot be on by default
}
print STDERR "library:" . $library . "\n" if $debug;
print STDERR "allowed_symbols:" . $allowed_symbols . "\n" if $debug;
print STDERR "allowed_weak:" . $allowed_weak . "\n" if $debug;
$default_symbols = "_fini _init"; # system symbols
# on my system, every .so has :
# A _DYNAMIC
# A _GLOBAL_OFFSET_TABLE_
# A __bss_start
# A _edata
# A _end
# T _fini
# T _init
# no need to list A symbols in $default_symbols
print STDERR "default_symbols: " . $default_symbols . "\n" if $debug;
print STDOUT "Namespace cleanness check for " . $library . " :\n";
$lib_file = "";
if( $library =~ /\.la$/ )
{
# get the real library file from .la
open( FILEIN, $library ) || die "Couldn't open $! !\n";
while( $line = <FILEIN> )
{
if( $line =~ /library_names=\'([^ ]*).*/o )
{
$lib_file = $1;
}
}
close( FILEIN );
if( ! $lib_file )
{
print STDERR "Library file not found in .la file!\n";
exit 1;
}
my $libpath = $library;
$libpath =~ s%[^/]*$%%;
if( -e $libpath . ".libs/" . $lib_file )
{
$lib_file = $libpath . ".libs/" . $lib_file;
}
else
{
$lib_file = $libpath . $lib_file;
}
}
else
{
$lib_file = $library;
}
print STDERR "libfile: ". $lib_file . "\n" if $debug;
$allowed_symbols .= " " . $default_symbols;
sub process_symbols($\@\%\@);
@wildcards = ();
%exacts = ();
@regwildcards = ();
process_symbols( $allowed_symbols, @wildcards, %exacts, @regwildcards );
@weak_wildcards = ();
%weak_exacts = ();
@weak_regwildcards = ();
process_symbols( $allowed_weak, @weak_wildcards, %weak_exacts, @weak_regwildcards );
# grep is for stripping not exported symbols, which don't have address (=first column)
$nm_command = "nm -BDCg " . $lib_file . " | grep -v '^ ' |";
# TODO how portable is this nmcheck stuff?
print STDERR "nm command:" . $nm_command . "\n" if $debug;
open( FILEIN, $nm_command ) || die "nm command failed\n";
my $exit_code = 0;
while( $line = <FILEIN> )
{
my $type;
my $symbol;
if( $line =~ /^[^ ]* (.) (.*)$/o )
{
$type = $1;
$symbol = $2;
}
else
{
die "Invalid line: " . $line . "\n";
}
print STDERR "Type: " . $type . " , symbol: " . $symbol . "\n" if $debug;
if( $type eq "A" )
{ # these should be system symbols, so ignore them
next;
}
my $orig_symbol = $symbol;
if( $symbol =~ /\(anonymous namespace\)/o )
{ # TODO tell to prefer named namespaces? (shorter symbols)
next;
}
# strip prefixes
# the :: appending is to make "CLASS::*" work also for "vtable for CLASS"
$symbol =~ s/^typeinfo for (.*)$/$1::/o;
$symbol =~ s/^typeinfo fn for (.*)$/$1::/o;
$symbol =~ s/^typeinfo name for (.*)$/$1::/o;
$symbol =~ s/^vtable for (.*)$/$1::/o;
$symbol =~ s/^guard variable for (.*)$/$1::/o;
$symbol =~ s/^reference temporary for (.*)$/$1::/o;
$symbol =~ s/^VTT for (.*)$/$1::/o;
$symbol =~ s/^virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
$symbol =~ s/^non-virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
$symbol =~ s/^covariant return thunk \[[^\]]*\] to (.*)$/$1::/o;
$symbol =~ s/^construction vtable thunk for (.*)$/$1::/o;
$symbol =~ s/^construction vtable for .*-in-(.*) [0-9]*$/$1::/o;
# templates seem to have also return types mangled in their name, and nm prints it too
# they have also template arguments in the symbol
# get rid of both of those
while( $symbol =~ /<.*>/o )
{
$symbol =~ s/<[^<>]*>//o; # strip innermost <>
}
if( $symbol !~ /operator\(\)/o )
{
$symbol =~ s/ ?\(.*\).*$//o; # strip () and all after it
}
else
{
$symbol =~ s/(^|:| )operator\(\) ?\(.*\).*$//o; # strip () and all after it
}
$symbol =~ s/\[.*\] *$//o; # strip [in-charge] etc.
if( $symbol =~ /(^|:| )operator /o )
{
$symbol =~ s/.* ([^\s]*)operator /$1/o; # strip everything before 'X::operator blah'
}
else
{
$symbol =~ s/.* ([^\s]+) *$/$1/o; # get last word (strip return type)
}
# print STDERR "Processed symbol: " . $symbol . "\n" if $debug;
my $found = 0;
if( $exacts{ $symbol } )
{
$found = 1;
}
if( ! $found )
{
for my $wild ( @wildcards )
{
if( index( $symbol, $wild ) == 0 )
{
$found = 1;
last;
}
}
}
if( ! $found )
{
for my $wild ( @regwildcards )
{
if( $symbol =~ /^$wild$/ )
{
$found = 1;
last;
}
}
}
if( ( ! $found ) && ( $type eq "W" || $type eq "V" ))
{
if( $weak_exacts{ $symbol } )
{
$found = 1;
}
if( ! $found )
{
for my $wild ( @weak_wildcards )
{
if( index( $symbol, $wild ) == 0 )
{
$found = 1;
last;
}
}
}
if( ! $found )
{
for my $wild ( @weak_regwildcards )
{
if( $symbol =~ /^$wild$/ )
{
$found = 1;
last;
}
}
}
}
if( ! $found )
{
print STDERR "Public symbol " . $orig_symbol . " is not allowed!\n";
$exit_code = 1;
}
}
close( FILEIN );
print STDOUT $exit_code == 0 ? "OK\n" : "FAILED\n";
exit $exit_code;
sub process_symbols($\@\%\@)
{
my $allowed_symbols = $_[ 0 ];
my $wildcards_ref = $_[ 1 ];
my $exacts_ref = $_[ 2 ];
my $regwildcards_ref = $_[ 3 ];
$allowed_symbols =~ s/^ *//o; # strip whitespace
$allowed_symbols =~ s/ *$//o;
if( $allowed_symbols eq "NONE" )
{
$allowed_symbols = "";
}
my @symbols1 = split( ' ', $allowed_symbols );
my $i = 0;
my @symbols2 = ();
while( defined( $symbols1[ $i ] ))
{
my $symbol = $symbols1[ $i ];
if( $symbol =~ /\./ ) # dot in name -> file
{
open( SYMIN, $symbol ) || die ( "Cannot open file " . $symbol . "!" );
while( $line = <SYMIN> )
{
$line =~ s/^\s*//o; # strip whitespace
$line =~ s/\s*$//o;
if( $line !~ /^$/o # empty line
&& $line !~ /^\s*#/ ) # comment line starting with #
{
$symbols2[ $#symbols2 + 1 ] = $line;
}
}
close( SYMIN );
}
else
{
$symbols2[ $#symbols2 + 1 ] = $symbol;
}
$i++;
}
$i = 0;
while( defined( $symbols2[ $i ] ))
{
my $symbol = $symbols2[ $i ];
if( $symbol =~ /__/
|| $symbol =~ /^_[A-Z]/ )
{ # ISO C++ 2.10.2
die "Symbols containing a double underscore or beginning with an underscore and an upper-case letter are reserved!\n";
}
elsif( $symbol eq "main"
|| $symbol eq "main*" )
{
die "Symbol main is not allowed!\n";
}
if( $symbol =~ /^([^\*]*)\*$/o # trailing * without any * before it
&& $symbol !~ /operator\*$/o )
{
print STDERR "wildcard:" . $symbol . "\n" if $debug;
$wildcards_ref->[ $#{$wildcards_ref} + 1 ] = $1;
}
elsif( $symbol =~ /\*$/o
&& ( $symbol =~ /\*::/o || $symbol =~ /::\*/o )
&& $symbol !~ /^\*/o
&& $symbol !~ /operator\*$/o )
{
print STDERR "regwildcard:" . $symbol . "\n" if $debug;
$symbol =~ s/\*/\.\*/go; # change * to .* (regexp)
$regwildcards_ref->[ $#{$regwildcards_ref} + 1 ] = $symbol;
}
else
{
print STDERR "exact:" . $symbol . "\n" if $debug;
$exacts_ref->{ $symbol } = 1;
}
$i++;
}
}

View File

@ -0,0 +1,192 @@
### -*- autoconf -*-
dnl This file is part of the KDE libraries/packages
dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu)
dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org)
dnl This file is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Library General Public
dnl License as published by the Free Software Foundation; either
dnl version 2 of the License, or (at your option) any later version.
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Library General Public License for more details.
dnl You should have received a copy of the GNU Library General Public License
dnl along with this library; see the file COPYING.LIB. If not, write to
dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
dnl Boston, MA 02110-1301, USA.
AC_DEFUN([KDE_CHECK_MICO],
[
AC_REQUIRE([KDE_CHECK_LIBDL])
AC_REQUIRE([KDE_MISC_TESTS])
AC_MSG_CHECKING(for MICO)
if test -z "$MICODIR"; then
kde_micodir=/usr/local
else
kde_micodir="$MICODIR"
fi
AC_ARG_WITH(micodir,
[ --with-micodir=micodir where mico is installed ],
kde_micodir=$withval,
kde_micodir=$kde_micodir
)
AC_CACHE_VAL(kde_cv_mico_incdir,
[
mico_incdirs="$kde_micodir/include /usr/include /usr/local/include /usr/local/include /opt/local/include $kde_extra_includes"
AC_FIND_FILE(CORBA.h, $mico_incdirs, kde_cv_mico_incdir)
])
kde_micodir=`echo $kde_cv_mico_incdir | sed -e 's#/include##'`
if test ! -r $kde_micodir/include/CORBA.h; then
AC_MSG_ERROR([No CORBA.h found, specify another micodir])
fi
AC_MSG_RESULT($kde_micodir)
MICO_INCLUDES=-I$kde_micodir/include
AC_SUBST(MICO_INCLUDES)
MICO_LDFLAGS=-L$kde_micodir/lib
AC_SUBST(MICO_LDFLAGS)
micodir=$kde_micodir
AC_SUBST(micodir)
AC_MSG_CHECKING([for MICO version])
AC_CACHE_VAL(kde_cv_mico_version,
[
AC_LANG_C
cat >conftest.$ac_ext <<EOF
#include <stdio.h>
#include <mico/version.h>
int main() {
printf("MICO_VERSION=%s\n",MICO_VERSION);
return (0);
}
EOF
ac_compile='${CC-gcc} $CFLAGS $MICO_INCLUDES conftest.$ac_ext -o conftest'
if AC_TRY_EVAL(ac_compile); then
if eval `./conftest 2>&5`; then
kde_cv_mico_version=$MICO_VERSION
else
AC_MSG_ERROR([your system is not able to execute a small application to
find MICO version! Check $kde_micodir/include/mico/version.h])
fi
else
AC_MSG_ERROR([your system is not able to compile a small application to
find MICO version! Check $kde_micodir/include/mico/version.h])
fi
])
dnl installed MICO version
mico_v_maj=`echo $kde_cv_mico_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
mico_v_mid=`echo $kde_cv_mico_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
mico_v_min=`echo $kde_cv_mico_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
if test "x$1" = "x"; then
req_version="2.3.0"
else
req_version=$1
fi
dnl required MICO version
req_v_maj=`echo $req_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
req_v_mid=`echo $req_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
req_v_min=`echo $req_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
if test "$mico_v_maj" -lt "$req_v_maj" || \
( test "$mico_v_maj" -eq "$req_v_maj" && \
test "$mico_v_mid" -lt "$req_v_mid" ) || \
( test "$mico_v_mid" -eq "$req_v_mid" && \
test "$mico_v_min" -lt "$req_v_min" )
then
AC_MSG_ERROR([found MICO version $kde_cv_mico_version but version $req_version \
at least is required. You should upgrade MICO.])
else
AC_MSG_RESULT([$kde_cv_mico_version (minimum version $req_version, ok)])
fi
LIBMICO="-lmico$kde_cv_mico_version $LIBCRYPT $LIBSOCKET $LIBDL"
AC_SUBST(LIBMICO)
if test -z "$IDL"; then
IDL='$(kde_bindir)/cuteidl'
fi
AC_SUBST(IDL)
IDL_DEPENDENCIES='$(kde_includes)/CUTE.h'
AC_SUBST(IDL_DEPENDENCIES)
idldir="\$(includedir)/idl"
AC_SUBST(idldir)
])
AC_DEFUN([KDE_CHECK_MINI_STL],
[
AC_REQUIRE([KDE_CHECK_MICO])
AC_MSG_CHECKING(if we use mico's mini-STL)
AC_CACHE_VAL(kde_cv_have_mini_stl,
[
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
kde_save_cxxflags="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $MICO_INCLUDES"
AC_TRY_COMPILE(
[
#include <mico/config.h>
],
[
#ifdef HAVE_MINI_STL
#error "nothing"
#endif
],
kde_cv_have_mini_stl=no,
kde_cv_have_mini_stl=yes)
CXXFLAGS="$kde_save_cxxflags"
AC_LANG_RESTORE
])
if test "x$kde_cv_have_mini_stl" = "xyes"; then
AC_MSG_RESULT(yes)
$1
else
AC_MSG_RESULT(no)
$2
fi
])
])
AC_DEFUN([KDE_CHECK_ANSI],
[
])
AC_DEFUN([KDE_CHECK_INSURE],
[
AC_ARG_ENABLE(insure, [ --enable-insure use insure++ for debugging [default=no]],
[
if test $enableval = "no"; dnl
then ac_use_insure="no"
else ac_use_insure="yes"
fi
], [ac_use_insure="no"])
AC_MSG_CHECKING(if we will use Insure++ to debug)
AC_MSG_RESULT($ac_use_insure)
if test "$ac_use_insure" = "yes"; dnl
then CC="insure"; CXX="insure"; dnl CFLAGS="$CLAGS -fno-rtti -fno-exceptions "????
fi
])
AC_DEFUN([KDE_CHECK_NEWLIBS],
[
])

223
admin/ylwrap 100755
View File

@ -0,0 +1,223 @@
#! /bin/sh
# ylwrap - wrapper for lex/yacc invocations.
scriptversion=2005-05-14.22
# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
# Free Software Foundation, Inc.
#
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
case "$1" in
'')
echo "$0: No files given. Try \`$0 --help' for more information." 1>&2
exit 1
;;
--basedir)
basedir=$2
shift 2
;;
-h|--h*)
cat <<\EOF
Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
Wrapper for lex/yacc invocations, renaming files as desired.
INPUT is the input file
OUTPUT is one file PROG generates
DESIRED is the file we actually want instead of OUTPUT
PROGRAM is program to run
ARGS are passed to PROG
Any number of OUTPUT,DESIRED pairs may be used.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v|--v*)
echo "ylwrap $scriptversion"
exit $?
;;
esac
# The input.
input="$1"
shift
case "$input" in
[\\/]* | ?:[\\/]*)
# Absolute path; do nothing.
;;
*)
# Relative path. Make it absolute.
input="`pwd`/$input"
;;
esac
pairlist=
while test "$#" -ne 0; do
if test "$1" = "--"; then
shift
break
fi
pairlist="$pairlist $1"
shift
done
# The program to run.
prog="$1"
shift
# Make any relative path in $prog absolute.
case "$prog" in
[\\/]* | ?:[\\/]*) ;;
*[\\/]*) prog="`pwd`/$prog" ;;
esac
# FIXME: add hostname here for parallel makes that run commands on
# other machines. But that might take us over the 14-char limit.
dirname=ylwrap$$
trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
mkdir $dirname || exit 1
cd $dirname
case $# in
0) $prog "$input" ;;
*) $prog "$@" "$input" ;;
esac
ret=$?
if test $ret -eq 0; then
set X $pairlist
shift
first=yes
# Since DOS filename conventions don't allow two dots,
# the DOS version of Bison writes out y_tab.c instead of y.tab.c
# and y_tab.h instead of y.tab.h. Test to see if this is the case.
y_tab_nodot="no"
if test -f y_tab.c || test -f y_tab.h; then
y_tab_nodot="yes"
fi
# The directory holding the input.
input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
# Quote $INPUT_DIR so we can use it in a regexp.
# FIXME: really we should care about more than `.' and `\'.
input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
while test "$#" -ne 0; do
from="$1"
# Handle y_tab.c and y_tab.h output by DOS
if test $y_tab_nodot = "yes"; then
if test $from = "y.tab.c"; then
from="y_tab.c"
else
if test $from = "y.tab.h"; then
from="y_tab.h"
fi
fi
fi
if test -f "$from"; then
# If $2 is an absolute path name, then just use that,
# otherwise prepend `../'.
case "$2" in
[\\/]* | ?:[\\/]*) target="$2";;
*) target="../$2";;
esac
# We do not want to overwrite a header file if it hasn't
# changed. This avoid useless recompilations. However the
# parser itself (the first file) should always be updated,
# because it is the destination of the .y.c rule in the
# Makefile. Divert the output of all other files to a temporary
# file so we can compare them to existing versions.
if test $first = no; then
realtarget="$target"
target="tmp-`echo $target | sed s/.*[\\/]//g`"
fi
# Edit out `#line' or `#' directives.
#
# We don't want the resulting debug information to point at
# an absolute srcdir; it is better for it to just mention the
# .y file with no path.
#
# We want to use the real output file name, not yy.lex.c for
# instance.
#
# We want the include guards to be adjusted too.
FROM=`echo "$from" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
TARGET=`echo "$2" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
-e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
# Check whether header files must be updated.
if test $first = no; then
if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
echo "$2" is unchanged
rm -f "$target"
else
echo updating "$2"
mv -f "$target" "$realtarget"
fi
fi
else
# A missing file is only an error for the first file. This
# is a blatant hack to let us support using "yacc -d". If -d
# is not specified, we don't want an error when the header
# file is "missing".
if test $first = yes; then
ret=1
fi
fi
shift
shift
first=no
done
else
ret=$?
fi
# Remove the directory.
cd ..
rm -rf $dirname
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:

View File

@ -1,79 +0,0 @@
trigger:
- main
strategy:
matrix:
Linux:
imageName: 'ubuntu-latest'
enableLibavif: 'OFF'
enableGLUT: 'ON'
Mac:
imageName: 'macos-latest'
enableLibavif: 'ON'
enableGLUT: 'OFF'
pool:
vmImage: $(imageName)
steps:
- checkout: self
submodules: true
- bash: echo "##vso[task.setvariable variable=shellopts]errexit"
displayName: "Force exit on error (bash)"
- script: |
sudo apt update
sudo apt install -y libeigen3-dev \
libepoxy-dev \
libavcodec-dev \
libavformat-dev \
libavutil-dev \
libswscale-dev \
libjpeg-dev \
libpng-dev \
libglu1-mesa-dev \
qtbase5-dev \
qtbase5-dev-tools \
libqt5opengl5-dev \
libgtk2.0-dev \
libgtkglext1-dev \
libfreetype6-dev \
libsdl2-dev \
libluajit-5.1-dev \
freeglut3-dev \
libfmt-dev
displayName: 'Install Linux dependencies'
condition: eq( variables['Agent.OS'], 'Linux' )
- script: |
brew install pkg-config \
eigen \
ffmpeg \
gtk+ \
gtkglext \
cspice \
fmt \
jpeg \
gettext \
libpng \
lua \
qt5 \
freetype \
libepoxy \
sdl2 \
freeglut \
libavif
brew link gettext --force
brew link lua --force
displayName: 'Install macOS dependencies'
condition: eq( variables['Agent.OS'], 'Darwin' )
- script: |
mkdir build
cd build
cmake -DENABLE_SPICE=ON -DENABLE_TOOLS=ON -DENABLE_TESTS=ON -DENABLE_SDL=ON -DENABLE_GTK=ON -DENABLE_GLUT=$(enableGLUT) -DENABLE_FFMPEG=ON -DENABLE_LIBAVIF=$(enableLibavif) ..
make -j $(nproc || echo 4)
CTEST_OUTPUT_ON_FAILURE=1 ctest
workingDirectory: "$(system.defaultworkingdirectory)"
displayName: "Build and test"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@ -8,8 +8,8 @@
# make any changes to it.
#
# To learn more about Celestia, visit the Celestia forums at:
# https://celestia.space/forum/
# or the Celestia web site at: https://celestia.space/
# http://www.shatters.net/forum/
# or the Celestia web site at: http://www.shatters.net/celestia/
#************************************************************************
@ -22,8 +22,8 @@ Configuration
# these file names or the order in which they are listed, unless you
# know exactly what you are doing. Most of these files can be viewed
# with a plain text editor. Discussion about their content and formats
# can be found on the Celestia forums: https://celestia.space/forum/
# can be found on the Celestia forums: http://www.shatters.net/forum/
#
# If you want to load all your stars from .stc files, you can now comment
# out the StarDatabase entry.
#------------------------------------------------------------------------
@ -31,45 +31,42 @@ Configuration
StarNameDatabase "data/starnames.dat"
StarCatalogs [ "data/revised.stc"
"data/extrasolar.stc"
"data/nearstars.stc"
"data/nearstars.stc"
"data/visualbins.stc"
"data/spectbins.stc"
"data/charm2.stc"
"data/pulsars.stc" ]
"data/charm2.stc" ]
HDCrossIndex "data/hdxindex.dat"
SAOCrossIndex "data/saoxindex.dat"
GlieseCrossIndex "data/gliesexindex.dat"
SolarSystemCatalogs [ "data/solarsys.ssc"
"data/dwarfplanets.ssc"
"data/asteroids.ssc"
"data/comets.ssc"
"data/outersys.ssc"
"data/minormoons.ssc"
"data/numberedmoons.ssc"
"data/extrasolar.ssc"
"data/eros_locs.ssc"
"data/gaspra_locs.ssc"
"data/ida_locs.ssc"
"data/itokawa_locs.ssc"
"data/merc_locs.ssc"
"data/venus_locs.ssc"
"data/earth_locs.ssc"
"data/moon_locs.ssc"
"data/mars_locs.ssc"
"data/moon_locs.ssc"
"data/marsmoons_locs.ssc"
"data/jupitermoons_locs.ssc"
"data/saturnmoons_locs.ssc"
"data/uranusmoons_locs.ssc"
"data/neptunemoons_locs.ssc"
"data/plutocharon_locs.ssc"
"data/eros_locs.ssc"
"data/gaspra_locs.ssc"
"data/ida_locs.ssc"
"data/itokawa_locs.ssc"
"data/ring_locs.ssc"
"data/world-capitals.ssc" ]
DeepSkyCatalogs [ "data/galaxies.dsc"
"data/globulars.dsc"
"data/openclusters.dsc" ]
"data/globulars.dsc" ]
AsterismsFile "data/asterisms.dat"
BoundariesFile "data/boundaries.dat"
@ -83,14 +80,14 @@ StarTextures
{
# This texture will be used for any spectral type not listed
# in this block.
Default "astar.*"
Default "astar.jpg"
O "ostar.*"
O "bstar.*"
B "bstar.*"
A "astar.*"
F "fstar.*"
F "astar.*"
G "gstar.*"
K "kstar.*"
K "gstar.*"
M "mstar.*"
# carbon stars
@ -100,18 +97,16 @@ StarTextures
S "mstar.*" # roughly between M and C
# Wolf-Rayet stars
WC "ostar.*"
WN "ostar.*"
WO "ostar.*"
WC "bstar.*"
WN "bstar.*"
# brown dwarfs
L "lstar.*"
L "browndwarf.*"
T "browndwarf.*"
Y "exo-class4night.*"
# stellar remnants
WD "whitedwarf.*"
NeutronStar "ostar.*"
WD "astar.jpg"
NeutronStar "astar.jpg"
}
@ -179,7 +174,7 @@ StarTextures
#
# To learn more about how to use and write CEL scripts and Lua scripts
# in Celestia, please visit the Celestia Scripting forum at:
# https://celestia.space/forum/viewforum.php?f=9
# http://www.shatters.net/forum/viewforum.php?f=9
#------------------------------------------------------------------------
InitScript "start.cel"
DemoScript "demo.cel"
@ -189,13 +184,13 @@ StarTextures
# The 'extras' directory is located under the celestia root directory
# and is used for storing third-party add-ons to Celestia. To learn
# more about Add-Ons for Celestia, visit the Celestia Add-Ons forum at:
# https://celestia.space/forum/viewforum.php?f=6
# http://www.shatters.net/forum/viewforum.php?f=6
#
# You may specify additional add-on directories by adding additional
# entries, such as the following example shows:
# ExtrasDirectories [ "extras" "myextras1" "myextras2" ]
#
# To specify absolute paths on windows, you either have to use "/" or
# To specify absolute paths on windows, you either have to use "/" or
# double backslashes to seperate path components. Example:
# ExtrasDirectories [ "D:/celestia-extras" ]
# or
@ -204,22 +199,6 @@ StarTextures
ExtrasDirectories [ "extras-standard" "extras" ]
#------------------------------------------------------------------------
# Addons in 'extras' directories can be skipped. For example, if you have
# an addon which provides a better version of ISS spacecraft you might
# want to use it instead of the default one shipped with Celestia. But if
# you load it you will have two spacecraft rendered in the same place. So
# you can either remove the default one but it will be reinstalled on
# Celestia upgrade or you can it to the skip list. Example:
# SkipExtras "extras-standard/iss/iss.ssc"
# or
# SkipExtras ["extras/wostars.stc" "extras-standard/iss/iss.ssc"]
#
# Please note that 1) only relative paths work, 2) directories are not
# accepted in the list only catalog file names.
#------------------------------------------------------------------------
# SkipExtras [ ]
#------------------------------------------------------------------------
# Font definitions.
#
@ -227,21 +206,20 @@ StarTextures
# text on the display screen. To view the list of fonts available with
# your distribution of Celestia, look in the fonts directory located
# under the Celestia root directory. The default fonts are UTF-8
# compatible in order to display non-English characters. Font size is
# measured in points to ensure the same sizes on all DPI configurations.
# compatible in order to display non-English characters.
#
# Font: Used to display all informational text.
# Default: "DejaVuSans.ttf,9"
# Default: "sans12.txf"
#
# LabelFont: Used to display all label text (objects, locations, etc.).
# Default "DejaVuSans.ttf,9"
# Default "sans12.txf"
#
# TitleFont: Used to display object names, messages, and script text.
# Default "DejaVuSans-Bold.ttf,15"
# Default "sansbold20.txf"
#------------------------------------------------------------------------
Font "DejaVuSans.ttf,9"
LabelFont "DejaVuSans.ttf,9"
TitleFont "DejaVuSans-Bold.ttf,15"
Font "sans12.txf"
LabelFont "sans12.txf"
TitleFont "sansbold20.txf"
#------------------------------------------------------------------------
@ -279,18 +257,11 @@ StarTextures
MouseRotationSensitivity 1.0
#------------------------------------------------------------------------
# ReverseMouseWheel performs a change of command rotates
# the mouse wheel on the opposite. The default value is false.
#------------------------------------------------------------------------
# ReverseMouseWheel true
#------------------------------------------------------------------------
# The following parameter is used in Lua (.celx) scripting.
#
# ScriptScreenshotDirectory defines the directory where screenshots
# are to be stored. The default value is "", i.e. Celestia's
# are to be stored. The default value is "", i.e. Celestia's
# installation directory.
#------------------------------------------------------------------------
ScriptScreenshotDirectory ""
@ -298,8 +269,8 @@ StarTextures
#------------------------------------------------------------------------
# CELX-scripts can request permission to perform dangerous operations,
# such as reading, writing and deleting files or executing external
# programs. If granted, a malicious script could use this to destroy
# such as reading, writing and deleting files or executing external
# programs. If granted, a malicious script could use this to destroy
# data or compromise system security.
# The following parameter determines what Celestia does upon such
# requests:
@ -340,28 +311,6 @@ StarTextures
EclipseTextureSize 128
#------------------------------------------------------------------------
# Orbit rendering parameters
#------------------------------------------------------------------------
# OrbitWindowEnd ->
# End of the orbit window relative to the current simulation time.
# Units are orbital periods. The default value is 0.5.
# The range of values 0.0 - 1.0.
#
# OrbitPeriodsShown ->
# Number of orbit periods shown.
# The default value is 1.0.
#
# LinearFadeFraction ->
# Fraction of the window over which the orbit fades from opaque
# to transparent. Fading is disabled when this value is zero.
# The default value is 0.0. The range of values 0.0 - 1.0.
#------------------------------------------------------------------------
OrbitWindowEnd 0.0
# OrbitPeriodsShown 1.0
LinearFadeFraction 0.8
#-----------------------------------------------------------------------
# Set the level of multisample antialiasing. Not all 3D graphics
# hardware supports antialiasing, though most newer graphics chipsets
@ -390,36 +339,4 @@ StarTextures
#------------------------------------------------------------------------
# LogSize 1000
#------------------------------------------------------------------------
# The following define options for x264 and ffvhuff video codecs when
# Celestia is compiled with ffmpeg library support for video capture.
#------------------------------------------------------------------------
# X264EncoderOptions ""
# FFVHEncoderOptions ""
#------------------------------------------------------------------------
# The following define the measurement system Celestia uses to display
# in HUD, available options for MeasurementSystem are `metric` and
# `imperial`. By default, metric measurement system is used. Available
# options for TemperatureScale are `kelvin`, `celsius`, and `fahrenheit`.
# By default kelvin is used.
#------------------------------------------------------------------------
# MeasurementSystem "imperial"
# TemperatureScale "celsius"
#------------------------------------------------------------------------
# The following options are used to configure how scenes in Celestia
# are projected and what distortion method is used.
# Available options for ProjectionMode are `perspective` (default) and
# `fisheye`. Available `ViewportEffect`s (distortion methods) are `none`
# (default), `passthrough`, and `warpmesh`.
# For `warpmesh` viewport effect, you need to specify a warp mesh file
# under the parameter name `WarpMeshFile`, The file should be placed
# inside the `warp` folder.
# File format for warp mesh: http://paulbourke.net/dataformats/meshwarp/
#------------------------------------------------------------------------
# ProjectionMode "fisheye"
# ViewportEffect "warpmesh"
# WarpMeshFile "warp.map"
}

View File

@ -5,24 +5,23 @@
[Setup]
AppName=Celestia
AppVerName=Celestia 1.7.0
AppVerName=Celestia 1.6.0
AppPublisher=Shatters Software
AppPublisherURL=https://celestia.space/
AppSupportURL=https://celestia.space/
AppUpdatesURL=https://celestia.space/
DefaultDirName={code:DefDirRoot}\Celestia
AppPublisherURL=http://www.shatters.net/celestia/
AppSupportURL=http://www.shatters.net/celestia/
AppUpdatesURL=http://www.shatters.net/celestia/
DefaultDirName={pf}\Celestia
DefaultGroupName=Celestia
LicenseFile=COPYING
Compression=lzma2/Ultra
InternalCompressLevel=Ultra
SolidCompression=true
Compression=lzma/max
UninstallDisplayIcon={app}\celestia.exe
WizardImageFile=win32-installer-image.bmp
PrivilegesRequired=none
; Tell Explorer to refresh its file associations information at the
; end of the installation, and Uninstall will do the same at the end
; of uninstallation.
ChangesAssociations=true
ChangesAssociations=yes
; uncomment the following line if you want your installation to run on NT 3.51 too.
; MinVersion=4,3.51
@ -60,8 +59,6 @@ Name: "{app}\extras-standard\iss\textures\medres"
Name: "{app}\extras-standard\mir"
Name: "{app}\extras-standard\mir\models"
Name: "{app}\locale"
Name: "{app}\help"
Name: "{app}\help\CelestiaGuide"
[Files]
Source: "celestia.exe"; DestDir: "{app}"; Flags: ignoreversion
@ -101,7 +98,6 @@ Source: "locale\res_ko.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_lt.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_lv.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_nl.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_no.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_pl.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_pt.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_pt_BR.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
@ -109,7 +105,6 @@ Source: "locale\res_ro.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_ru.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_sk.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_sv.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_tr.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_uk.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_zh_CN.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\res_zh_TW.dll"; DestDir: "{app}/locale"; Flags: ignoreversion
@ -145,8 +140,6 @@ Source: "locale\lv\LC_MESSAGES\celestia.mo"; DestDir: "{app
Source: "locale\lv\LC_MESSAGES\celestia_constellations.mo"; DestDir: "{app}/locale/lv/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\nl\LC_MESSAGES\celestia.mo"; DestDir: "{app}/locale/nl/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\nl\LC_MESSAGES\celestia_constellations.mo"; DestDir: "{app}/locale/nl/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\no\LC_MESSAGES\celestia.mo"; DestDir: "{app}/locale/no/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\no\LC_MESSAGES\celestia_constellations.mo"; DestDir: "{app}/locale/no/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\pl\LC_MESSAGES\celestia.mo"; DestDir: "{app}/locale/pl/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\pl\LC_MESSAGES\celestia_constellations.mo"; DestDir: "{app}/locale/pl/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\pt\LC_MESSAGES\celestia.mo"; DestDir: "{app}/locale/pt/LC_MESSAGES"; Flags: ignoreversion
@ -161,8 +154,6 @@ Source: "locale\sk\LC_MESSAGES\celestia.mo"; DestDir: "{app
Source: "locale\sk\LC_MESSAGES\celestia_constellations.mo"; DestDir: "{app}/locale/sk/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\sv\LC_MESSAGES\celestia.mo"; DestDir: "{app}/locale/sv/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\sv\LC_MESSAGES\celestia_constellations.mo"; DestDir: "{app}/locale/sv/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\tr\LC_MESSAGES\celestia.mo"; DestDir: "{app}/locale/tr/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\tr\LC_MESSAGES\celestia_constellations.mo"; DestDir: "{app}/locale/tr/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\uk\LC_MESSAGES\celestia.mo"; DestDir: "{app}/locale/uk/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\uk\LC_MESSAGES\celestia_constellations.mo"; DestDir: "{app}/locale/uk/LC_MESSAGES"; Flags: ignoreversion
Source: "locale\zh_CN\LC_MESSAGES\celestia.mo"; DestDir: "{app}/locale/zh_CN/LC_MESSAGES"; Flags: ignoreversion
@ -179,7 +170,6 @@ Source: "locale\COPYING_it"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\COPYING_ja"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\COPYING_ko"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\COPYING_nl"; DestDir: "{app}/locale"; Flags: ignoreversion
; Source: "locale\COPYING_no"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\COPYING_pl"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\COPYING_pt"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\COPYING_pt_BR"; DestDir: "{app}/locale"; Flags: ignoreversion
@ -200,7 +190,6 @@ Source: "locale\controls_it.txt"; DestDir: "{app}/locale"; Flags: ignoreve
Source: "locale\controls_ja.txt"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\controls_ko.txt"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\controls_nl.txt"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\controls_no.txt"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\controls_pl.txt"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\controls_pt.txt"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\controls_pt_BR.txt"; DestDir: "{app}/locale"; Flags: ignoreversion
@ -212,7 +201,6 @@ Source: "locale\controls_zh_CN.txt"; DestDir: "{app}/locale"; Flags: ignor
Source: "locale\controls_zh_TW.txt"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\demo_be.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\demo_bg.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\demo_de.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\demo_es.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\demo_fr.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
@ -223,7 +211,6 @@ Source: "locale\demo_ko.cel"; DestDir: "{app}/locale"; Flags: ignoreversio
Source: "locale\demo_lt.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\demo_lv.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\demo_nl.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\demo_no.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\demo_pl.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\demo_pt.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\demo_pt_BR.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
@ -246,7 +233,6 @@ Source: "locale\guide_ja.cel"; DestDir: "{app}/locale"; Flags: ignoreversi
Source: "locale\guide_ko.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\guide_lt.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\guide_nl.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
; Source: "locale\guide_no.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\guide_pl.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\guide_pt.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\guide_pt_BR.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
@ -270,7 +256,6 @@ Source: "locale\start_ko.cel"; DestDir: "{app}/locale"; Flags: ignoreversi
Source: "locale\start_lt.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\start_lv.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\start_nl.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
; Source: "locale\start_no.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\start_pl.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\start_pt.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
Source: "locale\start_pt_BR.cel"; DestDir: "{app}/locale"; Flags: ignoreversion
@ -598,9 +583,6 @@ Source: "fonts\sansbold12.txf"; DestDir: "{app}/fonts"; Flags: ignoreversion
Source: "fonts\sansbold14.txf"; DestDir: "{app}/fonts"; Flags: ignoreversion
Source: "fonts\sansbold20.txf"; DestDir: "{app}/fonts"; Flags: ignoreversion
Source: "fonts\sans12_be.txf"; DestDir: "{app}/fonts"; Flags: ignoreversion
Source: "fonts\sans14_be.txf"; DestDir: "{app}/fonts"; Flags: ignoreversion
Source: "fonts\sansbold20_be.txf"; DestDir: "{app}/fonts"; Flags: ignoreversion
Source: "fonts\sans12_bg.txf"; DestDir: "{app}/fonts"; Flags: ignoreversion
Source: "fonts\sansbold20_bg.txf"; DestDir: "{app}/fonts"; Flags: ignoreversion
Source: "fonts\sans12_ja.txf"; DestDir: "{app}/fonts"; Flags: ignoreversion
@ -633,8 +615,7 @@ Source: "extras-standard\cassini\data\huygens.xyzv"; DestDir: "{app}/extras-stan
Source: "extras-standard\galileo\galileo.ssc"; DestDir: "{app}/extras-standard/galileo"; Flags: ignoreversion
Source: "extras-standard\galileo\models\galileo.3ds"; DestDir: "{app}/extras-standard/galileo/models"; Flags: ignoreversion
Source: "extras-standard\galileo\data\galileo-cruise.xyzv"; DestDir: "{app}/extras-standard/galileo/data"; Flags: ignoreversion
Source: "extras-standard\galileo\data\galileo-orbit.xyzv"; DestDir: "{app}/extras-standard/galileo/data"; Flags: ignoreversion
Source: "extras-standard\galileo\data\galileo.xyz"; DestDir: "{app}/extras-standard/galileo/data"; Flags: ignoreversion
Source: "extras-standard\hubble\hubble.ssc"; DestDir: "{app}/extras-standard/hubble"; Flags: ignoreversion
Source: "extras-standard\hubble\models\hubble.cmod"; DestDir: "{app}/extras-standard/hubble/models"; Flags: ignoreversion
@ -662,21 +643,12 @@ Source: "src\tools\xindex\buildxindices.pl"; DestDir: "{app}/tools/xindex"; Fla
Source: "src\tools\xindex\readme.txt"; DestDir: "{app}/tools/xindex"; Flags: ignoreversion
Source: "src\tools\stardb\buildstardb.pl"; DestDir: "{app}/tools/stardb"; Flags: ignoreversion
; Help
Source: "help\CelestiaGuide.html"; DestDir: "{app}/help"; Flags: ignoreversion
Source: "help\CelestiaGuide\animatedcollapse.js"; DestDir: "{app}/help/CelestiaGuide"; Flags: ignoreversion
Source: "help\CelestiaGuide\cellogo.gif"; DestDir: "{app}/help/CelestiaGuide"; Flags: ignoreversion
Source: "help\CelestiaGuide\celstyles.css"; DestDir: "{app}/help/CelestiaGuide"; Flags: ignoreversion
Source: "help\CelestiaGuide\empty.gif"; DestDir: "{app}/help/CelestiaGuide"; Flags: ignoreversion
Source: "help\CelestiaGuide\guide.gif"; DestDir: "{app}/help/CelestiaGuide"; Flags: ignoreversion
Source: "help\CelestiaGuide\jquery.js"; DestDir: "{app}/help/CelestiaGuide"; Flags: ignoreversion
[InstallDelete]
Type: files; Name: "{app}\extras\minormoons.ssc";
Type: files; Name: "{app}\extras\numberedmoons.ssc";
[INI]
Filename: "{app}\celestia.url"; Section: "InternetShortcut"; Key: "URL"; String: "https://celestia.space/"
Filename: "{app}\celestia.url"; Section: "InternetShortcut"; Key: "URL"; String: "http://www.shatters.net/celestia/"
[Icons]
Name: "{group}\Celestia"; Filename: "{app}\celestia.exe"; WorkingDir: "{app}"
@ -689,43 +661,23 @@ Name: "{userdesktop}\Celestia"; Filename: "{app}\celestia.exe"; WorkingDir:
; to be deleted during an uninstall.
Root: HKCU; Subkey: "Software\Shatters.net"; Flags: uninsdeletekey
; If installing as admin, write associations to HKCR
Root: HKCR; Subkey: "cel"; Flags: uninsdeletekeyifempty
Root: HKCR; Subkey: "cel"; ValueType: string; ValueData: "URL:cel Protocol"; Tasks: urlassoc; Flags: uninsdeletevalue
Root: HKCR; Subkey: "cel"; ValueName: "URL Protocol"; ValueType: string; Tasks: urlassoc; Flags: uninsdeletevalue
Root: HKCR; Subkey: "cel"; Flags: uninsdeletekeyifempty; Check: not IsRegularUser
Root: HKCR; Subkey: "cel"; ValueType: string; ValueData: "URL:cel Protocol"; Tasks: urlassoc; Flags: uninsdeletevalue; Check: not IsRegularUser
Root: HKCR; Subkey: "cel"; ValueName: "URL Protocol"; ValueType: string; Tasks: urlassoc; Flags: uninsdeletevalue; Check: not IsRegularUser
Root: HKCR; Subkey: "cel\Shell"; ValueType: string; Tasks: urlassoc; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKCR; Subkey: "cel\Shell\open"; ValueType: string; Tasks: urlassoc; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKCR; Subkey: "cel\Shell\open\Command"; ValueType: string; ValueData: """{app}\celestia.exe"" --once --dir ""{app}"" -u ""%1"""; Tasks: urlassoc; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKCR; Subkey: "cel\Shell"; ValueType: string; Tasks: urlassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: not IsRegularUser
Root: HKCR; Subkey: "cel\Shell\open"; ValueType: string; Tasks: urlassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: not IsRegularUser
Root: HKCR; Subkey: "cel\Shell\open\Command"; ValueType: string; ValueData: """{app}\celestia.exe"" --once --dir ""{app}"" -u ""%1"""; Tasks: urlassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: not IsRegularUser
Root: HKCR; Subkey: ".cel"; ValueType: string; ValueData: "celestia_script"; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKCR; Subkey: ".clx"; ValueType: string; ValueData: "celestia_script"; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKCR; Subkey: ".celx"; ValueType: string; ValueData: "celestia_script"; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKCR; Subkey: ".cel"; ValueType: string; ValueData: "celestia_script"; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: not IsRegularUser
Root: HKCR; Subkey: ".clx"; ValueType: string; ValueData: "celestia_script"; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: not IsRegularUser
Root: HKCR; Subkey: ".celx"; ValueType: string; ValueData: "celestia_script"; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: not IsRegularUser
Root: HKCR; Subkey: "celestia_script"; ValueName: "URL Protocol"; ValueType: string; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKCR; Subkey: "celestia_script\Shell"; ValueType: string; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKCR; Subkey: "celestia_script\Shell\open"; ValueType: string; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKCR; Subkey: "celestia_script\Shell\open\Command"; ValueType: string; ValueData: """{app}\celestia.exe"" --once --dir ""{app}"" -u ""%1"""; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKCR; Subkey: "celestia_script"; ValueName: "URL Protocol"; ValueType: string; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: not IsRegularUser
Root: HKCR; Subkey: "celestia_script\Shell"; ValueType: string; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: not IsRegularUser
Root: HKCR; Subkey: "celestia_script\Shell\open"; ValueType: string; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: not IsRegularUser
Root: HKCR; Subkey: "celestia_script\Shell\open\Command"; ValueType: string; ValueData: """{app}\celestia.exe"" --once --dir ""{app}"" -u ""%1"""; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: not IsRegularUser
; If installing as regular user, write to HKCU
Root: HKCU; Subkey: "Software\Classes\cel"; Flags: uninsdeletekeyifempty; Check: IsRegularUser
Root: HKCU; Subkey: "Software\Classes\cel"; ValueType: string; ValueData: "URL:cel Protocol"; Tasks: urlassoc; Flags: uninsdeletevalue; Check: IsRegularUser
Root: HKCU; Subkey: "Software\Classes\cel"; ValueName: "URL Protocol"; ValueType: string; Tasks: urlassoc; Flags: uninsdeletevalue; Check: IsRegularUser
Root: HKCU; Subkey: "Software\Classes\cel\Shell"; ValueType: string; Tasks: urlassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: IsRegularUser
Root: HKCU; Subkey: "Software\Classes\cel\Shell\open"; ValueType: string; Tasks: urlassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: IsRegularUser
Root: HKCU; Subkey: "Software\Classes\cel\Shell\open\Command"; ValueType: string; ValueData: """{app}\celestia.exe"" --once --dir ""{app}"" -u ""%1"""; Tasks: urlassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: IsRegularUser
Root: HKCU; Subkey: "Software\Classes\.cel"; ValueType: string; ValueData: "celestia_script"; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: IsRegularUser
Root: HKCU; Subkey: "Software\Classes\.clx"; ValueType: string; ValueData: "celestia_script"; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: IsRegularUser
Root: HKCU; Subkey: "Software\Classes\.celx"; ValueType: string; ValueData: "celestia_script"; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: IsRegularUser
Root: HKCU; Subkey: "Software\Classes\celestia_script"; ValueName: "URL Protocol"; ValueType: string; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: IsRegularUser
Root: HKCU; Subkey: "Software\Classes\celestia_script\Shell"; ValueType: string; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: IsRegularUser
Root: HKCU; Subkey: "Software\Classes\celestia_script\Shell\open"; ValueType: string; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: IsRegularUser
Root: HKCU; Subkey: "Software\Classes\celestia_script\Shell\open\Command"; ValueType: string; ValueData: """{app}\celestia.exe"" --once --dir ""{app}"" -u ""%1"""; Tasks: fileassoc; Flags: uninsdeletevalue uninsdeletekeyifempty; Check: IsRegularUser
[Run]
Filename: "{app}\celestia.exe"; Description: "Launch Celestia"; Flags: nowait postinstall skipifsilent
@ -733,16 +685,4 @@ Filename: "{app}\celestia.exe"; Description: "Launch Celestia"; Flags: nowait po
[UninstallDelete]
Type: files; Name: "{app}\celestia.url"
[code]
function IsRegularUser(): Boolean;
begin
Result := not (IsAdminLoggedOn or IsPowerUserLoggedOn);
end;
function DefDirRoot(Param: String): String;
begin
if IsRegularUser then
Result := ExpandConstant('{localappdata}')
else
Result := ExpandConstant('{pf}')
end;

783
celestia.mak 100644
View File

@ -0,0 +1,783 @@
# Microsoft Developer Studio Generated NMAKE File, Based on celestia.dsp
!IF "$(CFG)" == ""
CFG=celestia - Win32 Debug
!MESSAGE No configuration specified. Defaulting to celestia - Win32 Debug.
!ENDIF
!IF "$(CFG)" != "celestia - Win32 Release" && "$(CFG)" != "celestia - Win32 Debug"
!MESSAGE Invalid configuration "$(CFG)" specified.
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "celestia.mak" CFG="celestia - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "celestia - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "celestia - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
!ERROR An invalid configuration is specified.
!ENDIF
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
!IF "$(CFG)" == "celestia - Win32 Release"
OUTDIR=.\Release
INTDIR=.\Release
# Begin Custom Macros
OutDir=.\Release
# End Custom Macros
ALL : "$(OUTDIR)\celestia.exe"
CLEAN :
-@erase "$(INTDIR)\3dsmesh.obj"
-@erase "$(INTDIR)\3dsmodel.obj"
-@erase "$(INTDIR)\3dsread.obj"
-@erase "$(INTDIR)\asterism.obj"
-@erase "$(INTDIR)\astro.obj"
-@erase "$(INTDIR)\bigfix.obj"
-@erase "$(INTDIR)\body.obj"
-@erase "$(INTDIR)\catalogxref.obj"
-@erase "$(INTDIR)\celestia.res"
-@erase "$(INTDIR)\celestiacore.obj"
-@erase "$(INTDIR)\cmdparser.obj"
-@erase "$(INTDIR)\color.obj"
-@erase "$(INTDIR)\command.obj"
-@erase "$(INTDIR)\configfile.obj"
-@erase "$(INTDIR)\constellation.obj"
-@erase "$(INTDIR)\customorbit.obj"
-@erase "$(INTDIR)\debug.obj"
-@erase "$(INTDIR)\destination.obj"
-@erase "$(INTDIR)\dispmap.obj"
-@erase "$(INTDIR)\execution.obj"
-@erase "$(INTDIR)\favorites.obj"
-@erase "$(INTDIR)\filetype.obj"
-@erase "$(INTDIR)\galaxy.obj"
-@erase "$(INTDIR)\glext.obj"
-@erase "$(INTDIR)\imagecapture.obj"
-@erase "$(INTDIR)\lodspheremesh.obj"
-@erase "$(INTDIR)\meshmanager.obj"
-@erase "$(INTDIR)\observer.obj"
-@erase "$(INTDIR)\octree.obj"
-@erase "$(INTDIR)\orbit.obj"
-@erase "$(INTDIR)\overlay.obj"
-@erase "$(INTDIR)\parser.obj"
-@erase "$(INTDIR)\perlin.obj"
-@erase "$(INTDIR)\regcombine.obj"
-@erase "$(INTDIR)\render.obj"
-@erase "$(INTDIR)\selection.obj"
-@erase "$(INTDIR)\simulation.obj"
-@erase "$(INTDIR)\solarsys.obj"
-@erase "$(INTDIR)\spheremesh.obj"
-@erase "$(INTDIR)\star.obj"
-@erase "$(INTDIR)\stardb.obj"
-@erase "$(INTDIR)\starname.obj"
-@erase "$(INTDIR)\stellarclass.obj"
-@erase "$(INTDIR)\texmanager.obj"
-@erase "$(INTDIR)\texture.obj"
-@erase "$(INTDIR)\texturefont.obj"
-@erase "$(INTDIR)\tokenizer.obj"
-@erase "$(INTDIR)\univcoord.obj"
-@erase "$(INTDIR)\util.obj"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(INTDIR)\vertexlist.obj"
-@erase "$(INTDIR)\vertexprog.obj"
-@erase "$(INTDIR)\visstars.obj"
-@erase "$(INTDIR)\wingotodlg.obj"
-@erase "$(INTDIR)\winmain.obj"
-@erase "$(INTDIR)\winssbrowser.obj"
-@erase "$(INTDIR)\winstarbrowser.obj"
-@erase "$(INTDIR)\wintourguide.obj"
-@erase "$(INTDIR)\wintimer.obj"
-@erase "$(OUTDIR)\celestia.exe"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe
CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D WINVER=0x0400 /D _WIN32_WINNT=0x0400 /Fp"$(INTDIR)\celestia.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.c{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
MTL=midl.exe
MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
RSC=rc.exe
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\celestia.res" /d "NDEBUG"
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\celestia.bsc"
BSC32_SBRS=
LINK32=link.exe
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib winmm.lib opengl32.lib glu32.lib ijgjpeg.lib zlib.lib libpng1.lib /nologo /subsystem:windows /incremental:no /pdb:"$(OUTDIR)\celestia.pdb" /machine:I386 /out:"$(OUTDIR)\celestia.exe"
LINK32_OBJS= \
"$(INTDIR)\3dsmesh.obj" \
"$(INTDIR)\3dsmodel.obj" \
"$(INTDIR)\3dsread.obj" \
"$(INTDIR)\asterism.obj" \
"$(INTDIR)\astro.obj" \
"$(INTDIR)\bigfix.obj" \
"$(INTDIR)\body.obj" \
"$(INTDIR)\catalogxref.obj" \
"$(INTDIR)\celestiacore.obj" \
"$(INTDIR)\cmdparser.obj" \
"$(INTDIR)\color.obj" \
"$(INTDIR)\command.obj" \
"$(INTDIR)\configfile.obj" \
"$(INTDIR)\constellation.obj" \
"$(INTDIR)\customorbit.obj" \
"$(INTDIR)\debug.obj" \
"$(INTDIR)\destination.obj" \
"$(INTDIR)\dispmap.obj" \
"$(INTDIR)\execution.obj" \
"$(INTDIR)\favorites.obj" \
"$(INTDIR)\filetype.obj" \
"$(INTDIR)\frustum.obj" \
"$(INTDIR)\galaxy.obj" \
"$(INTDIR)\glext.obj" \
"$(INTDIR)\imagecapture.obj" \
"$(INTDIR)\lodspheremesh.obj" \
"$(INTDIR)\meshmanager.obj" \
"$(INTDIR)\observer.obj" \
"$(INTDIR)\octree.obj" \
"$(INTDIR)\orbit.obj" \
"$(INTDIR)\overlay.obj" \
"$(INTDIR)\parser.obj" \
"$(INTDIR)\perlin.obj" \
"$(INTDIR)\regcombine.obj" \
"$(INTDIR)\render.obj" \
"$(INTDIR)\selection.obj" \
"$(INTDIR)\simulation.obj" \
"$(INTDIR)\solarsys.obj" \
"$(INTDIR)\spheremesh.obj" \
"$(INTDIR)\star.obj" \
"$(INTDIR)\stardb.obj" \
"$(INTDIR)\starname.obj" \
"$(INTDIR)\stellarclass.obj" \
"$(INTDIR)\texmanager.obj" \
"$(INTDIR)\texture.obj" \
"$(INTDIR)\texturefont.obj" \
"$(INTDIR)\tokenizer.obj" \
"$(INTDIR)\univcoord.obj" \
"$(INTDIR)\util.obj" \
"$(INTDIR)\vertexlist.obj" \
"$(INTDIR)\vertexprog.obj" \
"$(INTDIR)\visstars.obj" \
"$(INTDIR)\wingotodlg.obj" \
"$(INTDIR)\winmain.obj" \
"$(INTDIR)\winssbrowser.obj" \
"$(INTDIR)\winstarbrowser.obj" \
"$(INTDIR)\wintourguide.obj" \
"$(INTDIR)\wintimer.obj" \
"$(INTDIR)\celestia.res"
"$(OUTDIR)\celestia.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ELSEIF "$(CFG)" == "celestia - Win32 Debug"
OUTDIR=.\Debug
INTDIR=.\Debug
# Begin Custom Macros
OutDir=.\Debug
# End Custom Macros
ALL : "$(OUTDIR)\celestia.exe"
CLEAN :
-@erase "$(INTDIR)\3dsmesh.obj"
-@erase "$(INTDIR)\3dsmodel.obj"
-@erase "$(INTDIR)\3dsread.obj"
-@erase "$(INTDIR)\asterism.obj"
-@erase "$(INTDIR)\astro.obj"
-@erase "$(INTDIR)\bigfix.obj"
-@erase "$(INTDIR)\body.obj"
-@erase "$(INTDIR)\catalogxref.obj"
-@erase "$(INTDIR)\celestia.res"
-@erase "$(INTDIR)\celestiacore.obj"
-@erase "$(INTDIR)\cmdparser.obj"
-@erase "$(INTDIR)\color.obj"
-@erase "$(INTDIR)\command.obj"
-@erase "$(INTDIR)\configfile.obj"
-@erase "$(INTDIR)\constellation.obj"
-@erase "$(INTDIR)\customorbit.obj"
-@erase "$(INTDIR)\debug.obj"
-@erase "$(INTDIR)\destination.obj"
-@erase "$(INTDIR)\dispmap.obj"
-@erase "$(INTDIR)\execution.obj"
-@erase "$(INTDIR)\favorites.obj"
-@erase "$(INTDIR)\filetype.obj"
-@erase "$(INTDIR)\frustum.obj"
-@erase "$(INTDIR)\galaxy.obj"
-@erase "$(INTDIR)\glext.obj"
-@erase "$(INTDIR)\imagecapture.obj"
-@erase "$(INTDIR)\lodspheremesh.obj"
-@erase "$(INTDIR)\meshmanager.obj"
-@erase "$(INTDIR)\observer.obj"
-@erase "$(INTDIR)\octree.obj"
-@erase "$(INTDIR)\orbit.obj"
-@erase "$(INTDIR)\overlay.obj"
-@erase "$(INTDIR)\parser.obj"
-@erase "$(INTDIR)\perlin.obj"
-@erase "$(INTDIR)\regcombine.obj"
-@erase "$(INTDIR)\render.obj"
-@erase "$(INTDIR)\selection.obj"
-@erase "$(INTDIR)\simulation.obj"
-@erase "$(INTDIR)\solarsys.obj"
-@erase "$(INTDIR)\spheremesh.obj"
-@erase "$(INTDIR)\star.obj"
-@erase "$(INTDIR)\stardb.obj"
-@erase "$(INTDIR)\starname.obj"
-@erase "$(INTDIR)\stellarclass.obj"
-@erase "$(INTDIR)\texmanager.obj"
-@erase "$(INTDIR)\texture.obj"
-@erase "$(INTDIR)\texturefont.obj"
-@erase "$(INTDIR)\tokenizer.obj"
-@erase "$(INTDIR)\univcoord.obj"
-@erase "$(INTDIR)\util.obj"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(INTDIR)\vc60.pdb"
-@erase "$(INTDIR)\visstars.obj"
-@erase "$(INTDIR)\vertexlist.obj"
-@erase "$(INTDIR)\vertexprog.obj"
-@erase "$(INTDIR)\wingotodlg.obj"
-@erase "$(INTDIR)\winmain.obj"
-@erase "$(INTDIR)\winssbrowser.obj"
-@erase "$(INTDIR)\winstarbrowser.obj"
-@erase "$(INTDIR)\wintimer.obj"
-@erase "$(INTDIR)\wintourguide.obj"
-@erase "$(OUTDIR)\celestia.exe"
-@erase "$(OUTDIR)\celestia.ilk"
-@erase "$(OUTDIR)\celestia.pdb"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe
CPP_PROJ=/nologo /MLd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D WINVER=0x0400 /D _WIN32_WINNT=0x0400 /Fp"$(INTDIR)\celestia.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.c{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
MTL=midl.exe
MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
RSC=rc.exe
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\celestia.res" /d "_DEBUG"
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\celestia.bsc"
BSC32_SBRS=
LINK32=link.exe
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib winmm.lib opengl32.lib glu32.lib ijgjpeg.lib zlibd.lib libpng1d.lib /nologo /subsystem:windows /incremental:yes /pdb:"$(OUTDIR)\celestia.pdb" /debug /machine:I386 /out:"$(OUTDIR)\celestia.exe" /pdbtype:sept
LINK32_OBJS= \
"$(INTDIR)\3dsmesh.obj" \
"$(INTDIR)\3dsmodel.obj" \
"$(INTDIR)\3dsread.obj" \
"$(INTDIR)\asterism.obj" \
"$(INTDIR)\astro.obj" \
"$(INTDIR)\bigfix.obj" \
"$(INTDIR)\body.obj" \
"$(INTDIR)\catalogxref.obj" \
"$(INTDIR)\celestiacore.obj" \
"$(INTDIR)\cmdparser.obj" \
"$(INTDIR)\color.obj" \
"$(INTDIR)\command.obj" \
"$(INTDIR)\configfile.obj" \
"$(INTDIR)\constellation.obj" \
"$(INTDIR)\customorbit.obj" \
"$(INTDIR)\debug.obj" \
"$(INTDIR)\destination.obj" \
"$(INTDIR)\dispmap.obj" \
"$(INTDIR)\execution.obj" \
"$(INTDIR)\favorites.obj" \
"$(INTDIR)\filetype.obj" \
"$(INTDIR)\frustum.obj" \
"$(INTDIR)\galaxy.obj" \
"$(INTDIR)\glext.obj" \
"$(INTDIR)\imagecapture.obj" \
"$(INTDIR)\lodspheremesh.obj" \
"$(INTDIR)\meshmanager.obj" \
"$(INTDIR)\observer.obj" \
"$(INTDIR)\octree.obj" \
"$(INTDIR)\orbit.obj" \
"$(INTDIR)\overlay.obj" \
"$(INTDIR)\parser.obj" \
"$(INTDIR)\perlin.obj" \
"$(INTDIR)\regcombine.obj" \
"$(INTDIR)\render.obj" \
"$(INTDIR)\selection.obj" \
"$(INTDIR)\simulation.obj" \
"$(INTDIR)\solarsys.obj" \
"$(INTDIR)\spheremesh.obj" \
"$(INTDIR)\star.obj" \
"$(INTDIR)\stardb.obj" \
"$(INTDIR)\starname.obj" \
"$(INTDIR)\stellarclass.obj" \
"$(INTDIR)\texmanager.obj" \
"$(INTDIR)\texture.obj" \
"$(INTDIR)\texturefont.obj" \
"$(INTDIR)\tokenizer.obj" \
"$(INTDIR)\univcoord.obj" \
"$(INTDIR)\util.obj" \
"$(INTDIR)\visstars.obj" \
"$(INTDIR)\vertexlist.obj" \
"$(INTDIR)\vertexprog.obj" \
"$(INTDIR)\wingotodlg.obj" \
"$(INTDIR)\winmain.obj" \
"$(INTDIR)\winssbrowser.obj" \
"$(INTDIR)\winstarbrowser.obj" \
"$(INTDIR)\wintimer.obj" \
"$(INTDIR)\wintourguide.obj" \
"$(INTDIR)\celestia.res"
"$(OUTDIR)\celestia.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ENDIF
!IF "$(NO_EXTERNAL_DEPS)" != "1"
!IF EXISTS("celestia.dep")
!INCLUDE "celestia.dep"
!ELSE
!MESSAGE Warning: cannot find "celestia.dep"
!ENDIF
!ENDIF
!IF "$(CFG)" == "celestia - Win32 Release" || "$(CFG)" == "celestia - Win32 Debug"
SOURCE=.\src\3dsmesh.cpp
"$(INTDIR)\3dsmesh.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\3dsmodel.cpp
"$(INTDIR)\3dsmodel.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\3dsread.cpp
"$(INTDIR)\3dsread.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\asterism.cpp
"$(INTDIR)\asterism.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\astro.cpp
"$(INTDIR)\astro.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\bigfix.cpp
"$(INTDIR)\bigfix.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\body.cpp
"$(INTDIR)\body.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\catalogxref.cpp
"$(INTDIR)\catalogxref.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\color.cpp
"$(INTDIR)\color.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\celestiacore.cpp
"$(INTDIR)\celestiacore.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\cmdparser.cpp
"$(INTDIR)\cmdparser.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\command.cpp
"$(INTDIR)\command.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\configfile.cpp
"$(INTDIR)\configfile.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\constellation.cpp
"$(INTDIR)\constellation.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\customorbit.cpp
"$(INTDIR)\customorbit.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\debug.cpp
"$(INTDIR)\debug.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\destination.cpp
"$(INTDIR)\destination.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\dispmap.cpp
"$(INTDIR)\dispmap.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\execution.cpp
"$(INTDIR)\execution.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\favorites.cpp
"$(INTDIR)\favorites.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\filetype.cpp
"$(INTDIR)\filetype.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\frustum.cpp
"$(INTDIR)\frustum.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\galaxy.cpp
"$(INTDIR)\galaxy.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\glext.cpp
"$(INTDIR)\glext.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\imagecapture.cpp
"$(INTDIR)\imagecapture.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\lodspheremesh.cpp
"$(INTDIR)\lodspheremesh.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\meshmanager.cpp
"$(INTDIR)\meshmanager.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\observer.cpp
"$(INTDIR)\observer.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\octree.cpp
"$(INTDIR)\octree.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\orbit.cpp
"$(INTDIR)\orbit.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\overlay.cpp
"$(INTDIR)\overlay.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\parser.cpp
"$(INTDIR)\parser.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\perlin.cpp
"$(INTDIR)\perlin.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\regcombine.cpp
"$(INTDIR)\regcombine.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\render.cpp
"$(INTDIR)\render.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\selection.cpp
"$(INTDIR)\selection.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\simulation.cpp
"$(INTDIR)\simulation.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\solarsys.cpp
"$(INTDIR)\solarsys.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\spheremesh.cpp
"$(INTDIR)\spheremesh.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\star.cpp
"$(INTDIR)\star.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\stardb.cpp
"$(INTDIR)\stardb.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\starname.cpp
"$(INTDIR)\starname.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\stellarclass.cpp
"$(INTDIR)\stellarclass.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\texmanager.cpp
"$(INTDIR)\texmanager.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\texture.cpp
"$(INTDIR)\texture.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\texturefont.cpp
"$(INTDIR)\texturefont.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\tokenizer.cpp
"$(INTDIR)\tokenizer.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\univcoord.cpp
"$(INTDIR)\univcoord.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\util.cpp
"$(INTDIR)\util.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\visstars.cpp
"$(INTDIR)\visstars.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\vertexlist.cpp
"$(INTDIR)\vertexlist.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\vertexprog.cpp
"$(INTDIR)\vertexprog.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\wingotodlg.cpp
"$(INTDIR)\wingotodlg.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\winmain.cpp
"$(INTDIR)\winmain.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\winssbrowser.cpp
"$(INTDIR)\winssbrowser.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\winstarbrowser.cpp
"$(INTDIR)\winstarbrowser.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\wintimer.cpp
"$(INTDIR)\wintimer.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\src\wintourguide.cpp
"$(INTDIR)\wintourguide.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
SOURCE=.\res\celestia.rc
!IF "$(CFG)" == "celestia - Win32 Release"
"$(INTDIR)\celestia.res" : $(SOURCE) "$(INTDIR)"
$(RSC) /l 0x409 /fo"$(INTDIR)\celestia.res" /i "res" /d "NDEBUG" $(SOURCE)
!ELSEIF "$(CFG)" == "celestia - Win32 Debug"
"$(INTDIR)\celestia.res" : $(SOURCE) "$(INTDIR)"
$(RSC) /l 0x409 /fo"$(INTDIR)\celestia.res" /i "res" /d "_DEBUG" $(SOURCE)
!ENDIF
!ENDIF

20
celestia.sln 100644
View File

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual C++ Express 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "celestia", "celestia.vcproj", "{DDDE8EA8-F55A-491B-A102-11C9C01B4B58}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DDDE8EA8-F55A-491B-A102-11C9C01B4B58}.Debug|Win32.ActiveCfg = Debug|Win32
{DDDE8EA8-F55A-491B-A102-11C9C01B4B58}.Debug|Win32.Build.0 = Debug|Win32
{DDDE8EA8-F55A-491B-A102-11C9C01B4B58}.Release|Win32.ActiveCfg = Release|Win32
{DDDE8EA8-F55A-491B-A102-11C9C01B4B58}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

1691
celestia.vcproj 100644

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +0,0 @@
#include <charconv>
int main()
{
const char* src = "123";
float x;
std::from_chars_result result = std::from_chars(src, src + 3, x);
}

View File

@ -1,8 +0,0 @@
#include <charconv>
int main()
{
const char* src = "123";
int x;
std::from_chars_result result = std::from_chars(src, src + 3, x, 10);
}

View File

@ -1,11 +0,0 @@
function(EnableFastMath flag)
if(NOT flag)
return()
endif()
if(MSVC)
add_compile_options("/fp:fast")
else()
add_compile_options("-ffast-math -fno-finite-math-only")
endif()
endfunction()

View File

@ -1,58 +0,0 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindCspice
# --------
#
# Find the NAIF toolkit cspice headers and libraries.
#
# This module reports information about the Gettext cspice
# installation in several variables. General variables::
#
# CSPICE_FOUND - true if the cspice headers and libraries were found
# CSPICE_INCLUDE_DIRS - the directory containing the cspice headers
# CSPICE_LIBRARIES - cspice libraries to be linked
#
# The following cache variables may also be set::
#
# CSPICE_INCLUDE_DIR - the directory containing the cspice headers
# CSPICE_LIBRARY - the cspice library (if any)
# Find include directory
find_path(CSPICE_INCLUDE_DIR
NAMES "SpiceUsr.h"
HINTS CSPICE_DIR
PATH_SUFFIXES "include" "include/cspice"
DOC "cspice include directory")
mark_as_advanced(CSPICE_INCLUDE_DIR)
# Find CSPICE library
find_library(CSPICE_LIBRARY
NAMES "cspice" "libcspice" "cspice.a"
HINTS CSPICE_DIR
DOC "cspice libraries")
mark_as_advanced(CSPICE_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CSPICE
FOUND_VAR CSPICE_FOUND
REQUIRED_VARS CSPICE_INCLUDE_DIR CSPICE_LIBRARY
FAIL_MESSAGE "Failed to find cspice")
if(CSPICE_FOUND)
set(CSPICE_INCLUDE_DIRS "${CSPICE_INCLUDE_DIR}")
if(CSPICE_LIBRARY)
set(CSPICE_LIBRARIES "${CSPICE_LIBRARY}")
else()
unset(CSPICE_LIBRARIES)
endif()
if(NOT TARGET CSPICE::CSPICE)
add_library(CSPICE::CSPICE UNKNOWN IMPORTED)
set_target_properties(CSPICE::CSPICE PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${CSPICE_INCLUDE_DIRS}")
set_target_properties(CSPICE::CSPICE PROPERTIES
IMPORTED_LOCATION "${CSPICE_LIBRARY}")
endif()
endif()

View File

@ -1,86 +0,0 @@
macro(find_ffmpeg_lib)
if(NOT(${ARGC} EQUAL 3))
message(FATAL_ERROR "find_ffmpeg_lib requires exactly 3 arguments")
endif()
set(__name ${ARGV0})
set(__header ${ARGV1})
set(__lib ${ARGV2})
find_library(${__name}_LIBRARY ${__lib})
find_path(${__name}_INCLUDE_DIR ${__header}
HINTS /usr/include/ffmpeg)
set(FPHSA_NAME_MISMATCHED 1)
find_package_handle_standard_args(${__name}
FOUND_VAR ${__name}_FOUND
REQUIRED_VARS ${__name}_INCLUDE_DIR ${__name}_LIBRARY
FAIL_MESSAGE "Failed to find ${__name}")
unset(FPHSA_NAME_MISMATCHED)
set(${__name}_INCLUDE_DIRS ${${__name}_INCLUDE_DIR})
set(${__name}_LIBRARIES ${${__name}_LIBRARY})
list(APPEND FFMPEG_INCLUDE_DIRS ${${__name}_INCLUDE_DIR})
list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS)
list(APPEND FFMPEG_LIBRARIES ${${__name}_LIBRARY})
list(REMOVE_DUPLICATES FFMPEG_LIBRARIES)
if(NOT TARGET FFMPEG::${__name})
add_library(FFMPEG::${__name} UNKNOWN IMPORTED)
set_target_properties(FFMPEG::${__name} PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${${__name}_INCLUDE_DIR}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${${__name}_LIBRARY}")
endif()
mark_as_advanced(${__name}_INCLUDE_DIR ${__name}_LIBRARY ${__name}_INCLUDE_DIRS ${__name}_LIBRARIES)
endmacro()
include(FindPackageHandleStandardArgs)
if(FFMPEG_FIND_COMPONENTS)
foreach(component ${FFMPEG_FIND_COMPONENTS})
string(TOUPPER ${component} _COMPONENT)
set(FFMPEG_USE_${_COMPONENT} 1)
endforeach()
endif()
set(FFMPEG_INCLUDE_DIRS)
set(FFMPEG_LIBRARIES)
if(FFMPEG_USE_AVCODEC)
find_ffmpeg_lib(AVCODEC libavcodec/avcodec.h avcodec)
endif()
if(FFMPEG_USE_AVFORMAT)
find_ffmpeg_lib(AVFORMAT libavformat/avformat.h avformat)
endif()
if(FFMPEG_USE_AVUTIL)
find_ffmpeg_lib(AVUTIL libavutil/avutil.h avutil)
endif()
if(FFMPEG_USE_AVDEVICE)
find_ffmpeg_lib(AVDEVICE libavdevice/avdevice.h avdevice)
endif()
if(FFMPEG_USE_SWSCALE)
find_ffmpeg_lib(SWSCALE libswscale/swscale.h swscale)
endif()
if(NOT TARGET FFMPEG::FFMPEG)
add_library(FFMPEG::FFMPEG UNKNOWN IMPORTED)
set_target_properties(FFMPEG::FFMPEG PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIR}")
if(TARGET FFMPEG::AVCODEC)
set_target_properties(FFMPEG::FFMPEG PROPERTIES INTERFACE_LINK_LIBRARIES FFMPEG::AVCODEC)
endif()
if(TARGET FFMPEG::AVUTIL)
set_target_properties(FFMPEG::FFMPEG PROPERTIES INTERFACE_LINK_LIBRARIES FFMPEG::AVUTIL)
endif()
if(TARGET FFMPEG::AVDEVICE)
set_target_properties(FFMPEG::FFMPEG PROPERTIES INTERFACE_LINK_LIBRARIES FFMPEG::AVDEVICE)
endif()
if(TARGET FFMPEG::AVFORMAT)
set_target_properties(FFMPEG::FFMPEG PROPERTIES INTERFACE_LINK_LIBRARIES FFMPEG::AVFORMAT)
endif()
if(TARGET FFMPEG::SWSCALE)
set_target_properties(FFMPEG::FFMPEG PROPERTIES INTERFACE_LINK_LIBRARIES FFMPEG::SWSCALE)
endif()
endif()

View File

@ -1,247 +0,0 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#[=======================================================================[.rst:
FindFilesystem
##############
This module supports the C++17 standard library's filesystem utilities. Use the
:imp-target:`std::filesystem` imported target to
Options
*******
The ``COMPONENTS`` argument to this module supports the following values:
.. find-component:: Experimental
:name: fs.Experimental
Allows the module to find the "experimental" Filesystem TS version of the
Filesystem library. This is the library that should be used with the
``std::experimental::filesystem`` namespace.
.. find-component:: Final
:name: fs.Final
Finds the final C++17 standard version of the filesystem library.
If no components are provided, behaves as if the
:find-component:`fs.Final` component was specified.
If both :find-component:`fs.Experimental` and :find-component:`fs.Final` are
provided, first looks for ``Final``, and falls back to ``Experimental`` in case
of failure. If ``Final`` is found, :imp-target:`std::filesystem` and all
:ref:`variables <fs.variables>` will refer to the ``Final`` version.
Imported Targets
****************
.. imp-target:: std::filesystem
The ``std::filesystem`` imported target is defined when any requested
version of the C++ filesystem library has been found, whether it is
*Experimental* or *Final*.
If no version of the filesystem library is available, this target will not
be defined.
.. note::
This target has ``cxx_std_17`` as an ``INTERFACE``
:ref:`compile language standard feature <req-lang-standards>`. Linking
to this target will automatically enable C++17 if no later standard
version is already required on the linking target.
.. _fs.variables:
Variables
*********
.. variable:: CXX_FILESYSTEM_IS_EXPERIMENTAL
Set to ``TRUE`` when the :find-component:`fs.Experimental` version of C++
filesystem library was found, otherwise ``FALSE``.
.. variable:: CXX_FILESYSTEM_HAVE_FS
Set to ``TRUE`` when a filesystem header was found.
.. variable:: CXX_FILESYSTEM_HEADER
Set to either ``filesystem`` or ``experimental/filesystem`` depending on
whether :find-component:`fs.Final` or :find-component:`fs.Experimental` was
found.
.. variable:: CXX_FILESYSTEM_NAMESPACE
Set to either ``std::filesystem`` or ``std::experimental::filesystem``
depending on whether :find-component:`fs.Final` or
:find-component:`fs.Experimental` was found.
Examples
********
Using `find_package(Filesystem)` with no component arguments:
.. code-block:: cmake
find_package(Filesystem REQUIRED)
add_executable(my-program main.cpp)
target_link_libraries(my-program PRIVATE std::filesystem)
#]=======================================================================]
if(TARGET std::filesystem)
# This module has already been processed. Don't do it again.
return()
endif()
cmake_minimum_required(VERSION 3.10)
include(CMakePushCheckState)
include(CheckIncludeFileCXX)
# If we're not cross-compiling, try to run test executables.
# Otherwise, assume that compile + link is a sufficient check.
if(CMAKE_CROSSCOMPILING)
include(CheckCXXSourceCompiles)
macro(_cmcm_check_cxx_source code var)
check_cxx_source_compiles("${code}" ${var})
endmacro()
else()
include(CheckCXXSourceRuns)
macro(_cmcm_check_cxx_source code var)
check_cxx_source_runs("${code}" ${var})
endmacro()
endif()
cmake_push_check_state()
set(CMAKE_REQUIRED_QUIET ${Filesystem_FIND_QUIETLY})
# All of our tests required C++17 or later
set(CMAKE_CXX_STANDARD 17)
# Normalize and check the component list we were given
set(want_components ${Filesystem_FIND_COMPONENTS})
if(Filesystem_FIND_COMPONENTS STREQUAL "")
set(want_components Final)
endif()
# Warn on any unrecognized components
set(extra_components ${want_components})
list(REMOVE_ITEM extra_components Final Experimental)
foreach(component IN LISTS extra_components)
message(WARNING "Extraneous find_package component for Filesystem: ${component}")
endforeach()
# Detect which of Experimental and Final we should look for
set(find_experimental TRUE)
set(find_final TRUE)
if(NOT "Final" IN_LIST want_components)
set(find_final FALSE)
endif()
if(NOT "Experimental" IN_LIST want_components)
set(find_experimental FALSE)
endif()
if(find_final)
check_include_file_cxx("filesystem" _CXX_FILESYSTEM_HAVE_HEADER)
mark_as_advanced(_CXX_FILESYSTEM_HAVE_HEADER)
if(_CXX_FILESYSTEM_HAVE_HEADER)
# We found the non-experimental header. Don't bother looking for the
# experimental one.
set(find_experimental FALSE)
endif()
else()
set(_CXX_FILESYSTEM_HAVE_HEADER FALSE)
endif()
if(find_experimental)
check_include_file_cxx("experimental/filesystem" _CXX_FILESYSTEM_HAVE_EXPERIMENTAL_HEADER)
mark_as_advanced(_CXX_FILESYSTEM_HAVE_EXPERIMENTAL_HEADER)
else()
set(_CXX_FILESYSTEM_HAVE_EXPERIMENTAL_HEADER FALSE)
endif()
if(_CXX_FILESYSTEM_HAVE_HEADER)
set(_have_fs TRUE)
set(_fs_header filesystem)
set(_fs_namespace std::filesystem)
set(_is_experimental FALSE)
elseif(_CXX_FILESYSTEM_HAVE_EXPERIMENTAL_HEADER)
set(_have_fs TRUE)
set(_fs_header experimental/filesystem)
set(_fs_namespace std::experimental::filesystem)
set(_is_experimental TRUE)
else()
set(_have_fs FALSE)
endif()
set(CXX_FILESYSTEM_HAVE_FS ${_have_fs} CACHE BOOL "TRUE if we have the C++ filesystem headers")
set(CXX_FILESYSTEM_HEADER ${_fs_header} CACHE STRING "The header that should be included to obtain the filesystem APIs")
set(CXX_FILESYSTEM_NAMESPACE ${_fs_namespace} CACHE STRING "The C++ namespace that contains the filesystem APIs")
set(CXX_FILESYSTEM_IS_EXPERIMENTAL ${_is_experimental} CACHE BOOL "TRUE if the C++ filesystem library is the experimental version")
set(_found FALSE)
if(CXX_FILESYSTEM_HAVE_FS)
# We have some filesystem library available. Do link checks
string(CONFIGURE [[
#include <cstdlib>
#include <@CXX_FILESYSTEM_HEADER@>
int main() {
auto cwd = @CXX_FILESYSTEM_NAMESPACE@::current_path();
printf("%s", cwd.c_str());
return EXIT_SUCCESS;
}
]] code @ONLY)
# Check a simple filesystem program without any linker flags
_cmcm_check_cxx_source("${code}" CXX_FILESYSTEM_NO_LINK_NEEDED)
set(can_link ${CXX_FILESYSTEM_NO_LINK_NEEDED})
if(NOT CXX_FILESYSTEM_NO_LINK_NEEDED)
set(prev_libraries ${CMAKE_REQUIRED_LIBRARIES})
# Add the libstdc++ flag
set(CMAKE_REQUIRED_LIBRARIES ${prev_libraries} -lstdc++fs)
_cmcm_check_cxx_source("${code}" CXX_FILESYSTEM_STDCPPFS_NEEDED)
set(can_link ${CXX_FILESYSTEM_STDCPPFS_NEEDED})
if(NOT CXX_FILESYSTEM_STDCPPFS_NEEDED)
# Try the libc++ flag
set(CMAKE_REQUIRED_LIBRARIES ${prev_libraries} -lc++fs)
_cmcm_check_cxx_source("${code}" CXX_FILESYSTEM_CPPFS_NEEDED)
set(can_link ${CXX_FILESYSTEM_CPPFS_NEEDED})
endif()
endif()
if(can_link)
add_library(std::filesystem INTERFACE IMPORTED)
set_property(TARGET std::filesystem APPEND PROPERTY INTERFACE_COMPILE_FEATURES cxx_std_17)
set(_found TRUE)
if(CXX_FILESYSTEM_NO_LINK_NEEDED)
# Nothing to add...
elseif(CXX_FILESYSTEM_STDCPPFS_NEEDED)
set_property(TARGET std::filesystem APPEND PROPERTY INTERFACE_LINK_LIBRARIES -lstdc++fs)
elseif(CXX_FILESYSTEM_CPPFS_NEEDED)
set_property(TARGET std::filesystem APPEND PROPERTY INTERFACE_LINK_LIBRARIES -lc++fs)
endif()
endif()
endif()
cmake_pop_check_state()
set(Filesystem_FOUND ${_found} CACHE BOOL "TRUE if we can run a program using std::filesystem" FORCE)
if(Filesystem_FIND_REQUIRED AND NOT Filesystem_FOUND)
message(FATAL_ERROR "Cannot run simple program using std::filesystem")
endif()

View File

@ -1,72 +0,0 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindIntl
# --------
#
# Find the Gettext libintl headers and libraries.
#
# This module reports information about the Gettext libintl
# installation in several variables. General variables::
#
# Intl_FOUND - true if the libintl headers and libraries were found
# Intl_INCLUDE_DIRS - the directory containing the libintl headers
# Intl_LIBRARIES - libintl libraries to be linked
#
# The following cache variables may also be set::
#
# Intl_INCLUDE_DIR - the directory containing the libintl headers
# Intl_LIBRARY - the libintl library (if any)
#
# .. note::
# On some platforms, such as Linux with GNU libc, the gettext
# functions are present in the C standard library and libintl
# is not required. ``Intl_LIBRARIES`` will be empty in this
# case.
#
# .. note::
# If you wish to use the Gettext tools (``msgmerge``,
# ``msgfmt``, etc.), use :module:`FindGettext`.
# Written by Roger Leigh <rleigh@codelibre.net>
# brew support is by Alexis Hildebrandt <https://github.com/afh>
# Append custom gettext path to CMAKE_PREFIX_PATH
# if installed via Mac Hombrew
if(APPLE)
find_program(HOMEBREW_PROG brew)
if(EXISTS ${HOMEBREW_PROG})
execute_process(COMMAND ${HOMEBREW_PROG} --prefix gettext
OUTPUT_STRIP_TRAILING_WHITESPACE
OUTPUT_VARIABLE HOMEBREW_GETTEXT_PREFIX)
list(APPEND CMAKE_PREFIX_PATH "${HOMEBREW_GETTEXT_PREFIX}")
endif()
endif()
# Find include directory
find_path(Intl_INCLUDE_DIR
NAMES "libintl.h"
DOC "libintl include directory")
mark_as_advanced(Intl_INCLUDE_DIR)
# Find all Intl libraries
find_library(Intl_LIBRARY
NAMES "intl" "libintl"
DOC "libintl libraries (if not in the C library)")
mark_as_advanced(Intl_LIBRARY)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Intl
FOUND_VAR Intl_FOUND
REQUIRED_VARS Intl_INCLUDE_DIR
FAIL_MESSAGE "Failed to find Gettext libintl")
if(Intl_FOUND)
set(Intl_INCLUDE_DIRS "${Intl_INCLUDE_DIR}")
if(Intl_LIBRARY)
set(Intl_LIBRARIES "${Intl_LIBRARY}")
else()
unset(Intl_LIBRARIES)
endif()
endif()

View File

@ -1,59 +0,0 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLibavif
# --------
#
# Find the avif headers and libraries.
#
# This module reports information about the avif
# installation in several variables. General variables::
#
# LIBAVIF_FOUND - true if the avif headers and libraries were found
# LIBAVIF_INCLUDE_DIRS - the directory containing the avif headers
# LIBAVIF_LIBRARIES - avif libraries to be linked
#
# The following cache variables may also be set::
#
# LIBAVIF_INCLUDE_DIR - the directory containing the avif headers
# LIBAVIF_LIBRARY - the avif library (if any)
# Find include directory
# TODO: use pkgconfig
find_path(LIBAVIF_INCLUDE_DIR
NAMES avif/avif.h
HINTS LIBAVIF_DIR
DOC "avif headers")
mark_as_advanced(LIBAVIF_INCLUDE_DIR)
find_library(LIBAVIF_LIBRARY
NAMES avif
HINTS LIBAVIF_DIR
DOC "avif libraries")
mark_as_advanced(LIBAVIF_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libavif
FOUND_VAR LIBAVIF_FOUND
REQUIRED_VARS LIBAVIF_INCLUDE_DIR LIBAVIF_LIBRARY
FAIL_MESSAGE "Failed to find avif")
if(LIBAVIF_FOUND)
set(LIBAVIF_INCLUDE_DIRS "${LIBAVIF_INCLUDE_DIR}")
if(LIBAVIF_LIBRARY)
set(LIBAVIF_LIBRARIES "${LIBAVIF_LIBRARY}")
else()
unset(LIBAVIF_LIBRARIES)
endif()
if(NOT TARGET libavif::libavif)
add_library(libavif::libavif UNKNOWN IMPORTED)
set_target_properties(libavif::libavif PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${LIBAVIF_INCLUDE_DIRS}")
set_target_properties(libavif::libavif PROPERTIES
IMPORTED_LOCATION "${LIBAVIF_LIBRARY}")
endif()
endif()

View File

@ -1,59 +0,0 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLibepoxy
# --------
#
# Find the epoxy headers and libraries.
#
# This module reports information about the epoxy
# installation in several variables. General variables::
#
# LIBEPOXY_FOUND - true if the epoxy headers and libraries were found
# LIBEPOXY_INCLUDE_DIRS - the directory containing the epoxy headers
# LIBEPOXY_LIBRARIES - epoxy libraries to be linked
#
# The following cache variables may also be set::
#
# LIBEPOXY_INCLUDE_DIR - the directory containing the epoxy headers
# LIBEPOXY_LIBRARY - the epoxy library (if any)
# Find include directory
# TODO: use pkgconfig
find_path(LIBEPOXY_INCLUDE_DIR
NAMES epoxy/gl.h
HINTS LIBEPOXY_DIR
DOC "epoxy headers")
mark_as_advanced(LIBEPOXY_INCLUDE_DIR)
find_library(LIBEPOXY_LIBRARY
NAMES epoxy
HINTS LIBEPOXY_DIR
DOC "epoxy libraries")
mark_as_advanced(LIBEPOXY_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libepoxy
FOUND_VAR LIBEPOXY_FOUND
REQUIRED_VARS LIBEPOXY_INCLUDE_DIR LIBEPOXY_LIBRARY
FAIL_MESSAGE "Failed to find epoxy")
if(LIBEPOXY_FOUND)
set(LIBEPOXY_INCLUDE_DIRS "${LIBEPOXY_INCLUDE_DIR}")
if(LIBEPOXY_LIBRARY)
set(LIBEPOXY_LIBRARIES "${LIBEPOXY_LIBRARY}")
else()
unset(LIBEPOXY_LIBRARIES)
endif()
if(NOT TARGET libepoxy::libepoxy)
add_library(libepoxy::libepoxy UNKNOWN IMPORTED)
set_target_properties(libepoxy::libepoxy PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${LIBEPOXY_INCLUDE_DIRS}")
set_target_properties(libepoxy::libepoxy PROPERTIES
IMPORTED_LOCATION "${LIBEPOXY_LIBRARY}")
endif()
endif()

View File

@ -1,107 +0,0 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#.rst:
# FindLuaJIT
# ---------
#
#
#
# Locate Lua library This module defines
#
# ::
#
# LUAJIT_FOUND, if false, do not try to link to Lua
# LUA_LIBRARIES
# LUA_INCLUDE_DIR, where to find lua.h
# LUA_VERSION_STRING, the version of Lua found (since CMake 2.8.8)
# LUA_VERSION_MAJOR - the major version of Lua
# LUA_VERSION_MINOR - the minor version of Lua
# LUA_VERSION_PATCH - the patch version of Lua
# LUAJIT_VERSION_STRING, the version of LuaJIT found (since CMake 2.8.8)
# LUAJIT_VERSION_MAJOR - the major version of LuaJIT
# LUAJIT_VERSION_MINOR - the minor version of LuaJIT
# LUAJIT_VERSION_PATCH - the patch version of LuaJIT
#
#
#
# Note that the expected include convention is
#
# ::
#
# #include "lua.h"
#
# and not
#
# ::
#
# #include <lua/lua.h>
#
# This is because, the lua location is not standardized and may exist in
# locations other than lua/
find_path(LUA_INCLUDE_DIR luajit.h
HINTS
ENV LUA_DIR
PATH_SUFFIXES include/luajit-2.0 include/luajit-2.1 include/luajit
PATHS
~/Library/Frameworks
/Library/Frameworks
/sw # Fink
/opt/local # DarwinPorts
/opt/csw # Blastwave
/opt
)
find_library(LUA_LIBRARY
NAMES luajit-5.1 lua51
HINTS
ENV LUA_DIR
PATH_SUFFIXES lib
PATHS
~/Library/Frameworks
/Library/Frameworks
/sw
/opt/local
/opt/csw
/opt
)
if(LUA_LIBRARY)
# include the math library for Unix
if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU)
find_library(LUA_MATH_LIBRARY m)
set( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY};${CMAKE_DL_LIBS}" CACHE STRING "Lua Libraries")
# For Windows and Mac, don't need to explicitly include the math library
else()
set( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries")
endif()
endif()
if(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h")
file(STRINGS "${LUA_INCLUDE_DIR}/lua.h" lua_version_str REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua .+\"")
string(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([^\"]+)\".*" "\\1" LUA_VERSION_STRING "${lua_version_str}")
unset(lua_version_str)
string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" LUA_VERSION_MAJOR "${LUA_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" LUA_VERSION_MINOR "${LUA_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" LUA_VERSION_PATCH "${LUA_VERSION_STRING}")
endif()
if(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/luajit.h")
file(STRINGS "${LUA_INCLUDE_DIR}/luajit.h" lua_version_str REGEX "^#define[ \t]+LUAJIT_VERSION[ \t]+\".+\"")
string(REGEX REPLACE "^#define[ \t]+LUAJIT_VERSION[ \t]+\"LuaJIT ([0-9.]+).*\"" "\\1" LUAJIT_VERSION_STRING "${lua_version_str}")
unset(lua_version_str)
string(REGEX REPLACE "^([0-9]+)\\.[0-9.]*$" "\\1" LUAJIT_VERSION_MAJOR "${LUAJIT_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.([0-9]+)[0-9.]*$" "\\1" LUAJIT_VERSION_MINOR "${LUAJIT_VERSION_STRING}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]).*" "\\1" LUAJIT_VERSION_PATCH "${LUAJIT_VERSION_STRING}")
endif()
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
# all listed variables are TRUE
find_package_handle_standard_args(LuaJIT
REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR
VERSION_VAR LUAJIT_VERSION_STRING)
mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_MATH_LIBRARY)

View File

@ -1,49 +0,0 @@
macro(GETTEXT_CREATE_TRANSLATIONS2 _potFile _firstPoFileArg)
# make it a real variable, so we can modify it here
set(_firstPoFile "${_firstPoFileArg}")
set(_gmoFiles)
get_filename_component(_potName ${_potFile} NAME)
string(REGEX REPLACE "^(.+)(\\.[^.]+)$" "\\1" _potBasename ${_potName})
get_filename_component(_absPotFile ${_potFile} ABSOLUTE)
set(_addToAll)
if(${_firstPoFile} STREQUAL "ALL")
set(_addToAll "ALL")
set(_firstPoFile)
endif()
foreach (_currentPoFile ${_firstPoFile} ${ARGN})
get_filename_component(_absFile ${_currentPoFile} ABSOLUTE)
get_filename_component(_abs_PATH ${_absFile} PATH)
get_filename_component(_lang ${_absFile} NAME_WE)
set(_gmoFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.gmo)
set(_poFile ${CMAKE_CURRENT_BINARY_DIR}/${_lang}.po)
add_custom_command(
OUTPUT ${_gmoFile}
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --output-file=${_poFile} --lang=${_lang} --sort-output ${_absFile} ${_absPotFile}
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${_gmoFile} ${_poFile}
DEPENDS ${_absPotFile} ${_absFile}
)
if(NATIVE_OSX_APP)
install(FILES ${_gmoFile} DESTINATION Resources/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
else()
install(FILES ${_gmoFile} DESTINATION ${CMAKE_INSTALL_LOCALEDIR}/${_lang}/LC_MESSAGES RENAME ${_potBasename}.mo)
endif()
set(_gmoFiles ${_gmoFiles} ${_gmoFile})
endforeach ()
if(NOT TARGET translations)
add_custom_target(translations)
endif()
_GETTEXT_GET_UNIQUE_TARGET_NAME(translations uniqueTargetName)
add_custom_target(${uniqueTargetName} ${_addToAll} DEPENDS ${_gmoFiles})
add_dependencies(translations ${uniqueTargetName})
endmacro()

View File

@ -1,11 +0,0 @@
macro(test_case)
set(trgt ${ARGV0})
set(libs ${ARGV})
list(REMOVE_AT libs 0 0)
add_executable(${trgt} $<TARGET_OBJECTS:catch_main> "${trgt}_test.cpp")
target_include_directories(${trgt} PRIVATE "${CMAKE_SOURCE_DIR}/test/common")
target_link_libraries(${trgt} PRIVATE celestia ${libs})
add_test(${trgt} ${trgt})
set_target_properties(${trgt} PROPERTIES FOLDER test/unit)
endmacro()

View File

@ -1,5 +0,0 @@
# the RPATH to be used when installing, but only if it's not a system directory
list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES ${CMAKE_INSTALL_FULL_LIBDIR} isSystemDir)
if("${isSystemDir}" STREQUAL "-1")
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
endif()

View File

@ -1,52 +0,0 @@
function(_WINDRES_GET_UNIQUE_TARGET_NAME _name _unique_name)
set(propertyName "_WINDRES_UNIQUE_COUNTER_${_name}")
get_property(currentCounter GLOBAL PROPERTY "${propertyName}")
if(NOT currentCounter)
set(currentCounter 1)
endif()
set(${_unique_name} "${_name}_${currentCounter}" PARENT_SCOPE)
math(EXPR currentCounter "${currentCounter} + 1")
set_property(GLOBAL PROPERTY ${propertyName} ${currentCounter} )
endfunction()
macro(WINDRES_CREATE_TRANSLATIONS _rcFile _firstPoFileArg)
# make it a real variable, so we can modify it here
set(_firstPoFile "${_firstPoFileArg}")
set(_addToAll)
if(${_firstPoFile} STREQUAL "ALL")
set(_addToAll "ALL")
set(_firstPoFile)
endif()
set(_dllFiles)
foreach(_currentPoFile ${_firstPoFile} ${ARGN})
get_filename_component(_absFile ${_currentPoFile} ABSOLUTE)
get_filename_component(_lang ${_absFile} NAME_WE)
set(_locRcFile ${CMAKE_CURRENT_BINARY_DIR}/celestia_${_lang}.rc)
set(_dllFile res_${_lang})
add_custom_command(
OUTPUT ${_locRcFile}
COMMAND perl ${CMAKE_SOURCE_DIR}/po/translate_resources.pl ${_lang}
DEPENDS ${_absFile}
)
add_library(${_dllFile} MODULE ${_locRcFile})
set_target_properties(${_dllFile} PROPERTIES PREFIX "" LINKER_LANGUAGE C)
if(MSVC)
set_target_properties(${_dllFile} PROPERTIES LINK_FLAGS "/MANIFEST:NO /NODEFAULTLIB /NOENTRY")
endif()
install(TARGETS ${_dllFile} LIBRARY DESTINATION ${CMAKE_INSTALL_BINDIR})
set(_dllFiles ${_dllFiles} ${_dllFile})
endforeach()
if(NOT TARGET resources)
add_custom_target(resources)
endif()
_WINDRES_GET_UNIQUE_TARGET_NAME(resources uniqueTargetName)
add_custom_target(${uniqueTargetName} ${_addToAll} DEPENDS ${_dllFiles})
add_dependencies(resources ${uniqueTargetName})
endmacro()

View File

@ -1,7 +0,0 @@
#cmakedefine HAVE_BYTESWAP_H
#cmakedefine HAVE_CHARCONV
#cmakedefine HAVE_FLOAT_CHARCONV
#cmakedefine HAVE_STD_FILESYSTEM
#cmakedefine HAVE_WORDEXP
#cmakedefine HAVE_MESHOPTIMIZER
#cmakedefine WORDS_BIGENDIAN

527
configure.in 100644
View File

@ -0,0 +1,527 @@
dnl
dnl Celestia autoconf file
dnl Process this file with autoconf to make a configure script
dnl
AC_PREREQ(2.57)
AC_INIT([celestia], [1.6.0], [celestia-developers@lists.sf.net])
AC_CONFIG_SRCDIR(acinclude.m4)
dnl The following section confirms that the user provided necessary option
dnl BEFORE anything is checked.
AC_ARG_WITH([glut],
AC_HELP_STRING([--with-glut], [Use Glut for the UI]),
ui_glut="yes"; ui_gtk="no"; ui_gnome="no"; ui_kde="no",
ui_glut="no")
AC_ARG_WITH([gtk],
AC_HELP_STRING([--with-gtk], [Use Gtk for an enhanced GUI]),
ui_gtk="yes"; ui_glut="no"; ui_gnome="no"; ui_kde="no",
ui_gtk="no")
AC_ARG_WITH([gnome],
AC_HELP_STRING([--with-gnome], [Use Gnome for an enhanced GUI]),
ui_gnome="yes"; ui_gtk="yes"; ui_glut="no"; ui_kde="no",
ui_gnome="no")
AC_ARG_WITH([kde],
AC_HELP_STRING([--with-kde], [Use KDE for an enhanced GUI]),
ui_kde="yes"; ui_glut="no"; ui_gtk="no"; ui_gnome="no",
ui_kde="no")
dnl Following line left in: great for debugging.
dnl AC_MSG_ERROR([$ui_glut $ui_gtk $ui_gnome $ui_kde])
dnl Check that an interface was provided
if (test "$ui_glut" != "yes" -a "$ui_gtk" != "yes" -a "$ui_gnome" != "yes" -a "$ui_kde" != "yes"); then
AC_MSG_ERROR([You must select an interface to build.
Possible options are:
--with-glut GLUT front-end
--with-gtk Enhanced GTK GUI
--with-gnome GTK GUI with Gnome features
--with-kde Enhanced KDE GUI]);
fi
AC_ARG_ENABLE([cairo],
AC_HELP_STRING([--enable-cairo],
[use cairo for GTK splash screen]),
enable_cairo="$enableval", enable_cairo="auto")
AC_ARG_ENABLE([theora],
AC_HELP_STRING([--enable-theora],
[create Ogg/Theora video]),
enable_theora="$enableval", enable_theora="auto")
dnl For KDE interface
AC_CONFIG_AUX_DIR(admin)
dnl "admin/acinclude.m4.in" generates "acinclude.m4", which has a broken
dnl conditional define for Qt embedded. This does not apply to Celestia
dnl anyway.
include_x11_FALSE='#'
dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
unset CDPATH
dnl Check system type
AC_CANONICAL_HOST
dnl Checking host/target/build systems, for make, install etc.
AC_CANONICAL_SYSTEM
dnl Perform program name transformation
AC_ARG_PROGRAM
AM_INIT_AUTOMAKE([-Wno-portability])
AM_CONFIG_HEADER(config.h)
AM_PO_SUBDIRS
dnl Specifying the AM_GNU_GETTEXT_VERSION macro causes autopoint to run,
dnl replacing many files from the KDE project in the admin/ directory. We
dnl will leave it out for now.
dnl AM_GNU_GETTEXT_VERSION([0.15])
AM_GNU_GETTEXT([external])
dnl Check for compilers. Set CFLAGS and CXXFLAGS to null if unset, so
dnl that these macros won't set the to default values that we don't want.
if (test "x${CFLAGS-notset}" = "xnotset"); then
export CFLAGS
CFLAGS=""
fi
AC_PROG_CC
if (test "x${CXXFLAGS-notset}" = "xnotset"); then
export CXXFLAGS
CXXFLAGS=""
fi
AC_PROG_CXX
dnl Checks for programs.
AC_PROG_CPP
AC_PROG_CXXCPP
AC_PROG_INSTALL
AC_LIBTOOL_DLOPEN
AC_PROG_LIBTOOL
dnl AC_PROG_RANLIB
dnl
dnl Compilation options
dnl
CELESTIA_CPPFLAGS=""
CELESTIA_CFLAGS="-O2 -Wall -ffast-math -fexpensive-optimizations"
CELESTIA_CXXFLAGS="-O2 -Wall -ffast-math -fexpensive-optimizations"
AC_MSG_CHECKING([whether to include debugging code])
AC_ARG_ENABLE([debug],
AC_HELP_STRING([--enable-debug],
[Produce an executable with debugging symbols]), ,
enable_debug="no")
if (test "$enable_debug" = "yes"); then
CELESTIA_CFLAGS="-g -Wall";
CELESTIA_CXXFLAGS="-g -Wall"
AC_DEFINE(DEBUG, 1, [Are we debugging ?])
fi
AC_MSG_RESULT($enable_debug)
AC_MSG_CHECKING([whether to be pedantic])
AC_ARG_ENABLE([pedantic],
AC_HELP_STRING([--enable-pedantic],
[Enable -pedantic when compiling]), ,
enable_pedantic="no")
if (test "$enable_pedantic" = "yes"); then
CELESTIA_CFLAGS="$CELESTIA_CFLAGS -ansi -pedantic";
CELESTIA_CXXFLAGS="$CELESTIA_CXXFLAGS -pedantic"
fi
AC_MSG_RESULT($enable_pedantic)
AC_MSG_CHECKING([whether to do profiling])
AC_ARG_ENABLE([profile],
AC_HELP_STRING([--enable-profile],
[Produce a profiled executable[default=no]]), ,
enable_profile="no")
if (test "$enable_profile" = "yes"); then
CELESTIA_CFLAGS="$CELESTIA_CFLAGS -pg";
CELESTIA_CXXFLAGS="$CELESTIA_CXXFLAGS -pg"
else
if (test "$enable_debug" != "yes"); then
dnl must be set here instead of above because -pg and
dnl -fomit-frame-pointer are incompatible
CELESTIA_CFLAGS="$CELESTIA_CFLAGS -fomit-frame-pointer";
CELESTIA_CXXFLAGS="$CELESTIA_CXXFLAGS -fomit-frame-pointer"
fi
fi
AC_MSG_RESULT($enable_profile)
dnl
dnl GL and GLUT libs
dnl
AC_ARG_WITH([gl-libs],
AC_HELP_STRING([--with-gl-libs=DIR],
[Specify OpenGL library location]),
CELESTIALIBS="$CELESTIALIBS -L$withval")
AC_ARG_WITH([gl-inc],
AC_HELP_STRING([--with-gl-inc=DIR],
[Specify OpenGL header file location]),
CELESTIAFLAGS="$CELESTIAFLAGS -I$withval")
AC_ARG_WITH([glut-libs],
AC_HELP_STRING([--with-glut-libs=DIR],
[Specify GLUT library location]),
CELESTIALIBS="$CELESTIALIBS -L$withval")
AC_ARG_WITH([glut-inc],
AC_HELP_STRING([--with-glut-inc=DIR],
[Specify GLUT header file location]),
CELESTIAFLAGS="$CELESTIAFLAGS -I$withval")
dnl
dnl SPICE lib
dnl
AC_ARG_WITH([cspice-dir],
AC_HELP_STRING([--with-cspice-dir=DIR], [Specify SPICE directory location]),
CELESTIAFLAGS="$CELESTIAFLAGS -I$withval/include -DUSE_SPICE";
SPICELIB="$withval/lib/cspice.a")
AC_SUBST(SPICELIB)
AM_CONDITIONAL(ENABLE_SPICE, test "$SPICELIB" != "")
LIBS="$LIBS -lm"
dnl Use Gtk if requested
GTK_LIBS=""
GTKGL_LIBS=""
GTK_CFLAGS=""
AC_MSG_CHECKING([whether to enable GLUT])
if (test "$ui_glut" != "no"); then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING([whether to enable GTK])
if (test "$ui_gtk" != "no"); then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING([whether to enable Gnome])
if (test "$ui_gnome" != "no"); then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING([whether to enable KDE])
if (test "$ui_kde" != "no"); then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_CHECK_COMPILERS
AC_PATH_XTRA
CFLAGS="$CFLAGS $X_CFLAGS"
CFLAGS="$CFLAGS $CELESTIAFLAGS $CELESTIA_CFLAGS"
CXXFLAGS="$CXXFLAGS $CELESTIAFLAGS $CELESTIA_CXXFLAGS"
LIBS="$LIBS $CELESTIALIBS"
LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lXmu -lXi -lXext -lX11 -lm -lz $X_EXTRA_LIBS"
dnl Check for zlib -- libGL requires it.
AC_CHECK_LIB(z, deflate, ,
[AC_MSG_ERROR([zlib not found.])])
dnl Check for OpenGL headers first.
AC_CHECK_HEADERS(GL/gl.h, ,
[AC_MSG_ERROR([No gl.h found. See INSTALL file for help.])])
LIBS="$LIBS -lGL"
dnl Check for OpenGL. Taken partly from the plib sources.
AC_CHECK_LIB(GL, glNewList)
if (test "x$ac_cv_lib_GL_glNewList" = "xno"); then
dnl Check for MesaGL.
AC_CHECK_LIB(MesaGL, glNewList, ,
[AC_MSG_ERROR([GL library was not found])])
fi
dnl Check for GLU headers.
AC_CHECK_HEADERS(GL/glu.h, ,
[AC_MSG_ERROR([No glu.h found. See INSTALL file for help.])])
AC_CHECK_LIB(GLU, gluLookAt)
if (test "x$ac_cv_lib_GLU_gluLookAt" = "xno"); then
dnl Check for MesaGLU.
AC_CHECK_LIB(MesaGLU, gluLookAt, ,
[AC_MSG_ERROR([GLU library was not found])])
fi
PKG_PROG_PKG_CONFIG
if (test "$ui_glut" = "yes"); then
dnl Check for GLUT headers first.
AC_CHECK_HEADERS(GL/glut.h, ,
[AC_MSG_ERROR([No glut.h found. See INSTALL file for help.])])
dnl Check for GLUT.
AC_CHECK_LIB(glut, glutKeyboardUpFunc, ,
[AC_MSG_ERROR([GLUT library version >= 3.7 not found])])
fi
AM_CONDITIONAL(ENABLE_GLUT, test "$ui_glut" = "yes")
dnl Default GConf to FALSE
dnl (this is a silly trick to make configure behave)
AM_CONDITIONAL(GCONF_SCHEMAS_INSTALL, test "x" = "y")
if (test "$ui_gtk" != "no"); then
dnl GNOME is an extension to the GTK options
if (test "$ui_gnome" = "yes"); then
PKG_CHECK_MODULES(GTK, libgnomeui-2.0 gtk+-2.0 >= 2.6 gtkglext-1.0)
AM_GCONF_SOURCE_2
AC_DEFINE(GNOME, 1, [Use Gnome Flag])
else
dnl Otherwise, vanilla GTK
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.6 gtkglext-1.0)
fi
dnl Check for cairo. Default to trying yes. Want this structure to not
dnl fail when not found if not explicitly enabled.
if (test "x$enable_cairo" != "xno"); then
PKG_CHECK_MODULES(CAIRO, cairo, enable_cairo="yes",
if (test "x$enable_cairo" = "xauto"); then
enable_cairo="no"
else
AC_ERROR([Cairo not found (explicitly enabled)!])
fi)
fi
check_theora="yes"
if (test "x$enable_cairo" = "xyes"); then
AC_DEFINE(CAIRO, 1, [Use Cairo for Splash])
fi
CFLAGS="$CFLAGS $GTK_CFLAGS $CAIRO_CFLAGS"
CXXFLAGS="$CXXFLAGS $GTK_CFLAGS $CAIRO_CFLAGS"
LIBS="$LIBS $GTK_LIBS $CAIRO_LIBS"
fi
dnl If all the GTK tests succeeded, safe to enable GTK
AM_CONDITIONAL(ENABLE_GTK, test "$ui_gtk" = "yes")
AM_CONDITIONAL(ENABLE_GNOME, test "$ui_gnome" = "yes")
dnl
dnl KDE
dnl
dnl Make certain ARTS is not conditionally defined, like GConf for Gnome
AM_CONDITIONAL(include_ARTS, test "x" = "y")
if (test "$ui_kde" != "no"); then
dnl KDE_SET_PREFIX
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
KDE_PROG_LIBTOOL
AM_KDE_WITH_NLS
dnl KDE_USE_QT(3)
AC_PATH_KDE
check_theora="yes"
fi
AM_CONDITIONAL(ENABLE_KDE, test "$ui_kde" = "yes")
if (test "$check_theora" = "yes"); then
dnl Check for theora. Default to trying yes. Want this structure to not
dnl fail when not found if not explicitly enabled.
if (test "x$enable_theora" != "xno"); then
PKG_CHECK_MODULES(THEORA, theora, enable_theora="yes",
if (test "x$enable_theora" = "xauto"); then
enable_theora="no"
else
AC_ERROR([Theora not found (explicitly enabled)!])
fi)
fi
if (test "x$enable_theora" = "xyes"); then
AC_DEFINE(THEORA, 1, [Use OGG Theora for video])
CFLAGS="$CFLAGS $THEORA_CFLAGS"
CXXFLAGS="$CXXFLAGS $THEORA_CFLAGS"
LIBS="$LIBS $THEORA_LIBS"
fi
fi
AM_CONDITIONAL(ENABLE_THEORA, test "$enable_theora" = "yes")
dnl Check for JPEG library.
AC_CHECK_LIB(jpeg, jpeg_start_decompress, ,
[AC_MSG_ERROR([jpeg library not found])])
dnl Check for PNG library.
AC_CHECK_LIB(png, png_create_info_struct,,
[AC_MSG_ERROR([png library not found])])
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(byteswap.h)
AC_C_BIGENDIAN
dnl Establish the main data directory (defined in Makefiles)
PKGDATADIR='${datadir}'/$PACKAGE
AC_SUBST(PKGDATADIR)
enable_hipparcos="no"
AC_ARG_ENABLE([hipparcos-dir],
AC_HELP_STRING([--enable-hipparcos-dir=DIR],
[Specify location of HIPPARCOS/TYCHO stardata]),
HIPDIR="$enableval",HIPDIR="$PKGDATADIR")
AC_SUBST(HIPDIR)
AC_MSG_CHECKING([whether we can create a new star database])
if (test -f "$HIPDIR/hip_main.dat"); then
enable_hipparcos="yes"
fi
AC_MSG_RESULT($enable_hipparcos)
AM_CONDITIONAL(ENABLE_HIPPARCOS, test "x$enable_hipparcos" = "xyes")
AC_ARG_WITH([lua],
AC_HELP_STRING([--with-lua],
[Use Lua for Celestia Extension Language support]),
enable_lua="$withval",
enable_lua="auto")
if (test "$enable_lua" != "no"); then
LUA_VER=0
PKG_CHECK_MODULES(LUA, lua5.1 >= 5.1.0, LUA_VER=0x050100,
[ PKG_CHECK_MODULES(LUA, lua >= 5.1.0, LUA_VER=0x050100,
[ PKG_CHECK_MODULES(LUA, lua50 >= 5.0.0 lua50 < 5.1.0, LUA_VER=0x050000,
[ PKG_CHECK_MODULES(LUA, lua >= 5.0.0 lua < 5.1.0, LUA_VER=0x050000, AC_MSG_RESULT([no])) ]
) ]
) ]
)
if (test "$LUA_VER" = "0x050000"); then
PKG_CHECK_MODULES(LUALIB, lualib50 >= 5.0.0 lualib50 < 5.1.0, ,
[ PKG_CHECK_MODULES(LUALIB, lualib >= 5.0.0 lualib < 5.1.0, , AC_MSG_RESULT([no])) ]
)
fi
if (test "$LUA_VER" = "0"); then
if (test "x$enable_lua" != "xauto"); then
AC_ERROR([Lua not found (explicitly enabled)!])
else
enable_lua="no"
fi
else
enable_lua="yes"
fi
fi
if (test "$enable_lua" = "yes"); then
CXXFLAGS="$CXXFLAGS $LUA_CFLAGS $LUALIB_CFLAGS -DLUA_VER=$LUA_VER -DCELX"
LIBS="$LIBS $LUA_LIBS $LUALIB_LIBS"
fi
AM_CONDITIONAL(ENABLE_CELX, test "$enable_lua" != "no")
AC_CONFIG_FILES([ Makefile ])
AC_CONFIG_FILES([ src/Makefile ])
AC_CONFIG_FILES([ src/celutil/Makefile ])
AC_CONFIG_FILES([ src/celmath/Makefile ])
AC_CONFIG_FILES([ src/cel3ds/Makefile ])
AC_CONFIG_FILES([ src/celmodel/Makefile ])
AC_CONFIG_FILES([ src/celtxf/Makefile ])
AC_CONFIG_FILES([ src/celengine/Makefile ])
AC_CONFIG_FILES([ src/celephem/Makefile ])
AC_CONFIG_FILES([ src/celestia/Makefile ])
AC_CONFIG_FILES([ data/Makefile ])
AC_CONFIG_FILES([ extras/Makefile ])
AC_CONFIG_FILES([ extras-standard/Makefile ])
AC_CONFIG_FILES([ extras-standard/cassini/Makefile ])
AC_CONFIG_FILES([ extras-standard/cassini/models/Makefile ])
AC_CONFIG_FILES([ extras-standard/cassini/data/Makefile ])
AC_CONFIG_FILES([ extras-standard/mir/Makefile ])
AC_CONFIG_FILES([ extras-standard/mir/models/Makefile ])
AC_CONFIG_FILES([ extras-standard/galileo/Makefile ])
AC_CONFIG_FILES([ extras-standard/galileo/models/Makefile ])
AC_CONFIG_FILES([ extras-standard/hubble/Makefile ])
AC_CONFIG_FILES([ extras-standard/hubble/models/Makefile ])
AC_CONFIG_FILES([ extras-standard/iss/Makefile ])
AC_CONFIG_FILES([ extras-standard/iss/models/Makefile ])
AC_CONFIG_FILES([ extras-standard/iss/textures/Makefile ])
AC_CONFIG_FILES([ extras-standard/iss/textures/medres/Makefile ])
AC_CONFIG_FILES([ textures/Makefile ])
AC_CONFIG_FILES([ textures/lores/Makefile ])
AC_CONFIG_FILES([ textures/medres/Makefile ])
AC_CONFIG_FILES([ textures/hires/Makefile ])
AC_CONFIG_FILES([ models/Makefile ])
AC_CONFIG_FILES([ shaders/Makefile ])
AC_CONFIG_FILES([ fonts/Makefile ])
AC_CONFIG_FILES([ src/celestia/win32/Makefile ])
AC_CONFIG_FILES([ src/celestia/win32/res/Makefile ])
AC_CONFIG_FILES([ src/celestia/kde/Makefile ])
AC_CONFIG_FILES([ src/celestia/kde/data/Makefile ])
AC_CONFIG_FILES([ src/celestia/kde/doc/Makefile ])
AC_CONFIG_FILES([ src/celestia/kde/doc/celestia/Makefile ])
AC_CONFIG_FILES([ src/celestia/gtk/Makefile ])
AC_CONFIG_FILES([ src/celestia/gtk/data/Makefile ])
AC_CONFIG_FILES([ po/Makefile.in ])
AC_CONFIG_FILES([ po2/Makefile.in ])
AC_CONFIG_FILES([ locale/Makefile ])
AC_CONFIG_FILES([ scripts/Makefile ])
AC_OUTPUT()
AC_MSG_RESULT()
AC_MSG_RESULT()
AC_MSG_RESULT(***************************************************************)
AC_MSG_RESULT(** Celestia configuration complete. Now do a 'make' followed **)
AC_MSG_RESULT(** by 'make install' **)
AC_MSG_RESULT(***************************************************************)
AC_MSG_RESULT()
if (test "$ui_glut" = "yes"); then
AC_MSG_RESULT([Front-End: GLUT]);
fi
if (test "$ui_gtk" = "yes" -a "$ui_gnome" = "no"); then
AC_MSG_RESULT([Front-End: GTK]);
fi
if (test "$ui_gnome" = "yes"); then
AC_MSG_RESULT([Front-End: Gnome]);
fi
if (test "$ui_kde" = "yes"); then
AC_MSG_RESULT([Front-End: KDE]);
fi
if (test "$ui_gtk" = "yes" -o "$ui_gnome" = "yes"); then
AC_MSG_RESULT([Use Cairo: $enable_cairo]);
fi
AC_MSG_RESULT([Use Lua: $enable_lua]);
if (test "$LUA_VER" = "0x050000"); then
AC_MSG_RESULT([ Warning: Lua 5.1 is not available on your system, Lua 5.0 will be used
instead but it may not be fully compatible with existing CELX scripts.
It is recommanded that you install Lua 5.0 and rerun configure.]);
fi
AC_MSG_RESULT([Use Theora: $enable_theora]);
AC_MSG_RESULT()

29
data/Makefile.am 100644
View File

@ -0,0 +1,29 @@
pkgdatadir = @datadir@/@PACKAGE@/data
## Only attempt to remake the Star Database if we have the HIPPARCOS sources
if ENABLE_HIPPARCOS
HIP_DAT = stars.dat
else
HIP_DAT =
endif
BUILT_SOURCES = $(HIP_DAT)
pkgdata_DATA = \
$(wildcard *.ssc) \
$(wildcard *.dat) \
$(wildcard *.xyz) \
$(wildcard *.xyzv) \
$(wildcard *.dsc) \
$(wildcard *.stc)
EXTRA_DIST = \
$(pkgdata_DATA) \
stars.txt
MAINTAINERCLEANFILES = stars.dat
if ENABLE_HIPPARCOS
stars.dat: @HIPDIR@/hip_main.dat
../src/buildstardb -q
endif

529
data/asterisms.dat 100644
View File

@ -0,0 +1,529 @@
"Andromeda"
[
[ "Beta And" "Upsilon And" "Almach" ]
[ "Beta And" "Delta And" "Alpha And" ]
[ "Beta And" "Mu And" "Nu And" ]
[ "Upsilon And" "51 And" ]
]
"Antlia"
[
[ "Iota Ant" "Alpha Ant" "Theta Ant" "Epsilon Ant" ]
]
"Apus"
[
[ "Beta Aps" "Gamma Aps" "Delta1 Aps" "Alpha Aps" ]
]
"Aquarius"
[
[ "88 Aqr" "Delta Aqr" "Tau Aqr" "Lambda Aqr" "Phi Aqr" "Zeta Aqr" "Gamma Aqr" "Alpha Aqr" "Beta Aqr" "Mu Aqr" "Epsilon Aqr" ]
[ "Alpha Aqr" "Theta Aqr" "Iota Aqr" ]
]
"Aquila"
[
[ "Epsilon Aql" "Zeta Aql" "Gamma Aql" "Alpha Aql" "Beta Aql" "Theta Aql" "Eta Aql" "Delta Aql" "Zeta Aql" ]
[ "Delta Aql" "Lambda Aql" "12 Aql" ]
]
"Ara"
[
[ "Delta Ara" "Gamma Ara" "Beta Ara" "Alpha Ara" "Epsilon1 Ara" "Zeta Ara" "Eta Ara" ]
[ "Zeta Ara" "Gamma Ara" ]
]
"Aries"
[
[ "41 Ari" "Alpha Ari" "Beta Ari" "Gamma Ari" ]
]
"Auriga"
[
[ "Alpha Aur" "Delta Aur" "Beta Aur" "Tet Aur" "Beta Tau" "Iota Aur" "Eta Aur" "Alpha Aur" ]
[ "Beta Aur" "Alpha Aur" "Epsilon Aur" "Zeta Aur" ]
]
"Boötes"
[
[ "Gamma Boo" "Beta Boo" "Delta Boo" "Epsilon Boo" "Alpha Boo" "Pi1 Boo" "Zeta Boo" ]
[ "Upsilon Boo" "Tau Boo" "Eta Boo" "Alpha Boo" "Rho Boo" "Gamma Boo" "Lambda Boo" "Kappa2 Boo"]
[ "Delta Boo" "Mu1 Boo" ]
]
"Caelum"
[
[ "Alpha Cae" "Beta Cae" ]
]
"Camelopardalis"
[
[ "7 Cam" "Beta Cam" "Alpha Cam" "Gamma Cam" ]
]
"Cancer"
[
[ "Alpha Cnc" "Delta Cnc" "Gamma Cnc" "Iota Cnc" ]
[ "Delta Cnc" "Beta Cnc" ]
]
"Canes Venatici"
[
[ "Alpha1 CVn" "Beta CVn" ]
]
"Canis Major"
[
[ "Beta CMa" "Alpha CMa" "Iota CMa" "Gamma CMa" "Theta CMa" "Alpha CMa" ]
[ "Alpha CMa" "Omicron2 CMa" "Delta CMa" "Sigma CMa" "Epsilon CMa" "Zeta CMa" ]
[ "Delta CMa" "Omega CMa" "Eta CMa" ]
[ "Omega CMa" "Tau CMa" ]
]
"Canis Minor"
[
[ "Alpha CMi" "Beta CMi" ]
]
"Capricornus"
[
[ "Alpha1 Cap" "Beta Cap" "Psi Cap" "Omega Cap" "24 Cap" "Zeta Cap" "Epsilon Cap" "Delta Cap" "Gamma Cap" "Iota Cap" "Theta Cap" "Beta Cap" ]
]
"Carina"
[
[ "Alpha Car" "N Car" "Chi Car" "Epsilon Car" "Iota Car" "Q Car" "P Car" "Theta Car" "Omega Car" "Beta Car" "Upsilon Car" ]
]
"Cassiopeia"
[
[ "Epsilon Cas" "Delta Cas" "Gamma Cas" "Alpha Cas" "Beta Cas" ]
]
"Centaurus"
[
[ "Iota Cen" "D Cen" "Nu Cen" ]
[ "Theta Cen" "Nu Cen" ]
[ "Kappa Cen" "Eta Cen" "Nu Cen" "Mu Cen" "Zeta Cen" "Epsilon Cen" "Gamma Cen" "Sigma Cen" "Delta Cen" "Rho Cen" "Pi Cen" "Lambda Cen" ]
[ "Beta Cen" "Epsilon Cen" "Alpha Cen" ]
]
"Cepheus"
[
[ "Theta Cep" "Eta Cep" "Alpha Cep" "Beta Cep" "Gamma Cep" "Iota Cep" "Zeta Cep" "Alpha Cep" ]
[ "Zeta Cep" "Epsilon Cep" "Delta Cep" ]
]
"Cetus"
[
[ "Gamma Cet" "Alpha Cet" "Lambda Cet" "Mu Cet" "Xi2 Cet" "Nu Cet" "Gamma Cet" "Delta Cet" "Omicron Cet" "Zeta Cet" "Theta Cet" "Eta Cet" "Iota Cet" "Beta Cet" "Tau Cet" "Zeta Cet" ]
]
"Chamaeleon"
[
[ "Alpha Cha" "Gamma Cha" "Beta Cha" "Delta2 Cha" "Theta Cha" "Alpha Cha" ]
]
"Circinus"
[
[ "Beta Cir" "Alpha Cir" "Gamma Cir" ]
]
"Columba"
[
[ "Epsilon Col" "Alpha Col" "Beta Col" "Gamma Col" "Kappa Col" "Delta Col" ]
[ "Beta Col" "Eta Col" ]
]
"Coma Berenices"
[
[ "Alpha Com" "Beta Com" "Gamma Com" ]
]
"Corona Australis"
[
[ "Epsilon CrA" "Gamma CrA" "Alpha CrA" "Beta CrA" "Delta CrA" "Zeta CrA" ]
]
"Corona Borealis"
[
[ "Theta CrB" "Beta CrB" "Alpha CrB" "Gamma CrB" "Delta CrB" "Epsilon CrB" "Iota CrB" ]
]
"Corvus"
[
[ "Alpha Crv" "Epsilon Crv" "Gamma Crv" "Delta Crv" "Beta Crv" "Epsilon Crv" ]
]
"Crater"
[
[ "Eta Crt" "Zeta Crt" "Gamma Crt" "Delta Crt" "Epsilon Crt" "Theta Crt" ]
[ "Gamma Crt" "Beta Crt" "Alpha Crt" "Delta Crt" ]
]
"Crux"
[
[ "Alpha Cru" "Gamma Cru" ]
[ "Beta Cru" "Delta Cru" ]
]
"Cygnus"
[
[ "Kappa Cyg" "Iota Cyg" "Theta Cyg" "Delta Cyg" "Gamma Cyg" "Epsilon Cyg" "Zeta Cyg" ]
[ "Alpha Cyg" "Gamma Cyg" "Eta Cyg" "Beta Cyg" ]
]
"Delphinus"
[
[ "Epsilon Del" "Beta Del" "Delta Del" "Gamma1 Del" "Alpha Del" "Beta Del" ]
]
"Dorado"
[
[ "Gamma Dor" "Alpha Dor" "Zeta Dor" "Beta Dor" "Delta Dor" ]
[ "Beta Dor" ]
]
"Draco"
[
[ "Nu1 Dra" "Beta Dra" "Gamma Dra" "Xi Dra" "Nu1 Dra" ]
[ "Xi Dra" "Delta Dra" "Epsilon Dra" "Chi Dra" "Zeta Dra" "Eta Dra" "Theta Dra" "Iota Dra" "Alpha Dra" "Kappa Dra" "Lambda Dra" ]
]
"Equuleus"
[
[ "Delta Equ" "Beta Equ" "Alpha Equ" "Gamma Equ" ]
]
"Eridanus"
[
[ "Lambda Eri" "Beta Eri" "Omega Eri" "Mu Eri" "Nu Eri" "Omicron1 Eri" "Gamma Eri" "Pi Eri" "Delta Eri" "Epsilon Eri" "Eta Eri" "Tau1 Eri" "Tau2 Eri" "Tau3 Eri" "Tau4 Eri" "Tau5 Eri" "Tau6 Eri" "Tau9 Eri" "Upsilon1 Eri" "Upsilon2 Eri" "43 Eri" "41 Eri" "G Eri" "F Eri" "E Eri" "Theta Eri" "Iota Eri" "S Eri" "Kappa Eri" "Phi Eri" "Chi Eri" "Alpha Eri" ]
]
"Fornax"
[
[ "Alpha For" "Beta For" "Nu For" ]
]
"Gemini"
[
[ "Beta Gem" "Upsilon Gem" "Delta Gem" "Zeta Gem" "Gamma Gem" ]
[ "1 Gem" "Eta Gem" "Mu Gem" "Epsilon Gem" "Tau Gem" "Rho Gem" "Alpha Gem" ]
[ "Delta Gem" "Lambda Gem" "51 Gem" "Xi Gem"]
[ "Nu Gem" "Epsilon Gem" ]
[ "Tau Gem" "Theta Gem" ]
[ "Upsilon Gem" "Kappa Gem" ]
[ "Upsilon Gem" "Iota Gem" "Tau Gem" ]
]
"Grus"
[
[ "Gamma Gru" "Lambda Gru" "Mu1 Gru" "Delta1 Gru" "Beta Gru" "Epsilon Gru" "Zeta Gru" ]
[ "Alpha Gru" "Beta Gru" "Iota Gru" "Theta Gru" ]
]
"Hercules"
[
[ "Pi Her" "Epsilon Her" "Zeta Her" ]
[ "Phi Her" "Sigma Her" "Eta Her" "Zeta Her" "Beta Her" "Gamma Her" ]
[ "Beta Her" "Alpha Her" ]
[ "Iota Her" "Theta Her" "Rho Her" "Pi Her" "Eta Her" ]
[ "Epsilon Her" "Delta Her" "Lambda Her" "Mu Her" "Xi Her" "Omicron Her" "Nu Her" ]
[ "Omicron Her" "109 Her" "110 Her" "111 Her" ]
[ "109 Her" "102 Her" ]
]
"Horologium"
[
[ "Alpha Hor" "Iota Hor" "Eta Hor" "Zeta Hor" "Mu Hor" "Beta Hor" ]
]
"Hydra"
[
[ "Gamma Hya" "Beta Hya" "Xi Hya" ]
[ "Pi Hya" "Gamma Hya" ]
[ "Xi Hya" "Nu Hya" "Mu Hya" "Lambda Hya" "Upsilon2 Hya" "Upsilon1 Hya" "Alpha Hya" "Iota Hya" "Theta Hya" "Zeta Hya" "Eta Hya" "Sigma Hya" "Delta Hya" "Epsilon Hya" "Zeta Hya" ]
]
"Hydrus"
[
[ "Gamma Hyi" "Beta Hyi" "Alpha Hyi" "Gamma Hyi" ]
]
"Indus"
[
[ "Alpha Ind" "Theta Ind" "Delta Ind" ]
[ "Theta Ind" "Beta Ind" ]
]
"Lacerta"
[
[ "1 Lac" "Star Lac" "6 Lac" "2 Lac" "5 Lac" "4 Lac" "Alpha Lac" "Beta Lac" ]
]
"Leo"
[
[ "Gamma1 Leo" "Epsilon Leo" "Mu Leo" "Zeta Leo" "Gamma1 Leo" "Eta Leo" "Alpha Leo" "Theta Leo" "Beta Leo" "Delta Leo" "Gamma1 Leo" ]
[ "Alpha Leo" "Omicron Leo" ]
[ "Theta Leo" "Iota Leo" "Sigma Leo" ]
]
"Leo Minor"
[
[ "46 LMi" "Beta LMi" "21 LMi" ]
]
"Lepus"
[
[ "Mu Lep" "Alpha Lep" "Zeta Lep" "Eta Lep" ]
[ "Alpha Lep" "Beta Lep" ]
[ "Delta Lep" "Gamma Lep" "Beta Lep" "Epsilon Lep" ]
]
"Libra"
[
[ "Sigma Lib" "Beta Lib" ]
[ "48 Lib" "Theta Lib" "Eta Lib" "Gamma Lib" "Beta Lib" "Alpha2 Lib" "Sigma Lib" "Upsilon Lib" "Tau Lib" ]
]
"Lupus"
[
[ "Theta Lup" "Eta Lup" "Gamma Lup" "Epsilon Lup" "Kappa Lup" "Zeta Lup" "Alpha Lup" "Beta Lup" "Delta Lup" "Phi1 Lup" "Chi Lup" ]
[ "Gamma Lup" "Delta Lup" ]
]
"Lynx"
[
[ "Alpha Lyn" "38 Lyn" "31 Lyn" "21 Lyn" "15 Lyn" "2 Lyn" ]
]
"Lyra"
[
[ "Epsilon1 Lyr" "Alpha Lyr" "Zeta1 Lyr" "Beta Lyr" "Gamma Lyr" "Delta1 Lyr" "Zeta1 Lyr" ]
[ "Alpha Lyr" "Kappa Lyr" ]
]
"Mensa"
[
[ "Alpha Men" "Gamma Men" "Eta Men" "Beta Men" ]
]
"Microscopium"
[
[ "Theta1 Mic" "Epsilon Mic" "Gamma Mic" "Alpha Mic" ]
]
"Monoceros"
[
[ "Zeta Mon" "Alpha Mon" "Delta Mon" "Beta Mon" "Gamma Mon" ]
[ "Delta Mon" "18 Mon" "8 Mon" "13 Mon" ]
]
"Musca"
[
[ "Delta Mus" "Alpha Mus" "Gamma Mus" ]
[ "Beta Mus" "Alpha Mus" "Epsilon Mus" "Mu Mus" ]
]
"Norma"
[
[ "Epsilon Nor" "Gamma1 Nor" "Gamma2 Nor" "Eta Nor" ]
]
"Octans"
[
[ "Delta Oct" "Nu Oct" "Epsilon Oct" "Beta Oct" "Delta Oct" ]
]
"Ophiuchus"
[
[ "Kappa Oph" "Alpha Oph" "Beta Oph" "Eta Oph" ]
[ "45 Oph" "Theta Oph" "44 Oph" "Xi Oph" "Eta Oph" "Zeta Oph" "Epsilon Oph" "Delta Oph" "Kappa Oph" ]
[ "Beta Oph" "Gamma Oph" "67 Oph" "70 Oph" ]
[ "Gamma Oph" "Nu Oph" ]
]
"Orion"
[
[ "Xi Ori" "Mu Ori" "Alpha Ori" "Zeta Ori" "Kappa Ori" "Beta Ori" "Delta Ori" "Gamma Ori" "Lambda Ori" "Alpha Ori" ]
[ "Chi2 Ori" "Nu Ori" "Xi Ori" "68 Ori" ]
[ "Gamma Ori" "Pi3 Ori" "Pi4 Ori" "Pi5 Ori" "Pi6 Ori" ]
[ "Pi3 Ori" "Pi2 Ori" "Pi1 Ori" ][ "Zeta Ori" "Epsilon Ori" "Delta Ori" ]
]
"Pavo"
[
[ "Alpha Pav" "Beta Pav" "Upsilon Pav" "Epsilon Pav" "Zeta Pav" "Eta Pav" "Pi Pav" "Xi Pav" "Lambda Pav" "Delta Pav" "Beta Pav" "Gamma Pav" ]
]
"Pegasus"
[
[ "Epsilon Peg" "Theta Peg" "Zeta Peg" "Xi Peg" "Alpha Peg" "Gamma Peg" ]
[ "Kappa Peg" "Iota Peg" "Eta Peg" "Beta Peg" "Mu Peg" "Lambda Peg" "9 Peg" ]
[ "Alpha Peg" "Beta Peg" ]
]
"Perseus"
[
[ "Alpha Per" "Gamma Per" "Eta Per" ]
[ "Alpha Per" "Iota Per" "Kappa Per" "Beta Per" "Rho Per" "20 Per" "16 Per" ]
[ "Alpha Per" "Psi Per" "Delta Per" "Nu Per" "Epsilon Per" "Xi Per" "Zeta Per" "Omicron Per" ]
[ "Delta Per" "48 Per" "Mu Per" "Lambda Per" ]
[ "Iota Per" "Theta Per" ]
]
"Phoenix"
[
[ "Delta Phe" "Gamma Phe" "Nu Phe" "Beta Phe" "Alpha Phe" "Epsilon Phe" "Eta Phe" "Beta Phe" ]
]
"Pictor"
[
[ "Alpha Pic" "Gamma Pic" "Beta Pic" ]
]
"Pisces"
[
[ "Tau Psc" "Upsilon Psc" "Phi Psc" "Eta Psc" "Omicron Psc" "Alpha Psc" "Nu Psc" "Mu Psc" "Epsilon Psc" "Delta Psc" "Omega Psc" "Iota Psc" "Theta Psc" "Gamma Psc" "Kappa Psc" "Lambda Psc" "Iota Psc" ]
]
"Piscis Austrinus"
[
[ "Alpha PsA" "Epsilon PsA" "Lambda PsA" "Theta PsA" "Iota PsA" "Mu PsA" "Beta PsA" "Gamma PsA" "Delta PsA" "Alpha PsA" ]
]
"Puppis"
[
[ "Xi Pup" "K Pup" "Pi Pup" "Nu Pup" "Tau Pup" "Sigma Pup" "Zeta Pup"
"Rho Pup" "11 Pup" "Xi Pup" ]
[ "11 Pup" "16 Pup" ]
]
"Pyxis"
[
[ "Beta Pyx" "Alpha Pyx" "Gamma Pyx" ]
]
"Reticulum"
[
[ "Beta Ret" "Alpha Ret" "Epsilon Ret" "Iota Ret" "Delta Ret" "Beta Ret" ]
]
"Sagitta"
[
[ "Eta Sge" "Gamma Sge" "Delta Sge" "Beta Sge" ]
[ "Delta Sge" "Alpha Sge" ]
]
"Sagittarius"
[
[ "Phi Sgr" "Delta Sgr" ]
[ "Beta2 Sgr" "Iota Sgr" "Alpha Sgr" ]
[ "Iota Sgr" "Theta1 Sgr" "Theta2 Sgr" "62 Sgr" "59 Sgr" "52 Sgr" "Psi Sgr" "Tau Sgr" "Zeta Sgr" "Phi Sgr" "Sigma Sgr" "Tau Sgr" ]
[ "Sigma Sgr" "Omicron Sgr" "Pi Sgr" "53 Sgr" "Rho1 Sgr" ]
[ "Omicron Sgr" ]
[ "Phi Sgr" "Lambda Sgr" "Mu Sgr" ]
[ "Lambda Sgr" "Delta Sgr" "Epsilon Sgr" "Eta Sgr" ]
[ "Delta Sgr" "Gamma Sgr" "3 Sgr" ]
[ "Zeta Sgr" "Epsilon Sgr" "Gamma Sgr" ]
]
"Scorpius"
[
[ "Delta Sco" "Sigma Sco" "Alpha Sco" "Tau Sco" "Epsilon Sco" "Mu Sco" "Zeta Sco" "Eta Sco" "Theta Sco" "Iota1 Sco" "Kappa Sco" "Lambda Sco" ]
[ "Beta2 Sco" "Omega1 Sco" "Nu Sco" "11 Sco" "Beta2 Sco" "Delta Sco" "Pi Sco" "Rho Sco" ]
[ "Iota1 Sco" "G Sco" ]
]
"Sculptor"
[
[ "Alpha Scl" "Iota Scl" "Delta Scl" "Gamma Scl" "Beta Scl" ]
]
"Scutum"
[
[ "Beta Sct" "Alpha Sct" "Gamma Sct" ]
[ "Alpha Sct" "Zeta Sct" ]
]
"Serpens Caput"
[
[ "Mu Ser" "Omega Ser" "Epsilon Ser" "Alpha Ser" "Delta Ser" "Beta Ser" "Gamma Ser" "Kappa Ser" "Beta Ser" ]
]
"Serpens Cauda"
[
[ "Nu Ser" "Xi Ser" "Omicron Ser" ]
[ "Omicron Ser" "Eta Ser" "Theta Ser" ]
]
"Sextans"
[
[ "Beta Sex" "Alpha Sex" "Gamma Sex" ]
]
"Taurus"
[
[ "Beta Tau" "Tau Tau" "Epsilon Tau" "68 Tau" "Delta1 Tau" "Gamma Tau" "Theta2 Tau" "Alpha Tau" "Zeta Tau" ]
[ "Gamma Tau" "Lambda Tau" "47 Tau" "Mu Tau" "Nu Tau" ]
[ "Lambda Tau" "5 Tau" "Xi Tau" "Omicron Tau" ]
[ "Alpha Tau" "Epsilon Tau" ]
]
"Telescopium"
[
[ "Zeta Tel" "Alpha Tel" ]
[ "Alpha Tel" "Epsilon Tel" ]
]
"Triangulum"
[
[ "Alpha Tri" "Epsilon Tri" "Beta Tri" "Gamma Tri" "Alpha Tri" ]
]
"Triangulum Australe"
[
[ "Beta TrA" "Epsilon TrA" "Gamma TrA" "Alpha TrA" "Beta TrA" ]
]
"Tucana"
[
[ "Delta Tuc" "Alpha Tuc" "Gamma Tuc" "Epsilon Tuc" "Zeta Tuc" "Beta Tuc" "Gamma Tuc" ]
]
"Ursa Major"
[
[ "Eta UMa" "Zeta UMa" "Epsilon UMa" "Delta UMa" "Gamma UMa" "Beta UMa" "Alpha UMa" "Delta UMa" ]
]
"Ursa Minor"
[
[ "Alpha UMi" "Delta UMi" "Epsilon UMi" "Zeta UMi" "Beta UMi" "Gamma UMi" "Eta UMi" "Zeta UMi" ]
]
"Vela"
[
[ "Mu Vel" "Rho Vel" "Q Vel" "Psi Vel" "Lambda Vel" "D Vel" "E Vel" "Gamma Vel" "Delta Vel" "Kappa Vel" "Phi Vel" "Mu Vel" ]
[ "Delta Vel" ]
[ "Kappa Vel" ]
]
"Virgo"
[
[ "Beta Vir" "Eta Vir" "Gamma Vir" "Delta Vir" "Epsilon Vir" ]
[ "Delta Vir" "Zeta Vir" "Alpha Vir" "Theta Vir" "Gamma Vir" ]
[ "Zeta Vir" "Tau Vir" "109 Vir" ]
[ "Alpha Vir" "Kappa Vir" "Iota Vir" "Mu Vir" ]
]
"Volans"
[
[ "Alpha Vol" "Beta Vol" "Epsilon Vol" "Delta Vol" "Gamma Vol" "Zeta Vol" "Epsilon Vol" ]
]
"Vulpecula"
[
[ "13 Vul" "Alpha Vul" "1 Vul" ]
]

589
data/asteroids.ssc 100644
View File

@ -0,0 +1,589 @@
# All asteroid colors (except for Dactyl) are derived from SMASS spectra
# and converted to RGB values using Matt Wronkiewicz's spectrum2rgb utility
# that is distributed with the Celestia source package.
# A few main belt asteroids . .
"1 Ceres:Ceres:A899 OF" "Sol"
{
Class "dwarfplanet"
Texture "asteroid.jpg"
Color [ 1.000 0.945 0.881 ]
BlendTexture true
Radius 487.5 # 975x909km
Oblateness 0.068 # Thomas et al, Nature, 8 Sep 2005
EllipticalOrbit
{
Epoch 2452600.5 # 2002 Nov 22 00:00UT
Period 4.60014
SemiMajorAxis 2.7660
Eccentricity 0.0793
Inclination 10.584
AscendingNode 80.483
ArgOfPericenter 74.043
MeanAnomaly 232.067
}
UniformRotation
{
Period 9.074170 # Icarus 2007,188(2):451
Epoch 2449249.91125 # 1993 Sep 19 09:52:12UT
Inclination 11
AscendingNode 29
MeridianAngle 339.85
}
Albedo 0.113
}
"2 Pallas:Pallas" "Sol"
# Pole and shape from Schmidt et al
# "Hubble takes a look at Pallas: Shape, Size and Surface"
# (2008) http://www.lpi.usra.edu/meetings/lpsc2008/pdf/2502.pdf
{
Class "asteroid"
Texture "asteroid.jpg"
Color [ 1.000 0.952 0.903 ]
BlendTexture true
SemiAxes [ 291 278 250 ]
EllipticalOrbit
{
Epoch 2452600.5 # 2002 Nov 22 00:00UT
Period 4.61868
SemiMajorAxis 2.7733
Eccentricity 0.2300
Inclination 34.846
AscendingNode 173.166
ArgOfPericenter 310.423
MeanAnomaly 218.057
}
UniformRotation
{
Period 7.81323264
Inclination 113
AscendingNode 118
MeridianAngle 339
}
Albedo 0.159
}
"3 Juno:Juno" "Sol"
{
Class "asteroid"
Texture "asteroid.jpg"
Color [ 1.000 0.912 0.833 ]
BlendTexture true
SemiAxes [ 145 120 95 ]
EllipticalOrbit
{
Epoch 2452600.5 # 2002 Nov 22 00:00UT
Period 4.35540
SemiMajorAxis 2.6669
Eccentricity 0.2589
Inclination 12.972
AscendingNode 170.133
ArgOfPericenter 247.948
MeanAnomaly 119.146
}
UniformRotation
{
Period 7.811
Inclination 56
AscendingNode 196
}
Albedo 0.238
}
"4 Vesta:Vesta" "Sol"
{
Class "asteroid"
Mesh "vesta.cmod"
Texture "asteroid.jpg"
Color [ 1.000 0.923 0.851 ]
BlendTexture true
Radius 279 # maximum semi-axis
MeshCenter [ 0.77 3.424 -0.554 ]
InfoURL "http://www.solarviews.com/eng/vesta.htm"
EllipticalOrbit
{
Epoch 2452000.5 # 2001 Apr 1 00:00UT
Period 3.62729
SemiMajorAxis 2.3670775
Eccentricity 0.089753
Inclination 7.1346
AscendingNode 103.9510
ArgOfPericenter 149.4585
MeanAnomaly 104.980
}
UniformRotation
{
Period 5.342
Epoch 2450124.90833 # 1996 May 11 09:48UT
Inclination 40
AscendingNode 91
MeridianAngle 325.77
}
Albedo 0.423
}
# Some of the asteroids visited by spacecraft
"951 Gaspra:Gaspra:A913 YA" "Sol"
{
Class "asteroid"
Mesh "gaspra.cmod"
Texture "gaspramosaic.*" # Phil Stooke
Color [ 1.000 0.883 0.769 ]
BlendTexture true
Radius 9.1 # maximum semi-axis
MeshCenter [ 1.540 -0.064 -0.118 ]
EllipticalOrbit
{
Epoch 2448559.0 # 1991 Oct 29 12:00UT (Galileo encounter)
Period 3.2837 # average
SemiMajorAxis 2.2096348 # at epoch
Eccentricity 0.1738752 # at epoch
Inclination 4.0975771 # at epoch
AscendingNode 253.445592 # at epoch
ArgOfPericenter 129.045896 # at epoch
MeanAnomaly 280.769206 # at epoch
}
UniformRotation
{
Period 7.042073
Inclination 69.28
AscendingNode 109.59
MeridianAngle 58.865
}
Albedo 0.1
}
"243 Ida:Ida:A910 CD" "Sol"
{
Class "asteroid"
Mesh "ida.cmod"
Texture "idamosaic.*" # Phil Stooke
Color [ 1.000 0.901 0.815 ]
BlendTexture true
Radius 28.9 # maximum semi-axis
MeshCenter [ -1.424 -0.417 0.115 ]
EllipticalOrbit
{
Epoch 2449228.0 # 1993 Aug 28 12:00UT (Galileo encounter)
Period 4.8417 # mean
SemiMajorAxis 2.863731 # at epoch
Eccentricity 0.043109 # at epoch
Inclination 1.137110 # at epoch
AscendingNode 324.586055 # at epoch
ArgOfPericenter 113.017101 # at epoch
MeanAnomaly 131.594945 # at epoch
}
UniformRotation
{
Period 4.633632
Inclination 156.96
AscendingNode 352.77
MeridianAngle 359.46
}
Albedo 0.24
}
"Dactyl:243 Ida I:Ida I:1993 (243) 1" "Sol/Ida"
{
# Data for Dactyl taken from:
# Petit et al.: The Long-Term Dynamics of Dactyl's Orbit
# (Icarus 1997: 130; 177-197) - linked in the InfoURL
InfoURL "http://www.lpl.arizona.edu/~hurfordt/research/papers/Icarus130.pdf"
Class "asteroid"
Texture "asteroid.jpg"
# Use the same color as for Ida--uncertain if this is correct
Color [ 1.000 0.901 0.815 ]
BlendTexture true
Mesh "roughsphere.cms"
Radius 0.7
EllipticalOrbit
{
Epoch 2449228.2028 # 1993 Aug 28 16:52:05UT
Period 0.96534 # stable 5:1 resonant orbit (Petit et al.)
SemiMajorAxis 83.5 # stable 5:1 resonant orbit (Petit et al.)
Eccentricity 0.13 # stable 5:1 resonant orbit (Petit et al.)
LongOfPericenter 310 # stable pericenter at 90:E Ida longitude (Petit et al.)
AscendingNode 90 # VERY approximate - chosen to place Dactyl north
# of Ida's equator, as seen at time of Galileo encounter
Inclination 8 # estimated at 7-9 degrees (Petit et al.)
}
UniformRotation
{
MeridianAngle 123 # place prime meridian facing Ida
}
Albedo 0.2
}
"433 Eros:Eros:1898 DQ" "Sol"
{
Class "asteroid"
Mesh "eros.cmod"
Texture "eros.*"
# NormalMap "erosbump2k.jpg"
Color [ 1.000 0.880 0.764 ]
# The texture is already tinted with the asteroid color
#BlendTexture true
Radius 16.3 # maximum semi-axis
MeshCenter [ -1.262 0.168 -0.164 ]
EllipticalOrbit
{
Epoch 2451171.0 # 1998 Dec 23 12:00UT (NEAR-Shoemaker encounter)
Period 1.761 # average
SemiMajorAxis 1.458261 # at epoch
Eccentricity 0.222885 # at epoch
Inclination 10.830143 # at epoch
AscendingNode 304.430882 # at epoch
ArgOfPericenter 178.613184 # at epoch
MeanAnomaly 208.403434 # at epoch
}
UniformRotation
{
Period 5.270
Inclination 78.70
AscendingNode 107.23
MeridianAngle 338.165
}
Albedo 0.16
}
"25143 Itokawa:Itokawa:1998 SF36" "Sol"
{
Class "asteroid"
Mesh "itokawa.cmod"
Radius 0.315
InfoURL "http://en.wikipedia.org/wiki/25143_Itokawa"
# Osculating elements from HORIZONS
EllipticalOrbit
{
Epoch 2453625.5 # 2005 Sep 12--Hayabusa arrival
Period 1.523231392
SemiMajorAxis 1.323849003
Eccentricity 0.2801215972
Inclination 1.622265921
AscendingNode 69.09461308
ArgOfPericenter 162.7594572
MeanAnomaly 310.6795025
}
# Retrograde rotation pole with RA 90.53 and Dec -66.30
# From "Pole and global shape of 25143 Itokawa",
# Demura et al, Science, 2 Jun 2006
BodyFrame { EquatorJ2000 {} }
UniformRotation
{
Inclination 156.30
AscendingNode 180.53
Period 12.132
}
Color [ 1 0.96 0.80 ] # Approximation based on natural color images
LunarLambert 0.5 # Approximate a dusty surface
# Align model with Celestia's coordinate system
# Orientation [ 90 1 0 0 ]
Orientation [ 180 0 1 1 ]
Albedo 0.53
}
# Radar-imaged asteroids
"4179 Toutatis:Toutatis:1989 AC" "Sol"
{
Class "asteroid"
Mesh "toutatis.cmod"
Texture "asteroid.jpg"
Color [ 1.000 0.904 0.803 ]
BlendTexture true
Radius 2.3 # maximum semi-axis
MeshCenter [ 0.0313 0.2171 0.0064 ]
InfoURL "http://echo.jpl.nasa.gov/asteroids/4179_Toutatis/toutatis.html"
EllipticalOrbit
{
Epoch 2452200.5 # 2001 Oct 18 00:00UT
Period 3.976715
SemiMajorAxis 2.5100537
Eccentricity 0.6342274
Inclination 0.46959
AscendingNode 128.24788
ArgOfPericenter 274.78070
MeanAnomaly 86.28120
}
PrecessingRotation
{
Period 129.6 # 5.41 days
Inclination 145
PrecessionPeriod -0.0201 # 7.35 day period
}
Albedo 0.16
}
"1620 Geographos:Geographos:1951 RA" "Sol"
{
Class "asteroid"
Mesh "geographos.cmod"
Texture "asteroid.jpg"
Color [ 1.000 0.901 0.802 ]
BlendTexture true
Radius 2.53 # maximum semi-axis
MeshCenter [ 0.154 -0.002 -0.026 ]
InfoURL "http://www.solarviews.com/eng/geograph.htm"
EllipticalOrbit
{
Epoch 2450800.5 # 1997 Dec 18 00:00UT
Period 1.39
SemiMajorAxis 1.2455
Eccentricity 0.3354
Inclination 13.34
AscendingNode 337.352
ArgOfPericenter 276.756
MeanAnomaly 180.595
}
UniformRotation
{
Period 5.223
Inclination 136
AscendingNode 145
}
Albedo 0.326
}
"216 Kleopatra:Kleopatra:A905 OA" "Sol"
{
Class "asteroid"
Mesh "kleopatra.cmod"
Texture "asteroid.jpg"
Color [ 1.000 0.932 0.888 ]
BlendTexture true
Radius 110 # maximum semi-axis
MeshCenter [ -3.049 2.379 1.429 ]
InfoURL "http://echo.jpl.nasa.gov/~ostro/kle/index.html"
EllipticalOrbit
{
Epoch 2450800.5 # 1997 Dec 12 00:00UT
Period 4.67
SemiMajorAxis 2.791
Eccentricity 0.2531
Inclination 13.138
AscendingNode 215.699
ArgOfPericenter 179.350
MeanAnomaly 225.804
}
UniformRotation
{
Period 5.385
Inclination 63
AscendingNode 162
}
Albedo 0.16
# Class M
}
"1998 KY26" "Sol"
{
Class "asteroid"
Mesh "ky26.cmod"
Texture "asteroid.jpg"
Radius 0.015 # maximum semi-axis
MeshCenter [ -0.000718 -0.000099 0.000556 ]
InfoURL "http://echo.jpl.nasa.gov/~ostro/KY26/index.html"
EllipticalOrbit
{
Epoch 2452000.5 # 2001 Apr 1 00:00UT
Period 1.3752
SemiMajorAxis 1.2320798
Eccentricity 0.20151423
Inclination 1.48127
AscendingNode 84.45490
ArgOfPericenter 209.14766
MeanAnomaly 356.6879717
}
UniformRotation
{
Period 0.178
}
Albedo 0.15
}
"2063 Bacchus:Bacchus:1977 HB" "Sol"
{
Class "asteroid"
Mesh "bacchus.cmod"
Texture "asteroid.jpg"
Color [ 1.000 0.899 0.777 ]
BlendTexture true
Radius 0.55 # maximum semi-axis
MeshCenter [ -0.00936 -0.00610 0.00289 ]
InfoURL "http://echo.jpl.nasa.gov/~ostro/bacchus/index.html"
EllipticalOrbit
{
Epoch 2452000.5 # 2001 Apr 1 00:00UT
Period 1.1223
SemiMajorAxis 1.0781035
Eccentricity 0.34951251
Inclination 9.43160
AscendingNode 33.23590
ArgOfPericenter 55.18040
MeanAnomaly 229.8627955
}
UniformRotation
{
Period 14.90
Inclination 116
AscendingNode 114
}
Albedo 0.15
}
"6489 Golevka:Golevka:1991 JX" "Sol"
{
Class "asteroid"
Mesh "golevka.cmod"
Texture "asteroid.jpg"
Color [ 1.000 0.856 0.747 ]
BlendTexture true
Radius 0.34 # maximum semi-axis
MeshCenter [ -0.0289 -0.0111 -0.0331 ]
InfoURL "http://echo.jpl.nasa.gov/~ostro/gol/index.html"
EllipticalOrbit
{
Epoch 2452000.5 # 2001 Apr 1 00:00UT
Period 3.995
SemiMajorAxis 2.5120500
Eccentricity 0.60117380
Inclination 2.28701
AscendingNode 212.16560
ArgOfPericenter 65.25133
MeanAnomaly 159.8983670
}
UniformRotation
{
Period 6.0289
Inclination 135
AscendingNode 292
}
Albedo 0.15
}
"4769 Castalia:Castalia:1989 PB" "Sol"
{
Class "asteroid"
Mesh "castalia.cmod"
Texture "asteroid.jpg"
BlendTexture true
Radius 0.81 # maximum semi-axis
MeshCenter [ -0.0456 -0.0347 -0.0178 ]
InfoURL "http://echo.jpl.nasa.gov/asteroids/4769_Castalia/cast01.html"
EllipticalOrbit
{
Epoch 2452000.5 # 2001 Apr 1 00:00UT
Period 1.096
SemiMajorAxis 1.0632007
Eccentricity 0.48324394
Inclination 8.88806
AscendingNode 325.71246
ArgOfPericenter 121.26355
MeanAnomaly 152.5186007
}
UniformRotation
{
Period 4.095
Inclination 146
AscendingNode 325
}
Albedo 0.15
}
# Centaurs
"2060 Chiron:Chiron:1977 UB:95P Chiron" "Sol"
{
Class "asteroid"
Texture "asteroid.jpg"
Color [ 1.000 0.960 0.919 ]
BlendTexture true
Radius 144
EllipticalOrbit
{
Epoch 2449608.5 # 1994 Sep 13 00:00UT
Period 50.90359
SemiMajorAxis 13.734941
Eccentricity 0.384424
Inclination 6.927771
AscendingNode 209.395188
ArgOfPericenter 339.432152
MeanAnomaly 349.983669
}
UniformRotation
{
Period 5.918
}
Albedo 0.048
}

13049
data/boundaries.dat 100644

File diff suppressed because it is too large Load Diff

9649
data/charm2.stc 100644

File diff suppressed because it is too large Load Diff

117
data/comets.ssc 100644
View File

@ -0,0 +1,117 @@
# Comets
"Halley:1P Halley" "Sol"
{
Class "comet"
Mesh "halley.cmod"
Texture "asteroid.jpg"
Radius 7.6 # maximum semi-axis
MeshCenter [ -0.338 1.303 0.230 ]
EllipticalOrbit
{
Epoch 2449400.5 #1994 Feb 17 00:00UT
Period 75.31589
SemiMajorAxis 17.834144
Eccentricity 0.967143
Inclination 162.262690
AscendingNode 58.420081
ArgOfPericenter 111.332485
MeanAnomaly 38.384264
}
# chaotic rotation, imperfectly defined:
# this version from "The New Solar System", 4th Edition; Eds.
# JK Beatty, CC Petersen, A Chaikin
PrecessingRotation
{
Period 170 # 7.1 day axial rotation period
Inclination 66
PrecessionPeriod 0.010 # 3.7 day precession period
}
Albedo 0.04
}
"Borrelly:19P Borrelly" "Sol"
{
Class "comet"
Mesh "borrelly.cms"
Texture "asteroid.jpg"
Radius 2.2
InfoURL "http://www.solarviews.com/eng/borrelly.htm"
EllipticalOrbit
{
Epoch 2452174.5 # 2001 Sep 22 00:00UT
Period 6.86302
SemiMajorAxis 3.611363
Eccentricity 0.623908
Inclination 30.324612
AscendingNode 75.424869
ArgOfPericenter 353.375385
MeanAnomaly 358.956091
}
UniformRotation
{
Period 25
Inclination 90
AscendingNode 315
}
Albedo 0.04
}
"Ikeya-Zhang:153P Ikeya-Zhang" "Sol"
{
Class "comet"
Texture "asteroid.jpg"
Mesh "roughsphere.cms"
EllipticalOrbit
{
Epoch 2452352.47847 # 2002 Mar 18 23:29UT
Period 367.181906
SemiMajorAxis 51.276792
Eccentricity 0.990111
Inclination 28.1206
AscendingNode 93.3718
ArgOfPericenter 34.6666
MeanAnomaly 0
}
# These are all made up (copied from Halley)
Radius 7.5
UniformRotation
{
Period 170
}
Albedo 0.04
}
"Hale-Bopp:C1995 O1 Hale-Bopp" "Sol"
{
Class "comet"
Mesh "asteroid.cms"
Texture "asteroid.jpg"
Radius 13
EllipticalOrbit
{
Period 2523.4
PericenterDistance 0.914142
Eccentricity 0.995068
Inclination 89.4300
AscendingNode 282.4707
ArgOfPericenter 130.5887
MeanAnomaly -0.007
Epoch 2450520.5
}
# Estimate of rotation period from here: http://www.usafa.af.mil/dfp/research/astro/papers/icqpaper.htm
RotationPeriod 11.47
Albedo 0.1
}

View File

@ -0,0 +1,84 @@
Location "NORTH AMERICA" "Sol/Earth"
{
LongLat [ -105 40 0 ]
Size 5000
Type "TA"
}
Location "SOUTH AMERICA" "Sol/Earth"
{
LongLat [ -60 -10 0 ]
Size 4200
Type "TA"
}
Location "EURASIA" "Sol/Earth"
{
LongLat [ 60 50 0 ]
Size 7300
Type "TA"
}
Location "AFRICA" "Sol/Earth"
{
LongLat [ 20 5 0 ]
Size 5500
Type "TA"
}
Location "AUSTRALIA" "Sol/Earth"
{
LongLat [ 135 -25 0 ]
Size 2800
Type "TA"
}
Location "ANTARCTICA" "Sol/Earth"
{
LongLat [ 0 -90 0 ]
Size 3600
Type "TA"
}
Location "NORTH ATLANTIC OCEAN" "Sol/Earth"
{
LongLat [ -45 40 0 ]
Size 6400
Type "ME"
}
Location "SOUTH ATLANTIC OCEAN" "Sol/Earth"
{
LongLat [ -15 -15 0 ]
Size 6400
Type "ME"
}
Location "NORTH PACIFIC OCEAN" "Sol/Earth"
{
LongLat [ 180 30 0 ]
Size 9000
Type "ME"
}
Location "SOUTH PACIFIC OCEAN" "Sol/Earth"
{
LongLat [ -160 -10 0 ]
Size 9000
Type "ME"
}
Location "INDIAN OCEAN" "Sol/Earth"
{
LongLat [ 75 -15 0 ]
Size 8500
Type "ME"
}
Location "ARCTIC OCEAN" "Sol/Earth"
{
LongLat [ 0 90 0 ]
Size 3700
Type "ME"
}

288
data/eros_locs.ssc 100644
View File

@ -0,0 +1,288 @@
Location "Abelard" "Sol/Eros"
{
LongLat [ -12.2 -3.5 0 ]
Size 1.1
Type "AA"
}
Location "Aida" "Sol/Eros"
{
LongLat [ -130.5 7.9 0 ]
Size 1.6
Type "AA"
}
Location "Avtandil" "Sol/Eros"
{
LongLat [ -233.1 -22.5 0 ]
Size 1.2
Type "AA"
}
Location "Bovary" "Sol/Eros"
{
LongLat [ -27.3 -61.0 0 ]
Size 0.8
Type "AA"
}
Location "Casanova" "Sol/Eros"
{
LongLat [ -236.0 46.6 0 ]
Size 0.9
Type "AA"
}
Location "Catherine" "Sol/Eros"
{
LongLat [ -171.1 9.1 0 ]
Size 1.1
Type "AA"
}
Location "Cupid" "Sol/Eros"
{
LongLat [ -230.2 8.1 0 ]
Size 1.8
Type "AA"
}
Location "Don Juan" "Sol/Eros"
{
LongLat [ -356.7 29.5 0 ]
Size 1.1
Type "AA"
}
Location "Don Quixote" "Sol/Eros"
{
LongLat [ -250.8 -57.7 0 ]
Size 0.9
Type "AA"
}
Location "Dulcinea" "Sol/Eros"
{
LongLat [ -272.9 -76.1 0 ]
Size 1.4
Type "AA"
}
Location "Eurydice" "Sol/Eros"
{
LongLat [ -170.0 13.5 0 ]
Size 2.2
Type "AA"
}
Location "Fujitsubo" "Sol/Eros"
{
LongLat [ -62.7 -3.7 0 ]
Size 1.7
Type "AA"
}
Location "Galatea" "Sol/Eros"
{
LongLat [ -183.1 -10.2 0 ]
Size 1.4
Type "AA"
}
Location "Gamba" "Sol/Eros"
{
LongLat [ -54.1 -20.6 0 ]
Size 1.3
Type "AA"
}
Location "Genji" "Sol/Eros"
{
LongLat [ -88.6 -19.5 0 ]
Size 1.5
Type "AA"
}
Location "Heathcliff" "Sol/Eros"
{
LongLat [ -167.9 7.4 0 ]
Size 1.1
Type "AA"
}
Location "Himeros" "Sol/Eros"
{
LongLat [ -282.3 21.2 0 ]
Size 10.0
Type "AA"
}
Location "Hios" "Sol/Eros"
{
LongLat [ -130.9 -9.4 0 ]
Size 1.3
Type "AA"
}
Location "Jahan" "Sol/Eros"
{
LongLat [ -293.5 74.2 0 ]
Size 2.1
Type "AA"
}
Location "Kastytis" "Sol/Eros"
{
LongLat [ -161.3 6.8 0 ]
Size 1.7
Type "AA"
}
Location "Leander" "Sol/Eros"
{
LongLat [ -210.3 25.6 0 ]
Size 1.4
Type "AA"
}
Location "Leylie" "Sol/Eros"
{
LongLat [ -23.5 -3.0 0 ]
Size 1.9
Type "AA"
}
Location "Lolita" "Sol/Eros"
{
LongLat [ -197.7 -35.2 0 ]
Size 1.8
Type "AA"
}
Location "Mahal" "Sol/Eros"
{
LongLat [ -170.0 79.4 0 ]
Size 1.2
Type "AA"
}
Location "Majnoon" "Sol/Eros"
{
LongLat [ -28.8 3.8 0 ]
Size 2.1
Type "AA"
}
Location "Mélisande" "Sol/Eros"
{
LongLat [ -185.6 67.1 0 ]
Size 1.0
Type "AA"
}
Location "Narcissus" "Sol/Eros"
{
LongLat [ -7.1 18.2 0 ]
Size 2.9
Type "AA"
}
Location "Orpheus" "Sol/Eros"
{
LongLat [ -176.7 25.6 0 ]
Size 1.1
Type "AA"
}
Location "Pao-yü" "Sol/Eros"
{
LongLat [ -105.6 -73.2 0 ]
Size 0.8
Type "AA"
}
Location "Pelléas" "Sol/Eros"
{
LongLat [ -221.3 63.1 0 ]
Size 1.2
Type "AA"
}
Location "Psyche" "Sol/Eros"
{
LongLat [ -94.6 31.6 0 ]
Size 4.8
Type "AA"
}
Location "Pygmalion" "Sol/Eros"
{
LongLat [ -191.1 -1.8 0 ]
Size 1.7
Type "AA"
}
Location "Radames" "Sol/Eros"
{
LongLat [ -115.1 -5.2 0 ]
Size 1.6
Type "AA"
}
Location "Selene" "Sol/Eros"
{
LongLat [ -12.5 -14.2 0 ]
Size 3.6
Type "AA"
}
Location "Tai-yü" "Sol/Eros"
{
LongLat [ -126.1 -47.0 0 ]
Size 1.4
Type "AA"
}
Location "Tutanekai" "Sol/Eros"
{
LongLat [ -3.3 56.4 0 ]
Size 2.1
Type "AA"
}
Location "Valentine" "Sol/Eros"
{
LongLat [ -208.4 14.6 0 ]
Size 2.2
Type "AA"
}
Location "CHARLOIS REGIO" "Sol/Eros"
{
LongLat [ -330 -16 0 ]
Size 10
Type "RE"
}
Location "WITT REGIO" "Sol/Eros"
{
LongLat [ -348 18 0 ]
Size 10
Type "RE"
}
Location "Finsen Dorsum" "Sol/Eros"
{
LongLat [ -350 -48 0 ]
Size 10
Type "DO"
}
Location "Hinks Dorsum" "Sol/Eros"
{
LongLat [ -318 42 0 ]
Size 10
Type "DO"
}

15175
data/extrasolar.ssc 100644

File diff suppressed because it is too large Load Diff

1408
data/extrasolar.stc 100644

File diff suppressed because it is too large Load Diff

142568
data/galaxies.dsc 100644

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,245 @@
# Feature locations on Phil Stooke's Gaspra mosaic do not
# match the coordinates given by the IAU. This file contains
# coordinates adjusted to match Stooke's shape model and
# mosaic, guided by the IAU labelled photos at:
# http://planetarynames.wr.usgs.gov/images/gaspra_craters.pdf
Location "Aix" "Sol/Gaspra"
{
LongLat [ -156 47 0 ]
Size 0.6
Type "AA"
}
Location "Alupka" "Sol/Gaspra"
{
LongLat [ -72 67 0 ]
Size 0.3
Type "AA"
}
Location "Baden-Baden" "Sol/Gaspra"
{
LongLat [ -57 42 0 ]
Size 0.3
Type "AA"
}
Location "Badagstein" "Sol/Gaspra"
{
LongLat [ -6 27 0 ]
Size 0.4
Type "AA"
}
Location "Bagnoles" "Sol/Gaspra"
{
LongLat [ -120 56 0 ]
Size 0.4
Type "AA"
}
Location "Bath" "Sol/Gaspra"
{
LongLat [ -11 12 0 ]
Size 0.9
Type "AA"
}
Location "Beppu" "Sol/Gaspra"
{
LongLat [ -58 -3 0 ]
Size 0.6
Type "AA"
}
Location "Brookton" "Sol/Gaspra"
{
LongLat [ -102 25 0 ]
Size 0.3
Type "AA"
}
Location "Calistoga" "Sol/Gaspra"
{
LongLat [ -5 30 0 ]
Size 1.2
Type "AA"
}
Location "Carlsbad" "Sol/Gaspra"
{
LongLat [ -86 29 0 ]
Size 0.5
Type "AA"
}
Location "Charax" "Sol/Gaspra"
{
LongLat [ 0 7 0 ]
Size 0.9
Type "AA"
}
Location "Helwan" "Sol/Gaspra"
{
LongLat [ -115 23 0 ]
Size 0.4
Type "AA"
}
Location "Ixtapan" "Sol/Gaspra"
{
LongLat [ -87 7 0 ]
Size 0.7
Type "AA"
}
Location "Katsiveli" "Sol/Gaspra"
{
LongLat [ -68 53 0 ]
Size 0.3
Type "AA"
}
Location "Krynica" "Sol/Gaspra"
{
LongLat [ -37 46 0 ]
Size 0.4
Type "AA"
}
Location "Lisdoonvarna" "Sol/Gaspra"
{
LongLat [ -357 14 0 ]
Size 0.4
Type "AA"
}
Location "Loutraki" "Sol/Gaspra"
{
LongLat [ -130 41 0 ]
Size 0.4
Type "AA"
}
Location "Mandal" "Sol/Gaspra"
{
LongLat [ -48 20 0 ]
Size 0.1
Type "AA"
}
Location "Manikaran" "Sol/Gaspra"
{
LongLat [ -152 66 0 ]
Size 0.5
Type "AA"
}
Location "Marienbad" "Sol/Gaspra"
{
LongLat [ -81 32 0 ]
Size 0.6
Type "AA"
}
Location "Miskhor" "Sol/Gaspra"
{
LongLat [ -66 8 0 ]
Size 0.5
Type "AA"
}
Location "Moree" "Sol/Gaspra"
{
LongLat [ -143 34 0 ]
Size 0.7
Type "AA"
}
Location "Ramlösa" "Sol/Gaspra"
{
LongLat [ -7 15 0 ]
Size 0.7
Type "AA"
}
Location "Rio Hondo" "Sol/Gaspra"
{
LongLat [ -22 30 0 ]
Size 0.6
Type "AA"
}
Location "Rotorua" "Sol/Gaspra"
{
LongLat [ -32 17 0 ]
Size 0.5
Type "AA"
}
Location "Saratoga" "Sol/Gaspra"
{
LongLat [ -221.5 16.2 0 ]
Size 2.8
Type "AA"
}
Location "Spa" "Sol/Gaspra"
{
LongLat [ -146 52 0 ]
Size 1.6
Type "AA"
}
Location "Tang-Shan" "Sol/Gaspra"
{
LongLat [ -258.8 50.6 0 ]
Size 0.7
Type "AA"
}
Location "Yalova" "Sol/Gaspra"
{
LongLat [ -12 27 0 ]
Size 0.4
Type "AA"
}
Location "Yalta" "Sol/Gaspra"
{
LongLat [ -231.3 45.7 0 ]
Size 1.4
Type "AA"
}
Location "Zohar" "Sol/Gaspra"
{
LongLat [ -117 21 0 ]
Size 0.4
Type "AA"
}
Location "DUNNE REGIO" "Sol/Gaspra"
{
LongLat [ -15 15 0 ]
Size 5
Type "RE"
}
Location "NEUJMIN REGIO" "Sol/Gaspra"
{
LongLat [ -80 2 0 ]
Size 5
Type "RE"
}
Location "YEATES REGIO" "Sol/Gaspra"
{
LongLat [ -75 65 0 ]
Size 5
Type "RE"
}

2126
data/globulars.dsc 100644

File diff suppressed because it is too large Load Diff

BIN
data/hdxindex.dat 100644

Binary file not shown.

174
data/ida_locs.ssc 100644
View File

@ -0,0 +1,174 @@
Location "Afon" "Sol/Ida"
{
LongLat [ 0 6.5 0 ]
Size 25.0
Type "AA"
}
Location "Atea" "Sol/Ida"
{
LongLat [ -18.9 5.7 0 ]
Size 2.0
Type "AA"
}
Location "Azzurra" "Sol/Ida"
{
LongLat [ -217.2 -30.5 0 ]
Size 9.6
Type "AA"
}
Location "Bilemot" "Sol/Ida"
{
LongLat [ -29.2 27.8 0 ]
Size 1.8
Type "AA"
}
Location "Castellana" "Sol/Ida"
{
LongLat [ -335.2 13.4 0 ]
Size 5.2
Type "AA"
}
Location "Choukoutien" "Sol/Ida"
{
LongLat [ -23.6 -12.8 0 ]
Size 1.1
Type "AA"
}
Location "Fingal" "Sol/Ida"
{
LongLat [ -39.9 13.2 0 ]
Size 1.5
Type "AA"
}
Location "Kartchner" "Sol/Ida"
{
LongLat [ -179.0 7.0 0 ]
Size 0.9
Type "AA"
}
Location "Kazumura" "Sol/Ida"
{
LongLat [ -41.1 32.0 0 ]
Size 2.1
Type "AA"
}
Location "Lascaux" "Sol/Ida"
{
LongLat [ -161.2 -0.8 0 ]
Size 11.8
Type "AA"
}
Location "Lechuguilla" "Sol/Ida"
{
LongLat [ -357.1 -7.9 0 ]
Size 1.5
Type "AA"
}
Location "Mammoth" "Sol/Ida"
{
LongLat [ -180.3 18.3 0 ]
Size 10.2
Type "AA"
}
Location "Manjang" "Sol/Ida"
{
LongLat [ -90.5 28.3 0 ]
Size 1.0
Type "AA"
}
Location "Orgnac" "Sol/Ida"
{
LongLat [ -202.7 6.3 0 ]
Size 10.6
Type "AA"
}
Location "Padirac" "Sol/Ida"
{
LongLat [ -5.2 4.3 0 ]
Size 1.9
Type "AA"
}
Location "Peacock" "Sol/Ida"
{
LongLat [ -52.0 2.0 0 ]
Size 0.2
Type "AA"
}
Location "Postojna" "Sol/Ida"
{
LongLat [ -359.9 42.9 0 ]
Size 6.0
Type "AA"
}
Location "Sterkfontein" "Sol/Ida"
{
LongLat [ -54.1 4.1 0 ]
Size 4.7
Type "AA"
}
Location "Stiffe" "Sol/Ida"
{
LongLat [ -126.5 27.9 0 ]
Size 1.5
Type "AA"
}
Location "Undara" "Sol/Ida"
{
LongLat [ -113.8 -2.0 0 ]
Size 8.5
Type "AA"
}
Location "Viento" "Sol/Ida"
{
LongLat [ -343.9 -12.2 0 ]
Size 1.6
Type "AA"
}
Location "PALISA REGIO" "Sol/Ida"
{
LongLat [ -34 23 0 ]
Size 23
Type "RE"
}
Location "POLA REGIO" "Sol/Ida"
{
LongLat [ -184 11 0 ]
Size 8
Type "RE"
}
Location "VIENNA REGIO" "Sol/Ida"
{
LongLat [ -2 -8 0 ]
Size 13
Type "RE"
}
Location "Townsend Dorsum" "Sol/Ida"
{
LongLat [ -30 -25 0 ]
Size 40
Type "DO"
}

View File

@ -0,0 +1,125 @@
# IAU names for features on the asteroid 25143 Itokawa
Location "MUSES-C REGIO" "Sol/Itokawa"
{
LongLat [ -60 -70 0 ]
Size 0.3
Type "RE"
}
Location "SAGAMIHARA REGIO" "Sol/Itokawa"
{
LongLat [ -15 80 0 ]
Size 0.23
Type "RE"
}
Location "UCHINOURA REGIO" "Sol/Itokawa"
{
LongLat [ 90 40 0 ]
Size 0.07
Type "RE"
}
# Position from IAU map; coords inconsistent
Location "Miyabaru" "Sol/Itokawa"
{
LongLat [ 5 10 0 ]
Size 0.088
Type "AA"
}
Location "Fuchinobe" "Sol/Itokawa"
{
LongLat [ 269 34 0 ]
Size 0.037
Type "AA"
}
Location "Komaba" "Sol/Itokawa"
{
LongLat [ 102 -10 0 ]
Size 0.028
Type "AA"
}
Location "Hammaguira" "Sol/Itokawa"
{
LongLat [ 205 -18 0 ]
Size 0.028
Type "AA"
}
Location "Laurel" "Sol/Itokawa"
{
LongLat [ 162 1 0 ]
Size 0.022
Type "AA"
}
Location "Catalina" "Sol/Itokawa"
{
LongLat [ 14 -17 0 ]
Size 0.021
Type "AA"
}
Location "Kamisunagawa" "Sol/Itokawa"
{
LongLat [ 45 -28 0 ]
Size 0.013
Type "AA"
}
Location "Kamoi" "Sol/Itokawa"
{
LongLat [ 244 6 0 ]
Size 0.01
Type "AA"
}
Location "San Marco" "Sol/Itokawa"
{
LongLat [ 319 -28 0 ]
Size 0.01
Type "AA"
}
Location "Gando" "Sol/Itokawa"
{
LongLat [ 205 -76 0 ]
Size 0.01
Type "AA"
}
# Position from IAU map; coords inconsistent
Location "YOSHINOBU REGIO" "Sol/Itokawa"
{
LongLat [ -10 20 0 ]
Size 0.163
Type "RE"
}
# Position from IAU map; coords inconsistent
Location "ARCOONA REGIO" "Sol/Itokawa"
{
LongLat [ -190 -10 0 ]
Size 0.161
Type "RE"
}
# Position from IAU map; coords inconsistent
Location "OHSUMI REGIO" "Sol/Itokawa"
{
LongLat [ 255 -20 0 ]
Size 0.140
Type "RE"
}
# Position from IAU map; coords inconsistent
Location "LINEAR REGIO" "Sol/Itokawa"
{
LongLat [ 130 0 0 ]
Size 0.122
Type "RE"
}

File diff suppressed because it is too large Load Diff

12759
data/mars_locs.ssc 100644

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,126 @@
Location "Kepler Dorsum" "Sol/Mars/Phobos"
{
LongLat [ -30 -30 0 ]
Size 3
Type "DO"
}
Location "Clustril" "Sol/Mars/Phobos"
{
LongLat [ -91 60 0 ]
Size 3.4
Type "AA"
}
Location "D'Arrest" "Sol/Mars/Phobos"
{
LongLat [ -179 -39 0 ]
Size 2.1
Type "AA"
}
Location "Drunlo" "Sol/Mars/Phobos"
{
LongLat [ -92 36.5 0 ]
Size 4.2
Type "AA"
}
Location "Flimnap" "Sol/Mars/Phobos"
{
LongLat [ -350 60 0 ]
Size 1.5
Type "AA"
}
Location "Grildrig" "Sol/Mars/Phobos"
{
LongLat [ -195 81 0 ]
Size 2.6
Type "AA"
}
Location "Gulliver" "Sol/Mars/Phobos"
{
LongLat [ -163 62 0 ]
Size 5.5
Type "AA"
}
Location "Hall" "Sol/Mars/Phobos"
{
LongLat [ -210 -80 0 ]
Size 5.4
Type "AA"
}
Location "Limtoc" "Sol/Mars/Phobos"
{
LongLat [ -54 -11 0 ]
Size 2.0
Type "AA"
}
Location "Reldresal" "Sol/Mars/Phobos"
{
LongLat [ -39 41 0 ]
Size 2.9
Type "AA"
}
Location "Roche" "Sol/Mars/Phobos"
{
LongLat [ -183 53 0 ]
Size 2.3
Type "AA"
}
Location "Sharpless" "Sol/Mars/Phobos"
{
LongLat [ -154 -27.5 0 ]
Size 1.8
Type "AA"
}
Location "Skyresh" "Sol/Mars/Phobos"
{
LongLat [ -320 52.5 0 ]
Size 1.5
Type "AA"
}
Location "Stickney" "Sol/Mars/Phobos"
{
LongLat [ -49 1 0 ]
Size 9.0
Type "AA"
}
Location "Todd" "Sol/Mars/Phobos"
{
LongLat [ -153 -9 0 ]
Size 2.6
Type "AA"
}
Location "Wendell" "Sol/Mars/Phobos"
{
LongLat [ -132 -1 0 ]
Size 1.7
Type "AA"
}
Location "Swift" "Sol/Mars/Deimos"
{
LongLat [ -358 14 0 ]
Size 1.5
Type "AA"
}
Location "Voltaire" "Sol/Mars/Deimos"
{
LongLat [ -2 23 0 ]
Size 3
Type "AA"
}

2478
data/merc_locs.ssc 100644

File diff suppressed because it is too large Load Diff

1074
data/minormoons.ssc 100644

File diff suppressed because it is too large Load Diff

15396
data/moon_locs.ssc 100644

File diff suppressed because it is too large Load Diff

2775
data/nearstars.stc 100644

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,434 @@
Location "Abatos Planum" "Sol/Neptune/Triton"
{
LongLat [ -58 21.5 0 ]
Size 400
Type "PM"
}
Location "Akupara Maculae" "Sol/Neptune/Triton"
{
LongLat [ -63 27.5 0 ]
Size 100
Type "MA"
}
Location "Amarum" "Sol/Neptune/Triton"
{
LongLat [ -24.5 -26 0 ]
Size 25
Type "AA"
}
Location "Andvari" "Sol/Neptune/Triton"
{
LongLat [ -34 -20.5 0 ]
Size 25
Type "AA"
}
Location "Apep Cavus" "Sol/Neptune/Triton"
{
LongLat [ -301.5 -20 0 ]
Size 25
Type "CB"
}
Location "Awib Dorsa" "Sol/Neptune/Triton"
{
LongLat [ -80 7 0 ]
Size 100
Type "DO"
}
Location "Bheki Cavus" "Sol/Neptune/Triton"
{
LongLat [ -308 -16 0 ]
Size 25
Type "CB"
}
Location "Bia Sulci" "Sol/Neptune/Triton"
{
LongLat [ -3 38 0 ]
Size 200
Type "SU"
}
Location "Boynne Sulci" "Sol/Neptune/Triton"
{
LongLat [ -350 13 0 ]
Size 500
Type "SU"
}
Location "BUBEMBE REGIO" "Sol/Neptune/Triton"
{
LongLat [ -335 -18 0 ]
Size 700
Type "RE"
}
Location "Cay" "Sol/Neptune/Triton"
{
LongLat [ -44 12 0 ]
Size 25
Type "AA"
}
Location "Cipango Planum" "Sol/Neptune/Triton"
{
LongLat [ -34 -11.5 0 ]
Size 300
Type "PM"
}
Location "Dagon Cavus" "Sol/Neptune/Triton"
{
LongLat [ -345 -29 0 ]
Size 25
Type "CB"
}
Location "Dilolo Patera" "Sol/Neptune/Triton"
{
LongLat [ -24.3 -26.2 0 ]
Size 25
Type "PE"
}
Location "Doro Macula" "Sol/Neptune/Triton"
{
LongLat [ -31.7 27.5 0 ]
Size 100
Type "MA"
}
Location "Gandvik Patera" "Sol/Neptune/Triton"
{
LongLat [ -5.5 -28 0 ]
Size 25
Type "PE"
}
Location "Hekt Cavus" "Sol/Neptune/Triton"
{
LongLat [ -342 -26 0 ]
Size 25
Type "CB"
}
Location "Hili" "Sol/Neptune/Triton"
{
LongLat [ -35 57 0 ]
Size 25
Type "PU"
}
Location "Hirugo Cavus" "Sol/Neptune/Triton"
{
LongLat [ -345 -14.5 0 ]
Size 25
Type "CB"
}
Location "Ho Sulci" "Sol/Neptune/Triton"
{
LongLat [ -305 -2 0 ]
Size 300
Type "SU"
}
Location "Ilomba" "Sol/Neptune/Triton"
{
LongLat [ -57 14.5 0 ]
Size 25
Type "AA"
}
Location "Jumna Fossae" "Sol/Neptune/Triton"
{
LongLat [ -44 13.5 0 ]
Size 300
Type "FO"
}
Location "Kasu Patera" "Sol/Neptune/Triton"
{
LongLat [ -14 -39 0 ]
Size 25
Type "PE"
}
Location "Kasyapa Cavus" "Sol/Neptune/Triton"
{
LongLat [ -358 -7.5 0 ]
Size 25
Type "CB"
}
Location "Kibu Patera" "Sol/Neptune/Triton"
{
LongLat [ -43 -10.5 0 ]
Size 25
Type "PE"
}
Location "Kikimora Maculae" "Sol/Neptune/Triton"
{
LongLat [ -78 31 0 ]
Size 100
Type "MA"
}
Location "Kormet Sulci" "Sol/Neptune/Triton"
{
LongLat [ -335.5 -23 0 ]
Size 300
Type "SU"
}
Location "Kraken Catena" "Sol/Neptune/Triton"
{
LongLat [ -35.5 -14 0 ]
Size 150
Type "CA"
}
Location "Kulilu Cavus" "Sol/Neptune/Triton"
{
LongLat [ -4 -41 0 ]
Size 25
Type "CB"
}
Location "Kurma" "Sol/Neptune/Triton"
{
LongLat [ -61 16.5 0 ]
Size 25
Type "AA"
}
Location "Leipter Sulci" "Sol/Neptune/Triton"
{
LongLat [ -9 -7 0 ]
Size 200
Type "SU"
}
Location "Leviathan Patera" "Sol/Neptune/Triton"
{
LongLat [ -28.5 -17 0 ]
Size 100
Type "PE"
}
Location "Lo Sulci" "Sol/Neptune/Triton"
{
LongLat [ -321 -3.8 0 ]
Size 150
Type "SU"
}
Location "Mah Cavus" "Sol/Neptune/Triton"
{
LongLat [ -6 -38 0 ]
Size 25
Type "CB"
}
Location "Mahilani" "Sol/Neptune/Triton"
{
LongLat [ -359.5 50.5 0 ]
Size 25
Type "PU"
}
Location "Mangwe Cavus" "Sol/Neptune/Triton"
{
LongLat [ -343 7 0 ]
Size 25
Type "CB"
}
Location "Mazomba" "Sol/Neptune/Triton"
{
LongLat [ -63.5 18.5 0 ]
Size 25
Type "AA"
}
Location "Medamothi Planum" "Sol/Neptune/Triton"
{
LongLat [ -69 -3.5 0 ]
Size 300
Type "PM"
}
Location "MONAD REGIO" "Sol/Neptune/Triton"
{
LongLat [ -37 -20 0 ]
Size 1000
Type "RE"
}
Location "Namazu Macula" "Sol/Neptune/Triton"
{
LongLat [ -14 25.5 0 ]
Size 100
Type "MA"
}
Location "Ob Sulci" "Sol/Neptune/Triton"
{
LongLat [ -328 6 0 ]
Size 300
Type "SU"
}
Location "Ormet Sulci" "Sol/Neptune/Triton"
{
LongLat [ -337 -17 0 ]
Size 300
Type "SU"
}
Location "Ravgga" "Sol/Neptune/Triton"
{
LongLat [ -71.5 3 0 ]
Size 25
Type "AA"
}
Location "Raz Fossae" "Sol/Neptune/Triton"
{
LongLat [ -21.5 -8 0 ]
Size 300
Type "FO"
}
Location "Rem Maculae" "Sol/Neptune/Triton"
{
LongLat [ -349.5 -13 0 ]
Size 150
Type "MA"
}
Location "Ruach Planitia" "Sol/Neptune/Triton"
{
LongLat [ -24 -28 0 ]
Size 200
Type "PL"
}
Location "Ryugu Planitia" "Sol/Neptune/Triton"
{
LongLat [ -27 5 0 ]
Size 100
Type "PL"
}
Location "Set Catena" "Sol/Neptune/Triton"
{
LongLat [ -33.5 -22 0 ]
Size 200
Type "CA"
}
Location "Sipapu Planitia" "Sol/Neptune/Triton"
{
LongLat [ -36 4 0 ]
Size 100
Type "PL"
}
Location "Slidr Sulci" "Sol/Neptune/Triton"
{
LongLat [ -350 -23.5 0 ]
Size 200
Type "SU"
}
Location "Tangaroa" "Sol/Neptune/Triton"
{
LongLat [ -65.5 25 0 ]
Size 100
Type "AA"
}
Location "Tano Sulci" "Sol/Neptune/Triton"
{
LongLat [ -337 -33.5 0 ]
Size 300
Type "SU"
}
Location "Tuonela Planitia" "Sol/Neptune/Triton"
{
LongLat [ -14.5 -34 0 ]
Size 300
Type "PL"
}
Location "UHLANGA REGIO" "Sol/Neptune/Triton"
{
LongLat [ -357 37 0 ]
Size 1000
Type "RE"
}
Location "Ukupanio Cavus" "Sol/Neptune/Triton"
{
LongLat [ -23 -35 0 ]
Size 25
Type "CB"
}
Location "Vimur Sulci" "Sol/Neptune/Triton"
{
LongLat [ -59 11 0 ]
Size 400
Type "SU"
}
Location "Viviane Macula" "Sol/Neptune/Triton"
{
LongLat [ -36.5 31 0 ]
Size 100
Type "MA"
}
Location "Vodyanoy" "Sol/Neptune/Triton"
{
LongLat [ -28.5 17 0 ]
Size 100
Type "AA"
}
Location "Yasu Sulci" "Sol/Neptune/Triton"
{
LongLat [ -347 -2 0 ]
Size 300
Type "SU"
}
Location "Yenisey Fossa" "Sol/Neptune/Triton"
{
LongLat [ -56.2 -3 0 ]
Size 300
Type "FO"
}
Location "Zin Maculae" "Sol/Neptune/Triton"
{
LongLat [ -68 24.5 0 ]
Size 300
Type "MA"
}
Location "Pharos" "Sol/Neptune/Proteus"
{
LongLat [ -5 -20 0 ]
Size 255
Type "AA"
}

Some files were not shown because too many files have changed in this diff Show More