diff options
Diffstat (limited to 'debian/mp4v2/mp4v2-2.0.0~dfsg0/doc/BuildRepository.txt')
-rw-r--r-- | debian/mp4v2/mp4v2-2.0.0~dfsg0/doc/BuildRepository.txt | 720 |
1 files changed, 0 insertions, 720 deletions
diff --git a/debian/mp4v2/mp4v2-2.0.0~dfsg0/doc/BuildRepository.txt b/debian/mp4v2/mp4v2-2.0.0~dfsg0/doc/BuildRepository.txt deleted file mode 100644 index aab40aa8..00000000 --- a/debian/mp4v2/mp4v2-2.0.0~dfsg0/doc/BuildRepository.txt +++ /dev/null @@ -1,720 +0,0 @@ -MP4v2 2.0.0 Building the Repository -*********************************** - -Table of Contents -***************** - -1 Overview -2 Introduction -3 Quickstart -4 Build Process - 4.1 Checkout Sources - 4.2 Boostrap (Autotools) - 4.3 Configure - 4.4 Build - 4.5 Install - 4.6 Create Distribution - 4.7 Build Documentation - 4.8 Post Site and API Documentation to project website. -5 Platform Notes - 5.1 Mac OS X - 5.1.1 Default Binaries - 5.1.2 Release Binaries - 5.1.3 Developer Binaries - 5.1.4 Universal Binaries - all architectures - 5.1.5 Universal Binaries - selected architectures - 5.2 Linux - 5.2.1 Default Binaries - 5.2.2 Release Binaries - 5.2.3 Developer Binaries - 5.2.4 Bi-arch compilation - 5.3 FreeBSD - 5.3.1 Default Binaries - 5.3.2 Release Binaries - 5.3.3 Developer Binaries - 5.3.4 Bi-arch compilation - 5.4 Solaris - 5.4.1 Default Binaries - 5.4.2 Release Binaries - 5.4.3 Developer Binaries - 5.4.4 Bi-arch compilation - 5.5 Cygwin - 5.5.1 Default Binaries - 5.5.2 Release Binaries - 5.5.3 Developer Binaries - 5.6 Windows - - -1 Overview -********** - -The documented and supported method to build MP4v2 uses the GNU build -system (also known as the Autotools). You must first obtain the sources -by either downloading and extracting the source-distribution bundle or -working directly MP4v2's Subversion repository. We have build documents -for both methods, but unless you are a member of the MP4v2 project, you -are strongly encouraged to use the source-distribution method. - -On other supported platforms which lack Autotools we provide an -alternative method for building the software. Please see the -appropriate platform section. - -2 Introduction -************** - -This document describes the recommended process to build MP4v2 from the -repository. This process is a superset of the process to build from a -source-distribution bundle. If you are interested in building from a -source-distribution bundle then this document is not for you. - -3 Quickstart -************ - -This chapter is for the impatient or those just looking for a quick -summary of all the commands used in a typical build. You may skip this -summary and jump to *note Build Process::. - - svn checkout https://mp4v2.googlecode.com/svn/releases/2.0.0 mp4v2 - cd mp4v2 - autoreconf -fiv - rm -fr build/ - mkdir build/ - cd build/ - ../configure - make - make install - make install-man - make dist - -4 Build Process -*************** - -4.1 Checkout Sources -==================== - -Checkout sources from the project's Subversion repository. - -Sources are checked out from either the trunk, release or a branch. -This document was generated from one of those, and for example -purposes, we will use exactly the same URL which used to create the -distribution which contains this document. - -If you are a project member, then you may add the appropriate -login/password information as needed. - - svn checkout https://mp4v2.googlecode.com/svn/releases/2.0.0 mp4v2 - cd mp4v2 - -It is recommended to use Subversion 1.5.0 or higher. Lower versions -might work. - -4.2 Boostrap (Autotools) -======================== - -The following command causes forces Autotools to regenerate all files -and install helper scripts needed at configure-time and to regenerate -all files. - - autoreconf -fiv - -If you are a project member and preparing for a release, it is -important to note that the versions of Autotools available in your path -will directly effect files added to the bundle. At the time of writing, -the following versions of Autotools are recommended; in some cases a -minimum is hard-coded and warnings will be issued if in violation: - - * GNU autoconf 2.61 or higher (lower versions might work) - - * GNU automake 1.10 or higher (lower versions might work) - - * GNU libtool 1.5.26 or higher (lower versions might work) - -4.3 Configure -============= - -The following command configures the project for a build. It is highly -recommended that you invoke configure from an empty directory. - - rm -fr build/ - mkdir build/ - cd build/ - ../configure - -Please see `INSTALL' for details on configure usage, and standard -options. Additionally, the following custom options have been added to -`configure': - -`--disable-debug' - Do not generate debug information. Do not direct compiler to - generate debugging information. By default the compiler will - generate debug information if the platform supports it. - -`--disable-optimize' - Do not optimize. Do not direct compiler to optimize code. By - default compiler optimization is enabled if the platform supports - it. - -`--disable-fvisibility' - Do not set default ELF symbol visibility. By default configure - attempts to detect if the compiler supports this feature. However - on some platforms detecting incompatibilty of this feature might - not be accurate in which case this option should be given. - -`--disable-gch' - By default certain platforms are marked to use GCC precompiled - headers. Generally this greatly decrease build times but may - require more diligence for iterative development; that is to say - dependencies may not properly be tracked and more frequent `make - clean' may be required when headers are changed. Use this option - to disable GCC precompiled headers. - -`--disable-largefile' - On some 32-bit platforms or configurations it might be desirable - to build without largefile (LFS) support. By default configure - attempts to detect formal LFS support and enables it if found. - -`--disable-util' - Do not build/install utilities. This is convenience option for - users who desire to skip building the utilities (eg. command-line - executables) which are enabled by default. - -`--enable-bi=ARCH' - On bi-arch capable platforms it is possible to generate 32 or 64 - bit code. This is supported by adding arguments `-m32' or `-m64', - respectively, when compiling or linking. Use this option to - override the platform-specific default. - -`--enable-ub[=ARCHS]' - On OSX systems it is possible to generate universal binaries. This - is supported by adding one or more argument patterns `-arch ARCH' - when compiling or linking. Use this option to either target an - architecture different from the platform default, or to produce - universal binaries. - -`--enable-dependency-tracking' - Enable automatic dependency tracking for include-files. By default - this feature is disabled. - - -4.4 Build -========= - -The following command will build MP4v2. - - make - -On some platforms `make' refers to a BSD-flavor of make which is not -compatible with this project. Check if `gmake' is installed, and if it -is, substitute `gmake' wherever you may see `make' in this document. -Otherwise you will need to install GNU make package version 3.81 or -higher. Lower versions might work. - -4.5 Install -=========== - -The following command will install MP4v2. - - make install - make install-man - -4.6 Create Distribution -======================= - -The following command will create a MP4v2 source distribution. It is -during this step that shipped documentation is generated. - - make dist - -This step in the build process introduces additional requirements to -the host system. While most of the following utilities are generally -available, `help2man' is used to generate man-pages; however if this -command is not available the man-pages will be empty. This is -acceptable for non-release builds but for full quality builds this -command is required. - - * GNU help2man 1.36 or higher (lower versions should work) - - * GNU tar 1.15.1 or higher (lower versions should work) - - * GNU gzip 1.3.10 or higher (lower versions should work) - - * bzip2 1.0.4 or higher (lower versions should work) - - * Info-ZIP zip 2.32 or higher (lower versions should work) - -4.7 Build Documentation -======================= - -This step in the build process introduces some significant requirements -to the host system: - - * GNU texinfo 4.8 or higher (lower versions should work) - - * Doxygen 1.5.7 or higher (lower versions should work) - -Documentation that is shipped with source-distribution is generated as -part of the *note Build Process:: step. This section documents builds -all of the supported methods to build documentation. There are three -kinds of documentation in this project; man-pages, articles and API. -Documentation must be build from the repository. - -Man-pages are automatically generated for command-line utilities by -using `html2man' which invokes standard options `--help' and -`--version' and gleans the information, generating a man-page in nroff -script. Note that the utilities will first be built as they are -depdendencies of man-page generation. - -Artcles are usually hand-written and authored in Texinfo format which -permits macro-expansions, simple formatting and conversion to several -popular formats using the GNU `makeinfo'. A Texinfo manual -(http://www.gnu.org/software/texinfo) is available. - -API is documented inline to C and C++ source files, usually headers -using Doxygen comment-formatting. Doxygen is then used to post-process -these files and generate documentation in various formats. A Doxygen -manual is available at it's main site (http://www.doxygen.org) . - -The project's goal is to document as thoroughly as possible the public -API in MP4v2. Since we never have enough time to document everything, -we try to set some priorities in this regard. Generally the public API -is the highest priority to document. Next most important is probably -underlying utility code which is shared by many developers; for example -libplatform. - -If you need examples of how to document C-compatible source see -`include/mp4v2/mp4v2.h' and for C++-only source see -`libplatform/io/File.h' . - -The following table describes the various make targets available for -building docs. Note you must first have completed the *note Configure:: -step. - -`make man' - Generate man-pages for command-line utilities. - -`make html' - Generate articles in HTML format from `texi' files. - -`make txt' - Generate articles in plaintext format from `texi' files. - -`make wiki' - Generate articles in Google Code Wiki format from `texi' files. - -`make xml' - Generate articles in (Texinfo) XML format from `texi' files. - -`make api' - Generate API in HTML format from header files. - -`make articles' - Convenience; the equivalent of `make html txt wiki xml' . - -`make doc' - Convenience; the equivalent of `make man articles api' . - - -And finally all of the document targets have a corresponding clean -target which cleans up generated files. Simply prefix as follows: - - make manclean - make htmlclean - make txtclean - make wikiclean - make xmlclean - make apiclean - make articlesclean - make docclean - -4.8 Post Site and API Documentation to project website. -======================================================= - -This step is for project maintainers and can be used to update Site and -API documentation. The following components are updated: - - * Featured Wiki article: BuildRepository - - * Featured Wiki article: BuildSource - - * MP4v2 (trunk) docs (includes Release Notes and other articles, and - API docs). - -This procedure may only be run from a *nix platform and has only been -tested on Mac OS X. - -`make google.clean' - Clean any local working copy of google changeset. - -`make google.post' - Generate required docs, sparse-checkout google tree, remove files - which are no longer generated, add new files which are generated, - and update existing files. - -`svn ci -m "-refreshed GoogleCode site+api docs." google/.' - Check-in changes. This might take several minutes, especially if - your upstream bandwidth is limited. - - -5 Platform Notes -**************** - -MP4v2 builds on many unix-style platforms, also commonly referred to as -posix-style systems. Building on Mac OS X, Linux, FreeBSD, Solaris, -Cygwin, Windows are known to work. - -Similar platforms should also work. Please see the following platform -specific notes for instructions on commonly used options for various -platforms. - -5.1 Mac OS X -============ - -Building on Mac OS X is well supported as it is used by maintainers of -this project. The following are the recommended specifications for this -platform; but is not necessarily the only configuration that is -possible: - - * Mac Intel hardware - - * Mac OS X 10.5.7 - - * Xcode-3.1.2 - - * gcc 4.0.1 (Apple Inc. build 5493) - - * gcc 4.2.1 (Apple Inc. build 5570) - - Note: It is recommended to use the platform distribution's bundled - compiler for maximum C++ compatibility. If you build with a custom - compiler it will likely introduce non-standard runtime - requirements for your users. There are of course many valid - reasons to build with unbundled compilers, but be aware that is - generally unsupported and left as an exercise to the reader. - -5.1.1 Default Binaries ----------------------- - -The preferred method to produce default binaries is to run configure -without any options which will compile with debug+optimize and produce -static+shared libraries and dynamic executables. - - ../configure - -5.1.2 Release Binaries ----------------------- - -The preferred method to produce binaries suitable for releases, (ie. -which does not contain debug information) is to pass the following to -configure: - - ../configure --disable-debug - -5.1.3 Developer Binaries ------------------------- - -The preferred method to produce binaries suitable for development is to -pass the following to configure. Default Binaries will work, however -for the best debugging experience we recommend no optimize and no -static libraries. - - ../configure --disable-optimize --disable-static - -5.1.4 Universal Binaries - all architectures --------------------------------------------- - -The preferred method to produce universal binaries for all supported -architectures is to pass the following option to configure. As of this -writing, architectures { i386, x86_64, ppc, ppc64 } are built. - - ../configure --enable-ub - -5.1.5 Universal Binaries - selected architectures -------------------------------------------------- - -The preferred method to produce universal binaries for selected -architectures is to specify a comma-delimited list specifying the -desired architecture identifiers. Passing the following option will -produce universal binaries for architectures { i386, x86_64 }. - - ../configure --enable-ub=i386,x86_64 - -5.2 Linux -========= - -Building on Linux is well supported as it is used by maintainers of -this project. The following are the recommended specifications for this -platform; but is not necessarily the only configuration that is -possible: - - * Intel 32-bit or 64-bit hardware - - * Fedora 10, gcc 4.3.2 - - * gcc 3.4.0 or higher is reported to work - - Note: It is recommended to use the platform distribution's bundled - compiler for maximum C++ compatibility. If you build with a custom - compiler it will likely introduce non-standard runtime - requirements for your users. There are of course many valid - reasons to build with unbundled compilers, but be aware that is - generally unsupported and left as an exercise to the reader. - -5.2.1 Default Binaries ----------------------- - -The preferred method to produce default binaries is to run configure -without any options which will compile with debug+optimize and produce -static+shared libraries and dynamic executables. - - ../configure - -5.2.2 Release Binaries ----------------------- - -The preferred method to produce binaries suitable for releases, (ie. -which does not contain debug information) is to pass the following to -configure: - - ../configure --disable-debug - -5.2.3 Developer Binaries ------------------------- - -The preferred method to produce binaries suitable for development is to -pass the following to configure. Default Binaries will work, however -for the best debugging experience we recommend no optimize and no -static libraries. - - ../configure --disable-optimize --disable-static - -5.2.4 Bi-arch compilation -------------------------- - -The preferred method to produce a bi-arch binary is to specify the -target (eg. 32-bit) with the following option to configure. This -example will produce a 32-bit binary if compiling on a platform which -defaults to producing 64-bit binaries. The inverse is also possible. - - ../configure --enable-bi=32 - - Warning: Currently bi-arch cross-compilation is not supported due - to a bug with libtool which fails miserably during linking. - -5.3 FreeBSD -=========== - -Building on FreeBSD is supported. The following are the recommended -specifications for this platform; but is not necessarily the only -configuration that is possible: - - * Intel 32-bit or 64-bit hardware - - * FreeBSD 7.0 Release, gcc 4.2.1 - - * gcc 3.4.0 or higher is reported to work - - Note: It is recommended to use the platform distribution's bundled - compiler for maximum C++ compatibility. If you build with a custom - compiler it will likely introduce non-standard runtime - requirements for your users. There are of course many valid - reasons to build with unbundled compilers, but be aware that is - generally unsupported and left as an exercise to the reader. - -5.3.1 Default Binaries ----------------------- - -The preferred method to produce default binaries is to run configure -without any options which will compile with debug+optimize and produce -static+shared libraries and dynamic executables. - - ../configure - -5.3.2 Release Binaries ----------------------- - -The preferred method to produce binaries suitable for releases, (ie. -which does not contain debug information) is to pass the following to -configure: - - ../configure --disable-debug - -5.3.3 Developer Binaries ------------------------- - -The preferred method to produce binaries suitable for development is to -pass the following to configure. Default Binaries will work, however -for the best debugging experience we recommend no optimize and no -static libraries. - - ../configure --disable-optimize --disable-static - -5.3.4 Bi-arch compilation -------------------------- - -The preferred method to produce a bi-arch binary is to specify the -target (eg. 32-bit) with the following option to configure. This -example will produce a 32-bit binary if compiling on a platform which -defaults to producing 64-bit binaries. The inverse is also possible. - - ../configure --enable-bi=32 - - Warning: Currently bi-arch cross-compilation is not supported due - to a bug with libtool which fails miserably during linking. - -5.4 Solaris -=========== - -Building on Solaris is supported. The following are the recommended -specifications for this platform; but is not necessarily the only -configuration that is possible: - - * Intel 32-bit or 64-bit hardware - - * Solaris 10u6, gcc 3.4.3 - - * gcc 3.4.0 or higher is reported to work - - Note: It is recommended to use the platform distribution's bundled - compiler for maximum C++ compatibility. If you build with a custom - compiler it will likely introduce non-standard runtime - requirements for your users. There are of course many valid - reasons to build with unbundled compilers, but be aware that is - generally unsupported and left as an exercise to the reader. - - Note: Solaris does not (yet) really bundle a compiler. The - recommendation is to use the companion-disk compiler for maximum - C++ runtime compatibility. It is usually found in `/usr/sfw/bin'. - -5.4.1 Default Binaries ----------------------- - -The preferred method to produce default binaries is to run configure -without any options which will compile with debug+optimize and produce -static+shared libraries and dynamic executables. - - ../configure - -5.4.2 Release Binaries ----------------------- - -The preferred method to produce binaries suitable for releases, (ie. -which does not contain debug information) is to pass the following to -configure: - - ../configure --disable-debug - -5.4.3 Developer Binaries ------------------------- - -The preferred method to produce binaries suitable for development is to -pass the following to configure. Default Binaries will work, however -for the best debugging experience we recommend no optimize and no -static libraries. - - ../configure --disable-optimize --disable-static - -5.4.4 Bi-arch compilation -------------------------- - -The preferred method to produce a bi-arch binary is to specify the -target (eg. 32-bit) with the following option to configure. This -example will produce a 32-bit binary if compiling on a platform which -defaults to producing 64-bit binaries. The inverse is also possible. - - ../configure --enable-bi=32 - - Warning: Currently bi-arch cross-compilation is not supported due - to a bug with libtool which fails miserably during linking. - -5.5 Cygwin -========== - -Building on Cygwin is supported. The following are the recommended -specifications for this platform; but is not necessarily the only -configuration that is possible: - - * Intel 32-bit or 64-bit hardware - - * Cygwin, gcc 4.3.2 - - * gcc 3.4.0 or higher is reported to work - - Note: As of this writing, Cygwin has available to it several - versions of gcc; only one of which may be found and used in the - path as `gcc' and `g++'. Configure will thus find what is probably - the older more stable version of gcc in a typical Cygwin - environment. If you desire to build with the newer gcc, it is - found in the path as `gcc-4' and `g++-4' respectively and you must - indicate to configure the desired versions. Defining the following - variables beforing running configure should do the trick: - - setenv CC gcc-4 - setenv CXX gcc-4 - ../configure - -5.5.1 Default Binaries ----------------------- - -The preferred method to produce default binaries is to run configure -without any options which will compile with debug+optimize and produce -static+shared libraries and dynamic executables. - - ../configure - -5.5.2 Release Binaries ----------------------- - -The preferred method to produce binaries suitable for releases, (ie. -which does not contain debug information) is to pass the following to -configure: - - ../configure --disable-debug - -5.5.3 Developer Binaries ------------------------- - -The preferred method to produce binaries suitable for development is to -pass the following to configure. Default Binaries will work, however -for the best debugging experience we recommend no optimize and no -static libraries. - - ../configure --disable-optimize --disable-static - -5.6 Windows -=========== - -Native builds on Windows is supported via Microsoft's Visual Studio -package. Both the commercial version and free version (express) are -known to work. The following are the recommended specifications for -this platform; but is not necessarily the only configuration that is -possible: - - * Intel 32-bit or 64-bit hardware - - * Windows 2000 or higher, Visual Studio 9.0 (aka. Visual Studio 2008) - - * Visual Studio 9.0 Express is reported to work - -Only 32-bit binaries are targeted, and win32-API is set to Windows 2000 -or higher. Older versions of Windows, or win32-API are not supported. - -MP4v2 has directory `vstudio9.0/' which contains the necessary -solution+project files to produce a basic build of libmp4v2's DLL and -several command-line executables. Enabling things such as debugging, -optimization, etc, are all left as an exercise to the user. - - Warning: Project meta-data is stored in header `project.h'. A - proper source distribution is built using autotools and generates - `TOP/include/mp4v2/project.h' correctly, which is then bundled - with our source distribution. This is adequate for building on the - Windows platform. - - However, if you are building from the repository, be warned that - there is no method to automatically generate `project.h' on - Windows. Instead, we periodically checkin a copy of this file - (generated using autotools) as - `vstudio9.0/include/mp4v2/project.h' which may from time to time - get out of date. If it is significantly out of date, you should - find the latest source distribution and copy the `project.h' from - there. - |