Create installations directories before installing into them, like GNU
[u/mdw/putty] / Recipe
diff --git a/Recipe b/Recipe
index 31a6b5d..efdfaba 100644 (file)
--- a/Recipe
+++ b/Recipe
 #      build, since at the time of writing this <multimon.h> is
 #      known not to be available in Cygwin.
 #
+#  - 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
+#      known not to be available in Cygwin (although you can use
+#      the htmlhelp.h supplied with HTML Help Workshop).
+#
 #  - RCFL=/DNO_MANIFESTS (Windows only)
 #      Disables inclusion of XML application manifests in the PuTTY
 #      binaries. This may be necessary to build for 64-bit Windows;
@@ -158,7 +169,7 @@ version.o: FORCE
 RCFLAGS = $(RCFLAGS) $(VER)
 !end
 !begin cygwin vars
-# XXX GNU-ism, but it's probably all right for a Cygwin/MinGW Makfile.
+# XXX GNU-ism, but it's probably all right for a Cygwin/MinGW Makefile.
 RCFLAGS += $(patsubst -D%,--define %,$(VER))
 !end
 !begin borland vars
@@ -179,6 +190,7 @@ RCFLAGS += $(VER)
 # `make install' target for Unix.
 !begin gtk
 install:
+       mkdir -p $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir)
        $(INSTALL_PROGRAM) -m 755 plink $(DESTDIR)$(bindir)/plink
        $(INSTALL_PROGRAM) -m 755 pscp $(DESTDIR)$(bindir)/pscp
        $(INSTALL_PROGRAM) -m 755 psftp $(DESTDIR)$(bindir)/psftp
@@ -208,6 +220,15 @@ install-strip:
 CFLAGS += -DMACOSX
 !end
 
+# 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().
+# WINVER etc perform a similar function for FlashWindowEx().
+CFLAGS += -D_WIN32_IE=0x0500
+CFLAGS += -DWINVER=0x0500 -D_WIN32_WINDOWS=0x0410 -D_WIN32_WINNT=0x0500
+!end
+
 # ------------------------------------------------------------
 # Definitions of object groups. A group name, followed by an =,
 # followed by any number of objects or other already-defined group
@@ -220,11 +241,11 @@ TERMINAL = terminal wcwidth ldiscucs logging tree234 minibidi
 
 # GUI front end and terminal emulator (putty, puttytel).
 GUITERM  = TERMINAL window windlg winctrls sizetip winucs winprint
-         + winutils wincfg sercfg
+         + winutils wincfg sercfg winhelp
 
 # Same thing on Unix.
-UXTERM   = TERMINAL uxcfg uxucs uxprint timing
-GTKTERM  = UXTERM gtkwin gtkcfg gtkdlg gtkcols gtkpanel xkeysym
+UXTERM   = TERMINAL uxcfg sercfg uxucs uxprint timing
+GTKTERM  = UXTERM gtkwin gtkcfg gtkdlg gtkcols xkeysym
 OSXTERM  = UXTERM osxwin osxdlg osxctrls
 
 # Non-SSH back ends (putty, puttytel, plink).
@@ -266,6 +287,9 @@ BE_NONE  = be_none nocproxy
 # 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
+# And with the Unix serial-port module.
+U_BE_ALL = be_all_s uxser cproxy
+U_BE_NOSSH = be_nos_s uxser nocproxy
 
 # ------------------------------------------------------------
 # Definitions of actual programs. The program name, followed by a
@@ -284,21 +308,23 @@ psftp    : [C] psftp winsftp wincons WINSSH BE_SSH SFTP wildcard WINMISC
 
 pageant  : [G] winpgnt sshrsa sshpubk sshdes sshbn sshmd5 version tree234
          + misc sshaes sshsha winpgntc sshdss sshsh512 winutils winmisc
-         + pageant.res LIBS
+         + winhelp pageant.res LIBS
 
 puttygen : [G] winpgen sshrsag sshdssg sshprime sshdes sshbn sshmd5 version
          + sshrand winnoise sshsha winstore misc winctrls sshrsa sshdss winmisc
          + sshpubk sshaes sshsh512 import winutils puttygen.res tree234
-        + notiming LIBS wintime
+        + notiming winhelp LIBS wintime
 
 pterm    : [X] GTKTERM uxmisc misc ldisc settings uxpty uxsel BE_NONE uxstore
-         + uxsignal CHARSET cmdline uxpterm version time
-putty    : [X] GTKTERM uxmisc misc ldisc settings uxsel BE_ALL uxstore
-         + uxsignal CHARSET uxputty NONSSH UXSSH UXMISC ux_x11
-puttytel : [X] GTKTERM uxmisc misc ldisc settings uxsel BE_NOSSH
-        + uxstore uxsignal CHARSET uxputty NONSSH UXMISC
+         + uxsignal CHARSET cmdline uxpterm version time xpmpterm xpmptcfg
+putty    : [X] GTKTERM uxmisc misc ldisc settings uxsel U_BE_ALL uxstore
+         + uxsignal CHARSET uxputty NONSSH UXSSH UXMISC ux_x11 xpmputty
+         + xpmpucfg
+puttytel : [X] GTKTERM uxmisc misc ldisc settings uxsel U_BE_NOSSH
+        + uxstore uxsignal CHARSET uxputty NONSSH UXMISC xpmputty xpmpucfg
 
-plink    : [U] uxplink uxcons NONSSH UXSSH BE_ALL logging UXMISC uxsignal ux_x11
+plink    : [U] uxplink uxcons NONSSH UXSSH U_BE_ALL logging UXMISC uxsignal
+         + ux_x11
 
 puttygen : [U] cmdgen sshrsag sshdssg sshprime sshdes sshbn sshmd5 version
          + sshrand uxnoise sshsha misc sshrsa sshdss uxcons uxstore uxmisc
@@ -318,5 +344,5 @@ PuTTYgen : [M] macpgen sshrsag sshdssg sshprime sshdes sshbn sshmd5 version
          + sshrand macnoise sshsha macstore misc sshrsa sshdss macmisc sshpubk
          + sshaes sshsh512 import macpgen.rsrc macpgkey macabout
 
-PuTTY    : [MX] osxmain OSXTERM OSXMISC CHARSET BE_ALL NONSSH UXSSH
+PuTTY    : [MX] osxmain OSXTERM OSXMISC CHARSET U_BE_ALL NONSSH UXSSH
          + ux_x11 uxpty uxsignal testback putty.icns info.plist