Fork of https://github.com/Exiv2/exiv2
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
15 years ago | |
---|---|---|
config | 15 years ago | |
contrib/organize | 15 years ago | |
doc | 15 years ago | |
msvc | 15 years ago | |
msvc64 | 15 years ago | |
po | 15 years ago | |
samples | 15 years ago | |
src | 15 years ago | |
test | 15 years ago | |
xmpsdk | 15 years ago | |
ABOUT-NLS | 19 years ago | |
AUTHORS | 15 years ago | |
CMakeLists.txt | 15 years ago | |
COPYING | 20 years ago | |
Makefile | 15 years ago | |
README | 15 years ago | |
README-CMAKE | 15 years ago | |
TODO-CMAKE | 15 years ago | |
buildForMac | 15 years ago |
README
Exiv2 ***** Welcome to Exiv2, a C++ library and a command line utility to read and write Exif, IPTC and XMP image metadata. The homepage of Exiv2 is: http://www.exiv2.org/ See doc/ChangeLog for a list of recent changes to Exiv2. Exiv2 API and tag reference documentation is at http://www.exiv2.org/doc or you can build it and point your browser to doc/index.html. For more information on XMP support in Exiv2, see doc/README-XMP. Building and Installing ======================= You can build the libraries in the following ways: 1 Linux, Mac, Cygwin, Msys (autoconf tools) - general notes follow - see notes below concerning Cygwin/MSYS and MacOSX 2 Microsoft Visual C++ - see msvc/README-MSVC.txt (32bit build VC7.1/2003 and up) - see msvc64/ReadMe.txt (32bit and 64 bit build VC8/2005 and up) 3 CMake (experimental support for cmake on all platforms) - see README-CMAKE for more information On UNIX-like systems (including GNU/Linux, Mac OS X, MinGW), use the GNU configure script. Run the following commands from the top directory (containing this file) to configure, build and install the library and utility: $ ./configure $ make $ sudo make install If you downloaded the source code from the subversion repository, you won't have a configure script. Run 'make config' to generate it and see the section "Hacking" below. You may need to run autoconf in the config directory: $ cd exiv2/config $ autoconf $ mv configure .. $ cd .. $ ./configure etc....... The default install locations are /usr/local/lib for the library, /usr/local/bin for the exiv2 utility and /usr/local/include/exiv2 for the header files. Use the --prefix=directory option of the configure script to change the default. Run './configure --help' to see a list of all options. To uninstall Exiv2 from a UNIX-like system, run: $ make uninstall To build a commercial version of the Exiv2 library, see also section "Commercial version" at the end of this file. Dependencies ============ The following libexiv2 features are enabled by default and may*) require external libraries. They can be controlled through configure options. See also './configure --help'. Feature Package Configure options -------------------------- -------- ---------------------------- PNG image support zlib --without-zlib --with-zlib=DIR Native language support gettext --disable-nls Characterset conversions libiconv --without-libiconv-prefix --with-libiconv-prefix[=DIR] XMP support expat --disable-xmp --with-expat=DIR zlib http://zlib.net/ gettext *) http://www.gnu.org/software/gettext/ libiconv *) http://www.gnu.org/software/libiconv/ expat http://expat.sourceforge.net/ *) Some systems have gettext and iconv in libc. The configure script should detect this. On Linux, it is usually best to install the dependencies through the package management system of the distribution together with the corresponding development packages (for the header files and static libraries). To build the sample programs in the samples/ directory ('make samples'), you also need to have the pkg-config program. To generate the documentation ('make doc'), you will further need doxygen, graphviz, python and xsltproc. pkg-config http://pkg-config.freedesktop.org/wiki/ doxygen http://www.doxygen.org/ graphviz http://www.graphviz.org/ python http://www.python.org/ xsltproc http://xmlsoft.org/XSLT/ Troubleshooting =============== If you have problems building Exiv2 on UNIX-like systems, check the generated config/config.mk and config/config.h files. You should *not* need to modify any Makefile directly, in particular not src/Makefile! Support ======= All project resources are accessible from the project website at http://dev.exiv2.org/wiki/exiv2 Please send feedback or queries to the Exiv2 forum. For new bug reports and feature requests, please open an issue. Hacking ======= A pkg-config .pc file is installed together with the library. Application developers can use pkg-config(1) to obtain correct compile and link time flags for the Exiv2 library. See samples/Makefile for an example. If you downloaded Exiv2 directly from the subversion repository, and you want to build it using the GNU configure script, then you need to have GNU Autoconf installed on your system and create the configure script as the first step: $ make config Then run the usual './configure; make; make install' commands. Exiv2 uses GNU Libtool in order to build shared libraries on a variety of systems. While this is very nice for making usable binaries, it can be a pain when trying to debug a program. For that reason, compilation of shared libraries can be turned off by specifying the --disable-shared option to the configure script. License ======= Copyright (C) 2004-2010 Andreas Huggel <ahuggel@gmx.net> Exiv2 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. Alternatively, Exiv2 is also available with a commercial license, which allows it to be used in closed-source projects. Contact me for more information. Exiv2 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, 5th Floor, Boston, MA 02110-1301 USA. Commercial version ================== If you have a commercial license, you must disable NLS support and the conversion of Nikon lens data to readable lens names to build a commercial version of the Exiv2 library. To do this on Windows, compile the library with the preprocessor symbol EXV_COMMERCIAL_VERSION defined in msvc\include\exv_msvc.h. On UNIX-like systems, run the configure script with the options --enable-commercial --disable-nls --disable-lensdata To build Exiv2 with MSVC 7.1 or later on Windows, use the solution file msvc\exiv2.sln. See msvc\README-MSVC.txt for details. Cygwin/MSYS =========== You can build on Cygwin using autoconf. The process is similar to Linux. This will generate a 32bit shared library (DLL) version of exiv2.exe and its libraries. Please observe the following additional steps: 1) You may need to run dos2unix on all the files in the config directory. This is only necessary if your exiv2 directory is SVN:2426 or earlier (2011-01-10) cd exiv2/config dos2unix * cd .. 2) You may make need to generate the configure script. cd exiv2/config autoconf mv configure .. 3) You should disable compiler visibility: cd exiv2 ./configure --disable-visibility 4) If you wish to build the sample programs, here are the steps: cd exiv2 make .... build time about 7 minutes (on a 2.2MHz Duo Core Intel Processor) make install export "PKG_CONFIG_PATH=${PWD}/config" make samples .... build time about 4 minutes 5) Cygwin builds have dependancies on other cygwin dlls. You can use depends32.exe (in the msvc64 tree) to determine the dependancies. 540 /c/gnu/exiv2/src/.libs> ../../msvc64/tools/bin/depends32.exe -q exiv2.exe cygz.dll cygintl-8.dll cygiconv-2.dll cygexpat-1.dll cygstdc++-6.dll CRYPTBASE.dll SspiCli.dll RPCRT4.dll KERNEL32.dll ntdll.dll KERNELBASE.dll ADVAPI32.DLL cygwin1.dll cyggcc_s-1.dll cygexiv2-10.dll exiv2.exe It's possible to run cygwin builds on "vanilla" windows machines (cygwin not installed) provided you ensure that all the dependant cyg*.dll files are available on the path or in the same directory as exiv2.exe. (cryptbase.dll ... advapi32.dll are standard Windows dlls and should not be redistributed). MacOSX ====== By default the Mac will perform a "native" build of exiv2. On Leopard this is a 32 bit intel/ppc build. On Snow Leopard, this is a 64 bit intel build (x64). These correspond to arch={i386 | ppc | x86_64} The libraries are linked against the run-time libraries of the build machine. However there are three additional things you may wish to respect. 1 Building and linking xmpsdk There is an additional complication that xmpsdk is very strong willed. You will have to pass OBJCFLAGS (and OBJCXXFLAGS) to the build environment for xmpsdk. arch=i386 ./configure CFLAGS="$arch" CXXFLAGS="$arch" CPPFLAGS="$arch" LDFLAGS="$arch -L${PWD}/xmpsdk/src" OBJCFLAGS="$arch" OBJCXXFLAGS="$arch" env CFLAGS="$arch" CXXFLAGS="$arch" CPPFLAGS="$arch" LDFLAGS="$arch" OBJCFLAGS="$arch" OBJCXXFLAGS="$arch" make 2 Using the appropriate run-time libraries. You should set the environment string TARGET to modify the TARGET="MACOSX_DEPLOYMENT_TARGET=10.4" (or 5 or 6) 3 Building "universal" binaries (library/executables which contain code for more than one architecture). If you wish to build a "universal" library, you should build each of the architectures independantly and combine them with the lipo utility. lipo -arch i386 lib.i386 -arch x86_64 lib.x86_64 -arch ppc lib.ppc -create -output exiv2.20.dylib The bash script buildForMac embodies all three of these concepts and builds a universal exiv2 on Snow Leopard and Leopard. That's all Folks! =================