Skip to content
Commits on Source (25)
......@@ -107,7 +107,7 @@ Fellype do Nascimento <fellypao@yahoo.com.br>
Brazilian Portugese.
Jeong Jiseong <stopstar@gist.ac.kr>
Korean.
Julian Hofer <julian.hofer@protonmail.com>
Julian Hofer <julian.public@protonmail.com>
German.
Sabrina Meindlhumer
German.
......
......@@ -377,7 +377,6 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PASCAL = @PASCAL@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
......
2.55 (2019-11-04)
Application:
- Dependencies: GLib 2.32 and GTK+ 2.18 are now required.
- Keyboard shortcuts: F3 shows/hides current tool window.
- Translations updated: Czech, Russian.
Libraries:
- libgwyprocess: Functions to add data field to all brick xy-planes and data
line to all z-lines were added.
- libgwyprocess: Function for binning into an existing data field was added.
- libgwyapp: Common initialisation function for batch-style programs utilising
Gwyddion libraries was added: gwy_app_init_nongui().
- libgwyapp: Critical warning in gwy_app_wait_finish() when waiting is disabled
was fixed.
- libgwyapp: It is no longer necessary to create GwyBrick preview images
manually; an average value image is added on the fly if necessary.
Modules:
- Resample (new): Resamples image to specified pixel size or to match pixel
size of another image.
- Volume rephase (new): Cyclically shifts data blocks to correct errorneous
volume data files.
- Volume equiplane (new): Creates images from isosurfaces in volume data.
- Volume z-pos level (new): Shifts values in z curves to be zero at defined
position.
- Pixmap: Hue mapping type was added.
- Rotate: Mask handling was made more consistent.
- FFT synthesis: Generalised Gaussian multiplier (arbitrary power) was added.
- Pattern synthesis: New Siemens star shape generator was added.
- Tescan: Can load images split into -png.hdr and .png files.
- SPIP ASC: Import support for profile (1D) data was implemented.
- Surfstand SDF: Can read binary ISO-1.0 version files, with bad value
handling and tries to recognise Olympus binary files with longer headers.
- Olympus OIR: Physical dimensions and metadata were implemented. File
structure is recognised a bit better. An attempt was made to unmix mixed up
LSM channels.
- Leica: Can read 12bit images. Volume data z range was fixed to always
positive.
- MicroProf: All images in a file should be imported now. More files can be
imported thanks to improved file parsing. Outside pixels are masked.
- LEXT: Calibration parameters are read and applied. Metadata support was
added.
- Nanoscope: Force curve pairs are merged to have ZSensor data on the abscissa,
as for force volume data.
- Dimensions & Units: Reset button no longer resets to inconsistent state when
units that will be actually set differ from displayed units.
- Grain remove and Spot remove tools: Option to fill data with zero was added.
- Laplace: Function for simply filling masked data with zero was added.
- XYZ Rasterize: Can create mask over empty regions for Average interpolation.
- Fit terraces, Graph terraces: Fit results can be exported.
- Correlation Search: Mask can be used in object mark mode.
Other:
- MS Windows: Packages were built with ZIP support again.
- Compilation: Detection of ZIP libraries works again (version 2.54 always
reported them as available, but did not actually use them).
- Plug-in proxy: Plug-in examples are now only installed as documentation in
source code form, not executable into libexec.
2.54 (2019-08-27)
Application:
- Remote control: When Gwyddion is given files to open and is not run from
......@@ -61,7 +121,7 @@ Modules:
- Fit terraces (new): Fits step height from terrace structure measurement.
- Graph terraces (new): Fits step height from terrace structure measurement.
- Graph statistical functions (new): One-dimensional statistics from curves.
- Olymputs OIR (new): Imports of OIR and POIR files (experimental).
- Olympus OIR (new): Imports of OIR and POIR files (experimental).
- Gaussian step (new): Step detection by convolution with a Gaussian step.
- Zero crossing (new): Split from Edge to a separate module.
- Corning CSV (new): Imports Corning Tropel UltraSort exported CSV data.
......
......@@ -24,7 +24,6 @@ Release checklist.
3. Metadata sync and sanity:
- generate on-line module list (run ./make-module-list in utils, may need
manual filtering of non-released modules)
docbase=$HOME/Projects/Gwyddion/gwyddion/devel-docs ./gendoc.sh
- check translations, may require actually running Gwyddion in all locales
- check and update NEWS, set release data, generate the HTML version
./utils/gen-news.py <NEWS
......@@ -33,6 +32,7 @@ Release checklist.
make rule in data/)
- generate stable API docs for gwyddion.net (using gwyddion.net-doc-build SVN
module) and upload them
docbase=$HOME/Projects/Gwyddion/gwyddion/devel-docs ./gendoc.sh
4. Checking the tarballs:
- must build on Linux from svn and tarballs
......
# $Id: Makefile.am 22437 2019-08-27 11:57:54Z yeti-dn $
# $Id: Makefile.am 22639 2019-11-03 11:26:31Z yeti-dn $
libgwyddion = $(top_builddir)/libgwyddion/libgwyddion2.la
libgwymodule = $(top_builddir)/libgwymodule/libgwymodule2.la
......@@ -97,7 +97,7 @@ libgwyapp2.def: $(libgwyapp2_la_OBJECTS)
# Any iface change C++: 0: A
# Adding ifaces C: R: A++
# Changing ifaces C: R: 0
libversion = -version-info 23:0:23
libversion = -version-info 24:0:24
#libversion = -release @LIBRARY_RELEASE@
AM_CFLAGS = @COMMON_CFLAGS@ @GIO_CFLAGS@
AM_LDFLAGS = @GTKGLEXT_LIBS@ @GIO_LIBS@ @BASIC_LIBS@ $(win32_libs) -export-dynamic $(no_undefined) $(export_symbols) $(libversion) $(libgwyapp_libadd)
......
......@@ -14,7 +14,7 @@
@SET_MAKE@
# $Id: Makefile.am 22437 2019-08-27 11:57:54Z yeti-dn $
# $Id: Makefile.am 22639 2019-11-03 11:26:31Z yeti-dn $
# Generic glib-mkenum rules.
# $Id: mkenum.mk 20681 2017-12-18 18:37:24Z yeti-dn $
......@@ -381,7 +381,6 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PASCAL = @PASCAL@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
......@@ -579,7 +578,7 @@ mkenum_built_sources = $(MKENUM_NAME).h $(MKENUM_NAME).c
# Any iface change C++: 0: A
# Adding ifaces C: R: A++
# Changing ifaces C: R: 0
libversion = -version-info 23:0:23
libversion = -version-info 24:0:24
#libversion = -release @LIBRARY_RELEASE@
AM_CFLAGS = @COMMON_CFLAGS@ @GIO_CFLAGS@
AM_LDFLAGS = @GTKGLEXT_LIBS@ @GIO_LIBS@ @BASIC_LIBS@ $(win32_libs) -export-dynamic $(no_undefined) $(export_symbols) $(libversion) $(libgwyapp_libadd)
......
/*
* $Id: app.c 21954 2019-04-03 12:40:50Z yeti-dn $
* $Id: app.c 22628 2019-10-30 13:46:42Z yeti-dn $
* Copyright (C) 2003-2006,2013-2019 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
......@@ -27,6 +27,7 @@
#include <gtk/gtk.h>
#include <libgwyddion/gwymacros.h>
#include <libgwyddion/gwythreads.h>
#include <libgwyddion/gwymd5.h>
#include <libprocess/gwyprocess.h>
#include <libgwymodule/gwymodule.h>
......@@ -74,6 +75,9 @@ static gboolean gwy_app_data_popup_menu_popup_mouse (GtkWidget *menu,
GwyDataView *data_view);
static void gwy_app_data_popup_menu_popup_key (GtkWidget *menu,
GtkWidget *data_window);
static gboolean gwy_app_data_key_pressed (GtkWidget *data_window,
GdkEventKey *event,
gpointer user_data);
static gboolean gwy_app_graph_window_configured (GwyGraphWindow *window);
static gboolean gwy_app_graph_popup_menu_popup_mouse (GtkWidget *menu,
GdkEventButton *event,
......@@ -391,6 +395,8 @@ _gwy_app_data_window_setup(GwyDataWindow *data_window)
g_signal_connect_swapped(ebox, "button-press-event",
G_CALLBACK(gwy_app_data_corner_menu_popup_mouse),
corner_menu);
g_signal_connect(data_window, "key-press-event",
G_CALLBACK(gwy_app_data_key_pressed), NULL);
g_signal_connect(data_window, "configure-event",
G_CALLBACK(gwy_app_data_window_configured), NULL);
g_signal_connect(data_window, "size-allocate",
......@@ -705,6 +711,24 @@ gwy_app_data_window_change_square(GtkWidget *item,
g_free(s);
}
static gboolean
gwy_app_data_key_pressed(G_GNUC_UNUSED GtkWidget *data_window,
GdkEventKey *event,
G_GNUC_UNUSED gpointer user_data)
{
if (event->keyval != GDK_F3
|| (event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK)))
return FALSE;
if (current_tool) {
if (!gwy_tool_is_visible(current_tool))
gwy_tool_show(current_tool);
else
gwy_tool_hide(current_tool);
}
return TRUE;
}
/*****************************************************************************
* *
* Graph window management *
......@@ -2162,7 +2186,7 @@ gwy_app_switch_tool(const gchar *toolname)
* In some rare circumstances, this function can return %NULL because no tool
* is active. This includes program startup and shutdown and during the
* construction of a new #GwyTool object while switching tools. Also, %NULL
* is typically returned outside Gwyddion in program just using the libraries.
* is typically returned outside Gwyddion in programs just using the libraries.
*
* Returns: The tool name.
*
......@@ -2177,6 +2201,26 @@ gwy_app_current_tool_name(void)
return G_OBJECT_TYPE_NAME(current_tool);
}
/**
* gwy_app_current_tool:
*
* Obtains the currently active tool object.
*
* In some rare circumstances, this function can return %NULL because no tool
* is active. This includes program startup and shutdown and during the
* construction of a new #GwyTool object while switching tools. Also, %NULL
* is typically returned outside Gwyddion in programs just using the libraries.
*
* Returns: The current tool object.
*
* Since: 2.55
**/
GwyTool*
gwy_app_current_tool(void)
{
return current_tool;
}
static void
gwy_app_data_window_reset_zoom(void)
{
......@@ -2737,6 +2781,7 @@ gwy_app_init_common(GError **error,
settings_file = gwy_app_settings_get_settings_filename();
if (g_file_test(settings_file, G_FILE_TEST_IS_REGULAR))
ok = gwy_app_settings_load(settings_file, error);
g_free(settings_file);
gwy_app_settings_get();
/* Register modules */
......@@ -2786,6 +2831,106 @@ gwy_app_init_common(GError **error,
return ok;
}
/**
* gwy_app_init_nongui:
* @option: Name of the first initialisation option, or %NULL if there are no
* options.
* @...: Value of the first option, if any, followed by another option name
* and value, etc. Terminated by %NULL.
*
* Performs common initialisations useful in non-GUI (batch) programs utilising
* Gwyddion libraries.
*
* This function does not initialise GTK+ and does not set up anything related
* or requiring a display. It sets up logging to console, runs
* gwy_widgets_type_init(), disables undo, disables GUI for the data browser
* and waiting, and loads resources, settings and all modules. However, it
* prevents the plugin-proxy and pygwy modules from loading.
*
* There are currently the following options:
*
* "enable-threads" with #gboolean value. If %TRUE or %FALSE is passed
* gwy_threads_set_enabled() will be called with this settings. By default,
* the multithread processing state is unchanged.
*
* "enable-pygwy" with #gboolean value. If %TRUE is passed then pygwy will not
* be prevented from loading. Passing %FALSE is the same as not setting the
* option at all.
*
* So, for instance a program wanting to enable multithread processing in
* Gwyddion functions (provided it is built in) can run
*
* |[
* gwy_app_init_nongui("enable-threads", TRUE, NULL);
* ]|
*
* Since: 2.55
**/
void
gwy_app_init_nongui(const gchar *option,
...)
{
gboolean want_threads = FALSE, set_thread_state = FALSE;
gboolean want_pygwy = FALSE;
va_list ap;
gchar *settings_file;
gchar **module_dirs;
gwy_app_setup_logging(GWY_APP_LOGGING_TO_CONSOLE);
va_start(ap, option);
while (option) {
if (gwy_strequal(option, "enable-threads")) {
set_thread_state = TRUE;
want_threads = va_arg(ap, gint);
}
else if (gwy_strequal(option, "enable-pygwy")) {
want_pygwy = va_arg(ap, gint);
}
else {
g_warning("Unknown init option %s.\n", option);
break;
}
option = va_arg(ap, const gchar*);
}
va_end(ap);
if (set_thread_state)
gwy_threads_set_enabled(want_threads);
gwy_module_disable_registration("plugin-proxy");
if (!want_pygwy)
gwy_module_disable_registration("pygwy");
gwy_widgets_type_init();
gwy_undo_set_enabled(FALSE);
gwy_app_wait_set_enabled(FALSE);
gwy_app_data_browser_set_gui_enabled(FALSE);
/* Register resources */
gwy_resource_class_load(g_type_class_peek(GWY_TYPE_GRADIENT));
gwy_resource_class_load(g_type_class_peek(GWY_TYPE_GL_MATERIAL));
gwy_resource_class_load(g_type_class_peek(GWY_TYPE_GRAIN_VALUE));
gwy_resource_class_load(g_type_class_peek(GWY_TYPE_CALIBRATION));
/* Load settings */
settings_file = gwy_app_settings_get_settings_filename();
if (g_file_test(settings_file, G_FILE_TEST_IS_REGULAR))
gwy_app_settings_load(settings_file, NULL);
g_free(settings_file);
gwy_app_settings_get();
/* Register modules */
module_dirs = gwy_app_settings_get_module_dirs();
gwy_module_register_modules((const gchar**)module_dirs);
g_strfreev(module_dirs);
/* The Python initialisation somehow overrides SIGINT and Gwyddion can no
* longer be terminated with Ctrl-C. Fix it. */
if (want_pygwy)
signal(SIGINT, SIG_DFL);
}
/************************** Documentation ****************************/
/**
......
/*
* $Id: app.h 21392 2018-09-05 07:53:07Z yeti-dn $
* Copyright (C) 2003-2018 David Necas (Yeti), Petr Klapetek.
* $Id: app.h 22628 2019-10-30 13:46:42Z yeti-dn $
* Copyright (C) 2003-2019 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
* This program is free software; you can redistribute it and/or modify
......@@ -24,11 +24,13 @@
#include <gtk/gtkwindow.h>
#include <libgwydgets/gwydataview.h>
#include <app/gwytool.h>
G_BEGIN_DECLS
void gwy_app_switch_tool (const gchar *toolname);
const gchar* gwy_app_current_tool_name (void);
GwyTool* gwy_app_current_tool (void);
void gwy_app_add_main_accel_group (GtkWindow *window);
void gwy_app_save_window_position (GtkWindow *window,
const gchar *prefix,
......@@ -45,6 +47,8 @@ void gwy_app_init_widget_styles (void);
void gwy_app_init_i18n (void);
gboolean gwy_app_init_common (GError **error,
...);
void gwy_app_init_nongui (const gchar *option,
...);
G_END_DECLS
......
/*
* $Id: data-browser.c 21680 2018-11-26 10:39:39Z yeti-dn $
* $Id: data-browser.c 22561 2019-10-10 14:16:59Z yeti-dn $
* Copyright (C) 2006-2018 David Necas (Yeti), Petr Klapetek, Chris Anderson
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net, sidewinderasu@gmail.com.
*
......@@ -152,6 +152,7 @@ static void gwy_app_update_surface_window_title(GwyDataView *data_view,
static void replace_surface_preview (GwyContainer *container,
GtkTreeModel *model,
GtkTreeIter *iter);
static void ensure_brick_previews (GwyAppDataProxy *proxy);
static gboolean gwy_app_data_proxy_channel_set_visible(GwyAppDataProxy *proxy,
GtkTreeIter *iter,
gboolean visible);
......@@ -2343,6 +2344,7 @@ gwy_app_data_proxy_new(GwyAppDataBrowser *browser,
proxy->lists[GWY_PAGE_GRAPHS].last = 0;
gwy_container_foreach(data, NULL, gwy_app_data_proxy_scan_data, proxy);
ensure_brick_previews(proxy);
return proxy;
}
......@@ -4540,6 +4542,39 @@ gwy_app_update_brick_window_title(GwyDataView *data_view,
g_free(title);
}
static void
ensure_brick_previews(GwyAppDataProxy *proxy)
{
GwyAppDataList *list = proxy->lists + GWY_PAGE_VOLUMES;
GtkTreeModel *model = GTK_TREE_MODEL(list->store);
GtkTreeIter iter;
if (!gtk_tree_model_get_iter_first(model, &iter))
return;
do {
GwyBrick *brick;
GwyDataField *preview;
GQuark quark;
gint id;
gtk_tree_model_get(model, &iter,
MODEL_ID, &id,
MODEL_OBJECT, &brick,
-1);
quark = gwy_app_get_brick_preview_key_for_id(id);
if (!gwy_container_gis_object(proxy->container, quark,
(GObject**)&preview)
|| !GWY_IS_DATA_FIELD(preview)) {
preview = _gwy_app_create_brick_preview_field(brick);
gwy_container_set_object(proxy->container, quark, preview);
g_object_unref(preview);
}
g_object_unref(brick);
} while (gtk_tree_model_iter_next(model, &iter));
}
/**************************************************************************
*
* XYZ treeview
......@@ -6904,8 +6939,8 @@ gwy_app_data_browser_add_spectra(GwySpectra *spectra,
/**
* gwy_app_data_browser_add_brick:
* @brick: A data brick to add.
* @preview: Preview data field. It may be %NULL to create some
* of 2D summary preview automatically. If non-%NULL, its dimensions
* @preview: Preview data field. It may be %NULL to create a
* preview automatically. If non-%NULL, its dimensions
* should match those of brick planes. You must
* <emphasis>not</emphasis> pass a field which already represents a
* channel. If you want a to show the same field as an existing
......
/*
* $Id: file.c 22100 2019-05-27 10:59:56Z yeti-dn $
* $Id: file.c 22497 2019-09-19 11:01:56Z yeti-dn $
* Copyright (C) 2003-2006 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
......@@ -180,8 +180,6 @@ warn_broken_load_func(const gchar *name,
{
static const gchar *broken_file_funcs[] = {
"dimensionfile",
"oirfile",
"poirfile",
/*"at present no modules are broken and this is not a file type name",*/
};
......
/*
* $Id: filelist.c 21804 2019-01-06 20:50:38Z yeti-dn $
* $Id: filelist.c 22534 2019-10-02 08:35:40Z yeti-dn $
* Copyright (C) 2004-2016 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
......@@ -76,11 +76,6 @@
/* Gwyddion specific */
#define KEY_THUMB_GWY_REAL_SIZE "tEXt::Thumb::X-Gwyddion::RealSize"
/* Being compatible with various version of GLib requires creativity... */
#if (!GLIB_CHECK_VERSION(2, 26, 0))
#define GStatBuf struct stat
#endif
typedef enum {
FILE_STATE_UNKNOWN = 0,
FILE_STATE_OLD,
......
/*
* $Id: gwyappfilechooser.c 21804 2019-01-06 20:50:38Z yeti-dn $
* $Id: gwyappfilechooser.c 22534 2019-10-02 08:35:40Z yeti-dn $
* Copyright (C) 2003-2018 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
......@@ -1481,8 +1481,6 @@ ensure_gtk_recently_used(void)
if (ensured)
return;
/* Gtk+ 2.12 implies GBookmarkFile is also available. */
#if (GTK_CHECK_VERSION(2,12,0))
filename = g_build_filename(g_get_user_data_dir(), ".recently-used.xbel",
NULL);
if (!g_file_test(filename, G_FILE_TEST_EXISTS)) {
......@@ -1495,7 +1493,6 @@ ensure_gtk_recently_used(void)
}
g_bookmark_file_free(bookmarkfile);
}
#endif
g_free(filename);
ensured = TRUE;
}
......
/*
* $Id: gwymoduleutils-file.h 20678 2017-12-18 18:26:55Z yeti-dn $
* Copyright (C) 2007-2016 David Necas (Yeti), Petr Klapetek.
* $Id: gwymoduleutils-file.h 22578 2019-10-19 11:05:41Z yeti-dn $
* Copyright (C) 2007-2019 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
* This program is free software; you can redistribute it and/or modify
......@@ -67,108 +67,108 @@ static inline gint16
gwy_get_gint16_le(const guchar **ppv)
{
const gint16 *pv = (const gint16*)(*ppv);
gint16 v = GINT16_FROM_LE(*pv);
gint16 v = *pv;
*ppv += sizeof(gint16);
return v;
return GINT16_FROM_LE(v);
}
static inline gint16
gwy_get_gint16_be(const guchar **ppv)
{
const gint16 *pv = (const gint16*)(*ppv);
gint16 v = GINT16_FROM_BE(*pv);
gint16 v = *pv;
*ppv += sizeof(gint16);
return v;
return GINT16_FROM_BE(v);
}
static inline guint16
gwy_get_guint16_le(const guchar **ppv)
{
const guint16 *pv = (const guint16*)(*ppv);
guint16 v = GUINT16_FROM_LE(*pv);
guint16 v = *pv;
*ppv += sizeof(guint16);
return v;
return GUINT16_FROM_LE(v);
}
static inline guint16
gwy_get_guint16_be(const guchar **ppv)
{
const guint16 *pv = (const guint16*)(*ppv);
guint16 v = GUINT16_FROM_BE(*pv);
guint16 v = *pv;
*ppv += sizeof(guint16);
return v;
return GUINT16_FROM_BE(v);
}
static inline gint32
gwy_get_gint32_le(const guchar **ppv)
{
const gint32 *pv = (const gint32*)(*ppv);
gint32 v = GINT32_FROM_LE(*pv);
gint32 v = *pv;
*ppv += sizeof(gint32);
return v;
return GINT32_FROM_LE(v);
}
static inline gint32
gwy_get_gint32_be(const guchar **ppv)
{
const gint32 *pv = (const gint32*)(*ppv);
gint32 v = GINT32_FROM_BE(*pv);
gint32 v = *pv;
*ppv += sizeof(gint32);
return v;
return GINT32_FROM_BE(v);
}
static inline guint32
gwy_get_guint32_le(const guchar **ppv)
{
const guint32 *pv = (const guint32*)(*ppv);
guint32 v = GUINT32_FROM_LE(*pv);
guint32 v = *pv;
*ppv += sizeof(guint32);
return v;
return GUINT32_FROM_LE(v);
}
static inline guint32
gwy_get_guint32_be(const guchar **ppv)
{
const guint32 *pv = (const guint32*)(*ppv);
guint32 v = GUINT32_FROM_BE(*pv);
guint32 v = *pv;
*ppv += sizeof(guint32);
return v;
return GUINT32_FROM_BE(v);
}
static inline gint64
gwy_get_gint64_le(const guchar **ppv)
{
const gint64 *pv = (const gint64*)(*ppv);
gint64 v = GINT64_FROM_LE(*pv);
gint64 v = *pv;
*ppv += sizeof(gint64);
return v;
return GINT64_FROM_LE(v);
}
static inline gint64
gwy_get_gint64_be(const guchar **ppv)
{
const gint64 *pv = (const gint64*)(*ppv);
gint64 v = GINT64_FROM_BE(*pv);
gint64 v = *pv;
*ppv += sizeof(gint64);
return v;
return GINT64_FROM_BE(v);
}
static inline guint64
gwy_get_guint64_le(const guchar **ppv)
{
const guint64 *pv = (const guint64*)(*ppv);
guint64 v = GUINT64_FROM_LE(*pv);
guint64 v = *pv;
*ppv += sizeof(guint64);
return v;
return GUINT64_FROM_LE(v);
}
static inline guint64
gwy_get_guint64_be(const guchar **ppv)
{
const guint64 *pv = (const guint64*)(*ppv);
guint64 v = GUINT64_FROM_BE(*pv);
guint64 v = *pv;
*ppv += sizeof(guint64);
return v;
return GUINT64_FROM_BE(v);
}
static inline gfloat
......
/*
* $Id: gwytool.c 20678 2017-12-18 18:26:55Z yeti-dn $
* Copyright (C) 2006-2013 David Necas (Yeti), Petr Klapetek.
* $Id: gwytool.c 22521 2019-09-25 14:11:09Z yeti-dn $
* Copyright (C) 2006-2019 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
* This program is free software; you can redistribute it and/or modify
......@@ -162,7 +162,7 @@ gwy_tool_init(GwyTool *tool,
g_signal_connect_swapped(tool->dialog, "configure-event",
G_CALLBACK(gwy_tool_configure_event), tool);
g_signal_connect(tool->dialog, "delete-event",
G_CALLBACK(gwy_dialog_prevent_delete_cb), NULL);
G_CALLBACK(gtk_true), NULL);
g_signal_connect_swapped(tool->dialog, "response",
G_CALLBACK(gwy_tool_response), tool);
}
......@@ -302,6 +302,8 @@ gwy_tool_add_hide_button(GwyTool *tool,
gtk_window_add_accel_group(GTK_WINDOW(tool->dialog), accelgroup);
gtk_widget_add_accelerator(button, "activate", accelgroup,
GDK_Escape, 0, 0);
gtk_widget_add_accelerator(button, "activate", accelgroup,
GDK_F3, 0, 0);
g_object_unref(accelgroup);
}
......
/*
* $Id: help.c 20677 2017-12-18 18:22:52Z yeti-dn $
* $Id: help.c 22534 2019-10-02 08:35:40Z yeti-dn $
* Copyright (C) 2014-2017 David Necas (Yeti).
* E-mail: yeti@gwyddion.net.
*
......@@ -99,7 +99,6 @@ show_uri_win32(G_GNUC_UNUSED const gchar *uri, gboolean complain)
static gboolean
show_uri_gtk(G_GNUC_UNUSED const gchar *uri, gboolean complain)
{
#if GTK_CHECK_VERSION(2,14,0)
GError *error = NULL;
gboolean ok;
......@@ -117,11 +116,6 @@ show_uri_gtk(G_GNUC_UNUSED const gchar *uri, gboolean complain)
g_clear_error(&error);
}
return ok;
#else
if (complain)
g_warning("Help backend gtk is not available (too old Gtk+).");
return FALSE;
#endif
}
G_GNUC_UNUSED
......
/*
* $Id: wait.c 22152 2019-06-09 14:51:25Z yeti-dn $
* Copyright (C) 2004-2018 David Necas (Yeti), Petr Klapetek.
* $Id: wait.c 22535 2019-10-02 11:01:42Z yeti-dn $
* Copyright (C) 2004-2019 David Necas (Yeti), Petr Klapetek.
* E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
*
* This program is free software; you can redistribute it and/or modify
......@@ -100,6 +100,9 @@ silent_kill_preview_widget(void)
void
gwy_app_wait_finish(void)
{
if (!wait_enabled)
return;
silent_kill_preview_widget();
if (cancelled) {
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for Gwyddion 2.54.
# Generated by GNU Autoconf 2.69 for Gwyddion 2.55.
#
# Report bugs to <klapetek@gwyddion.net>.
#
......@@ -650,8 +650,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Gwyddion'
PACKAGE_TARNAME='gwyddion'
PACKAGE_VERSION='2.54'
PACKAGE_STRING='Gwyddion 2.54'
PACKAGE_VERSION='2.55'
PACKAGE_STRING='Gwyddion 2.55'
PACKAGE_BUGREPORT='klapetek@gwyddion.net'
PACKAGE_URL=''
 
......@@ -802,11 +802,6 @@ XMKMF
HDRIMAGE_EXTRA_CFLAGS
GTKDOC_EXTRA_CFLAGS
PYTHON_EXTRA_CFLAGS
HAVE_PASCAL_FALSE
HAVE_PASCAL_TRUE
PASCAL
HAVE_RUBY_NARRAY_FALSE
HAVE_RUBY_NARRAY_TRUE
HAVE_RUBY_FALSE
HAVE_RUBY_TRUE
RUBY
......@@ -1017,14 +1012,13 @@ with_python
enable_pygwy
with_perl
with_ruby
with_pascal
with_x
enable_openmp
with_gtksourceview
with_gl
with_zlib
with_bzip2
with_zip=ZIPLIB
with_zip
with_libxml2
with_unique
with_kde4_thumbnailer
......@@ -1632,7 +1626,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures Gwyddion 2.54 to adapt to many kinds of systems.
\`configure' configures Gwyddion 2.55 to adapt to many kinds of systems.
 
Usage: $0 [OPTION]... [VAR=VALUE]...
 
......@@ -1706,7 +1700,7 @@ fi
 
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of Gwyddion 2.54:";;
short | recursive ) echo "Configuration of Gwyddion 2.55:";;
esac
cat <<\_ACEOF
 
......@@ -1762,8 +1756,6 @@ Optional Packages:
[default=yes]
--with-ruby Install Ruby modules and plug-ins
[default=yes]
--with-pascal Build sample Pascal plug-ins
[default=yes]
--with-x use the X Window System
--with-gtksourceview Better Pygwy console user interface
[default=yes]
......@@ -1771,7 +1763,7 @@ Optional Packages:
--with-zlib build with zlib support [default=yes]
--with-bzip2 build with bzip2 support [default=yes]
--with-zip=ZIPLIB ZIP support library (minizip1, minizip2, libzip or
auto) [default=auto]
auto)
--with-libxml2 build with libxml2 support [default=yes]
--with-unique libunique remote control backend
[default=yes]
......@@ -1931,7 +1923,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
Gwyddion configure 2.54
Gwyddion configure 2.55
generated by GNU Autoconf 2.69
 
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -2695,7 +2687,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
 
It was created by Gwyddion $as_me 2.54, which was
It was created by Gwyddion $as_me 2.55, which was
generated by GNU Autoconf 2.69. Invocation command line was
 
$ $0 $@
......@@ -3051,7 +3043,7 @@ PACKAGE_URL="http://gwyddion.net/"
 
 
 
ac_config_files="$ac_config_files Makefile m4/Makefile app/Makefile libdraw/Makefile libgwyddion/Makefile libgwyddion/gwyversion.h libgwydgets/Makefile libgwymodule/Makefile libprocess/Makefile gwyddion/Makefile modules/Makefile modules/file/Makefile modules/graph/Makefile modules/layer/Makefile modules/process/Makefile modules/pygwy/Makefile modules/tools/Makefile modules/volume/Makefile modules/xyz/Makefile plugins/Makefile plugins/file/Makefile plugins/process/Makefile pixmaps/Makefile pixmaps/src/Makefile po/Makefile.in perl/Makefile python/Makefile ruby/Makefile data/Makefile data/glmaterials/Makefile data/gradients/Makefile utils/Makefile utils/bundler utils/mkosxlauncher thumbnailer/Makefile devel-docs/Makefile devel-docs/libgwyapp/Makefile devel-docs/libgwyapp/releaseinfo.xml devel-docs/libgwyddion/Makefile devel-docs/libgwyddion/releaseinfo.xml devel-docs/libgwydgets/Makefile devel-docs/libgwydgets/releaseinfo.xml devel-docs/libgwydraw/Makefile devel-docs/libgwydraw/releaseinfo.xml devel-docs/libgwymodule/Makefile devel-docs/libgwymodule/releaseinfo.xml devel-docs/libgwyprocess/Makefile devel-docs/libgwyprocess/releaseinfo.xml gwyddion.spec:data/gwyddion.spec.in data/gwyddion.pc data/gwyddion.nsit data/mingw-gwyddion-libs.spec"
ac_config_files="$ac_config_files Makefile m4/Makefile app/Makefile libdraw/Makefile libgwyddion/Makefile libgwyddion/gwyversion.h libgwydgets/Makefile libgwymodule/Makefile libprocess/Makefile gwyddion/Makefile modules/Makefile modules/file/Makefile modules/graph/Makefile modules/layer/Makefile modules/process/Makefile modules/pygwy/Makefile modules/tools/Makefile modules/volume/Makefile modules/xyz/Makefile plugins/Makefile pixmaps/Makefile pixmaps/src/Makefile po/Makefile.in perl/Makefile python/Makefile ruby/Makefile data/Makefile data/glmaterials/Makefile data/gradients/Makefile utils/Makefile utils/bundler utils/mkosxlauncher thumbnailer/Makefile devel-docs/Makefile devel-docs/libgwyapp/Makefile devel-docs/libgwyapp/releaseinfo.xml devel-docs/libgwyddion/Makefile devel-docs/libgwyddion/releaseinfo.xml devel-docs/libgwydgets/Makefile devel-docs/libgwydgets/releaseinfo.xml devel-docs/libgwydraw/Makefile devel-docs/libgwydraw/releaseinfo.xml devel-docs/libgwymodule/Makefile devel-docs/libgwymodule/releaseinfo.xml devel-docs/libgwyprocess/Makefile devel-docs/libgwyprocess/releaseinfo.xml gwyddion.spec:data/gwyddion.spec.in data/gwyddion.pc data/gwyddion.nsit data/mingw-gwyddion-libs.spec"
 
ac_config_headers="$ac_config_headers config.h"
 
......@@ -3642,7 +3634,7 @@ fi
 
# Define the identity of the package.
PACKAGE='gwyddion'
VERSION='2.54'
VERSION='2.55'
 
 
cat >>confdefs.h <<_ACEOF
......@@ -3799,8 +3791,8 @@ AM_BACKSLASH='\'
 
 
GWY_VERSION_MAJOR=2
GWY_VERSION_MINOR=54
GWY_VERSION_STRING='"2.54"'
GWY_VERSION_MINOR=55
GWY_VERSION_STRING='"2.55"'
 
 
 
......@@ -18804,119 +18796,6 @@ else
fi
 
 
#############################################################################
# Check for Ruby narray module
ruby_has_narray=no
if test "$RUBY" != :; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ruby narray module" >&5
$as_echo_n "checking for ruby narray module... " >&6; }
if $RUBY -rnarray -e 'exit 0' >/dev/null 2>&1; then
ruby_has_narray=yes
else
ruby_has_narray=no
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ruby_has_narray" >&5
$as_echo "$ruby_has_narray" >&6; }
fi
if test "$ruby_has_narray" = yes; then
HAVE_RUBY_NARRAY_TRUE=
HAVE_RUBY_NARRAY_FALSE='#'
else
HAVE_RUBY_NARRAY_TRUE='#'
HAVE_RUBY_NARRAY_FALSE=
fi
#############################################################################
# Check for Pascal compiler
# The outer [] are necessary to quote the inner [] inside sed expressions
# Check whether --with-pascal was given.
if test "${with_pascal+set}" = set; then :
withval=$with_pascal; case "${withval}" in
yes|no) enable_pascal="$withval" ;;
*) as_fn_error $? "bad value ${withval} for --with-pascal" "$LINENO" 5 ;;
esac
else
enable_pascal=yes
fi
for ac_prog in fpc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PASCAL+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PASCAL in
[\\/]* | ?:[\\/]*)
ac_cv_path_PASCAL="$PASCAL" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PASCAL="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PASCAL=$ac_cv_path_PASCAL
if test -n "$PASCAL"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PASCAL" >&5
$as_echo "$PASCAL" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -n "$PASCAL" && break
done
test -n "$PASCAL" || PASCAL=":"
if test "$PASCAL" != :; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if fpc version >= 1.9" >&5
$as_echo_n "checking if fpc version >= 1.9... " >&6; }
fpc_version=`$PASCAL -iV`
fpc_major=`echo $fpc_version | sed -e 's/\..*//'`
fpc_minor=`echo $fpc_version | sed -e 's/[^.]*\.//' -e 's/\..*//'`
if test $fpc_major -gt 1; then
fpc_version_ok=yes
else
if test $fpc_major = 1 -a $fpc_minor -gt 8; then
fpc_version_ok=yes
else
fpc_version_ok=no
PASCAL=:
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fpc_version_ok" >&5
$as_echo "$fpc_version_ok" >&6; }
fi
if test "$PASCAL" != : -a "$enable_pascal" != no; then
HAVE_PASCAL_TRUE=
HAVE_PASCAL_FALSE='#'
else
HAVE_PASCAL_TRUE='#'
HAVE_PASCAL_FALSE=
fi
#############################################################################
# With GCC, be paranoiac. It should compile really cleanly.
if test "$GCC" = yes; then
......@@ -20275,12 +20154,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_GTK_BASE_CFLAGS="$GTK_BASE_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.8.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.8.0") 2>&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_GTK_BASE_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.8.0" 2>/dev/null`
pkg_cv_GTK_BASE_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.18.0" 2>/dev/null`
else
pkg_failed=yes
fi
......@@ -20293,12 +20172,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_GTK_BASE_LIBS="$GTK_BASE_LIBS"
else
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.8.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.8.0") 2>&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.18.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.18.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_GTK_BASE_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.8.0" 2>/dev/null`
pkg_cv_GTK_BASE_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.18.0" 2>/dev/null`
else
pkg_failed=yes
fi
......@@ -20317,14 +20196,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
GTK_BASE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0 >= 2.8.0"`
GTK_BASE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0 >= 2.18.0"`
else
GTK_BASE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.8.0"`
GTK_BASE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.18.0"`
fi
# Put the nasty error message in config.log where it belongs
echo "$GTK_BASE_PKG_ERRORS" >&5
 
as_fn_error $? "Package requirements (gtk+-2.0 >= 2.8.0) were not met:
as_fn_error $? "Package requirements (gtk+-2.0 >= 2.18.0) were not met:
 
$GTK_BASE_PKG_ERRORS
 
......@@ -20365,12 +20244,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_GOBJECT_CFLAGS="$GOBJECT_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-2.0 >= 2.16.0 gthread-2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gobject-2.0 >= 2.16.0 gthread-2.0") 2>&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-2.0 >= 2.32.0 gthread-2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gobject-2.0 >= 2.32.0 gthread-2.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_GOBJECT_CFLAGS=`$PKG_CONFIG --cflags "gobject-2.0 >= 2.16.0 gthread-2.0" 2>/dev/null`
pkg_cv_GOBJECT_CFLAGS=`$PKG_CONFIG --cflags "gobject-2.0 >= 2.32.0 gthread-2.0" 2>/dev/null`
else
pkg_failed=yes
fi
......@@ -20383,12 +20262,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_GOBJECT_LIBS="$GOBJECT_LIBS"
else
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-2.0 >= 2.16.0 gthread-2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gobject-2.0 >= 2.16.0 gthread-2.0") 2>&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-2.0 >= 2.32.0 gthread-2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gobject-2.0 >= 2.32.0 gthread-2.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_GOBJECT_LIBS=`$PKG_CONFIG --libs "gobject-2.0 >= 2.16.0 gthread-2.0" 2>/dev/null`
pkg_cv_GOBJECT_LIBS=`$PKG_CONFIG --libs "gobject-2.0 >= 2.32.0 gthread-2.0" 2>/dev/null`
else
pkg_failed=yes
fi
......@@ -20407,14 +20286,14 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
GOBJECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gobject-2.0 >= 2.16.0 gthread-2.0"`
GOBJECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gobject-2.0 >= 2.32.0 gthread-2.0"`
else
GOBJECT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gobject-2.0 >= 2.16.0 gthread-2.0"`
GOBJECT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gobject-2.0 >= 2.32.0 gthread-2.0"`
fi
# Put the nasty error message in config.log where it belongs
echo "$GOBJECT_PKG_ERRORS" >&5
 
as_fn_error $? "Package requirements (gobject-2.0 >= 2.16.0 gthread-2.0) were not met:
as_fn_error $? "Package requirements (gobject-2.0 >= 2.32.0 gthread-2.0) were not met:
 
$GOBJECT_PKG_ERRORS
 
......@@ -21223,6 +21102,7 @@ fi
# Optional.
# Pkg-config cannot tell us if FFTW libs are available with OpenMP support.
# We have to try linking with them.
fftw_openmp_libs=`echo "$FFTW3_LIBS " | sed 's/-lfftw3 /-lfftw3_omp -lfftw3 /'`
if test x$enable_openmp = xyes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FFTW3 library with OpenMP support" >&5
$as_echo_n "checking for FFTW3 library with OpenMP support... " >&6; }
......@@ -21231,7 +21111,6 @@ if ${ac_cv_gwy_fftw_openmp+:} false; then :
else
ye_PROG_CC_OPTION_cflags="$CFLAGS"
ye_PROG_CC_OPTION_ldflags="$LDFLAGS"
fftw_openmp_libs=`echo "$FFTW3_LIBS " | sed 's/-lfftw3 /-lfftw3_omp -lfftw3 /'`
CFLAGS="$CFLAGS $FFTW3_CFLAGS $OPENMP_CFLAGS"
LDFLAGS="$LDFLAGS $fftw_openmp_libs $OPENMP_CFLAGS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
......@@ -21247,7 +21126,6 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_gwy_fftw_openmp=yes
FFTW3_LIBS="$fftw_openmp_libs"
else
ac_cv_gwy_fftw_openmp=no
fi
......@@ -21265,6 +21143,8 @@ if test x$ac_cv_gwy_fftw_openmp = xyes; then
 
$as_echo "#define HAVE_FFTW_WITH_OPENMP 1" >>confdefs.h
 
FFTW3_LIBS="$fftw_openmp_libs"
pkg_cv_FFTW3_LIBS="$fftw_openmp_libs"
fi
 
#############################################################################
......@@ -21652,18 +21532,17 @@ fi
# minizip 2.x
# The new branch that broke everything and seems to be under heavy development.
# Not sure since which version it is actually usable.
enable_zip=auto
 
# Check whether --with-zip=ZIPLIB was given.
if test "${with_zip=ZIPLIB+set}" = set; then :
withval=$with_zip=ZIPLIB; case "${withval}" in
yes|no) enable_zip=ZIPLIB="$withval" ;;
*) as_fn_error $? "bad value ${withval} for --with-zip=ZIPLIB" "$LINENO" 5 ;;
# Check whether --with-zip was given.
if test "${with_zip+set}" = set; then :
withval=$with_zip; case "$withval" in
minizip1|minizip2|libzip|auto|no) enable_zip="$withval";;
yes) enable_zip=auto;;
*) as_fn_error $? "bad balue \"$withval\" for --with-zip" "$LINENO" 5 ;;
esac
else
enable_zip=ZIPLIB=auto
fi
 
fi
 
found_zip=no
enable_minizip1=no
......@@ -24890,13 +24769,14 @@ fi
# Create lists of included and exclued optional file formats.
# This table needs to be kept in sync with modules/file/Makefile.am.
cat >conftest.out <<EOF
have_any_zip? NanoObserver
have_any_zip? NanoScanTech
have_any_zip? OpenGPS
have_any_zip? PLUx
have_any_zip? SPMxFormat
have_any_zip? JPK force
enable_libxml2? have_any_zip? APE DAX
found_zip? NanoObserver
found_zip? NanoScanTech
found_zip? OpenGPS
found_zip? PLUx
found_zip? SPMxFormat
found_zip? JPK force
found_zip? OlympusPOIR
enable_libxml2? found_zip? APE DAX
enable_libxml2? enable_zlib? SPML
enable_libxml2? Anasys
enable_exr? have_cxx? OpenEXR
......@@ -24911,7 +24791,7 @@ have_cxx? PGM/16bit
enable_webp? WebP
EOF
 
for dep in enable_bzip2 enable_cfitsio enable_exr enable_libxml2 enable_png enable_webp enable_zlib have_any_zip have_cxx; do
for dep in enable_bzip2 enable_cfitsio enable_exr enable_libxml2 enable_png enable_webp enable_zlib found_zip have_cxx; do
eval x=\$$dep
if test "x$x" != xno; then
sed "s/$dep? //" conftest.out >conftest.tmp
......@@ -25115,14 +24995,6 @@ if test -z "${HAVE_RUBY_TRUE}" && test -z "${HAVE_RUBY_FALSE}"; then
as_fn_error $? "conditional \"HAVE_RUBY\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_RUBY_NARRAY_TRUE}" && test -z "${HAVE_RUBY_NARRAY_FALSE}"; then
as_fn_error $? "conditional \"HAVE_RUBY_NARRAY\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_PASCAL_TRUE}" && test -z "${HAVE_PASCAL_FALSE}"; then
as_fn_error $? "conditional \"HAVE_PASCAL\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_ZLIB_TRUE}" && test -z "${HAVE_ZLIB_FALSE}"; then
as_fn_error $? "conditional \"HAVE_ZLIB\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
......@@ -25576,7 +25448,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by Gwyddion $as_me 2.54, which was
This file was extended by Gwyddion $as_me 2.55, which was
generated by GNU Autoconf 2.69. Invocation command line was
 
CONFIG_FILES = $CONFIG_FILES
......@@ -25642,7 +25514,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
Gwyddion config.status 2.54
Gwyddion config.status 2.55
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
 
......@@ -26194,8 +26066,6 @@ do
"modules/volume/Makefile") CONFIG_FILES="$CONFIG_FILES modules/volume/Makefile" ;;
"modules/xyz/Makefile") CONFIG_FILES="$CONFIG_FILES modules/xyz/Makefile" ;;
"plugins/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Makefile" ;;
"plugins/file/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/file/Makefile" ;;
"plugins/process/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/process/Makefile" ;;
"pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES pixmaps/Makefile" ;;
"pixmaps/src/Makefile") CONFIG_FILES="$CONFIG_FILES pixmaps/src/Makefile" ;;
"po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
......
# $Id: configure.ac 22439 2019-08-27 12:04:04Z yeti-dn $
# $Id: configure.ac 22648 2019-11-04 09:25:15Z yeti-dn $
dnl Process this file with autoconf to produce a configure script.
m4_define([gwy_version_major],[2])
m4_define([gwy_version_minor],[54])
m4_define([gwy_version_minor],[55])
m4_define([gwy_version_string],[gwy_version_major.gwy_version_minor])
AC_INIT([Gwyddion], [gwy_version_string], [klapetek@gwyddion.net])
# Use -release for unstable version libs instead of -version-info, because
......@@ -32,8 +32,6 @@ AC_CONFIG_FILES(\
modules/volume/Makefile \
modules/xyz/Makefile \
plugins/Makefile \
plugins/file/Makefile \
plugins/process/Makefile \
pixmaps/Makefile \
pixmaps/src/Makefile \
po/Makefile.in \
......@@ -317,44 +315,6 @@ if test "$RUBY" != :; then
fi
AM_CONDITIONAL([HAVE_RUBY], [test "$RUBY" != : -a "$enable_ruby" != no])
#############################################################################
# Check for Ruby narray module
ruby_has_narray=no
if test "$RUBY" != :; then
AC_MSG_CHECKING([for ruby narray module])
if $RUBY -rnarray -e 'exit 0' >/dev/null 2>&1; then
ruby_has_narray=yes
else
ruby_has_narray=no
fi
AC_MSG_RESULT([$ruby_has_narray])
fi
AM_CONDITIONAL([HAVE_RUBY_NARRAY], [test "$ruby_has_narray" = yes])
#############################################################################
# Check for Pascal compiler
# The outer [] are necessary to quote the inner [] inside sed expressions
GWY_WITH([pascal],,[Build sample Pascal plug-ins])
AC_PATH_PROGS(PASCAL,fpc,:)
if test "$PASCAL" != :; then
AC_MSG_CHECKING([if fpc version >= 1.9])
fpc_version=`$PASCAL -iV`
[fpc_major=`echo $fpc_version | sed -e 's/\..*//'`]
[fpc_minor=`echo $fpc_version | sed -e 's/[^.]*\.//' -e 's/\..*//'`]
if test $fpc_major -gt 1; then
fpc_version_ok=yes
else
if test $fpc_major = 1 -a $fpc_minor -gt 8; then
fpc_version_ok=yes
else
fpc_version_ok=no
PASCAL=:
fi
fi
AC_MSG_RESULT([$fpc_version_ok])
fi
AM_CONDITIONAL([HAVE_PASCAL], [test "$PASCAL" != : -a "$enable_pascal" != no])
#############################################################################
# With GCC, be paranoiac. It should compile really cleanly.
if test "$GCC" = yes; then
......@@ -413,8 +373,8 @@ fi
# A dummy Gtk+ check, we perform another when we know whether to request
# pangoft2 or not.
PKG_CHECK_MODULES(GTK_BASE, [gtk+-2.0 >= 2.8.0])
PKG_CHECK_MODULES(GOBJECT, [gobject-2.0 >= 2.16.0 gthread-2.0])
PKG_CHECK_MODULES(GTK_BASE, [gtk+-2.0 >= 2.18.0])
PKG_CHECK_MODULES(GOBJECT, [gobject-2.0 >= 2.32.0 gthread-2.0])
PKG_CHECK_MODULES(GMODULE, [gmodule-2.0])
PKG_CHECK_MODULES(GIO, [gio-2.0])
GWY_CHECK_LIBM
......@@ -484,17 +444,16 @@ GWY_OPENMP([201107],[3.1])
# Optional.
# Pkg-config cannot tell us if FFTW libs are available with OpenMP support.
# We have to try linking with them.
fftw_openmp_libs=`echo "$FFTW3_LIBS " | sed 's/-lfftw3 /-lfftw3_omp -lfftw3 /'`
if test x$enable_openmp = xyes; then
AC_CACHE_CHECK([for FFTW3 library with OpenMP support],
[ac_cv_gwy_fftw_openmp],
[ye_PROG_CC_OPTION_cflags="$CFLAGS"
ye_PROG_CC_OPTION_ldflags="$LDFLAGS"
fftw_openmp_libs=`echo "$FFTW3_LIBS " | sed 's/-lfftw3 /-lfftw3_omp -lfftw3 /'`
CFLAGS="$CFLAGS $FFTW3_CFLAGS $OPENMP_CFLAGS"
LDFLAGS="$LDFLAGS $fftw_openmp_libs $OPENMP_CFLAGS"
AC_LINK_IFELSE([AC_LANG_PROGRAM([[fftw_init_threads(); fftw_cleanup_threads();]])],
[ac_cv_gwy_fftw_openmp=yes
FFTW3_LIBS="$fftw_openmp_libs"],
[ac_cv_gwy_fftw_openmp=yes],
[ac_cv_gwy_fftw_openmp=no])
CFLAGS="$ye_PROG_CC_OPTION_cflags"
LDFLAGS="$ye_PROG_CC_OPTION_ldflags"
......@@ -503,6 +462,8 @@ fi
if test x$ac_cv_gwy_fftw_openmp = xyes; then
AC_DEFINE(HAVE_FFTW_WITH_OPENMP,1,[Define if we have FFTW3 with OpenMP support.])
FFTW3_LIBS="$fftw_openmp_libs"
pkg_cv_FFTW3_LIBS="$fftw_openmp_libs"
fi
#############################################################################
......@@ -596,7 +557,16 @@ AC_SUBST(BZIP2)
# minizip 2.x
# The new branch that broke everything and seems to be under heavy development.
# Not sure since which version it is actually usable.
GWY_WITH([zip=ZIPLIB],,[ZIP support library (minizip1, minizip2, libzip or auto)],[auto])
enable_zip=auto
AC_ARG_WITH([zip],
AS_HELP_STRING([--with-zip=ZIPLIB],
[ZIP support library (minizip1, minizip2, libzip or auto)]),
[case "$withval" in
minizip1|minizip2|libzip|auto|no) enable_zip="$withval";;
yes) enable_zip=auto;;
*) AC_MSG_ERROR([bad balue "$withval" for --with-zip]) ;;
esac]
)
found_zip=no
enable_minizip1=no
enable_minizip2=no
......@@ -930,13 +900,14 @@ fi
# Create lists of included and exclued optional file formats.
# This table needs to be kept in sync with modules/file/Makefile.am.
cat >conftest.out <<EOF
have_any_zip? NanoObserver
have_any_zip? NanoScanTech
have_any_zip? OpenGPS
have_any_zip? PLUx
have_any_zip? SPMxFormat
have_any_zip? JPK force
enable_libxml2? have_any_zip? APE DAX
found_zip? NanoObserver
found_zip? NanoScanTech
found_zip? OpenGPS
found_zip? PLUx
found_zip? SPMxFormat
found_zip? JPK force
found_zip? OlympusPOIR
enable_libxml2? found_zip? APE DAX
enable_libxml2? enable_zlib? SPML
enable_libxml2? Anasys
enable_exr? have_cxx? OpenEXR
......@@ -951,7 +922,7 @@ have_cxx? PGM/16bit
enable_webp? WebP
EOF
for dep in enable_bzip2 enable_cfitsio enable_exr enable_libxml2 enable_png enable_webp enable_zlib have_any_zip have_cxx; do
for dep in enable_bzip2 enable_cfitsio enable_exr enable_libxml2 enable_png enable_webp enable_zlib found_zip have_cxx; do
AS_VAR_COPY([x],[$dep])
if test "x$x" != xno; then
sed "s/$dep? //" conftest.out >conftest.tmp
......
......@@ -360,7 +360,6 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PASCAL = @PASCAL@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
......
......@@ -292,7 +292,6 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PASCAL = @PASCAL@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
......