feat: server list sidebar + notifications + new icon
- Added server list sidebar (GtkPaned) showing saved servers with name, user@host:port detail. Double-click to connect. - Added '+' button in sidebar to add new servers - Added notification bar (animated GtkRevealer) for status messages: 'Server saved', 'Server connected', 'Server disconnected', 'Server removed', 'Key generated', 'Key imported', 'Key deleted' Auto-hides after 4 seconds. - Changed icon to terminal-style PNG + SVG (scalable) - Server list updates automatically when servers are added/removed Layout: [Sidebar: Servers] | [Notebook: Terminal Tabs]
This commit is contained in:
+759
@@ -0,0 +1,759 @@
|
||||
# Makefile.in generated by automake 1.18.1 from Makefile.am.
|
||||
# src/Makefile. Generated from Makefile.in by configure.
|
||||
|
||||
# Copyright (C) 1994-2025 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
am__rm_f = rm -f $(am__rm_f_notfound)
|
||||
am__rm_rf = rm -rf $(am__rm_f_notfound)
|
||||
pkgdatadir = $(datadir)/x3-ssh
|
||||
pkgincludedir = $(includedir)/x3-ssh
|
||||
pkglibdir = $(libdir)/x3-ssh
|
||||
pkglibexecdir = $(libexecdir)/x3-ssh
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
bin_PROGRAMS = x3-ssh$(EXEEXT)
|
||||
subdir = src
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(dist_icons_DATA) \
|
||||
$(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(iconsdir)"
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am_x3_ssh_OBJECTS = x3_ssh-main.$(OBJEXT) \
|
||||
x3_ssh-ssh_terminal.$(OBJEXT) x3_ssh-server_store.$(OBJEXT) \
|
||||
x3_ssh-ssh_client.$(OBJEXT) x3_ssh-key_store.$(OBJEXT)
|
||||
x3_ssh_OBJECTS = $(am_x3_ssh_OBJECTS)
|
||||
am__DEPENDENCIES_1 =
|
||||
x3_ssh_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1)
|
||||
x3_ssh_LINK = $(CXXLD) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
AM_V_P = $(am__v_P_$(V))
|
||||
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_$(V))
|
||||
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_$(V))
|
||||
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
DEFAULT_INCLUDES = -I.
|
||||
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/x3_ssh-key_store.Po \
|
||||
./$(DEPDIR)/x3_ssh-main.Po ./$(DEPDIR)/x3_ssh-server_store.Po \
|
||||
./$(DEPDIR)/x3_ssh-ssh_client.Po \
|
||||
./$(DEPDIR)/x3_ssh-ssh_terminal.Po
|
||||
am__mv = mv -f
|
||||
AM_V_lt = $(am__v_lt_$(V))
|
||||
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_lt_0 = --silent
|
||||
am__v_lt_1 =
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
AM_V_CXX = $(am__v_CXX_$(V))
|
||||
am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_CXX_0 = @echo " CXX " $@;
|
||||
am__v_CXX_1 =
|
||||
CXXLD = $(CXX)
|
||||
CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
||||
-o $@
|
||||
AM_V_CXXLD = $(am__v_CXXLD_$(V))
|
||||
am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
|
||||
am__v_CXXLD_0 = @echo " CXXLD " $@;
|
||||
am__v_CXXLD_1 =
|
||||
SOURCES = $(x3_ssh_SOURCES)
|
||||
DIST_SOURCES = $(x3_ssh_SOURCES)
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__uninstall_files_from_dir = { \
|
||||
{ test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \
|
||||
}
|
||||
DATA = $(dist_icons_DATA)
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
# *not* preserved.
|
||||
am__uniquify_input = $(AWK) '\
|
||||
BEGIN { nonempty = 0; } \
|
||||
{ items[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in items) print i; }; } \
|
||||
'
|
||||
# Make sure the list of sources is unique. This is necessary because,
|
||||
# e.g., the same source file might be shared among _SOURCES variables
|
||||
# for different programs/libraries.
|
||||
am__define_uniq_tagged_files = \
|
||||
list='$(am__tagged_files)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in \
|
||||
$(top_srcdir)/build-aux/depcomp
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = ${SHELL} '/home/administrator/Programms/ssh/x3-ssh/build-aux/missing' aclocal-1.18
|
||||
AMTAR = $${TAR-tar}
|
||||
AM_DEFAULT_VERBOSITY = 1
|
||||
AUTOCONF = ${SHELL} '/home/administrator/Programms/ssh/x3-ssh/build-aux/missing' autoconf
|
||||
AUTOHEADER = ${SHELL} '/home/administrator/Programms/ssh/x3-ssh/build-aux/missing' autoheader
|
||||
AUTOMAKE = ${SHELL} '/home/administrator/Programms/ssh/x3-ssh/build-aux/missing' automake-1.18
|
||||
AWK = gawk
|
||||
CPPFLAGS =
|
||||
CSCOPE = cscope
|
||||
CTAGS = ctags
|
||||
CXX = g++ -std=gnu++17
|
||||
CXXDEPMODE = depmode=gcc3
|
||||
CXXFLAGS = -g -O2
|
||||
CYGPATH_W = echo
|
||||
DEFS = -DPACKAGE_NAME=\"x3-ssh\" -DPACKAGE_TARNAME=\"x3-ssh\" -DPACKAGE_VERSION=\"1.0.0\" -DPACKAGE_STRING=\"x3-ssh\ 1.0.0\" -DPACKAGE_BUGREPORT=\"x3@sysdaemon.xyz\" -DPACKAGE_URL=\"\" -DPACKAGE=\"x3-ssh\" -DVERSION=\"1.0.0\" -DHAVE_CXX17=1
|
||||
DEPDIR = .deps
|
||||
ECHO_C =
|
||||
ECHO_N = -n
|
||||
ECHO_T =
|
||||
ETAGS = etags
|
||||
EXEEXT =
|
||||
GTK_CFLAGS = -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glycin-2 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/atk-1.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/fribidi -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/sysprof-6 -pthread
|
||||
GTK_LIBS = -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lcairo-gobject -lgdk_pixbuf-2.0 -latk-1.0 -lpango-1.0 -lcairo -lharfbuzz -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lz
|
||||
HAVE_CXX17 = 1
|
||||
INSTALL = /usr/bin/install -c
|
||||
INSTALL_DATA = ${INSTALL} -m 644
|
||||
INSTALL_PROGRAM = ${INSTALL}
|
||||
INSTALL_SCRIPT = ${INSTALL}
|
||||
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
|
||||
LDFLAGS =
|
||||
LIBOBJS =
|
||||
LIBS =
|
||||
LIBSSH_CFLAGS =
|
||||
LIBSSH_LIBS = -lssh
|
||||
LTLIBOBJS =
|
||||
MAKEINFO = ${SHELL} '/home/administrator/Programms/ssh/x3-ssh/build-aux/missing' makeinfo
|
||||
MKDIR_P = /usr/bin/mkdir -p
|
||||
OBJEXT = o
|
||||
PACKAGE = x3-ssh
|
||||
PACKAGE_BUGREPORT = x3@sysdaemon.xyz
|
||||
PACKAGE_NAME = x3-ssh
|
||||
PACKAGE_STRING = x3-ssh 1.0.0
|
||||
PACKAGE_TARNAME = x3-ssh
|
||||
PACKAGE_URL =
|
||||
PACKAGE_VERSION = 1.0.0
|
||||
PATH_SEPARATOR = :
|
||||
PKG_CONFIG = /usr/bin/pkg-config
|
||||
PKG_CONFIG_LIBDIR =
|
||||
PKG_CONFIG_PATH =
|
||||
SET_MAKE =
|
||||
SHELL = /bin/bash
|
||||
STRIP =
|
||||
VERSION = 1.0.0
|
||||
VTE_CFLAGS = -I/usr/include/vte-2.91 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glycin-2 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/atk-1.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/fribidi -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/sysprof-6 -pthread
|
||||
VTE_LIBS = -lvte-2.91 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lcairo-gobject -lgdk_pixbuf-2.0 -latk-1.0 -lpango-1.0 -lcairo -lharfbuzz -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lz
|
||||
abs_builddir = /home/administrator/Programms/ssh/x3-ssh/src
|
||||
abs_srcdir = /home/administrator/Programms/ssh/x3-ssh/src
|
||||
abs_top_builddir = /home/administrator/Programms/ssh/x3-ssh
|
||||
abs_top_srcdir = /home/administrator/Programms/ssh/x3-ssh
|
||||
ac_ct_CXX = g++
|
||||
am__include = include
|
||||
am__leading_dot = .
|
||||
am__quote =
|
||||
am__rm_f_notfound =
|
||||
am__tar = tar --format=ustar -chf - "$$tardir"
|
||||
am__untar = tar -xf -
|
||||
am__xargs_n = xargs -n
|
||||
bindir = ${exec_prefix}/bin
|
||||
build_alias =
|
||||
builddir = .
|
||||
datadir = ${datarootdir}
|
||||
datarootdir = ${prefix}/share
|
||||
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
|
||||
dvidir = ${docdir}
|
||||
exec_prefix = ${prefix}
|
||||
host_alias =
|
||||
htmldir = ${docdir}
|
||||
includedir = ${prefix}/include
|
||||
infodir = ${datarootdir}/info
|
||||
install_sh = ${SHELL} /home/administrator/Programms/ssh/x3-ssh/build-aux/install-sh
|
||||
libdir = ${exec_prefix}/lib
|
||||
libexecdir = ${exec_prefix}/libexec
|
||||
localedir = ${datarootdir}/locale
|
||||
localstatedir = ${prefix}/var
|
||||
mandir = ${datarootdir}/man
|
||||
mkdir_p = $(MKDIR_P)
|
||||
oldincludedir = /usr/include
|
||||
pdfdir = ${docdir}
|
||||
prefix = /usr/local
|
||||
program_transform_name = s,x,x,
|
||||
psdir = ${docdir}
|
||||
runstatedir = ${localstatedir}/run
|
||||
sbindir = ${exec_prefix}/sbin
|
||||
sharedstatedir = ${prefix}/com
|
||||
srcdir = .
|
||||
sysconfdir = ${prefix}/etc
|
||||
target_alias =
|
||||
top_build_prefix = ../
|
||||
top_builddir = ..
|
||||
top_srcdir = ..
|
||||
x3_ssh_SOURCES = \
|
||||
main.cpp \
|
||||
ssh_terminal.cpp \
|
||||
server_store.cpp \
|
||||
ssh_client.cpp \
|
||||
key_store.cpp
|
||||
|
||||
x3_ssh_CXXFLAGS = \
|
||||
-std=c++17 \
|
||||
$(GTK_CFLAGS) \
|
||||
$(VTE_CFLAGS) \
|
||||
$(LIBSSH_CFLAGS) \
|
||||
-DLOCALEDIR=\"$(localedir)\" \
|
||||
-DICONDIR=\"$(datadir)/icons\"
|
||||
|
||||
x3_ssh_LDADD = \
|
||||
$(GTK_LIBS) \
|
||||
$(VTE_LIBS) \
|
||||
$(LIBSSH_LIBS)
|
||||
|
||||
iconsdir = $(datadir)/icons
|
||||
dist_icons_DATA = ../icons/x3-ssh.png
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .cpp .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign src/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed 's/$(EXEEXT)$$//' | \
|
||||
while read p p1; do if test -f $$p \
|
||||
; then echo "$$p"; echo "$$p"; else :; fi; \
|
||||
done | \
|
||||
sed -e 'p;s,.*/,,;n;h' \
|
||||
-e 's|.*|.|' \
|
||||
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
|
||||
sed 'N;N;N;s,\n, ,g' | \
|
||||
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
|
||||
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||
if ($$2 == $$4) files[d] = files[d] " " $$1; \
|
||||
else { print "f", $$3 "/" $$4, $$1; } } \
|
||||
END { for (d in files) print "f", d, files[d] }' | \
|
||||
while read type dir files; do \
|
||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
|
||||
} \
|
||||
; done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||
-e 's/$$/$(EXEEXT)/' \
|
||||
`; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(bindir)" && $(am__rm_f) $$files
|
||||
|
||||
clean-binPROGRAMS:
|
||||
-$(am__rm_f) $(bin_PROGRAMS)
|
||||
|
||||
x3-ssh$(EXEEXT): $(x3_ssh_OBJECTS) $(x3_ssh_DEPENDENCIES) $(EXTRA_x3_ssh_DEPENDENCIES)
|
||||
@rm -f x3-ssh$(EXEEXT)
|
||||
$(AM_V_CXXLD)$(x3_ssh_LINK) $(x3_ssh_OBJECTS) $(x3_ssh_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
include ./$(DEPDIR)/x3_ssh-key_store.Po # am--include-marker
|
||||
include ./$(DEPDIR)/x3_ssh-main.Po # am--include-marker
|
||||
include ./$(DEPDIR)/x3_ssh-server_store.Po # am--include-marker
|
||||
include ./$(DEPDIR)/x3_ssh-ssh_client.Po # am--include-marker
|
||||
include ./$(DEPDIR)/x3_ssh-ssh_terminal.Po # am--include-marker
|
||||
|
||||
$(am__depfiles_remade):
|
||||
@$(MKDIR_P) $(@D)
|
||||
@: >>$@
|
||||
|
||||
am--depfiles: $(am__depfiles_remade)
|
||||
|
||||
.cpp.o:
|
||||
$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
||||
$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||
$(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
# $(AM_V_CXX)source='$<' object='$@' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ $<
|
||||
|
||||
.cpp.obj:
|
||||
$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
|
||||
$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
|
||||
$(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
# $(AM_V_CXX)source='$<' object='$@' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
x3_ssh-main.o: main.cpp
|
||||
$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-main.o -MD -MP -MF $(DEPDIR)/x3_ssh-main.Tpo -c -o x3_ssh-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp
|
||||
$(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-main.Tpo $(DEPDIR)/x3_ssh-main.Po
|
||||
# $(AM_V_CXX)source='main.cpp' object='x3_ssh-main.o' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CXX_no)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp
|
||||
|
||||
x3_ssh-main.obj: main.cpp
|
||||
$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-main.obj -MD -MP -MF $(DEPDIR)/x3_ssh-main.Tpo -c -o x3_ssh-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi`
|
||||
$(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-main.Tpo $(DEPDIR)/x3_ssh-main.Po
|
||||
# $(AM_V_CXX)source='main.cpp' object='x3_ssh-main.obj' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CXX_no)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi`
|
||||
|
||||
x3_ssh-ssh_terminal.o: ssh_terminal.cpp
|
||||
$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-ssh_terminal.o -MD -MP -MF $(DEPDIR)/x3_ssh-ssh_terminal.Tpo -c -o x3_ssh-ssh_terminal.o `test -f 'ssh_terminal.cpp' || echo '$(srcdir)/'`ssh_terminal.cpp
|
||||
$(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-ssh_terminal.Tpo $(DEPDIR)/x3_ssh-ssh_terminal.Po
|
||||
# $(AM_V_CXX)source='ssh_terminal.cpp' object='x3_ssh-ssh_terminal.o' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CXX_no)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-ssh_terminal.o `test -f 'ssh_terminal.cpp' || echo '$(srcdir)/'`ssh_terminal.cpp
|
||||
|
||||
x3_ssh-ssh_terminal.obj: ssh_terminal.cpp
|
||||
$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-ssh_terminal.obj -MD -MP -MF $(DEPDIR)/x3_ssh-ssh_terminal.Tpo -c -o x3_ssh-ssh_terminal.obj `if test -f 'ssh_terminal.cpp'; then $(CYGPATH_W) 'ssh_terminal.cpp'; else $(CYGPATH_W) '$(srcdir)/ssh_terminal.cpp'; fi`
|
||||
$(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-ssh_terminal.Tpo $(DEPDIR)/x3_ssh-ssh_terminal.Po
|
||||
# $(AM_V_CXX)source='ssh_terminal.cpp' object='x3_ssh-ssh_terminal.obj' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CXX_no)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-ssh_terminal.obj `if test -f 'ssh_terminal.cpp'; then $(CYGPATH_W) 'ssh_terminal.cpp'; else $(CYGPATH_W) '$(srcdir)/ssh_terminal.cpp'; fi`
|
||||
|
||||
x3_ssh-server_store.o: server_store.cpp
|
||||
$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-server_store.o -MD -MP -MF $(DEPDIR)/x3_ssh-server_store.Tpo -c -o x3_ssh-server_store.o `test -f 'server_store.cpp' || echo '$(srcdir)/'`server_store.cpp
|
||||
$(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-server_store.Tpo $(DEPDIR)/x3_ssh-server_store.Po
|
||||
# $(AM_V_CXX)source='server_store.cpp' object='x3_ssh-server_store.o' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CXX_no)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-server_store.o `test -f 'server_store.cpp' || echo '$(srcdir)/'`server_store.cpp
|
||||
|
||||
x3_ssh-server_store.obj: server_store.cpp
|
||||
$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-server_store.obj -MD -MP -MF $(DEPDIR)/x3_ssh-server_store.Tpo -c -o x3_ssh-server_store.obj `if test -f 'server_store.cpp'; then $(CYGPATH_W) 'server_store.cpp'; else $(CYGPATH_W) '$(srcdir)/server_store.cpp'; fi`
|
||||
$(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-server_store.Tpo $(DEPDIR)/x3_ssh-server_store.Po
|
||||
# $(AM_V_CXX)source='server_store.cpp' object='x3_ssh-server_store.obj' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CXX_no)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-server_store.obj `if test -f 'server_store.cpp'; then $(CYGPATH_W) 'server_store.cpp'; else $(CYGPATH_W) '$(srcdir)/server_store.cpp'; fi`
|
||||
|
||||
x3_ssh-ssh_client.o: ssh_client.cpp
|
||||
$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-ssh_client.o -MD -MP -MF $(DEPDIR)/x3_ssh-ssh_client.Tpo -c -o x3_ssh-ssh_client.o `test -f 'ssh_client.cpp' || echo '$(srcdir)/'`ssh_client.cpp
|
||||
$(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-ssh_client.Tpo $(DEPDIR)/x3_ssh-ssh_client.Po
|
||||
# $(AM_V_CXX)source='ssh_client.cpp' object='x3_ssh-ssh_client.o' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CXX_no)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-ssh_client.o `test -f 'ssh_client.cpp' || echo '$(srcdir)/'`ssh_client.cpp
|
||||
|
||||
x3_ssh-ssh_client.obj: ssh_client.cpp
|
||||
$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-ssh_client.obj -MD -MP -MF $(DEPDIR)/x3_ssh-ssh_client.Tpo -c -o x3_ssh-ssh_client.obj `if test -f 'ssh_client.cpp'; then $(CYGPATH_W) 'ssh_client.cpp'; else $(CYGPATH_W) '$(srcdir)/ssh_client.cpp'; fi`
|
||||
$(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-ssh_client.Tpo $(DEPDIR)/x3_ssh-ssh_client.Po
|
||||
# $(AM_V_CXX)source='ssh_client.cpp' object='x3_ssh-ssh_client.obj' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CXX_no)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-ssh_client.obj `if test -f 'ssh_client.cpp'; then $(CYGPATH_W) 'ssh_client.cpp'; else $(CYGPATH_W) '$(srcdir)/ssh_client.cpp'; fi`
|
||||
|
||||
x3_ssh-key_store.o: key_store.cpp
|
||||
$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-key_store.o -MD -MP -MF $(DEPDIR)/x3_ssh-key_store.Tpo -c -o x3_ssh-key_store.o `test -f 'key_store.cpp' || echo '$(srcdir)/'`key_store.cpp
|
||||
$(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-key_store.Tpo $(DEPDIR)/x3_ssh-key_store.Po
|
||||
# $(AM_V_CXX)source='key_store.cpp' object='x3_ssh-key_store.o' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CXX_no)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-key_store.o `test -f 'key_store.cpp' || echo '$(srcdir)/'`key_store.cpp
|
||||
|
||||
x3_ssh-key_store.obj: key_store.cpp
|
||||
$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-key_store.obj -MD -MP -MF $(DEPDIR)/x3_ssh-key_store.Tpo -c -o x3_ssh-key_store.obj `if test -f 'key_store.cpp'; then $(CYGPATH_W) 'key_store.cpp'; else $(CYGPATH_W) '$(srcdir)/key_store.cpp'; fi`
|
||||
$(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-key_store.Tpo $(DEPDIR)/x3_ssh-key_store.Po
|
||||
# $(AM_V_CXX)source='key_store.cpp' object='x3_ssh-key_store.obj' libtool=no \
|
||||
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
|
||||
# $(AM_V_CXX_no)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-key_store.obj `if test -f 'key_store.cpp'; then $(CYGPATH_W) 'key_store.cpp'; else $(CYGPATH_W) '$(srcdir)/key_store.cpp'; fi`
|
||||
install-dist_iconsDATA: $(dist_icons_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(dist_icons_DATA)'; test -n "$(iconsdir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-dist_iconsDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(dist_icons_DATA)'; test -n "$(iconsdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir)
|
||||
|
||||
ID: $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); mkid -fID $$unique
|
||||
tags: tags-am
|
||||
TAGS: tags
|
||||
|
||||
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
$(am__define_uniq_tagged_files); \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: ctags-am
|
||||
|
||||
CTAGS: ctags
|
||||
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
cscopelist: cscopelist-am
|
||||
|
||||
cscopelist-am: $(am__tagged_files)
|
||||
list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(PROGRAMS) $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(iconsdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-$(am__rm_f) $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-key_store.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-main.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-server_store.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-ssh_client.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-ssh_terminal.Po
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-dist_iconsDATA
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-binPROGRAMS
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-key_store.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-main.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-server_store.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-ssh_client.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-ssh_terminal.Po
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-binPROGRAMS uninstall-dist_iconsDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
|
||||
clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \
|
||||
distclean distclean-compile distclean-generic distclean-tags \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-binPROGRAMS install-data install-data-am \
|
||||
install-dist_iconsDATA install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
|
||||
uninstall-am uninstall-binPROGRAMS uninstall-dist_iconsDATA
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
||||
# Tell GNU make to disable its built-in pattern rules.
|
||||
%:: %,v
|
||||
%:: RCS/%,v
|
||||
%:: RCS/%
|
||||
%:: s.%
|
||||
%:: SCCS/s.%
|
||||
+759
@@ -0,0 +1,759 @@
|
||||
# Makefile.in generated by automake 1.18.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994-2025 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__is_gnu_make = { \
|
||||
if test -z '$(MAKELEVEL)'; then \
|
||||
false; \
|
||||
elif test -n '$(MAKE_HOST)'; then \
|
||||
true; \
|
||||
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||
true; \
|
||||
else \
|
||||
false; \
|
||||
fi; \
|
||||
}
|
||||
am__make_running_with_option = \
|
||||
case $${target_option-} in \
|
||||
?) ;; \
|
||||
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||
"target option '$${target_option-}' specified" >&2; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
has_opt=no; \
|
||||
sane_makeflags=$$MAKEFLAGS; \
|
||||
if $(am__is_gnu_make); then \
|
||||
sane_makeflags=$$MFLAGS; \
|
||||
else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
bs=\\; \
|
||||
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
fi; \
|
||||
skip_next=no; \
|
||||
strip_trailopt () \
|
||||
{ \
|
||||
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
}; \
|
||||
for flg in $$sane_makeflags; do \
|
||||
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
case $$flg in \
|
||||
*=*|--*) continue;; \
|
||||
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
-*I?*) strip_trailopt 'I';; \
|
||||
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
-*O?*) strip_trailopt 'O';; \
|
||||
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
-*l?*) strip_trailopt 'l';; \
|
||||
-[dEDm]) skip_next=yes;; \
|
||||
-[JT]) skip_next=yes;; \
|
||||
esac; \
|
||||
case $$flg in \
|
||||
*$$target_option*) has_opt=yes; break;; \
|
||||
esac; \
|
||||
done; \
|
||||
test $$has_opt = yes
|
||||
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
am__rm_f = rm -f $(am__rm_f_notfound)
|
||||
am__rm_rf = rm -rf $(am__rm_f_notfound)
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
bin_PROGRAMS = x3-ssh$(EXEEXT)
|
||||
subdir = src
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(dist_icons_DATA) \
|
||||
$(am__DIST_COMMON)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(iconsdir)"
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am_x3_ssh_OBJECTS = x3_ssh-main.$(OBJEXT) \
|
||||
x3_ssh-ssh_terminal.$(OBJEXT) x3_ssh-server_store.$(OBJEXT) \
|
||||
x3_ssh-ssh_client.$(OBJEXT) x3_ssh-key_store.$(OBJEXT)
|
||||
x3_ssh_OBJECTS = $(am_x3_ssh_OBJECTS)
|
||||
am__DEPENDENCIES_1 =
|
||||
x3_ssh_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1)
|
||||
x3_ssh_LINK = $(CXXLD) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
AM_V_P = $(am__v_P_@AM_V@)
|
||||
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
am__v_P_0 = false
|
||||
am__v_P_1 = :
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
am__v_GEN_1 =
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
am__v_at_1 =
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@
|
||||
depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/x3_ssh-key_store.Po \
|
||||
./$(DEPDIR)/x3_ssh-main.Po ./$(DEPDIR)/x3_ssh-server_store.Po \
|
||||
./$(DEPDIR)/x3_ssh-ssh_client.Po \
|
||||
./$(DEPDIR)/x3_ssh-ssh_terminal.Po
|
||||
am__mv = mv -f
|
||||
AM_V_lt = $(am__v_lt_@AM_V@)
|
||||
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
||||
am__v_lt_0 = --silent
|
||||
am__v_lt_1 =
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
AM_V_CXX = $(am__v_CXX_@AM_V@)
|
||||
am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
|
||||
am__v_CXX_0 = @echo " CXX " $@;
|
||||
am__v_CXX_1 =
|
||||
CXXLD = $(CXX)
|
||||
CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
||||
-o $@
|
||||
AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
|
||||
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
|
||||
am__v_CXXLD_0 = @echo " CXXLD " $@;
|
||||
am__v_CXXLD_1 =
|
||||
SOURCES = $(x3_ssh_SOURCES)
|
||||
DIST_SOURCES = $(x3_ssh_SOURCES)
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__uninstall_files_from_dir = { \
|
||||
{ test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \
|
||||
}
|
||||
DATA = $(dist_icons_DATA)
|
||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
# Read a list of newline-separated strings from the standard input,
|
||||
# and print each of them once, without duplicates. Input order is
|
||||
# *not* preserved.
|
||||
am__uniquify_input = $(AWK) '\
|
||||
BEGIN { nonempty = 0; } \
|
||||
{ items[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in items) print i; }; } \
|
||||
'
|
||||
# Make sure the list of sources is unique. This is necessary because,
|
||||
# e.g., the same source file might be shared among _SOURCES variables
|
||||
# for different programs/libraries.
|
||||
am__define_uniq_tagged_files = \
|
||||
list='$(am__tagged_files)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | $(am__uniquify_input)`
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in \
|
||||
$(top_srcdir)/build-aux/depcomp
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CSCOPE = @CSCOPE@
|
||||
CTAGS = @CTAGS@
|
||||
CXX = @CXX@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
ETAGS = @ETAGS@
|
||||
EXEEXT = @EXEEXT@
|
||||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
HAVE_CXX17 = @HAVE_CXX17@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBSSH_CFLAGS = @LIBSSH_CFLAGS@
|
||||
LIBSSH_LIBS = @LIBSSH_LIBS@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VTE_CFLAGS = @VTE_CFLAGS@
|
||||
VTE_LIBS = @VTE_LIBS@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__rm_f_notfound = @am__rm_f_notfound@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
am__xargs_n = @am__xargs_n@
|
||||
bindir = @bindir@
|
||||
build_alias = @build_alias@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host_alias = @host_alias@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
runstatedir = @runstatedir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
x3_ssh_SOURCES = \
|
||||
main.cpp \
|
||||
ssh_terminal.cpp \
|
||||
server_store.cpp \
|
||||
ssh_client.cpp \
|
||||
key_store.cpp
|
||||
|
||||
x3_ssh_CXXFLAGS = \
|
||||
-std=c++17 \
|
||||
$(GTK_CFLAGS) \
|
||||
$(VTE_CFLAGS) \
|
||||
$(LIBSSH_CFLAGS) \
|
||||
-DLOCALEDIR=\"$(localedir)\" \
|
||||
-DICONDIR=\"$(datadir)/icons\"
|
||||
|
||||
x3_ssh_LDADD = \
|
||||
$(GTK_LIBS) \
|
||||
$(VTE_LIBS) \
|
||||
$(LIBSSH_LIBS)
|
||||
|
||||
iconsdir = $(datadir)/icons
|
||||
dist_icons_DATA = ../icons/x3-ssh.png
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .cpp .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign src/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed 's/$(EXEEXT)$$//' | \
|
||||
while read p p1; do if test -f $$p \
|
||||
; then echo "$$p"; echo "$$p"; else :; fi; \
|
||||
done | \
|
||||
sed -e 'p;s,.*/,,;n;h' \
|
||||
-e 's|.*|.|' \
|
||||
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
|
||||
sed 'N;N;N;s,\n, ,g' | \
|
||||
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
|
||||
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||
if ($$2 == $$4) files[d] = files[d] " " $$1; \
|
||||
else { print "f", $$3 "/" $$4, $$1; } } \
|
||||
END { for (d in files) print "f", d, files[d] }' | \
|
||||
while read type dir files; do \
|
||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
|
||||
} \
|
||||
; done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||
-e 's/$$/$(EXEEXT)/' \
|
||||
`; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(bindir)" && $(am__rm_f) $$files
|
||||
|
||||
clean-binPROGRAMS:
|
||||
-$(am__rm_f) $(bin_PROGRAMS)
|
||||
|
||||
x3-ssh$(EXEEXT): $(x3_ssh_OBJECTS) $(x3_ssh_DEPENDENCIES) $(EXTRA_x3_ssh_DEPENDENCIES)
|
||||
@rm -f x3-ssh$(EXEEXT)
|
||||
$(AM_V_CXXLD)$(x3_ssh_LINK) $(x3_ssh_OBJECTS) $(x3_ssh_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x3_ssh-key_store.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x3_ssh-main.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x3_ssh-server_store.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x3_ssh-ssh_client.Po@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x3_ssh-ssh_terminal.Po@am__quote@ # am--include-marker
|
||||
|
||||
$(am__depfiles_remade):
|
||||
@$(MKDIR_P) $(@D)
|
||||
@: >>$@
|
||||
|
||||
am--depfiles: $(am__depfiles_remade)
|
||||
|
||||
.cpp.o:
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
||||
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
|
||||
|
||||
.cpp.obj:
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
|
||||
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
x3_ssh-main.o: main.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-main.o -MD -MP -MF $(DEPDIR)/x3_ssh-main.Tpo -c -o x3_ssh-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-main.Tpo $(DEPDIR)/x3_ssh-main.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='main.cpp' object='x3_ssh-main.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp
|
||||
|
||||
x3_ssh-main.obj: main.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-main.obj -MD -MP -MF $(DEPDIR)/x3_ssh-main.Tpo -c -o x3_ssh-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-main.Tpo $(DEPDIR)/x3_ssh-main.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='main.cpp' object='x3_ssh-main.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi`
|
||||
|
||||
x3_ssh-ssh_terminal.o: ssh_terminal.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-ssh_terminal.o -MD -MP -MF $(DEPDIR)/x3_ssh-ssh_terminal.Tpo -c -o x3_ssh-ssh_terminal.o `test -f 'ssh_terminal.cpp' || echo '$(srcdir)/'`ssh_terminal.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-ssh_terminal.Tpo $(DEPDIR)/x3_ssh-ssh_terminal.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ssh_terminal.cpp' object='x3_ssh-ssh_terminal.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-ssh_terminal.o `test -f 'ssh_terminal.cpp' || echo '$(srcdir)/'`ssh_terminal.cpp
|
||||
|
||||
x3_ssh-ssh_terminal.obj: ssh_terminal.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-ssh_terminal.obj -MD -MP -MF $(DEPDIR)/x3_ssh-ssh_terminal.Tpo -c -o x3_ssh-ssh_terminal.obj `if test -f 'ssh_terminal.cpp'; then $(CYGPATH_W) 'ssh_terminal.cpp'; else $(CYGPATH_W) '$(srcdir)/ssh_terminal.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-ssh_terminal.Tpo $(DEPDIR)/x3_ssh-ssh_terminal.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ssh_terminal.cpp' object='x3_ssh-ssh_terminal.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-ssh_terminal.obj `if test -f 'ssh_terminal.cpp'; then $(CYGPATH_W) 'ssh_terminal.cpp'; else $(CYGPATH_W) '$(srcdir)/ssh_terminal.cpp'; fi`
|
||||
|
||||
x3_ssh-server_store.o: server_store.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-server_store.o -MD -MP -MF $(DEPDIR)/x3_ssh-server_store.Tpo -c -o x3_ssh-server_store.o `test -f 'server_store.cpp' || echo '$(srcdir)/'`server_store.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-server_store.Tpo $(DEPDIR)/x3_ssh-server_store.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='server_store.cpp' object='x3_ssh-server_store.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-server_store.o `test -f 'server_store.cpp' || echo '$(srcdir)/'`server_store.cpp
|
||||
|
||||
x3_ssh-server_store.obj: server_store.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-server_store.obj -MD -MP -MF $(DEPDIR)/x3_ssh-server_store.Tpo -c -o x3_ssh-server_store.obj `if test -f 'server_store.cpp'; then $(CYGPATH_W) 'server_store.cpp'; else $(CYGPATH_W) '$(srcdir)/server_store.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-server_store.Tpo $(DEPDIR)/x3_ssh-server_store.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='server_store.cpp' object='x3_ssh-server_store.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-server_store.obj `if test -f 'server_store.cpp'; then $(CYGPATH_W) 'server_store.cpp'; else $(CYGPATH_W) '$(srcdir)/server_store.cpp'; fi`
|
||||
|
||||
x3_ssh-ssh_client.o: ssh_client.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-ssh_client.o -MD -MP -MF $(DEPDIR)/x3_ssh-ssh_client.Tpo -c -o x3_ssh-ssh_client.o `test -f 'ssh_client.cpp' || echo '$(srcdir)/'`ssh_client.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-ssh_client.Tpo $(DEPDIR)/x3_ssh-ssh_client.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ssh_client.cpp' object='x3_ssh-ssh_client.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-ssh_client.o `test -f 'ssh_client.cpp' || echo '$(srcdir)/'`ssh_client.cpp
|
||||
|
||||
x3_ssh-ssh_client.obj: ssh_client.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-ssh_client.obj -MD -MP -MF $(DEPDIR)/x3_ssh-ssh_client.Tpo -c -o x3_ssh-ssh_client.obj `if test -f 'ssh_client.cpp'; then $(CYGPATH_W) 'ssh_client.cpp'; else $(CYGPATH_W) '$(srcdir)/ssh_client.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-ssh_client.Tpo $(DEPDIR)/x3_ssh-ssh_client.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ssh_client.cpp' object='x3_ssh-ssh_client.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-ssh_client.obj `if test -f 'ssh_client.cpp'; then $(CYGPATH_W) 'ssh_client.cpp'; else $(CYGPATH_W) '$(srcdir)/ssh_client.cpp'; fi`
|
||||
|
||||
x3_ssh-key_store.o: key_store.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-key_store.o -MD -MP -MF $(DEPDIR)/x3_ssh-key_store.Tpo -c -o x3_ssh-key_store.o `test -f 'key_store.cpp' || echo '$(srcdir)/'`key_store.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-key_store.Tpo $(DEPDIR)/x3_ssh-key_store.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='key_store.cpp' object='x3_ssh-key_store.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-key_store.o `test -f 'key_store.cpp' || echo '$(srcdir)/'`key_store.cpp
|
||||
|
||||
x3_ssh-key_store.obj: key_store.cpp
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -MT x3_ssh-key_store.obj -MD -MP -MF $(DEPDIR)/x3_ssh-key_store.Tpo -c -o x3_ssh-key_store.obj `if test -f 'key_store.cpp'; then $(CYGPATH_W) 'key_store.cpp'; else $(CYGPATH_W) '$(srcdir)/key_store.cpp'; fi`
|
||||
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/x3_ssh-key_store.Tpo $(DEPDIR)/x3_ssh-key_store.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='key_store.cpp' object='x3_ssh-key_store.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x3_ssh_CXXFLAGS) $(CXXFLAGS) -c -o x3_ssh-key_store.obj `if test -f 'key_store.cpp'; then $(CYGPATH_W) 'key_store.cpp'; else $(CYGPATH_W) '$(srcdir)/key_store.cpp'; fi`
|
||||
install-dist_iconsDATA: $(dist_icons_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(dist_icons_DATA)'; test -n "$(iconsdir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \
|
||||
fi; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-dist_iconsDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(dist_icons_DATA)'; test -n "$(iconsdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir)
|
||||
|
||||
ID: $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); mkid -fID $$unique
|
||||
tags: tags-am
|
||||
TAGS: tags
|
||||
|
||||
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
$(am__define_uniq_tagged_files); \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: ctags-am
|
||||
|
||||
CTAGS: ctags
|
||||
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
$(am__define_uniq_tagged_files); \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
cscopelist: cscopelist-am
|
||||
|
||||
cscopelist-am: $(am__tagged_files)
|
||||
list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
esac; \
|
||||
for i in $$list; do \
|
||||
if test -f "$$i"; then \
|
||||
echo "$(subdir)/$$i"; \
|
||||
else \
|
||||
echo "$$sdir/$$i"; \
|
||||
fi; \
|
||||
done >> $(top_builddir)/cscope.files
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||
|
||||
distdir-am: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(PROGRAMS) $(DATA)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(iconsdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-$(am__rm_f) $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-key_store.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-main.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-server_store.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-ssh_client.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-ssh_terminal.Po
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-dist_iconsDATA
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-binPROGRAMS
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-key_store.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-main.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-server_store.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-ssh_client.Po
|
||||
-rm -f ./$(DEPDIR)/x3_ssh-ssh_terminal.Po
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-binPROGRAMS uninstall-dist_iconsDATA
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
|
||||
clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \
|
||||
distclean distclean-compile distclean-generic distclean-tags \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-binPROGRAMS install-data install-data-am \
|
||||
install-dist_iconsDATA install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
|
||||
uninstall-am uninstall-binPROGRAMS uninstall-dist_iconsDATA
|
||||
|
||||
.PRECIOUS: Makefile
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
||||
# Tell GNU make to disable its built-in pattern rules.
|
||||
%:: %,v
|
||||
%:: RCS/%,v
|
||||
%:: RCS/%
|
||||
%:: s.%
|
||||
%:: SCCS/s.%
|
||||
+169
-34
@@ -15,21 +15,36 @@ static void clear_container(GtkWidget* container) {
|
||||
g_list_free(children);
|
||||
}
|
||||
|
||||
static void refresh_server_list(GtkWidget* listbox, const std::vector<ServerConfig>& servers) {
|
||||
static void refresh_server_list_widget(GtkWidget* listbox, const std::vector<ServerConfig>& servers) {
|
||||
clear_container(listbox);
|
||||
for (const auto& s : servers) {
|
||||
std::string text = s.name + " | " + s.user + "@" + s.host + ":" + std::to_string(s.port);
|
||||
if (s.use_key) text += " [key]";
|
||||
GtkWidget* row = gtk_label_new(text.c_str());
|
||||
gtk_widget_set_halign(row, GTK_ALIGN_START);
|
||||
gtk_widget_set_margin_start(row, 8);
|
||||
gtk_widget_set_margin_top(row, 4);
|
||||
gtk_widget_set_margin_bottom(row, 4);
|
||||
gtk_list_box_insert(GTK_LIST_BOX(listbox), row, -1);
|
||||
GtkWidget* row_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 2);
|
||||
gtk_widget_set_margin_start(row_box, 8);
|
||||
gtk_widget_set_margin_end(row_box, 8);
|
||||
gtk_widget_set_margin_top(row_box, 6);
|
||||
gtk_widget_set_margin_bottom(row_box, 6);
|
||||
|
||||
GtkWidget* name_label = gtk_label_new(s.name.c_str());
|
||||
gtk_widget_set_halign(name_label, GTK_ALIGN_START);
|
||||
gtk_label_set_ellipsize(GTK_LABEL(name_label), PANGO_ELLIPSIZE_END);
|
||||
PangoAttrList* attrs = pango_attr_list_new();
|
||||
pango_attr_list_insert(attrs, pango_attr_weight_new(PANGO_WEIGHT_BOLD));
|
||||
gtk_label_set_attributes(GTK_LABEL(name_label), attrs);
|
||||
pango_attr_list_unref(attrs);
|
||||
gtk_box_pack_start(GTK_BOX(row_box), name_label, FALSE, FALSE, 0);
|
||||
|
||||
std::string detail = s.user + "@" + s.host + ":" + std::to_string(s.port);
|
||||
if (s.use_key) detail += " [key]";
|
||||
GtkWidget* detail_label = gtk_label_new(detail.c_str());
|
||||
gtk_widget_set_halign(detail_label, GTK_ALIGN_START);
|
||||
gtk_label_set_ellipsize(GTK_LABEL(detail_label), PANGO_ELLIPSIZE_END);
|
||||
gtk_box_pack_start(GTK_BOX(row_box), detail_label, FALSE, FALSE, 0);
|
||||
|
||||
gtk_list_box_insert(GTK_LIST_BOX(listbox), row_box, -1);
|
||||
}
|
||||
}
|
||||
|
||||
static void refresh_key_list(GtkWidget* listbox, const std::vector<SshKey>& keys) {
|
||||
static void refresh_key_list_widget(GtkWidget* listbox, const std::vector<SshKey>& keys) {
|
||||
clear_container(listbox);
|
||||
for (const auto& k : keys) {
|
||||
std::string text = k.name + " | " + k.fingerprint;
|
||||
@@ -47,7 +62,9 @@ static void refresh_key_list(GtkWidget* listbox, const std::vector<SshKey>& keys
|
||||
SshClientWindow::SshClientWindow()
|
||||
: window_(nullptr), notebook_(nullptr), statusbar_(nullptr),
|
||||
server_combo_(nullptr), quick_entry_(nullptr),
|
||||
user_entry_(nullptr), port_spin_(nullptr) {
|
||||
user_entry_(nullptr), port_spin_(nullptr),
|
||||
server_listbox_(nullptr), notif_revealer_(nullptr),
|
||||
notif_label_(nullptr), notif_bar_(nullptr) {
|
||||
build_ui();
|
||||
}
|
||||
|
||||
@@ -81,15 +98,45 @@ void SshClientWindow::build_ui() {
|
||||
}
|
||||
}
|
||||
|
||||
GtkWidget* vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
||||
gtk_container_add(GTK_CONTAINER(window_), vbox);
|
||||
GtkWidget* main_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
||||
gtk_container_add(GTK_CONTAINER(window_), main_vbox);
|
||||
|
||||
/* ── notification bar (top, hidden by default) ── */
|
||||
notif_bar_ = gtk_revealer_new();
|
||||
gtk_revealer_set_transition_type(GTK_REVEALER(notif_bar_), GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN);
|
||||
gtk_revealer_set_reveal_child(GTK_REVEALER(notif_bar_), FALSE);
|
||||
GtkWidget* notif_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8);
|
||||
gtk_widget_set_margin_start(notif_box, 12);
|
||||
gtk_widget_set_margin_end(notif_box, 12);
|
||||
gtk_widget_set_margin_top(notif_box, 6);
|
||||
gtk_widget_set_margin_bottom(notif_box, 6);
|
||||
notif_label_ = gtk_label_new("");
|
||||
gtk_widget_set_halign(notif_label_, GTK_ALIGN_START);
|
||||
gtk_widget_set_hexpand(notif_label_, TRUE);
|
||||
gtk_box_pack_start(GTK_BOX(notif_box), notif_label_, TRUE, TRUE, 0);
|
||||
GtkWidget* notif_close = gtk_button_new_from_icon_name("window-close", GTK_ICON_SIZE_MENU);
|
||||
gtk_widget_set_size_request(notif_close, 24, 24);
|
||||
g_signal_connect(notif_close, "clicked", G_CALLBACK(+[](GtkWidget*, gpointer d) {
|
||||
gtk_revealer_set_reveal_child(GTK_REVEALER(d), FALSE);
|
||||
}), notif_bar_);
|
||||
gtk_box_pack_end(GTK_BOX(notif_box), notif_close, FALSE, FALSE, 0);
|
||||
gtk_container_add(GTK_CONTAINER(notif_bar_), notif_box);
|
||||
/* colored background */
|
||||
GtkCssProvider* css = gtk_css_provider_new();
|
||||
gtk_css_provider_load_from_data(css, ".notif-ok { background: #2ecc71; color: #000; }"
|
||||
".notif-err { background: #e74c3c; color: #fff; }", -1, nullptr);
|
||||
GtkStyleContext* ctx = gtk_widget_get_style_context(notif_bar_);
|
||||
gtk_style_context_add_provider(ctx, GTK_STYLE_PROVIDER(css), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||
g_object_unref(css);
|
||||
gtk_box_pack_start(GTK_BOX(main_vbox), notif_bar_, FALSE, FALSE, 0);
|
||||
|
||||
/* ── toolbar ── */
|
||||
GtkWidget* toolbar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);
|
||||
gtk_widget_set_margin_start(toolbar, 6);
|
||||
gtk_widget_set_margin_end(toolbar, 6);
|
||||
gtk_widget_set_margin_top(toolbar, 4);
|
||||
gtk_widget_set_margin_bottom(toolbar, 4);
|
||||
gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(main_vbox), toolbar, FALSE, FALSE, 0);
|
||||
|
||||
server_combo_ = gtk_combo_box_text_new();
|
||||
gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(server_combo_), 0);
|
||||
@@ -115,20 +162,72 @@ void SshClientWindow::build_ui() {
|
||||
gtk_box_pack_start(GTK_BOX(toolbar), make_button("+ Tab", G_CALLBACK(on_new_tab), this), FALSE, FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(toolbar), make_button("Close Tab", G_CALLBACK(on_close_tab), this), FALSE, FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(toolbar), make_button("Disconnect", G_CALLBACK(on_disconnect), this), FALSE, FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(toolbar), make_button("Servers", G_CALLBACK(on_manage_servers), this), FALSE, FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(toolbar), make_button("Keys", G_CALLBACK(on_manage_keys), this), FALSE, FALSE, 0);
|
||||
|
||||
update_server_combo();
|
||||
|
||||
GtkWidget* sep = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
|
||||
gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(main_vbox), sep, FALSE, FALSE, 0);
|
||||
|
||||
/* ── paned: sidebar | notebook ── */
|
||||
GtkWidget* paned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL);
|
||||
gtk_box_pack_start(GTK_BOX(main_vbox), paned, TRUE, TRUE, 0);
|
||||
|
||||
/* ── sidebar: server list ── */
|
||||
GtkWidget* sidebar = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
||||
gtk_paned_pack1(GTK_PANED(paned), sidebar, FALSE, FALSE);
|
||||
gtk_widget_set_size_request(sidebar, 220, -1);
|
||||
|
||||
GtkWidget* sidebar_header = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
|
||||
gtk_widget_set_margin_start(sidebar_header, 8);
|
||||
gtk_widget_set_margin_end(sidebar_header, 4);
|
||||
gtk_widget_set_margin_top(sidebar_header, 6);
|
||||
gtk_widget_set_margin_bottom(sidebar_header, 6);
|
||||
GtkWidget* sidebar_title = gtk_label_new(nullptr);
|
||||
gtk_label_set_markup(GTK_LABEL(sidebar_title), "<b>Servers</b>");
|
||||
gtk_box_pack_start(GTK_BOX(sidebar_header), sidebar_title, TRUE, TRUE, 0);
|
||||
GtkWidget* add_srv_btn = gtk_button_new_from_icon_name("list-add", GTK_ICON_SIZE_MENU);
|
||||
gtk_widget_set_size_request(add_srv_btn, 28, 28);
|
||||
g_signal_connect(add_srv_btn, "clicked", G_CALLBACK(on_add_server), this);
|
||||
gtk_box_pack_end(GTK_BOX(sidebar_header), add_srv_btn, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(sidebar), sidebar_header, FALSE, FALSE, 0);
|
||||
|
||||
GtkWidget* sidebar_sep = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
|
||||
gtk_box_pack_start(GTK_BOX(sidebar), sidebar_sep, FALSE, FALSE, 0);
|
||||
|
||||
GtkWidget* scrolled = gtk_scrolled_window_new(nullptr, nullptr);
|
||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||
server_listbox_ = gtk_list_box_new();
|
||||
gtk_list_box_set_selection_mode(GTK_LIST_BOX(server_listbox_), GTK_SELECTION_SINGLE);
|
||||
g_signal_connect(server_listbox_, "row-activated", G_CALLBACK(on_server_row_activated), this);
|
||||
gtk_container_add(GTK_CONTAINER(scrolled), server_listbox_);
|
||||
gtk_box_pack_start(GTK_BOX(sidebar), scrolled, TRUE, TRUE, 0);
|
||||
|
||||
update_server_list();
|
||||
|
||||
/* ── notebook for terminals ── */
|
||||
notebook_ = gtk_notebook_new();
|
||||
gtk_notebook_set_scrollable(GTK_NOTEBOOK(notebook_), TRUE);
|
||||
gtk_box_pack_start(GTK_BOX(vbox), notebook_, TRUE, TRUE, 0);
|
||||
gtk_paned_pack2(GTK_PANED(paned), notebook_, TRUE, TRUE);
|
||||
|
||||
/* ── statusbar ── */
|
||||
statusbar_ = gtk_statusbar_new();
|
||||
gtk_box_pack_end(GTK_BOX(vbox), statusbar_, FALSE, FALSE, 0);
|
||||
gtk_box_pack_end(GTK_BOX(main_vbox), statusbar_, FALSE, FALSE, 0);
|
||||
}
|
||||
|
||||
void SshClientWindow::show_notification(const std::string& msg, bool is_error) {
|
||||
gtk_label_set_text(GTK_LABEL(notif_label_), msg.c_str());
|
||||
GtkStyleContext* ctx = gtk_widget_get_style_context(notif_bar_);
|
||||
gtk_style_context_remove_class(ctx, "notif-ok");
|
||||
gtk_style_context_remove_class(ctx, "notif-err");
|
||||
gtk_style_context_add_class(ctx, is_error ? "notif-err" : "notif-ok");
|
||||
gtk_revealer_set_reveal_child(GTK_REVEALER(notif_bar_), TRUE);
|
||||
|
||||
/* auto-hide after 4 seconds */
|
||||
g_timeout_add(4000, [](gpointer data) -> gboolean {
|
||||
gtk_revealer_set_reveal_child(GTK_REVEALER(data), FALSE);
|
||||
return G_SOURCE_REMOVE;
|
||||
}, notif_bar_);
|
||||
}
|
||||
|
||||
void SshClientWindow::update_server_combo() {
|
||||
@@ -141,6 +240,11 @@ void SshClientWindow::update_server_combo() {
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(server_combo_), 0);
|
||||
}
|
||||
|
||||
void SshClientWindow::update_server_list() {
|
||||
refresh_server_list_widget(server_listbox_, server_store_.servers());
|
||||
update_server_combo();
|
||||
}
|
||||
|
||||
void SshClientWindow::update_status(const std::string& msg) {
|
||||
if (!statusbar_) return;
|
||||
guint ctx_id = gtk_statusbar_get_context_id(GTK_STATUSBAR(statusbar_), "main");
|
||||
@@ -175,7 +279,6 @@ void SshClientWindow::close_tab_at(int idx) {
|
||||
GtkWidget* page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook_), idx);
|
||||
if (!page) return;
|
||||
|
||||
/* Find and disconnect the terminal first, before removing from notebook */
|
||||
SshTerminal* found = nullptr;
|
||||
for (auto it = terminals_.begin(); it != terminals_.end(); ++it) {
|
||||
if ((*it)->widget() == page) {
|
||||
@@ -190,7 +293,6 @@ void SshClientWindow::close_tab_at(int idx) {
|
||||
delete found;
|
||||
}
|
||||
|
||||
/* Now safe to remove page — no page-removed callback will cause issues */
|
||||
gtk_notebook_remove_page(GTK_NOTEBOOK(notebook_), idx);
|
||||
}
|
||||
|
||||
@@ -202,6 +304,7 @@ void SshClientWindow::disconnect() {
|
||||
if (t->widget() == page) {
|
||||
t->disconnect();
|
||||
update_status("Disconnected");
|
||||
show_notification("Server disconnected");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -229,6 +332,7 @@ void SshClientWindow::connect_to_server(const std::string& host, int port,
|
||||
bool ok = term->connect(host, port, user, keyfile, password);
|
||||
if (!ok) {
|
||||
update_status("Failed to connect to " + host);
|
||||
show_notification("Failed to connect to " + host, true);
|
||||
for (auto it = terminals_.begin(); it != terminals_.end(); ++it) {
|
||||
if (*it == term) { terminals_.erase(it); break; }
|
||||
}
|
||||
@@ -236,6 +340,7 @@ void SshClientWindow::connect_to_server(const std::string& host, int port,
|
||||
gtk_notebook_remove_page(GTK_NOTEBOOK(notebook_), idx);
|
||||
} else {
|
||||
update_status("Connected to " + user + "@" + host);
|
||||
show_notification("Server connected: " + user + "@" + host + ":" + std::to_string(port));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -267,6 +372,28 @@ void SshClientWindow::on_quick_connect(GtkWidget*, gpointer d) {
|
||||
self->show_password_dialog(host, port, u, "", host);
|
||||
}
|
||||
|
||||
/* ─── server row activated ────────────────────────────────── */
|
||||
|
||||
void SshClientWindow::on_server_row_activated(GtkListBox*, GtkListBoxRow* row, gpointer d) {
|
||||
auto* self = static_cast<SshClientWindow*>(d);
|
||||
int idx = gtk_list_box_row_get_index(row);
|
||||
if (idx < 0 || idx >= (int)self->server_store_.servers().size()) return;
|
||||
const auto& s = self->server_store_.servers()[idx];
|
||||
|
||||
if (s.use_key && !s.keyfile.empty()) {
|
||||
self->connect_to_server(s.host, s.port, s.user, s.keyfile, "", s.name);
|
||||
} else {
|
||||
self->show_password_dialog(s.host, s.port, s.user, s.keyfile, s.name);
|
||||
}
|
||||
}
|
||||
|
||||
/* ─── add server button ───────────────────────────────────── */
|
||||
|
||||
void SshClientWindow::on_add_server(GtkWidget*, gpointer d) {
|
||||
auto* self = static_cast<SshClientWindow*>(d);
|
||||
self->show_server_dialog(-1);
|
||||
}
|
||||
|
||||
/* ─── password dialog ─────────────────────────────────────── */
|
||||
|
||||
void SshClientWindow::show_password_dialog(const std::string& host, int port,
|
||||
@@ -407,7 +534,8 @@ void SshClientWindow::show_server_dialog(int edit_index) {
|
||||
if (!s.name.empty() && !s.host.empty() && !s.user.empty()) {
|
||||
if (editing) server_store_.update(edit_index, s);
|
||||
else server_store_.add(s);
|
||||
update_server_combo();
|
||||
update_server_list();
|
||||
show_notification(editing ? "Server updated: " + s.name : "Server saved: " + s.name);
|
||||
}
|
||||
}
|
||||
gtk_widget_destroy(dialog);
|
||||
@@ -438,7 +566,7 @@ void SshClientWindow::show_key_dialog() {
|
||||
gtk_container_add(GTK_CONTAINER(scrolled), listbox);
|
||||
gtk_box_pack_start(GTK_BOX(vbox), scrolled, TRUE, TRUE, 0);
|
||||
|
||||
refresh_key_list(listbox, key_store_.keys());
|
||||
refresh_key_list_widget(listbox, key_store_.keys());
|
||||
|
||||
GtkWidget* hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
|
||||
GtkWidget* gen_btn = gtk_button_new_with_label("Generate New Key");
|
||||
@@ -484,8 +612,9 @@ void SshClientWindow::show_key_dialog() {
|
||||
int bits = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(bs));
|
||||
if (name && *name) {
|
||||
c->self->key_store_.generate_keypair(name, bits);
|
||||
c->self->update_server_combo();
|
||||
refresh_key_list(c->listbox, c->self->key_store_.keys());
|
||||
c->self->update_server_list();
|
||||
refresh_key_list_widget(c->listbox, c->self->key_store_.keys());
|
||||
c->self->show_notification("Key generated: " + std::string(name));
|
||||
}
|
||||
}
|
||||
gtk_widget_destroy(dlg);
|
||||
@@ -529,7 +658,8 @@ void SshClientWindow::show_key_dialog() {
|
||||
const char* name = gtk_entry_get_text(GTK_ENTRY(ne));
|
||||
if (name && *name) {
|
||||
c->self->key_store_.import_key(name, path);
|
||||
refresh_key_list(c->listbox, c->self->key_store_.keys());
|
||||
refresh_key_list_widget(c->listbox, c->self->key_store_.keys());
|
||||
c->self->show_notification("Key imported: " + std::string(name));
|
||||
}
|
||||
}
|
||||
gtk_widget_destroy(dlg);
|
||||
@@ -545,8 +675,10 @@ void SshClientWindow::show_key_dialog() {
|
||||
if (!row) return;
|
||||
int idx = gtk_list_box_row_get_index(row);
|
||||
if (idx >= 0 && idx < (int)c->self->key_store_.keys().size()) {
|
||||
std::string name = c->self->key_store_.keys()[idx].name;
|
||||
c->self->key_store_.remove(idx);
|
||||
refresh_key_list(c->listbox, c->self->key_store_.keys());
|
||||
refresh_key_list_widget(c->listbox, c->self->key_store_.keys());
|
||||
c->self->show_notification("Key deleted: " + name);
|
||||
}
|
||||
}), ctx);
|
||||
|
||||
@@ -585,7 +717,7 @@ void SshClientWindow::on_manage_servers(GtkWidget*, gpointer d) {
|
||||
gtk_container_add(GTK_CONTAINER(scrolled), listbox);
|
||||
gtk_box_pack_start(GTK_BOX(vbox), scrolled, TRUE, TRUE, 0);
|
||||
|
||||
refresh_server_list(listbox, self->server_store_.servers());
|
||||
refresh_server_list_widget(listbox, self->server_store_.servers());
|
||||
|
||||
GtkWidget* hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
|
||||
GtkWidget* add_btn = gtk_button_new_with_label("Add");
|
||||
@@ -601,8 +733,8 @@ void SshClientWindow::on_manage_servers(GtkWidget*, gpointer d) {
|
||||
g_signal_connect(add_btn, "clicked", G_CALLBACK(+[](GtkWidget*, gpointer d) {
|
||||
auto* c = static_cast<SrvCtx*>(d);
|
||||
c->self->show_server_dialog(-1);
|
||||
c->self->update_server_combo();
|
||||
refresh_server_list(c->listbox, c->self->server_store_.servers());
|
||||
c->self->update_server_list();
|
||||
refresh_server_list_widget(c->listbox, c->self->server_store_.servers());
|
||||
}), ctx);
|
||||
|
||||
g_signal_connect(edit_btn, "clicked", G_CALLBACK(+[](GtkWidget*, gpointer d) {
|
||||
@@ -612,8 +744,8 @@ void SshClientWindow::on_manage_servers(GtkWidget*, gpointer d) {
|
||||
int idx = gtk_list_box_row_get_index(row);
|
||||
if (idx >= 0 && idx < (int)c->self->server_store_.servers().size()) {
|
||||
c->self->show_server_dialog(idx);
|
||||
c->self->update_server_combo();
|
||||
refresh_server_list(c->listbox, c->self->server_store_.servers());
|
||||
c->self->update_server_list();
|
||||
refresh_server_list_widget(c->listbox, c->self->server_store_.servers());
|
||||
}
|
||||
}), ctx);
|
||||
|
||||
@@ -623,9 +755,11 @@ void SshClientWindow::on_manage_servers(GtkWidget*, gpointer d) {
|
||||
if (!row) return;
|
||||
int idx = gtk_list_box_row_get_index(row);
|
||||
if (idx >= 0 && idx < (int)c->self->server_store_.servers().size()) {
|
||||
std::string name = c->self->server_store_.servers()[idx].name;
|
||||
c->self->server_store_.remove(idx);
|
||||
c->self->update_server_combo();
|
||||
refresh_server_list(c->listbox, c->self->server_store_.servers());
|
||||
c->self->update_server_list();
|
||||
refresh_server_list_widget(c->listbox, c->self->server_store_.servers());
|
||||
c->self->show_notification("Server removed: " + name);
|
||||
}
|
||||
}), ctx);
|
||||
|
||||
@@ -634,7 +768,7 @@ void SshClientWindow::on_manage_servers(GtkWidget*, gpointer d) {
|
||||
gtk_dialog_run(GTK_DIALOG(dialog));
|
||||
delete ctx;
|
||||
gtk_widget_destroy(dialog);
|
||||
self->update_server_combo();
|
||||
self->update_server_list();
|
||||
}
|
||||
|
||||
/* ─── callbacks ───────────────────────────────────────────── */
|
||||
@@ -664,5 +798,6 @@ void SshClientWindow::on_manage_keys(GtkWidget*, gpointer d) {
|
||||
|
||||
void SshClientWindow::run() {
|
||||
gtk_widget_show_all(window_);
|
||||
gtk_revealer_set_reveal_child(GTK_REVEALER(notif_bar_), FALSE);
|
||||
gtk_main();
|
||||
}
|
||||
|
||||
@@ -29,7 +29,9 @@ private:
|
||||
void show_password_dialog(const std::string& host, int port, const std::string& user,
|
||||
const std::string& keyfile, const std::string& name);
|
||||
void update_server_combo();
|
||||
void update_server_list();
|
||||
void update_status(const std::string& msg);
|
||||
void show_notification(const std::string& msg, bool is_error = false);
|
||||
|
||||
static void on_new_tab(GtkWidget* w, gpointer d);
|
||||
static void on_close_tab(GtkWidget* w, gpointer d);
|
||||
@@ -38,6 +40,8 @@ private:
|
||||
static void on_manage_servers(GtkWidget* w, gpointer d);
|
||||
static void on_manage_keys(GtkWidget* w, gpointer d);
|
||||
static void on_quick_connect(GtkWidget* w, gpointer d);
|
||||
static void on_add_server(GtkWidget* w, gpointer d);
|
||||
static void on_server_row_activated(GtkListBox* list, GtkListBoxRow* row, gpointer d);
|
||||
|
||||
GtkWidget* window_;
|
||||
GtkWidget* notebook_;
|
||||
@@ -46,6 +50,10 @@ private:
|
||||
GtkWidget* quick_entry_;
|
||||
GtkWidget* user_entry_;
|
||||
GtkWidget* port_spin_;
|
||||
GtkWidget* server_listbox_;
|
||||
GtkWidget* notif_revealer_;
|
||||
GtkWidget* notif_label_;
|
||||
GtkWidget* notif_bar_;
|
||||
|
||||
ServerStore server_store_;
|
||||
KeyStore key_store_;
|
||||
|
||||
Reference in New Issue
Block a user