[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a
Maximiliano Curia
maxy at moszumanska.debian.org
Thu Jul 13 17:36:57 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=7048360
The following commit has been merged in the master branch:
commit 704836054442f50487ff0581b2c5f5edd6c471b3
Author: Andreas Huggel <ahuggel at gmx.net>
Date: Sun Feb 13 04:32:50 2005 +0000
Added config.h to installed headers, install to /usr/local/include/exiv2 by default. Fixes bug #410
---
README.make | 218 ++++++++---------------------------------------------------
config.mk.in | 6 +-
src/Makefile | 3 +
3 files changed, 33 insertions(+), 194 deletions(-)
diff --git a/README.make b/README.make
index cc96f66..820ffe3 100644
--- a/README.make
+++ b/README.make
@@ -10,9 +10,9 @@ build the library and utility:
$ ./configure
- Check the generated config.mk and config.h files, particularly
- if you want to build a shared library with a compiler other than
- gcc (g++). See caveat, below.
+ Check the generated config.mk and config.h files, particularly if
+ you want to build a shared library with a compiler other than g++.
+ See caveat, below.
$ make
@@ -29,199 +29,35 @@ build the library and utility:
Caveat
------
- The configuration script does not support checks to test how to
- build a shared library. If you are not using gcc (g++), you will
- need to check the generated config.mk file and manually set the
- correct compilation flags. The related variables in config.mk are
- CXXFLAGS_SHARED, LDFLAGS_SHARED and SHAREDLIB_SUFFIX.
-
- The build environment does not support building Exiv2 as a DLL
- on MinGW. When building on MinGW, you need to unset SHARED_LIBS
- and set STATIC_LIBS in config.mk (after running ./configure):
- # Define which libraries (shared and/or static) to build
- SHARED_LIBS =
- STATIC_LIBS = 1
-
- You should *not* need to modify any Makefile directly.
-
- If your compiler uses a repository for object files of templates,
- try setting CXX_REPOSITORY.
-
-----------------------------------------------------------------------
-
-Summary of Concepts Used
-------------------------
-
-The following sections are *not* an installation manual. They
-summarise the guidelines used for the configuration and build system
-of this package. The information contained in the following sections
-may be outdated and concepts described may not be implemented
-
-1. Overview and Rationale
- ----------------------
-
-The `autoconf' package is used to gather system configuration data
-(see `info autoconf'). System configuration data is kept in `config.mk'
-and `config.h'. These files are included from Makefiles and source
-files, respectively.
-
-System configuration is done from the top level of the directory tree.
-Usually, `./configure' is enough to create all system configuration
-files and Makefiles. In turn, `make distclean' issued from the top
-level directory should remove all files created by the configuration
-and build processes (while `make distclean' issued in a subdirectory
-will only remove files created by the build process but no
-configuration files).
-
-Makefiles should follow GNU Makefile conventions (see `info make').
-
-Most targets in the top level Makefile simply call `make' in each
-subdirectory and recursively perform a given task. This ensures that
-Makefiles in the subdirectories are sufficently independent. It must
-be possible to use all standard targets in all subdirectories to
-independently work in a subdirectory with consistent targets.
-
-Using an existing, proven and well documented configuration system
-saves us the effort of re-inventing the wheel. It allows us to draw
-from a wealth of experience in this area. Building on carefully chosen
-existing standards and conventions should not only save us from some
-common pitfalls but also help people familiarize with our development
-environment quickly.
-
-
-2. Configuration
- -------------
-
-Preparing a software package for distribution (see section 2.1) is
-very much a one time job. Maintenance of an already prepared package
-is less challenging (see section 2.2) and only needs to be performed
-from time to time.
-
-The strength of using the `autoconf' process is that configuring and
-building a package, once it is prepared, is very simple (see section
-2.3). In most cases, a `./configure; make' in the top level directory
-should be enough to configure and build the entire package.
-
-2.1 The steps to prepare a software package for distribution
- --------------------------------------------------------
-
- 1. Run `autoscan' in top level directory
- Input: source files
- Output: `configure.scan'
- 2. Manually examine and fix `configure.scan'
- 3. Rename `configure.scan' to `configure.ac'
- 4. Manually create `acconfig.h' for additional AC_DEFINE'd symbols
- 5. Run `autoheader'
- Input: `configure.ac' `acconfig.h'
- Output: `config.h.in'
- 6. Run `autoconf'
- Input: `configure.ac' `acconfig.h'
- Output: `configure'
- 7. Manually create `Makefile.in' template
+The configuration script does not support checks to test how to build
+a shared library. If you are not using g++ on a GNU/Linux system, you
+will need to check the generated config.mk file and manually set the
+correct compilation flags. The related variables in config.mk are
+CXXFLAGS_SHARED, LDFLAGS_SHARED and SHAREDLIB_SUFFIX.
- Here is a complete diagram showing this process (from `info autoconf'):
-
- source files --> [autoscan*] --> [configure.scan] --> configure.ac
+MinGW and Mac OS X builds
- configure.ac --. .------> autoconf* -----> configure
- +---+
- [aclocal.m4] --+ `---.
- [acsite.m4] ---' |
- +--> [autoheader*] -> [config.h.in]
- [acconfig.h] ----. |
- +-----'
- [config.h.top] --+
- [config.h.bot] --'
-
- Makefile.in -------------------------------> Makefile.in
+The current build environment does not support building Exiv2 as a DLL
+on MinGW or shared library on Mac OS X. When building on one of these
+platforms, you need to unset SHARED_LIBS and set STATIC_LIBS in
+config.mk (after running ./configure):
-2.2 Maintenance of a prepared package
- ---------------------------------
-
-Only the most frequently used maintenance processes are described
-here.
+ # Define which libraries (shared and/or static) to build
+ SHARED_LIBS =
+ STATIC_LIBS = 1
-2.2.1 `Makefile' changes
- ------------------
+You should *not* need to modify any Makefile directly.
-`Makefile's are generated from the respective `Makefile.in' template
-by the `configure' script. Therefore, if a change to a `Makefile' is
-needed, it must be done in the `Makefile.in' template and the
-`configure' script must be run to re-generate the `Makefile'.
-
-2.2.2 `configure.ac' and `acconfig.h' updates
- ---------------------------------------
-
-Such updates may be required to add a new feature or test to the
-package. Also, from time to time, e.g., after substantial source code
-changes or an upgrade of the `autoconf' package, it may be useful to
-re-run `autoscan' and compare the resulting `configure.scan' with the
-existing `configure.in' and check for new macros and tests suggested
-in `configure.scan'. Usually, you can then easily update `configure.in'
-manually.
-
-After applying the changes, `configure' and `config.h.in' need to be
-re-built using `autoconf' and `autoheader', respectively (see section
-2.1, steps 5. and 6.).
-
-
-2.3 The steps to configuring and building a software package
- --------------------------------------------------------
-
- 1. Run `./configure' in top level directory
- Input: `Makefile.in' `config.h.in'
- Output: `Makefile' `config.mk' `config.h'
- 2. Run `make' in the top level directory
- Input: `Makefile' `config.mk' `config.h' source code
- Output: Executables, Libraries, etc.
+If your compiler uses a repository for object files of templates, try
+setting CXX_REPOSITORY.
- The diagram showing this process (from `info autoconf') looks
- like this:
-
- .-------------> config.cache
- configure* ------------+-------------> config.log
- |
- [config.h.in] -. v .-> [config.h] -.
- +--> config.status* -+ +--> make*
- Makefile.in ---' `-> Makefile ---'
+Developing with Exiv2
+---------------------
+To compile a module that includes an Exiv2 header file from the
+default location, pass -DHAVE_CONFIG_H and -I/usr/local/include/exiv2
+to the compiler. Linking with the library requires -lexiv2 and
+-L/usr/local/lib, for example (for a statically linked app):
-3. Makefile Conventions
- --------------------
-
-Makefiles should follow GNU Makefile conventions (see `info make').
-
-3.1 Standard Makefile Targets
- -------------------------
-
-`all'
- Compile the entire program. Should be the default target.
-
-`check'
- Perform self-tests (if any).
-
-`install'
- Compile the program and copy executables, libraries, etc., to the
- file names where they should reside for actual use.
-
-`uninstall'
- Delete all the installed files created by `install'.
-
-`clean'
- Delete all files that are normally created by building the program.
-
-`mostlyclean'
- Delete all files that are normally created by building the program,
- except executables, libraries, etc.
-
-`distclean'
- In the top level directory, delete all files that are created by
- configuring or building the program.
- In a subdirectory, same as `clean'.
-
-`maintainer-clean'
- Delete almost everything from the current directory that can be
- reconstructed with this Makefile.
-
-If in doubt about the standard targets and for more details, see GNU
-Makefile conventions in `info make'.
+g++ -DHAVE_CONFIG_H -I/usr/local/include/exiv2 -c yourapp.cpp -o yourapp.o
+g++ yourapp.o -lexiv2 -L/usr/local/lib -o yourapp
diff --git a/config.mk.in b/config.mk.in
index 12449d6..76d86c4 100644
--- a/config.mk.in
+++ b/config.mk.in
@@ -102,8 +102,8 @@ ARFLAGS = rcuv
# **********************************************************************
# Installation programs
INSTALL_EXE = @INSTALL@
-INSTALL_PROGRAM = $(INSTALL_EXE) -c
-INSTALL_DATA = $(INSTALL_EXE) -c -m 644
+INSTALL_PROGRAM = $(INSTALL_EXE)
+INSTALL_DATA = $(INSTALL_EXE) -m 644
INSTALL_DIRS = $(top_srcdir)/mkinstalldirs
# **********************************************************************
@@ -120,5 +120,5 @@ srcdir = @srcdir@
# Installation directories
bindir = @bindir@
-incdir = @includedir@
+incdir = @includedir@/exiv2
libdir = @libdir@
diff --git a/src/Makefile b/src/Makefile
index 508c7e4..156cf4f 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -254,6 +254,7 @@ install-header:
$(INSTALL_DATA) $$p $(incdir)/$$p; \
else :; fi; \
done
+ $(INSTALL_DATA) $(top_srcdir)/config.h $(incdir)/config.h
install-archive: archive
$(INSTALL_DIRS) $(libdir)
@@ -276,6 +277,8 @@ uninstall-header:
echo "rm -f $(incdir)/$$p"; \
rm -f $(incdir)/$$p; \
done
+ $(RM) $(incdir)/config.h
+ -rmdir $(incdir)
uninstall-archive:
$(RM) $(libdir)/$(ARCHIVE)
--
exiv2 packaging
More information about the pkg-kde-commits
mailing list