| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Complete what adding the gp_init_localedir() function implied:
* only set success flag in the success case
* consistent use of "initialize" spelling
* add analogous gp_port_init_localedir() function
* implement and document edge cases
* update NEWS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Require gettext >= 0.19.1 (from 2014-06-10), which both works properly
when building on many cores, and is also the first gettext release
whose po/Makefile.in.in allows disabling rebuilding of the *.po files
on normal (non dist target) builds.
The new po/Makefile.in.in rules fix "make distcheck" consistently
failing to remove ../../../po/libgphoto2-6.pot when running
"make -j$(nproc) distcheck" on a 12 core system:
rm: cannot remove '../../../po/libgphoto2-6.pot': Permission denied
The "make dist" (and "make distcheck") targets will still update the
po files by default, but that could also be disabled in po/Makevars
if we wanted to separate updating the *.po files for translation from
"make dist" or "make distcheck" at any time in the future.
As gettext-0.19.1 was released almost 8 years ago, this is the newest
build tool release requirement for bulding libgphoto2.
If you ever need to build a 2022 or later libgphoto2 from git on a
system with pre 0.19.1 gettext, you can can always prepare a tarball
running "make dist" on a system with gettext 0.19.1 or later, and
build that tarball on the older machine.
|
|
|
|
|
|
|
|
|
|
| |
I have found good arguments from clang developers for not
using -Weverything after all. Instead, -Wmost is the
preferred option to enable the most warnings reasonable.
Apparently, -Weverything can a set of warnings where one
warning contradicts the other and is really only useful
people developing clang itself.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Add pull-translations target to make it easier to pull translations
from the Translation Project:
make pull-translations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This requires gettext version 0.18.3 or later, and it removes
the GP_GETTEXT_HACK which used to generate a po/Makevars file
from the po/Makevers.template.
gettext 0.18.3 is the same gettext version requirement
as libexif uses.
gettext 0.18.3 has been released 2013-07-07, which is
a similar timeframe of the autoconf, automake and libtool
releases we require.
If you ever need to build a post 2021 libgphoto2 from
git on a system with pre 0.18.3 gettext, you can can
always prepare a tarball using "make dist" on a system
with gettext 0.18.3 or later, and build that tarball
on the older machine.
Not generating the po/Makevars file any more means that
we need additional consistency checks for the parts of
po/Makevars which cannot be derived from the Autoconf
standard set of AC_SUBST()ed Makefile.in variables.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This gives us a few more features and fixes to rely
on which are present in libtool 2.4.2 (released
2011-10-18), which is older than our autoconf,
automake, and gettext requirements and should therefore
not exclude anyone from building libgphoto2.
Update the libtool initialization to use the more
modern (modern in the sense of libtool 1.9b from
2004-08-29) LT_INIT macro.
We still do not use LTDL_INIT() as that (like AC_WITH_LTDL
used to) insists on us shipping libltdl sources in our
release tarballs, and we do not like shipping third party
sources.
|
| |
|
|
|
|
|
|
| |
autoconf 2.59c has introduced docdir, htmldir, so we do not need to
have --with-doc-dir= and --with-html-dir= any more. --docdir= and
--htmldir= will do the job.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only use a single gphoto-m4/ subdir - namely that in
libgphoto2_port/gphoto-m4/. This prevents us from
needing to synchronize the contents of the gphoto-m4/
and the libgphoto2_port/gphoto-m4/ directories.
We can do that by switching from recursive make for the
gphoto-m4 subdirectories to using
include path/to/gphoto-m4/Makefile-files
from both the top-level Makefile.am and libgphoto2_port/Makefile.am
using %reldir% (introduced in automake 1.14).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This gives us a few more features, and a few less conditionals
conditionally reimplementing features added to automake
before automake 1.14.
automake 1.14 is almost the same automake version requirement
as libexif uses (libexif requires 1.14.1).
automake 1.14 has been released 2013-06-20. If you ever
need to build a post 2021 libgphoto2 from git on a
system with pre 1.14 automake, you can can always
prepare a tarball using "make dist" on a system with
automake 1.14 or later, and build that tarball on the
older machine.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This gives us a few more features and bug fixes and fewer workarounds.
autoconf 2.69 is the same autoconf version requirement as libexif
uses.
autoconf 2.69 has been released 2012-04-25. If you ever need to build a
post 2021 libgphoto2 from git on a system with pre 2.69 autoconf, you
can always prepare a tarball using "make dist" on a system with autoconf
2.69 or later, and build that tarball on the older machine.
|
|
|
|
|
|
| |
This adds a list of tool releases with their respective release
dates and why they are important for libgphoto2 (libexif
requirements, notable bug fixes and features).
|
|
|
|
|
|
|
| |
The "localedir" variable has been introduced by autoconf-2.59c.
We are requiring at least autoconf-2.62, so we do not need to
define and AC_SUBST "localedir" any more.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This puts AM_PO_SUBDIRS before AM_GNU_GETTEXT to fix the
error: `po-directories' is already registered with AC_CONFIG_COMMANDS.
and puts the -DLOCALEDIR definition close to the gettext
setup.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the same checks for asm .symver and -Wl,--version-script
support for both libgphoto2.la and libgphoto2_port.la.
This also reorganizes the Makefile.am files for libgphoto2.la
and libgphoto2_port.la so that things belonging together are
actually grouped together, so that inconsistencies can become
more visible.
This does not change what actually happens with when linking
the libraries:
* libgphoto2.la is still linked with just a
--export-symbols libgphoto2.sym
list of exported symbols.
* libgphoto2_port.la is still linked with a
-Wl,--version-script=libgphoto2_port.ver
version script.
However, the two library Makefile.am are now organized
in such a way that you can actually see that.
We should examine what those two symbol export methods actually
do on Linux/ELF (complete support for version script semantics),
and on non-ELF systems such as MacOSX dylib or Windows DLL.
|
|
|
|
|
|
|
|
| |
Occasionally, not quoting macro arguments leads to
weird problems.
So we try to consistently quote the arguments to
avoid these kinds of problems.
|
| |
|
|
|
|
| |
This makes it easier to see and merge changes.
|
|
|
|
| |
This makes changes easier to read in diffs.
|
|
|
|
|
| |
Use m4_pattern_forbid to find unnoticed GP_ strings
in the configure and config.status scripts.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update the checks for libjpeg to try libjpeg.pc with
PKG_CHECK_MODULES first, and also to allow explicitly
set LIBJPEG_CFLAGS and LIBJPEG_LIBS.
The old detection logic did not allow specifying the location
of libjpeg at all. It only allowed either disabling libjpeg
or using libjpeg from the default include and linker paths.
So this also changes the places in the Makefiles where we
used to add @LIBJPEG@ to the linker to both link with
$(LIBJPEG_LIBS) and compile with $(LIBJPEG_CFLAGS).
The new configure logic keeps --without-jpeg to force-
disable libjpeg, but updates the detection of libjpeg
to first try the LIBJPEG_* variables if given, otherwise
try PKG_CHECK_MODULES for libjpeg, and only then falls
back to the old way of just trying the default include
and link locations for libjpeg.
This mentions more information in the configure summary
if not building with libjpeg.
This is the first time we make it possible to build with
libjpeg from e.g. FreeBSD ports' or MacOS homebrew's
jpeg-turbo packages.
|
|
|
|
|
|
|
|
|
|
| |
We still do not use LTDL_INIT() as LTDL_INIT insists on
us shipping libltdl sources in our release tarballs and
we still do not like shipping third party sources.
This now checks locations other than the default include
and linker paths, so that configure should find libltdl
by itself now on e.g. FreeBSD or OSX/homebrew.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make the compiler warnings work with clang in addition to gcc by
test compiling all warning options before actually using them.
This came up when the pedantic build tests failed on FreeBSD 13.
To achieve this, we add -Werror=unknown-warning-option to
the CFLAGS for clang to abort immediately on encountering
an unknown warning option. This means we now only add warnings
which the compiler (clang, gcc, or whatever) actually supports.
As running configure now checks whether compiling is possible
for each warning flag, this should not introduce compatibility
issues where builds which used to work now fail to build.
However, you can always opt to not use the generated CFLAGS
by setting CFLAGS to empty or whatever else you want when
running your build, e.g. like
make all check CFLAGS=
|
|
|
|
|
|
|
|
| |
Add a pedantic C compile test for c2x in addition to
the existing ones for c90, c99, and c11.
Add a pedantic C++ compile test for c++20 in addition to
the existing ones for c++98, c++11, c++14, and c++17.
|
| |
|
|
|
|
| |
Delete some old debug comments from the configure script.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Factor out the i18n definitions into i18n.h include files:
One include file each for libgphoto2 and for libgphoto2_port.
This removes the complete
#ifdef ENABLE_NLS
# include <libintl.h>
# undef _
# define _(String) dgettext (GETTEXT_PACKAGE, String)
# ifdef gettext_noop
# define N_(String) gettext_noop (String)
# else
# define N_(String) (String)
# endif
#else
# define _(String) (String)
# define N_(String) (String)
#endif
block (which in some occasions defines even more macros)
and replaces it with a single line
#include "libgphoto2/i18n.h"
for camlibs and libgphoto2 itself and with
#include "libgphoto2_port/i18n.h"
for iolibs and libgphoto2_port itself.
This gives us two central locations to change the defintions.
|
|
|
|
|
|
|
|
| |
Using EOF does the job, is well readable, and there is
just no reason to use any other string.
On the contrary, it may cause additional trouble when
using m4_pattern_forbid.
|
| |
|
|
|
|
| |
see https://github.com/gphoto/libgphoto2/pull/738
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The linux-hotplug mechanism has been replaced by udev and hwdb for
quite some time now, so we can remove the support for packaging
libgphoto2 with linux-hotplug.
For a rough idea of the timeline of linux-hotplug being replaced,
the last release of hotplug appears to have been in March of 2004:
https://sourceforge.net/projects/linux-hotplug/files/
and the Fedora 5 (released March 20, 2006) release notes
mention the hotplug package having been removed.
|
|
|
|
|
|
| |
There are no *.sh files being generated by AC_CONFIG_FILES,
so the code bit setting the executable bit on *.sh is not
needed.
|
|
|
|
|
|
|
|
|
|
| |
While adding support for "make rpm" appeared to be a good idea in the
early 2000s, it really is not and only clutters up the build system.
At least the libgphoto2_port translation cannot have worked in the
rpm package since at least 5255d802102c10f971dc98f10828451d9922340d
from 2007-10-28, so it is a good guess that this has not really been
in use.
|
|
|
|
|
| |
For portability, use && and || instead of the test arguments
-a and -o.
|
|
|
|
|
| |
Use a common m4 macro GP_DRIVERDIR for defining iolibdir and IOLIBS
in libgphoto2_port and camlibdir and CAMLIBS in libgphoto2.
|
|
|
|
|
|
|
|
|
|
| |
Use AC_SEARCH_LIBS to find whether mmap(2) in the standard
library, or whether using mmap(2) requires linking against
libmman.
This avoids conditionally calling/expanding AM_CONDITIONAL
which autoreconf (rightly) complains about. This also uses
proper m4 quoting in all m4 macro arguments.
|
|
|
|
| |
Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
|
|
|
|
|
|
|
| |
Avoid the po-directories error by putting AM_PO_SUBDIRS *before*
AM_GNU_GETTEXT:
configure.ac:NNN: error: `po-directories' is already registered with AC_CONFIG_COMMANDS.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The gphoto2 device database (gp2ddb) was originally intended to
replace the device lists in the camlib code by a device list
maintained in a text file outside of the camlib C code.
This device list file could then be changed without
recompiling camlibs, at the cost of adding a simple gp2ddb
to internal binary representation compiler to libgphoto2.
This would have allowed a user to very easily add a new camera
model to the list of camera models supported by a specific
camlib, as long as that new camera model uses the same
protocol as already supported camera models do.
As the gp2ddb idea has never been developed any further in the
15 yearns since my initial commit from 2006, this idea appears
to be obsolete and can thus be removed from the codebase.
|
|
|
| |
stdint.h has wide adoption at this point, so it should be safe to use.
|
| |
|
| |
|
| |
|