Commit Graph

47 Commits

Author SHA1 Message Date
Niels De Graef f663d26ab5 Migrate from intltool to gettext
intltool has long been dead upstream. Let's not poke the dead corpse,
please.

This commit is quite large, but that's mostly since trying to support a
hybrid of both gettext and intltool with both Meson and Autotools was
really hard, so I stopped trying.

Due to gettext relying on quite some things being at the exactly right
place in the autotools build (like `ABOUT-NLS` and `config.rpath`) we
really needed to cleanup the `autogen.sh` to only call `aclocal` and
`autoreconf`. No more strange magic; I tried to do it without changing
too much in the file, and things just broke. If people want to do
something more custom, they can just change the script directly. This
change also uncovered some problems in our `configure.ac`, like using
deprecated macros.

The following major changes happened:

* meson: Changed `custom_target()` to `i18n.merge_file()` for all
  supported file types
* Added `.its` and `.loc`  files for the GIMP-specific XML formats, so
  that gettext understands them
* For the `.isl` (Window installer stuff) file, there's no easy way to
  do this in gettext, so instead we start from an XML file (again with
  its own ITS rules etc), translate that with gettext, and then use
  `xsltproc` with a bit of magic to output the .isl file for each
  language
* the `po*/Makefile.in.in` files are migrated to `Makevars` files,
  which gettext natively understands.

Fixes: https://gitlab.gnome.org/GNOME/gimp/-/issues/8028
2022-06-25 10:25:49 +02:00
Niels De Graef acf50009f8 Allow building vala plugins 2020-05-26 17:52:52 +00:00
Ming Chen 7a4254dda1 m4macros: update ax_gcc_func_attribute.m4 to serial 12
The serial 7 of m4macros/ax_gcc_func_attribute.m4 has an issue that when
Wstrict-prototypes is used with gcc, the attribute detection always
fails even if the attribute is actually supported. In such case the fish
cache will never be constructed. It's fixed in serial 12 of the macro in
autoconf-archive and this change updates the one distributed with GIMP
to serial 12.
2020-03-17 10:42:32 +08:00
Félix Piédallu 65eff6f150 Meson port. 2019-09-11 16:42:04 +02:00
Jehan b1662443af m4macros, configure: add and use AM_PYTHON_CHECK_PYGOBJECT() macro.
Rather than looking for pygobject-3.0 with pkg-config, run an actual
test in python, loading the 'gi' module.
I also added a version parameter making it possible to even check for a
required version of PyGObject, though it is currently unused (as I have
no idea if we have a minimum requirement for our plug-ins to work well).

This is an improvement of commit 8e938e0960 as I realized that we don't
need any development files, therefore I don't think that searching with
pkg-config was the right idea in our case.
2019-08-09 18:18:21 +02:00
Jehan 079027fd03 m4macros: fix python3dev.
A quote in the comment section of the Python 3 test program was breaking
the AM_PYTHON3_CHECK_VERSION macro.
2019-08-06 18:20:37 +02:00
Jehan 61c11b04c1 m4macros: Windows may have a versioned directory for headers.
Cf !84. We don't want to just replace the old path without versionned
python, because I assume it has been set for a reason. So there may be
machines with a versionned python path, others without. Let's test both
on Windows.
2019-08-06 16:26:27 +02:00
Jehan f049267f15 m4macros: fixing Makefile.
python3dev.m4 replaces pythondev.m4 and introspection.m4 was added.
2019-07-28 23:08:15 +02:00
Jehan 521ff83cba configure: some Python test cleanup/improvements.
In particular, when header check fails, Python option is disabled.

Also let's use pkg-config to search for the Python include directory.
The reason is that include/python{version} is not always
true. On my system in particular, python3.7 was in `include/python3.7m`.
2019-07-28 18:43:00 +02:00
Akkana Peck 872aa50c56 Re-enable Python in the build, but requiring Python >3.6.0 since...
... we'll need that for gobject introspection
Edit by Jehan: don't actually re-enable pygimp, only do bring back the
Python 3 configure search.
2019-07-28 18:43:00 +02:00
Jehan 0c75cd7fc4 configure, libgimpbase, m4macros: first steps into API introspection.
So far only libgimpbase is introspected. It just works though (I could
test that I could just run a plug-in which could access libgimpbase API
without any problem).
The g-ir-scanner call outputs a lot of warning but I won't care for
these right now.

The `introspection.m4` is taken straight from GEGL tree.
2019-07-25 10:51:03 +02:00
Ell 74a151a124 m4macros: remove binreloc.m4 from EXTRA_DIST
... it was removed by commit
4d84c1d7ee.
2019-02-12 10:10:27 -05:00
Jehan 4d84c1d7ee app, libgimpbase: --enable-relocatable-bundle replaces --enable-binreloc
Older --enable-binreloc configure option had basically the same purpose
as the newer --enable-relocatable-bundle, though the old binreloc was
only used for gimpenv.c code.
As a consequence, commit 10ce702188 was still not working fine since
gimp_installation_directory_file() also need binreloc enabled (to be
actually relocatable).

Let's get rid of this whole mess, by implying we want binreloc code to
be used when --enable-relocatable-bundle is ON. We don't need the
m4macros anymore, since AM_BINRELOC was basically just checking that
`/proc/self/maps` was present. But anyway being present at compile time
does not mean it will be at runtime (nor the opposite). So this test is
not that useful. The binreloc code will anyway fallback gracefully to
the non-binreloc code (i.e. trying to use build-time install paths) if
the procfs is lacking at runtime.
2019-02-05 14:50:31 +01:00
Jehan 42b13216fc m4macros, plug-ins: run more accurately the "python2" interpreter.
Our configure test checks the presence of a Python2, but then uses
"python" as interpreter, which is a problem nowadays as the default
python is set to be Python 3 on some distributions (and this will be
more and more the case). So GIMP may end up trying to run our plug-ins
through Python 3 (which would fail) even if Python 2 is present.
Now AM_PATH_PYTHON2() m4 macro will set $PYTHON to a more accurate
Python version as priority.

Similarly let's use "python2" in the binfmt string for extension search.

(cherry picked from commit 03ea9cac54)
2018-06-16 02:07:02 +02:00
Michael Natterer ce02f4ad05 m4macros: forgot 2.0 -> 3.0 here 2018-05-29 10:14:58 +02:00
Ell 700cc33bec configure.ac: require a C++11 compiler
The following commits use C++11 lambdas.
2018-04-04 17:49:46 -04:00
Ell fd9cce57ee configure.ac: require perl >= 5.10.0
Commit 4b521435a1 uses recursive
regex patterns in gimp-mkenums, which requires perl >= 5.10.0.
2017-12-04 09:00:34 -05:00
Ell e83e99db54 m4macros: add ax_gcc_func_attribute.m4
Commit e64e61ca58 requires the
AX_GCC_FUNC_ATTRIBUTE macro, which requires autoconf-archive, and
might be too new for some distros we want to support.  Distribute
it ourselves.

Also, some fixes to the makefile and acinclude.m4
2017-06-01 16:00:14 -04:00
Jehan 6cf26410ed Bug 780270 - MinGW build fail on Windows (broken m4 macro).
BUILD_EXEEXT was not properly set (config macro AX_PROG_CC_FOR_BUILD).
Apparently we need aclocal/automake version 1.13 or higher and to
distribute ax_prog_cc_for_build.m4 ourselves to benefit from a fix
released only in autoconf 2.69.
Thanks to Éric Hoffman for reporting and investigating on this.

Automake 1.13 apparently dates from 2012 and debian testing provides
a newer version (automake 1.15) so it should be ok to update it. Also
that's only a build dependency.
2017-03-23 15:25:55 +01:00
Michael Natterer 990c91f2a7 m4macros: make detectcflags.m4 more reliable
GIMP_DETECT_CFLAGS: pass -Werror to the compiler when checking for
flags, so the macro fails if passing a flag only warns but doesn't
cause the compiler to fail. Before, the compiler would warn about the
flag for each file compiled.
2015-11-08 01:04:16 +01:00
Jehan d249ec348b Bug 735828 - configure fails for python < 2.7.
sys.version_info named components only available since 2.7, though GIMP
is supposed to support 2.5.0 and over. Used numerical tuple index
instead.
2014-09-07 16:33:34 +02:00
Jehan 6714a414a7 configure: search only Python 2 interpreter and headers.
Do not accept Python 3 interpreter/headers, even when this is the
default installed Python. Search only for Python 2.
2014-05-30 09:59:51 +00:00
Daniel "Tracerneo" Ziółkowski 77087aba2d m4macros/pythondev.m4: Python 3 compatibility 2013-05-03 15:32:21 -04:00
Michael Natterer 4c90c51009 m4macros: remove gimpprint.m4, it's unused 2013-01-27 19:12:02 +01:00
Ville Skyttä 6b0d1038cc Bug 692641 - Various spelling fixes 2013-01-27 18:59:02 +01:00
Martin Nordholts 53596f708d m4macros: Delete gtk-doc.m4, gtkdocize gives us a symlink 2010-06-19 23:55:35 +02:00
Sven Neumann 6601625af7 Add AC_CONFIG_MACRO_DIR() to configure.ac as suggested by libtoolize
Also set ACLOCAL_AMFLAGS in the top-level Makefile.am and update
the .gitignore file in the m4macros directory. This fixes the build
from a fresh checkout for me. Please revert if it causes problems.
2010-02-01 00:09:11 +01:00
Martin Nordholts 4d7a6b10d1 Added .gitignore files generated with git svn create-ignore.
svn path=/trunk/; revision=27972
2009-01-31 11:37:44 +00:00
Sven Neumann 930d6149da removed all .cvsignore files from SVN
svn path=/trunk/; revision=21612
2006-12-30 14:31:03 +00:00
Manish Singh d0729e4cc1 introduce automake conditional USE_BINRELOC.
2006-02-19  Manish Singh  <yosh@gimp.org>

        * m4macros/binreloc.m4: introduce automake conditional USE_BINRELOC.

        * app/Makefile.am: ... and use the above here, so that -rpath is only
        specified when binreloc functionality is enabled. Fixes bug #331677.
2006-02-19 17:44:57 +00:00
Michael Natterer 969fcb2475 disable binreloc by default.
2005-11-11  Michael Natterer  <mitch@gimp.org>

	* m4macros/binreloc.m4: disable binreloc by default.
2005-11-11 15:22:49 +00:00
Sven Neumann 39e866d9c0 Added support for binary relocation by means of binreloc, largely based on
2005-11-06  Sven Neumann  <sven@gimp.org>

	Added support for binary relocation by means of binreloc, largely
	based on a patch by Hongli Lai:

	* m4macros/Makefile.am
	* m4macros/binreloc.m4: new file providing a macro to check for
	binreloc support.

	* acinclude.m4
	* configure.in: use the macro.

	* libgimpbase/Makefile.am
	* libgimpbase/gimpreloc.[ch]: new files providing binreloc support
	on Linux.

	* libgimpbase/gimpenv.[ch]: use binreloc, provide a function to
	initialize the environment machinery.

	* libgimpbase/gimpbase.def: updated.

	* app/Makefile.am: fiddle with the LDFLAGS for binreloc.

	* app/main.c (main): gimp_env_init(FALSE).

	* libgimp/gimp.c (gimp_main): gimp_env_init(TRUE).
2005-11-06 01:06:41 +00:00
Manish Singh 19ea886842 python headers on Win32 don't live in a versioned subdir. Handle that
2005-08-28  Manish Singh  <yosh@gimp.org>

        * m4macros/pythondev.m4: python headers on Win32 don't live in a
        versioned subdir. Handle that case.
2005-08-28 16:59:56 +00:00
Jens Seidel d08ae844d3 fixed a typo: s/occured/occurred/g 2005-08-21 20:28:05 +00:00
Manish Singh b55753bb21 acinclude.m4 m4macros/Makefile.am new macro: GIMP_DETECT_CFLAGS; used to
2005-07-31  Manish Singh  <yosh@gimp.org>

        * acinclude.m4
        * m4macros/Makefile.am
        * m4macros/detectcflags.m4: new macro: GIMP_DETECT_CFLAGS; used
        to detect which of a set of compiler options a compiler supports.

        * configure.in: use the above for the altivec and -fno-strict-aliasing
        flags. Also, use it to detect the presence of -mmmx and -msse, since
        those are needed to compile even MMX/SSE assembly with gcc 4.0. Define
        MMX/SSE_EXTRA_CFLAGS.

        * app/composite/Makefile.am: compile each of the composite flavors
        into their own library, so we can use automake's per-target CFLAGS.
        Use MMX/SSE/ALTIVEC_EXTRA_CFLAGS in the appropriate places. Build
        libappcomposite.a out of the resulting objects.

        * app/composite/gimp-composite-3dnow.c
        * app/composite/gimp-composite-altivec.c
        * app/composite/gimp-composite-mmx.c
        * app/composite/gimp-composite-sse.c
        * app/composite/gimp-composite-sse2.c
        * app/composite/gimp-composite-vis.c
        * app/composite/make-installer.py: move the _init functions into
        the installers, so only actually mmx/sse/etc. code gets compiled
        under the appropriate CFLAGS.

        * app/composite/gimp-composite-3dnow-installer.c
        * app/composite/gimp-composite-altivec-installer.c
        * app/composite/gimp-composite-mmx-installer.c
        * app/composite/gimp-composite-sse-installer.c
        * app/composite/gimp-composite-sse2-installer.c
        * app/composite/gimp-composite-vis-installer.c: regenerated.

        * app/composite/gimp-composite.c: remove useless cpu-accel.h include.
2005-08-01 04:45:34 +00:00
Manish Singh cbee4c51de split out into separate files...
2005-06-24  Manish Singh  <yosh@gimp.org>

        * acinclude.m4: split out into separate files...

        * m4macros/alsa.m4
        * m4macros/gimpprint.m4
        * m4macros/gtk-doc.m4
        * m4macros/pythondev.m4: ... and put them here.

        * m4macros/Makefile.am: dist the above files.
2005-06-24 21:17:57 +00:00
Michael Natterer e0d1ddb070 added run-time version check and do the workaround for bug #136636 only if
2004-03-21  Michael Natterer  <mitch@gimp.org>

	* app/display/gimpdisplayshell-callbacks.c
	(gimp_display_shell_events): added run-time version
	check and do the workaround for bug #136636 only if
	the Gtk+ version is < 2.2.5.

	* m4macros/gimp-2.0.m4: require gimp >= 2.0.0
2004-03-21 15:58:48 +00:00
Michael Natterer e8843a2372 reset binary age because of struct changes below. require GIMP 1.3.26.
2004-01-29  Michael Natterer  <mitch@gimp.org>

	* configure.in: reset binary age because of struct changes below.
	* m4macros/gimp-2.0.m4: require GIMP 1.3.26.

	* libgimpmodule/gimpmodule.h
	* libgimpmodule/gimpmoduledb.h
	* libgimpthumb/gimpthumbnail.h
	* libgimpwidgets/gimpbutton.h
	* libgimpwidgets/gimpchainbutton.h
	* libgimpwidgets/gimpcolorarea.h
	* libgimpwidgets/gimpcolorbutton.h
	* libgimpwidgets/gimpcolordisplay.h
	* libgimpwidgets/gimpcolordisplaystack.h
	* libgimpwidgets/gimpcolornotebook.h
	* libgimpwidgets/gimpcolorscale.h
	* libgimpwidgets/gimpcolorselection.h
	* libgimpwidgets/gimpcolorselector.h
	* libgimpwidgets/gimpdialog.h
	* libgimpwidgets/gimpfileentry.h
	* libgimpwidgets/gimpmemsizeentry.h
	* libgimpwidgets/gimpoffsetarea.h
	* libgimpwidgets/gimppickbutton.h
	* libgimpwidgets/gimppixmap.h
	* libgimpwidgets/gimpsizeentry.h
	* libgimpwidgets/gimpunitmenu.h: added 4 function pointers padding
	to all class structures.
2004-01-29 00:21:33 +00:00
Manish Singh d87468730b quote AM_PATH_GIMP_2_O properly so automake 1.8 won't whine at us.
2004-01-21  Manish Singh  <yosh@gimp.org>

        * m4macros/gimp-2.0.m4: quote AM_PATH_GIMP_2_O properly so automake
        1.8 won't whine at us.
2004-01-22 04:27:15 +00:00
Sven Neumann bd5827d0d9 bumped version number to 1.3.25, interface_age 1, binary age 1.
2004-01-09  Sven Neumann  <sven@gimp.org>

	* configure.in: bumped version number to 1.3.25, interface_age 1,
	binary age 1.

	* Makefile.am
	* gimp-2.0.pc.in
	* gimpthumb-2.0.pc.in
	* gimpui-2.0.pc.in: renamed the pkg-config files.

	* gimptool-2.0.in
	* docs/Makefile.am
	* docs/gimptool-2.0.1.in: renamed gimptool and it's manpage.

	* gimp.spec.in
	* m4macros/gimp-2.0.m4: changed accordingly.
2004-01-09 00:09:51 +00:00
Sven Neumann 6041392138 gimp-1.3.pc.in don't use $VERSION because pkg-config and the like don't
2004-01-07  Sven Neumann  <sven@gimp.org>

	* gimp-1.3.pc.in
	* gimpui-1.3.pc.in: don't use $VERSION because pkg-config and the
	like don't like the 2.0pre version numbers. Instead create a
	parseable version number from major, minor and micro version.

	* m4macros/gimp-2.0.m4: check for 1.3.24 or newer.
2004-01-07 19:52:46 +00:00
Sven Neumann 5795f10ad3 rewritten to use pkg-config instead of gimptool; closely modeled after
2003-11-02  Sven Neumann  <sven@gimp.org>

	* m4macros/gimp-2.0.m4: rewritten to use pkg-config instead of
	gimptool; closely modeled after gtk-2.0.m4.
2003-11-02 18:49:41 +00:00
Sven Neumann 5ab05db882 set the default minimum version to 1.3.18.
2003-08-21  Sven Neumann  <sven@gimp.org>

	* m4macros/gimp-2.0.m4: set the default minimum version to 1.3.18.
2003-08-21 09:50:23 +00:00
Sven Neumann 1ea55851c3 changed the gettext domain prefix to gimp20.
2003-07-20  Sven Neumann  <sven@gimp.org>

	* configure.in: changed the gettext domain prefix to gimp20.

	* m4macros/Makefile.am
	* m4macros/gimp-1.4.m4: removed this file ...
	* m4macros/gimp-2.0.m4: ... and readded it with a new name.
	Changed the macro to AM_PATH_GIMP_2_0().

	* configure.in: added --without-aa option as a way to work around
	broken aalib installations.

	* INSTALL: document --without-aa and --without-mng.
2003-07-20 12:40:30 +00:00
Sven Neumann fdc31ec7d0 use gimptool-1.3.
2001-11-29  Sven Neumann  <sven@gimp.org>

	* m4macros/gimp-1.4.m4: use gimptool-1.3.

	* app/display/gimpdisplayshell.c
	* app/gui/gui.c: cosmetic changes from Guillermo S. Romero.

	* plug-ins/common/*.c
	* plug-ins/script-fu/script-fu-scripts.c: applied patches from
	Guillermo S. Romero that change the button ordering. I had to redo
	some of the changes by hand since the patches didn't apply cleanly.
	Hopefully got it all right...
2001-11-29 13:23:44 +00:00
Michael Natterer 3413a9ef3c small fix.
2001-11-12  Michael Natterer  <mitch@gimp.org>

	* HACKING: small fix.

	* configure.in: changed --disable-perl to --enable-perl because
	it doesn't build properly at the moment.

	* pixmaps/Makefile.am: removed stuff which is no longer there
	from EXTRA_DIST.

	* plug-ins/Makefile.am: put back the $(GIMP_PERL) line in SUBDIRS.

	* app/widgets/gimpmenuitem.c. include "libgimpwidgets/gimpwidgets.h".

	* data/Makefile.am
	* data/brushes/Makefile.am
	* data/gradients/Makefile.am
	* data/palettes/Makefile.am
	* data/patterns/Makefile.am: removed the old "files" hack and put
	the stuff to EXTRA_DIST.

	* app/Makefile.am
	* app/base/Makefile.am
	* app/core/Makefile.am
	* app/file/Makefile.am
	* app/gui/Makefile.am
	* app/paint-funcs/Makefile.am
	* app/pdb/Makefile.am
	* app/tools/Makefile.am
	* app/widgets/Makefile.am
	* app/widgets/gimpmenuitem.c
	* app/xcf/Makefile.am
	* cursors/Makefile.am
	* libgimp/Makefile.am
	* libgimpbase/Makefile.am
	* libgimpcolor/Makefile.am
	* libgimpmath/Makefile.am
	* libgimpwidgets/Makefile.am
	* m4macros/Makefile.am
	* themes/Makefile.am
	* themes/Default/Makefile.am
	* themes/Default/images/Makefile.am
	* themes/Default/images/tools/Makefile.am: removed "files" target.
2001-11-13 01:46:10 +00:00
Sven Neumann cae946baaf removed redefinitions of libtool macros. We use the installed libtool now.
2001-08-28  Sven Neumann  <sven@gimp.org>

	* acinclude.m4: removed redefinitions of libtool macros. We use the
	installed libtool now. If this breaks the build for your system,
	upgrade libtool. If that does not help, let us know.

	* ltconfig
	* ltmain.sh: removed these files. Newer versions of libtool don't use
	ltconfig and ltmain.sh is taken from your libtool installation.

	* autogen.sh: check for presence of libtool.

	* Makefile.am
	* configure.in
	* gimp-remote.1.in
	* gimp.1.in
	* gimprc.5.in: removed man-pages from toplevel dir ...

	* docs/Makefile.am
	* docs/gimp-remote.1.in
	* docs/gimp.1.in
	* docs/gimprc.5.in
	* docs/gimptool-1.4.1.in: ... and added them back here.

	* gimp-1.4.m4: removed from toplevel dir ...

	* m4macros/Makefile.am
	* m4macros/gimp-1.4.m4: ... and added it back here.
2001-08-28 13:04:47 +00:00