Sebastian Kuschel reports that pfd_closing can be called for a socket
[u/mdw/putty] / Recipe
diff --git a/Recipe b/Recipe
index 698d42d..3b65c83 100644 (file)
--- a/Recipe
+++ b/Recipe
@@ -19,7 +19,7 @@
 !makefile lcc windows/Makefile.lcc
 !makefile gtk unix/Makefile.gtk
 !makefile unix unix/Makefile.ux
-!makefile ac unix/Makefile.in
+!makefile am unix/Makefile.am
 !makefile osx macosx/Makefile
 !makefile devcppproj windows/DEVCPP
 # Source directories.
 #      Cygnus/mingw32, whose resource compiler may have less of a
 #      problem with it.
 #
+#  - 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.
+#
 #  - 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
@@ -169,6 +174,21 @@ version.o: FORCE
        fi
 !end
 !specialobj gtk version
+# 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)
+       echo '/* Empty file touched by automake makefile to force rebuild of version.o */' >$@
+
+!end
+!begin >empty.h
+/* Empty file touched by automake makefile to force rebuild of version.o */
+!end
 
 # Add VER to Windows resource targets, and force them to be rebuilt every
 # time, on the assumption that they will contain version information.
@@ -177,6 +197,7 @@ CFLAGS = $(CFLAGS) /DHAS_GSSAPI /DSECURITY_WIN32
 RCFLAGS = $(RCFLAGS) $(VER)
 !end
 !begin cygwin vars
+CFLAGS += -DSECURITY_WIN32
 # XXX GNU-ism, but it's probably all right for a Cygwin/MinGW Makefile.
 RCFLAGS += $(patsubst -D%,--define %,$(VER))
 !end
@@ -228,6 +249,21 @@ install-strip:
 CFLAGS += -DMACOSX
 !end
 
+# 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
+
 # Random symbols.
 !begin cygwin vars
 # _WIN32_IE is required to expose identifiers that only make sense on
@@ -289,7 +325,7 @@ LIBS     = advapi32.lib user32.lib gdi32.lib comctl32.lib comdlg32.lib
 # to proxy.c depending on whether we're crypto-avoidant or not.
 BE_ALL   = be_all cproxy
 BE_NOSSH = be_nossh nocproxy
-BE_SSH   = be_none cproxy
+BE_SSH   = be_ssh cproxy
 BE_NONE  = be_none nocproxy
 # More backend sets, with the additional Windows serial-port module.
 W_BE_ALL = be_all_s winser cproxy