2002-03-16 18:49:28 +03:00
|
|
|
# -*- makefile -*-
|
|
|
|
#
|
|
|
|
# This file describes which PuTTY programs are made up from which
|
|
|
|
# object and resource files. It is processed into the various
|
|
|
|
# Makefiles by means of a Perl script. Makefile changes should
|
|
|
|
# really be made by editing this file and/or the Perl script, not
|
|
|
|
# by editing the actual Makefiles.
|
|
|
|
|
2004-04-25 13:04:38 +04:00
|
|
|
# ------------------------------------------------------------
|
|
|
|
# Top-level configuration.
|
|
|
|
|
|
|
|
# Overall project name.
|
|
|
|
!name putty
|
|
|
|
# Locations and types of output Makefiles.
|
2004-11-17 01:14:56 +03:00
|
|
|
!makefile vc windows/Makefile.vc
|
|
|
|
!makefile vcproj windows/MSVC
|
|
|
|
!makefile cygwin windows/Makefile.cyg
|
|
|
|
!makefile borland windows/Makefile.bor
|
|
|
|
!makefile lcc windows/Makefile.lcc
|
2004-04-25 13:04:38 +04:00
|
|
|
!makefile gtk unix/Makefile.gtk
|
2009-05-11 22:48:43 +04:00
|
|
|
!makefile unix unix/Makefile.ux
|
Switch to using automake for the Unix autoconfigured build.
mkfiles.pl no longer generates a Makefile.in, but instead generates a
Makefile.am on which mkauto.sh runs automake. This means that the
autoconfigured makefile now does build-time dependency tracking (a
standard feature of automake-generated makefiles), and is generally
more like what Unix people will expect.
Some of the old-style make command-line settings (VER=-DRELEASE=foo,
XFLAGS=-DDEBUG) will still work; the COMPAT settings are better done
by autoconfiguration, and my habitual 'XFLAGS="-g -O0"' for an easily
debuggable build will actually not work any more because CFLAGS is
specified _after_ XFLAGS, so I should instead write 'make CFLAGS=-O0'
(-g is the default in automake, removed at 'make install' time).
The new makefile will automatically degrade into one that builds the
command-line tools only, in the case where GTK could not be found. In
principle, therefore, it should be an adequate replacement for _both_
the static Unix makefiles, Makefile.gtk and Makefile.ux. I haven't
actually retired those in this commit, but I'm pretty tempted.
[originally from svn r9239]
2011-07-23 15:33:29 +04:00
|
|
|
!makefile am unix/Makefile.am
|
2005-02-16 00:45:50 +03:00
|
|
|
!makefile osx macosx/Makefile
|
2005-08-23 00:37:13 +04:00
|
|
|
!makefile devcppproj windows/DEVCPP
|
2004-04-25 13:26:52 +04:00
|
|
|
# Source directories.
|
|
|
|
!srcdir charset/
|
2004-11-17 01:14:56 +03:00
|
|
|
!srcdir windows/
|
2004-04-25 13:26:52 +04:00
|
|
|
!srcdir unix/
|
2005-02-16 00:45:50 +03:00
|
|
|
!srcdir macosx/
|
2004-04-25 13:04:38 +04:00
|
|
|
|
2002-03-16 18:49:28 +03:00
|
|
|
# Help text added to the top of each Makefile, with /D converted
|
|
|
|
# into -D as appropriate for the particular Makefile.
|
|
|
|
|
|
|
|
!begin help
|
|
|
|
#
|
|
|
|
# Extra options you can set:
|
|
|
|
#
|
2005-10-04 18:13:28 +04:00
|
|
|
# - VER="/DSNAPSHOT=1999-01-25 /DSVN_REV=1234"
|
2002-03-16 18:49:28 +03:00
|
|
|
# Generates executables whose About box report them as being a
|
2005-10-04 18:13:28 +04:00
|
|
|
# development snapshot. SVN_REV is a Subversion revision number.
|
2002-03-16 18:49:28 +03:00
|
|
|
#
|
|
|
|
# - VER=/DRELEASE=0.43
|
|
|
|
# Generates executables whose About box report them as being a
|
|
|
|
# release version.
|
|
|
|
#
|
2005-05-21 18:35:21 +04:00
|
|
|
# - COMPAT=/DAUTO_WINSOCK (Windows only)
|
2002-03-16 18:49:28 +03:00
|
|
|
# Causes PuTTY to assume that <windows.h> includes its own WinSock
|
|
|
|
# header file, so that it won't try to include <winsock.h>.
|
|
|
|
#
|
2005-05-21 18:35:21 +04:00
|
|
|
# - COMPAT=/DWINSOCK_TWO (Windows only)
|
2002-03-16 18:49:28 +03:00
|
|
|
# Causes the PuTTY utilities to include <winsock2.h> instead of
|
|
|
|
# <winsock.h>, except Plink which _needs_ WinSock 2 so it already
|
|
|
|
# does this.
|
|
|
|
#
|
2005-05-21 18:35:21 +04:00
|
|
|
# - COMPAT=/DNO_SECURITY (Windows only)
|
2002-03-16 18:49:28 +03:00
|
|
|
# Disables Pageant's use of <aclapi.h>, which is not available
|
2003-06-22 01:19:21 +04:00
|
|
|
# with some development environments (such as older versions of
|
|
|
|
# the Cygwin/mingw GNU toolchain). This means that Pageant
|
2002-03-16 18:49:28 +03:00
|
|
|
# won't care about the local user ID of processes accessing it; a
|
|
|
|
# version of Pageant built with this option will therefore refuse
|
|
|
|
# to run under NT-series OSes on security grounds (although it
|
|
|
|
# will run fine on Win95-series OSes where there is no access
|
|
|
|
# control anyway).
|
|
|
|
#
|
2005-05-21 18:35:21 +04:00
|
|
|
# - COMPAT=/DNO_MULTIMON (Windows only)
|
2002-03-16 18:49:28 +03:00
|
|
|
# Disables PuTTY's use of <multimon.h>, which is not available
|
|
|
|
# with some development environments. This means that PuTTY's
|
|
|
|
# full-screen mode (configurable to work on Alt-Enter) will
|
|
|
|
# not behave usefully in a multi-monitor environment.
|
|
|
|
#
|
|
|
|
# Note that this definition is always enabled in the Cygwin
|
|
|
|
# build, since at the time of writing this <multimon.h> is
|
|
|
|
# known not to be available in Cygwin.
|
|
|
|
#
|
2006-12-28 23:56:01 +03:00
|
|
|
# - COMPAT=/DNO_HTMLHELP (Windows only)
|
|
|
|
# Disables PuTTY's use of <htmlhelp.h>, which is not available
|
|
|
|
# with some development environments. The resulting binary
|
|
|
|
# will only look for an old-style WinHelp file (.HLP/.CNT), and
|
|
|
|
# will ignore any .CHM file.
|
|
|
|
#
|
|
|
|
# Note that this definition is always enabled in the Cygwin
|
|
|
|
# build, since at the time of writing this <htmlhelp.h> is
|
2007-02-11 23:27:05 +03:00
|
|
|
# known not to be available in Cygwin (although you can use
|
|
|
|
# the htmlhelp.h supplied with HTML Help Workshop).
|
2006-12-28 23:56:01 +03:00
|
|
|
#
|
2005-05-21 19:09:36 +04:00
|
|
|
# - RCFL=/DNO_MANIFESTS (Windows only)
|
2005-05-21 18:35:21 +04:00
|
|
|
# Disables inclusion of XML application manifests in the PuTTY
|
|
|
|
# binaries. This may be necessary to build for 64-bit Windows;
|
|
|
|
# the manifests are only included to use the XP GUI style on
|
|
|
|
# Windows XP, and the architecture tags are a lie on 64-bit.
|
|
|
|
#
|
2004-12-30 19:45:11 +03:00
|
|
|
# - COMPAT=/DNO_IPV6
|
|
|
|
# Disables PuTTY's ability to make IPv6 connections, enabling
|
|
|
|
# it to compile under development environments which do not
|
|
|
|
# support IPv6 in their header files.
|
|
|
|
#
|
2008-08-10 17:10:31 +04:00
|
|
|
# - COMPAT=/DNO_GSSAPI
|
|
|
|
# Disables PuTTY's ability to use GSSAPI functions for
|
|
|
|
# authentication and key exchange.
|
|
|
|
#
|
2010-05-19 22:22:17 +04:00
|
|
|
# - COMPAT=/DSTATIC_GSSAPI
|
|
|
|
# Causes PuTTY to try to link statically against the GSSAPI
|
|
|
|
# library instead of the default of doing it at run time.
|
|
|
|
#
|
2005-05-21 18:35:21 +04:00
|
|
|
# - COMPAT=/DMSVC4 (Windows only)
|
2002-03-16 18:49:28 +03:00
|
|
|
# - RCFL=/DMSVC4
|
|
|
|
# Makes a couple of minor changes so that PuTTY compiles using
|
|
|
|
# MSVC 4. You will also need /DNO_SECURITY and /DNO_MULTIMON.
|
|
|
|
#
|
2005-05-21 18:35:21 +04:00
|
|
|
# - RCFL=/DASCIICTLS (Windows only)
|
2002-03-16 18:49:28 +03:00
|
|
|
# Uses ASCII rather than Unicode to specify the tab control in
|
|
|
|
# the resource file. Probably most useful when compiling with
|
|
|
|
# Cygnus/mingw32, whose resource compiler may have less of a
|
|
|
|
# problem with it.
|
|
|
|
#
|
2012-09-19 03:05:29 +04:00
|
|
|
# - COMPAT=/DNO_SECUREZEROMEMORY (Windows only)
|
|
|
|
# Disables PuTTY's use of SecureZeroMemory(), which is missing
|
|
|
|
# from some environments' header files. This is enabled by
|
|
|
|
# default in the Cygwin Makefile.
|
|
|
|
#
|
2003-01-15 18:22:58 +03:00
|
|
|
# - XFLAGS=/DTELNET_DEFAULT
|
|
|
|
# Causes PuTTY to default to the Telnet protocol (in the absence
|
|
|
|
# of Default Settings and so on to the contrary). Normally PuTTY
|
|
|
|
# will default to SSH.
|
|
|
|
#
|
2002-03-16 18:49:28 +03:00
|
|
|
# - XFLAGS=/DDEBUG
|
|
|
|
# Causes PuTTY to enable internal debugging.
|
|
|
|
#
|
|
|
|
# - XFLAGS=/DMALLOC_LOG
|
|
|
|
# Causes PuTTY to emit a file called putty_mem.log, logging every
|
|
|
|
# memory allocation and free, so you can track memory leaks.
|
|
|
|
#
|
2005-05-21 18:35:21 +04:00
|
|
|
# - XFLAGS=/DMINEFIELD (Windows only)
|
2002-03-16 18:49:28 +03:00
|
|
|
# Causes PuTTY to use a custom memory allocator, similar in
|
|
|
|
# concept to Electric Fence, in place of regular malloc(). Wastes
|
|
|
|
# huge amounts of RAM, but should cause heap-corruption bugs to
|
|
|
|
# show up as GPFs at the point of failure rather than appearing
|
|
|
|
# later on as second-level damage.
|
|
|
|
#
|
|
|
|
!end
|
|
|
|
|
2004-04-25 13:04:38 +04:00
|
|
|
# ------------------------------------------------------------
|
|
|
|
# Additional text added verbatim to each individual Makefile.
|
|
|
|
|
|
|
|
# Hack to force version.o to be rebuilt always.
|
|
|
|
!begin vc
|
|
|
|
version.obj: *.c *.h *.rc
|
2005-01-15 21:30:05 +03:00
|
|
|
cl $(VER) $(CFLAGS) /c ..\version.c
|
2004-04-25 13:04:38 +04:00
|
|
|
!end
|
2004-11-17 01:14:56 +03:00
|
|
|
!specialobj vc version
|
2004-04-25 13:04:38 +04:00
|
|
|
!begin cygwin
|
2004-11-17 01:14:56 +03:00
|
|
|
version.o: FORCE
|
2005-01-15 21:30:05 +03:00
|
|
|
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) $(VER) -c ../version.c
|
2004-04-25 13:04:38 +04:00
|
|
|
!end
|
2004-11-17 01:14:56 +03:00
|
|
|
!specialobj cygwin version
|
2004-04-25 13:04:38 +04:00
|
|
|
!begin borland
|
|
|
|
version.obj: FORCE
|
2005-01-15 21:30:05 +03:00
|
|
|
bcc32 $(VER) $(CFLAGS) /c ..\version.c
|
2004-04-25 13:04:38 +04:00
|
|
|
!end
|
2004-11-17 01:14:56 +03:00
|
|
|
!specialobj borland version
|
2004-04-25 13:04:38 +04:00
|
|
|
!begin lcc
|
2005-02-26 00:26:30 +03:00
|
|
|
version.obj: FORCE
|
2005-01-15 21:30:05 +03:00
|
|
|
lcc $(VER) $(CFLAGS) /c ..\version.c
|
2004-04-25 13:04:38 +04:00
|
|
|
!end
|
2004-11-17 01:14:56 +03:00
|
|
|
!specialobj lcc version
|
2004-04-25 13:04:38 +04:00
|
|
|
# For Unix, we also need the gross MD5 hack that causes automatic
|
|
|
|
# version number selection in release source archives.
|
|
|
|
!begin gtk
|
2005-10-04 18:13:28 +04:00
|
|
|
version.o: FORCE
|
2004-04-25 13:04:38 +04:00
|
|
|
if test -z "$(VER)" && (cd ..; md5sum -c manifest); then \
|
2005-01-15 21:30:05 +03:00
|
|
|
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) `cat ../version.def` -c ../version.c; \
|
2004-04-25 13:04:38 +04:00
|
|
|
else \
|
2005-01-15 21:30:05 +03:00
|
|
|
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) $(VER) -c ../version.c; \
|
2004-04-25 13:04:38 +04:00
|
|
|
fi
|
|
|
|
!end
|
2004-11-17 01:14:56 +03:00
|
|
|
!specialobj gtk version
|
Switch to using automake for the Unix autoconfigured build.
mkfiles.pl no longer generates a Makefile.in, but instead generates a
Makefile.am on which mkauto.sh runs automake. This means that the
autoconfigured makefile now does build-time dependency tracking (a
standard feature of automake-generated makefiles), and is generally
more like what Unix people will expect.
Some of the old-style make command-line settings (VER=-DRELEASE=foo,
XFLAGS=-DDEBUG) will still work; the COMPAT settings are better done
by autoconfiguration, and my habitual 'XFLAGS="-g -O0"' for an easily
debuggable build will actually not work any more because CFLAGS is
specified _after_ XFLAGS, so I should instead write 'make CFLAGS=-O0'
(-g is the default in automake, removed at 'make install' time).
The new makefile will automatically degrade into one that builds the
command-line tools only, in the case where GTK could not be found. In
principle, therefore, it should be an adequate replacement for _both_
the static Unix makefiles, Makefile.gtk and Makefile.ux. I haven't
actually retired those in this commit, but I'm pretty tempted.
[originally from svn r9239]
2011-07-23 15:33:29 +04:00
|
|
|
# In the automake build, we have to do the whole job by supplying
|
|
|
|
# extra CFLAGS, so we have to put the if statement inside one big
|
|
|
|
# backtick expression. We also force rebuilding via a -D option that
|
|
|
|
# makes version.o include empty.h, which we construct ourselves and
|
|
|
|
# touch whenever any source file is updated.
|
|
|
|
!cflags am version $(VER) -DINCLUDE_EMPTY_H `if test -z "$(VER)" && (cd $(srcdir)/..; md5sum -c manifest >/dev/null 2>&1); then cat $(srcdir)/../version.def; else echo "$(VER)"; fi`
|
|
|
|
!begin am
|
|
|
|
BUILT_SOURCES = empty.h
|
|
|
|
empty.h: $(allsources)
|
2011-09-14 19:54:26 +04:00
|
|
|
echo '/* Empty file touched by automake makefile to force rebuild of version.o */' >$@
|
Switch to using automake for the Unix autoconfigured build.
mkfiles.pl no longer generates a Makefile.in, but instead generates a
Makefile.am on which mkauto.sh runs automake. This means that the
autoconfigured makefile now does build-time dependency tracking (a
standard feature of automake-generated makefiles), and is generally
more like what Unix people will expect.
Some of the old-style make command-line settings (VER=-DRELEASE=foo,
XFLAGS=-DDEBUG) will still work; the COMPAT settings are better done
by autoconfiguration, and my habitual 'XFLAGS="-g -O0"' for an easily
debuggable build will actually not work any more because CFLAGS is
specified _after_ XFLAGS, so I should instead write 'make CFLAGS=-O0'
(-g is the default in automake, removed at 'make install' time).
The new makefile will automatically degrade into one that builds the
command-line tools only, in the case where GTK could not be found. In
principle, therefore, it should be an adequate replacement for _both_
the static Unix makefiles, Makefile.gtk and Makefile.ux. I haven't
actually retired those in this commit, but I'm pretty tempted.
[originally from svn r9239]
2011-07-23 15:33:29 +04:00
|
|
|
|
|
|
|
!end
|
2011-09-14 19:54:26 +04:00
|
|
|
!begin >empty.h
|
|
|
|
/* Empty file touched by automake makefile to force rebuild of version.o */
|
|
|
|
!end
|
2004-04-25 13:04:38 +04:00
|
|
|
|
2005-10-04 18:13:28 +04:00
|
|
|
# Add VER to Windows resource targets, and force them to be rebuilt every
|
|
|
|
# time, on the assumption that they will contain version information.
|
|
|
|
!begin vc vars
|
2010-03-25 21:41:27 +03:00
|
|
|
CFLAGS = $(CFLAGS) /DHAS_GSSAPI /DSECURITY_WIN32
|
2005-10-04 18:13:28 +04:00
|
|
|
RCFLAGS = $(RCFLAGS) $(VER)
|
|
|
|
!end
|
|
|
|
!begin cygwin vars
|
2012-09-14 02:33:27 +04:00
|
|
|
CFLAGS += -DSECURITY_WIN32
|
2012-09-14 02:34:53 +04:00
|
|
|
# XXX GNU-ism, but it's probably all right for a Cygwin/MinGW Makefile.
|
2005-10-04 18:13:28 +04:00
|
|
|
RCFLAGS += $(patsubst -D%,--define %,$(VER))
|
|
|
|
!end
|
|
|
|
!begin borland vars
|
|
|
|
# Borland doesn't support +=. This probably shouldn't work, but seems to.
|
|
|
|
RCFLAGS = $(RCFLAGS) $(VER)
|
|
|
|
!end
|
|
|
|
!begin lcc vars
|
|
|
|
RCFLAGS += $(VER)
|
|
|
|
!end
|
|
|
|
!forceobj putty.res
|
|
|
|
!forceobj puttytel.res
|
|
|
|
!forceobj plink.res
|
|
|
|
!forceobj pscp.res
|
|
|
|
!forceobj psftp.res
|
|
|
|
!forceobj pageant.res
|
|
|
|
!forceobj puttygen.res
|
|
|
|
|
2004-04-25 13:04:38 +04:00
|
|
|
# `make install' target for Unix.
|
|
|
|
!begin gtk
|
|
|
|
install:
|
2007-05-01 00:09:58 +04:00
|
|
|
mkdir -p $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir)
|
2004-04-25 13:04:38 +04:00
|
|
|
$(INSTALL_PROGRAM) -m 755 plink $(DESTDIR)$(bindir)/plink
|
|
|
|
$(INSTALL_PROGRAM) -m 755 pscp $(DESTDIR)$(bindir)/pscp
|
|
|
|
$(INSTALL_PROGRAM) -m 755 psftp $(DESTDIR)$(bindir)/psftp
|
|
|
|
$(INSTALL_PROGRAM) -m 755 pterm $(DESTDIR)$(bindir)/pterm
|
2005-01-11 13:45:43 +03:00
|
|
|
if test -n "$(UTMP_GROUP)"; then \
|
|
|
|
chgrp $(UTMP_GROUP) $(DESTDIR)$(bindir)/pterm && \
|
|
|
|
chmod 2755 $(DESTDIR)$(bindir)/pterm; \
|
|
|
|
elif test -n "$(UTMP_USER)"; then \
|
|
|
|
chown $(UTMP_USER) $(DESTDIR)$(bindir)/pterm && \
|
|
|
|
chmod 4755 $(DESTDIR)$(bindir)/pterm; \
|
|
|
|
fi
|
2004-04-25 13:04:38 +04:00
|
|
|
$(INSTALL_PROGRAM) -m 755 putty $(DESTDIR)$(bindir)/putty
|
|
|
|
$(INSTALL_PROGRAM) -m 755 puttygen $(DESTDIR)$(bindir)/puttygen
|
|
|
|
$(INSTALL_PROGRAM) -m 755 puttytel $(DESTDIR)$(bindir)/puttytel
|
|
|
|
$(INSTALL_DATA) -m 644 ../doc/plink.1 $(DESTDIR)$(man1dir)/plink.1
|
|
|
|
$(INSTALL_DATA) -m 644 ../doc/pscp.1 $(DESTDIR)$(man1dir)/pscp.1
|
|
|
|
$(INSTALL_DATA) -m 644 ../doc/psftp.1 $(DESTDIR)$(man1dir)/psftp.1
|
|
|
|
$(INSTALL_DATA) -m 644 ../doc/pterm.1 $(DESTDIR)$(man1dir)/pterm.1
|
|
|
|
$(INSTALL_DATA) -m 644 ../doc/putty.1 $(DESTDIR)$(man1dir)/putty.1
|
|
|
|
$(INSTALL_DATA) -m 644 ../doc/puttygen.1 $(DESTDIR)$(man1dir)/puttygen.1
|
|
|
|
$(INSTALL_DATA) -m 644 ../doc/puttytel.1 $(DESTDIR)$(man1dir)/puttytel.1
|
|
|
|
|
|
|
|
install-strip:
|
|
|
|
$(MAKE) install INSTALL_PROGRAM="$(INSTALL_PROGRAM) -s"
|
|
|
|
!end
|
2005-02-26 20:30:41 +03:00
|
|
|
!begin osx vars
|
2005-02-16 00:45:50 +03:00
|
|
|
CFLAGS += -DMACOSX
|
|
|
|
!end
|
2004-04-25 13:04:38 +04:00
|
|
|
|
Switch to using automake for the Unix autoconfigured build.
mkfiles.pl no longer generates a Makefile.in, but instead generates a
Makefile.am on which mkauto.sh runs automake. This means that the
autoconfigured makefile now does build-time dependency tracking (a
standard feature of automake-generated makefiles), and is generally
more like what Unix people will expect.
Some of the old-style make command-line settings (VER=-DRELEASE=foo,
XFLAGS=-DDEBUG) will still work; the COMPAT settings are better done
by autoconfiguration, and my habitual 'XFLAGS="-g -O0"' for an easily
debuggable build will actually not work any more because CFLAGS is
specified _after_ XFLAGS, so I should instead write 'make CFLAGS=-O0'
(-g is the default in automake, removed at 'make install' time).
The new makefile will automatically degrade into one that builds the
command-line tools only, in the case where GTK could not be found. In
principle, therefore, it should be an adequate replacement for _both_
the static Unix makefiles, Makefile.gtk and Makefile.ux. I haven't
actually retired those in this commit, but I'm pretty tempted.
[originally from svn r9239]
2011-07-23 15:33:29 +04:00
|
|
|
# List the man pages for the automake makefile.
|
|
|
|
!begin am
|
|
|
|
man1_MANS = ../doc/plink.1 ../doc/pscp.1 ../doc/psftp.1 ../doc/pterm.1 \
|
|
|
|
../doc/putty.1 ../doc/puttygen.1 ../doc/puttytel.1
|
|
|
|
!end
|
|
|
|
|
|
|
|
# In automake, chgrp/chmod pterm after installation, if configured to.
|
|
|
|
!begin am
|
|
|
|
if HAVE_SETID_CMD
|
|
|
|
install-exec-local:
|
|
|
|
@SETID_CMD@ $(bindir)/pterm
|
|
|
|
chmod @SETID_MODE@ $(bindir)/pterm
|
|
|
|
endif
|
|
|
|
!end
|
|
|
|
|
2007-01-10 02:47:15 +03:00
|
|
|
# Random symbols.
|
|
|
|
!begin cygwin vars
|
|
|
|
# _WIN32_IE is required to expose identifiers that only make sense on
|
|
|
|
# systems with IE5+ installed, such as some arguments to SHGetFolderPath().
|
2007-01-16 23:54:58 +03:00
|
|
|
# WINVER etc perform a similar function for FlashWindowEx().
|
2007-01-10 02:47:15 +03:00
|
|
|
CFLAGS += -D_WIN32_IE=0x0500
|
2007-01-16 23:54:58 +03:00
|
|
|
CFLAGS += -DWINVER=0x0500 -D_WIN32_WINDOWS=0x0410 -D_WIN32_WINNT=0x0500
|
2007-01-10 02:47:15 +03:00
|
|
|
!end
|
|
|
|
|
2004-04-25 13:04:38 +04:00
|
|
|
# ------------------------------------------------------------
|
2002-03-16 18:49:28 +03:00
|
|
|
# Definitions of object groups. A group name, followed by an =,
|
|
|
|
# followed by any number of objects or other already-defined group
|
|
|
|
# names. A line beginning `+' is assumed to continue the previous
|
|
|
|
# line.
|
|
|
|
|
2004-05-22 14:36:50 +04:00
|
|
|
# Terminal emulator and its (platform-independent) dependencies.
|
|
|
|
TERMINAL = terminal wcwidth ldiscucs logging tree234 minibidi
|
Post-release destabilisation! Completely remove the struct type
'Config' in putty.h, which stores all PuTTY's settings and includes an
arbitrary length limit on every single one of those settings which is
stored in string form. In place of it is 'Conf', an opaque data type
everywhere outside the new file conf.c, which stores a list of (key,
value) pairs in which every key contains an integer identifying a
configuration setting, and for some of those integers the key also
contains extra parts (so that, for instance, CONF_environmt is a
string-to-string mapping). Everywhere that a Config was previously
used, a Conf is now; everywhere there was a Config structure copy,
conf_copy() is called; every lookup, adjustment, load and save
operation on a Config has been rewritten; and there's a mechanism for
serialising a Conf into a binary blob and back for use with Duplicate
Session.
User-visible effects of this change _should_ be minimal, though I
don't doubt I've introduced one or two bugs here and there which will
eventually be found. The _intended_ visible effects of this change are
that all arbitrary limits on configuration strings and lists (e.g.
limit on number of port forwardings) should now disappear; that list
boxes in the configuration will now be displayed in a sorted order
rather than the arbitrary order in which they were added to the list
(since the underlying data structure is now a sorted tree234 rather
than an ad-hoc comma-separated string); and one more specific change,
which is that local and dynamic port forwardings on the same port
number are now mutually exclusive in the configuration (putting 'D' in
the key rather than the value was a mistake in the first place).
One other reorganisation as a result of this is that I've moved all
the dialog.c standard handlers (dlg_stdeditbox_handler and friends)
out into config.c, because I can't really justify calling them generic
any more. When they took a pointer to an arbitrary structure type and
the offset of a field within that structure, they were independent of
whether that structure was a Config or something completely different,
but now they really do expect to talk to a Conf, which can _only_ be
used for PuTTY configuration, so I've renamed them all things like
conf_editbox_handler and moved them out of the nominally independent
dialog-box management module into the PuTTY-specific config.c.
[originally from svn r9214]
2011-07-14 22:52:21 +04:00
|
|
|
+ config dialog conf
|
2004-05-22 14:36:50 +04:00
|
|
|
|
2002-03-16 18:49:28 +03:00
|
|
|
# GUI front end and terminal emulator (putty, puttytel).
|
2004-11-17 01:14:56 +03:00
|
|
|
GUITERM = TERMINAL window windlg winctrls sizetip winucs winprint
|
2010-12-23 20:32:28 +03:00
|
|
|
+ winutils wincfg sercfg winhelp winjump
|
2002-03-16 18:49:28 +03:00
|
|
|
|
2003-04-27 15:10:48 +04:00
|
|
|
# Same thing on Unix.
|
2013-08-17 20:06:08 +04:00
|
|
|
UXTERM = TERMINAL uxcfg sercfg uxucs uxprint timing callback
|
Refactor the font handling code: I've moved all the code that
explicitly deals with GdkFont out into a new module, behind a
polymorphic interface (done by ad-hoc explicit vtable management in
C). This should allow me to drop in a Pango font handling module in
parallel with the existing one, meaning that GTK2 PuTTY will be able
to seamlessly switch between X11 server-side fonts and Pango client-
side ones as the user chooses, or even use a mixture of the two
(e.g. an X11 font for narrow characters and a Pango one for wide
characters, or vice versa).
In the process, incidentally, I got to the bottom of the `weird bug'
mentioned in the old do_text_internal(). It's not a bug in
gdk_draw_text_wc() as I had thought: it's simply that GdkWChar is a
32-bit type rather than a 16-bit one, so no wonder you have to
specify twice the length to find all the characters in the string!
However, there _is_ a bug in GTK2's gdk_draw_text_wc(), which causes
it to strip off everything above the low byte of each GdkWChar,
sigh. Solution to both problems is to use an array of the underlying
Xlib type XChar2b instead, and pass it to gdk_draw_text() cast to
gchar *. Grotty, but it works. (And it'll become significantly less
grotty if and when we have to stop using the GDK font handling
wrappers in favour of going direct to Xlib.)
[originally from svn r7933]
2008-03-22 14:40:23 +03:00
|
|
|
GTKTERM = UXTERM gtkwin gtkcfg gtkdlg gtkfont gtkcols xkeysym
|
2005-02-16 00:45:50 +03:00
|
|
|
OSXTERM = UXTERM osxwin osxdlg osxctrls
|
2003-03-29 22:52:50 +03:00
|
|
|
|
2002-03-16 18:49:28 +03:00
|
|
|
# Non-SSH back ends (putty, puttytel, plink).
|
2004-11-27 16:20:21 +03:00
|
|
|
NONSSH = telnet raw rlogin ldisc pinger
|
2002-03-16 18:49:28 +03:00
|
|
|
|
|
|
|
# SSH back end (putty, plink, pscp, psftp).
|
2002-10-31 22:49:52 +03:00
|
|
|
SSH = ssh sshcrc sshdes sshmd5 sshrsa sshrand sshsha sshblowf
|
|
|
|
+ sshdh sshcrcda sshpubk sshzlib sshdss x11fwd portfwd
|
2005-09-04 18:53:39 +04:00
|
|
|
+ sshaes sshsh256 sshsh512 sshbn wildcard pinger ssharcf
|
2010-05-19 22:22:17 +04:00
|
|
|
+ sshgssc pgssapi
|
2013-11-17 18:03:44 +04:00
|
|
|
WINSSH = SSH winnoise winpgntc wingss winhsock errsock
|
2008-08-10 17:10:31 +04:00
|
|
|
UXSSH = SSH uxnoise uxagentc uxgss
|
2002-03-16 18:49:28 +03:00
|
|
|
|
|
|
|
# SFTP implementation (pscp, psftp).
|
|
|
|
SFTP = sftp int64 logging
|
|
|
|
|
|
|
|
# Miscellaneous objects appearing in all the network utilities (not
|
|
|
|
# Pageant or PuTTYgen).
|
2013-08-17 20:06:08 +04:00
|
|
|
MISC = timing callback misc version settings tree234 proxy conf
|
2006-08-26 14:20:16 +04:00
|
|
|
WINMISC = MISC winstore winnet winhandl cmdline windefs winmisc winproxy
|
2013-11-17 18:03:44 +04:00
|
|
|
+ wintime winhsock errsock
|
2005-01-09 17:27:48 +03:00
|
|
|
UXMISC = MISC uxstore uxsel uxnet cmdline uxmisc uxproxy time
|
2005-02-16 00:45:50 +03:00
|
|
|
OSXMISC = MISC uxstore uxsel osxsel uxnet uxmisc uxproxy time
|
2002-03-16 18:49:28 +03:00
|
|
|
|
2002-12-31 15:20:34 +03:00
|
|
|
# Character set library, for use in pterm.
|
2003-04-05 20:36:11 +04:00
|
|
|
CHARSET = sbcsdat slookup sbcs utf8 toucs fromucs xenc mimeenc macenc localenc
|
2002-12-31 15:20:34 +03:00
|
|
|
|
2003-10-12 17:46:12 +04:00
|
|
|
# Standard libraries.
|
2002-03-16 18:49:28 +03:00
|
|
|
LIBS = advapi32.lib user32.lib gdi32.lib comctl32.lib comdlg32.lib
|
2010-12-23 20:32:28 +03:00
|
|
|
+ shell32.lib winmm.lib imm32.lib winspool.lib ole32.lib
|
2002-03-16 18:49:28 +03:00
|
|
|
|
2004-08-30 17:11:17 +04:00
|
|
|
# Network backend sets. This also brings in the relevant attachment
|
|
|
|
# to proxy.c depending on whether we're crypto-avoidant or not.
|
|
|
|
BE_ALL = be_all cproxy
|
|
|
|
BE_NOSSH = be_nossh nocproxy
|
2011-07-27 22:43:16 +04:00
|
|
|
BE_SSH = be_ssh cproxy
|
2004-08-30 17:11:17 +04:00
|
|
|
BE_NONE = be_none nocproxy
|
2006-08-28 14:35:12 +04:00
|
|
|
# More backend sets, with the additional Windows serial-port module.
|
|
|
|
W_BE_ALL = be_all_s winser cproxy
|
|
|
|
W_BE_NOSSH = be_nos_s winser nocproxy
|
2006-08-28 18:29:02 +04:00
|
|
|
# And with the Unix serial-port module.
|
|
|
|
U_BE_ALL = be_all_s uxser cproxy
|
|
|
|
U_BE_NOSSH = be_nos_s uxser nocproxy
|
2004-08-30 17:11:17 +04:00
|
|
|
|
2004-04-25 13:04:38 +04:00
|
|
|
# ------------------------------------------------------------
|
2002-03-16 18:49:28 +03:00
|
|
|
# Definitions of actual programs. The program name, followed by a
|
|
|
|
# colon, followed by a list of objects. Also in the list may be the
|
2002-10-07 20:45:23 +04:00
|
|
|
# keywords [G] for Windows GUI app, [C] for Console app, [X] for
|
2010-09-25 12:37:30 +04:00
|
|
|
# X/GTK Unix app, [U] for command-line Unix app.
|
2002-03-16 18:49:28 +03:00
|
|
|
|
2008-11-17 21:38:09 +03:00
|
|
|
putty : [G] GUITERM NONSSH WINSSH W_BE_ALL WINMISC winx11 putty.res LIBS
|
2010-05-19 22:22:17 +04:00
|
|
|
puttytel : [G] GUITERM NONSSH W_BE_NOSSH WINMISC puttytel.res nogss LIBS
|
2006-08-28 14:35:12 +04:00
|
|
|
plink : [C] winplink wincons NONSSH WINSSH W_BE_ALL logging WINMISC
|
2013-08-17 20:06:40 +04:00
|
|
|
+ winx11 plink.res winnojmp noterm LIBS
|
2004-12-16 18:01:43 +03:00
|
|
|
pscp : [C] pscp winsftp wincons WINSSH BE_SSH SFTP wildcard WINMISC
|
2010-12-23 20:32:28 +03:00
|
|
|
+ pscp.res winnojmp LIBS
|
2005-02-28 03:17:09 +03:00
|
|
|
psftp : [C] psftp winsftp wincons WINSSH BE_SSH SFTP wildcard WINMISC
|
2010-12-23 20:32:28 +03:00
|
|
|
+ psftp.res winnojmp LIBS
|
2002-03-16 18:49:28 +03:00
|
|
|
|
2004-11-17 01:14:56 +03:00
|
|
|
pageant : [G] winpgnt sshrsa sshpubk sshdes sshbn sshmd5 version tree234
|
2007-05-01 17:14:23 +04:00
|
|
|
+ misc sshaes sshsha winpgntc sshdss sshsh256 sshsh512 winutils
|
Post-release destabilisation! Completely remove the struct type
'Config' in putty.h, which stores all PuTTY's settings and includes an
arbitrary length limit on every single one of those settings which is
stored in string form. In place of it is 'Conf', an opaque data type
everywhere outside the new file conf.c, which stores a list of (key,
value) pairs in which every key contains an integer identifying a
configuration setting, and for some of those integers the key also
contains extra parts (so that, for instance, CONF_environmt is a
string-to-string mapping). Everywhere that a Config was previously
used, a Conf is now; everywhere there was a Config structure copy,
conf_copy() is called; every lookup, adjustment, load and save
operation on a Config has been rewritten; and there's a mechanism for
serialising a Conf into a binary blob and back for use with Duplicate
Session.
User-visible effects of this change _should_ be minimal, though I
don't doubt I've introduced one or two bugs here and there which will
eventually be found. The _intended_ visible effects of this change are
that all arbitrary limits on configuration strings and lists (e.g.
limit on number of port forwardings) should now disappear; that list
boxes in the configuration will now be displayed in a sorted order
rather than the arbitrary order in which they were added to the list
(since the underlying data structure is now a sorted tree234 rather
than an ad-hoc comma-separated string); and one more specific change,
which is that local and dynamic port forwardings on the same port
number are now mutually exclusive in the configuration (putting 'D' in
the key rather than the value was a mistake in the first place).
One other reorganisation as a result of this is that I've moved all
the dialog.c standard handlers (dlg_stdeditbox_handler and friends)
out into config.c, because I can't really justify calling them generic
any more. When they took a pointer to an arbitrary structure type and
the offset of a field within that structure, they were independent of
whether that structure was a Config or something completely different,
but now they really do expect to talk to a Conf, which can _only_ be
used for PuTTY configuration, so I've renamed them all things like
conf_editbox_handler and moved them out of the nominally independent
dialog-box management module into the PuTTY-specific config.c.
[originally from svn r9214]
2011-07-14 22:52:21 +04:00
|
|
|
+ winmisc winhelp conf pageant.res LIBS
|
2002-03-16 18:49:28 +03:00
|
|
|
|
2004-11-17 01:14:56 +03:00
|
|
|
puttygen : [G] winpgen sshrsag sshdssg sshprime sshdes sshbn sshmd5 version
|
|
|
|
+ sshrand winnoise sshsha winstore misc winctrls sshrsa sshdss winmisc
|
2007-05-01 02:09:26 +04:00
|
|
|
+ sshpubk sshaes sshsh256 sshsh512 import winutils puttygen.res
|
Post-release destabilisation! Completely remove the struct type
'Config' in putty.h, which stores all PuTTY's settings and includes an
arbitrary length limit on every single one of those settings which is
stored in string form. In place of it is 'Conf', an opaque data type
everywhere outside the new file conf.c, which stores a list of (key,
value) pairs in which every key contains an integer identifying a
configuration setting, and for some of those integers the key also
contains extra parts (so that, for instance, CONF_environmt is a
string-to-string mapping). Everywhere that a Config was previously
used, a Conf is now; everywhere there was a Config structure copy,
conf_copy() is called; every lookup, adjustment, load and save
operation on a Config has been rewritten; and there's a mechanism for
serialising a Conf into a binary blob and back for use with Duplicate
Session.
User-visible effects of this change _should_ be minimal, though I
don't doubt I've introduced one or two bugs here and there which will
eventually be found. The _intended_ visible effects of this change are
that all arbitrary limits on configuration strings and lists (e.g.
limit on number of port forwardings) should now disappear; that list
boxes in the configuration will now be displayed in a sorted order
rather than the arbitrary order in which they were added to the list
(since the underlying data structure is now a sorted tree234 rather
than an ad-hoc comma-separated string); and one more specific change,
which is that local and dynamic port forwardings on the same port
number are now mutually exclusive in the configuration (putting 'D' in
the key rather than the value was a mistake in the first place).
One other reorganisation as a result of this is that I've moved all
the dialog.c standard handlers (dlg_stdeditbox_handler and friends)
out into config.c, because I can't really justify calling them generic
any more. When they took a pointer to an arbitrary structure type and
the offset of a field within that structure, they were independent of
whether that structure was a Config or something completely different,
but now they really do expect to talk to a Conf, which can _only_ be
used for PuTTY configuration, so I've renamed them all things like
conf_editbox_handler and moved them out of the nominally independent
dialog-box management module into the PuTTY-specific config.c.
[originally from svn r9214]
2011-07-14 22:52:21 +04:00
|
|
|
+ tree234 notiming winhelp winnojmp conf LIBS wintime
|
2002-10-07 20:45:23 +04:00
|
|
|
|
2005-02-16 00:45:50 +03:00
|
|
|
pterm : [X] GTKTERM uxmisc misc ldisc settings uxpty uxsel BE_NONE uxstore
|
2007-01-06 23:01:30 +03:00
|
|
|
+ uxsignal CHARSET cmdline uxpterm version time xpmpterm xpmptcfg
|
2010-05-19 22:22:17 +04:00
|
|
|
+ nogss
|
2006-08-28 18:29:02 +04:00
|
|
|
putty : [X] GTKTERM uxmisc misc ldisc settings uxsel U_BE_ALL uxstore
|
2007-01-06 23:01:30 +03:00
|
|
|
+ uxsignal CHARSET uxputty NONSSH UXSSH UXMISC ux_x11 xpmputty
|
|
|
|
+ xpmpucfg
|
2006-08-28 18:29:02 +04:00
|
|
|
puttytel : [X] GTKTERM uxmisc misc ldisc settings uxsel U_BE_NOSSH
|
2007-01-06 23:01:30 +03:00
|
|
|
+ uxstore uxsignal CHARSET uxputty NONSSH UXMISC xpmputty xpmpucfg
|
2010-05-19 22:22:17 +04:00
|
|
|
+ nogss
|
2002-10-31 22:49:52 +03:00
|
|
|
|
2006-08-28 18:29:02 +04:00
|
|
|
plink : [U] uxplink uxcons NONSSH UXSSH U_BE_ALL logging UXMISC uxsignal
|
2013-08-17 20:06:40 +04:00
|
|
|
+ ux_x11 noterm
|
2002-12-03 00:03:14 +03:00
|
|
|
|
2004-01-22 22:15:32 +03:00
|
|
|
puttygen : [U] cmdgen sshrsag sshdssg sshprime sshdes sshbn sshmd5 version
|
|
|
|
+ sshrand uxnoise sshsha misc sshrsa sshdss uxcons uxstore uxmisc
|
2007-05-01 02:09:26 +04:00
|
|
|
+ sshpubk sshaes sshsh256 sshsh512 import puttygen.res time tree234
|
Post-release destabilisation! Completely remove the struct type
'Config' in putty.h, which stores all PuTTY's settings and includes an
arbitrary length limit on every single one of those settings which is
stored in string form. In place of it is 'Conf', an opaque data type
everywhere outside the new file conf.c, which stores a list of (key,
value) pairs in which every key contains an integer identifying a
configuration setting, and for some of those integers the key also
contains extra parts (so that, for instance, CONF_environmt is a
string-to-string mapping). Everywhere that a Config was previously
used, a Conf is now; everywhere there was a Config structure copy,
conf_copy() is called; every lookup, adjustment, load and save
operation on a Config has been rewritten; and there's a mechanism for
serialising a Conf into a binary blob and back for use with Duplicate
Session.
User-visible effects of this change _should_ be minimal, though I
don't doubt I've introduced one or two bugs here and there which will
eventually be found. The _intended_ visible effects of this change are
that all arbitrary limits on configuration strings and lists (e.g.
limit on number of port forwardings) should now disappear; that list
boxes in the configuration will now be displayed in a sorted order
rather than the arbitrary order in which they were added to the list
(since the underlying data structure is now a sorted tree234 rather
than an ad-hoc comma-separated string); and one more specific change,
which is that local and dynamic port forwardings on the same port
number are now mutually exclusive in the configuration (putting 'D' in
the key rather than the value was a mistake in the first place).
One other reorganisation as a result of this is that I've moved all
the dialog.c standard handlers (dlg_stdeditbox_handler and friends)
out into config.c, because I can't really justify calling them generic
any more. When they took a pointer to an arbitrary structure type and
the offset of a field within that structure, they were independent of
whether that structure was a Config or something completely different,
but now they really do expect to talk to a Conf, which can _only_ be
used for PuTTY configuration, so I've renamed them all things like
conf_editbox_handler and moved them out of the nominally independent
dialog-box management module into the PuTTY-specific config.c.
[originally from svn r9214]
2011-07-14 22:52:21 +04:00
|
|
|
+ uxgen notiming conf
|
2004-01-22 22:15:32 +03:00
|
|
|
|
2004-12-16 18:01:43 +03:00
|
|
|
pscp : [U] pscp uxsftp uxcons UXSSH BE_SSH SFTP wildcard UXMISC
|
2005-02-28 03:17:09 +03:00
|
|
|
psftp : [U] psftp uxsftp uxcons UXSSH BE_SSH SFTP wildcard UXMISC
|
2003-08-24 16:47:46 +04:00
|
|
|
|
2006-08-28 18:29:02 +04:00
|
|
|
PuTTY : [MX] osxmain OSXTERM OSXMISC CHARSET U_BE_ALL NONSSH UXSSH
|
2005-03-10 23:11:27 +03:00
|
|
|
+ ux_x11 uxpty uxsignal testback putty.icns info.plist
|