2023-02-21 10:14:32 -07:00
|
|
|
AC_INIT([gparted],[1.5.0],[https://gitlab.gnome.org/GNOME/gparted/issues])
|
2013-03-10 06:02:45 -06:00
|
|
|
AC_PREREQ([2.50])
|
2008-04-07 14:10:28 -06:00
|
|
|
|
2010-06-24 08:37:06 -06:00
|
|
|
AC_CONFIG_SRCDIR([src/main.cc])
|
2008-04-07 14:10:28 -06:00
|
|
|
AC_CONFIG_HEADERS([config.h])
|
2008-08-05 09:34:10 -06:00
|
|
|
AC_CONFIG_MACRO_DIR([m4])
|
2004-10-21 09:32:57 -06:00
|
|
|
|
Silence subdir-objects warning from automake 1.14 (#781978)
Configuring GParted on a machine with automake >= 1.14 produces this
warning:
$ ./autogen.sh
...
lib/gtest/Makefile.am:58: warning: source file 'src/gtest-all.cc' is in a subdirectory,
lib/gtest/Makefile.am:58: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled. For now, the corresponding output
automake: object file(s) will be placed in the top-level directory. However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibilities.
lib/gtest/Makefile.am:60: warning: source file 'src/gtest_main.cc' is in a subdirectory,
lib/gtest/Makefile.am:60: but option 'subdir-objects' is disabled
lib/gtest/Makefile.am: installing './depcomp'
tests/Makefile.am:22: warning: source file '../src/BlockSpecial.cc' is in a subdirectory,
tests/Makefile.am:22: but option 'subdir-objects' is disabled
tests/Makefile.am:23: warning: source file '../src/PipeCapture.cc' is in a subdirectory,
tests/Makefile.am:23: but option 'subdir-objects' is disabled
...
From the automake 1.14 NEWS file:
http://git.savannah.gnu.org/cgit/automake.git/tree/NEWS?h=v1.14#n125
"The next major Automake version (2.0) will unconditionally activate
the 'subdir-objects' option. In order to smooth out the transition,
we now give a warning (in the category 'unsupported') whenever a
source file is present in a subdirectory but the 'subdir-object' is
not enabled. For example, the following usage will trigger such a
warning:
bin_PROGRAMS = sub/foo
sub_foo_SOURCES = sub/main.c sub/bar.c
"
Set the subdir-objects automake option, silencing the warning.
Bug 781978 - Add Google Test C++ test framework
2017-06-21 06:55:59 -06:00
|
|
|
AM_INIT_AUTOMAKE([1.9 subdir-objects])
|
2004-09-19 16:32:22 -06:00
|
|
|
AM_MAINTAINER_MODE
|
2004-09-19 14:24:53 -06:00
|
|
|
|
2004-09-20 09:46:21 -06:00
|
|
|
|
2004-09-23 13:32:57 -06:00
|
|
|
dnl======================
|
2013-03-10 06:02:45 -06:00
|
|
|
dnl checks for programs
|
2004-09-23 13:32:57 -06:00
|
|
|
dnl======================
|
2004-09-19 14:24:53 -06:00
|
|
|
AC_PROG_CXX
|
2014-07-06 11:57:22 -06:00
|
|
|
AC_PROG_CC
|
2022-06-04 02:06:54 -06:00
|
|
|
LT_INIT
|
2014-08-10 02:13:22 -06:00
|
|
|
AC_PROG_AWK
|
2014-11-14 02:14:40 -07:00
|
|
|
dnl Check for pkg-config early to avoid splitting message when first used.
|
|
|
|
PKG_CHECK_EXISTS
|
2004-09-19 14:24:53 -06:00
|
|
|
|
2008-08-05 09:34:10 -06:00
|
|
|
|
2008-07-23 11:56:57 -06:00
|
|
|
dnl======================
|
2017-06-20 09:15:12 -06:00
|
|
|
dnl Find graphical privilege escalation program
|
2008-07-23 11:56:57 -06:00
|
|
|
dnl======================
|
2017-08-24 06:09:05 -06:00
|
|
|
dnl Check for pkexec >= 0.102 for it's ability to run X11 apps.
|
2017-08-04 00:38:56 -06:00
|
|
|
AM_CONDITIONAL([INSTALL_POLKIT_ACTIONS], false)
|
2017-08-12 04:52:30 -06:00
|
|
|
PKEXEC_REQUIRED_VERSION='0.102'
|
|
|
|
AC_MSG_CHECKING([for pkexec >= $PKEXEC_REQUIRED_VERSION])
|
|
|
|
PKEXEC_REQUIRED_INT=`echo "$PKEXEC_REQUIRED_VERSION" | $AWK -F. '{print $1 * 10000 + $2}'`
|
|
|
|
PKEXEC_VERSION_OUTPUT=`pkexec --version 2> /dev/null` ||
|
|
|
|
AC_MSG_RESULT([not found])
|
|
|
|
if test "x$PKEXEC_VERSION_OUTPUT" != 'x'; then
|
|
|
|
PKEXEC_FOUND_VERSION=`echo "$PKEXEC_VERSION_OUTPUT" | head -1 | cut -d' ' -f3`
|
|
|
|
PKEXEC_FOUND_INT=`echo "$PKEXEC_FOUND_VERSION" | $AWK -F. '{print $1 * 10000 + $2}'`
|
|
|
|
AC_MSG_RESULT([$PKEXEC_FOUND_VERSION found])
|
|
|
|
if test "$PKEXEC_FOUND_INT" -ge "$PKEXEC_REQUIRED_INT"; then
|
2017-08-24 06:09:05 -06:00
|
|
|
GKSUPROG='pkexec --disable-internal-agent'
|
2017-08-12 04:52:30 -06:00
|
|
|
AC_SUBST([GKSUPROG])
|
|
|
|
AM_CONDITIONAL([INSTALL_POLKIT_ACTIONS], true)
|
2017-06-20 09:15:12 -06:00
|
|
|
fi
|
2017-08-12 04:52:30 -06:00
|
|
|
fi
|
|
|
|
|
|
|
|
dnl Check for alternative graphical privilege escalation programs.
|
|
|
|
if test "x$GKSUPROG" = 'x'; then
|
|
|
|
AC_CHECK_PROGS([GKSUPROG], [gksudo gksu kdesudo "xdg-su -c"], [])
|
2017-06-20 09:15:12 -06:00
|
|
|
fi
|
2008-05-08 16:31:53 -06:00
|
|
|
|
2008-08-05 09:34:10 -06:00
|
|
|
|
2004-09-23 13:32:57 -06:00
|
|
|
dnl======================
|
2013-03-10 06:02:45 -06:00
|
|
|
dnl i18n stuff
|
2004-09-23 13:32:57 -06:00
|
|
|
dnl======================
|
2004-09-20 09:46:21 -06:00
|
|
|
GETTEXT_PACKAGE=gparted
|
2010-06-24 08:37:06 -06:00
|
|
|
AC_SUBST([GETTEXT_PACKAGE])
|
|
|
|
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], "$GETTEXT_PACKAGE", [description])
|
2004-09-20 09:46:21 -06:00
|
|
|
|
2022-08-26 05:05:18 -06:00
|
|
|
AM_GNU_GETTEXT_VERSION([0.19.8])
|
|
|
|
AM_GNU_GETTEXT([external])
|
|
|
|
|
2004-09-23 13:32:57 -06:00
|
|
|
|
|
|
|
|
|
|
|
dnl======================
|
2013-03-10 06:02:45 -06:00
|
|
|
dnl checks for libs
|
2004-09-23 13:32:57 -06:00
|
|
|
dnl======================
|
2014-08-10 03:05:55 -06:00
|
|
|
AC_CHECK_LIB([uuid], [uuid_generate], [], AC_MSG_ERROR([*** libuuid not found.]))
|
|
|
|
AC_CHECK_LIB([dl], [dlopen], [], AC_MSG_ERROR([*** libdl not found.]))
|
|
|
|
AC_CHECK_LIB([parted], [ped_device_read], [], AC_MSG_ERROR([*** libparted not found.]))
|
2008-05-08 16:31:53 -06:00
|
|
|
|
2004-10-30 16:17:20 -06:00
|
|
|
|
2014-11-13 13:53:54 -07:00
|
|
|
dnl Check for minimum required libparted version.
|
|
|
|
dnl 1) Check using pkg-config.
|
|
|
|
dnl (Older distros tend to not provide pkg-config information for libparted).
|
|
|
|
dnl 2) Check by linking and running a program to report libparted version directly.
|
2018-12-18 10:34:35 -07:00
|
|
|
LIBPARTED_REQUIRED_VERSION='2.2'
|
2014-11-13 13:53:54 -07:00
|
|
|
AC_MSG_CHECKING([for libparted >= $LIBPARTED_REQUIRED_VERSION (querying pkg-config)])
|
2014-08-10 02:13:22 -06:00
|
|
|
LIBPARTED_REQUIRED_INT=`echo "$LIBPARTED_REQUIRED_VERSION" |
|
2015-08-11 12:29:12 -06:00
|
|
|
$AWK -F. '{print $1 * 1000000 + $2 * 10000 + $3}'`
|
2014-11-13 13:53:54 -07:00
|
|
|
dnl 1) Check using pkg-config.
|
|
|
|
PKG_CHECK_EXISTS(
|
|
|
|
[libparted],
|
|
|
|
[LIBPARTED_FOUND_VERSION=`$PKG_CONFIG --modversion libparted`
|
|
|
|
LIBPARTED_FOUND_INT=`echo "$LIBPARTED_FOUND_VERSION" |
|
2015-08-11 12:29:12 -06:00
|
|
|
$AWK -F. '{print $1 * 1000000 + $2 * 10000 + $3}'`
|
2014-11-13 13:53:54 -07:00
|
|
|
AC_MSG_RESULT([$LIBPARTED_FOUND_VERSION])
|
|
|
|
test "$LIBPARTED_FOUND_INT" -ge "$LIBPARTED_REQUIRED_INT" ||
|
|
|
|
AC_MSG_ERROR([*** libparted too old. Require libparted >= $LIBPARTED_REQUIRED_VERSION but only found libparted $LIBPARTED_FOUND_VERSION.])
|
|
|
|
],
|
|
|
|
[AC_MSG_RESULT([not found])
|
|
|
|
dnl 2) Check by linking and running a program to report libparted version
|
|
|
|
dnl directly.
|
|
|
|
AC_MSG_CHECKING([for libparted >= $LIBPARTED_REQUIRED_VERSION (querying libparted)])
|
|
|
|
AC_RUN_IFELSE(
|
|
|
|
[AC_LANG_SOURCE(
|
|
|
|
[[
|
2006-09-06 14:45:55 -06:00
|
|
|
#include <stdio.h>
|
2014-08-10 02:13:22 -06:00
|
|
|
#include <stdlib.h>
|
2006-09-06 14:45:55 -06:00
|
|
|
#include <parted/parted.h>
|
2004-10-23 14:28:46 -06:00
|
|
|
|
2014-08-10 02:13:22 -06:00
|
|
|
int main()
|
2006-09-06 14:45:55 -06:00
|
|
|
{
|
2014-08-10 02:13:22 -06:00
|
|
|
const char *version = ped_get_version();
|
|
|
|
if (version == NULL)
|
2006-09-14 14:34:49 -06:00
|
|
|
{
|
2014-08-10 02:13:22 -06:00
|
|
|
fprintf(stderr, "ERROR: ped_get_version() returned NULL\n");
|
|
|
|
return EXIT_FAILURE;
|
2006-09-14 14:34:49 -06:00
|
|
|
}
|
2014-08-10 02:13:22 -06:00
|
|
|
printf("%s\n", version);
|
|
|
|
return EXIT_SUCCESS;
|
2006-09-06 14:45:55 -06:00
|
|
|
}
|
2014-11-13 13:53:54 -07:00
|
|
|
]]
|
|
|
|
)],
|
|
|
|
dnl Run test program again to cache libparted version.
|
|
|
|
[LIBPARTED_FOUND_VERSION=`./conftest$EXEEXT`
|
|
|
|
LIBPARTED_FOUND_INT=`echo "$LIBPARTED_FOUND_VERSION" |
|
2015-08-11 12:29:12 -06:00
|
|
|
$AWK -F. '{print $1 * 1000000 + $2 * 10000 + $3}'`
|
2014-11-13 13:53:54 -07:00
|
|
|
test "$LIBPARTED_FOUND_INT" -ge "$LIBPARTED_REQUIRED_INT" ||
|
|
|
|
AC_MSG_ERROR([*** libparted too old. Require libparted >= $LIBPARTED_REQUIRED_VERSION but only found libparted $LIBPARTED_FOUND_VERSION.])
|
|
|
|
],
|
|
|
|
[AC_MSG_ERROR([*** Error querying libparted version. Check config.log for details.])]
|
|
|
|
)]
|
2013-03-10 06:02:45 -06:00
|
|
|
)
|
2006-09-06 14:45:55 -06:00
|
|
|
|
|
|
|
|
2015-02-21 09:43:42 -07:00
|
|
|
dnl Check for libparted 2.0 to 3.0 inclusive for a bug where loop table
|
|
|
|
dnl creation doesn't delete old partitions.
|
|
|
|
LIBPARTED_MIN_WANTED_VERSION='2.0'
|
|
|
|
LIBPARTED_MAX_WANTED_VERSION='3.0'
|
|
|
|
AC_MSG_CHECKING([for $LIBPARTED_MIN_WANTED_VERSION <= libparted <= $LIBPARTED_MAX_WANTED_VERSION (loop table creation doesn't delete old partitions)])
|
|
|
|
LIBPARTED_MIN_WANTED_INT=`echo "$LIBPARTED_MIN_WANTED_VERSION" |
|
2015-08-11 12:29:12 -06:00
|
|
|
$AWK -F. '{print $1 * 1000000 + $2 * 10000 + $3}'`
|
2015-02-21 09:43:42 -07:00
|
|
|
LIBPARTED_MAX_WANTED_INT=`echo "$LIBPARTED_MAX_WANTED_VERSION" |
|
2015-08-11 12:29:12 -06:00
|
|
|
$AWK -F. '{print $1 * 1000000 + $2 * 10000 + $3}'`
|
2015-02-21 09:43:42 -07:00
|
|
|
if test "$LIBPARTED_MIN_WANTED_INT" -le "$LIBPARTED_FOUND_INT" -a \
|
|
|
|
"$LIBPARTED_FOUND_INT" -le "$LIBPARTED_MAX_WANTED_INT"; then
|
|
|
|
need_loop_delete_old_ptns_workaround=yes
|
|
|
|
AC_DEFINE([ENABLE_LOOP_DELETE_OLD_PTNS_WORKAROUND], 1,
|
|
|
|
[Define to 1 to enable deletion of old partitions before creating a loop table workaround])
|
|
|
|
AC_MSG_RESULT([(cached) yes])
|
|
|
|
else
|
|
|
|
need_loop_delete_old_ptns_workaround=no
|
|
|
|
AC_MSG_RESULT([(cached) no])
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2014-08-05 14:47:20 -06:00
|
|
|
dnl Check for ped_file_system_resize() function to determine the existence
|
|
|
|
dnl of the API in the original parted library. Available in parted <= 2.4.
|
2014-08-04 17:24:12 -06:00
|
|
|
dnl
|
|
|
|
dnl NOTE:
|
|
|
|
dnl For AC_CHECK_LIB the default action-if-found ($3) includes extending
|
|
|
|
dnl LIBS with the newly found library ($1) thus:
|
|
|
|
dnl LIBS="-l$1 $LIBS"
|
|
|
|
dnl
|
|
|
|
dnl As the default action-if-found is overridden, LIBS isn't extended so
|
|
|
|
dnl saving and restoring LIBS isn't required.
|
2014-08-06 16:17:00 -06:00
|
|
|
have_old_lp_fs_resize_api=no
|
2014-08-05 14:47:20 -06:00
|
|
|
AC_CHECK_LIB(
|
|
|
|
[parted], [ped_file_system_resize],
|
2014-08-06 16:17:00 -06:00
|
|
|
[have_old_lp_fs_resize_api=yes]
|
2014-08-05 14:47:20 -06:00
|
|
|
)
|
|
|
|
|
|
|
|
|
2014-08-06 16:17:00 -06:00
|
|
|
dnl If not already found, check for ped_file_system_resize() function in
|
|
|
|
dnl the parted-fs-resize library to determine the need to use the new
|
|
|
|
dnl library. Available in parted >= 3.1.
|
|
|
|
have_new_lp_fs_resize_lib=no
|
|
|
|
AS_IF(
|
|
|
|
[test "x$have_old_lp_fs_resize_api" != xyes],
|
|
|
|
[AC_CHECK_LIB(
|
|
|
|
[parted-fs-resize], [ped_file_system_resize],
|
2014-08-10 03:05:55 -06:00
|
|
|
[have_new_lp_fs_resize_lib=yes
|
|
|
|
LIBS="-lparted-fs-resize $LIBS"
|
|
|
|
]
|
2014-08-06 16:17:00 -06:00
|
|
|
)]
|
2012-03-03 11:47:39 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
|
2014-08-10 15:35:27 -06:00
|
|
|
dnl Check for libparted >= 3.2 for online resize support.
|
|
|
|
LIBPARTED_WANTED_VERSION='3.2'
|
|
|
|
AC_MSG_CHECKING([for libparted >= $LIBPARTED_WANTED_VERSION (online resize)])
|
|
|
|
LIBPARTED_WANTED_INT=`echo "$LIBPARTED_WANTED_VERSION" |
|
2015-08-11 12:29:12 -06:00
|
|
|
$AWK -F. '{print $1 * 1000000 + $2 * 10000 + $3}'`
|
2014-08-10 15:35:27 -06:00
|
|
|
if test "$LIBPARTED_FOUND_INT" -ge "$LIBPARTED_WANTED_INT"; then
|
|
|
|
have_online_resize=yes
|
|
|
|
AC_MSG_RESULT([(cached) yes])
|
|
|
|
else
|
|
|
|
have_online_resize=no
|
|
|
|
AC_MSG_RESULT([(cached) no])
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2012-03-03 11:47:39 -07:00
|
|
|
dnl Check if have libparted fs resize capability
|
|
|
|
if test [ ${have_old_lp_fs_resize_api} = yes -o ${have_new_lp_fs_resize_lib} = yes ]; then
|
|
|
|
AC_DEFINE([HAVE_LIBPARTED_FS_RESIZE], [1], [Define to 1 if have libparted fs resize capability])
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2012-01-06 07:23:43 -07:00
|
|
|
dnl gthread
|
|
|
|
PKG_CHECK_MODULES([GTHREAD], [gthread-2.0])
|
|
|
|
AC_SUBST([GTHREAD_LIBS])
|
|
|
|
AC_SUBST([GTHREAD_CFLAGS])
|
|
|
|
|
2006-09-06 14:45:55 -06:00
|
|
|
dnl GTKMM
|
2018-08-09 02:26:44 -06:00
|
|
|
PKG_CHECK_MODULES([GTKMM], [gtkmm-3.0 >= 3.4.0])
|
2010-06-24 08:37:06 -06:00
|
|
|
AC_SUBST([GTKMM_LIBS])
|
|
|
|
AC_SUBST([GTKMM_CFLAGS])
|
2004-09-23 13:32:57 -06:00
|
|
|
|
2004-09-20 09:46:21 -06:00
|
|
|
|
2018-03-06 14:09:11 -07:00
|
|
|
dnl Check for glibmm minimum required version.
|
2018-12-24 02:52:15 -07:00
|
|
|
PKG_CHECK_MODULES([GLIBMM], [glibmm-2.4 >= 2.32.0])
|
2013-03-03 15:58:05 -07:00
|
|
|
|
|
|
|
|
2016-03-24 10:09:43 -06:00
|
|
|
need_cxx_compile_stdcxx_11=no
|
|
|
|
dnl Check for glibmm >= 2.45.40 which requires C++11 compilation.
|
Enable C++11 compilation when using glibmm 2.45.40 and later (#756035)
Glibmm 2.45.40 and later uses features in the ISO C++ 2011 standard.
The NEWS file [1] says:
Changes in 2.46 compared to 2.44:
General:
* Use, and require C++11, using features such as move operations,
noexcept auto, = delete, nulltpr, override.
(Murray Cumming, Kjell Ahlstedt)
Also found this by Murray Cumming [2]:
glibmm 2.45.40 requires C++11, both for its own build and by any
apps that use it. gtkmm also now requires C++11.
I think you are seeing a symptom of building the application without
C++11 support. For instance, using CXXFLAGS="--std=c++11", though
you'd be better of using an m4 macro such as
AX_CXX_COMPILE_STDCXX_11().
Without enabling C++11 compiler features, compilation of GParted with
the latest glibmm library fails with errors such as these:
/usr/include/glibmm-2.4/glibmm/ustring.h:267:14: error: expected ';' at end of member declaration
~ustring() noexcept;
^
/usr/include/glibmm-2.4/glibmm/ustring.h:267:14: error: 'noexcept' does not name a type
~ustring() noexcept;
^
/usr/include/glibmm-2.4/glibmm/ustring.h:267:14: note: C++11 'noexcept' only available with -std=c++11 or -std=gnu++11
[1] glibmm NEWS file
https://git.gnome.org/browse/glibmm/tree/NEWS?id=934e8290ce913b12e251ea617d0fc8ac53c385c6
[2] https://bugs.launchpad.net/ubuntu/+source/glibmm2.4/+bug/1478367
Bug 756035 - GParted does not compile with newer gtkmm libraries in
Fedora 23
2015-10-04 04:26:51 -06:00
|
|
|
AC_MSG_CHECKING([for glibmm >= 2.45.40 which requires C++11 compilation])
|
|
|
|
PKG_CHECK_EXISTS(
|
|
|
|
[glibmm-2.4 >= 2.45.40],
|
2016-03-24 10:09:43 -06:00
|
|
|
[need_cxx_compile_stdcxx_11=yes
|
|
|
|
AC_MSG_RESULT([yes])
|
|
|
|
],
|
|
|
|
[AC_MSG_RESULT([no])]
|
|
|
|
)
|
|
|
|
dnl Check for libsigc++ >= 2.5.1 which requires C++11 compilation.
|
|
|
|
AC_MSG_CHECKING([for libsigc++ >= 2.5.1 which requires C++11 compilation])
|
|
|
|
PKG_CHECK_EXISTS(
|
|
|
|
[sigc++-2.0 >= 2.5.1],
|
|
|
|
[need_cxx_compile_stdcxx_11=yes
|
|
|
|
AC_MSG_RESULT([yes])
|
Enable C++11 compilation when using glibmm 2.45.40 and later (#756035)
Glibmm 2.45.40 and later uses features in the ISO C++ 2011 standard.
The NEWS file [1] says:
Changes in 2.46 compared to 2.44:
General:
* Use, and require C++11, using features such as move operations,
noexcept auto, = delete, nulltpr, override.
(Murray Cumming, Kjell Ahlstedt)
Also found this by Murray Cumming [2]:
glibmm 2.45.40 requires C++11, both for its own build and by any
apps that use it. gtkmm also now requires C++11.
I think you are seeing a symptom of building the application without
C++11 support. For instance, using CXXFLAGS="--std=c++11", though
you'd be better of using an m4 macro such as
AX_CXX_COMPILE_STDCXX_11().
Without enabling C++11 compiler features, compilation of GParted with
the latest glibmm library fails with errors such as these:
/usr/include/glibmm-2.4/glibmm/ustring.h:267:14: error: expected ';' at end of member declaration
~ustring() noexcept;
^
/usr/include/glibmm-2.4/glibmm/ustring.h:267:14: error: 'noexcept' does not name a type
~ustring() noexcept;
^
/usr/include/glibmm-2.4/glibmm/ustring.h:267:14: note: C++11 'noexcept' only available with -std=c++11 or -std=gnu++11
[1] glibmm NEWS file
https://git.gnome.org/browse/glibmm/tree/NEWS?id=934e8290ce913b12e251ea617d0fc8ac53c385c6
[2] https://bugs.launchpad.net/ubuntu/+source/glibmm2.4/+bug/1478367
Bug 756035 - GParted does not compile with newer gtkmm libraries in
Fedora 23
2015-10-04 04:26:51 -06:00
|
|
|
],
|
|
|
|
[AC_MSG_RESULT([no])]
|
|
|
|
)
|
2018-08-27 11:58:56 -06:00
|
|
|
dnl Check for gtkmm >= 3.18.0 which requires C++11 compilation.
|
|
|
|
AC_MSG_CHECKING([for gtkmm >= 3.18.0 which requires C++11 compilation])
|
|
|
|
PKG_CHECK_EXISTS(
|
|
|
|
[gtkmm-3.0 >= 3.18.0],
|
|
|
|
[need_cxx_compile_stdcxx_11=yes
|
|
|
|
AC_MSG_RESULT([yes])
|
|
|
|
],
|
|
|
|
[AC_MSG_RESULT([no])]
|
|
|
|
)
|
2016-03-24 10:09:43 -06:00
|
|
|
dnl Enable C++11 compilation only if required.
|
|
|
|
if test "x$need_cxx_compile_stdcxx_11" = xyes; then
|
|
|
|
AX_CXX_COMPILE_STDCXX_11()
|
|
|
|
fi
|
|
|
|
|
Enable C++11 compilation when using glibmm 2.45.40 and later (#756035)
Glibmm 2.45.40 and later uses features in the ISO C++ 2011 standard.
The NEWS file [1] says:
Changes in 2.46 compared to 2.44:
General:
* Use, and require C++11, using features such as move operations,
noexcept auto, = delete, nulltpr, override.
(Murray Cumming, Kjell Ahlstedt)
Also found this by Murray Cumming [2]:
glibmm 2.45.40 requires C++11, both for its own build and by any
apps that use it. gtkmm also now requires C++11.
I think you are seeing a symptom of building the application without
C++11 support. For instance, using CXXFLAGS="--std=c++11", though
you'd be better of using an m4 macro such as
AX_CXX_COMPILE_STDCXX_11().
Without enabling C++11 compiler features, compilation of GParted with
the latest glibmm library fails with errors such as these:
/usr/include/glibmm-2.4/glibmm/ustring.h:267:14: error: expected ';' at end of member declaration
~ustring() noexcept;
^
/usr/include/glibmm-2.4/glibmm/ustring.h:267:14: error: 'noexcept' does not name a type
~ustring() noexcept;
^
/usr/include/glibmm-2.4/glibmm/ustring.h:267:14: note: C++11 'noexcept' only available with -std=c++11 or -std=gnu++11
[1] glibmm NEWS file
https://git.gnome.org/browse/glibmm/tree/NEWS?id=934e8290ce913b12e251ea617d0fc8ac53c385c6
[2] https://bugs.launchpad.net/ubuntu/+source/glibmm2.4/+bug/1478367
Bug 756035 - GParted does not compile with newer gtkmm libraries in
Fedora 23
2015-10-04 04:26:51 -06:00
|
|
|
|
2019-05-03 07:42:45 -06:00
|
|
|
dnl Check for gtkmm >= 3.16 to determine availability of Gtk::Label::set_xalign().
|
|
|
|
AC_MSG_CHECKING([for Gtk::Label::set_xalign() method])
|
|
|
|
PKG_CHECK_EXISTS(
|
|
|
|
[gtkmm-3.0 >= 3.16.0],
|
|
|
|
[AC_DEFINE([HAVE_LABEL_SET_XALIGN], 1,
|
|
|
|
[Define to 1 if gtkmm provides Gtk::Label::set_xalign() method.])
|
|
|
|
AC_MSG_RESULT([yes])
|
|
|
|
],
|
|
|
|
[AC_MSG_RESULT([no])]
|
|
|
|
)
|
|
|
|
|
|
|
|
|
2019-05-01 04:57:38 -06:00
|
|
|
dnl Check for gtkmm >= 3.22 to determine availability of Gtk::ScrolledWindow::set_propagate_natural_width().
|
|
|
|
AC_MSG_CHECKING([for Gtk::ScrolledWindow::set_propagate_natural_width() method])
|
|
|
|
PKG_CHECK_EXISTS(
|
|
|
|
[gtkmm-3.0 >= 3.22.0],
|
|
|
|
[AC_DEFINE([HAVE_SET_PROPAGATE_NATURAL_WIDTH], 1,
|
|
|
|
[Define to 1 if gtkmm provides Gtk::ScrolledWindow::set_propagate_natural_width() method.])
|
|
|
|
AC_MSG_RESULT([yes])
|
|
|
|
],
|
|
|
|
[AC_MSG_RESULT([no])]
|
|
|
|
)
|
|
|
|
|
Enable C++11 compilation when using glibmm 2.45.40 and later (#756035)
Glibmm 2.45.40 and later uses features in the ISO C++ 2011 standard.
The NEWS file [1] says:
Changes in 2.46 compared to 2.44:
General:
* Use, and require C++11, using features such as move operations,
noexcept auto, = delete, nulltpr, override.
(Murray Cumming, Kjell Ahlstedt)
Also found this by Murray Cumming [2]:
glibmm 2.45.40 requires C++11, both for its own build and by any
apps that use it. gtkmm also now requires C++11.
I think you are seeing a symptom of building the application without
C++11 support. For instance, using CXXFLAGS="--std=c++11", though
you'd be better of using an m4 macro such as
AX_CXX_COMPILE_STDCXX_11().
Without enabling C++11 compiler features, compilation of GParted with
the latest glibmm library fails with errors such as these:
/usr/include/glibmm-2.4/glibmm/ustring.h:267:14: error: expected ';' at end of member declaration
~ustring() noexcept;
^
/usr/include/glibmm-2.4/glibmm/ustring.h:267:14: error: 'noexcept' does not name a type
~ustring() noexcept;
^
/usr/include/glibmm-2.4/glibmm/ustring.h:267:14: note: C++11 'noexcept' only available with -std=c++11 or -std=gnu++11
[1] glibmm NEWS file
https://git.gnome.org/browse/glibmm/tree/NEWS?id=934e8290ce913b12e251ea617d0fc8ac53c385c6
[2] https://bugs.launchpad.net/ubuntu/+source/glibmm2.4/+bug/1478367
Bug 756035 - GParted does not compile with newer gtkmm libraries in
Fedora 23
2015-10-04 04:26:51 -06:00
|
|
|
|
2021-05-15 11:52:50 -06:00
|
|
|
dnl Check for gtk+-3.0 >= 3.22 to determine availability of gtk_show_uri_on_window() function.
|
|
|
|
AC_MSG_CHECKING([for gtk_show_uri_on_window() function])
|
|
|
|
PKG_CHECK_EXISTS(
|
|
|
|
[gtk+-3.0 >= 3.22.0],
|
|
|
|
[AC_DEFINE([HAVE_GTK_SHOW_URI_ON_WINDOW], 1,
|
|
|
|
[Define to 1 if gtk provides gtk_show_uri_on_window function.])
|
|
|
|
AC_MSG_RESULT([yes])
|
|
|
|
],
|
|
|
|
[AC_MSG_RESULT([no])]
|
|
|
|
)
|
|
|
|
|
|
|
|
|
2017-04-20 11:44:41 -06:00
|
|
|
dnl Definitions for building of and with gtest. Gets flags for pthread via earlier
|
|
|
|
dnl gthread package check.
|
|
|
|
GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=1"
|
2017-05-01 13:37:16 -06:00
|
|
|
GTEST_CXXFLAGS="$GTHREAD_CFLAGS $GTKMM_CFLAGS"
|
2017-04-20 11:44:41 -06:00
|
|
|
GTEST_LDFLAGS=
|
2017-05-01 13:37:16 -06:00
|
|
|
GTEST_LIBS="$GTHREAD_LIBS $GTKMM_LIBS"
|
2017-04-20 11:44:41 -06:00
|
|
|
AC_SUBST([GTEST_CPPFLAGS])
|
|
|
|
AC_SUBST([GTEST_CXXFLAGS])
|
|
|
|
AC_SUBST([GTEST_LDFLAGS])
|
|
|
|
AC_SUBST([GTEST_LIBS])
|
|
|
|
|
|
|
|
|
2008-09-15 11:23:11 -06:00
|
|
|
dnl======================
|
2014-11-09 05:54:30 -07:00
|
|
|
dnl check whether to build documentation - gnome-doc-utils
|
2008-09-15 11:23:11 -06:00
|
|
|
dnl======================
|
2014-08-12 14:36:08 -06:00
|
|
|
AC_ARG_ENABLE(
|
|
|
|
[doc],
|
|
|
|
AS_HELP_STRING(
|
|
|
|
[--disable-doc],
|
|
|
|
dnl Autoconf quadrigraphs '@<:@' = '[' and '@:>@' = ']'
|
|
|
|
[disable building help documentation @<:@default=enabled@:>@]),
|
|
|
|
[enable_doc=$enableval],
|
|
|
|
[enable_doc=yes]
|
|
|
|
)
|
2008-09-15 11:23:11 -06:00
|
|
|
|
2014-08-12 14:36:08 -06:00
|
|
|
AC_MSG_CHECKING([whether help documentation should be built])
|
|
|
|
if test "x$enable_doc" = xyes; then
|
|
|
|
AC_DEFINE([ENABLE_HELP_DOC], [1], [Define to 1 when help documentation is built])
|
2008-09-15 11:23:11 -06:00
|
|
|
AC_MSG_RESULT([yes])
|
2014-08-12 14:36:08 -06:00
|
|
|
else
|
|
|
|
AC_MSG_RESULT([no])
|
2008-09-15 11:23:11 -06:00
|
|
|
fi
|
|
|
|
|
2014-08-12 14:36:08 -06:00
|
|
|
if test "x$enable_doc" = xyes; then
|
2019-02-23 03:39:57 -07:00
|
|
|
dnl YELP_HELP_INIT has to start at column 0 for gnome-autogen.sh to detect it
|
|
|
|
dnl and automatically required yelp.m4.
|
|
|
|
YELP_HELP_INIT
|
2008-09-15 11:23:11 -06:00
|
|
|
fi
|
|
|
|
|
2014-08-12 14:36:08 -06:00
|
|
|
AM_CONDITIONAL([BUILD_HELP_DOC], [test "x$enable_doc" = xyes])
|
2008-09-15 11:23:11 -06:00
|
|
|
|
|
|
|
|
2011-02-22 13:22:49 -07:00
|
|
|
dnl======================
|
|
|
|
dnl check whether to use native libparted dmraid support
|
|
|
|
dnl======================
|
2014-08-12 05:11:58 -06:00
|
|
|
AC_ARG_ENABLE(
|
|
|
|
[libparted_dmraid],
|
|
|
|
AS_HELP_STRING(
|
|
|
|
[--enable-libparted-dmraid],
|
|
|
|
[use native libparted /dev/mapper dmraid support @<:@default=disabled@:>@]),
|
|
|
|
[enable_libparted_dmraid=$enableval],
|
|
|
|
[enable_libparted_dmraid=no]
|
|
|
|
)
|
2011-02-22 13:22:49 -07:00
|
|
|
|
2014-08-12 05:11:58 -06:00
|
|
|
AC_MSG_CHECKING([whether to use native libparted /dev/mapper dmraid support])
|
|
|
|
if test "x$enable_libparted_dmraid" = xyes; then
|
|
|
|
AC_DEFINE([USE_LIBPARTED_DMRAID], [1],
|
|
|
|
[Define to 1 to use native libparted /dev/mapper dmraid support])
|
2011-02-22 13:22:49 -07:00
|
|
|
AC_MSG_RESULT([yes])
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT([no])
|
|
|
|
fi
|
|
|
|
|
2014-08-10 15:35:27 -06:00
|
|
|
|
2013-11-15 09:27:12 -07:00
|
|
|
dnl======================
|
|
|
|
dnl check whether to enable online resize support
|
|
|
|
dnl======================
|
2014-08-10 15:35:27 -06:00
|
|
|
AC_ARG_ENABLE(
|
|
|
|
[online-resize],
|
|
|
|
AS_HELP_STRING(
|
|
|
|
[--enable-online-resize],
|
|
|
|
[enable online resize support @<:@default=auto@:>@]),
|
|
|
|
[enable_online_resize=$enableval],
|
|
|
|
[enable_online_resize=$have_online_resize]
|
|
|
|
)
|
2013-11-15 09:27:12 -07:00
|
|
|
|
|
|
|
AC_MSG_CHECKING([whether online resize support is enabled])
|
2014-08-10 15:35:27 -06:00
|
|
|
if test "x$enable_online_resize" = xyes; then
|
|
|
|
AC_DEFINE([ENABLE_ONLINE_RESIZE], [1], [Define to 1 if online resize is enabled])
|
2013-11-15 09:27:12 -07:00
|
|
|
AC_MSG_RESULT([yes])
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT([no])
|
|
|
|
fi
|
2011-02-22 13:22:49 -07:00
|
|
|
|
2014-08-10 15:35:27 -06:00
|
|
|
|
2017-07-17 11:31:51 -06:00
|
|
|
dnl Check whether to explicitly grant root access to the display.
|
|
|
|
AC_ARG_ENABLE(
|
|
|
|
[xhost-root],
|
|
|
|
AS_HELP_STRING(
|
|
|
|
[--enable-xhost-root],
|
|
|
|
[enable explicitly granting root access to the display @<:@default=disabled@:>@]),
|
|
|
|
[enable_xhost_root=$enableval],
|
|
|
|
[enable_xhost_root=no]
|
|
|
|
)
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([whether to explicitly grant root access to the display])
|
|
|
|
if test "x$enable_xhost_root" = 'xyes'; then
|
|
|
|
AC_MSG_RESULT([yes])
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT([no])
|
|
|
|
fi
|
|
|
|
AC_SUBST([ENABLE_XHOST_ROOT], $enable_xhost_root)
|
|
|
|
|
|
|
|
|
2008-04-07 14:10:28 -06:00
|
|
|
AC_CONFIG_FILES([
|
2004-09-19 14:24:53 -06:00
|
|
|
Makefile
|
2008-09-22 16:41:49 -06:00
|
|
|
data/Makefile
|
|
|
|
data/icons/Makefile
|
2008-04-14 09:50:11 -06:00
|
|
|
doc/Makefile
|
2008-08-05 09:34:10 -06:00
|
|
|
help/Makefile
|
2004-09-19 14:24:53 -06:00
|
|
|
include/Makefile
|
2017-04-20 11:44:41 -06:00
|
|
|
lib/Makefile
|
|
|
|
lib/gtest/Makefile
|
2004-09-19 14:24:53 -06:00
|
|
|
src/Makefile
|
2004-09-20 09:46:21 -06:00
|
|
|
po/Makefile.in
|
2017-04-30 05:34:37 -06:00
|
|
|
tests/Makefile
|
2004-09-19 14:24:53 -06:00
|
|
|
])
|
2008-04-07 14:10:28 -06:00
|
|
|
|
2008-08-05 09:34:10 -06:00
|
|
|
AC_OUTPUT
|
2008-09-15 11:23:11 -06:00
|
|
|
|
|
|
|
|
|
|
|
dnl======================
|
|
|
|
dnl Summary
|
|
|
|
dnl======================
|
|
|
|
|
|
|
|
echo ""
|
2012-03-03 11:47:39 -07:00
|
|
|
echo "======================== Final configuration ==========================="
|
|
|
|
echo " Installing into prefix : $prefix"
|
2008-09-15 11:23:11 -06:00
|
|
|
echo ""
|
2014-08-12 14:36:08 -06:00
|
|
|
echo " Build help documentation? : $enable_doc"
|
2008-09-15 11:23:11 -06:00
|
|
|
echo ""
|
2012-03-03 11:47:39 -07:00
|
|
|
echo " Use native libparted dmraid support? : $enable_libparted_dmraid"
|
2011-06-08 10:38:55 -06:00
|
|
|
echo ""
|
2017-07-17 11:31:51 -06:00
|
|
|
echo " Explicitly grant root access to the display? : $enable_xhost_root"
|
|
|
|
echo ""
|
2012-03-03 11:47:39 -07:00
|
|
|
echo " --- Features Based On Libparted Version ---"
|
2015-02-21 09:43:42 -07:00
|
|
|
echo " Need delete old partitions before"
|
|
|
|
echo " creating a loop table workaround? : $need_loop_delete_old_ptns_workaround"
|
2012-03-03 11:47:39 -07:00
|
|
|
echo " Have old libparted file system resizing API? : $have_old_lp_fs_resize_api"
|
|
|
|
echo " Have new libparted file system resizing LIB? : $have_new_lp_fs_resize_lib"
|
2014-08-10 15:35:27 -06:00
|
|
|
echo " Enable online resize support? : $enable_online_resize"
|
2010-03-01 11:04:17 -07:00
|
|
|
echo ""
|
2012-03-03 11:47:39 -07:00
|
|
|
echo " If all settings are OK, type make and then (as root) make install"
|
|
|
|
echo "========================================================================"
|