From: nhmall Date: Wed, 22 Apr 2015 04:07:46 +0000 (-0400) Subject: build both tty NetHack.exe and gui NetHackW.exe X-Git-Tag: NetHack-3.6.0_RC01~414^2~13 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aaca36a6d538286cf5cc721a68a00bacf2a7acc3;p=nethack build both tty NetHack.exe and gui NetHackW.exe Changes to be committed: modified: include/config.h modified: include/extern.h modified: include/flag.h modified: include/global.h modified: include/ntconf.h modified: include/wintty.h modified: src/cmd.c modified: src/files.c modified: src/options.c modified: sys/share/pcmain.c modified: sys/share/pcsys.c modified: sys/share/pcunix.c modified: sys/winnt/Makefile.gcc modified: sys/winnt/Makefile.msc modified: sys/winnt/nttty.c new file: sys/winnt/stubs.c modified: sys/winnt/winnt.c modified: util/makedefs.c modified: win/tty/wintty.c Adjust the code and the command line Makefile so that you no longer have to choose whether to build the tty version NetHack.exe, or the gui version NetHackW.exe. Both will now be built in a single 'nmake install' pass. --- diff --git a/include/config.h b/include/config.h index 5fc3d0d8f..d633286ba 100644 --- a/include/config.h +++ b/include/config.h @@ -1,4 +1,4 @@ -/* NetHack 3.5 config.h $NHDT-Date: 1428084467 2015/04/03 18:07:47 $ $NHDT-Branch: scshunt-regex $:$NHDT-Revision: 1.76 $ */ +/* NetHack 3.5 config.h $NHDT-Date: 1429675530 2015/04/22 04:05:30 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.81 $ */ /* NetHack 3.5 config.h $Date: 2012/01/27 20:15:26 $ $Revision: 1.37 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -109,9 +109,6 @@ #endif #ifdef MSWIN_GRAPHICS -# ifdef TTY_GRAPHICS -# undef TTY_GRAPHICS -# endif # ifndef DEFAULT_WINDOW_SYS # define DEFAULT_WINDOW_SYS "mswin" # endif diff --git a/include/extern.h b/include/extern.h index b6d6d407b..fe808d110 100644 --- a/include/extern.h +++ b/include/extern.h @@ -1,4 +1,4 @@ -/* NetHack 3.5 extern.h $NHDT-Date: 1429135323 2015/04/15 22:02:03 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.464 $ */ +/* NetHack 3.5 extern.h $NHDT-Date: 1429675537 2015/04/22 04:05:37 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.471 $ */ /* Copyright (c) Steve Creps, 1988. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1500,10 +1500,10 @@ E void FDECL(regex_free, (struct nhregex *)); /* ### nttty.c ### */ -#ifdef WIN32CON +#ifdef WIN32 E void NDECL(get_scr_size); E int NDECL(nttty_kbhit); -E void NDECL(nttty_open); +E void FDECL(nttty_open,(int)); E void NDECL(nttty_rubout); E int NDECL(tgetch); E int FDECL(ntposkey,(int *, int *, int *)); diff --git a/include/flag.h b/include/flag.h index 1bbf5ff2a..902ec9cad 100644 --- a/include/flag.h +++ b/include/flag.h @@ -1,4 +1,4 @@ -/* NetHack 3.5 flag.h $NHDT-Date: 1425081976 2015/02/28 00:06:16 $ $NHDT-Branch: master $:$NHDT-Revision: 1.60 $ */ +/* NetHack 3.5 flag.h $NHDT-Date: 1429675538 2015/04/22 04:05:38 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.78 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -305,7 +305,7 @@ struct instance_flags { struct autopickup_exception *autopickup_exceptions[2]; #define AP_LEAVE 0 #define AP_GRAB 1 -#ifdef WIN32CON +#ifdef WIN32 #define MAX_ALTKEYHANDLER 25 char altkeyhandler[MAX_ALTKEYHANDLER]; #endif diff --git a/include/global.h b/include/global.h index 50479b97e..9c9b0338f 100644 --- a/include/global.h +++ b/include/global.h @@ -1,4 +1,4 @@ -/* NetHack 3.5 global.h $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */ +/* NetHack 3.5 global.h $NHDT-Date: 1429675538 2015/04/22 04:05:38 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.41 $ */ /* NetHack 3.5 global.h $Date: 2012/01/29 03:00:14 $ $Revision: 1.31 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -197,13 +197,6 @@ typedef uchar nhsym; # endif # ifdef WIN32 # define PORT_ID "Windows" -# ifndef PORT_SUB_ID -# ifdef MSWIN_GRAPHICS -# define PORT_SUB_ID "graphical" -# else -# define PORT_SUB_ID "tty" -# endif -# endif # endif #endif @@ -234,7 +227,7 @@ typedef uchar nhsym; # define EXIT_FAILURE 1 #endif -#if defined(X11_GRAPHICS) || defined(QT_GRAPHICS) || defined(GNOME_GRAPHICS) || defined(MSWIN_GRAPHICS) +#if defined(X11_GRAPHICS) || defined(QT_GRAPHICS) || defined(GNOME_GRAPHICS) || defined(WIN32) # ifndef USE_TILES # define USE_TILES /* glyph2tile[] will be available */ # endif diff --git a/include/ntconf.h b/include/ntconf.h index 826e36b66..d67ad677e 100644 --- a/include/ntconf.h +++ b/include/ntconf.h @@ -1,4 +1,4 @@ -/* NetHack 3.5 ntconf.h $NHDT-Date: 1426966690 2015/03/21 19:38:10 $ $NHDT-Branch: master $:$NHDT-Revision: 1.37 $ */ +/* NetHack 3.5 ntconf.h $NHDT-Date: 1429675540 2015/04/22 04:05:40 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.44 $ */ /* SCCS Id: @(#)ntconf.h 3.5 2002/03/10 */ /* Copyright (c) NetHack PC Development Team 1993, 1994. */ /* NetHack may be freely redistributed. See license for details. */ @@ -13,9 +13,8 @@ #define EXEPATH /* Allow .exe location to be used as HACKDIR */ #define TRADITIONAL_GLYPHMAP /* Store glyph mappings at level change time */ -#ifdef WIN32CON + #define LAN_FEATURES /* Include code for lan-aware features. Untested in 3.4.0*/ -#endif #define PC_LOCKING /* Prevent overwrites of aborted or in-progress games */ /* without first receiving confirmation. */ @@ -29,10 +28,8 @@ #define USER_SOUNDS -#ifdef WIN32CON -#define CHANGE_COLOR /* allow palette changes in win32 console */ +/*#define CHANGE_COLOR*/ /* allow palette changes */ #define SELECTSAVED /* Provide menu of saved games to choose from at start */ -#endif /* * ----------------------------------------------------------------- @@ -56,18 +53,12 @@ #ifdef OPTIONS_USED #undef OPTIONS_USED #endif -#ifdef MSWIN_GRAPHICS -#define OPTIONS_USED "guioptions" -#else -#define OPTIONS_USED "ttyoptions" -#endif +#define OPTIONS_USED "options" #define OPTIONS_FILE OPTIONS_USED #define PORT_HELP "porthelp" -#ifdef WIN32CON #define PORT_DEBUG /* include ability to debug international keyboard issues */ -#endif #define SAFERHANGUP /* Define SAFERHANGUP to delay hangup processing * until the main command loop. 'safer' because it @@ -199,13 +190,11 @@ extern char hackdir[]; #define getuid() 1 #define getlogin() ((char *)0) extern void NDECL(win32_abort); -#ifdef WIN32CON extern void FDECL(nttty_preference_update, (const char *)); extern void NDECL(toggle_mouse_support); extern void FDECL(map_subkeyvalue, (char *)); extern void NDECL(load_keyboard_handler); extern void NDECL(raw_clear_screen); -#endif #include #ifndef __BORLANDC__ @@ -237,7 +226,6 @@ int _RTLENTRY _EXPFUNC read (int __handle, void _FAR *__buf, unsigned __len); #endif extern int FDECL(set_win32_option, (const char *, const char *)); -#ifdef WIN32CON #define LEFTBUTTON FROM_LEFT_1ST_BUTTON_PRESSED #define RIGHTBUTTON RIGHTMOST_BUTTON_PRESSED #define MIDBUTTON FROM_LEFT_2ND_BUTTON_PRESSED @@ -245,6 +233,5 @@ extern int FDECL(set_win32_option, (const char *, const char *)); #ifdef CHANGE_COLOR extern int FDECL(alternative_palette, (char *)); #endif -#endif /* WIN32CON */ #endif /* NTCONF_H */ diff --git a/include/wintty.h b/include/wintty.h index 76007ed3f..e1a8a82e2 100644 --- a/include/wintty.h +++ b/include/wintty.h @@ -1,4 +1,4 @@ -/* NetHack 3.5 wintty.h $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */ +/* NetHack 3.5 wintty.h $NHDT-Date: 1429675543 2015/04/22 04:05:43 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.18 $ */ /* NetHack 3.5 wintty.h $Date: 2012/01/23 10:45:26 $ $Revision: 1.12 $ */ /* Copyright (c) David Cohrs, 1991,1992 */ /* NetHack may be freely redistributed. See license for details. */ @@ -241,15 +241,15 @@ E int FDECL(term_putc, (int c)); E int FDECL(term_flush, (void *desc)); E int FDECL(term_puts, (const char *str)); # endif /* MAC */ -# if defined(MSDOS) || defined(WIN32CON) -# if defined(SCREEN_BIOS) || defined(SCREEN_DJGPPFAST) || defined(WIN32CON) +# if defined(MSDOS) || defined(WIN32) +# if defined(SCREEN_BIOS) || defined(SCREEN_DJGPPFAST) || defined(WIN32) # undef putchar # undef putc # undef puts # define putchar(x) xputc(x) /* these are in video.c, nttty.c */ # define putc(x) xputc(x) # define puts(x) xputs(x) -# endif/*SCREEN_BIOS || SCREEN_DJGPPFAST || WIN32CON */ +# endif/*SCREEN_BIOS || SCREEN_DJGPPFAST || WIN32 */ # ifdef POSITIONBAR E void FDECL(video_update_positionbar, (char *)); # endif diff --git a/src/cmd.c b/src/cmd.c index 24b1791c5..4565424fd 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -1,4 +1,4 @@ -/* NetHack 3.5 cmd.c $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */ +/* NetHack 3.5 cmd.c $NHDT-Date: 1429675557 2015/04/22 04:05:57 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.187 $ */ /* NetHack 3.5 cmd.c $Date: 2013/03/16 01:44:28 $ $Revision: 1.162 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -3718,10 +3718,8 @@ dotravel(VOID_ARGS) } #ifdef PORT_DEBUG -# ifdef WIN32CON extern void NDECL(win32con_debug_keystrokes); extern void NDECL(win32con_handler_info); -# endif int wiz_port_debug() @@ -3735,9 +3733,9 @@ wiz_port_debug() char *menutext; void NDECL((*fn)); } menu_selections[] = { -#ifdef WIN32CON - {"test win32 keystrokes", win32con_debug_keystrokes}, - {"show keystroke handler information", win32con_handler_info}, +#ifdef WIN32 + {"test win32 keystrokes (tty only)", win32con_debug_keystrokes}, + {"show keystroke handler information (tty only)", win32con_handler_info}, #endif {(char *)0, (void NDECL((*)))0} /* array terminator */ }; diff --git a/src/files.c b/src/files.c index 57ed8ef1b..c3aacb9af 100644 --- a/src/files.c +++ b/src/files.c @@ -1,4 +1,4 @@ -/* NetHack 3.5 files.c $NHDT-Date: 1429136302 2015/04/15 22:18:22 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.166 $ */ +/* NetHack 3.5 files.c $NHDT-Date: 1429675565 2015/04/22 04:06:05 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.169 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1070,7 +1070,7 @@ get_saved_games() #if defined(SELECTSAVED) int n, j = 0; char **result = 0; -# ifdef WIN32CON +# ifdef WIN32 { char *foundfile; const char *fq_save; diff --git a/src/options.c b/src/options.c index 2354f1b03..1b5c6bca0 100644 --- a/src/options.c +++ b/src/options.c @@ -1,4 +1,4 @@ -/* NetHack 3.5 options.c $NHDT-Date: 1428088105 2015/04/03 19:08:25 $ $NHDT-Branch: scshunt-regex $:$NHDT-Revision: 1.182 $ */ +/* NetHack 3.5 options.c $NHDT-Date: 1429675568 2015/04/22 04:06:08 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.187 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -206,7 +206,7 @@ static struct Bool_Opt {"toptenwin",&iflags.toptenwin, FALSE, SET_IN_GAME}, {"travel", &flags.travelcmd, TRUE, SET_IN_GAME}, {"use_darkgray", &iflags.wc2_darkgray, TRUE, SET_IN_FILE}, -#ifdef WIN32CON +#ifdef WIN32 {"use_inverse", &iflags.wc_inverse, TRUE, SET_IN_GAME}, /*WC*/ #else {"use_inverse", &iflags.wc_inverse, FALSE, SET_IN_GAME}, /*WC*/ @@ -311,7 +311,7 @@ static struct Comp_Opt MAXOCLASSES, SET_IN_GAME }, #ifdef CHANGE_COLOR { "palette", -# ifndef WIN32CON +# ifndef WIN32 "palette (00c/880/-fff is blue/yellow/reverse white)", 15 , SET_IN_GAME }, # else @@ -372,7 +372,7 @@ static struct Comp_Opt { "videoshades", "gray shades to map to black/gray/white", 32, DISP_IN_GAME }, #endif -#ifdef WIN32CON +#ifdef WIN32 {"subkeyvalue", "override keystroke value", 7, SET_IN_FILE}, #endif { "windowcolors", "the foreground/background colors of windows", /*WC*/ @@ -1734,7 +1734,7 @@ boolean tinitial, tfrom_file; ) { int color_number, color_incr; -# ifndef WIN32CON +# ifndef WIN32 if (duplicate) complain_about_duplicate(opts,1); # endif # ifdef MAC @@ -1756,7 +1756,7 @@ boolean tinitial, tfrom_file; # ifdef MAC } # endif -#ifdef WIN32CON +#ifdef WIN32 op = string_for_opt(opts, TRUE); if (!alternative_palette(op)) badoption(opts); @@ -1802,7 +1802,7 @@ boolean tinitial, tfrom_file; color_number += color_incr; } } -# endif /* !WIN32CON */ +# endif /* !WIN32 */ if (!initial) { need_redraw = TRUE; } @@ -1923,7 +1923,7 @@ goodfruit: if (duplicate) complain_about_duplicate(opts,1); if (negated) bad_negation(fullname, FALSE); else if ((op = string_for_opt(opts, negated))) { -#ifdef WIN32CON +#ifdef WIN32 (void)strncpy(iflags.altkeyhandler, op, MAX_ALTKEYHANDLER - 5); load_keyboard_handler(); #endif @@ -2481,7 +2481,7 @@ goodfruit: /* no duplicate complaint here */ if (negated) bad_negation(fullname, FALSE); else { -#if defined(WIN32CON) +#if defined(WIN32) op = string_for_opt(opts, 0); map_subkeyvalue(op); #endif @@ -3782,7 +3782,7 @@ char *buf; defopt); else if (!strcmp(optname,"align")) Sprintf(buf, "%s", rolestring(flags.initalign, aligns, adj)); -#ifdef WIN32CON +#ifdef WIN32 else if (!strcmp(optname,"altkeyhandler")) Sprintf(buf, "%s", iflags.altkeyhandler[0] ? iflags.altkeyhandler : "default"); diff --git a/sys/share/pcmain.c b/sys/share/pcmain.c index 8e54f078a..788525783 100644 --- a/sys/share/pcmain.c +++ b/sys/share/pcmain.c @@ -1,4 +1,4 @@ -/* NetHack 3.5 pcmain.c $NHDT-Date: 1429135416 2015/04/15 22:03:36 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.60 $ */ +/* NetHack 3.5 pcmain.c $NHDT-Date: 1429675589 2015/04/22 04:06:29 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.61 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -55,6 +55,8 @@ extern void FDECL(nethack_exit,(int)); #ifdef WIN32 extern boolean getreturn_enabled; /* from sys/share/pcsys.c */ extern int redirect_stdout; /* from sys/share/pcsys.c */ +char *NDECL(exename); +char default_window_sys[] = "mswin"; #endif #if defined(MSWIN_GRAPHICS) @@ -79,7 +81,7 @@ unsigned _stklen = STKSIZ; * to help MinGW decide which entry point to choose. If both main and * WinMain exist, the resulting executable won't work correctly. */ -#ifndef MSWIN_GRAPHICS +#ifndef __MINGW32__ int main(argc,argv) int argc; @@ -88,6 +90,10 @@ char *argv[]; boolean resuming; sys_early_init(); +#ifdef WIN32 + Strcpy(default_window_sys, "tty"); +#endif + resuming = pcmain(argc,argv); #ifdef LAN_FEATURES init_lan_features(); @@ -97,7 +103,7 @@ char *argv[]; /*NOTREACHED*/ return 0; } -#endif /*MSWIN_GRAPHICS*/ +#endif boolean pcmain(argc,argv) @@ -142,7 +148,11 @@ char *argv[]; #endif hname = "NetHack"; /* used for syntax messages */ +#ifndef WIN32 choose_windows(DEFAULT_WINDOW_SYS); +#else + choose_windows(default_window_sys); +#endif #if !defined(AMIGA) && !defined(GNUDOS) /* Save current directory and make sure it gets restored when @@ -217,7 +227,7 @@ char *argv[]; # endif ami_wininit_data(); #endif -#ifdef WIN32CON +#ifdef WIN32 save_getreturn_status = getreturn_enabled; raw_clear_screen(); getreturn_enabled = TRUE; @@ -267,16 +277,14 @@ char *argv[]; * may do a prscore(). */ if (!strncmp(argv[1], "-s", 2)) { -#if defined(MSWIN_GRAPHICS) || defined(WIN32CON) +#if defined(WIN32) int sfd = (int)_fileno(stdout); redirect_stdout = (sfd >= 0) ? !isatty(sfd) : 0; -# ifdef MSWIN_GRAPHICS if (!redirect_stdout) { raw_printf("-s is not supported for the Graphical Interface\n"); nethack_exit(EXIT_SUCCESS); } -# endif #endif #if defined(CHDIR) && !defined(NOCWD_ASSUMPTIONS) @@ -336,11 +344,22 @@ char *argv[]; chdirx(hackdir,1); #endif -#ifdef MSDOS - /* We do this early for MSDOS because there are several - * display/tile related options that affect init_nhwindows() +#if defined(MSDOS) || defined (WIN32) + /* In 3.6.0, several ports process options before they init + * the window port. This allows settings that impact window + * ports to be specified or read from the sys or user config files. */ process_options(argc, argv); + +# ifdef WIN32 +/* + if (!strncmpi(windowprocs.name, "mswin", 5)) + NHWinMainInit(); + else +*/ + if (!strncmpi(windowprocs.name, "tty", 3)) + nttty_open(1); +# endif #endif #if defined(MSDOS) || defined(WIN32) @@ -353,14 +372,14 @@ char *argv[]; } #endif -#ifdef MSDOS +#if defined(MSDOS) || defined(WIN32) init_nhwindows(&argc,argv); #else init_nhwindows(&argc,argv); process_options(argc, argv); #endif -#ifdef WIN32CON +#ifdef WIN32 toggle_mouse_support(); /* must come after process_options */ #endif @@ -637,6 +656,19 @@ char *argv[]; case 'l': bigscreen = -1; break; +#endif +#ifdef WIN32 + case 'w': /* windowtype */ + if (strncmpi(&argv[0][2],"tty", 3)) { + nttty_open(1); + } +/* + else { + NHWinMainInit(); + } +*/ + choose_windows(&argv[0][2]); + break; #endif case '@': flags.randomall = 1; @@ -751,6 +783,32 @@ authorize_wizard_mode() #define PATH_SEPARATOR '\\' # endif + +#ifdef WIN32 +static char exenamebuf[PATHLEN]; + +char * +exename() +{ + int bsize = PATHLEN; + char *tmp = exenamebuf, *tmp2; + +# ifdef UNICODE + { + TCHAR wbuf[PATHLEN * 4]; + GetModuleFileName((HANDLE)0, wbuf, PATHLEN * 4); + WideCharToMultiByte(CP_ACP, 0, wbuf, -1, tmp, bsize, NULL, NULL); + } +# else + *(tmp + GetModuleFileName((HANDLE)0, tmp, bsize)) = '\0'; +# endif + tmp2 = strrchr(tmp, PATH_SEPARATOR); + if (tmp2) *tmp2 = '\0'; + tmp2++; + return tmp2; +} +#endif + #define EXEPATHBUFSZ 256 char exepathbuf[EXEPATHBUFSZ]; diff --git a/sys/share/pcsys.c b/sys/share/pcsys.c index 6aea59998..d83976838 100644 --- a/sys/share/pcsys.c +++ b/sys/share/pcsys.c @@ -1,4 +1,4 @@ -/* NetHack 3.5 pcsys.c $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */ +/* NetHack 3.5 pcsys.c $NHDT-Date: 1429675591 2015/04/22 04:06:31 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.24 $ */ /* NetHack 3.5 pcsys.c $Date: 2012/01/22 06:33:47 $ $Revision: 1.18 $ */ /* SCCS Id: @(#)pcsys.c 3.5 2002/01/22 */ /* NetHack may be freely redistributed. See license for details. */ @@ -54,7 +54,7 @@ STATIC_DCL boolean NDECL(comspec_exists); # endif #endif -#ifdef WIN32CON +#ifdef WIN32 extern int GUILaunched; /* from nttty.c */ #endif @@ -411,7 +411,7 @@ const char *str; return; } -#ifndef WIN32CON +#ifndef WIN32 void msmsg VA_DECL(const char *, fmt) VA_START(fmt); @@ -529,7 +529,7 @@ STATIC_OVL void msexit() restore_colors(); # endif #endif -#ifdef WIN32CON +#ifdef WIN32 /* Only if we started from the GUI, not the command prompt, * we need to get one last return, so the score board does * not vanish instantly after being created. diff --git a/sys/share/pcunix.c b/sys/share/pcunix.c index e5ce95e89..1f7c44576 100644 --- a/sys/share/pcunix.c +++ b/sys/share/pcunix.c @@ -1,4 +1,4 @@ -/* NetHack 3.5 pcunix.c $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */ +/* NetHack 3.5 pcunix.c $NHDT-Date: 1429675591 2015/04/22 04:06:31 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.31 $ */ /* NetHack 3.5 pcunix.c $Date: 2009/05/06 10:50:30 $ $Revision: 1.27 $ */ /* SCCS Id: @(#)pcunix.c 3.5 1994/11/07 */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ @@ -192,8 +192,9 @@ getlock() if(c == 'y' || c == 'Y') # ifndef SELF_RECOVER if(eraseoldlocks()) { -# if defined(WIN32CON) - clear_screen(); /* display gets fouled up otherwise */ +# if defined(WIN32) + if (!strncmpi(windowprocs.name, "tty", 3)) + clear_screen(); /* display gets fouled up otherwise */ # endif goto gotlock; } else { @@ -205,8 +206,9 @@ getlock() } # else /*SELF_RECOVER*/ if(recover_savefile()) { -# if defined(WIN32CON) - clear_screen(); /* display gets fouled up otherwise */ +# if defined(WIN32) + if (!strncmpi(windowprocs.name, "tty", 3)) + clear_screen(); /* display gets fouled up otherwise */ # endif goto gotlock; } else { diff --git a/sys/winnt/Makefile.gcc b/sys/winnt/Makefile.gcc index e08ace82e..73618e48c 100644 --- a/sys/winnt/Makefile.gcc +++ b/sys/winnt/Makefile.gcc @@ -1,5 +1,4 @@ -# NetHack 3.5 Makefile.gcc $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ -# NetHack 3.5 Makefile.gcc $Date: 2011/10/11 02:37:22 $ $Revision: 1.38 $ +# NetHack 3.5 Makefile.gcc $NHDT-Date: 1429675605 2015/04/22 04:06:45 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.45 $ # Copyright (c) NetHack PC Development Team 1993-2015 # #============================================================================== @@ -16,7 +15,7 @@ # This is used for building two versions of NetHack: # # A tty port utilizing the Win32 Console I/O subsystem, Console -# NetHack; +# NetHack. # # A Win32 native port built on the Windows API, Graphical NetHack or # NetHackW. @@ -31,11 +30,17 @@ # If you have any questions read the sys/winnt/Install.nt file included # with the distribution. #============================================================================== -#============================================================================== # BUILD DECISIONS SECTION # +# There are currently only 3 decisions that you have to make. +# 1. 32-bit or 64-bit? +# 2. Where do you want your build to end up? +# 3. Do you want debug information in the executable? +# +#============================================================================== # 1. 32-bit or 64-bit? # + # 64 bit #TARGET_CPU=x64 # @@ -43,17 +48,7 @@ TARGET_CPU=x86 # #--------------------------------------------------------------- -# 2. Graphical version or command line version? -# -# Graphical interface -# Set to Y for a graphical version -# Set to anything else (or undefine) for a tty version - -#GRAPHICAL = Y - -# -#--------------------------------------------------------------- -# 3. Where do you want the game to be built (which folder)? +# 2. Where do you want the game to be built (which folder)? # If not present prior to compilation it gets created. # @@ -61,7 +56,7 @@ GAMEDIR = ../binary # #--------------------------------------------------------------- -# 4. Do you want debug information in the executable? +# 3. Do you want debug information in the executable? # DEBUGINFO = Y @@ -79,14 +74,6 @@ DEBUGINFO = Y # # ################################################ -ifeq "$(GRAPHICAL)" "Y" -# Game Name -GAME = NetHackW -else -# Game Name -GAME = NetHack -endif - # # Source directories. Makedefs hardcodes these, don't change them. # @@ -107,8 +94,8 @@ SSYS = ../sys/share MSWSYS = ../sys/winnt # window port files (tty) TTY = ../win/tty -# window port files (Win32) -WIN32 = ../win/win32 +# window port files (WIN32) +MSWIN = ../win/win32 # Tile support files WSHR = ../win/share @@ -124,7 +111,7 @@ link = gcc # #========================================== -# Exe File Info. +# Level Compiler Info #========================================== # Yacc/Lex ... if you got 'em. @@ -159,6 +146,9 @@ YTABC = y_tab.c YTABH = y_tab.h LEXYYC = lexyy.c +#========================================== +# Exe File Info. +#========================================== # # Optional high-quality BSD random number generation routines # (see pcconf.h). Set to nothing if not used. @@ -167,39 +157,7 @@ LEXYYC = lexyy.c RANDOM = $(OBJ)/random.o #RANDOM = -ifeq "$(GRAPHICAL)" "Y" -WINPORT = $(O)tile.o $(O)mhaskyn.o $(O)mhdlg.o \ - $(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \ - $(O)mhmenu.o $(O)mhmsgwnd.o $(O)mhrip.o $(O)mhsplash.o \ - $(O)mhstatus.o $(O)mhtext.o $(O)mswproc.o $(O)winhack.o -WINPFLAG = -DTILES -DMSWIN_GRAPHICS -D_WIN32_IE=0x0400 -NHRES = $(O)winres.o -WINPINC = -I$(WIN32) -WINPHDR = $(WIN32)/mhaskyn.h $(WIN32)/mhdlg.h $(WIN32)/mhfont.h \ - $(WIN32)/mhinput.h $(WIN32)/mhmain.h $(WIN32)/mhmap.h \ - $(WIN32)/mhmenu.h $(WIN32)/mhmsg.h $(WIN32)/mhmsgwnd.h \ - $(WIN32)/mhrip.h $(WIN32)/mhstatus.h \ - $(WIN32)/mhtext.h $(WIN32)/resource.h $(WIN32)/winMS.h -WINPLIBS = -lcomctl32 -lwinmm -else -WINPORT = $(O)nttty.o -WINPFLAG= -DWIN32CON -WINPHDR = -NHRES = $(O)console.o -WINPINC = -WINPLIBS = -lwinmm -endif - -TILEUTIL16 = $(UTIL)/tile2bmp.exe -TILEBMP16 = $(SRC)/tiles.bmp - -TILEUTIL32 = $(UTIL)/til2bm32.exe -TILEBMP32 = $(SRC)/tiles32.bmp - -SOUND = $(OBJ)/ntsound.o - -#SOUND = - +WINPFLAG = -DTILES -DMSWIN_GRAPHICS -DWIN32CON -D_WIN32_IE=0x0400 -D_WIN32_WINNT=0x0501 # To store all the level files, # help files, etc. in a single library file. # USE_DLB = Y is left uncommented @@ -229,8 +187,11 @@ endif CFLAGSBASE = -c $(cflags) -I$(INCL) $(WINPINC) $(cdebug) -LFLAGSBASEC = $(linkdebug) -LFLAGSBASEG = $(linkdebug) -mwindows +#LFLAGSBASEC = $(linkdebug) +#LFLAGSBASEG = $(linkdebug) -mwindows + +conlibs = -lwinmm +guilibs = -lcomctl32 -lwinmm #========================================== # Util builds @@ -244,12 +205,7 @@ LFLAGSU = $(LFLAGSBASEC) #========================================== CFLAGS = $(CFLAGSBASE) $(WINPFLAG) $(DLBFLG) -lflags = $(LFLAGSBASE) -ifeq "$(GRAPHICAL)" "Y" -lflags = $(LFLAGSBASEG) -else -lflags = $(LFLAGSBASEC) -endif +lflags = $(LFLAGSBASEC) $(linkdebuf) ifeq "$(USE_DLB)" "Y" DLB = nhdat @@ -257,76 +213,6 @@ else DLB = endif -#========================================== -#================ RULES ================== -#========================================== - -.SUFFIXES: .exe .o .til .uu .c .y .l - -#========================================== -# Rules for files in src -#========================================== - -$(OBJ)/%.o : /%.c - $(cc) $(CFLAGS) -o$@ $< - -$(OBJ)/%.o : $(SRC)/%.c - $(cc) $(CFLAGS) -o$@ $< - -#========================================== -# Rules for files in sys/share -#========================================== - -$(OBJ)/%.o : $(SSYS)/%.c - $(cc) $(CFLAGS) -o$@ $< - -$(OBJ)/%.o : $(SSYS)/%.cpp - g++ $(CFLAGS) -std=c++11 -o$@ $< - -#========================================== -# Rules for files in sys/winnt -#========================================== - -$(OBJ)/%.o : $(MSWSYS)/%.c - $(cc) $(CFLAGS) -o$@ $< - -$(INCL)/%.h : $(MSWSYS)/%.h - @copy $< $@ - -#========================================== -# Rules for files in util -#========================================== - -$(OBJ)/%.o : $(UTIL)/%.c - $(cc) $(CFLAGSU) -o$@ $< - -#========================================== -# Rules for files in win/share -#========================================== - -$(OBJ)/%.o : $(WSHR)/%.c - $(cc) $(CFLAGS) -o$@ $< - -$(INCL)/%.h : $(WSHR)/%.h - @copy $< $@ - -#{$(WSHR)}.txt{$(DAT)}.txt: -# @copy $< $@ - -#========================================== -# Rules for files in win/tty -#========================================== - -$(OBJ)/%.o : $(TTY)/%.c - $(cc) $(CFLAGS) -o$@ $< - -#========================================== -# Rules for files in win/win32 -#========================================== - -$(OBJ)/%.o : $(WIN32)/%.c - $(cc) $(CFLAGS) -o$@ $< - #========================================== #================ MACROS ================== #========================================== @@ -429,17 +315,33 @@ OBJS = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \ $(VOBJ21) $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) \ $(VOBJ26) $(VOBJ27) $(REGEX) -WINPOBJ = $(WINPORT) +GUIOBJ = $(O)mhaskyn.o $(O)mhdlg.o \ + $(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \ + $(O)mhmenu.o $(O)mhmsgwnd.o $(O)mhrip.o $(O)mhsplash.o \ + $(O)mhstatus.o $(O)mhtext.o $(O)mswproc.o $(O)winhack.o -VVOBJ = $(O)version.o +GUIHDR = $(MSWIN)/mhaskyn.h $(MSWIN)/mhdlg.h $(MSWIN)/mhfont.h \ + $(MSWIN)/mhinput.h $(MSWIN)/mhmain.h $(MSWIN)/mhmap.h \ + $(MSWIN)/mhmenu.h $(MSWIN)/mhmsg.h $(MSWIN)/mhmsgwnd.h \ + $(MSWIN)/mhrip.h $(MSWIN)/mhstatus.h \ + $(MSWIN)/mhtext.h $(MSWIN)/resource.h $(MSWIN)/winMS.h -ALLOBJ = $(WINPOBJ) $(SOBJ) $(DLBOBJ) $(TTYOBJ) $(WOBJ) $(OBJS) $(VVOBJ) +KEYDLLS = $(GAMEDIR)/nhdefkey.dll $(GAMEDIR)/nh340key.dll $(GAMEDIR)/nhraykey.dll -ifeq "$(GRAPHICAL)" "Y" -OPTIONS_FILE = $(DAT)/guioptions -else -OPTIONS_FILE = $(DAT)/ttyoptions -endif +TILEUTIL16 = $(UTIL)/tile2bmp.exe +TILEBMP16 = $(SRC)/tiles.bmp + +TILEUTIL32 = $(UTIL)/til2bm32.exe +TILEBMP32 = $(SRC)/tiles32.bmp + +SOUND = $(OBJ)/ntsound.o +#SOUND = + +VVOBJ = $(O)version.o + +ALLOBJ = $(SOBJ) $(DLBOBJ) $(WOBJ) $(OBJS) $(VVOBJ) + +OPTIONS_FILE = $(DAT)\options #========================================== # Header file macros @@ -478,12 +380,75 @@ TILE_H = ../win/share/tile.h DATABASE = $(DAT)/data.base -# -# The name of the game. -# +#========================================== +#================ RULES ================== +#========================================== + +.SUFFIXES: .exe .o .til .uu .c .y .l + +#========================================== +# Rules for files in src +#========================================== + +$(OBJ)/%.o : /%.c + $(cc) $(CFLAGS) -o$@ $< + +$(OBJ)/%.o : $(SRC)/%.c + $(cc) $(CFLAGS) -o$@ $< + +#========================================== +# Rules for files in sys/share +#========================================== + +$(OBJ)/%.o : $(SSYS)/%.c + $(cc) $(CFLAGS) -o$@ $< + +$(OBJ)/%.o : $(SSYS)/%.cpp + g++ $(CFLAGS) -std=c++11 -o$@ $< + +#========================================== +# Rules for files in sys/winnt +#========================================== + +$(OBJ)/%.o : $(MSWSYS)/%.c + $(cc) $(CFLAGS) -o$@ $< + +$(INCL)/%.h : $(MSWSYS)/%.h + @copy $< $@ -GAMEFILE = $(GAMEDIR)/$(GAME).exe +#========================================== +# Rules for files in util +#========================================== + +$(OBJ)/%.o : $(UTIL)/%.c + $(cc) $(CFLAGSU) -o$@ $< + +#========================================== +# Rules for files in win/share +#========================================== + +$(OBJ)/%.o : $(WSHR)/%.c + $(cc) $(CFLAGS) -o$@ $< + +$(INCL)/%.h : $(WSHR)/%.h + @copy $< $@ + +#{$(WSHR)}.txt{$(DAT)}.txt: +# @copy $< $@ + +#========================================== +# Rules for files in win/tty +#========================================== + +$(OBJ)/%.o : $(TTY)/%.c + $(cc) $(CFLAGS) -o$@ $< +#========================================== +# Rules for files in win/win32 +#========================================== + +$(OBJ)/%.o : $(MSWIN)/%.c + $(cc) $(CFLAGS) -o$@ $< #========================================== #=============== TARGETS ================== @@ -500,20 +465,14 @@ GAMEFILE = $(GAMEDIR)/$(GAME).exe # default : install -# -# The game target. -# - -$(GAME) : $(O)obj.tag $(O)utility.tag graphicschk $(GAMEFILE) - @echo $(GAME) is up to date. - # # Everything # all : install -install: graphicschk $(GAME) $(O)install.tag +install: graphicschk $(O)obj.tag $(GAMEDIR)/NetHack.exe $(GAMEDIR)/NetHackW.exe $(O)install.tag + @echo NetHack is up to date. @echo Done. @@ -587,35 +546,36 @@ $(O)utility.tag: $(INCL)/date.h $(INCL)/onames.h $(INCL)/pm.h \ tileutil: $(U)gif2txt.exe $(U)gif2tx32.exe $(U)txt2ppm.exe @echo Optional tile development utilities are up to date. -ifeq "$(GRAPHICAL)" "Y" -$(NHRES): $(TILEBMP16) $(WIN32)/winhack.rc $(WIN32)/mnsel.bmp \ - $(WIN32)/mnselcnt.bmp $(WIN32)/mnunsel.bmp \ - $(WIN32)/petmark.bmp $(WIN32)/NetHack.ico $(WIN32)/rip.bmp \ - $(WIN32)/splash.bmp - @$(rc) -o$@ --include-dir $(WIN32) -i $(WIN32)/winhack.rc -else -$(NHRES): $(MSWSYS)/console.rc $(MSWSYS)/NetHack.ico +$(O)winres.o: $(TILEBMP16) $(MSWIN)/winhack.rc $(MSWIN)/mnsel.bmp \ + $(MSWIN)/mnselcnt.bmp $(MSWIN)/mnunsel.bmp \ + $(MSWIN)/petmark.bmp $(MSWIN)/NetHack.ico $(MSWIN)/rip.bmp \ + $(MSWIN)/splash.bmp + @$(rc) -o$@ --include-dir $(MSWIN) -i $(MSWIN)/winhack.rc + +$(O)conres.o: $(MSWSYS)/console.rc $(MSWSYS)/NetHack.ico @$(rc) -o$@ --include-dir $(MSWSYS) -i $(MSWSYS)/console.rc -endif #========================================== -# The main target. +# The game targets. #========================================== $(O)gamedir.tag: $(subst /,\,@if not exist $(GAMEDIR)/*.* echo creating directory $(GAMEDIR)) $(subst /,\,@if not exist $(GAMEDIR)/*.* mkdir $(GAMEDIR)) $(subst /,\,@echo directory created > $@) -ifeq "$(GRAPHICAL)" "Y" -$(GAMEFILE) : $(ALLOBJ) $(NHRES) $(O)gamedir.tag -else -$(GAMEFILE) : $(ALLOBJ) $(NHRES) $(O)gamedir.tag \ - $(GAMEDIR)/nhdefkey.dll $(GAMEDIR)/nh340key.dll $(GAMEDIR)/nhraykey.dll -endif - @echo Linking.... - $(link) $(lflags) -o$@ $(ALLOBJ) $(NHRES) $(WINPLIBS) -static -lstdc++ +$(GAMEDIR)/NetHack.exe : $(O)gamedir.tag $(O)tile.o $(O)nttty.o $(O)guistub.o \ + $(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)conres.o $(KEYDLLS) + @echo Linking $@... + $(link) $(lflags) -o$@ $(ALLOBJ) $(TTYOBJ) $(O)nttty.o $(O)tile.o \ + $(O)guistub.o $(O)conres.o $(conlibs) -static -lstdc++ $(subst /,\,@if exist $(O)install.tag del $(O)install.tag) +$(GAMEDIR)/NetHackW.exe : $(O)gamedir.tag $(O)tile.o $(O)ttystub.o \ + $(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)winres.o $(KEYDLLS) + @echo Linking $@... + $(link) $(lflags) -mwindows -o$@ $(ALLOBJ) $(GUIOBJ) $(O)tile.o $(O)ttystub.o \ + $(O)winres.o $(guilibs) -static -lstdc++ + $(subst /,\,@if exist $(O)install.tag del $(O)install.tag) $(O)nhdefkey.o: $(cc) $(CFLAGS) -DBUILD_DLL -o$@ $(MSWSYS)/nhdefkey.c @@ -649,11 +609,9 @@ $(GAME)_.ico : $(MSWSYS)/$(GAME).ico #========================================== graphicschk: -ifeq "$(GRAPHICAL)" "Y" @echo ---- @echo NOTE: This build will include tile support. @echo ---- -endif $(subst /,\,@echo graphicschk > graphicschk) # @@ -723,36 +681,36 @@ $(MSWSYS)/NetHack.ico : $(U)uudecode.exe $(MSWSYS)/nhico.uu $(subst /,\,copy NetHack.ico $@) del NetHack.ico -$(WIN32)/NetHack.ico : $(MSWSYS)/NetHack.ico +$(MSWIN)/NetHack.ico : $(MSWSYS)/NetHack.ico $(subst /,\,copy $< $@) -$(WIN32)/mnsel.bmp: $(U)uudecode.exe $(WIN32)/mnsel.uu - $(subst /,\,$(U)uudecode.exe $(WIN32)/mnsel.uu) +$(MSWIN)/mnsel.bmp: $(U)uudecode.exe $(MSWIN)/mnsel.uu + $(subst /,\,$(U)uudecode.exe $(MSWIN)/mnsel.uu) $(subst /,\,copy mnsel.bmp $@) del mnsel.bmp -$(WIN32)/mnselcnt.bmp: $(U)uudecode.exe $(WIN32)/mnselcnt.uu - $(subst /,\,$(U)uudecode.exe $(WIN32)/mnselcnt.uu) +$(MSWIN)/mnselcnt.bmp: $(U)uudecode.exe $(MSWIN)/mnselcnt.uu + $(subst /,\,$(U)uudecode.exe $(MSWIN)/mnselcnt.uu) $(subst /,\,copy mnselcnt.bmp $@) del mnselcnt.bmp -$(WIN32)/mnunsel.bmp: $(U)uudecode.exe $(WIN32)/mnunsel.uu - $(subst /,\,$(U)uudecode.exe $(WIN32)/mnunsel.uu) +$(MSWIN)/mnunsel.bmp: $(U)uudecode.exe $(MSWIN)/mnunsel.uu + $(subst /,\,$(U)uudecode.exe $(MSWIN)/mnunsel.uu) $(subst /,\,copy mnunsel.bmp $@) del mnunsel.bmp -$(WIN32)/petmark.bmp: $(U)uudecode.exe $(WIN32)/petmark.uu - $(subst /,\,$(U)uudecode.exe $(WIN32)/petmark.uu) +$(MSWIN)/petmark.bmp: $(U)uudecode.exe $(MSWIN)/petmark.uu + $(subst /,\,$(U)uudecode.exe $(MSWIN)/petmark.uu) $(subst /,\,copy petmark.bmp $@) del petmark.bmp -$(WIN32)/rip.bmp: $(U)uudecode.exe $(WIN32)/rip.uu - $(subst /,\,$(U)uudecode.exe $(WIN32)/rip.uu) +$(MSWIN)/rip.bmp: $(U)uudecode.exe $(MSWIN)/rip.uu + $(subst /,\,$(U)uudecode.exe $(MSWIN)/rip.uu) $(subst /,\,copy rip.bmp $@) del rip.bmp -$(WIN32)/splash.bmp: $(U)uudecode.exe $(WIN32)/splash.uu - $(subst /,\,$(U)uudecode.exe $(WIN32)/splash.uu) +$(MSWIN)/splash.bmp: $(U)uudecode.exe $(MSWIN)/splash.uu + $(subst /,\,$(U)uudecode.exe $(MSWIN)/splash.uu) $(subst /,\,copy splash.bmp $@) del splash.bmp @@ -993,17 +951,9 @@ $(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO) @$(link) $(LFLAGSU) -o$@ $(PPMWRITERS) $(TEXT_IO) -ifeq "$(GRAPHICAL)" "Y" $(TILEBMP16): $(TILEUTIL16) $(TILEFILES) @echo Creating 16x16 binary tile files (this may take some time) $(subst /,\,@$(U)tile2bmp $(TILEBMP16)) -#$(TILEBMP32): $(TILEUTIL32) $(TILEFILES32) -# @echo Creating 32x32 binary tile files (this may take some time) -# $(subst /,\,@$(U)til2bm32 $(TILEBMP32)) -else -$(TILEBMP16): -$(TILEBMP32): -endif $(U)tile2bmp.exe: $(O)tile2bmp.o $(TEXT_IO) @echo Linking $@... @@ -1128,6 +1078,21 @@ $(O)winnt.o: $(HACK_H) $(INCL)/win32api.h $(MSWSYS)/winnt.c $(O)ntsound.o: $(HACK_H) $(MSWSYS)/ntsound.c $(cc) $(CFLAGS) -o$@ $(MSWSYS)/ntsound.c + +#if you aren't linking in the full gui then +#include the following stub for proper linkage. + +$(O)guistub.o: $(HACK_H) $(MSWSYS)/stubs.c + @$(cc) $(CFLAGS) -DGUISTUB -o$@ $(MSWSYS)/stubs.c + +#if you aren't linking in the full tty then +#include the following stub for proper linkage. + +$(O)ttystub.o: $(HACK_H) $(MSWSYS)/ttystub.c + @$(cc) $(CFLAGS) -DTTYSTUB -o$@ $(MSWSYS)/stubs.c + +$(O)tile.o: $(SRC)/tile.c $(HACK_H) + # # util dependencies # @@ -1206,7 +1171,7 @@ $(O)wintext.o: ../win/X11/wintext.c $(HACK_H) $(INCL)/winX.h $(INCL)/xwindow.h $(cc) $(CFLAGS) -o$@ ../win/X11/wintext.c $(O)winval.o: ../win/X11/winval.c $(HACK_H) $(INCL)/winX.h $(cc) $(CFLAGS) -o$@ ../win/X11/winval.c -$(O)tile.o: tile.c $(HACK_H) +$(O)tile.o: $(SRC)/tile.c $(HACK_H) $(O)gnaskstr.o: ../win/gnome/gnaskstr.c ../win/gnome/gnaskstr.h \ ../win/gnome/gnmain.h $(cc) $(CFLAGS) $(GNOMEINC) -o$@ ../win/gnome/gnaskstr.c @@ -1258,7 +1223,6 @@ $(O)load_img.o: ../win/gem/load_img.c $(INCL)/load_img.h $(cc) $(CFLAGS) -o$@ ../win/gem/load_img.c $(O)gr_rect.o: ../win/gem/gr_rect.c $(INCL)/gr_rect.h $(cc) $(CFLAGS) -o$@ ../win/gem/gr_rect.c -$(O)tile.o: tile.c $(HACK_H) $(O)qt_win.o: ../win/Qt/qt_win.cpp $(HACK_H) $(INCL)/func_tab.h \ $(INCL)/dlb.h $(INCL)/patchlevel.h $(INCL)/tile2x11.h \ $(INCL)/qt_win.h $(INCL)/qt_clust.h $(INCL)/qt_kde0.h \ diff --git a/sys/winnt/Makefile.msc b/sys/winnt/Makefile.msc index 3a5bc767c..7a5efaad8 100644 --- a/sys/winnt/Makefile.msc +++ b/sys/winnt/Makefile.msc @@ -1,4 +1,4 @@ -# NetHack 3.5 Makefile.msc $NHDT-Date: 1428973004 2015/04/14 00:56:44 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.84 $ */ +# NetHack 3.5 Makefile.msc $NHDT-Date: 1429675607 2015/04/22 04:06:47 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.87 $ */ # Copyright (c) NetHack PC Development Team 1993-2015 # #============================================================================== @@ -15,10 +15,10 @@ # This is used for building two versions of NetHack: # # A tty port utilizing the Win32 Console I/O subsystem, Console -# NetHack; +# NetHack.exe # # A Win32 native port built on the Windows API, Graphical NetHack or -# NetHackW. +# NetHackW.exe # # In addition to your C compiler, # @@ -30,10 +30,11 @@ # If you have any questions read the sys/winnt/Install.nt file included # with the distribution. #============================================================================== -#============================================================================== -# This section is used to determine the version of Visual Studio we are using. -# We set VSVER to 0000 to flag any version that is too old or untested. +# Before we get started, this section is used to determine the version of +# Visual Studio we are using. We set VSVER to 0000 to flag any version that +# is too old or untested. # + !IF "$(_NMAKE_VER)" == "14.00.22310.1" VSVER=2015 !ELSEIF "$(_NMAKE_VER)" == "12.00.21005.1" @@ -43,21 +44,28 @@ VSVER=2010 !ELSE VSVER=0000 #untested version !ENDIF -# + #============================================================================== # BUILD DECISIONS SECTION # -# 1. 32-bit or 64-bit? +# There are currently only 3 decisions that you have to make. +# 1. 32-bit or 64-bit? +# 2. Where do you want your build to end up? +# 3. Do you want debug information in the executable? # +#--------------------------------------------------------------- +#============================================================================== +# 1. 32-bit or 64-bit? (comment/uncomment appropriate TARGET_CPU line) +# + !IF ($(VSVER) >= 2013) -# Set your desired target to x86 (32-bit) or x64 (64-bit) here by -# uncommenting the appropriate target size. # # 64 bit #TARGET_CPU=x64 # # 32 bit TARGET_CPU=x86 + !ELSE # For VS2010 use "setenv /x86" or "setenv /x64" before invoking make process # DO NOT DELETE THE FOLLOWING LINE @@ -65,27 +73,19 @@ TARGET_CPU=x86 !ENDIF # #--------------------------------------------------------------- -# 2. Graphical version or command line version? -# -# Graphical interface -# Uncomment below to set to Y for a graphical version - -GRAPHICAL = Y - -# -#--------------------------------------------------------------- -# 3. Where do you want the game to be built (which folder)? +# 2. Where do you want the game to be built (which folder)? # GAMEDIR = ..\binary # Game directory # #--------------------------------------------------------------- -# 4. Do you want debug information in the executable? +# 3. Do you want debug information in the executable? # - + DEBUGINFO = Y +#============================================================================== # This marks the end of the BUILD DECISIONS section. #============================================================================== # @@ -99,15 +99,12 @@ DEBUGINFO = Y # # ################################################ +# +#============================================================================== + # Set the gamedir according to your preference. # If not present prior to compilation it gets created. -!IF "$(GRAPHICAL)" == "Y" -GAME = NetHackW # Game Name -!ELSE -GAME = NetHack # Game Name -!ENDIF - # # Source directories. Makedefs hardcodes these, don't change them. # @@ -120,7 +117,7 @@ SRC = ..\src # Main source SSYS = ..\sys\share # Shared system files MSWSYS= ..\sys\winnt # mswin specific files TTY = ..\win\tty # window port files (tty) -WIN32 = ..\win\win32 # window port files (Win32) +MSWIN = ..\win\win32 # window port files (WIN32) WSHR = ..\win\share # Tile support files # @@ -133,63 +130,6 @@ cc=cl link=link rc=Rc -# -#============================================= -# Visual Studio versions >= 2013 specific stuff -#============================================= - -!IF "$(TARGET_CPU)" == "" -TARGET_CPU=x86 -!ENDIF - -# Common compiler flags: -# -c - compile without linking -# -W3 - Set warning level to level 3 (-W4 for 64-bit compilations) -# -Zi - generate debugging information -# -Od - disable all optimizations -# -Ox - use maximum optimizations -# -Zd - generate only public symbols and line numbers for debugging -# -GS - enable security checks -# -ccommon=-c -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -GS -c -lflags=/INCREMENTAL:NO /NOLOGO - -!IF "$(TARGET_CPU)" == "x86" -cflags = $(ccommon) -D_X86_=1 -DWIN32 -D_WIN32 -W3 -scall = -Gz - -!ELSEIF "$(TARGET_CPU)" == "x64" -cflags = $(ccommon) -D_AMD64_=1 -DWIN64 -D_WIN64 -DWIN32 -D_WIN32 -cflags = $(cflags) -W4 -scall = -!ENDIF - -# declarations for use on Intel x86 systems -!IF "$(TARGET_CPU)" == "x86" -DLLENTRY = @12 -!ENDIF - -# declarations for use on AMD64 systems -!IF "$(TARGET_CPU)" == "x64" -DLLENTRY = -!ENDIF - -# for Windows applications -conlflags = $(lflags) -subsystem:console,$(EXEVER) -guilflags = $(lflags) -subsystem:windows,$(EXEVER) -dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll - -# basic subsystem specific libraries, less the C Run-Time -baselibs = kernel32.lib $(optlibs) $(winsocklibs) advapi32.lib -winlibs = $(baselibs) user32.lib gdi32.lib comdlg32.lib winspool.lib - -# for Windows applications that use the C Run-Time libraries -conlibs = $(baselibs) -guilibs = $(winlibs) -# -# End of VS2013 and greater stuff -#============================================= - # #========================================== # Exe File Info. @@ -204,50 +144,7 @@ guilibs = $(winlibs) RANDOM = $(OBJ)\random.o #RANDOM = -PRECOMPHEAD = N # set to Y if you want to use precomp. headers - -# -# If you defined ZLIB_COMP in include/config.h and you need -# to link with the zlib.lib library, uncomment the line below. -# If necessary, prefix explicit path information to the file name -# otherwise it assumes the NetHack src directory. -# - -#ZLIB = zlib.lib - -!IF "$(GRAPHICAL)" == "Y" -WINPORT = $(O)tile.o $(O)mhaskyn.o $(O)mhdlg.o \ - $(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \ - $(O)mhmenu.o $(O)mhmsgwnd.o $(O)mhrip.o $(O)mhsplash.o \ - $(O)mhstatus.o $(O)mhtext.o $(O)mswproc.o $(O)winhack.o -WINPHDR = $(WIN32)\mhaskyn.h $(WIN32)\mhdlg.h $(WIN32)\mhfont.h \ - $(WIN32)\mhinput.h $(WIN32)\mhmain.h $(WIN32)\mhmap.h $(WIN32)\mhmenu.h \ - $(WIN32)\mhmsg.h $(WIN32)\mhmsgwnd.h $(WIN32)\mhrip.h $(WIN32)\mhstatus.h \ - $(WIN32)\mhtext.h $(WIN32)\resource.h $(WIN32)\winMS.h -WINDLLS = -WINPFLAG= -DTILES -DMSWIN_GRAPHICS -NHRES = $(O)winhack.res -WINPINC = -I$(WIN32) -COMCTRL = comctl32.lib -!ELSE -WINPORT = $(O)nttty.o -WINPHDR = -WINDLLS = $(GAMEDIR)\nhdefkey.dll $(GAMEDIR)\nh340key.dll $(GAMEDIR)\nhraykey.dll -WINPFLAG= -DWIN32CON -NHRES = $(O)console.res -WINPINC = -COMCTRL = -!ENDIF - -TILEUTIL16 = $(UTIL)\tile2bmp.exe -TILEBMP16 = $(SRC)\tiles.bmp - -TILEUTIL32 = $(UTIL)\til2bm32.exe -TILEBMP32 = $(SRC)\tiles32.bmp - -SOUND = $(OBJ)\ntsound.o - -#SOUND = +WINPFLAG= -DTILES -DMSWIN_GRAPHICS -DWIN32CON # To store all the level files, # help files, etc. in a single library file. @@ -261,6 +158,15 @@ DLBFLG = -DDLB DLBFLG = ! ENDIF +# +# If you defined ZLIB_COMP in include/config.h and you need +# to link with the zlib.lib library, uncomment the line below. +# If necessary, prefix explicit path information to the file name +# otherwise it assumes the NetHack src directory. +# + +#ZLIB = zlib.lib + #========================================== #========================================== # Setting up the compiler and linker @@ -322,11 +228,13 @@ cflags = $(cflags:-W4=-W3) # declarations for use on Intel x86 systems !IF "$(TARGET_CPU)" == "x86" DLLENTRY = @12 +EXEVER=5.01 !ENDIF # declarations for use on AMD64 systems !IF "$(TARGET_CPU)" == "x64" DLLENTRY = +EXEVER=5.02 !ENDIF # for Windows applications @@ -349,108 +257,21 @@ INCLDIR= /I..\include # Util builds #========================================== -cflagsUtil = $(cflags) $(INCLDIR) $(WINPFLAG) $(DLBFLG) -lflagsUtil = $(lflags) $(conlibs) +cflagsBuild = $(cflags) $(INCLDIR) $(WINPFLAG) $(DLBFLG) +lflagsBuild = $(lflags) $(conlibs) #========================================== # - Game build #========================================== -GAMEPDBFILE= /PDB:"$(O)$(GAME).PDB" -GAMEMAPFILE= /MAP:"$(O)$(GAME).MAP" LIBS= user32.lib winmm.lib $(ZLIB) -!IF ("$(GRAPHICAL)"=="Y") - -cflagsGame = $(cflags) $(guiflags) $(INCLDIR) $(WINPFLAG) $(DLBFLG) -lflagsGame = $(lflags) $(guilibs) $(GAMEPDBFILE) $(GAMEMAPFILE) - -!ELSE - -cflagsGame = $(cflags) $(conflags) $(INCLDIR) $(WINPFLAG) $(DLBFLG) -lflagsGame = $(lflags) $(conlibs) $(GAMEPDBFILE) $(GAMEMAPFILE) - -!ENDIF - -GAMEFILE = $(GAMEDIR)\$(GAME).exe # whole thing - ! IF ("$(USE_DLB)"=="Y") DLB = nhdat ! ELSE DLB = ! ENDIF -#========================================== -#================ RULES ================== -#========================================== - -.SUFFIXES: .exe .o .til .uu .c .y .l - -#========================================== -# Rules for files in src -#========================================== - -.c{$(OBJ)}.o: - @$(cc) $(cflagsUtil) -Fo$@ $< - -{$(SRC)}.c{$(OBJ)}.o: - @$(CC) $(cflagsUtil) -Fo$@ $< - -#========================================== -# Rules for files in sys\share -#========================================== - -{$(SSYS)}.c{$(OBJ)}.o: - @$(CC) $(cflagsUtil) -Fo$@ $< - -{$(SSYS)}.cpp{$(OBJ)}.o: - @$(CC) $(cflagsUtil) -Fo$@ $< - -#========================================== -# Rules for files in sys\winnt -#========================================== - -{$(MSWSYS)}.c{$(OBJ)}.o: - @$(CC) $(cflagsUtil) -Fo$@ $< - -{$(MSWSYS)}.h{$(INCL)}.h: - @copy $< $@ - -#========================================== -# Rules for files in util -#========================================== - -{$(UTIL)}.c{$(OBJ)}.o: - @$(CC) $(cflagsUtil) -Fo$@ $< - -#========================================== -# Rules for files in win\share -#========================================== - -{$(WSHR)}.c{$(OBJ)}.o: - @$(CC) $(cflagsUtil) -Fo$@ $< - -{$(WSHR)}.h{$(INCL)}.h: - @copy $< $@ - -#{$(WSHR)}.txt{$(DAT)}.txt: -# @copy $< $@ - -#========================================== -# Rules for files in win\tty -#========================================== - -{$(TTY)}.c{$(OBJ)}.o: - @$(CC) $(cflagsUtil) -Fo$@ $< - - -#========================================== -# Rules for files in win\win32 -#========================================== - -{$(WIN32)}.c{$(OBJ)}.o: - @$(cc) $(cflagsUtil) -Fo$@ $< - #========================================== #================ MACROS ================== #========================================== @@ -531,6 +352,7 @@ VOBJ24 = $(O)track.o $(O)trap.o $(O)u_init.o $(O)uhitm.o VOBJ25 = $(O)vault.o $(O)vis_tab.o $(O)vision.o $(O)weapon.o VOBJ26 = $(O)were.o $(O)wield.o $(O)windows.o $(O)wizard.o VOBJ27 = $(O)worm.o $(O)worn.o $(O)write.o $(O)zap.o + DLBOBJ = $(O)dlb.o REGEX = $(O)cppregex.o @@ -547,17 +369,34 @@ OBJS = $(VOBJ01) $(VOBJ02) $(VOBJ03) $(VOBJ04) $(VOBJ05) \ $(VOBJ21) $(VOBJ22) $(VOBJ23) $(VOBJ24) $(VOBJ25) \ $(VOBJ26) $(VOBJ27) $(VOBJ28) $(VOBJ29) $(REGEX) -WINPOBJ = $(WINPORT) +GUIOBJ = $(O)mhaskyn.o $(O)mhdlg.o \ + $(O)mhfont.o $(O)mhinput.o $(O)mhmain.o $(O)mhmap.o \ + $(O)mhmenu.o $(O)mhmsgwnd.o $(O)mhrip.o $(O)mhsplash.o \ + $(O)mhstatus.o $(O)mhtext.o $(O)mswproc.o $(O)winhack.o + +GUIHDR = $(MSWIN)\mhaskyn.h $(MSWIN)\mhdlg.h $(MSWIN)\mhfont.h \ + $(MSWIN)\mhinput.h $(MSWIN)\mhmain.h $(MSWIN)\mhmap.h $(MSWIN)\mhmenu.h \ + $(MSWIN)\mhmsg.h $(MSWIN)\mhmsgwnd.h $(MSWIN)\mhrip.h $(MSWIN)\mhstatus.h \ + $(MSWIN)\mhtext.h $(MSWIN)\resource.h $(MSWIN)\winMS.h + +COMCTRL = comctl32.lib + +KEYDLLS = $(GAMEDIR)\nhdefkey.dll $(GAMEDIR)\nh340key.dll $(GAMEDIR)\nhraykey.dll + +TILEUTIL16 = $(UTIL)\tile2bmp.exe +TILEBMP16 = $(SRC)\tiles.bmp + +TILEUTIL32 = $(UTIL)\til2bm32.exe +TILEBMP32 = $(SRC)\tiles32.bmp + +SOUND = $(OBJ)\ntsound.o VVOBJ = $(O)version.o -ALLOBJ = $(WINPOBJ) $(SOBJ) $(DLBOBJ) $(TTYOBJ) $(WOBJ) $(OBJS) $(VVOBJ) +ALLOBJ = $(SOBJ) $(DLBOBJ) $(WOBJ) $(OBJS) $(VVOBJ) + +OPTIONS_FILE = $(DAT)\options -!IF "$(GRAPHICAL)" == "Y" -OPTIONS_FILE = $(DAT)\guioptions -!ELSE -OPTIONS_FILE = $(DAT)\ttyoptions -!ENDIF #========================================== # Header file macros #========================================== @@ -595,11 +434,76 @@ TILE_H = ..\win\share\tile.h DATABASE = $(DAT)\data.base -# -# The name of the game. -# +#========================================== +#================ RULES ================== +#========================================== + +.SUFFIXES: .exe .o .til .uu .c .y .l + +#========================================== +# Rules for files in src +#========================================== + +.c{$(OBJ)}.o: + @$(cc) $(cflagsBuild) -Fo$@ $< + +{$(SRC)}.c{$(OBJ)}.o: + @$(cc) $(cflagsBuild) -Fo$@ $< + +#========================================== +# Rules for files in sys\share +#========================================== -GAMEFILE = $(GAMEDIR)\$(GAME).exe +{$(SSYS)}.c{$(OBJ)}.o: + @$(cc) $(cflagsBuild) -Fo$@ $< + +{$(SSYS)}.cpp{$(OBJ)}.o: + @$(CC) $(cflagsBuild) /EHsc -Fo$@ $< + +#========================================== +# Rules for files in sys\winnt +#========================================== + +{$(MSWSYS)}.c{$(OBJ)}.o: + @$(cc) $(cflagsBuild) -Fo$@ $< + +{$(MSWSYS)}.h{$(INCL)}.h: + @copy $< $@ + +#========================================== +# Rules for files in util +#========================================== + +{$(UTIL)}.c{$(OBJ)}.o: + @$(cc) $(cflagsBuild) -Fo$@ $< + +#========================================== +# Rules for files in win\share +#========================================== + +{$(WSHR)}.c{$(OBJ)}.o: + @$(cc) $(cflagsBuild) -Fo$@ $< + +{$(WSHR)}.h{$(INCL)}.h: + @copy $< $@ + +#{$(WSHR)}.txt{$(DAT)}.txt: +# @copy $< $@ + +#========================================== +# Rules for files in win\tty +#========================================== + +{$(TTY)}.c{$(OBJ)}.o: + $(cc) $(cflagsBuild) -Fo$@ $< + + +#========================================== +# Rules for files in win\win32 +#========================================== + +{$(MSWIN)}.c{$(OBJ)}.o: + @$(cc) $(cflagsBuild) -Fo$@ $< #========================================== #=============== TARGETS ================== @@ -614,19 +518,15 @@ default : install # The game target. # -$(GAME): $(O)obj.tag $(O)utility.tag envchk $(GAMEFILE) - @echo $(GAME) is up to date. - # # Everything # all : install -install: envchk $(GAME) $(O)install.tag +install: envchk $(O)obj.tag $(O)utility.tag $(GAMEDIR)\NetHack.exe $(GAMEDIR)\NetHackW.exe $(O)install.tag @echo Done. - $(O)install.tag: $(DAT)\data $(DAT)\rumors $(DAT)\dungeon \ $(DAT)\oracles $(DAT)\quest.dat $(O)sp_lev.tag $(DLB) ! IF ("$(USE_DLB)"=="Y") @@ -693,26 +593,25 @@ $(O)sp_lev.tag: $(O)utility.tag $(DAT)\bigroom.des $(DAT)\castle.des \ $(O)utility.tag: $(INCL)\date.h $(INCL)\onames.h $(INCL)\pm.h \ $(SRC)\monstr.c $(SRC)\vis_tab.c \ $(U)levcomp.exe $(INCL)\vis_tab.h \ - $(U)dgncomp.exe + $(U)dgncomp.exe $(TILEUTIL16) @echo utilities made >$@ @echo utilities made. tileutil: $(U)gif2txt.exe $(U)gif2tx32.exe $(U)txt2ppm.exe @echo Optional tile development utilities are up to date. -!IF "$(GRAPHICAL)"=="Y" -$(NHRES): $(TILEBMP16) $(WIN32)\winhack.rc $(WIN32)\mnsel.bmp \ - $(WIN32)\mnselcnt.bmp $(WIN32)\mnunsel.bmp \ - $(WIN32)\petmark.bmp $(WIN32)\NetHack.ico $(WIN32)\rip.bmp \ - $(WIN32)\splash.bmp - @$(rc) -r -fo$@ -i$(WIN32) -dNDEBUG $(WIN32)\winhack.rc -!ELSE -$(NHRES): $(MSWSYS)\console.rc $(MSWSYS)\NetHack.ico +$(O)winhack.res: $(TILEBMP16) $(MSWIN)\winhack.rc $(MSWIN)\mnsel.bmp \ + $(MSWIN)\mnselcnt.bmp $(MSWIN)\mnunsel.bmp \ + $(MSWIN)\petmark.bmp $(MSWIN)\NetHack.ico $(MSWIN)\rip.bmp \ + $(MSWIN)\splash.bmp + @$(rc) -r -fo$@ -i$(MSWIN) -dNDEBUG $(MSWIN)\winhack.rc + +$(O)console.res: $(MSWSYS)\console.rc $(MSWSYS)\NetHack.ico @$(rc) -r -fo$@ -i$(MSWSYS) -dNDEBUG $(MSWSYS)\console.rc -!ENDIF + #========================================== -# The main target. +# The game targets. #========================================== # The section for linking the NetHack image looks a little strange at @@ -736,16 +635,60 @@ $(NHRES): $(MSWSYS)\console.rc $(MSWSYS)\NetHack.ico # with ^ as we have done below. Every occurence # of a in $(ALLOBJ) is replaced by # <+>. + +GAMEOBJ=$(ALLOBJ:^ =^ +) +GAMEOBJ=$(GAMEOBJ:^ =^ +) + # # DO NOT INDENT THE << below! # -$(GAMEFILE) : $(ALLOBJ) $(NHRES) $(O)gamedir.tag $(WINDLLS) +# NetHack +# full gui linkage libs: +# libs: $(LIBS) $(conlibs) $(guilibs) $(COMCTRL) +# objs: $(GAMEOBJ) $(TTYOBJ) $(O)nttty.o $(O)tile.o $(GUIOBJ) +# otherwise: +# libs: $(LIBS) $(conlibs) +# objs: $(GAMEOBJ) $(TTYOBJ) $(O)tile.o $(O)guistub.o + + +$(GAMEDIR)\NetHack.exe : $(O)gamedir.tag $(O)tile.o $(O)nttty.o $(O)guistub.o \ + $(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)console.res $(KEYDLLS) @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR) - @echo Linking $@ - $(link) $(lflagsGame) /STACK:2048 $(LIBS) $(COMCTRL) -out:$@ @<<$(GAME).lnk - $(ALLOBJ:^ =^ - ) $(NHRES) + @echo Linking $@ ... + $(link) $(lflagsBuild) $(conlflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB /MAP:$(O)$(AB).MAP \ + $(LIBS) $(conlibs) -out:$@ @<<$(@B).lnk + $(GAMEOBJ) + $(TTYOBJ) + $(O)nttty.o + $(O)tile.o + $(O)guistub.o + $(O)console.res +<< + @if exist $(O)install.tag del $(O)install.tag + @if exist $(GAMEDIR)\$(GAME).bak del $(GAMEDIR)\$(GAME).bak + +# NetHackW +# full tty linkage libs: +# libs: $(LIBS) $(guilibs) $(COMCTRL) +# objs: $(GAMEOBJ) $(GUIOBJ) $(TTYOBJ) $(O)tile.o $(O)nttty.o +# otherwise: +# libs: $(LIBS) $(guilibs) $(COMCTRL) +# objs: $(GAMEOBJ) $(GUIOBJ) $(O)tile.o $(O)ttystub.o + +$(GAMEDIR)\NetHackW.exe : $(O)gamedir.tag $(O)tile.o $(O)ttystub.o \ + $(ALLOBJ) $(TTYOBJ) $(GUIOBJ) $(O)winhack.res $(O)gamedir.tag $(KEYDLLS) + @if not exist $(GAMEDIR)\*.* mkdir $(GAMEDIR) + @echo Linking $@ + $(link) $(lflagsBuild) $(guilflags) /STACK:2048 /PDB:$(GAMEDIR)\$(@B).PDB \ + /MAP:$(O)$(AB).MAP $(LIBS) $(guilibs) $(COMCTRL) -out:$@ @<<$(@B).lnk + $(GAMEOBJ) + $(GUIOBJ) + $(O)tile.o + $(O)ttystub.o + $(O)winhack.res << @if exist $(O)install.tag del $(O)install.tag @if exist $(GAMEDIR)\$(GAME).bak del $(GAMEDIR)\$(GAME).bak @@ -821,21 +764,21 @@ $(GAMEDIR)\nhraykey.dll : $(O)$(@B).o $(O)gamedir.tag $(O)$(@B).def #========================================== $(U)nhsizes.exe: $(O)nhsizes.o @echo Linking $@ - $(link) $(lflagsUtil) -out:$@ $(O)nhsizes.o $(O)panic.o $(O)alloc.o + $(link) $(lflagsBuild) -out:$@ $(O)nhsizes.o $(O)panic.o $(O)alloc.o $(O)nhsizes.o: $(CONFIG_H) nhsizes.c - @$(CC) $(cflagsUtil) -Fo$@ nhsizes.c + @$(cc) $(cflagsBuild) -Fo$@ nhsizes.c $(U)makedefs.exe: $(MAKEOBJS) @echo Linking $@ - @$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(MAKEOBJS) + @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(MAKEOBJS) $(O)makedefs.o: $(CONFIG_H) $(INCL)\monattk.h $(INCL)\monflag.h $(INCL)\objclass.h \ $(INCL)\monsym.h $(INCL)\qtext.h $(INCL)\patchlevel.h \ $(U)makedefs.c @if not exist $(OBJ)\*.* echo creating directory $(OBJ) @if not exist $(OBJ)\*.* mkdir $(OBJ) - @$(CC) $(cflagsUtil) -Fo$@ $(U)makedefs.c + @$(cc) $(cflagsBuild) -Fo$@ $(U)makedefs.c # # date.h should be remade every time any of the source or include @@ -877,48 +820,48 @@ $(DAT)\bogusmon: $(DAT)\bogusmon.txt $(U)makedefs.exe $(U)uudecode.exe: $(O)uudecode.o @echo Linking $@ - @$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)uudecode.o + @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)uudecode.o $(O)uudecode.o: $(SSYS)\uudecode.c - @$(CC) $(cflagsUtil) /D_CRT_SECURE_NO_DEPRECATE -Fo$@ $(SSYS)\uudecode.c + @$(cc) $(cflagsBuild) /D_CRT_SECURE_NO_DEPRECATE -Fo$@ $(SSYS)\uudecode.c $(MSWSYS)\NetHack.ico : $(U)uudecode.exe $(MSWSYS)\nhico.uu chdir $(MSWSYS) ..\..\util\uudecode.exe nhico.uu chdir ..\..\src -$(WIN32)\NetHack.ico : $(U)uudecode.exe $(MSWSYS)\nhico.uu - chdir $(WIN32) +$(MSWIN)\NetHack.ico : $(U)uudecode.exe $(MSWSYS)\nhico.uu + chdir $(MSWIN) ..\..\util\uudecode.exe ../../sys/winnt/nhico.uu chdir ..\..\src -$(WIN32)\mnsel.bmp: $(U)uudecode.exe $(WIN32)\mnsel.uu - chdir $(WIN32) +$(MSWIN)\mnsel.bmp: $(U)uudecode.exe $(MSWIN)\mnsel.uu + chdir $(MSWIN) ..\..\util\uudecode.exe mnsel.uu chdir ..\..\src -$(WIN32)\mnselcnt.bmp: $(U)uudecode.exe $(WIN32)\mnselcnt.uu - chdir $(WIN32) +$(MSWIN)\mnselcnt.bmp: $(U)uudecode.exe $(MSWIN)\mnselcnt.uu + chdir $(MSWIN) ..\..\util\uudecode.exe mnselcnt.uu chdir ..\..\src -$(WIN32)\mnunsel.bmp: $(U)uudecode.exe $(WIN32)\mnunsel.uu - chdir $(WIN32) +$(MSWIN)\mnunsel.bmp: $(U)uudecode.exe $(MSWIN)\mnunsel.uu + chdir $(MSWIN) ..\..\util\uudecode.exe mnunsel.uu chdir ..\..\src -$(WIN32)\petmark.bmp: $(U)uudecode.exe $(WIN32)\petmark.uu - chdir $(WIN32) +$(MSWIN)\petmark.bmp: $(U)uudecode.exe $(MSWIN)\petmark.uu + chdir $(MSWIN) ..\..\util\uudecode.exe petmark.uu chdir ..\..\src -$(WIN32)\rip.bmp: $(U)uudecode.exe $(WIN32)\rip.uu - chdir $(WIN32) +$(MSWIN)\rip.bmp: $(U)uudecode.exe $(MSWIN)\rip.uu + chdir $(MSWIN) ..\..\util\uudecode.exe rip.uu chdir ..\..\src -$(WIN32)\splash.bmp: $(U)uudecode.exe $(WIN32)\splash.uu - chdir $(WIN32) +$(MSWIN)\splash.bmp: $(U)uudecode.exe $(MSWIN)\splash.uu + chdir $(MSWIN) ..\..\util\uudecode.exe splash.uu chdir ..\..\src @@ -933,18 +876,18 @@ $(U)lev_yacc.c $(INCL)\lev_comp.h: $(U)lev_comp.y nmake -nologo -f ..\win\win32\levstuff.mak default $(O)lev_yacc.o: $(HACK_H) $(SP_LEV_H) $(INCL)\lev_comp.h $(U)lev_yacc.c - @$(CC) $(cflagsUtil) -Fo$@ $(U)lev_yacc.c + @$(cc) $(cflagsBuild) -Fo$@ $(U)lev_yacc.c $(O)lev_lex.o: $(HACK_H) $(INCL)\lev_comp.h $(SP_LEV_H) \ $(U)lev_lex.c - @$(CC) $(cflagsUtil) -Fo$@ $(U)lev_lex.c + @$(cc) $(cflagsBuild) -Fo$@ $(U)lev_lex.c $(O)lev_main.o: $(U)lev_main.c $(HACK_H) $(SP_LEV_H) - @$(CC) $(cflagsUtil) -Fo$@ $(U)lev_main.c + @$(cc) $(cflagsBuild) -Fo$@ $(U)lev_main.c $(U)levcomp.exe: $(LEVCOMPOBJS) @echo Linking $@ - @$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk + @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk $(LEVCOMPOBJS:^ =^ ) << @@ -959,18 +902,18 @@ $(U)dgn_yacc.c $(INCL)\dgn_comp.h : $(U)dgn_comp.y nmake -nologo -f ..\win\win32\dgnstuff.mak default $(O)dgn_yacc.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h $(U)dgn_yacc.c - @$(CC) $(cflagsUtil) -Fo$@ $(U)dgn_yacc.c + @$(cc) $(cflagsBuild) -Fo$@ $(U)dgn_yacc.c $(O)dgn_lex.o: $(HACK_H) $(DGN_FILE_H) $(INCL)\dgn_comp.h \ $(U)dgn_lex.c - @$(CC) $(cflagsUtil) -Fo$@ $(U)dgn_lex.c + @$(cc) $(cflagsBuild) -Fo$@ $(U)dgn_lex.c $(O)dgn_main.o: $(HACK_H) $(U)dgn_main.c - @$(CC) $(cflagsUtil) -Fo$@ $(U)dgn_main.c + @$(cc) $(cflagsBuild) -Fo$@ $(U)dgn_main.c $(U)dgncomp.exe: $(DGNCOMPOBJS) @echo Linking $@ - @$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk + @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk $(DGNCOMPOBJS:^ =^ ) << @@ -1004,11 +947,9 @@ envchk: # @echo Warning, the CL Environment variable is defined: # @echo CL=$(CL) ! ENDIF -! IF "$(GRAPHICAL)"=="Y" @echo ---- @echo NOTE: This build will include tile support. @echo ---- -! ENDIF #========================================== #=========== SECONDARY TARGETS ============ @@ -1028,7 +969,7 @@ $(INCL)\win32api.h: $(MSWSYS)\win32api.h $(U)dlb_main.exe: $(DLBOBJ) $(O)dlb.o @echo Linking $@ - @$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk + @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk $(O)dlb_main.o $(O)dlb.o $(O)alloc.o @@ -1036,10 +977,10 @@ $(U)dlb_main.exe: $(DLBOBJ) $(O)dlb.o << $(O)dlb.o: $(O)dlb_main.o $(O)alloc.o $(O)panic.o $(INCL)\dlb.h - @$(CC) $(cflagsUtil) /Fo$@ $(SRC)\dlb.c + @$(cc) $(cflagsBuild) /Fo$@ $(SRC)\dlb.c $(O)dlb_main.o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h - @$(CC) $(cflagsUtil) /Fo$@ $(UTIL)\dlb_main.c + @$(cc) $(cflagsBuild) /Fo$@ $(UTIL)\dlb_main.c $(DAT)\porthelp: $(MSWSYS)\porthelp @copy $(MSWSYS)\porthelp $@ >nul @@ -1047,7 +988,7 @@ $(DAT)\porthelp: $(MSWSYS)\porthelp nhdat: $(U)dlb_main.exe $(DAT)\data $(DAT)\oracles $(OPTIONS_FILE) \ $(DAT)\quest.dat $(DAT)\rumors $(DAT)\help $(DAT)\hh $(DAT)\cmdhelp \ $(DAT)\history $(DAT)\opthelp $(DAT)\wizhelp $(DAT)\dungeon $(DAT)\porthelp \ - $(DAT)\license $(DAT)\engrave $(DAT)\epitaph $(DAT)\bogusmon $(DAT)\tribute $(O)sp_lev.tag + $(DAT)\license $(DAT)\engrave $(DAT)\epitaph $(DAT)\bogusmon $(O)sp_lev.tag cd $(DAT) echo data >dlb.lst echo oracles >>dlb.lst @@ -1060,7 +1001,6 @@ nhdat: $(U)dlb_main.exe $(DAT)\data $(DAT)\oracles $(OPTIONS_FILE) \ echo engrave >>dlb.lst echo epitaph >>dlb.lst echo bogusmon >>dlb.lst - echo tribute >>dlb.lst echo help >>dlb.lst echo hh >>dlb.lst echo cmdhelp >>dlb.lst @@ -1079,10 +1019,10 @@ nhdat: $(U)dlb_main.exe $(DAT)\data $(DAT)\oracles $(OPTIONS_FILE) \ $(U)recover.exe: $(RECOVOBJS) @echo Linking $@ - $(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(RECOVOBJS) + $(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(RECOVOBJS) $(O)recover.o: $(CONFIG_H) $(U)recover.c $(INCL)\win32api.h - @$(CC) $(cflagsUtil) -Fo$@ $(U)recover.c + @$(cc) $(cflagsBuild) -Fo$@ $(U)recover.c #========================================== # Tile Mapping @@ -1094,31 +1034,31 @@ $(SRC)\tile.c: $(U)tilemap.exe $(U)tilemap.exe: $(O)tilemap.o @echo Linking $@ - @$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)tilemap.o + @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)tilemap.o $(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H) - @$(CC) $(cflagsUtil) -Fo$@ $(WSHR)\tilemap.c + @$(cc) $(cflagsBuild) -Fo$@ $(WSHR)\tilemap.c $(O)tiletx32.o: $(WSHR)\tilemap.c $(HACK_H) - @$(CC) $(cflagsUtil) /DTILETEXT /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tilemap.c + @$(cc) $(cflagsBuild) /DTILETEXT /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tilemap.c $(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H) - @$(CC) $(cflagsUtil) /DTILETEXT -Fo$@ $(WSHR)\tilemap.c + @$(cc) $(cflagsBuild) /DTILETEXT -Fo$@ $(WSHR)\tilemap.c $(O)gifread.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H) - @$(CC) $(cflagsUtil) -I$(WSHR) -Fo$@ $(WSHR)\gifread.c + @$(cc) $(cflagsBuild) -I$(WSHR) -Fo$@ $(WSHR)\gifread.c $(O)gifrd32.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H) - @$(CC) $(cflagsUtil) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\gifread.c + @$(cc) $(cflagsBuild) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\gifread.c $(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(TILE_H) - @$(CC) $(cflagsUtil) -I$(WSHR) -Fo$@ $(WSHR)\ppmwrite.c + @$(cc) $(cflagsBuild) -I$(WSHR) -Fo$@ $(WSHR)\ppmwrite.c $(O)tiletext.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H) - @$(CC) $(cflagsUtil) -I$(WSHR) -Fo$@ $(WSHR)\tiletext.c + @$(cc) $(cflagsBuild) -I$(WSHR) -Fo$@ $(WSHR)\tiletext.c $(O)tilete32.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H) - @$(CC) $(cflagsUtil) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tiletext.c + @$(cc) $(cflagsBuild) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tiletext.c #========================================== # Optional Tile Utilities @@ -1126,7 +1066,7 @@ $(O)tilete32.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H) $(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO) @echo Linking $@ - @$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk + @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk $(GIFREADERS:^ =^ ) $(TEXT_IO:^ =^ @@ -1135,7 +1075,7 @@ $(U)gif2txt.exe: $(GIFREADERS) $(TEXT_IO) $(U)gif2tx32.exe: $(GIFREADERS32) $(TEXT_IO32) @echo Linking $@ - @$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk + @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk $(GIFREADERS32:^ =^ ) $(TEXT_IO32:^ =^ @@ -1144,14 +1084,13 @@ $(U)gif2tx32.exe: $(GIFREADERS32) $(TEXT_IO32) $(U)txt2ppm.exe: $(PPMWRITERS) $(TEXT_IO) @echo Linking $@ - @$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk + @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk $(PPMWRITERS:^ =^ ) $(TEXT_IO:^ =^ ) << -!IF "$(GRAPHICAL)"=="Y" $(TILEBMP16): $(TILEUTIL16) $(TILEFILES) @echo Creating 16x16 binary tile files (this may take some time) @$(U)tile2bmp $(TILEBMP16) @@ -1159,14 +1098,10 @@ $(TILEBMP16): $(TILEUTIL16) $(TILEFILES) # @echo Creating 32x32 binary tile files (this may take some time) # @$(U)til2bm32 $(TILEBMP32) -!ELSE -$(TILEBMP16): -$(TILEBMP32): -!ENDIF $(U)tile2bmp.exe: $(O)tile2bmp.o $(TEXT_IO) @echo Linking $@ - @$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk + @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk $(O)tile2bmp.o $(TEXT_IO:^ =^ ) @@ -1174,17 +1109,17 @@ $(U)tile2bmp.exe: $(O)tile2bmp.o $(TEXT_IO) $(U)til2bm32.exe: $(O)til2bm32.o $(TEXT_IO32) @echo Linking $@ - @$(link) $(lflagsUtil) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk + @$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ @<<$(@B).lnk $(O)til2bm32.o $(TEXT_IO32:^ =^ ) << $(O)tile2bmp.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(INCL)\win32api.h - @$(CC) $(cflagsUtil) -I$(WSHR) /DPACKED_FILE /Fo$@ $(WSHR)\tile2bmp.c + @$(cc) $(cflagsBuild) -I$(WSHR) /DPACKED_FILE /Fo$@ $(WSHR)\tile2bmp.c $(O)til2bm32.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(INCL)\win32api.h - @$(CC) $(cflagsUtil) -I$(WSHR) /DPACKED_FILE /DTILE_X=32 /DTILE_Y=32 /Fo$@ $(WSHR)\tile2bmp.c + @$(cc) $(cflagsBuild) -I$(WSHR) /DPACKED_FILE /DTILE_X=32 /DTILE_Y=32 /Fo$@ $(WSHR)\tile2bmp.c #========================================== # Housekeeping @@ -1305,10 +1240,8 @@ clean: rem nmake -nologo -f ..\win\win32\dgnstuff.mak clean -! IF ("$(WINPFLAG)"!="") if exist $(TILEBMP16) del $(TILEBMP16) if exist $(TILEBMP32) del $(TILEBMP32) -! ENDIF #=================================================================== # OTHER DEPENDENCIES @@ -1341,27 +1274,37 @@ $(DAT)\dungeon: $(O)utility.tag $(DAT)\dungeon.def # $(O)nttty.o: $(HACK_H) $(TILE_H) $(INCL)\win32api.h $(MSWSYS)\nttty.c - @$(CC) $(cflagsUtil) -I$(WSHR) -Fo$@ $(MSWSYS)\nttty.c -$(O)nhkeys.o: $(HACK_H) $(TILE_H) $(INCL)\win32api.h $(MSWSYS)\nhkeys.c - @$(CC) $(cflagsUtil) -I$(WSHR) -Fo$@ $(MSWSYS)\nhkeys.c + @$(cc) $(cflagsBuild) -I$(WSHR) -Fo$@ $(MSWSYS)\nttty.c $(O)winnt.o: $(HACK_H) $(INCL)\win32api.h $(MSWSYS)\winnt.c - @$(CC) $(cflagsUtil) -Fo$@ $(MSWSYS)\winnt.c + @$(cc) $(cflagsBuild) -Fo$@ $(MSWSYS)\winnt.c $(O)ntsound.o: $(HACK_H) $(MSWSYS)\ntsound.c - @$(CC) $(cflagsUtil) -Fo$@ $(MSWSYS)\ntsound.c + @$(cc) $(cflagsBuild) -Fo$@ $(MSWSYS)\ntsound.c + +#if you aren't linking in the full gui then +#include the following stub for proper linkage. + +$(O)guistub.o: $(HACK_H) $(MSWSYS)\stubs.c + @$(cc) $(cflagsBuild) -DGUISTUB -Fo$@ $(MSWSYS)\stubs.c + +#if you aren't linking in the full tty then +#include the following stub for proper linkage. + +$(O)ttystub.o: $(HACK_H) $(MSWSYS)\ttystubs.c + @$(cc) $(cflagsBuild) -DTTYSTUB -Fo$@ $(MSWSYS)\stubs.c # # util dependencies # $(O)panic.o: $(U)panic.c $(CONFIG_H) - @$(CC) $(cflagsUtil) -Fo$@ $(U)panic.c + @$(cc) $(cflagsBuild) -Fo$@ $(U)panic.c # # sys/share dependencies # (O)cppregex.o: $(O)cppregex.cpp $(HACK_H) - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\share\cppregex.cpp + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\cppregex.cpp # # The rest are stolen from sys/unix/Makefile.src, @@ -1369,7 +1312,7 @@ $(O)panic.o: $(U)panic.c $(CONFIG_H) # * ../include changed to $(INCL) # * slashes changed to back-slashes # * -c (which is included in CFLAGS) substituted with -Fo$@ -# * $(CFLAGS) replaced with $(cFlagsUtil) +# * $(CFLAGS) replaced with $(cflagsBuild) # * $(CC) replaced with @$(CC) # * targets prefixed with $(O) # * the single win32api.h reference uncommented @@ -1379,115 +1322,115 @@ $(O)panic.o: $(U)panic.c $(CONFIG_H) # $(O)tos.o: ..\sys\atari\tos.c $(HACK_H) $(INCL)\tcap.h - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\atari\tos.c + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\atari\tos.c $(O)pcmain.o: ..\sys\share\pcmain.c $(HACK_H) $(INCL)\dlb.h \ $(INCL)\win32api.h - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\share\pcmain.c + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\pcmain.c $(O)pcsys.o: ..\sys\share\pcsys.c $(HACK_H) - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\share\pcsys.c + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\pcsys.c $(O)pctty.o: ..\sys\share\pctty.c $(HACK_H) - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\share\pctty.c + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\pctty.c $(O)pcunix.o: ..\sys\share\pcunix.c $(HACK_H) - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\share\pcunix.c + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\pcunix.c $(O)random.o: ..\sys\share\random.c $(HACK_H) - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\share\random.c + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\random.c $(O)ioctl.o: ..\sys\share\ioctl.c $(HACK_H) $(INCL)\tcap.h - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\share\ioctl.c + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\ioctl.c $(O)unixtty.o: ..\sys\share\unixtty.c $(HACK_H) - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\share\unixtty.c + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\share\unixtty.c $(O)unixmain.o: ..\sys\unix\unixmain.c $(HACK_H) $(INCL)\dlb.h - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\unix\unixmain.c + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\unix\unixmain.c $(O)unixunix.o: ..\sys\unix\unixunix.c $(HACK_H) - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\unix\unixunix.c + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\unix\unixunix.c $(O)unixres.o: ..\sys\unix\unixres.c $(CONFIG_H) - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\unix\unixres.c + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\unix\unixres.c $(O)bemain.o: ..\sys\be\bemain.c $(HACK_H) $(INCL)\dlb.h - @$(CC) $(cflagsUtil) -Fo$@ ..\sys\be\bemain.c + @$(CC) $(cflagsBuild) -Fo$@ ..\sys\be\bemain.c $(O)getline.o: ..\win\tty\getline.c $(HACK_H) $(INCL)\func_tab.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\tty\getline.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\tty\getline.c $(O)termcap.o: ..\win\tty\termcap.c $(HACK_H) $(INCL)\tcap.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\tty\termcap.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\tty\termcap.c $(O)topl.o: ..\win\tty\topl.c $(HACK_H) $(INCL)\tcap.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\tty\topl.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\tty\topl.c $(O)wintty.o: ..\win\tty\wintty.c $(HACK_H) $(INCL)\dlb.h $(INCL)\tcap.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\tty\wintty.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\tty\wintty.c $(O)Window.o: ..\win\X11\Window.c $(INCL)\xwindowp.h $(INCL)\xwindow.h \ $(CONFIG_H) - @$(CC) $(cflagsUtil) -Fo$@ ..\win\X11\Window.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\Window.c $(O)dialogs.o: ..\win\X11\dialogs.c $(CONFIG_H) - @$(CC) $(cflagsUtil) -Fo$@ ..\win\X11\dialogs.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\dialogs.c $(O)winX.o: ..\win\X11\winX.c $(HACK_H) $(INCL)\winX.h $(INCL)\dlb.h \ ..\win\X11\nh72icon ..\win\X11\nh56icon ..\win\X11\nh32icon - @$(CC) $(cflagsUtil) -Fo$@ ..\win\X11\winX.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winX.c $(O)winmap.o: ..\win\X11\winmap.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\dlb.h \ $(INCL)\winX.h $(INCL)\tile2x11.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\X11\winmap.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winmap.c $(O)winmenu.o: ..\win\X11\winmenu.c $(HACK_H) $(INCL)\winX.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\X11\winmenu.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winmenu.c $(O)winmesg.o: ..\win\X11\winmesg.c $(INCL)\xwindow.h $(HACK_H) $(INCL)\winX.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\X11\winmesg.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winmesg.c $(O)winmisc.o: ..\win\X11\winmisc.c $(HACK_H) $(INCL)\func_tab.h \ $(INCL)\winX.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\X11\winmisc.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winmisc.c $(O)winstat.o: ..\win\X11\winstat.c $(HACK_H) $(INCL)\winX.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\X11\winstat.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winstat.c $(O)wintext.o: ..\win\X11\wintext.c $(HACK_H) $(INCL)\winX.h $(INCL)\xwindow.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\X11\wintext.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\wintext.c $(O)winval.o: ..\win\X11\winval.c $(HACK_H) $(INCL)\winX.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\X11\winval.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\X11\winval.c $(O)tile.o: $(SRC)\tile.c $(HACK_H) $(O)gnaskstr.o: ..\win\gnome\gnaskstr.c ..\win\gnome\gnaskstr.h \ ..\win\gnome\gnmain.h - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnaskstr.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnaskstr.c $(O)gnbind.o: ..\win\gnome\gnbind.c ..\win\gnome\gnbind.h ..\win\gnome\gnmain.h \ ..\win\gnome\gnmenu.h ..\win\gnome\gnaskstr.h \ ..\win\gnome\gnyesno.h - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnbind.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnbind.c $(O)gnglyph.o: ..\win\gnome\gnglyph.c ..\win\gnome\gnglyph.h $(INCL)\tile2x11.h - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnglyph.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnglyph.c $(O)gnmain.o: ..\win\gnome\gnmain.c ..\win\gnome\gnmain.h ..\win\gnome\gnsignal.h \ ..\win\gnome\gnbind.h ..\win\gnome\gnopts.h $(HACK_H) \ $(INCL)\date.h - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmain.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmain.c $(O)gnmap.o: ..\win\gnome\gnmap.c ..\win\gnome\gnmap.h ..\win\gnome\gnglyph.h \ ..\win\gnome\gnsignal.h $(HACK_H) - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmap.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmap.c $(O)gnmenu.o: ..\win\gnome\gnmenu.c ..\win\gnome\gnmenu.h ..\win\gnome\gnmain.h \ ..\win\gnome\gnbind.h $(INCL)\func_tab.h - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmenu.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmenu.c $(O)gnmesg.o: ..\win\gnome\gnmesg.c ..\win\gnome\gnmesg.h ..\win\gnome\gnsignal.h - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmesg.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnmesg.c $(O)gnopts.o: ..\win\gnome\gnopts.c ..\win\gnome\gnopts.h ..\win\gnome\gnglyph.h \ ..\win\gnome\gnmain.h ..\win\gnome\gnmap.h $(HACK_H) - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnopts.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnopts.c $(O)gnplayer.o: ..\win\gnome\gnplayer.c ..\win\gnome\gnplayer.h \ ..\win\gnome\gnmain.h $(HACK_H) - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnplayer.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnplayer.c $(O)gnsignal.o: ..\win\gnome\gnsignal.c ..\win\gnome\gnsignal.h \ ..\win\gnome\gnmain.h - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnsignal.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnsignal.c $(O)gnstatus.o: ..\win\gnome\gnstatus.c ..\win\gnome\gnstatus.h \ ..\win\gnome\gnsignal.h ..\win\gnome\gn_xpms.h \ ..\win\gnome\gnomeprv.h - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnstatus.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnstatus.c $(O)gntext.o: ..\win\gnome\gntext.c ..\win\gnome\gntext.h ..\win\gnome\gnmain.h \ ..\win\gnome\gn_rip.h - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gntext.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gntext.c $(O)gnyesno.o: ..\win\gnome\gnyesno.c ..\win\gnome\gnbind.h ..\win\gnome\gnyesno.h - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnyesno.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnyesno.c $(O)gnworn.o: ..\win\gnome\gnworn.c ..\win\gnome\gnworn.h ..\win\gnome\gnglyph.h \ ..\win\gnome\gnsignal.h ..\win\gnome\gnomeprv.h - @$(CC) $(cflagsUtil) $(GNOMEINC) -Fo$@ ..\win\gnome\gnworn.c + @$(CC) $(cflagsBuild) $(GNOMEINC) -Fo$@ ..\win\gnome\gnworn.c $(O)wingem.o: ..\win\gem\wingem.c $(HACK_H) $(INCL)\func_tab.h $(INCL)\dlb.h \ $(INCL)\patchlevel.h $(INCL)\wingem.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\gem\wingem.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\gem\wingem.c $(O)wingem1.o: ..\win\gem\wingem1.c $(INCL)\gem_rsc.h $(INCL)\load_img.h \ $(INCL)\gr_rect.h $(INCL)\wintype.h $(INCL)\wingem.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\gem\wingem1.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\gem\wingem1.c $(O)load_img.o: ..\win\gem\load_img.c $(INCL)\load_img.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\gem\load_img.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\gem\load_img.c $(O)gr_rect.o: ..\win\gem\gr_rect.c $(INCL)\gr_rect.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\gem\gr_rect.c + @$(CC) $(cflagsBuild) -Fo$@ ..\win\gem\gr_rect.c $(O)tile.o: $(SRC)\tile.c $(HACK_H) $(O)qt_win.o: ..\win\Qt\qt_win.cpp $(HACK_H) $(INCL)\func_tab.h \ $(INCL)\dlb.h $(INCL)\patchlevel.h $(INCL)\tile2x11.h \ @@ -1499,11 +1442,11 @@ $(O)qt_clust.o: ..\win\Qt\qt_clust.cpp $(INCL)\qt_clust.h $(O)qttableview.o: ..\win\Qt\qttableview.cpp $(INCL)\qttableview.h $(CXX) $(CXXFLAGS) -Fo$@ ..\win\Qt\qttableview.cpp $(O)wc_chainin.o: ..\win\chain\wc_chainin.c $(HACK_H) - @$(CC) $(cflagsUtil) -Fo$@ ..\win\chain\wc_chainin.c + @$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_chainin.c $(O)wc_chainout.o: ..\win\chain\wc_chainout.c $(HACK_H) - @$(CC) $(cflagsUtil) -Fo$@ ..\win\chain\wc_chainout.c + @$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_chainout.c $(O)wc_trace.o: ..\win\chain\wc_trace.c $(HACK_H) $(INCL)\func_tab.h - @$(CC) $(cflagsUtil) -Fo$@ ..\win\chain\wc_trace.c + @$(cc) $(cflagsBuild) -Fo$@ ..\win\chain\wc_trace.c $(O)monstr.o: monstr.c $(CONFIG_H) $(O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)\vis_tab.h $(O)allmain.o: allmain.c $(HACK_H) diff --git a/sys/winnt/nttty.c b/sys/winnt/nttty.c index 9b9b186bc..7fc2885e6 100644 --- a/sys/winnt/nttty.c +++ b/sys/winnt/nttty.c @@ -1,6 +1,6 @@ -/* NetHack 3.5 nttty.c $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */ +/* NetHack 3.5 nttty.c $NHDT-Date: 1429675608 2015/04/22 04:06:48 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.59 $ */ /* NetHack 3.5 nttty.c $Date: 2009/05/06 10:53:34 $ $Revision: 1.54 $ */ -/* SCCS Id: @(#)nttty.c 3.5 $NHDT-Date$ */ +/* SCCS Id: @(#)nttty.c 3.5 $NHDT-Date: 1429675609 2015/04/22 04:06:49 $ */ /* SCCS Id: @(#)nttty.c 3.5 $Date: 2009/05/06 10:53:34 $ */ /* Copyright (c) NetHack PC Development Team 1993 */ /* NetHack may be freely redistributed. See license for details. */ @@ -15,7 +15,7 @@ * */ -#ifdef WIN32CON +#ifdef WIN32 #define NEED_VARARGS /* Uses ... */ #include "hack.h" #include "wintty.h" @@ -273,35 +273,53 @@ DWORD ctrltype; } } -/* called by init_tty in wintty.c for WIN32CON port only */ +/* called by init_tty in wintty.c for WIN32 port only */ void -nttty_open() +nttty_open(mode) +int mode; { HANDLE hStdOut; DWORD cmode; long mask; - load_keyboard_handler(); - /* Initialize the function pointer that points to - * the kbhit() equivalent, in this TTY case nttty_kbhit() - */ - nt_kbhit = nttty_kbhit; - - /* The following 6 lines of code were suggested by +try: + /* The following lines of code were suggested by * Bob Landau of Microsoft WIN32 Developer support, * as the only current means of determining whether * we were launched from the command prompt, or from * the NT program manager. M. Allison */ - hStdOut = GetStdHandle( STD_OUTPUT_HANDLE ); - GetConsoleScreenBufferInfo( hStdOut, &origcsbi); - GUILaunched = ((origcsbi.dwCursorPosition.X == 0) && - (origcsbi.dwCursorPosition.Y == 0)); - if ((origcsbi.dwSize.X <= 0) || (origcsbi.dwSize.Y <= 0)) - GUILaunched = 0; - - /* Obtain handles for the standard Console I/O devices */ - hConIn = GetStdHandle(STD_INPUT_HANDLE); + hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); + if (hStdOut) { + GetConsoleScreenBufferInfo(hStdOut, &origcsbi); + GUILaunched = ((origcsbi.dwCursorPosition.X == 0) && + (origcsbi.dwCursorPosition.Y == 0)); + if ((origcsbi.dwSize.X <= 0) || (origcsbi.dwSize.Y <= 0)) + GUILaunched = 0; + } else if (mode) { + HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); + HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE); + + if (!hStdOut && !hStdIn) { + /* Bool rval; */ + AllocConsole(); + AttachConsole(GetCurrentProcessId()); + /* rval = SetStdHandle(STD_OUTPUT_HANDLE, hWrite); */ + freopen("CON", "w", stdout); + freopen("CON", "r", stdin); + } + mode = 0; + goto try; + } else return; + + load_keyboard_handler(); + /* Initialize the function pointer that points to + * the kbhit() equivalent, in this TTY case nttty_kbhit() + */ + nt_kbhit = nttty_kbhit; + + /* Obtain handles for the standard Console I/O devices */ + hConIn = GetStdHandle(STD_INPUT_HANDLE); hConOut = GetStdHandle(STD_OUTPUT_HANDLE); #if 0 hConIn = CreateFile("CONIN$", @@ -1041,7 +1059,7 @@ msmsg VA_DECL(const char *, fmt) /* fatal error */ /*VARARGS1*/ void -error VA_DECL(const char *,s) +nttty_error VA_DECL(const char *,s) char buf[BUFSZ]; VA_START(s); VA_INIT(s, const char *); @@ -1445,4 +1463,4 @@ GetConsoleHwnd(void) return hwndFound; } # endif /*CHANGE_COLOR*/ -#endif /* WIN32CON */ +#endif /* WIN32 */ diff --git a/sys/winnt/stubs.c b/sys/winnt/stubs.c new file mode 100644 index 000000000..6b899a03e --- /dev/null +++ b/sys/winnt/stubs.c @@ -0,0 +1,169 @@ +#include "hack.h" + +#ifdef GUISTUB +# ifdef TTYSTUB +# error You can't compile this with both GUISTUB and TTYSTUB defined. +# endif + +int GUILaunched; +struct window_procs mswin_procs = {"guistubs"}; +void +mswin_destroy_reg() +{ + return; +} + +/* MINGW32 has trouble with both a main() and WinMain() + * so we move main for the MINGW tty version into this stub + * so that it is out of sight for the gui linkage. + */ +# ifdef __MINGW32__ +extern char default_window_sys[]; + +int +main(argc,argv) +int argc; +char *argv[]; +{ + boolean resuming; + + sys_early_init(); + Strcpy(default_window_sys, "tty"); + resuming = pcmain(argc,argv); + moveloop(resuming); + nethack_exit(EXIT_SUCCESS); + /*NOTREACHED*/ + return 0; +} +# endif +#endif /* GUISTUB */ + +/* =============================================== */ + +#ifdef TTYSTUB + +#include "hack.h" + +int GUILaunched; +struct window_procs tty_procs = {"ttystubs"}; + +void +win_tty_init(dir) +int dir; +{ + return; +} + +void +nttty_open(mode) +int mode; +{ + return; +} + +void +xputc(ch) +char ch; +{ + return; +} + +void +xputs(s) +const char *s; +{ + return; +} + +void +raw_clear_screen() +{ + return; +} + +void +clear_screen() +{ + return; +} + +void +backsp() +{ + return; +} + +int +has_color(int color) +{ + + return 1; +} + +#ifndef NO_MOUSE_ALLOWED +void +toggle_mouse_support() +{ + return; +} +#endif + +#ifdef PORT_DEBUG +void +win32con_debug_keystrokes() +{ + return; +} +void +win32con_handler_info() +{ + return; +} +#endif + +void +map_subkeyvalue(op) +register char *op; +{ + return; +} + +void +load_keyboard_handler() +{ + return; +} + +/* this is used as a printf() replacement when the window + * system isn't initialized yet + */ +void +msmsg VA_DECL(const char *, fmt) + VA_START(fmt); + VA_INIT(fmt, const char *); + VA_END(); + return; +} + +/*VARARGS1*/ +void +nttty_error VA_DECL(const char *,s) + VA_START(s); + VA_INIT(s, const char *); + VA_END(); + return; +} + +void +synch_cursor() +{ + return; +} + +void more() +{ + return; +} + +#endif /* TTYSTUBS */ + diff --git a/sys/winnt/winnt.c b/sys/winnt/winnt.c index c36175424..9385b9feb 100644 --- a/sys/winnt/winnt.c +++ b/sys/winnt/winnt.c @@ -1,6 +1,6 @@ -/* NetHack 3.5 winnt.c $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */ +/* NetHack 3.5 winnt.c $NHDT-Date: 1429675609 2015/04/22 04:06:49 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.22 $ */ /* NetHack 3.5 winnt.c $Date: 2012/01/15 19:11:41 $ $Revision: 1.18 $ */ -/* SCCS Id: @(#)winnt.c 3.5 $NHDT-Date$ */ +/* SCCS Id: @(#)winnt.c 3.5 $NHDT-Date: 1429675610 2015/04/22 04:06:50 $ */ /* SCCS Id: @(#)winnt.c 3.5 $Date: 2012/01/15 19:11:41 $ */ /* Copyright (c) NetHack PC Development Team 1993, 1994 */ /* NetHack may be freely redistributed. See license for details. */ @@ -20,9 +20,7 @@ #endif #include #include "win32api.h" -#ifdef WIN32CON #include "wintty.h" -#endif #ifdef WIN32 @@ -200,7 +198,7 @@ return &szFullPath[0]; } # endif -#ifndef WIN32CON + /* fatal error */ /*VARARGS1*/ void @@ -223,21 +221,17 @@ error VA_DECL(const char *,s) VA_END(); exit(EXIT_FAILURE); } -#endif void Delay(int ms) { (void)Sleep(ms); } -#ifdef WIN32CON extern void NDECL(backsp); -#endif void win32_abort() { if (wizard) { -# ifdef WIN32CON int c, ci, ct; if (!iflags.window_inited) @@ -260,7 +254,6 @@ void win32_abort() } if (c == 'y') DebugBreak(); -# endif } abort(); } diff --git a/util/makedefs.c b/util/makedefs.c index f0fce57ab..ee46aee3f 100644 --- a/util/makedefs.c +++ b/util/makedefs.c @@ -1,4 +1,4 @@ -/* NetHack 3.5 makedefs.c $NHDT-Date: 1425083082 2015/02/28 00:24:42 $ $NHDT-Branch: master $:$NHDT-Revision: 1.63 $ */ +/* NetHack 3.5 makedefs.c $NHDT-Date: 1429675627 2015/04/22 04:07:07 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.91 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) M. Stephenson, 1990, 1991. */ /* Copyright (c) Dean Luick, 1990. */ @@ -1331,10 +1331,8 @@ static const char *build_opts[] = { # ifdef SCREEN_VGA "screen control via VGA graphics", # endif -# ifndef MSWIN_GRAPHICS -# ifdef WIN32CON +# ifdef WIN32CON "screen control via WIN32 console I/O", -# endif # endif #endif #ifdef SHELL diff --git a/win/tty/wintty.c b/win/tty/wintty.c index cdf5ba4b4..4d1fc9160 100644 --- a/win/tty/wintty.c +++ b/win/tty/wintty.c @@ -1,4 +1,4 @@ -/* NetHack 3.5 wintty.c $NHDT-Date: 1428828474 2015/04/12 08:47:54 $ $NHDT-Branch: master $:$NHDT-Revision: 1.85 $ */ +/* NetHack 3.5 wintty.c $NHDT-Date: 1429675638 2015/04/22 04:07:18 $ $NHDT-Branch: win32-x64-working $:$NHDT-Revision: 1.90 $ */ /* NetHack 3.5 wintty.c $Date: 2012/01/22 06:27:09 $ $Revision: 1.66 $ */ /* Copyright (c) David Cohrs, 1991 */ /* NetHack may be freely redistributed. See license for details. */ @@ -111,7 +111,7 @@ struct window_procs tty_procs = { tty_start_screen, tty_end_screen, genl_outrip, -#if defined(WIN32CON) +#if defined(WIN32) nttty_preference_update, #else genl_preference_update, @@ -2906,7 +2906,7 @@ int dir; { if(dir != WININIT) return; # if defined(WIN32CON) - nttty_open(); + if (!strncmpi(windowprocs.name, "tty", 3)) nttty_open(0); # endif return; }